diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9c8d063aa14..9afbc926c06 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -8,5 +8,5 @@ * @wackerow @corwintines @pettinarip @minimalsm # Owners of specific files -/src/data/consensus-bounty-hunters.json @djrtwo @asanso @fredriksvantes +/src/data/consensus-bounty-hunters.json @asanso @fredriksvantes /src/data/wallets/new-to-crypto.ts @konopkja @minimalsm \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/suggest_resource.yaml b/.github/ISSUE_TEMPLATE/suggest_resource.yaml new file mode 100644 index 00000000000..6df8803f163 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/suggest_resource.yaml @@ -0,0 +1,63 @@ +name: Suggest a resource +description: Suggest a new resource to list on ethereum.org/resources +title: Suggest a resource +labels: ["resource 📚"] +body: + - type: markdown + attributes: + value: | + Before suggesting a resource, make sure you've read [our listing policy](https://www.ethereum.org/en/contributing/adding-resources/). + - type: markdown + attributes: + value: Only continue with the issue if your resource meets the criteria listed there. + - type: markdown + attributes: + value: If it does, complete the following information which we need to accurately list the resource. + - type: markdown + id: resource_info + attributes: + value: "## Resource info" + - type: input + id: resource_name + attributes: + label: Name + description: Please provide the official name of the resource + validations: + required: true + - type: input + id: resource_url + attributes: + label: Resource URL + description: Please provide a URL to the resource + validations: + required: true + - type: textarea + id: resource_description + attributes: + label: Description + description: Please provide a short 1-2 sentence description of the resource + validations: + required: true + - type: textarea + id: resource_logo + attributes: + label: Logo + description: | + Please provide an SVG or transparent PNG + Tip: You can attach images by clicking this area to highlight it and then dragging files in. + - type: input + id: resource_category + attributes: + label: Category + description: Please specify a best fit to categorize the resource (e.g., DeFi, NFT, Scaling, etc.) + - type: checkboxes + id: resource_work_on + attributes: + label: Would you like to work on this issue? + options: + - label: "Yes" + required: false + - label: "No" + required: false + validations: + required: true diff --git a/app/[locale]/[...slug]/page.tsx b/app/[locale]/[...slug]/page.tsx new file mode 100644 index 00000000000..fdf3aa2d733 --- /dev/null +++ b/app/[locale]/[...slug]/page.tsx @@ -0,0 +1,109 @@ +import pick from "lodash.pick" +import { notFound } from "next/navigation" +import { getMessages, setRequestLocale } from "next-intl/server" + +import I18nProvider from "@/components/I18nProvider" +import mdComponents from "@/components/MdComponents" + +import { dataLoader } from "@/lib/utils/data/dataLoader" +import { getPostSlugs } from "@/lib/utils/md" +import { getRequiredNamespacesForPage } from "@/lib/utils/translations" + +import { LOCALES_CODES } from "@/lib/constants" + +import { componentsMapping, layoutMapping } from "@/layouts" +import { fetchGFIs } from "@/lib/api/fetchGFIs" +import { getPageData } from "@/lib/md/data" +import { getMdMetadata } from "@/lib/md/metadata" + +const loadData = dataLoader([["gfissues", fetchGFIs]]) + +export default async function Page({ + params, +}: { + params: Promise<{ locale: string; slug: string[] }> +}) { + const { locale, slug: slugArray } = await params + + // Check if this specific path is in our valid paths + const validPaths = await generateStaticParams() + const isValidPath = validPaths.some( + (path) => + path.locale === locale && path.slug.join("/") === slugArray.join("/") + ) + + if (!isValidPath) { + notFound() + } + + // Enable static rendering + setRequestLocale(locale) + + const [gfissues] = await loadData() + + const slug = slugArray.join("/") + + const { + content, + frontmatter, + tocItems, + lastEditLocaleTimestamp, + isTranslated, + } = await getPageData({ + locale, + slug, + // TODO: Address component typing error here (flip `FC` types to prop object types) + // @ts-expect-error Incompatible component function signatures + components: { ...mdComponents, ...componentsMapping }, + scope: { + gfissues, + }, + }) + + // Determine the actual layout after we have the frontmatter + const layout = frontmatter.template || "static" + const Layout = layoutMapping[layout] + + // Get i18n messages + const allMessages = await getMessages({ locale }) + const requiredNamespaces = getRequiredNamespacesForPage(slug, layout) + const messages = pick(allMessages, requiredNamespaces) + + return ( + + + {content} + + + ) +} + +export async function generateStaticParams() { + const slugs = await getPostSlugs("/", /\/developers/) + + return LOCALES_CODES.flatMap((locale) => + slugs.map((slug) => ({ + slug: slug.split("/").slice(1), + locale, + })) + ) +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: string; slug: string[] }> +}) { + const { locale, slug } = await params + + return await getMdMetadata({ + locale, + slug, + }) +} diff --git a/app/[locale]/developers/docs/[[...doc]]/page.tsx b/app/[locale]/developers/docs/[[...doc]]/page.tsx new file mode 100644 index 00000000000..0db697d7b40 --- /dev/null +++ b/app/[locale]/developers/docs/[[...doc]]/page.tsx @@ -0,0 +1,98 @@ +import { join } from "path" + +import pick from "lodash.pick" +import { getMessages, setRequestLocale } from "next-intl/server" + +import I18nProvider from "@/components/I18nProvider" +import mdComponents from "@/components/MdComponents" + +import { getPostSlugs } from "@/lib/utils/md" +import { getRequiredNamespacesForPage } from "@/lib/utils/translations" + +import { LOCALES_CODES } from "@/lib/constants" + +import { docsComponents, DocsLayout } from "@/layouts" +import { getPageData } from "@/lib/md/data" +import { getMdMetadata } from "@/lib/md/metadata" + +export default async function Page({ + params, +}: { + params: Promise<{ locale: string; doc?: string[] }> +}) { + const { locale, doc: docArray } = await params + + // Enable static rendering + setRequestLocale(locale) + + const slug = join("developers/docs", ...(docArray || [])) + + const layout = "docs" + + const { + content, + frontmatter, + tocItems, + lastEditLocaleTimestamp, + contributors, + isTranslated, + } = await getPageData({ + locale, + slug, + // TODO: Address component typing error here (flip `FC` types to prop object types) + // @ts-expect-error Incompatible component function signatures + components: { ...mdComponents, ...docsComponents }, + layout, + }) + + // Get i18n messages + const allMessages = await getMessages({ locale }) + const requiredNamespaces = getRequiredNamespacesForPage(slug, layout) + const messages = pick(allMessages, requiredNamespaces) + + return ( + + + {content} + + + ) +} + +export async function generateStaticParams() { + const slugs = await getPostSlugs("/developers/docs") + + // Generate page paths for each supported locale + return LOCALES_CODES.flatMap((locale) => + slugs.map((slug) => { + return { + // Splitting nested paths to generate proper slug + doc: slug.replace("/developers/docs", "").split("/").slice(1), + locale, + } + }) + ) +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: string; doc: string[] }> +}) { + const { locale, doc } = await params + const slug = ["developers/docs", ...(doc || [])] + + return await getMdMetadata({ + locale, + slug, + }) +} + +export const dynamicParams = false diff --git a/app/[locale]/developers/tutorials/[...tutorial]/page.tsx b/app/[locale]/developers/tutorials/[...tutorial]/page.tsx new file mode 100644 index 00000000000..d5f09f4e43f --- /dev/null +++ b/app/[locale]/developers/tutorials/[...tutorial]/page.tsx @@ -0,0 +1,101 @@ +import { join } from "path" + +import pick from "lodash.pick" +import { getMessages, setRequestLocale } from "next-intl/server" + +import I18nProvider from "@/components/I18nProvider" +import mdComponents from "@/components/MdComponents" + +import { dateToString } from "@/lib/utils/date" +import { getPostSlugs } from "@/lib/utils/md" +import { getRequiredNamespacesForPage } from "@/lib/utils/translations" + +import { LOCALES_CODES } from "@/lib/constants" + +import { TutorialLayout, tutorialsComponents } from "@/layouts" +import { getPageData } from "@/lib/md/data" +import { getMdMetadata } from "@/lib/md/metadata" + +export default async function Page({ + params, +}: { + params: Promise<{ locale: string; tutorial: string[] }> +}) { + const { locale, tutorial: tutorialArray } = await params + + // Enable static rendering + setRequestLocale(locale) + + const slug = join("developers/tutorials", ...tutorialArray) + + const layout = "tutorial" + + const { + content, + frontmatter, + tocItems, + lastEditLocaleTimestamp, + contributors, + isTranslated, + } = await getPageData({ + locale, + slug, + // TODO: Address component typing error here (flip `FC` types to prop object types) + // @ts-expect-error Incompatible component function signatures + components: { ...mdComponents, ...tutorialsComponents }, + layout, + }) + + // If the page has a published date, format it + if ("published" in frontmatter) { + frontmatter.published = dateToString(frontmatter.published) + } + + // Get i18n messages + const allMessages = await getMessages({ locale }) + const requiredNamespaces = getRequiredNamespacesForPage(slug, layout) + const messages = pick(allMessages, requiredNamespaces) + + return ( + + + {content} + + + ) +} + +export async function generateStaticParams() { + const slugs = await getPostSlugs("/developers/tutorials") + + return LOCALES_CODES.flatMap((locale) => + slugs.map((slug) => ({ + tutorial: slug.replace("/developers/tutorials", "").split("/").slice(1), + locale, + })) + ) +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: string; tutorial: string[] }> +}) { + const { locale, tutorial } = await params + const slug = ["developers/tutorials", ...(tutorial || [])] + + return await getMdMetadata({ + locale, + slug, + }) +} + +export const dynamicParams = false diff --git a/app/[locale]/error.tsx b/app/[locale]/error.tsx new file mode 100644 index 00000000000..e1647efadd0 --- /dev/null +++ b/app/[locale]/error.tsx @@ -0,0 +1,32 @@ +"use client" + +import { useEffect } from "react" + +import MainArticle from "@/components/MainArticle" +import Translation from "@/components/Translation" +import { Button } from "@/components/ui/buttons/Button" + +export default function Error({ + error, + reset, +}: { + error: Error + reset: () => void +}) { + useEffect(() => { + // TODO: log the error to an error reporting service + console.error(error) + }, [error]) + + return ( +
+ +

+ +

+

Something went wrong.

+ +
+
+ ) +} diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx new file mode 100644 index 00000000000..fa29d6fe59b --- /dev/null +++ b/app/[locale]/layout.tsx @@ -0,0 +1,51 @@ +import pick from "lodash.pick" +import { notFound } from "next/navigation" +import { getMessages, setRequestLocale } from "next-intl/server" + +import { Lang } from "@/lib/types" + +import { getLastDeployDate } from "@/lib/utils/getLastDeployDate" +import { getLocaleTimestamp } from "@/lib/utils/time" + +import Providers from "./providers" + +import "@/styles/global.css" + +import { routing } from "@/i18n/routing" +import { BaseLayout } from "@/layouts/BaseLayout" + +export default async function LocaleLayout({ + children, + params: { locale }, +}: { + children: React.ReactNode + params: { locale: string } +}) { + if (!routing.locales.includes(locale)) { + notFound() + } + + // Enable static rendering + setRequestLocale(locale) + + const allMessages = await getMessages({ locale }) + const messages = pick(allMessages, "common") + + const lastDeployDate = getLastDeployDate() + const lastDeployLocaleTimestamp = getLocaleTimestamp( + locale as Lang, + lastDeployDate + ) + + return ( + + + + + {children} + + + + + ) +} diff --git a/app/[locale]/not-found.tsx b/app/[locale]/not-found.tsx new file mode 100644 index 00000000000..83c2800c2c2 --- /dev/null +++ b/app/[locale]/not-found.tsx @@ -0,0 +1,5 @@ +import NotFoundPage from "@/components/NotFoundPage" + +export default function NotFound() { + return +} diff --git a/app/[locale]/providers.tsx b/app/[locale]/providers.tsx new file mode 100644 index 00000000000..8950aef0bc9 --- /dev/null +++ b/app/[locale]/providers.tsx @@ -0,0 +1,29 @@ +"use client" + +import { type AbstractIntlMessages } from "next-intl" + +import I18nProvider from "@/components/I18nProvider" +import ThemeProvider from "@/components/ThemeProvider" +import { TooltipProvider } from "@/components/ui/tooltip" + +import { FeedbackWidgetProvider } from "@/contexts/FeedbackWidgetContext" + +export default function Providers({ + children, + locale, + messages, +}: { + children: React.ReactNode + locale: string + messages: AbstractIntlMessages +}) { + return ( + + + + {children} + + + + ) +} diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 00000000000..eb9d50fec7d --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,13 @@ +import { ReactNode } from "react" + +import "@/styles/global.css" + +type Props = { + children: ReactNode +} + +// Since we have a root `not-found.tsx` page, a layout file +// is required, even if it's just passing children through. +export default function RootLayout({ children }: Props) { + return children +} diff --git a/app/not-found.tsx b/app/not-found.tsx new file mode 100644 index 00000000000..80eff03aa70 --- /dev/null +++ b/app/not-found.tsx @@ -0,0 +1,15 @@ +"use client" + +import Error from "next/error" + +import { DEFAULT_LOCALE } from "@/lib/constants" + +export default function GlobalNotFound() { + return ( + + + + + + ) +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 00000000000..47d45ffa044 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,7 @@ +import { redirect } from "next/navigation" + +import { routing } from "@/i18n/routing" + +export default function Page() { + redirect(routing.defaultLocale) +} diff --git a/docs/applying-storybook.md b/docs/applying-storybook.md index b92caf81b00..05ec448f22e 100644 --- a/docs/applying-storybook.md +++ b/docs/applying-storybook.md @@ -229,4 +229,4 @@ parameters: { } ``` -> 🚨 NOTE: This will be notated ahead of time by the team which stories should not receive snapshots. +> 🚨 NOTE: This will be noted ahead of time by the team which stories should not receive snapshots. diff --git a/docs/best-practices.md b/docs/best-practices.md index b8d73a4be81..3b0c2f1186f 100644 --- a/docs/best-practices.md +++ b/docs/best-practices.md @@ -8,7 +8,7 @@ How to prepare your content for translation depends on whether you're working on **- MDX pages (`public/content/page/`)** -Markdown will be translated as whole pages of content, so no specific action is required. Simply create a new folder within `public/content/` with the name of the page, then place index markdown file (ie. `index.md`) within the new folder. +Markdown will be translated as whole pages of content, so no specific action is required. Simply create a new folder within `public/content/` with the name of the page, then place an index markdown file (ie. `index.md`) within the new folder. **- React component page** diff --git a/docs/header-ids.md b/docs/header-ids.md index 78843772487..f8462ea3ff6 100644 --- a/docs/header-ids.md +++ b/docs/header-ids.md @@ -36,7 +36,7 @@ See a live example on ethereum.org: [https://ethereum.org/en/developers/docs/blo ### English content -These should be created for header on every new English markdown document. +These should be created for header in every new English markdown document. ### Translated content diff --git a/docs/translation-program.md b/docs/translation-program.md index 9fb2f98a5b7..880be48e90c 100644 --- a/docs/translation-program.md +++ b/docs/translation-program.md @@ -2,6 +2,6 @@ _The Translation Program is an initiative to translate ethereum.org into different languages and make the website accessible to people from all over the world._ -If you are looking to get involved as a translator, you can [join our project in Crowdin](https://crowdin.com/project/ethereum-org/) and start translating the website to your language immediately. +If you are looking to get involved as a translator, you can [join our project in Crowdin](https://crowdin.com/project/ethereum-org/) and start translating the website into your language immediately. To get more information about the program, learn how to use Crowdin, check on the progress or find some useful tools for translators, please visit the [Translation Program page](https://ethereum.org/en/contributing/translation-program/). diff --git a/i18n.config.json b/i18n.config.json index ee01677973e..0edc23ef50e 100644 --- a/i18n.config.json +++ b/i18n.config.json @@ -135,6 +135,14 @@ "langDir": "ltr", "dateFormat": "DD/MM/YYYY" }, + { + "code": "ga", + "crowdinCode": "ga-IE", + "name": "Irish", + "localName": "Gaeilge", + "langDir": "ltr", + "dateFormat": "DD/MM/YYYY" + }, { "code": "gl", "crowdinCode": "gl", diff --git a/next.config.js b/next.config.js index 2d823da3c35..d2b027d9137 100644 --- a/next.config.js +++ b/next.config.js @@ -53,6 +53,10 @@ module.exports = (phase, { defaultConfig }) => { issuer: fileLoaderRule.issuer, resourceQuery: { not: [...fileLoaderRule.resourceQuery.not, /url/] }, // exclude if *.svg?url use: ["@svgr/webpack"], + }, + { + test: /\.md$/, + use: ["raw-loader"], } ) @@ -77,6 +81,14 @@ module.exports = (phase, { defaultConfig }) => { protocol: "https", hostname: "crowdin-static.downloads.crowdin.com", }, + { + protocol: "https", + hostname: "avatars.githubusercontent.com", + }, + { + protocol: "https", + hostname: "coin-images.coingecko.com", + }, ], }, async headers() { @@ -111,9 +123,20 @@ module.exports = (phase, { defaultConfig }) => { "node_modules/@swc/core-linux-x64-gnu", "node_modules/@swc/core-linux-x64-musl", "node_modules/@esbuild/linux-x64", + "src/data", + "src/intl", + "public/**/*.jpg", "public/**/*.png", + "public/**/*.webp", + "public/**/*.svg", "public/**/*.gif", - "src/data", + "public/**/*.json", + "public/**/*.txt", + "public/**/*.xml", + "public/**/*.pdf", + "public/fonts", + "public/images", + "public/content", ], }, }, diff --git a/package.json b/package.json index eb851e98009..2049c1ac77c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ethereum-org-website", - "version": "9.7.0", + "version": "10.0.0", "license": "MIT", "private": true, "scripts": { @@ -47,7 +47,9 @@ "@radix-ui/react-tabs": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.2", "@radix-ui/react-visually-hidden": "^1.1.0", + "@rainbow-me/rainbowkit": "^2.2.3", "@socialgouv/matomo-next": "^1.8.0", + "@tanstack/react-query": "^5.66.7", "@tanstack/react-table": "^8.19.3", "chart.js": "^4.4.2", "chartjs-plugin-datalabels": "^2.2.0", @@ -62,9 +64,9 @@ "lodash.merge": "^4.6.2", "lodash.shuffle": "^4.2.0", "lodash.union": "^4.6.0", - "next": "^14.2.21", + "next": "^14.2.25", "next-intl": "^3.26.3", - "next-mdx-remote": "^3.0.8", + "next-mdx-remote": "^5.0.0", "next-sitemap": "^4.2.3", "next-themes": "^0.3.0", "prism-react-renderer": "1.1.0", @@ -79,18 +81,20 @@ "react-select": "5.8.0", "reading-time": "^1.5.0", "recharts": "^2.13.3", - "remark-gfm": "^3.0.1", + "remark-gfm": "^4.0.1", "swiper": "^11.1.10", "tailwind-merge": "^2.3.0", "tailwind-variants": "^0.2.1", "tailwindcss-animate": "^1.0.7", "usehooks-ts": "^3.1.0", "vaul": "^1.0.0", + "viem": "^2.23.3", + "wagmi": "^2.14.11", "yaml-loader": "^0.8.0" }, "devDependencies": { "@chromatic-com/storybook": "1.5.0", - "@netlify/plugin-nextjs": "^5.8.0", + "@netlify/plugin-nextjs": "^5.10.0", "@storybook/addon-essentials": "8.1.10", "@storybook/addon-interactions": "8.1.10", "@storybook/addon-links": "8.1.10", @@ -101,6 +105,7 @@ "@svgr/webpack": "^8.1.0", "@types/decompress": "^4.2.7", "@types/hast": "^3.0.0", + "@types/lodash.pick": "^4.4.9", "@types/node": "^20.4.2", "@types/react": "18.2.57", "@types/react-dom": "18.2.19", @@ -120,6 +125,7 @@ "husky": "^9.0.11", "image-size": "^1.0.2", "lint-staged": "^15.2.5", + "lodash.pick": "^4.4.0", "mdast-util-toc": "^7.0.0", "minimist": "^1.2.8", "plaiceholder": "^3.0.0", @@ -128,6 +134,8 @@ "prettier": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.5", "raw-loader": "^4.0.2", + "rehype-slug": "^6.0.0", + "remark-heading-id": "^1.0.1", "storybook": "8.1.10", "storybook-next-intl": "^1.2.5", "tailwindcss": "^3.4.4", diff --git a/public/_redirects b/public/_redirects index d6ca9de7a30..e2b3b5fae35 100644 --- a/public/_redirects +++ b/public/_redirects @@ -177,3 +177,7 @@ /*/deprecated-software /:splat/dapps/ 301! /*/enterprise/private-ethereum/ /:splat/enterprise/ 301! + +/dashboards /en/resources 301! + +/*/dashboards /:splat/resources 301! diff --git a/public/content/bridges/index.md b/public/content/bridges/index.md index ae0c0b93486..2b437b11734 100644 --- a/public/content/bridges/index.md +++ b/public/content/bridges/index.md @@ -24,7 +24,7 @@ But, what do you do if you want to make a similar exchange to use a different [b All blockchains have their limitations. For Ethereum to scale and keep up with demand, it has required [rollups](/glossary/#rollups). Alternatively, L1s like Solana and Avalanche are designed differently to enable higher throughput but at the cost of decentralization. -However, all blockchains develop in isolated environments and have different rules and [consensus](/glossary/#consensus) mechanisms. This means they cannot natively communicate, and tokens cannot move freely between blockchains. +However, all blockchains are developed in isolated environments and have different rules and [consensus](/glossary/#consensus) mechanisms. This means they cannot natively communicate, and tokens cannot move freely between blockchains. Bridges exist to connect blockchains, allowing the transfer of information and tokens between them. @@ -65,7 +65,7 @@ Let’s say you want to own native Bitcoin (BTC), but you only have funds on Eth -## Types of bridge {#types-of-bridge} +## Types of bridges {#types-of-bridge} Bridges have many types of designs and intricacies. Generally, bridges fall into two categories: trusted and trustless bridges. @@ -95,7 +95,7 @@ Many bridging solutions adopt models between these two extremes with varying deg -## Use bridge {#use-bridge} +## Use bridges {#use-bridge} Using bridges allows you to move your assets across different blockchains. Here are some resources that can help you find and use bridges: @@ -104,7 +104,7 @@ Using bridges allows you to move your assets across different blockchains. Here -## Risk using bridges {#bridge-risk} +## Risk of using bridges {#bridge-risk} Bridges are in the early stages of development. It is likely that the optimal bridge design has not yet been discovered. Interacting with any type of bridge carries risk: diff --git a/public/content/contributing/adding-resources/index.md b/public/content/contributing/adding-resources/index.md new file mode 100644 index 00000000000..c79de073d60 --- /dev/null +++ b/public/content/contributing/adding-resources/index.md @@ -0,0 +1,53 @@ +--- +title: Adding Resources +description: The policy we use when adding resources to ethereum.org +lang: en +--- + +# Adding Resources {#adding-resources} + +We want to make sure we list the best resources possible while keeping users safe and confident. + +Anyone is free to suggest new resources to add to the resource dashboard on ethereum.org, currently found at [ethereum.org/resources](/resources/). + +Although we welcome new additions, the current resources were chosen based on an experience we're trying to create for our users. These are based on some of our design principles: + +- _Inspirational_: anything on ethereum.org should offer something new to users +- _A good story_: what's listed should provide an "aha" moment +- _Credible_: everything should be legitimate businesses/projects to minimize risk to users + +Overall **ethereum.org aims to provide a seamless onboarding experience for new users**. For that reason, we add resources based on their: + +- ease of use +- accuracy +- maintenance + +## The decision framework {#decision-framework} + +### Criteria {#criteria} + +- **Honest and accurate listing information** - Any suggested listings must come with honest and accurate information. Products that falsify information will be removed. +- **Active project** – The resource should be maintained by an active team to ensure quality and support for users. Outdated resources are subject to removal. + +### Product Ordering {#product-ordering} + +We reserve the right to order products based on their impact. New products will generally be added to the bottom of the list unless otherwise specified. + +## Maintenance {#maintenance} + +As the Ethereum ecosystem evolves, we will routinely check our content to: + +- Ensure that all resources listed still fulfill our criteria +- Verify there aren't products that have been suggested that meet more of our criteria than the ones currently listed + +You can help with this by checking and letting us know. [Create an issue](https://github.com/ethereum/ethereum-org-website/issues/new?template=bug_report.yaml) or send an email to [website@ethereum.org](mailto:website@ethereum.org). + +--- + +## Add your resource {#add-your-resource} + +If you want to add a resource to ethereum.org and it meets the criteria, create an issue on GitHub. + + + Create an issue + diff --git a/public/content/contributing/index.md b/public/content/contributing/index.md index 93e79d3dc6c..8b010222b33 100644 --- a/public/content/contributing/index.md +++ b/public/content/contributing/index.md @@ -25,7 +25,6 @@ We are a welcoming community that will help you grow and educate in the Ethereum - [Create/edit content](/contributing/#how-to-update-content) – Suggest new pages or make tweaks to what's here already - [Add community resources](/contributing/content-resources/) – Add a helpful article or resource to a relevant page - [Suggest a design resource](/contributing/design/adding-design-resources/) – Add, update, and delete helpful design resources -- [Add a glossary term](/contributing/adding-glossary-terms/) – Help us continue to expand the Ethereum [glossary](/glossary/) - [Quizzes](/contributing/quizzes/) – Add, update, and delete quiz question banks for a relevant page **Feature ideas** diff --git a/public/content/contributing/translation-program/translators-guide/index.md b/public/content/contributing/translation-program/translators-guide/index.md index 1785814547f..39330d09d50 100644 --- a/public/content/contributing/translation-program/translators-guide/index.md +++ b/public/content/contributing/translation-program/translators-guide/index.md @@ -122,7 +122,7 @@ The best way to handle links is to copy them directly from the source, either by ![Example of link.png](./example-of-link.png) -Links also appear in the source text in the form of tags (i.e. <0> ). If you hover over the tag, the editor will show its full content - sometimes these tags will represent links. +Links also appear in the source text in the form of tags (i.e. `<0>` ``). If you hover over the tag, the editor will show its full content - sometimes these tags will represent links. It is very important to copy the links from the source and not change their order. @@ -160,7 +160,7 @@ nonce - _Non-translatable text_ The source text also contains shortened tags, which only contain numbers, meaning that their function is not immediately obvious. You can hover over these tags to see exactly which function they serve. -In the example below, you can see that hovering over the <0> tag shows that it represents `` and contains a code snippet, therefore the content inside these tags should not be translated. +In the example below, you can see that hovering over the `<0>` tag shows that it represents `` and contains a code snippet, therefore the content inside these tags should not be translated. ![Example of ambiguous tags.png](./example-of-ambiguous-tags.png) diff --git a/public/content/desci/index.md b/public/content/desci/index.md index ebac2262588..2a256a8c126 100644 --- a/public/content/desci/index.md +++ b/public/content/desci/index.md @@ -127,7 +127,7 @@ We welcome suggestions for new projects to list - please look at our [listing po - [DeSci: The Future of Research by Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) - [Science Funding (Epilogue: DeSci and new crypto primitives) by Nadia](https://nadia.xyz/science-funding) - [Decentralisation is Disrupting Drug Development](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) -- [What Is DeSci – Decentralized Science?](​https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) +- [What Is DeSci – Decentralized Science?](https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) ### Videos {#videos} diff --git a/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md index 2eba9fe91bb..a8374a84fbb 100644 --- a/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md +++ b/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md @@ -16,7 +16,7 @@ Subjectivity is inherent to proof-of-stake blockchains because selecting the cor ## Weak subjectivity checkpoints {#ws-checkpoints} -Weak subjectivity is implemented in proof-of-stake Ethereum by using "weak subjectivity checkpoints". These are state roots that all nodes on the network agree belong in the canonical chain. They serve the same "universal truth" purpose to genesis blocks, except that they do not sit at the genesis position in the blockchain. The fork choice algorithm trusts that the blockchain state defined in that checkpoint is correct and that it independently and objectively verifies the chain from that point onwards. The checkpoints act as "revert limits" because blocks located before weak-subjectivity checkpoints cannot be changed. This undermines long-range attacks simply by defining long-range forks to be invalid as part of the mechanism design. Ensuring that the weak subjectivity checkpoints are separated by a smaller distance than the validator withdrawal period ensures that a validator that forks the chain is slashed at least some threshold amount before they can withdraw their stake and that new entrants cannot be tricked onto incorrect forks by validators whose stake has been withdrawn. +Weak subjectivity is implemented in proof-of-stake Ethereum by using "weak subjectivity checkpoints". These are state roots that all nodes on the network agree belong in the canonical chain. They serve the same "universal truth" purpose as genesis blocks, except that they do not sit at the genesis position in the blockchain. The fork choice algorithm trusts that the blockchain state defined in that checkpoint is correct and that it independently and objectively verifies the chain from that point onwards. The checkpoints act as "revert limits" because blocks located before weak-subjectivity checkpoints cannot be changed. This undermines long-range attacks simply by defining long-range forks to be invalid as part of the mechanism design. Ensuring that the weak subjectivity checkpoints are separated by a smaller distance than the validator withdrawal period ensures that a validator that forks the chain is slashed at least some threshold amount before they can withdraw their stake and that new entrants cannot be tricked onto incorrect forks by validators whose stake has been withdrawn. ## Difference between weak subjectivity checkpoints and finalized blocks {#difference-between-ws-and-finalized-blocks} diff --git a/public/content/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/developers/docs/design-and-ux/dex-design-best-practice/index.md index 5d4fc3f0e59..05e659dfe1f 100644 --- a/public/content/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -177,7 +177,7 @@ The law of proximity states that items that are close together are perceived as Ultimately, there are pluses and minuses for both options, but it is interesting how the trend appears to be towards token on the right. -# Button behavior {#button-behavior} +## Button behavior {#button-behavior} Don’t have a separate button for Approve. Also don’t have a separate click for Approve. The user wants to Swap, so just say “swap” on the button and initiate the approval as the first step. A modal can show progress with a stepper, or a simple “tx 1 of 2 - approving” notification. @@ -185,7 +185,7 @@ Don’t have a separate button for Approve. Also don’t have a separate click f ![A UI with one button that says approve](./15.png) -## Button as contextual help {#button-as-contextual-help} +### Button as contextual help {#button-as-contextual-help} The button can do double duty as an alert! diff --git a/public/content/developers/docs/design-and-ux/index.md b/public/content/developers/docs/design-and-ux/index.md index c9d9a8eddbe..07a060896f4 100644 --- a/public/content/developers/docs/design-and-ux/index.md +++ b/public/content/developers/docs/design-and-ux/index.md @@ -33,7 +33,6 @@ This is a curated list of user research done in web3 that may help with design a | Staking | [Staking: Key trends, takeaways, and predictions - Eth Staker](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | | Staking | [Multi App Staking]() | | DAO | [2022 DAO Research Update: What do DAO Builders Need?](https://blog.aragon.org/2022-dao-research-update/) | -| DeFi | [The state of Defi 2024](https://stateofdefi.org/) (ongoing survey) | | DeFi | [Coverage pools](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | | DeFi | [ConSensys: DeFi User Research Report 2022](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | | Metaverse | [Metaverse: User Research Report](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | @@ -45,7 +44,6 @@ This is a curated list of user research done in web3 that may help with design a - [Web3 UX Design Handbook](https://web3ux.design/) - Practical guide to designing Web3 apps - [Web3 Design Principles](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - A framework of UX rules for blockchain based dapps - [Blockchain Design Principles](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - Lessons learned by the blockchain design team at IBM -- [W3design.io](https://w3design.io/) - A curated library of UI flows of different projects in the ecosystem - [Neueux.com](https://neueux.com/apps) - UI library of user flows with diverse filtering options - [Web3's Usability Crisis: What You NEED to Know!](https://www.youtube.com/watch?v=oBSXT_6YDzg) - A panel discussion on pitfalls of developer focused project building (video, 34 min) @@ -72,7 +70,6 @@ Get involved in professional community-driven organizations or join design group - [Vectordao.com](https://vectordao.com/) - [Deepwork.studio](https://www.deepwork.studio/) -- [Designer-dao.xyz](https://www.designer-dao.xyz/) - [We3.co](https://we3.co/) - [Openux.xyz](https://openux.xyz/) - [Open Source Web3Design](https://www.web3designers.org/) diff --git a/public/content/developers/docs/networking-layer/portal-network/index.md b/public/content/developers/docs/networking-layer/portal-network/index.md index cf2d4b9d353..9358af08072 100644 --- a/public/content/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ The benefits of this network design are: - reduce dependence on centralized providers - Reduce Internet bandwidth usage - Minimized or zero syncing -- Accessible to resource-constrained devices (<1 GB RAM, <100 MB disk space, 1 CPU) +- Accessible to resource-constrained devices (\<1 GB RAM, \<100 MB disk space, 1 CPU) The diagram below shows the functions of existing clients that can be delivered by the Portal Network, enabling users to access these functions on very low-resource devices. @@ -74,7 +74,7 @@ The Portal Network developers also made the design choice to build three separat The Portal Network clients are: - [Trin](https://github.com/ethereum/trin): written in Rust -- [Fluffy](https://nimbus.team/docs/fluffy.html): written in Nim +- [Fluffy](https://fluffy.guide): written in Nim - [Ultralight](https://github.com/ethereumjs/ultralight): written in Typescript - [Shisui](https://github.com/optimism-java/shisui): written in Go diff --git a/public/content/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/developers/docs/nodes-and-clients/archive-nodes/index.md index 2cf47278c2c..297835b06d6 100644 --- a/public/content/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -63,7 +63,7 @@ Apart from general [recommendations for running a node](/developers/docs/nodes-a Always make sure to verify hardware requirements for a given mode in a client's documentation. The biggest requirement for archive nodes is the disk space. Depending on client, it varies from 3TB to 12TB. Even if HDD might be considered a better solution for large amounts of data, syncing it and constantly updating the head of the chain will require SSD drives. [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) drives are good enough but it should be a reliable quality, at least [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). Disks can be fitted into a desktop computer or a server with enough slots. Such dedicated devices are ideal for running high uptime node. It's totally possible to run it on a laptop but the portability will come at an additional cost. -All of the data needs to fit in one volume, therefore disks have to be joined, e.g. with [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) or [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html). It might be also worth considering using [ZFS](https://en.wikipedia.org/wiki/ZFS) as it supports "Copy-on-write" which ensures data is correctly written to the disk without any low level errors. +All of the data needs to fit in one volume, therefore disks have to be joined, e.g. with [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) or LVM. It might be also worth considering using [ZFS](https://en.wikipedia.org/wiki/ZFS) as it supports "Copy-on-write" which ensures data is correctly written to the disk without any low level errors. For more stability and security in preventing accidental database corruption, especially in a professional setup, consider using [ECC memory](https://en.wikipedia.org/wiki/ECC_memory) if your system supports it. The size of RAM is generally advised to be the same as for a full node but more RAM can help speed up the synchronization. diff --git a/public/content/developers/docs/smart-contracts/formal-verification/index.md b/public/content/developers/docs/smart-contracts/formal-verification/index.md index 8136d5333b9..30b66d6c763 100644 --- a/public/content/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Low-level formal specifications can be given as either Hoare-style properties or ### Hoare-style properties {#hoare-style-properties} -[Hoare Logic](https://en.wikipedia.org/wiki/Hoare_logic) provides a set of formal rules for reasoning about the correctness of programs, including smart contracts. A Hoare-style property is represented by a Hoare triple {_P_}_c_{_Q_}, where _c_ is a program and _P_ and _Q_ are predicates on the state of the _c_ (i.e., the program), formally described as _preconditions_ and _postconditions_, respectively. +[Hoare Logic](https://en.wikipedia.org/wiki/Hoare_logic) provides a set of formal rules for reasoning about the correctness of programs, including smart contracts. A Hoare-style property is represented by a Hoare triple `{P}c{Q}`, where `c` is a program and `P` and `Q` are predicates on the state of the `c` (i.e., the program), formally described as _preconditions_ and _postconditions_, respectively. A precondition is a predicate describing the conditions required for the correct execution of a function; users calling into the contract must satisfy this requirement. A postcondition is a predicate describing the condition that a function establishes if correctly executed; users can expect this condition to be true after calling into the function. An _invariant_ in Hoare logic is a predicate that is preserved by execution of a function (i.e., it doesn't change). diff --git a/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md b/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md index b297f49402a..7051bd36a8b 100644 --- a/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md +++ b/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md @@ -561,7 +561,7 @@ These days there are a lot of [L2 scaling solution](https://ethereum.org/en/laye } ``` -# Conclusion {#conclusion} +## Conclusion {#conclusion} Of course, you don't really care about providing a user interface for `Greeter`. You want to create a user interface for your own contracts. To create your own application, run these steps: diff --git a/public/content/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/developers/tutorials/erc-721-vyper-annotated-code/index.md index 43eb5b7b7c8..64ca43a6d71 100644 --- a/public/content/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -278,8 +278,7 @@ def supportsInterface(_interfaceID: bytes32) -> bool: ``` In contrast to Python, Vyper is a [static typed language](https://wikipedia.org/wiki/Type_system#Static_type_checking). -You can't declare a variable, or a function parameter, without identifying the [data -type](https://vyper.readthedocs.io/en/latest/types.html). In this case the input parameter is `bytes32`, a 256-bit value +You can't declare a variable, or a function parameter, without identifying the [data type](https://vyper.readthedocs.io/en/latest/types.html). In this case the input parameter is `bytes32`, a 256-bit value (256 bits is the native word size of the [Ethereum Virtual Machine](/developers/docs/evm/)). The output is a boolean value. By convention, the names of function parameters start with an underscore (`_`). @@ -689,14 +688,14 @@ Anybody who is allowed to transfer a token is allowed to burn it. While a burn a transfer to the zero address, the zero address does not actually receives the token. This allows us to free up all the storage that was used for the token, which can reduce the gas cost of the transaction. -# Using this Contract {#using-contract} +## Using this Contract {#using-contract} In contrast to Solidity, Vyper does not have inheritance. This is a deliberate design choice to make the code clearer and therefore easier to secure. So to create your own Vyper ERC-721 contract you take [this contract](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) and modify it to implement the business logic you want. -# Conclusion {#conclusion} +## Conclusion {#conclusion} For review, here are some of the most important ideas in this contract: diff --git a/public/content/developers/tutorials/erc20-annotated-code/index.md b/public/content/developers/tutorials/erc20-annotated-code/index.md index 198e266d5df..556d47fafd3 100644 --- a/public/content/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/developers/tutorials/erc20-annotated-code/index.md @@ -681,7 +681,7 @@ the way normal addition does. These are the four functions that do the actual work: `_transfer`, `_mint`, `_burn`, and `_approve`. -#### The \_transfer function {#\_transfer} +#### The _transfer function {#_transfer} ```solidity /** @@ -757,7 +757,7 @@ is atomic, nothing can happen in the middle of it. Finally, emit a `Transfer` event. Events are not accessible to smart contracts, but code running outside the blockchain can listen for events and react to them. For example, a wallet can keep track of when the owner gets more tokens. -#### The \_mint and \_burn functions {#\_mint-and-\_burn} +#### The _mint and _burn functions {#_mint-and-_burn} These two functions (`_mint` and `_burn`) modify the total supply of tokens. They are internal and there is no function that calls them in this contract, @@ -819,7 +819,7 @@ Make sure to update `_totalSupply` when the total number of tokens changes. The `_burn` function is almost identical to `_mint`, except it goes in the other direction. -#### The \_approve function {#\_approve} +#### The _approve function {#_approve} This is the function that actually specifies allowances. Note that it allows an owner to specify an allowance that is higher than the owner's current balance. This is OK because the balance is @@ -904,7 +904,7 @@ are not designed to handle it. This is the hook function to be called during transfers. It is empty here, but if you need it to do something you just override it. -# Conclusion {#conclusion} +## Conclusion {#conclusion} For review, here are some of the most important ideas in this contract (in my opinion, yours is likely to vary): diff --git a/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md index 54701b13fb4..b532c669239 100644 --- a/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -263,7 +263,7 @@ In your project directory type: npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" ``` -### Step 13: Update hardhat.config.js {#step-13-update-hardhat.configjs} +### Step 13: Update hardhat.config.js {#step-13-update-hardhat-configjs} We’ve added several dependencies and plugins so far, now we need to update `hardhat.config.js` so that our project knows about all of them. diff --git a/public/content/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/developers/tutorials/how-to-mint-an-nft/index.md index f6e3081f671..c2bfd8bdf49 100644 --- a/public/content/developers/tutorials/how-to-mint-an-nft/index.md +++ b/public/content/developers/tutorials/how-to-mint-an-nft/index.md @@ -12,7 +12,7 @@ published: 2021-04-22 [3LAU](https://www.forbes.com/sites/abrambrown/2021/03/03/3lau-nft-nonfungible-tokens-justin-blau/?sh=5f72ef64643b): $11 Million [Grimes](https://www.theguardian.com/music/2021/mar/02/grimes-sells-digital-art-collection-non-fungible-tokens): $6 Million -All of them minted their NFTs using Alchemy’s powerful API. In this tutorial, we’ll teach you how to do the same in <10 minutes. +All of them minted their NFTs using Alchemy’s powerful API. In this tutorial, we’ll teach you how to do the same in \<10 minutes. “Minting an NFT” is the act of publishing a unique instance of your ERC-721 token on the blockchain. Using our smart contract from [Part 1 of this NFT tutorial series](/developers/tutorials/how-to-write-and-deploy-an-nft/), let’s flex our Web3 skills and mint an NFT. At the end of this tutorial, you’ll be able to mint as many NFTs as your heart (and wallet) desires! diff --git a/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 22a5d440396..dd9fb3017f3 100644 --- a/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -73,6 +73,7 @@ Now that we’re inside our project folder, we’ll use npm init to initialize t It doesn’t really matter how you answer the installation questions; here is how we did it for reference: +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -95,6 +96,7 @@ It doesn’t really matter how you answer the installation questions; here is ho "author": "", "license": "ISC" } +``` Approve the package.json, and we’re good to go! @@ -255,6 +257,7 @@ We’ve added several dependencies and plugins so far, now we need to update har Update your hardhat.config.js to look like this: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -272,6 +275,7 @@ Update your hardhat.config.js to look like this: } }, } +``` ## Step 14: Compile our contract {#compile-contract} diff --git a/public/content/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/developers/tutorials/reverse-engineering-a-contract/index.md index f1ff9f47fcf..f0d56c0508c 100644 --- a/public/content/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/developers/tutorials/reverse-engineering-a-contract/index.md @@ -51,8 +51,8 @@ Contracts are always executed from the first byte. This is the initial part of t | 4 | MSTORE | Empty | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | Empty | This code does two things: @@ -117,8 +117,8 @@ The `NOT` is bitwise, so it reverses the value of every bit in the call value. | -----: | ------------ | --------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | We jump if `Value*` is smaller than 2^256-CALLVALUE-1 or equal to it. This looks like logic to prevent overflow. And indeed, we see that after a few nonsense operations (writing to memory is about to get deleted, for example) at offset 0x01DE the contract reverts if the overflow is detected, which is normal behavior. @@ -429,7 +429,7 @@ The code in offsets 0x138-0x143 is identical to what we saw in 0x103-0x10E in `s | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -469,8 +469,8 @@ Let's see what happens if the function _does_ get the call data it needs. | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -63,12 +64,14 @@ Somewhat like this : "typescript": "^3.8.3" } } +```
tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -85,6 +88,7 @@ Somewhat like this : "target": "ES2018" } } +```
@@ -99,6 +103,7 @@ Somewhat like this :
.eslintrc.js +```js module.exports = { "env": { "es6": true @@ -633,6 +638,7 @@ Somewhat like this : } ] } +```
@@ -704,6 +710,7 @@ You should see that Waffle compiled your contract and placed the resulting JSON
BasicToken.json +```json { "abi": [ { @@ -1004,6 +1011,7 @@ You should see that Waffle compiled your contract and placed the resulting JSON }, "bytecode": "60806040523480156200001157600080fd5b506040516200153938038062001539833981810160405260208110156200003757600080fd5b81019080805190602001909291905050506040518060400160405280600581526020017f42617369630000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f42534300000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000cc92919062000389565b508060049080519060200190620000e592919062000389565b506012600560006101000a81548160ff021916908360ff16021790555050506200011633826200011d60201b60201c565b5062000438565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620001d560008383620002fb60201b60201c565b620001f1816002546200030060201b62000f2d1790919060201c565b6002819055506200024f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200030060201b62000f2d1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6000808284019050838110156200037f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003cc57805160ff1916838001178555620003fd565b82800160010185558215620003fd579182015b82811115620003fc578251825591602001919060010190620003df565b5b5090506200040c919062000410565b5090565b6200043591905b808211156200043157600081600090555060010162000417565b5090565b90565b6110f180620004486000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033" } +```
diff --git a/public/content/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/developers/tutorials/waffle-test-simple-smart-contract/index.md index 0594f138f44..117011e3e1c 100644 --- a/public/content/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -21,7 +21,7 @@ published: 2021-02-26 - You have used some package managers like yarn or npm - You possess very basic knowledge of smart contracts and Solidity -# Getting started {#getting-started} +## Getting started {#getting-started} The tutorial demonstrates test setup and run using yarn, but there is no problem if you prefer npm - I will provide proper references to the official Waffle [documentation](https://ethereum-waffle.readthedocs.io/en/latest/index.html). @@ -100,7 +100,7 @@ Testing with Waffle requires using Chai matchers and Mocha, so you need to [add] If you want to [execute](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) your tests, just run `yarn test` . -# Testing {#testing} +## Testing {#testing} Now create the `test` directory and create the new file `test\EtherSplitter.test.ts`. Copy the snippet below and paste it to our test file. @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { The test, if passed, will assure us that the transaction was reverted indeed. However, there must be also an exact match between the messages that we passed in `require` statement and the message we expect in `revertedWith`. If we go back to the code of EtherSplitter contract, in the `require` statement for the wei amount, we provide the message: 'Uneven wei amount not allowed'. This matches the message we expect in our test. If they were not equal, the test would fail. -# Congratulations! {#congratulations} +## Congratulations! {#congratulations} You've made your first big step towards testing smart contracts with Waffle! You might be interested in other Waffle tutorials: diff --git a/public/content/developers/tutorials/yellow-paper-evm/index.md b/public/content/developers/tutorials/yellow-paper-evm/index.md index e9635682702..31370595026 100644 --- a/public/content/developers/tutorials/yellow-paper-evm/index.md +++ b/public/content/developers/tutorials/yellow-paper-evm/index.md @@ -173,7 +173,7 @@ We have an exceptional halt if any of these conditions is true: The function _W(w,μ)_ is defined later in equation 150. _W(w,μ)_ is true if one of these conditions is true: - - **_w ∈ {CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** + - **_w ∈ \{CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** These opcodes change the state, either by creating a new contract, storing a value, or destroying the current contract. - **_LOG0≤w ∧ w≤LOG4_** @@ -240,7 +240,7 @@ The address whose balance we need to find is _μs[0] mod 2160s[0] mod 2160] ≠ ∅_, it means that there is information about this address. In that case, _σ[μs[0] mod 2160]b_ is the balance for that address. If _σ[μs[0] mod 2160] = ∅_, it means that this address is uninitialized and the balance is zero. You can see the list of account information fields in section 4.1 on p. 4. -The second equation, _A'a ≡ Aa ∪ {μs[0] mod 2160}_, is related to the difference in cost between access to warm storage (storage that has recently been accessed and is likely to be cached) and cold storage (storage that hasn't been accessed and is likely to be in slower storage that is more expensive to retrieve). _Aa_ is the list of addresses previously accessed by the transaction, which should therefore be cheaper to access, as defined in section 6.1 on p. 8. You can read more about this subject in [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). +The second equation, _A'a ≡ Aa ∪ \{μs[0] mod 2160}_, is related to the difference in cost between access to warm storage (storage that has recently been accessed and is likely to be cached) and cold storage (storage that hasn't been accessed and is likely to be in slower storage that is more expensive to retrieve). _Aa_ is the list of addresses previously accessed by the transaction, which should therefore be cheaper to access, as defined in section 6.1 on p. 8. You can read more about this subject in [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). | Value | Mnemonic | δ | α | Description | | ----: | -------- | --- | --- | --------------------------------------- | diff --git a/public/content/privacy-policy/index.md b/public/content/privacy-policy/index.md index 900fa30f2cf..f1bd74545e4 100644 --- a/public/content/privacy-policy/index.md +++ b/public/content/privacy-policy/index.md @@ -18,7 +18,7 @@ In case you provide us with the personal data of third persons (such as family m **2. Responsible Person** -For any matters, relating to data protection you may contact in writing by e-mail or letter to the following address: +For any matters, relating to data protection you may contact notices@ethereum.org in writing by e-mail or letter to the following address: Ethereum Foundation Zeughausgasse 7A, @@ -47,7 +47,7 @@ Furthermore, the IP addresses may be evaluated, together with other data, in cas **3.2 Use of Website Cookies** -The Websites may use cookies. Cookies are text files that are stored in a computer system via an Internet browser. More detailed information on cookies and how they work can be found at: . +The Websites may use cookies. Cookies are text files that are stored in a computer system via an Internet browser. More detailed information on cookies and how they work can be found at: http://www.allaboutcookies.org. Many Internet sites and servers use cookies. Many cookies contain a so-called cookie ID. A cookie ID is a unique identifier of the cookie. It consists of a character string through which Internet pages and servers can be assigned to the specific Internet browser in which the cookie was stored. This allows visited Internet sites and servers to differentiate the individual browser of the data subject from other Internet browsers that contain other cookies. A specific Internet browser can be recognized and identified using the unique cookie ID. @@ -81,13 +81,13 @@ Any processing of this technical personal data helps us to identify what is work **3.4 Opening an account for the Ethereum Web Forum** -To access our forums at you must set up an account and provide us with your username, e-mail address, skype name, and password. +To access our forums at https://forum.ethereum.org/ you must set up an account and provide us with your username, e-mail address, skype name, and password. The collected data, which you have voluntarily provided, is used for the purpose of providing your password-protected access to your base data we have stored. The legal basis for processing the data for this purpose lies in the consent you have provided in accordance with Art. 6 Par. 1 lit. a GDPR. **3.5 Contact possibility via the Websites** -You may contact us via our Websites’ contact page or by e-mail to the following e-mail address: . For this, we require the following information: Name, Subject, E-Mail address, message. +You may contact us via our Websites’ contact page or by e-mail to the following e-mail address: support@ethereum.org. For this, we require the following information: Name, Subject, E-Mail address, message. We use this data, which you may give voluntarily, only in order to answer your contact question or to reply to your e-mail in the best possible manner. Therefore, the processing of this data is in our legitimate interest in accordance with Art. 6 Par. 1 lit. f GDPR and you have provided consent in accordance with Art. 6 Par. 1 lit. a GDPR. @@ -222,11 +222,11 @@ For more information on applicable privacy regulations, you may refer to: - EU General Data Protection Regulation: - + https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv:OJ.L_.2016.119.01.0001.01.ENG - Swiss Federal Act on Data Protection: - + https://www.admin.ch/opc/en/classified-compilation/19920153/index.html - Swiss Ordinance to the Federal Act on Data Protection: - + https://www.admin.ch/opc/en/classified-compilation/19930159/index.html Please do not hesitate to contact us if you have any questions regarding this Privacy Policy by contacting us at [support@ethereum.org](mailto:support@ethereum.org). diff --git a/public/content/roadmap/account-abstraction/index.md b/public/content/roadmap/account-abstraction/index.md index 6927aade99f..be8643c217a 100644 --- a/public/content/roadmap/account-abstraction/index.md +++ b/public/content/roadmap/account-abstraction/index.md @@ -10,9 +10,9 @@ summaryPoints: # Account abstraction {#account-abstraction} -Users interact with Ethereum using **[externally owned accounts (EOAs)](/glossary/#eoa)**. This is the only way to start a transaction or execute a smart contract. This limits how users can interact with Ethereum. For example, it makes it difficult to do batches of transactions and requires users to always keep an ETH balance to cover gas. +Most existing users interact with Ethereum using **[externally owned accounts (EOAs)](/glossary/#eoa)**. This limits how users can interact with Ethereum. For example, it makes it difficult to do batches of transactions and requires users to always keep an ETH balance to pay transaction fees. -Account abstraction is a way to solve these problems by allowing users to flexibly program more security and better user experiences into their accounts. This can happen by [upgrading EOAs](https://eips.ethereum.org/EIPS/eip-3074) so they can be controlled by smart contracts, or by [upgrading smart contracts](https://eips.ethereum.org/EIPS/eip-2938) so they can initiate transactions. These options both require changes to the Ethereum protocol. There is also a third path involving adding a [second, separate transaction system](https://eips.ethereum.org/EIPS/eip-4337) to run in parallel to the existing protocol. Regardless of the route, the outcome is access to Ethereum via smart contract wallets, either natively supported as part of the existing protocol or via an add-on transaction network. +Account abstraction is a way to solve these problems by allowing users to flexibly program more security and better user experiences into their accounts. This can happen by [upgrading EOAs](https://eips.ethereum.org/EIPS/eip-7702) so they can be controlled by smart contracts. There is also another path involving adding a [second, separate transaction system](https://eips.ethereum.org/EIPS/eip-4337) to run in parallel to the existing protocol. Regardless of the route, the outcome is access to Ethereum via smart contract wallets, either natively supported as part of the existing protocol or via an add-on transaction network. Smart contract wallets unlock many benefits for the user, including: @@ -74,12 +74,6 @@ These are just a few examples of how user experiences could be leveled up by acc Smart contract wallets exist today but are challenging to implement because the EVM does not support them. Instead, they rely on wrapping relatively complex code around standard Ethereum transactions. Ethereum can change this by allowing smart contracts to initiate transactions, handling the necessary logic in Ethereum smart contracts instead of offchain. Putting logic into smart contracts also increases Ethereum's decentralization since it removes the need for "relayers" run by wallet developers to translate messages signed by the user to regular Ethereum transactions. - - -EIP-2771 introduces the concept of meta-transactions that allow third parties to pay for a user's gas costs without making changes to the Ethereum protocol. The idea is that transactions signed by a user get sent to a `Forwarder` contract. The forwarder is a trusted entity that verifies that transactions are valid before sending them on to a gas relay. This is done offchain, avoiding the need to pay gas. The gas relay passes the transaction on to a `Recipient` contract, paying the necessary gas to make the transaction executable on Ethereum. The transaction is executed if the `Forwarder` is known and trusted by the `Recipient`. This model makes it easy for developers to implement gasless transactions for users. - - - EIP-4337 is the first step towards native smart contract wallet support in a decentralized way without requiring changes to the Ethereum protocol. Instead of modifying the consensus layer to support smart contract wallets, a new system is added separately to the normal transaction gossip protocol. This higher-level system is built around a new object called a UserOperation that package up actions from a user along with the relevant signatures. These UserOperation objects then get broadcast into a dedicated mempool where validators can collect them into a "bundle transaction". The bundle transaction represents a sequence of many individual UserOperations and can be included in Ethereum blocks just like a normal transaction, and would be picked up by validators using a similar fee-maximizing selection model. @@ -90,25 +84,9 @@ The way wallets work would also change under EIP-4337. Instead of each wallet re - - -EIP-2938 aims to update the Ethereum protocol by introducing a new transaction type, AA_TX_TYPE that includes three fields: nonce, target and data, where nonce is a transaction counter, target is the entry point contract address and data is EVM bytecode. To execute these transactions, two new instructions (known as opcodes) have to be added to the EVM: NONCE and PAYGAS. The NONCE opcode tracks the transaction sequence and PAYGAS calculates and withdraws the gas required to execute the transaction from the contract's balance. These new features allow Ethereum to support smart contract wallets natively as the necessary infrastructure is built into Ethereum's protocol. - -Note that EIP-2938 is currently not active. The community is currently favoring EIP-4337 because it does not require changes to the protocol. - - - - - -EIP-3074 aims to update Ethereum's externally-owned accounts by allowing them to delegate control to a smart contract. This means smart contract logic could approve transactions originating from an EOA. This would allow features such as gas-sponsoring and batched transactions. For this to work, two new opcodes have to be added to the EVM: AUTH and AUTHCALL. With EIP-3074 the benefits of a smart contract wallet are made available without needing a contract - instead, a specific type of stateless, trustless, non-upgradeable contract known as an "invoker" handles the transactions. - -Note that EIP-3074 is currently not active. The community is currently favoring EIP-4337 because it does not require changes to the protocol. - - - ## Current progress {#current-progress} -Smart contract wallets are already available, but more upgrades are required to make them as decentralized and permissionless as possible. EIP-4337 is a mature proposal that does not require any changes to Ethereum's protocol, so it is possible that this could be implemented quickly. However, upgrades that alter Ethereum's protocol are currently not in active development, so those changes may take much longer to ship. It is also possible that account abstraction is achieved well enough by EIP-4337 that no protocol changes are ever required. +**The next two Ethereum upgrades ([Pectra](/roadmap/pectra/) and later Fusaka) will address these improvements.** Pectra will be released soon in upcomming months. Smart contract wallets are already available. EIP-4337 is a mature proposal that does not require any changes to Ethereum's protocol, so many wallets have started adopting this standard. **Note**: You can track adoption of ERC-4337 smart contract wallets [via this dashboard](https://www.bundlebear.com/overview/all). @@ -120,11 +98,8 @@ Smart contract wallets are already available, but more upgrades are required to - ["Account abstraction ELI5" from Devcon Bogota](https://www.youtube.com/watch?v=QuYZWJj65AY) - [Vitalik's "Road to Account Abstraction" notes](https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap#Transaction-inclusion-lists) - [Vitalik's blog post on social recovery wallets](https://vitalik.eth.limo/general/2021/01/11/recovery.html) -- [EIP-2938 notes](https://hackmd.io/@SamWilsn/ryhxoGp4D#What-is-EIP-2938) -- [EIP-2938 documentation](https://eips.ethereum.org/EIPS/eip-2938) - [EIP-4337 notes](https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a) - [EIP-4337 documentation](https://eips.ethereum.org/EIPS/eip-4337) -- [EIP-2771 documentation](https://eips.ethereum.org/EIPS/eip-2771) - ["Basics of Account Abstraction" -- What is Account Abstraction Part I](https://www.alchemy.com/blog/account-abstraction) - [Charting Ethereum's Account Abstraction Roadmap I: EIP-3074, EIP-5806, & EIP-7702](https://research.2077.xyz/charting-ethereums-account-abstraction-roadmap-eip-3074-eip-5806-eip-7702) - [Awesome Account Abstraction](https://github.com/4337Mafia/awesome-account-abstraction) diff --git a/public/content/roadmap/merge/index.md b/public/content/roadmap/merge/index.md index ada43184597..c277698b432 100644 --- a/public/content/roadmap/merge/index.md +++ b/public/content/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Dapp and smart contract developers" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -The Merge came with changes to consensus, which also includes changes related to:< +The Merge came with changes to consensus, which also includes changes related to:
  • block structure
  • diff --git a/public/content/translations/bn/social-networks/index.md b/public/content/translations/bn/social-networks/index.md index 4017963bba3..3c0c57c0670 100644 --- a/public/content/translations/bn/social-networks/index.md +++ b/public/content/translations/bn/social-networks/index.md @@ -79,7 +79,7 @@ Reddit [কমিউনিটি পয়েন্টগুলি প্রচ এই প্রোগ্রামটি ইতিমধ্যেই লাইভ এবং r/CryptoCurrency [সাবরেডিট "মুনস" নামের এর কমিউনিটি পয়েন্টের ভার্সন রান করছে](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)। অফিসিয়াল বিবরণ অনুসারে, মুনস "সাবরেডিতে অবদানের জন্য পোস্টার, মন্তব্যকারী এবং মডারেটরদের পুরস্কৃত করে।" যেহেতু এই টোকেনগুলি ব্লকচেইনে রয়েছে (ব্যবহারকারীরা এগুলি ওয়ালেটগুলিতে গ্রহণ করে), তারা Reddit থেকে স্বাধীন এবং এটি কেড়ে নেওয়া যায় না। -Rinkeby টেস্টনেট-এ একটি বিটা পর্ব শেষ করার পর, Reddit কমিউনিটি পয়েন্টগুলি এখন [Arbitrum Nova](https://nova.arbitrum.io/)-এ রয়েছে, একটি ব্লকচেইন যা ). Pokud na tag umístíte kurzor, editor zobrazí jeho celý obsah – někdy tyto tagy představují odkazy. +Odkazy se také zobrazují ve zdrojovém textu ve formě tagů (tj. `<0>` ``). Pokud na tag umístíte kurzor, editor zobrazí jeho celý obsah – někdy tyto tagy představují odkazy. Je velmi důležité zkopírovat odkazy ze zdroje a neměnit jejich pořadí. @@ -154,7 +154,7 @@ nonce – _text, který není určen k překladu_ Zdrojový text také obsahuje zkrácené tagy, které obsahují pouze čísla, což znamená, že jejich funkce není okamžitě zřejmá. Můžete na tyto tagy najet kurzorem, abyste přesně zjistili, jakou funkci plní. -V příkladu níže můžete vidět, že když najedete kurzorem na tag <0> , zobrazí se, že představuje `` a obsahuje úryvek kódu, takže obsah uvnitř těchto tagů by neměl být přeložen. +V příkladu níže můžete vidět, že když najedete kurzorem na tag `<0>` , zobrazí se, že představuje `` a obsahuje úryvek kódu, takže obsah uvnitř těchto tagů by neměl být přeložen. ![Příklad nejednoznačných tagů.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/cs/desci/index.md b/public/content/translations/cs/desci/index.md index abe0906ff70..89459468a8c 100644 --- a/public/content/translations/cs/desci/index.md +++ b/public/content/translations/cs/desci/index.md @@ -126,7 +126,7 @@ Uvítáme návrhy na nové projekty, které je třeba uvést na seznam – pro z - [DeSci: Budoucnost výzkumu od Samuela Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) - [Financování vědy (Epilolog: DeSci a nové krypto základní prvky) od Nadie](https://nadia.xyz/science-funding) - [Decentralizace narušuje vývoj léků](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) -- [Co je DeSci – decentralizovaná věda?](​https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) +- [Co je DeSci – decentralizovaná věda?](https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) ### Videa {#videos} diff --git a/public/content/translations/cs/developers/docs/intro-to-ether/index.md b/public/content/translations/cs/developers/docs/intro-to-ether/index.md index ba2c5e26238..94b33c31ee8 100644 --- a/public/content/translations/cs/developers/docs/intro-to-ether/index.md +++ b/public/content/translations/cs/developers/docs/intro-to-ether/index.md @@ -22,7 +22,7 @@ První kryptoměnou byl Bitcoin, který vytvořil Satoshi Nakamoto. Od spuštěn Ethereum umožňuje vývojářům vytvářet [**decentralizované aplikace (dappky)**](/developers/docs/dapps), které sdílejí společný fond výpočetního výkonu. Tento sdílený fond je omezený, takže Ethereum potřebuje mechanismus, který určí, kdo ho může používat. Jinak by mohla dappka omylem nebo záměrně spotřebovat všechny síťové zdroje, což by znemožnilo přístup ostatním. -Kryptoměna ether podporuje mechanismus stanovení cen pro výpočetní výkon Etherea. Když uživatelé chtějí provést transakci, musí zaplatit ethereum, aby byla jejich transakce na blockchainu uznána. Tyto náklady jsou známé jako [poplatky za palivo](/developers/docs/gas/) a výše poplatku závisí na množství výpočetního výkonu potřebného k provedení transakce a na celosíťové poptávce po výpočetním výkonu v daném okamžiku. +Kryptoměna ether podporuje mechanismus stanovení cen pro výpočetní výkon Etherea. Když uživatelé chtějí provést transakci, musí zaplatit etherem, aby byla jejich transakce na blockchainu uznána. Tyto náklady jsou známé jako [poplatky za palivo](/developers/docs/gas/) a výše poplatku závisí na množství výpočetního výkonu potřebného k provedení transakce a na celosíťové poptávce po výpočetním výkonu v daném okamžiku. Proto, i když by škodlivá dappka odeslala nekonečnou smyčku, transakci by nakonec došel ether a byla by ukončena, což by umožnilo síti vrátit se do normálu. @@ -73,6 +73,6 @@ Uživatelé mohou zjistit zůstatek etheru na jakémkoliv [účtu](/developers/d - [Definování Etheru a Etherea](https://www.cmegroup.com/education/courses/introduction-to-ether/defining-ether-and-ethereum.html) – _CME Group_ - [Ethereum Whitepaper](/whitepaper/): Původní návrh Etherea. Tento dokument obsahuje popis etheru a motivaci za jeho vytvořením. -- [Kalkulačka gwei](https://www.alchemy.com/gwei-calculator): Použijte tuto kalkulačku gwei pro snadnou konverzi mezi wei, gwei a ethereum. Stačí zadat jakoukoliv částku ve wei, gwei nebo ETH a automaticky vypočítat konverzi. +- [Kalkulačka gwei](https://www.alchemy.com/gwei-calculator): Použijte tuto kalkulačku gwei pro snadnou konverzi mezi wei, gwei a etherem. Stačí zadat jakoukoliv částku ve wei, gwei nebo ETH a automaticky vypočítat konverzi. _Víte o komunitním zdroji, který vám pomohl? Upravte tuto stránku a přidejte ho!_ diff --git a/public/content/translations/cs/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/cs/developers/docs/smart-contracts/formal-verification/index.md index d9de656f74a..53676e5161c 100644 --- a/public/content/translations/cs/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/cs/developers/docs/smart-contracts/formal-verification/index.md @@ -70,9 +70,7 @@ Formální specifikace na nízké úrovni mohou být uvedeny buď jako vlastnost ### Vlastnosti ve stylu Hoareovy logiky {#hoare-style-properties} -[Hoareova logika](https://en.wikipedia.org/wiki/Hoare_logic) poskytuje sadu formálních pravidel pro uvažování o správnosti programů, včetně chytrých kontraktů. Vlastnost ve stylu Hoareovy logiky je reprezentována jako Hoareův trojúhelník {{_P_}_c_{_Q_}, kde _c_ je program a _P_ a _Q_ jsou predikáty na stavu _c_ (tj. programu), formálně popsané jako _předpoklady_ a _podmínky následku_. - -Předpoklad je predikát popisující podmínky potřebné pro správné provedení funkce; uživatelé volající kontrakt musí tuto podmínku splnit. Podmínka následku je predikát popisující podmínku, kterou funkce stanoví, pokud je správně provedena; uživatelé mohou očekávat, že tato podmínka bude po volání funkce pravdivá. _Invariant_ v Hoareově logice je predikát, který je zachován při provádění funkce (tj. nemění se). +[Hoareova logika](https://en.wikipedia.org/wiki/Hoare_logic) poskytuje sadu formálních pravidel pro uvažování o správnosti programů, včetně chytrých kontraktů. Vlastnost ve stylu Hoareovy logiky je reprezentována jako Hoareův trojúhelník `{P}c{Q}`, kde `c` je program a `P` a `Q` jsou predikáty na stavu `c` (tj. programu), formálně popsané jako _předpoklady_ a _podmínky následku_. Specifikace ve stylu Hoareovy logiky mohou zaručit buď _částečnou správnost_, _nebo úplnou správnost_. Implementace funkce kontraktu je „částečně správná“, pokud předpoklad platí před provedením funkce a když provedení končí, podmínka následku je také pravdivá. Důkaz úplné správnosti je obdržen, pokud je předpoklad pravdivý před provedením funkce, dále je zaručeno, že provádění funkce bude ukončeno, a když k tomu dojde, následek bude pravdivý. diff --git a/public/content/translations/cs/developers/docs/smart-contracts/security/index.md b/public/content/translations/cs/developers/docs/smart-contracts/security/index.md index ebc9bbe5ab7..9dc33171ffe 100644 --- a/public/content/translations/cs/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/cs/developers/docs/smart-contracts/security/index.md @@ -115,7 +115,7 @@ Existence auditů a bug bounty vás nezbavuje odpovědnosti za psaní kvalitníh - Pro testování, kompilaci a nasazování smart kontraktů používejte [vývojové prostředí](/developers/docs/frameworks/) -- Spusťe svůj kód v základních nástrojích pro analýzu kódu, jako jsou [Cyfrin Aderyn](https://github.com/Cyfrin/aderyn), Mythril a Slither. Ideálně byste to měli udělat před každým sloučením pull requestu a porovnat rozdíly ve výstupu +- Spusťe svůj kód v základních nástrojích pro analýzu kódu, jako jsou [Cyfrin Aaderyn](https://github.com/Cyfrin/aderyn), Mythril a Slither. Ideálně byste to měli udělat před každým sloučením pull requestu a porovnat rozdíly ve výstupu - Ujistěte se, že váš kód se kompiluje bez chyb a kompilátor Solidity nevydává žádná varování @@ -323,7 +323,7 @@ contract NoLongerAVictim { } ``` -Tento kontrakt provádí _kontrolu_ zůstatku uživatele, aplikuje _efekty_ funkce `withdraw()` (nastavením zůstatku uživatele na 0) a poté pokračuje v _interakci_ (odesláním ETH na uživatelovu adresu). Tímto způsobem kontrakt aktualizuje svůj stav před externím voláním, čímž eliminuje podmínku opětovného vstupu, která umožňovala původní útok. Kontrakt `Attacker` stále může znovu volat funkci `withdraw()` v kontraktu `NoLongerAVictim`, ale protože <0>balances[msg.sender] byla nastavena na 0, pokus o opětovné výběry by vyvolal chybu. +Tento kontrakt provádí _kontrolu_ zůstatku uživatele, aplikuje _efekty_ funkce `withdraw()` (nastavením zůstatku uživatele na 0) a poté pokračuje v _interakci_ (odesláním ETH na uživatelovu adresu). Tímto způsobem kontrakt aktualizuje svůj stav před externím voláním, čímž eliminuje podmínku opětovného vstupu, která umožňovala původní útok. Kontrakt `Attacker` stále může znovu volat funkci `withdraw()` v kontraktu `NoLongerAVictim`, ale protože `balances[msg.sender]` byla nastavena na 0, pokus o opětovné výběry by vyvolal chybu. Další možností je použití zámku pro vzájemné vyloučení (běžně označovaného jako „mutex“), který uzamkne část stavu kontraktu, dokud se nedokončí volání funkce. To je implementováno pomocí proměnné typu Boolean, která je nastavena na `true` před provedením funkce a po dokončení volání se vrací na hodnotu `false`. Jak je vidět v níže uvedeném příkladu, použití mutexu chrání funkci před rekurzivními voláními, zatímco původní volání je stále zpracováváno, což účinně zastavuje reentrancy. diff --git a/public/content/translations/de/contributing/translation-program/translators-guide/index.md b/public/content/translations/de/contributing/translation-program/translators-guide/index.md index 3c8dab3cdd8..718e6300c14 100644 --- a/public/content/translations/de/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/de/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Am besten ist es, Links direkt aus der Quelle zu kopieren, entweder durch Anklic ![Beispiel für einen Link.png](./example-of-link.png) -Links erscheinen im Quelltext auch in Form von Tags (z. B. <0> ). Wenn Sie mit dem Mauszeiger über das Tag fahren, zeigt der Editor den vollständigen Inhalt an. Manchmal stellen diese Tags auch Links dar. +Links erscheinen im Quelltext auch in Form von Tags (z. B. \<0> \). Wenn Sie mit dem Mauszeiger über das Tag fahren, zeigt der Editor den vollständigen Inhalt an. Manchmal stellen diese Tags auch Links dar. Es ist sehr wichtig, die Links aus der Quelle zu kopieren und die Reihenfolge nicht zu verändern. @@ -154,7 +154,7 @@ Nonce – _Nicht übersetzbarer Text_ Der Quelltext enthält auch verkürzte Tags, die nur Zahlen enthalten. Ihre Funktion ist dadurch nicht direkt ersichtlich. Sie können mit dem Mauszeiger über diese Tags fahren, um genau zu sehen, welche Funktion sie haben. -Im folgenden Beispiel können Sie sehen, dass der Mauszeiger über dem <0> Tag zeigt, dass er `` darstellt und einen Code-Ausschnitt enthält. Daher sollte der Inhalt innerhalb dieser Tags nicht übersetzt werden. +Im folgenden Beispiel können Sie sehen, dass der Mauszeiger über dem \<0> Tag zeigt, dass er `` darstellt und einen Code-Ausschnitt enthält. Daher sollte der Inhalt innerhalb dieser Tags nicht übersetzt werden. ![Beispiel für mehrdeutige Tags.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/de/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/de/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md index 12876cac61c..9ab712fd77c 100644 --- a/public/content/translations/de/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md +++ b/public/content/translations/de/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -74,7 +74,7 @@ Wenn diese Aktionen erkannt werden, wird der Validator geslasht. Das bedeutet, d ## Inactivity Leak {#inactivity-leak} -Wenn es in der Konsensebene mehr als vier Epochen lang zu keiner Finalisierung kam, wird ein Notfallprotokoll namens „Inactivity Leak“ aktiviert. Das ultimative Ziel des Inactivity Leak ist es, die Bedingungen dafür zu schaffen, dass die Chain Endgültigkeit wiedererlangen kann. Wie oben erläutert erfordert die Endgültigkeit eine 2/3-Mehrheit des gesamten eingesetzten Ethers, um sich auf Quell- und Ziel-Checkpoints zu einigen. Wenn Validatoren, die mehr als 1/3 der gesamten Validatoren repräsentieren, offline gehen oder es versäumen, korrekten Attestierungen einzureichen, ist es für eine 2/3-Supermajority nicht möglich, die Checkpoints zu finalisieren. Das Inactivity Leak sorgt dafür, dass der Stake der inaktiven Validatoren allmählich verschwindet, bis sie weniger als 1/3 des gesamten Stakes kontrollieren, sodass die verbleibenden aktiven Validatoren die Chain finalisieren können. Wie groß der Pool der inaktiven Validatoren auch sein mag, die verbleibenden aktiven Validatoren werden schließlich >2/3 des Stakes kontrollieren. Der Verlust von Stake ist ein starker Anreiz für inaktive Validatoren, so schnell wie möglich wieder aktiv zu werden! Zu einem Szenario mit Inactivity Leak kam es auf dem Medalle-Testnetz, als <66 % der aktiven Validatoren in der Lage waren, einen Konsens zur derzeitigen Spitze der Blockchain zu erreichen. Das Inactivity Leak wurde aktiviert und später wurde die Endgültigkeit zurückgewonnen! +Wenn es in der Konsensebene mehr als vier Epochen lang zu keiner Finalisierung kam, wird ein Notfallprotokoll namens „Inactivity Leak“ aktiviert. Das ultimative Ziel des Inactivity Leak ist es, die Bedingungen dafür zu schaffen, dass die Chain Endgültigkeit wiedererlangen kann. Wie oben erläutert erfordert die Endgültigkeit eine 2/3-Mehrheit des gesamten eingesetzten Ethers, um sich auf Quell- und Ziel-Checkpoints zu einigen. Wenn Validatoren, die mehr als 1/3 der gesamten Validatoren repräsentieren, offline gehen oder es versäumen, korrekten Attestierungen einzureichen, ist es für eine 2/3-Supermajority nicht möglich, die Checkpoints zu finalisieren. Das Inactivity Leak sorgt dafür, dass der Stake der inaktiven Validatoren allmählich verschwindet, bis sie weniger als 1/3 des gesamten Stakes kontrollieren, sodass die verbleibenden aktiven Validatoren die Chain finalisieren können. Wie groß der Pool der inaktiven Validatoren auch sein mag, die verbleibenden aktiven Validatoren werden schließlich >2/3 des Stakes kontrollieren. Der Verlust von Stake ist ein starker Anreiz für inaktive Validatoren, so schnell wie möglich wieder aktiv zu werden! Zu einem Szenario mit Inactivity Leak kam es auf dem Medalle-Testnetz, als \<66 % der aktiven Validatoren in der Lage waren, einen Konsens zur derzeitigen Spitze der Blockchain zu erreichen. Das Inactivity Leak wurde aktiviert und später wurde die Endgültigkeit zurückgewonnen! Das Belohnungs-, Strafen- und Slashing-Design des Konsensmechanismus ermutigt die einzelnen Validatoren dazu, sich korrekt zu verhalten. Aus diesen Designentscheidungen ergibt sich jedoch ein System, das starke Anreize für eine gleichmäßige Verteilung der Validatoren auf mehrere Clients setzt und die Anreize zur Dominanz eines einzelnen Clients stark reduzieren sollte. diff --git a/public/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md index 2a1bab7cc38..336f79d73a6 100644 --- a/public/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ Abgesehen von den generellen [Empfehlungen zum Betreiben einer Node](/developers Versichern Sie sich immer, dass ihre Hardware alle Voraussetzungen für einen gegebenen Modus in der Dokumentation des Clients erfüllt. Die größte Voraussetzung für Archivierungsknoten ist dabei der Speicherplatz. Je nach Client variiert dieser von 3 TB bis 12 TB. Obwohl HDD als eine bessere Lösung für große Datenmengen gesehen werden kann, wird eine SSD für das kontinuierliche Synchronisieren und Aktualisieren der Blockchain-Spitze benötigt. [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html)-Datenträger sind ausreichend, jedoch sollten sie von zuverlässiger Qualität, also mindestens [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences) sein. Festplatten können in einen Desktop Computer oder einen Server mit genügend Slots eingebaut werden. Diese speziellen Geräte sind ideal, um Knoten mit hoher Verfügbarkeit zu betreiben. Es ist durchaus möglich, Archivierungsknoten auf einem Laptop zu betreiben. Die Portabilität erfordert jedoch zusätzliche Kosten. -Alle Daten müssen in einen einzigen Speicherort passen, deshalb müssen Festplatten beispielsweise mit [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) oder [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html) zusammengelegt werden. Es könnte sich auch lohnen, [ZFS](https://en.wikipedia.org/wiki/ZFS) zu nutzen, da es „Kopieren beim Schreiben“ (Copy-on-write) unterstützt. Dadurch wird sicherstellt, dass Daten korrekt auf die Festplatten geschrieben werden, ohne dass geringfügige Fehler entstehen. +Alle Daten müssen in einen einzigen Speicherort passen, deshalb müssen Festplatten beispielsweise mit [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) oder LVM zusammengelegt werden. Es könnte sich auch lohnen, [ZFS](https://en.wikipedia.org/wiki/ZFS) zu nutzen, da es „Kopieren beim Schreiben“ (Copy-on-write) unterstützt. Dadurch wird sicherstellt, dass Daten korrekt auf die Festplatten geschrieben werden, ohne dass geringfügige Fehler entstehen. Für mehr Stabilität und Sicherheit bei der Prävention gegen die Beschädigung der Datenbanken, besonders in einer professionellen Einrichtung, sollten sie sich überlegen [ECC Speicher](https://en.wikipedia.org/wiki/ECC_memory) zu verwenden, sollte Ihr System dies unterstützen. Die Größe des RAM sollte genauso groß wie für einen vollständigen Knoten sein. Mehr RAM kann jedoch dazu beitragen, die Synchronisierung zu beschleunigen. diff --git a/public/content/translations/de/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/de/developers/docs/smart-contracts/formal-verification/index.md index 8a2c96b59bb..c6fc119f41b 100644 --- a/public/content/translations/de/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/de/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Formale Spezifizierungen auf Low-Level-Ebene können in Form von entweder Eigens ### Hoare-Stil-Eigenschaften {#hoare-style-properties} -Die [Hoare-Logik](https://en.wikipedia.org/wiki/Hoare_logic) bietet eine Reihe von formalen Regeln für Schlussfolgerungen über die Korrektheit von Programmen, einschließlich der von Smart Contracts. Eine Eigenschaft im Hoare-Stil wird durch ein Hoare-Tripel {_P_}_c_{_Q_} dargestellt, wobei _c_ ein Programm ist und _P_ und _Q_ Prädikate über den Zustand von _c_ (d.h. das Programm) sind, die formal als _Präkonditionen_ bzw. _Postkonditionen_ beschrieben werden. +Die [Hoare-Logik](https://en.wikipedia.org/wiki/Hoare_logic) bietet eine Reihe von formalen Regeln für Schlussfolgerungen über die Korrektheit von Programmen, einschließlich der von Smart Contracts. Eine Eigenschaft im Hoare-Stil wird durch ein Hoare-Tripel `{P}c{Q}` dargestellt, wobei `c` ein Programm ist und `P` und `Q` Prädikate über den Zustand von `c` (d.h. das Programm) sind, die formal als _Präkonditionen_ bzw. _Postkonditionen_ beschrieben werden. Eine Präkondition ist ein Prädikat, das die für die korrekte Ausführung einer Funktion erforderlichen Bedingungen beschreibt; Benutzer, die den Vertrag aufrufen, müssen diese Bedingung erfüllen. Eine Nachbedingung ist ein Prädikat, das die Bedingung beschreibt, die eine Funktion bei korrekter Ausführung festlegt; die Benutzer können davon ausgehen, dass diese Bedingung nach dem Aufruf der Funktion als erfüllt gilt. Eine _Invariante_ in der Hoare-Logik ist ein Prädikat, das durch die Ausführung einer Funktion erhalten bleibt (d. h. sich nicht verändert). diff --git a/public/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md index 64bd39ef562..a9b9884c8d5 100644 --- a/public/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md +++ b/public/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md @@ -15,7 +15,7 @@ published: 2021-04-22 [Beeple](https://www.nytimes.com/2021/03/11/arts/design/nft-auction-christies-beeple.html): 69 Millionen USD [3LAU](https://www.forbes.com/sites/abrambrown/2021/03/03/3lau-nft-nonfungible-tokens-justin-blau/?sh=5f72ef64643b): 11 Millionen USD [Grimes](https://www.theguardian.com/music/2021/mar/02/grimes-sells-digital-art-collection-non-fungible-tokens): 6 Millionen USD -Sie alle haben ihre NFTs mit der leistungsstarken API von Alchemy geprägt. In diesem Tutorial zeigen wir Ihnen, wie das in <10 Minuten geht. +Sie alle haben ihre NFTs mit der leistungsstarken API von Alchemy geprägt. In diesem Tutorial zeigen wir Ihnen, wie das in \<10 Minuten geht. "NFTs prägen" – ist die Veröffentlichung einer einzigartigen Instanz Ihres ERC-721-Tokens auf der Blockchain. Mit unserem Smart Contract aus [Teil 1 dieser NFT-Tutorialserie](/developers/tutorials/how-to-write-and-deploy-an-nft/) möchten wir unsere Web3-Fähigkeiten unter Beweis stellen und einen NFT prägen. Am Ende dieses Tutorials sind Sie selbst in der Lage, so viele NFTs zu prägen, wie Ihr Herz (und Ihr Wallet) begehrt. diff --git a/public/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 717e997ded9..6aad0d521a3 100644 --- a/public/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -77,7 +77,7 @@ Jetzt, da wir uns in unserem Projektordner befinden, verwenden wir "npm init" um npm init Es spielt keine Rolle, wie Sie die Fragen zur Installation beantworten, aber wir haben es folgendermaßen gemacht: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -100,7 +100,7 @@ Es spielt keine Rolle, wie Sie die Fragen zur Installation beantworten, aber wir "author": "", "license": "ISC" } - +``` Genehmigen Sie die Datei "package.json" und schon kann es losgehen. ## Schritt 7: [Hardhat](https://hardhat.org/getting-started/#overview) installieren {#install-hardhat} @@ -262,6 +262,7 @@ Wir haben bisher mehrere Abhängigkeiten und Plug-ins hinzugefügt. Jetzt müsse Aktualisieren Sie Ihre hardhat.config.js so, dass sie wie folgt aussieht: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -279,6 +280,7 @@ Aktualisieren Sie Ihre hardhat.config.js so, dass sie wie folgt aussieht: } }, } +``` ## Schritt 14: Vertrag kompilieren {#compile-contract} diff --git a/public/content/translations/de/roadmap/merge/index.md b/public/content/translations/de/roadmap/merge/index.md index 67f06bb3b71..cba8f0ae4cf 100644 --- a/public/content/translations/de/roadmap/merge/index.md +++ b/public/content/translations/de/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="dApp und Smart Contract Entwickler" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -The Merge trat ein, indem es Änderungen an der Konsens-Methode mit sich brachte, darunter Änderungen an:< +The Merge trat ein, indem es Änderungen an der Konsens-Methode mit sich brachte, darunter Änderungen an:
    • Block-Struktur
    • diff --git a/public/content/translations/el/developers/docs/frameworks/index.md b/public/content/translations/el/developers/docs/frameworks/index.md index c584d196d79..2f12f381b84 100644 --- a/public/content/translations/el/developers/docs/frameworks/index.md +++ b/public/content/translations/el/developers/docs/frameworks/index.md @@ -18,7 +18,7 @@ lang: el ## Προαπαιτούμενα {#prerequisites} -Πριν καταπιαστείτε με τα πλαίσια, σας συνιστούμε να διαβάσετε πρώτα την εισαγωγή μας στα [dapp](/developers/docs/dapps/) και στο < [Ethereum stack](/developers/docs/ethereum-stack/). +Πριν καταπιαστείτε με τα πλαίσια, σας συνιστούμε να διαβάσετε πρώτα την εισαγωγή μας στα [dapp](/developers/docs/dapps/) και στο [Ethereum stack](/developers/docs/ethereum-stack/). ## Διαθέσιμα πλαίσια ανάπτυξης {#available-frameworks} diff --git a/public/content/translations/el/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/el/developers/docs/nodes-and-clients/archive-nodes/index.md index 47ddd691541..1d3ebcc21a8 100644 --- a/public/content/translations/el/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/el/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ sidebarDepth: 2 Να φροντίζετε πάντα να επαληθεύετε τις απαιτήσεις υλικού για μια δεδομένη λειτουργία στην τεκμηρίωση ενός πελάτη. Η μεγαλύτερη απαίτηση για τους κόμβους αρχειοθέτησης είναι ο χώρος στο δίσκο. Ανάλογα με τον πελάτη, ποικίλλει από 3TB έως 12TB. Ακόμα και αν ο HDD μπορεί να θεωρηθεί καλύτερη λύση για μεγάλες ποσότητες δεδομένων, ο συγχρονισμός του και η συνεχής ενημέρωση της κεφαλής της αλυσίδας θα απαιτήσουν μονάδες SSD. Οι μονάδες [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) είναι αρκετά καλές, αλλά θα πρέπει να είναι αξιόπιστης ποιότητας, τουλάχιστον [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). Οι δίσκοι μπορούν να τοποθετηθούν σε έναν επιτραπέζιο υπολογιστή ή σε έναν διακομιστή με αρκετές υποδοχές. Τέτοιες αποκλειστικές συσκευές είναι ιδανικές για τη λειτουργία κόμβου υψηλού χρόνου λειτουργίας. Είναι απολύτως δυνατό να το εκτελέσετε σε φορητό υπολογιστή, αλλά η φορητότητα θα έχει επιπλέον κόστος. -Όλα τα δεδομένα πρέπει να χωρούν σε έναν τόμο, επομένως οι δίσκοι πρέπει να ενωθούν, π.χ. με [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) ή [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html). Ίσως αξίζει επίσης να εξετάσετε το ενδεχόμενο χρήσης του [ZFS](https://en.wikipedia.org/wiki/ZFS) καθώς υποστηρίζει "Copy-on-write" που διασφαλίζει ότι τα δεδομένα εγγράφονται σωστά στο δίσκο χωρίς σφάλματα χαμηλού επιπέδου. +Όλα τα δεδομένα πρέπει να χωρούν σε έναν τόμο, επομένως οι δίσκοι πρέπει να ενωθούν, π.χ. με [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) ή LVM. Ίσως αξίζει επίσης να εξετάσετε το ενδεχόμενο χρήσης του [ZFS](https://en.wikipedia.org/wiki/ZFS) καθώς υποστηρίζει "Copy-on-write" που διασφαλίζει ότι τα δεδομένα εγγράφονται σωστά στο δίσκο χωρίς σφάλματα χαμηλού επιπέδου. Για περισσότερη σταθερότητα και ασφάλεια στην αποφυγή τυχαίας καταστροφής της βάσης δεδομένων, ειδικά σε μια επαγγελματική εγκατάσταση, σκεφτείτε να χρησιμοποιήσετε [μνήμη ECC](https://en.wikipedia.org/wiki/ECC_memory) εάν το σύστημά σας την υποστηρίζει. Το μέγεθος της μνήμης RAM γενικά συνιστάται να είναι το ίδιο όπως για έναν πλήρη κόμβο, αλλά περισσότερη μνήμη RAM μπορεί να βοηθήσει στην επιτάχυνση του συγχρονισμού. diff --git a/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md index ab6ff9a3eea..8e51d7f8193 100644 --- a/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ lang: el ### Ιδιότητες τύπου Hoare {#hoare-style-properties} -Η [λογική Hoare](https://en.wikipedia.org/wiki/Hoare_logic) παρέχει ένα σύνολο τυπικών κανόνων για τον συλλογισμό σχετικά με τη σωστή λειτουργία των προγραμμάτων, συμπεριλαμβανομένων των έξυπνων συμβολαίων. Μια ιδιότητα τύπου Hoare αντιπροσωπεύεται από ένα τριπλό Hoare {_P_}_c_{_Q_}, όπου το _c_ είναι ένα πρόγραμμα και τα _P_ και _Q_ είναι προτάσεις για την κατάσταση του _c_ (δηλαδή, του προγράμματος), που περιγράφονται επίσημα ως _προϋποθέσεις_ και _μετα-συνθήκες_, αντίστοιχα. +Η [λογική Hoare](https://en.wikipedia.org/wiki/Hoare_logic) παρέχει ένα σύνολο τυπικών κανόνων για τον συλλογισμό σχετικά με τη σωστή λειτουργία των προγραμμάτων, συμπεριλαμβανομένων των έξυπνων συμβολαίων. Μια ιδιότητα τύπου Hoare αντιπροσωπεύεται από ένα τριπλό Hoare `{P}c{Q}`, όπου το `c` είναι ένα πρόγραμμα και τα `P` και `Q` είναι προτάσεις για την κατάσταση του `c` (δηλαδή, του προγράμματος), που περιγράφονται επίσημα ως _προϋποθέσεις_ και _μετα-συνθήκες_, αντίστοιχα. Μια προϋπόθεση είναι μια πρόταση που περιγράφει τις συνθήκες που απαιτούνται για τη σωστή εκτέλεση μιας συνάρτησης. Οι χρήστες που καλούν το συμβόλαιο πρέπει να ικανοποιούν αυτήν την απαίτηση. Μια μετα-συνθήκη είναι μια πρόταση που περιγράφει την κατάσταση που καθορίζει μια συνάρτηση εάν εκτελεστεί σωστά. Οι χρήστες μπορούν να αναμένουν ότι αυτή η συνθήκη θα είναι αληθής μετά την κλήση της συνάρτησης. Ένα _αμετάβλητο στοιχείο_ στη λογική Hoare είναι μια πρόταση που διατηρείται με εκτέλεση συνάρτησης (δηλαδή, δεν αλλάζει). diff --git a/public/content/translations/el/developers/docs/transactions/index.md b/public/content/translations/el/developers/docs/transactions/index.md index 3b067f11372..0015442fef4 100644 --- a/public/content/translations/el/developers/docs/transactions/index.md +++ b/public/content/translations/el/developers/docs/transactions/index.md @@ -114,7 +114,7 @@ lang: el Για παράδειγμα, ας δούμε [αυτή τη συναλλαγή](https://etherscan.io/tx/0xd0dcbe007569fcfa1902dae0ab8b4e078efe42e231786312289b1eee5590f6a1). Χρησιμοποιήστε το **Click to see More** για να δείτε τα δεδομένα κλήσεων. -Ο εκλέκτορας λειτουργίας είναι `0xa9059cbb`. Υπάρχουν πολλές [γνωστές λειτουργίες με αυτήν την υπογραφή](https://www.4byte.directory/signatures/?bytes4_signature=0xa9059cbb). [Σε αυτήν την περίπτωση <0>ο πηγαίος κώδικας της συμβολαίου](https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#code) έχει μεταφορτωθεί στο Etherscan, επομένως γνωρίζουμε ότι η λειτουργία είναι `transfer(address,uint256)`. +Ο εκλέκτορας λειτουργίας είναι `0xa9059cbb`. Υπάρχουν πολλές [γνωστές λειτουργίες με αυτήν την υπογραφή](https://www.4byte.directory/signatures/?bytes4_signature=0xa9059cbb). Σε αυτήν την περίπτωση [ο πηγαίος κώδικας της συμβολαίου](https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#code) έχει μεταφορτωθεί στο Etherscan, επομένως γνωρίζουμε ότι η λειτουργία είναι `transfer(address,uint256)`. Τα υπόλοιπα στοιχεία είναι: @@ -162,7 +162,7 @@ lang: el Το gas απαιτείται για κάθε συναλλαγή που περιλαμβάνει έξυπνο συμβόλαιο. -Τα έξυπνα συμβόλαια μπορούν επίσης να περιέχουν λειτουργίες γνωστές ως λειτουργίες < [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) ή [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions), οι οποίες δεν αλλάζουν την κατάσταση της συμβολαίου. Ως εκ τούτου, η κλήση αυτών των λειτουργιών από έναν EOA δεν απαιτεί gas. Η υποκείμενη κλήση RPC για αυτό το σενάριο είναι [`eth_call`](/developers/docs/apis/json-rpc#eth_call). +Τα έξυπνα συμβόλαια μπορούν επίσης να περιέχουν λειτουργίες γνωστές ως λειτουργίες [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) ή [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions), οι οποίες δεν αλλάζουν την κατάσταση της συμβολαίου. Ως εκ τούτου, η κλήση αυτών των λειτουργιών από έναν EOA δεν απαιτεί gas. Η υποκείμενη κλήση RPC για αυτό το σενάριο είναι [`eth_call`](/developers/docs/apis/json-rpc#eth_call). Σε αντίθεση με την πρόσβαση μέσω του `eth_call`, αυτές οι συναρτήσεις `view` ή `pure` καλούνται επίσης συνήθως εσωτερικά (δηλαδή από το ίδιο το συμβόλαιο ή από άλλο συμβόλαιο) το οποίο κοστίζει gas. diff --git a/public/content/translations/el/roadmap/merge/index.md b/public/content/translations/el/roadmap/merge/index.md index 6f2d24794ba..8d9bac9f387 100644 --- a/public/content/translations/el/roadmap/merge/index.md +++ b/public/content/translations/el/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Προγραμματιστές Dapp και Έξυπνων συμβολα contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -Η Συγχώνευση πρόσθεσε αλλαγές στη συναίνεση, η οποία περιλαμβάνει επίσης αλλαγές που σχετίζονται με:< +Η Συγχώνευση πρόσθεσε αλλαγές στη συναίνεση, η οποία περιλαμβάνει επίσης αλλαγές που σχετίζονται με:
      • δομή μπλοκ
      • diff --git a/public/content/translations/el/zero-knowledge-proofs/index.md b/public/content/translations/el/zero-knowledge-proofs/index.md index af6240059f6..9cf53aefad0 100644 --- a/public/content/translations/el/zero-knowledge-proofs/index.md +++ b/public/content/translations/el/zero-knowledge-proofs/index.md @@ -8,7 +8,7 @@ lang: el Μια απόδειξη μηδενικής γνώσης είναι ένας τρόπος απόδειξης της εγκυρότητας μιας δήλωσης χωρίς να αποκαλύπτεται η ίδια η δήλωση. Η μία πλευρά προσπαθεί να αποδείξει τη συναλλαγή, καθώς ο επικυρωτής είναι υπεύθυνος για την επιβεβαίωση αυτής της συναλλαγής. -Η απόδειξη μηδενικής γνώσης παρουσιάστηκε για πρώτη φορά σε μια εργασία το 1985 με τίτλο [«Η πολυπλοκότητα της γνώσης των διαδραστικών συστημάτων απόδειξης<»](http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf), η οποία δίνει έναν ορισμό των αποδείξεων μηδενικής γνώσης που χρησιμοποιούνται ευρέως σήμερα: +Η απόδειξη μηδενικής γνώσης παρουσιάστηκε για πρώτη φορά σε μια εργασία το 1985 με τίτλο [«Η πολυπλοκότητα της γνώσης των διαδραστικών συστημάτων απόδειξης\<»](http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf), η οποία δίνει έναν ορισμό των αποδείξεων μηδενικής γνώσης που χρησιμοποιούνται ευρέως σήμερα: > Ένα πρωτόκολλο απόδειξης μηδενικής γνώσης είναι μία μέθοδος μέσω της οποίας το ένα μέρος (αυτός που αποδεικνύει) **μπορεί να αποδείξει** στο άλλο μέρος (αυτόν που επικυρώνει) ότι **κάτι είναι αληθές, χωρίς να αποκαλύπτει κάποια πληροφορία** εκτός από το γεγονός ότι η συγκεκριμένη δήλωση είναι αληθής. diff --git a/public/content/translations/es/bridges/index.md b/public/content/translations/es/bridges/index.md index 3b276c43162..d762acd78b8 100644 --- a/public/content/translations/es/bridges/index.md +++ b/public/content/translations/es/bridges/index.md @@ -95,6 +95,15 @@ Muchas soluciones de puente adoptan modelos entre estos dos extremos con diferen +## Usar puentes {#use-bridge} + +Usar puentes le permite mover sus activos a través de diferentes cadenas de bloques. He aquí algunos recursos que le pueden ayudar a encontrar y usar puentes: + +- **[Resumen de los puentes L2BEAT ](https://l2beat.com/bridges/summary) & [Análisis de riesgo de puentes L2BEAT](https://l2beat.com/bridges/risk)**: Un resumen que comprende varios puentes, incluyendo detalles sobre la cuota de mercado, el tipo de puente y las cadenas de destino. L2BEAT también tiene análisis de riesgo de puentes, ayudando a los usuarios a tomar decisiones informadas a lo largo del proceso de elección de un puente. +- **[Resumen de los puentes DefiLlama](https://defillama.com/bridges/Ethereum)**: Un resumen de los volúmenes de puentes a lo largo de la red de Ethereum. + + + ## Riesgo al utilizar puentes {#bridge-risk} Los puentes se encuentran en las primeras etapas de desarrollo. Es probable que todavía no se haya descubierto el diseño óptimo de estos. Interactuar con cualquier tipo de puente conlleva riesgos: diff --git a/public/content/translations/es/community/research/index.md b/public/content/translations/es/community/research/index.md index ce18287bdd7..a8ea0700395 100644 --- a/public/content/translations/es/community/research/index.md +++ b/public/content/translations/es/community/research/index.md @@ -279,7 +279,7 @@ El staking líquido permite a los usuarios con menos de 32 ETH recibir rendimien - [Gestión de retirada de fondos de Lido](https://ethresear.ch/t/handling-withdrawals-in-lidos-eth-liquid-staking-protocol/8873) - [Credenciales de retirada](https://ethresear.ch/t/withdrawal-credential-rotation-from-bls-to-eth1/8722) -- [Los riesgos de los derivados del staking líquido] (https://notes.ethereum.org/@djrtwo/risks-of-lsd) +- [Los riesgos de los derivados del staking líquido](https://notes.ethereum.org/@djrtwo/risks-of-lsd) ## Pruebas {#testing} @@ -308,7 +308,7 @@ Se necesitan más herramientas de análisis de datos y paneles que proporcionen #### Investigación reciente {#recent-research-14} -- [Análisis de datos del Robust Incentives Group] (https://ethereum.github.io/rig/) +- [Análisis de datos del Robust Incentives Group](https://ethereum.github.io/rig/) ## Aplicaciones y herramientas {#apps-and-tooling} @@ -345,11 +345,11 @@ Un caso de uso de alto impacto para Ethereum es la capacidad de organizarse de m Las herramientas para desarrolladores de Ethereum están evolucionando rápidamente. Hay mucha investigación y desarrollo activo por hacer en esta área general. -#### Lectura de fondo {#lectura de fondo-17} +#### Lectura de fondo {#lectura-de-fondo-17} - [Herramientas por lenguaje de programación](/developers/docs/programming-languages/) - [Marcos de desarrolladores](/developers/docs/frameworks/) -- [Lista de herramientas de desarrollo de consenso] (https://github.com/ConsenSys/ethereum-developer-tools-list) +- [Lista de herramientas de desarrollo de consenso](https://github.com/ConsenSys/ethereum-developer-tools-list) - [Estándares de tokens](/desarrolladores/documentos/estándares/tokens/) - [CryptoDevHub: herramientas de EVM](https://cryptodevhub.io/wiki/ethereum-virtual-machine-tools) @@ -374,9 +374,9 @@ Los oráculos importan datos fuera de la cadena a la cadena de bloques de manera Por lo general, los hackeos en Ethereum se aprovechan de puntos flacos en aplicaciones individuales y no en el propio protocolo. Los hackers y los desarrolladores de aplicaciones están enfrascados en una carrera armamentística para desarrollar nuevos ataques y defensas. Esto significa que siempre es necesario realizar una investigación y un desarrollo importantes para mantener las aplicaciones a salvo de los hackeos. -#### Lectura de fondo {#lectura de fondo-19} +#### Lectura de fondo {#lectura-de-fondo-19} -- [Informe de explotación de agujero de gusano] (https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) +- [Informe de explotación de agujero de gusano](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) - [Lista de hackeo de contratos de Ethereum post mórtem](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191) - [Rekt News](https://twitter.com/RektHQ?s=20\&t=3otjYQdM9Bqk8k3n1a1Adg) @@ -388,7 +388,7 @@ Por lo general, los hackeos en Ethereum se aprovechan de puntos flacos en aplica La descentralización de toda la pila de tecnología de Ethereum es un área de investigación importante. Actualmente, las dapps en Ethereum suelen tener algunos puntos de centralización, ya que dependen de herramientas o infraestructuras centralizadas. -#### Lectura de fondo {#lectura de fondo-20} +#### Lectura de fondo {#lectura-de-fondo-20} - [Pila de Ethereum](/developers/docs/ethereum-stack/) - [Coinbase: Introducción al Stack Web3](https://blog.coinbase.com/a-simple-guide-to-the-web3-stack-785240e557f0) diff --git a/public/content/translations/es/contributing/adding-staking-products/index.md b/public/content/translations/es/contributing/adding-staking-products/index.md index 64ae09322f9..5e56bb9f518 100644 --- a/public/content/translations/es/contributing/adding-staking-products/index.md +++ b/public/content/translations/es/contributing/adding-staking-products/index.md @@ -87,7 +87,7 @@ Para cualquier software personalizado o contratos inteligentes involucrados: Para productos de software relacionados con la configuración de nodo o cliente, administración o migración: -**¿Qué clientes de la capa de consenso (por ejemplo, Lighthouse, Teku, Nimbus, Prysm) se permiten? ** +**¿Qué clientes de la capa de consenso (por ejemplo, ¿Se admiten Lighthouse, Teku, Nimbus, Prysm, Grandine)?** - ¿Qué clientes se admiten? ¿Puede elegir el usuario? - Esto se utiliza para determinar la puntuación «multicliente» de los productos. diff --git a/public/content/translations/es/contributing/design/index.md b/public/content/translations/es/contributing/design/index.md index 951a4bc9d69..982a2daee9f 100644 --- a/public/content/translations/es/contributing/design/index.md +++ b/public/content/translations/es/contributing/design/index.md @@ -6,7 +6,7 @@ lang: es # Contribución de diseño a ethereum.org {#design-contributions} -El diseño es un componente crítico para cualquier projecto, y dedicando tu tiempo y habilidades de diseño para Ethereum.org, puedes ayudar a mejorar la experiencia del usuario para nuestros visitantes. Contribuyendo a un projecto de fuente abierta da la oportunidad para ganar experiencia relevante y desarrollar tus habilidades en un ambiente colaborativo. Tendrás la oportunidad para trabajar con otros diseñadores, desarrolladores, y miembros de la comunidad, a todos aquellos quienes tendrán sus propias y únicas perspectivas y visiones. +El diseño es un componente vital de cualquier proyecto, por eso dedicando tiempo y aplicando sus conocimientos de diseño a ethereum.org, puede ayudar a mejorar la experiencia de usuario para nuestros visitantes. Contribuyendo a un projecto de fuente abierta da la oportunidad para ganar experiencia relevante y desarrollar tus habilidades en un ambiente colaborativo. Tendrás la oportunidad para trabajar con otros diseñadores, desarrolladores, y miembros de la comunidad, a todos aquellos quienes tendrán sus propias y únicas perspectivas y visiones. Por último, esto es un buen camino para construir un diverso e impresionante portafolio que demuestra tus habilidades de diseño. @@ -30,7 +30,7 @@ Proporciona opiniones en nuestra página web por: ###  Si detecta errores de diseño en la página web, comuníquelos {#report-design-issues} -Ethereum.org es una página de rápido crecimiento con muchas características y contenido. Algunos de la interfaz de usuarios pueden fácilmente convertirse en obsoletos o podrían ser mejorados. Si usted detecta alguno de estos fallos, por favor comuníquelo para que podamos solucionarlo. +ethereum.org es un sitio en rápido crecimiento con muchas funcionalidades y contenido. Algunos de la interfaz de usuarios pueden fácilmente convertirse en obsoletos o podrían ser mejorados. Si usted detecta alguno de estos fallos, por favor comuníquelo para que podamos solucionarlo. 1. Ve a través de la página web y presta atención a sus diseño. 2. Toma captures y notas si ves algún visual o asuntos UX. @@ -51,10 +51,10 @@ Nuestro sistema de diseño convierte el diseñado de ethereum.org fácil y senci 1. Seleccione una incidencia por abordar en el [tablón del sistema de diseño](https://github.com/ethereum/ethereum-org-website/labels/design%20system) en GitHub o cree uno nuevo. 2. Solicita que te asignen el problema seleccionado. -3. Comienza a diseñar el componente solicitado en figma. +3. Empiece a diseñar el componente solicitado en Figma. 4. Compártelo con el equipo de diseño en GitHub una vez que necesites una revisión o consejo. 5. El equipo de diseño lo revisará. -6. El equipo de Diseño incorporará los cambios en el archivo principal y lo publicará a la comunidad. +6. El equipo de diseño incorporará los cambios en el archivo principal y publicará el archivo a la comunidad. ###  Escribe contenido relacionado con el diseño en el sitio web {#write-design-articles} @@ -64,7 +64,7 @@ La comunidad para desarrolladores de Ethereum es fuerte, pero la comunidad de di 2. Visita nuestro repositorio en GitHub y [crea un incidente](https://github.com/ethereum/ethereum-org-website/issues/new) proponiendo un tema (aún no escribas el contenido). 3. Espera que sea aprobado por el equipo de diseño. 4. Una vez aprobado, escribe el contenido. -5. Envíalo en el incidente correspondiente en GitHub. +5. Envíelo en la incidencia correspondiente de GitHub. ###  Dibuja nuevas ilustraciones {#prepare-illustrations} diff --git a/public/content/translations/es/contributing/index.md b/public/content/translations/es/contributing/index.md index 1485c7e41ea..84f80869dd7 100644 --- a/public/content/translations/es/contributing/index.md +++ b/public/content/translations/es/contributing/index.md @@ -19,7 +19,7 @@ Ethereum.org es un proyecto gestionado de código abierto con más de **12.000** - [Trabaje en un problema/tema abierto](https://github.com/ethereum/ethereum-org-website/issues): trabajo que hemos identificado como necesario **Diseño** -- [Ayude a diseñar el sitio](/contributing/design/): diseñadores de todos los niveles pueden contribuir a mejorar el sitio web +- [Ayude a diseñar el sitio web](/contributing/design/): Diseñadores de todos loos niveles pueden contribuir a mejorar el sitio web **Contenido** - [Cree/edite contenido](/contributing/#how-to-update-content): sugiera crear nuevas páginas o hacer ajustes al contenido actual @@ -68,7 +68,7 @@ Antes de empezar a colaborar, asegúrese de estar familiarizado con: - nuestra [guía de estilo](/contributing/style-guide/) - nuestro [código de conducta](/community/code-of-conduct) - + ## Cómo se toman las decisiones sobre el sitio {#how-decisions-about-the-site-are-made} @@ -94,7 +94,7 @@ Si su contribución se usa en ethereum.org, tendrá la oportunidad de reclamar u ### Cómo reclamarlo 1. Únase a nuestro [servidor de Discord](https://discord.gg/ethereum-org). -2. Pegue un enlace a su cotribución en el canal `#🥇 | proof-of-contribution`. +2. Pegue un enlace a au contribución en el canal `#🥇 | proof-of-contribution`. 3. Espere a que un miembro de nuestro equipo le envíe un enlace a su OAT. 4. ¡Reclame su OAT! diff --git a/public/content/translations/es/contributing/quizzes/index.md b/public/content/translations/es/contributing/quizzes/index.md index 004dabeec76..bb62a3a5dc3 100644 --- a/public/content/translations/es/contributing/quizzes/index.md +++ b/public/content/translations/es/contributing/quizzes/index.md @@ -4,7 +4,7 @@ description: Las políticas que nosotros usamos cuando agregamos quizzes en ethe lang: es --- -# Centro de cuestionarios {#quizzes} +# Cuestionarios {#quizzes} Los Quizzes son una oportunidad para que los usuarios se prueben ellos mismo para ver si entiendieron el contenido de la página que ellos acabaron de leer. Las preguntas solo deben ser basadas en el contenido proporcionado en la página y no debería de preguntar acerca información que no es mencionada en la página. @@ -32,7 +32,7 @@ Sea tan amable de facilitar la siguiente información: ## Añadir una pregunta tipo test -Si existe una pregunta que quiera añadir a la ronda de preguntas de un test, [abra una incidencia](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) y proporcione la siguiente información: +Si existe una pregunta que quiera añadir a la ronda de preguntas de un test, [ abra una incidencia ](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) y proporcione la siguiente información: - La página en la que quiera añadir la pregunta tipo test. - Para cada pregunta, proporcione la siguiente información: @@ -43,7 +43,7 @@ Si existe una pregunta que quiera añadir a la ronda de preguntas de un test, [a ## Actualizar una pregunta tipo test -Si existe una pregunta que quiera actualizar en la ronde de preguntas de un test, [abra una incidencia](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) y proporcione la siguiente información: +Si existe una pregunta que quiera actualizar en la ronde de preguntas de un test, [ abra una incidencia ](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) y proporcione la siguiente información: - La página para la que quiere actualizar la pregunta. - Por cada pregunta que se actualice, proporcione la siguiente información: diff --git a/public/content/translations/es/contributing/translation-program/how-to-translate/index.md b/public/content/translations/es/contributing/translation-program/how-to-translate/index.md index ee95b8a2294..4c9448a2d8c 100644 --- a/public/content/translations/es/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/es/contributing/translation-program/how-to-translate/index.md @@ -18,7 +18,7 @@ Para quienes aprenden mejor observando, vean la guía paso a paso de Luka para c Deberá iniciar sesión en su cuenta de Crowdin o registrarse si aún no tiene una. Para registrarse solo necesita una cuenta de correo electrónico y una contraseña. - + Únase al proyecto diff --git a/public/content/translations/es/contributing/translation-program/index.md b/public/content/translations/es/contributing/translation-program/index.md index 7d22f765074..01aee15752a 100644 --- a/public/content/translations/es/contributing/translation-program/index.md +++ b/public/content/translations/es/contributing/translation-program/index.md @@ -56,11 +56,11 @@ Los colaboradores del Programa de Traducción son elegibles para diferentes OAT #### Reconocimientos a los traductores {#translator-acknowledgements} -Reconocimientos públicos a nuestros mejores traductores a través de las [Tablas de clasificacion](/contributing/translation-program/acknowledgements/) y una lista[ de todos los contribuyentes al Programa de traduccion](/contributing/translation-program/contributors/). +Reconocimientos públicos a nuestros mejores traductores a través de las [ Tablas de clasificacion ](/contributing/translation-program/acknowledgements/) y una lista[ de todos los contribuyentes al Programa de traduccion](/contributing/translation-program/contributors/). #### Recompensas {#rewards} -En el pasado, hemos recompensado retroactivamente a nuestros contribuyentes mas activos con entradas para conferencias de Ethereum, como [Devcon](https://devcon.org/en/) y [Devconnect](https://devconnect.org/), además de ofrecerles productos exclusivos de ethereum.org. +En el pasado, hemos recompensado retroactivamente a nuestros contribuyentes mas activos con entradas para conferencias de Ethereum, como [ Devcon ](https://devcon.org/en/) y [ Devconnect ](https://devconnect.org/), además de ofrecerles productos exclusivos de ethereum.org. Ideamos constantemente novedosas maneras de recompensar a nuestros colaboradores, ¡así que esté al tanto! diff --git a/public/content/translations/es/contributing/translation-program/translators-guide/index.md b/public/content/translations/es/contributing/translation-program/translators-guide/index.md index 23ee64687ca..d18fffd6553 100644 --- a/public/content/translations/es/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/es/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ La mejor manera de conservar los enlaces intactos es copiarlos directamente desd ![Ejemplo de link.png](./example-of-link.png) -Los enlaces también aparecen en el texto de origen en forma de etiquetas (es decir, <0> ). Si pasa el cursor sobre la etiqueta, el editor mostrará su contenido completo (a veces estas etiquetas representan enlaces). +Los enlaces también aparecen en el texto de origen en forma de etiquetas (es decir, `<0> `). Si pasa el cursor sobre la etiqueta, el editor mostrará su contenido completo (a veces estas etiquetas representan enlaces). Es muy importante copiar los enlaces del texto original y no cambiar su orden. @@ -154,7 +154,7 @@ nonce - _Texto no traducible_ El texto original también contiene etiquetas acortadas, que solo contienen números, lo que significa que su función no es inmediatamente obvia. Puede pasar el cursor sobre estas etiquetas para ver qué función tienen exactamente. -En el ejemplo de abajo, al pasar el cursor por la <0> etiqueta se muestra lo que representa `` y contiene un fragmento de código, por lo tanto el contenido dentro de estas etiquetas no debe traducirse. +En el ejemplo de abajo, al pasar el cursor por la `<0>` etiqueta se muestra lo que representa `` y contiene un fragmento de código, por lo tanto el contenido dentro de estas etiquetas no debe traducirse. ![Ejemplo de tags.png ambiguo](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/es/dao/index.md b/public/content/translations/es/dao/index.md index 0a9f9422dd3..0b3623d430b 100644 --- a/public/content/translations/es/dao/index.md +++ b/public/content/translations/es/dao/index.md @@ -1,5 +1,6 @@ --- -title: Organizaciones Autónomas Descentralizadas (DAO) +title: '¿Qué es una DAO?' +metaTitle: '¿Qué es una DAO? | Organizaciones Autónomas Descentralizadas' description: Una visión general de las DAO en Ethereum lang: es template: use-cases diff --git a/public/content/translations/es/decentralized-identity/index.md b/public/content/translations/es/decentralized-identity/index.md index d5cf3577953..2ee4701fc09 100644 --- a/public/content/translations/es/decentralized-identity/index.md +++ b/public/content/translations/es/decentralized-identity/index.md @@ -87,7 +87,7 @@ Los identificadores tradicionales como tu nombre jurídico o dirección de corre Los identificadores descentralizados son emitidos, mantenidos y controlados por individuos. Una [cuenta de Ethereum](/glossary/#account) es un ejemplo de un identificador descentralizado. Puede crear tantas cuentas como quiera sin el permiso de nadie y sin necesidad de almacenarlas en un registro central. -Los identificadores descentralizados son almacenados en "ledgers" distribuidos ([cadena de bloques](/glossary/#blockchain)[) o <1>redes persona a persona](/glossary/#peer-to-peer-network) (peer-to-peer). Esto hace a los DIDs [globalmente únicos, resolubles con alta disponibilidad, y criptográficamente verificables](https://w3c-ccg.github.io/did-primer/). Un identificador descentralizado puede ser asociado con diferentes entidades, incluyendo personas, organizaciones o instituciones gubernamentales. +Los identificadores descentralizados son almacenados en "ledgers" distribuidos ([cadena de bloques](/glossary/#blockchain)[) o `<1>`redes persona a persona](/glossary/#peer-to-peer-network) (peer-to-peer). Esto hace a los DIDs [globalmente únicos, resolubles con alta disponibilidad, y criptográficamente verificables](https://w3c-ccg.github.io/did-primer/). Un identificador descentralizado puede ser asociado con diferentes entidades, incluyendo personas, organizaciones o instituciones gubernamentales. ## ¿Qué hace que los identificadores descentralizados sean posibles? {#what-makes-decentralized-identifiers-possible} diff --git a/public/content/translations/es/defi/index.md b/public/content/translations/es/defi/index.md index e7f4c4ffd3b..4dd3e4a3cde 100644 --- a/public/content/translations/es/defi/index.md +++ b/public/content/translations/es/defi/index.md @@ -1,5 +1,6 @@ --- title: Finanzas descentralizadas (DeFi) +metaTitle: '¿Qué son las DeFi? | Beneficios y usos de las Finanzas Descentralizadas' description: Una visión de las finanzas descentralizadas en Ethereum lang: es template: use-cases @@ -168,7 +169,7 @@ Si la oferta de B cayera repentinamente y el usuario no pudiera comprar la canti Para hacer lo que describimos en el ejemplo de arriba pero en el mundo real necesitaría mucho dinero. Estas estrategias para hacer dinero solo son accesibles para aquellos que ya tienen dinero. Los préstamos flash son un ejemplo de un futuro en el que tener dinero no es necesariamente un requisito previo para ganar dinero. - + Más información sobre los préstamos flash @@ -324,7 +325,7 @@ DeFi se puede dividir en varias capas: 3. Los protocolos, o [contratos inteligentes](/glossary/#smart-contract), brindan funcionalidad, como por ejemplo, un servicio que permite el préstamo descentralizado de activos. 4. [Las aplicaciones](/dapps/): los productos que usamos para gestionar y acceder a los protocolos. -Nota: Gran parte de la DeFi utiliza el [estándar ERC-20](/glossary/#erc-20). Las aplicaciones en DeFi utilizan un wrapper para ETH llamado Wrapped Ether (WETH). [Más información sobre Wrapper Ether](/wrapped-eth). +Nota: Gran parte de la DeFi utiliza el [estándar ERC-20](/glossary/#erc-20). Las aplicaciones en DeFi usan un wrapper de ETH llamado Wrapped Ether (WETH). [Más información sobre Wrapper Ether](/wrapped-eth). ## Desarrollar DeFi {#build-defi} @@ -358,4 +359,4 @@ DeFi es un proyecto de código abierto. Puede inspeccionar, copiar e innovar tod - \ No newline at end of file + diff --git a/public/content/translations/es/desci/index.md b/public/content/translations/es/desci/index.md index 508c74aa260..544dc0e2bba 100644 --- a/public/content/translations/es/desci/index.md +++ b/public/content/translations/es/desci/index.md @@ -126,6 +126,7 @@ Estamos abiertos a recibir sugerencias sobre nuevos proyectos por incluir, por f - [DeSci: El futuro de la investigación por Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) - [La fundación científica (epílogo: DeSci y las nuevas primitivas cripto) por Nadia](https://nadia.xyz/science-funding) - [La descentralización está provocando una disrupción en el desarrollo de fármacos](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) +- [¿Qué es DeSci: Ciencia Descentralizada?](​https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) ### Videos {#videos} @@ -134,3 +135,4 @@ Estamos abiertos a recibir sugerencias sobre nuevos proyectos por incluir, por f - [La publicación científica está interrumpida. ¿Puede Web3 darle continuidad?](https://www.youtube.com/watch?v=WkvzYgCvWj8) - [Juan Benet, DeSci, Laboratorios Independientes, & Ciencias de datos de gran escala](https://www.youtube.com/watch?v=zkXM9H90g_E) - [Brunemeier: Cómo la ciencia descentralizada puede transformar la investigación biomédica y el capital de riesgo](https://www.youtube.com/watch?v=qB4Tc3FcVbM) +- [Paige Donner: Herramientas de Ciencia Abierta conWeb3 & La cadena de bloques](https://www.youtube.com/watch?v=nC-2QWQ-lgw&t=17s) diff --git a/public/content/translations/es/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/es/developers/docs/networking-layer/portal-network/index.md index 3632bf413c1..82e4484e773 100644 --- a/public/content/translations/es/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/es/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ Los beneficios de este diseño de red son: - reducir la dependencia de los proveedores centralizados - reducir el uso del ancho de banda de Internet - sincronización minimizada o cero -- accesible a dispositivos con recursos limitados (<1 GB de RAM, <100 MB de espacio en disco, 1 CPU) +- accesible a dispositivos con recursos limitados (\<1 GB de RAM, \<100 MB de espacio en disco, 1 CPU) El siguiente diagrama muestra las funciones de los clientes existentes que Portal Network puede entregar, lo que permite a los usuarios acceder a estas funciones en dispositivos de muy pocos recursos. diff --git a/public/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md index 6e496468706..67ad025bcd1 100644 --- a/public/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ Aparte de las [recomendaciones generales para ejecutar un nodo](/developers/docs Asegúrese siempre de verificar los requisitos de hardware para un modo determinado en la documentación de un cliente. El mayor requisito para los nodos de archivo es el espacio en el disco. Dependiendo del cliente, varía de 3 TB a 12 TB. Incluso si el disco duro (HDD) podría considerarse una mejor solución para grandes cantidades de datos, sincronizarlo y actualizar constantemente la cabeza de la cadena requerirá unidades SSD de estado sólido. Las unidades [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) son lo suficientemente buenas, pero deben ser de una calidad considerable, al menos [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). Los discos se pueden instalar en un ordenador de escritorio o en un servidor con suficientes ranuras. Estos dispositivos dedicados son ideales para ejecutar un nodo de elevado tiempo de actividad. Es perfectamente posible ejecutarlo en un ordenador portátil, pero la portabilidad tendrá un coste adicional. -Todos los datos deben encajar en un solo volumen, por lo tanto, los discos deben unirse, por ejemplo, con [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) o [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html). También podría valer la pena considerar el uso de [ZFS](https://en.wikipedia.org/wiki/ZFS), ya que es compatible con «Copiar en escritura», lo que garantiza que los datos se escriban correctamente en el disco sin ningún error de bajo nivel. +Todos los datos deben encajar en un solo volumen, por lo tanto, los discos deben unirse, por ejemplo, con [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) o LVM. También podría valer la pena considerar el uso de [ZFS](https://en.wikipedia.org/wiki/ZFS), ya que es compatible con «Copiar en escritura», lo que garantiza que los datos se escriban correctamente en el disco sin ningún error de bajo nivel. Para una mayor estabilidad y seguridad en la prevención de la corrupción accidental de la base de datos, especialmente en una configuración profesional, considere el uso de [memoria ECC](https://en.wikipedia.org/wiki/ECC_memory) si su sistema lo admite. Por lo general, se recomienda que el tamaño de la RAM sea el mismo que para un nodo completo, aunque cuanta más RAM, más le ayudará a acelerar la sincronización. diff --git a/public/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md index 918ffee9977..f35d960f00f 100644 --- a/public/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Las especificaciones formales de bajo nivel se pueden dar como propiedades de es ### Propiedades de estilo Hoare {#hoare-style-properties} -La [lógica de Hoare](https://en.wikipedia.org/wiki/Hoare_logic) proporciona un conjunto de reglas formales para razonar sobre la corrección de los programas, incluidos los contratos inteligentes. Una propiedad de estilo Hoare está representada por un triple Hoare {_P_}_c_{_Q_}, donde _c_ es un programa y _P_ y _Q_ son predicados sobre el estado del _c_ (es decir, el programa), descrito formalmente como _precondiciones_ y _poscondiciones_, respectivamente. +La [lógica de Hoare](https://en.wikipedia.org/wiki/Hoare_logic) proporciona un conjunto de reglas formales para razonar sobre la corrección de los programas, incluidos los contratos inteligentes. Una propiedad de estilo Hoare está representada por un triple Hoare `{P}c{Q}`, donde `c` es un programa y `P` y `Q` son predicados sobre el estado del `c` (es decir, el programa), descrito formalmente como _precondiciones_ y _poscondiciones_, respectivamente. Una precondición es un predicado que describe las condiciones requeridas para la correcta ejecución de una función; los usuarios que invocan o llaman al contrato deben cumplir con este requisito. Una poscondición es un predicado que describe la condición que una función establece si se ejecuta correctamente; los usuarios pueden esperar que esta condición sea verdadera después de invocar la función. Un _invariante_ en la lógica de Hoare es un predicado que se conserva mediante la ejecución de una función (es decir, no cambia). diff --git a/public/content/translations/es/developers/docs/smart-contracts/security/index.md b/public/content/translations/es/developers/docs/smart-contracts/security/index.md index 6509365b12e..390c6e5e1e7 100644 --- a/public/content/translations/es/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/es/developers/docs/smart-contracts/security/index.md @@ -115,7 +115,7 @@ La existencia de auditorías y recompensas por errores no lo exime de la respons - Utilizar un [entorno de desarrollo](/developers/docs/frameworks/) para probar, compilar e implementar contratos inteligentes -- Ejecute su código mediante herramientas básicas de análisis de código, como [Cyfrin Aderyn](https://github.com/Cyfrin/aderyn), Mythril y Slither. En principio, debería hacer esto antes de combinar cada pull request y comparar las diferencias en el resultado +- Ejecute su código mediante herramientas básicas de análisis de código, como [Cyfrin Aaderyn](https://github.com/Cyfrin/aderyn), Mythril y Slither. En principio, debería hacer esto antes de combinar cada pull request y comparar las diferencias en el resultado - Asegurarse de que el código se compile sin errores y que el compilador de Solidity no emita advertencias @@ -563,7 +563,7 @@ Si planea consultar a un oráculo en cadena precios de activos, considere el uso - **[Estándar de verificación de seguridad de contratos inteligentes:](https://github.com/securing/SCSVS)** _Lista de verificación de catorce partes creada para estandarizar la seguridad de los contratos inteligentes para desarrolladores, arquitectos, revisores y proveedores de seguridad. _ -- **[Aprenda sobre seguridad y auditorías de contratos inteligentes:](https://updraft.cyfrin.io/courses/security)** _Curso definitivo de seguridad y auditoría de contratos inteligentes creado para desarrolladores de contratos inteligentes que buscan mejorar sus buenas prácticas de seguridad y convertirse en investigadores de seguridad._ +- **[Aprenda sobre seguridad y auditorías de contratos inteligentes:](https://updraft.cyfrin.io/courses/security) _Curso definitivo de seguridad y auditoría de contratos inteligentes creado para desarrolladores de contratos inteligentes que buscan mejorar sus buenas prácticas de seguridad y convertirse en investigadores de seguridad._ ### Tutoriales sobre seguridad de contratos inteligentes {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md index f6848efd195..eacffa426cf 100644 --- a/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ Cualquiera a quien se le permita transferir un token puede quemarlo. Mientras qu En contraste con Solidity, Vyper no tiene herencia. Esta es una elección de diseño deliberada para hacer el código más claro y por lo tanto más fácil de asegurar. Así que para crear su propio contrato Vyper ERC-721, utilice [este contrato](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) y modifíquelo para implementar la lógica de negocio que desee. -# Conclusión {#conclusion} +## Conclusión {#conclusion} A modo de recapitulación, he resumido algunas de las ideas más importantes de este contrato: diff --git a/public/content/translations/es/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/es/developers/tutorials/erc20-annotated-code/index.md index 75c902c979e..040dc2bb9e0 100644 --- a/public/content/translations/es/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/es/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ La función `a.add(n)` es una adición segura. En el caso poco probable de que ` Estas son las cuatro funciones que hacen el verdadero trabajo: `_transfer`, `_mint`, `_burn` y `_approve`. -#### La función \_transfer {#\_transfer} +#### La función \_transfer {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ Estas son las líneas que en realidad hacen la transferencia. Note que no hay ** Finalmente, emite un evento `Transfer`. Los eventos no son accesibles por los contratos inteligentes, pero el código en ejecución fuera de la cadena de bloques puede escuchar eventos y reaccionar a ellos. Por ejemplo, una billetera puede mantener un registro de cuando el propietario obtiene más tokens. -#### Las funciones \_mint y \_burn {#\_mint-y-\_burn} +#### Las funciones \_mint y \_burn {#_mint-y-_burn} Estas dos funciones (`_mint` y `_burn`) modifican el suministro total de tókenes. Son internas y no hay ninguna función que las invoque en este contrato, entonces sólo son útiles si las hereda desde un contrato y añade su propia lógica para decidir en qué condiciones quiere acuñar nuevos tóekens o quemar los existentes. @@ -706,7 +706,7 @@ Asegúrese de actualizar `_totalSupply` cuando la cantidad total de tókenes cam La función `_burn` es casi idéntica a `_mint`, excepto que esta va en otra dirección. -#### La función \_approve {#\_approve} +#### La función \_approve {#_approve} Esta es la función que actualmente especifica asignaciones. Observe que esta permite especificar una asignación que es mayor al balance actual de la cuenta del propietario. Esto es correcto, porque el saldo se revisa en el momento de la transferencia y puede ser diferente del saldo cuando se creó la asignación. @@ -784,7 +784,7 @@ Esta función modifica la variable `_decimals` que sirve para decirle a las inte Esta es la función gancho a ser llamada durante las transferencias. Aquí está vacía, pero si necesita hacer algo puede sobrescribirla. -# Conclusión {#conclusion} +## Conclusión {#conclusion} Para revisión, he aquí hay algunas de las ideas importantes en este contrato (en mi opinión, porque usted puede pensar de otra manera): diff --git a/public/content/translations/es/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/es/developers/tutorials/hello-world-smart-contract-fullstack/index.md index 8f40855e534..e2a565ea986 100644 --- a/public/content/translations/es/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/translations/es/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -260,7 +260,7 @@ En el directorio de su proyecto, teclee: npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" ``` -### Paso 13: Actualizar hardhat.config.js {#step-13-update-hardhat.configjs} +### Paso 13: Actualizar hardhat.config.js {#step-13-update-hardhat-configjs} Hasta ahora hemos añadido varias dependencias y plugins, por lo que ahora necesitamos actualizar `hardhat.config.js` para que nuestro proyecto sepa de todas ellas. diff --git a/public/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index d922ff1d578..2cca4b844f1 100644 --- a/public/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -76,7 +76,7 @@ Ahora que estamos dentro de nuestra carpeta de proyecto, usaremos npm init para npm init Realmente no importa la respuesta que dé a las preguntas de instalación, he aquí un ejemplo de cómo lo hicimos nosotros: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -99,7 +99,7 @@ Realmente no importa la respuesta que dé a las preguntas de instalación, he aq "author": "", "license": "ISC" } - +``` Apruebe package.json y ¡ya puede comenzar! ## Paso 7: Instalar [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} @@ -259,6 +259,7 @@ Hasta el momento, hemos añadido varias dependencias y plugins, ahora necesitamo Actualice su hardhat.config.js para que tenga este aspecto: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -276,6 +277,7 @@ Actualice su hardhat.config.js para que tenga este aspecto: } }, } +``` ## Paso 14: Compilar nuestro contrato {#compile-contract} diff --git a/public/content/translations/es/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/es/developers/tutorials/reverse-engineering-a-contract/index.md index 7ed1f6045b4..f493df0c999 100644 --- a/public/content/translations/es/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/translations/es/developers/tutorials/reverse-engineering-a-contract/index.md @@ -53,8 +53,8 @@ Los contratos siempre se ejecutan desde el primer byte. Esta es la parte inicial | 4 | MSTORE | Vacío | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | Vacío | Este código hace dos cosas: @@ -119,8 +119,8 @@ El `NOT` es bitwise, por lo que invierte el valor de cada bit en el valor de lla | ------:| ------------------- | ------------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | | Saltamos si `Value*` es menor que 2^256-CALLVALUE-1 o igual. Esto parece lógica para evitar el desbordamiento. Y, de hecho, vemos que después de algunas operaciones sin sentido (escribir en la memoria está a punto de eliminarse, por ejemplo) en el desplazamiento 0x01DE, el contrato se revierte si se detecta el desbordamiento, que es un comportamiento normal. @@ -431,7 +431,7 @@ El código en los desplazamientos 0x138-0x143 es idéntico al que vimos en 0x103 | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -471,8 +471,8 @@ Veamos qué sucede si la función _sí_ obtiene los datos de llamada que necesit | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Algo como esto: "typescript": "^3.8.3" } } +```
        tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Algo como esto: "target": "ES2018" } } +```
        @@ -104,6 +108,7 @@ Algo como esto:
        .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Algo como esto: } ] } +```
        @@ -709,6 +715,7 @@ Debería ver que Waffle ha compilado el contrato y ha ubicado la salida JSON res
        BasicToken.json +```json { "abi": [ { @@ -1004,6 +1011,7 @@ Debería ver que Waffle ha compilado el contrato y ha ubicado la salida JSON res "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P +```
        diff --git a/public/content/translations/es/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/es/developers/tutorials/yellow-paper-evm/index.md index bc791dd91c5..f06f63473af 100644 --- a/public/content/translations/es/developers/tutorials/yellow-paper-evm/index.md +++ b/public/content/translations/es/developers/tutorials/yellow-paper-evm/index.md @@ -167,7 +167,7 @@ Tenemos una detención excepcional si cualquiera de estas condiciones es verdade La función _W(w,μ)_ es definida más tarde en la ecuación 150. _W(w,μ)_ es verdadero si una de estas condiciones es verdadera: - - **_w ∈ {CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Estos códigos de operación cambian el estado, ya sea creando un nuevo contrato, almacenando un valor o destruyendo el contrato actual. + - **_w ∈ \{CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Estos códigos de operación cambian el estado, ya sea creando un nuevo contrato, almacenando un valor o destruyendo el contrato actual. - **_LOG0≤w ∧ w≤LOG4_** Si somos llamados estáticamente, no podemos emitir entradas de registro. Los código de operación del registro están todos en un rango entre [`LOG0` (A0)](https://www.evm.codes/#a0) y [`LOG4` (A4)](https://www.evm.codes/#a4). El número que figura luego del código de operación del registro especifica cuántos temas contiene la entrada de registro. - **_w=CALL ∧ μs[2]≠0_** Puede invocar otro contrato cuando está estático, pero, si lo hace, no puede transferir ETH a este. @@ -228,7 +228,7 @@ La dirección cuyo saldo necesitamos encontrar es _μs[0] mod 21 Si _σ[μs[0] mod 2160] ≠ ∅_, significa que hay información sobre esta dirección. En ese caso, _σ[μs[0] mod 2160]b_ es el saldo de esa dirección. Si _σ[μs[0] mod 2160] = ∅_, significa que esta dirección no está inicializada y el saldo es cero. Puede ver el listado de campos de información de la cuenta en la sección 4.1 de la p. 4. -La segunda ecuación, _A'a ≡ Aa ∪ {μs[0] mod 2160}_, está relacionada con la diferencia en costo entre el acceso al almacenamiento en caliente (almacenamiento al que se ha accedido recientemente y es probable que esté almacenado en caché) y el almacenamiento en frío (almacenamiento al que no se ha accedido y es probable que esté en almacenamiento más lento que es más caro de recuperar). _Aa_ es el listado de direcciones accesadas previamente por la transacción, que deberían por lo tanto ser más baratas de acceder, como se define en la sección 6.1 de la p. 8. Puede leer más sobre este tema en [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). +La segunda ecuación, _A'a ≡ Aa ∪ \{μs[0] mod 2160}_, está relacionada con la diferencia en costo entre el acceso al almacenamiento en caliente (almacenamiento al que se ha accedido recientemente y es probable que esté almacenado en caché) y el almacenamiento en frío (almacenamiento al que no se ha accedido y es probable que esté en almacenamiento más lento que es más caro de recuperar). _Aa_ es el listado de direcciones accesadas previamente por la transacción, que deberían por lo tanto ser más baratas de acceder, como se define en la sección 6.1 de la p. 8. Puede leer más sobre este tema en [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). | Valor | Nemotecnia | δ | α | Descripción | | -----:| ---------- | -- | -- | -------------------------------------------- | diff --git a/public/content/translations/es/energy-consumption/index.md b/public/content/translations/es/energy-consumption/index.md index 8e72104ca2b..82dbe34015d 100644 --- a/public/content/translations/es/energy-consumption/index.md +++ b/public/content/translations/es/energy-consumption/index.md @@ -35,7 +35,7 @@ Obtener las estimaciones precisas de consumo energético es complicado, especial Las estimaciones de arriba no son comparaciones perfectas. La cantidad de gastos indirectos contabilizados varía dependiendo de la fuente, y rara vez incluye la energía de los dispositivos de usuario final. Cada fuente subyacente incluye mas detalles sobre lo que se está midiendo. -La tabla y el gráfico de arriba también incluyen comparaciones con Bitcoin y con la prueba de trabajo de Ethereum. Es importante notar que el consumo energético de las redes de prueba de trabajo no es estático y que cambia diariamente. Las estimaciones pueden a su vez variar ampliamente dependiendo de la fuente. El tema atrae [debates](https://www.coindesk.com/business/2020/05/19/the-last-word-on-bitcoins-energy-consumption/) moderados, no solo sobre la cantidad de consumo energético, sino también sobre las fuentes de energía utilizadas y la ética asociada. El consumo de energía no se correlaciona necesariamente con la huella ambiental de manera precisa, debido a que diferentes proyectos pueden utilizar distintas fuentes de energía, como por ejemplo una proporción mayor o menor de energías renovables. Por ejemplo, el [Cambridge Bitcoin Electricity Consumption Index](https://ccaf.io/cbnsi/cbeci/comparisons) indica que teóricamente la demanda de la red de Bitcoin podría alimentarse de un suministro de gas o electricidad que de otra manera se perdería en los procesos de transmisión y distribución. La ruta de Ethereum hacia la sostenibilidad consistió en reemplazar la parte de la red que consumía mucha energía por una alternativa ecológica. +La tabla y el gráfico de arriba también incluyen comparaciones con Bitcoin y con la prueba de trabajo de Ethereum. Es importante notar que el consumo energético de las redes de prueba de trabajo no es estático y que cambia diariamente. Las estimaciones pueden a su vez variar ampliamente dependiendo de la fuente. El tema atrae [ debates ](https://www.coindesk.com/business/2020/05/19/the-last-word-on-bitcoins-energy-consumption/) moderados, no solo sobre la cantidad de consumo energético, sino también sobre las fuentes de energía utilizadas y la ética asociada. El consumo de energía no se correlaciona necesariamente con la huella ambiental de manera precisa, debido a que diferentes proyectos pueden utilizar distintas fuentes de energía, como por ejemplo una proporción mayor o menor de energías renovables. Por ejemplo, el [Cambridge Bitcoin Electricity Consumption Index](https://ccaf.io/cbnsi/cbeci/comparisons) indica que teóricamente la demanda de la red de Bitcoin podría alimentarse de un suministro de gas o electricidad que de otra manera se perdería en los procesos de transmisión y distribución. La ruta de Ethereum hacia la sostenibilidad consistió en reemplazar la parte de la red que consumía mucha energía por una alternativa ecológica. Las estimaciones de consumo de energía y emisiones de carbono se pueden consultar en el sitio web del [Cambridge Blockchain Network Sustainability Index](https://ccaf.io/cbnsi/ethereum). diff --git a/public/content/translations/es/governance/index.md b/public/content/translations/es/governance/index.md index 8f93cd89ac5..c56c9a0c809 100644 --- a/public/content/translations/es/governance/index.md +++ b/public/content/translations/es/governance/index.md @@ -48,7 +48,7 @@ En la [comunidad Ethereum](/community/), hay diversos actores y cada uno cumple - **Operadores de nodos**: estas personas ejecutan nodos que propagan bloques y transacciones y rechazan cualquier transacción o bloque inválido con el que se encuentren. [Más información sobre los nodos](/developers/docs/nodes-and-clients/). - **Autores de EIP**: estas personas proponen cambios en el protocolo Ethereum en calidad de propuestas de mejora de Ethereum (EIP, «Ethereum Improvement Proposals»). [Más información sobre las EIP](/eips/). - **Validadores**: estas personas ejecutan nodos que pueden añadir nuevos bloques a la cadena de bloques de Ethereum. -- **Desarrolladores del protocolo** (también conocidos como "Desarrolladores principales"): estas personas mantienen las diversas implementaciones de Ethereum (por ejemplo, go-ethereum, Nethermind, Besu, Erigon, Reth en la capa de ejecución o Prysm, Lighthouse, Nimbus, Teku, Lodestar en la capa de consenso). [Más información sobre los clientes de Ethereum](/developers/docs/nodes-and-clients/). +- **Desarrolladores del protocolo** (también conocidos como «Desarrolladores Principales»): estas personas mantienen las diversas implementaciones de Ethereum (p. ej., go-ethereum, Nethermind, Besu, Erigon, Reth en la capa de ejecución o Prysm, Lighthouse, Nimbus, Teku, Lodestar, Grandine ene la capa de consenso). [Más información sobre los clientes de Ethereum](/developers/docs/nodes-and-clients/). _Nota: cualquier persona puede ser parte de varios de estos grupos (p. ej., un desarrollador de protocolos podría abogar por una EIP, ejecutar un validador de la cadena de baliza y utilizar aplicaciones DeFi). Sin embargo, por motivos de claridad conceptual, resulta más práctico hacer una distinción entre ellos._ diff --git a/public/content/translations/es/nft/index.md b/public/content/translations/es/nft/index.md index f7ce3413d9c..a010689ca3f 100644 --- a/public/content/translations/es/nft/index.md +++ b/public/content/translations/es/nft/index.md @@ -1,5 +1,6 @@ --- title: Tókenes no fungibles (NFT) +metaTitle: '¿Qué son los NFT? | Beneficios y uso' description: Una visión general de los NFT en Ethereum lang: es template: use-cases @@ -75,7 +76,7 @@ El nombre de dominio alternativo de esta página web también funciona a través ## ¿Cómo funcionan los NFT? {#how-nfts-work} -Los NFT, como cualquiera de los objetos digitales en la cadena de bloques de Ethereum, se crean a través de un programa informático especial basado en Ethereum llamado «contrato inteligente». Estos contratos siguen ciertas reglas, como los estándares[ERC-721](/glossary/#erc-721) o [ERC-1155](/glossary/#erc-1155), que determinan qué puede hacer un contrato. +Los NFT, como cualquier objeto digital en la cadena de bloques de Ethereum, se crean a través de un programa especial de computación llamado "contrato inteligente". Estos contratos siguen ciertas reglas, como los estándares[ERC-721](/glossary/#erc-721) o [ERC-1155](/glossary/#erc-1155), que determinan qué puede hacer un contrato. Los contratos inteligentes de NFT pueden hacer algunas cosas importantes: diff --git a/public/content/translations/es/roadmap/account-abstraction/index.md b/public/content/translations/es/roadmap/account-abstraction/index.md index 3c30babe1b6..55979db3289 100644 --- a/public/content/translations/es/roadmap/account-abstraction/index.md +++ b/public/content/translations/es/roadmap/account-abstraction/index.md @@ -1,5 +1,5 @@ --- -title: Abstracción de Cuenta +title: Abstracción de cuenta description: Una visión general de los planes de Ethereum para hacer que las cuentas de usuario sean más sencillas y seguras. lang: es summaryPoints: @@ -8,11 +8,11 @@ summaryPoints: - Las claves perdidas y expuestas se pueden recuperar usando múltiples copias de seguridad. --- -# Abstracción de Cuenta {#account-abstraction} +# Abstracción de cuenta {#account-abstraction} Los usuarios interactúan con Ethereum usando **[cuentas de propiedad externa (o EOA)](/glossary/#eoa)**. Esta es la única forma de empezar una transacción o generar un contrato inteligente. Esto limita cómo los usuarios pueden interactuar con Ethereum. Por ejemplo, dificulta la creación de transacciones en lote y requiere que los usuarios siempre mantengan un saldo en ETH para costear el gas. -La abstracción de cuentas es una forma de rosolver estos problemas, que permite a los usuarios programar flexiblemente con mayor seguridad y mejores experiencias de usuario en sus cuentas. Esto puede suceder [actualizando las cuentas de propiedad externa (o EOA)](https://eips.ethereum.org/EIPS/eip-3074) para que puedan ser controladas por contratos inteligentes, o por [la actualización de los contratos inteligentes](https://eips.ethereum.org/EIPS/eip-2938) para que puedan iniciar transacciones. Ambas opciones requieren cambios en el protocolo de Ethereum. Existe también una tercera vía que implica añadir un [segundo sistema de transacciones independiente](https://eips.ethereum.org/EIPS/eip-4337) para ejecutarlo en paralelo con el protocolo existente. De cualquier forma, el resultado será acceder a Ethereum con carteras de contrato inteligente, ya sea de forma nativa como parte del protocolo existente o por una red de transacciones complementaria. +La abstracción de cuentas es una forma de rosolver estos problemas, que permite a los usuarios programar flexiblemente con mayor seguridad y mejores experiencias de usuario en sus cuentas. Esto puede suceder [actualizando las cuentas de propiedad externa (o EOA)](https://eips.ethereum.org/EIPS/eip-3074) para que puedan ser controladas por contratos inteligentes, o por [la actualización de los contratos inteligentes ](https://eips.ethereum.org/EIPS/eip-2938) para que puedan iniciar transacciones. Ambas opciones requieren cambios en el protocolo de Ethereum. Existe también una tercera vía que implica añadir un [segundo sistema de transacciones independiente](https://eips.ethereum.org/EIPS/eip-4337) para ejecutarlo en paralelo con el protocolo existente. De cualquier forma, el resultado será acceder a Ethereum con carteras de contrato inteligente, ya sea de forma nativa como parte del protocolo existente o por una red de transacciones complementaria. Las billeteras de contrato inteligente desbloquean múltiples beneficios para los usuarios, incluyendo: diff --git a/public/content/translations/es/roadmap/beacon-chain/index.md b/public/content/translations/es/roadmap/beacon-chain/index.md index 647bf94ef61..df6be5ab6a4 100644 --- a/public/content/translations/es/roadmap/beacon-chain/index.md +++ b/public/content/translations/es/roadmap/beacon-chain/index.md @@ -70,6 +70,6 @@ La fragmentación solo podría implementarse en el ecosistema de Ethereum de man ## Más información -- [Más sobre las futuras actualizaciones de Ethereum](/roadmap/vision) +- [Más sobre las futuras actualizaciones de Ethereum ](/roadmap/vision) - [Más sobre arquitectura de nodos](/developers/docs/nodes-and-clients/node-architecture) -- [Más sobre la prueba de participación](/developers/docs/consensus-mechanisms/pos) +- [Más sobre la prueba de participación ](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/es/roadmap/merge/index.md b/public/content/translations/es/roadmap/merge/index.md index 9f894c8c4ce..ad5315318b4 100644 --- a/public/content/translations/es/roadmap/merge/index.md +++ b/public/content/translations/es/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Desarrolladores de DApps y contratos inteligentes" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -La Fusión vino con cambios en el consenso, que también incluye cambios relacionados con:< +La Fusión vino con cambios en el consenso, que también incluye cambios relacionados con:
        • estructura de bloque
        • diff --git a/public/content/translations/es/roadmap/statelessness/index.md b/public/content/translations/es/roadmap/statelessness/index.md index 5555cca92c9..163b4341471 100644 --- a/public/content/translations/es/roadmap/statelessness/index.md +++ b/public/content/translations/es/roadmap/statelessness/index.md @@ -16,7 +16,7 @@ Los discos duros más baratos se pueden usar para almacenar datos más antiguos, Hay varias formas de reducir la cantidad de datos que cada nodo tiene que almacenar, cada una de las cuales requiere que el protocolo principal de Ethereum se actualice en un grado diferente: -- **El vencimiento del historial**: permite que los nodos descarten los datos de estado más antiguos que los bloques X, pero no cambia la forma en que el cliente de Ethereum gestiona los datos de estado. +- **Expiración del historial**: permite que los nodos eliminen los datos de estado más antiguos que X bloques, pero no cambia la forma en que el cliente de Ethereum gestiona los datos de estado. - **El vencimiento del estado**: permite que los datos de estado que no se utilizan con frecuencia se vuelvan inactivos. Los clientes pueden ignorar los datos inactivos hasta que se resuciten. - **Sin estado débil**: solo los productores de bloques necesitan acceso a datos de estado completo, otros nodos pueden verificar bloques sin una base de datos de estado local. - **Sin estado fuerte**: ningún nodo necesita acceso a los datos completos del estado. diff --git a/public/content/translations/es/roadmap/verkle-trees/index.md b/public/content/translations/es/roadmap/verkle-trees/index.md index 5a824943100..1a2447e8678 100644 --- a/public/content/translations/es/roadmap/verkle-trees/index.md +++ b/public/content/translations/es/roadmap/verkle-trees/index.md @@ -49,15 +49,15 @@ Los árboles de Verkle son `(llave, valor)` pares donde las llaves son elementos Las redes de prueba del árbol de Verkle ya están en funcionamiento, pero todavía se requieren sustanciales actualizaciones pendientes para los clientes en apoyo de los árboles de Verkle. Puede ayudar a acelerar el progreso implementando contratos en las redes de prueba o ejecutando clientes de la red de prueba. -[Explore la red de prueba Verkle Gen Devnet 2](https://verkle-gen-devnet-2.ethpandaops.io/) +[Explore la red de prueba Verkle Gen Devnet 6](https://verkle-gen-devnet-6.ethpandaops.io/) -[Vea a Guillaume Ballet explicar la red de prueba Condrieu Verkle](https://www.youtube.com/watch?v=cPLHFBeC0Vg) (tenga en cuenta que la red de prueba Condrieu era de prueba de trabajo y ahora se ha sustituido por la red de prueba Verkle Gen Devnet 2). +[Vea a Guillaume Ballet explicar la red de prueba Condrieu Verkle](https://www.youtube.com/watch?v=cPLHFBeC0Vg) (tenga en cuenta que la red de prueba Condrieu era de prueba de trabajo y ahora se ha sustituido por la red de prueba Verkle Gen Devnet 6). ## Más información {#further-reading} - [Árboles Verkle para la falta de estado](https://verkle.info/) - [Dankrad Feist explica los árboles Verkle en PEEPanEIP](https://www.youtube.com/watch?v=RGJOQHzg3UQ) -- [Guillaume Ballet explica los árboles de Verkle en ETHGlobal](https://www.youtube.com/watch?v=f7bEtX3Z57o) +- [Guillaume Ballet explica los árboles Verkle en ETHGlobal](https://www.youtube.com/watch?v=f7bEtX3Z57o) - [«Cómo los árboles de Verkle hacen que Ethereum sean claro y directo» por Guillaume Ballet en Devcon 6](https://www.youtube.com/watch?v=Q7rStTKwuYs) - [Piper Merriam sobre clientes sin estado en ETHDenver 2020](https://www.youtube.com/watch?v=0yiZJNciIJ4) - [Dankrad Fiest explica los árboles de Verkle y la falta de estado en el podcast Zero Knowledge](https://zeroknowledge.fm/episode-202-stateless-ethereum-verkle-tries-with-dankrad-feist/) diff --git a/public/content/translations/es/security/index.md b/public/content/translations/es/security/index.md index f06ee75ea70..2f4039cf798 100644 --- a/public/content/translations/es/security/index.md +++ b/public/content/translations/es/security/index.md @@ -8,6 +8,8 @@ lang: es El creciente interés en criptomonedas trae consigo un aumento de riesgo a causa de estafadores y hackers. Este artículo establece algunas de las mejores prácticas para mitigar estos riesgos. +**Recuerde: Ningún miembro de ethereum.org se pondrá en contacto con usted. No conteste a mensajes que dicen provenir del soporte de Ethereum.** + ## Seguridad de criptomonedas 101 {#crypto-security} diff --git a/public/content/translations/es/smart-contracts/index.md b/public/content/translations/es/smart-contracts/index.md index 52f79dff449..e033aed5503 100644 --- a/public/content/translations/es/smart-contracts/index.md +++ b/public/content/translations/es/smart-contracts/index.md @@ -1,5 +1,6 @@ --- title: Contratos inteligentes +metaTitle: "Contratos inteligentes: Qué son y sus beneficios" description: Una introducción sin tecnicismos a los contratos inteligentes lang: es --- @@ -76,7 +77,6 @@ Pueden realizar cómputos, crear divisas, almacenar datos, mintear [NFT](/glossa ## Más información {#further-reading} - [¿Cómo cambiarán el mundo los contratos inteligentes?](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contratos inteligentes: la tecnología de la cadena de bloques que remplazará a los abogados](https://blockgeeks.com/guides/smart-contracts/) - [Contratos inteligentes para desarrolladores](/developers/docs/smart-contracts/) - [Aprenda a redactar contratos inteligentes](/developers/learning-tools/) - [Dominar Ethereum: ¿Qué es un contrato inteligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/es/staking/solo/index.md b/public/content/translations/es/staking/solo/index.md index 7f456e93c2d..0e128d386ea 100644 --- a/public/content/translations/es/staking/solo/index.md +++ b/public/content/translations/es/staking/solo/index.md @@ -1,6 +1,6 @@ --- -title: Participación individual de su ETH -description: Una visión general de cómo empezar a postar su ETH individualmente +title: Participe desde casa con sus ETH +description: Un resumen de cómo empezar con la partición desde casa de sus ETH lang: es template: staking emoji: ":money_with_wings:" @@ -13,31 +13,31 @@ summaryPoints: - Desconfíe y no deje nunca de controlar las claves de sus fondos --- -## ¿Qué es staking individual? {#what-is-solo-staking} +## ¿Qué es la participación desde casa? {#what-is-solo-staking} -Participación individual es el acto de [ ejecutar un nodo Ethereum](/run-a-node/) conectado a Internet y depositar 32 ETH para activar un [validador](#faq), abriendo la posibilidad de participar directamente en el consenso de la red. +La participación desde casa es el acto de [ejecutar un nodo de Ethereum](/run-a-node/) conectado a Internet y depositar 32 ETH para activar un [validador](#faq), permitiéndole participar directamente en el consenso de la red. -**El staking individual aumenta la descentralización de la red Ethereum**, haciendo que sea más resistente a la censura y robusta contra ataques. Puede que otros métodos de participación no ayuden a la red de la misma manera. La participación en solitario es la mejor opción de participación para asegurar Ethereum. +**La participación desde casa incrementa la descentralización de la red de Ethereum**, haciendo que la red sea más resistente a la censura y logrando robustez contra ataques. Puede que otros métodos de participación no ayuden a la red de la misma manera. La participación desde casa es la mejor forma de participación para asegurar Ethereum. Un nodo Ethereum consiste tanto en un cliente de capa de ejecución (EL), como en un cliente de capa de consenso (CL). Estos clientes son programas que funcionan estrechamente entre sí, en conjunto con un par de claves de validación, para verificar transacciones y bloques, certificar el encabezado corecto de la cadena, resumir verificaciones, y proponer bloques. -Los participantes individuales conlleva la responsabilidad de operar el hardware necesario para ejecutar dichos clientes. Es muy recomendable utilizar una máquina específicamente dedicada a esto, que usted opere desde su hogar, algo que es extremadamente beneficioso para la salud de la red. +Los participantes desde casa son responsables de operar el hardware necesario para ejecutar estos clientes. Es muy recomendable utilizar una máquina específicamente dedicada a esto, que usted opere desde su hogar, algo que es extremadamente beneficioso para la salud de la red. -El participante individual recibe las recompensas directamente desde el protocolo por mantener su validador funcionando correctamente y en línea. +Un participante desde casa recibe las recompensas directamente desde el protocolo por mantener su validador funcionando correctamente y en línea. -## ¿Por qué debería participar de forma individual? {#why-stake-solo} +## ¿Por qué participar desde casa? {#why-stake-solo} -La participación en solitario conlleva más responsabilidad, pero proporciona el máximo control posible sobre los fondos y la configuración para realizarla. +Participar desde casa conlleva más responsabilidad, pero proporciona el máximo control posible sobre los fondos y la configuración de los validadores. - + -## Consideraciones antes de hacer una participación individual {#considerations-before-staking-solo} +## Consideraciones antes de participar desde casa {#considerations-before-staking-solo} -Por mucho que deseemos que la participación individual fuera accesible y libre de riesgos para todos, esta no es la realidad. Hay algunas consideraciones prácticas y serias que debemos tener en cuenta antes de elegir la participación individual de su ETH. +Por mucho que busquemos que participar desde casa sea accesible y libre de riesgos para todos, esta no es la realidad. Hay algunas consideraciones prácticas y serias que debemos tener en cuenta antes de elegir participar desde casa con sus ETH. @@ -93,7 +93,7 @@ El Lanzador de participaciones es una aplicación de código abierto que le ayud ## Qué considerar respecto a las herramientas de configuración de nodos y clientes {#node-tool-considerations} -Cada vez hay más herramientas y servicios para ayudarle a que usted haga una participación individual de su ETH, pero cada uno de ellos conlleva diferentes riesgos y beneficios. +Existe un número cada vez mayor de herramientas y servicios para ayudarle a participar desde casa con sus ETH, pero cada una comporta diferentes riesgos y beneficios. Los indicadores de atributos a continuación indican las fortalezas o debilidades que puede tener cada herramienta de participación. Utilice esta sección como referencia sobre cómo definimos estos atributos, mientras está eligiendo las herramientas que le ayudarán con su experiencia de participación. @@ -119,7 +119,7 @@ Estas herramientas pueden utilizarse como alternativa a la [CLI de depósito de ¿Tiene alguna sugerencia para una herramienta de participación no cubierta? Eche un vistazo a nuestra [política de listado de productos](/contributing/adding-staking-products/) para ver si le parece una opción aceptable y enviarla para su revisión. -## Explorar guías de participación individual {#staking-guides} +## Explorar guías de participación desde casa {#staking-guides} @@ -138,7 +138,7 @@ Cada par de claves asociadas a un validador requieren exactamente 32 ETH para se No deposite más de 32 ETH para un solo validador. No aumentará sus recompensas. Si se ha establecido una dirección de retirada para el validador, cualquier exceso de fondos superior a 32 ETH se retirará automáticamente a esta dirección durante el próximo
          barrido del validador. -Si la participación individual le parece demasiado exigente, plantéese el usar un proveedor de participación como servicio, o si está trabajando con menos de 32 ETH, plantéese los grupos de participación. +Si participar desde casa le parece demasiado exigente, considere utilizar un proveedor de staking-as-a-service o si busca participar con menos de 32 ETH investigue grupos de participación. diff --git a/public/content/translations/fa/contributing/translation-program/translators-guide/index.md b/public/content/translations/fa/contributing/translation-program/translators-guide/index.md index 730a2a34a0c..1042919e6da 100644 --- a/public/content/translations/fa/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/fa/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Crowdin دارای یک ویژگی داخلی است که به مترجمان ه ![مثال link.png](./example-of-link.png) -لینک ها همچنین در متن مبدأ به شکل برچسب ظاهر می شوند (یعنی <0> ). اگر ماوس را روی برچسب نگه دارید، ویرایشگر محتوای کامل آن را نشان می دهد - گاهی اوقات این برچسب ها نشان دهنده لینک‌ها هستند. +لینک ها همچنین در متن مبدأ به شکل برچسب ظاهر می شوند (یعنی \<0> \). اگر ماوس را روی برچسب نگه دارید، ویرایشگر محتوای کامل آن را نشان می دهد - گاهی اوقات این برچسب ها نشان دهنده لینک‌ها هستند. بسیار مهم است که لینک ها را از منبع کپی کنید و ترتیب آنها را تغییر ندهید. @@ -154,7 +154,7 @@ Crowdin دارای یک ویژگی داخلی است که به مترجمان ه متن منبع همچنین حاوی برچسب های کوتاه شده است که فقط حاوی اعداد هستند، به این معنی که عملکرد آنها بلافاصله مشخص نمی شود. می‌توانید ماوس را روی این برچسب‌ها نگه دارید تا ببینید دقیقاً کدام عملکرد را انجام می‌دهند. -در مثال زیر، می‌توانید آیتم های نگه داشتن ماوس را ببینید <0> برچسب نشان می دهد که نشان دهنده `` است و حاوی یک قطعه کد است، بنابراین محتوای داخل این برچسب ها نباید ترجمه شود. +در مثال زیر، می‌توانید آیتم های نگه داشتن ماوس را ببینید \<0> برچسب نشان می دهد که نشان دهنده `` است و حاوی یک قطعه کد است، بنابراین محتوای داخل این برچسب ها نباید ترجمه شود. ![نمونه ای از تگ‌های مبهم.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/fa/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/fa/developers/docs/networking-layer/portal-network/index.md index aad0835e42a..caa94abb879 100644 --- a/public/content/translations/fa/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/fa/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ JSON-RPC API یک انتخاب ایده‌آل برای درخواست داده - کاهش وابستگی به ارائه دهندگان متمرکز - کاهش استفاده از پهنای باند اینترنت - همگام سازی حداقل یا صفر -- قابل دسترسی برای دستگاه های دارای محدودیت منابع (<1 گیگابایت رم، <100 مگابایت فضای دیسک، 1 CPU) +- قابل دسترسی برای دستگاه های دارای محدودیت منابع (\<1 گیگابایت رم، \<100 مگابایت فضای دیسک، 1 CPU) نمودار زیر عملکردهای کاربرهای موجود را نشان می‌دهد که می‌تواند توسط شبکه پورتال ارائه شود و کاربران را قادر می‌سازد تا به این عملکردها در دستگاه‌های با منابع بسیار کم دسترسی داشته باشند. diff --git a/public/content/translations/fa/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/fa/developers/docs/nodes-and-clients/archive-nodes/index.md index eecb1201c1a..98adcdfd625 100644 --- a/public/content/translations/fa/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/fa/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -65,7 +65,7 @@ sidebarDepth: 2 همیشه مطمئن شوید که الزامات سخت افزاری برای یک حالت معین در اسناد کاربر را تایید می‌کنید. بزرگترین نیاز برای گره‌های آرشیو فضای دیسک است. این فضا بسته به کاربر، می‌تواند از 3 ترابایت تا 12 ترابایت متفاوت باشد. حتی اگر HDD راه‌حل بهتری برای حجم زیادی از داده به نظر رسد، برای همگام‌سازی و به روزرسانی پیوسته‌اش با زنجیرۀ شبکه، به درایوهای SSD نیاز خواهد داشت. درایوهای [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) به اندازۀ کافی خوب هستند ولی باید کیفیت قابل اعتماد حداقل در حد [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences) داشته باشند. دیسک‌ها را می‌توان بر روی کامپیوتر یا یک سرور با اسلات کافی نصب کرد. چنین دستگاه‌هایی برای اجرای گره با زمان کاریِ بالا ایده آل و مناسب هستند. اجرای آن بر روی لپ تاپ نیز امکان‌پذیر است ولی قابل حمل بودنش هزینۀ اضافی به همراه خواهد داشت. -تمامی داده‌ها باید در یک حجم قرار گیرند بنابراین دیسک‌ها باید به عنوان مثال توسط [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) یا [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html) به هم متصل شوند. همچنین ممکن است استفاده از سیستم فایل [ZFS](https://en.wikipedia.org/wiki/ZFS) از آنجا که از ویژگی Copy-on-write پشتیبانی می‌کند، ارزشمند باشد، در واقع این ویژگی اطمینان حاصل می‌کند که داده‌ها به درستی بر روی دیسک و بدون هیچ گونه خطای سطح پایین نوشته شده باشند. +تمامی داده‌ها باید در یک حجم قرار گیرند بنابراین دیسک‌ها باید به عنوان مثال توسط [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) یا LVM به هم متصل شوند. همچنین ممکن است استفاده از سیستم فایل [ZFS](https://en.wikipedia.org/wiki/ZFS) از آنجا که از ویژگی Copy-on-write پشتیبانی می‌کند، ارزشمند باشد، در واقع این ویژگی اطمینان حاصل می‌کند که داده‌ها به درستی بر روی دیسک و بدون هیچ گونه خطای سطح پایین نوشته شده باشند. برای ثبات و امنیت بیشتر به منظور جلوگیری از خرابی تصادفی در پایگاه داده، به خصوص در تنظیمات حرفه‌ای، از [ECC memory](https://en.wikipedia.org/wiki/ECC_memory) در صورتی که توسط سیستم‌تان پشتیبانی می‌شود، استفاده کنید. به طور کلی توصیه می‌شود سایز RAM هم اندازۀ گره کامل باشد ولی در کل RAM بیشتر می‌تواند به سرعت همگام‌سازی کمک کند. diff --git a/public/content/translations/fa/developers/docs/smart-contracts/composability/index.md b/public/content/translations/fa/developers/docs/smart-contracts/composability/index.md index a42b316dd62..4adb50159bd 100644 --- a/public/content/translations/fa/developers/docs/smart-contracts/composability/index.md +++ b/public/content/translations/fa/developers/docs/smart-contracts/composability/index.md @@ -45,7 +45,7 @@ incomplete: true اگر توکنی در `صرافی A` قیمتی بیش از `صرافی B` داشته باشد، از این تفاوت قیمت میتوان برای کسب سود استفاده کرد. با این حال، تنها در زمانی میتوانید این کار رانجام دهید که سرمایه لازم برای اجرای تراکنش مورد نیاز را داشته باشید ( خرید توکن از `صرافی B` و فروش در `صرافی A`). -در زمانی که سرمایه لازم برای انجام این ترید را نداشته باشید، استفاده از وام سریع یا همان flash loan گزینه ای ایده آل به حساب می آید. [وام های سریع](/defi/#flash-loans) مفهومی بسیار تکنیکال دارند، اما اگر بخواهیم به صورت ساده بگوئیم، ایده کلی به این صورت است که بدون نیاز به هیچ گونه گروگذاری یا داشتن سرمایه اولیه، می توان دارایی مورد نظر را قرض گرفت و البته که باید بازگشت وام، <0>در همان تراکنش صورت بگیرد. +در زمانی که سرمایه لازم برای انجام این ترید را نداشته باشید، استفاده از وام سریع یا همان flash loan گزینه ای ایده آل به حساب می آید. [وام های سریع](/defi/#flash-loans) مفهومی بسیار تکنیکال دارند، اما اگر بخواهیم به صورت ساده بگوئیم، ایده کلی به این صورت است که بدون نیاز به هیچ گونه گروگذاری یا داشتن سرمایه اولیه، می توان دارایی مورد نظر را قرض گرفت و البته که باید بازگشت وام، \<0>\در همان تراکنش\\ صورت بگیرد. به مثال ابتدایی خود بر میگردیم، یک تریدر آربیتراژ می تواند با دریافت حجم زیادی وام سریع، توکن ها را از `صرافی B` خریده، آنها را در `صرافی A` بفروشد، وام گرفته شده را به همراه بهره آن بپردازد، و در نهایت سود باقیمانده را برای خود نگه دارد، و همه این اتفاقات تنها در همان یک تراکنش رخ می دهد. این منطق پیچیده نیاز به فراخوانی و استفاده ترکیبی از چندین قرارداد مختلف دارد، که در صورت نبود قابلیت ارتباط گیری بین قراردادهای هوشمند، امکان‌پذیر نبود. diff --git a/public/content/translations/fa/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/fa/developers/docs/smart-contracts/formal-verification/index.md index 767205b82f2..51f20781d37 100644 --- a/public/content/translations/fa/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/fa/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ lang: fa ### خواص سبک هوآر {#hoare-style-properties} -[منطق هوآر](https://en.wikipedia.org/wiki/Hoare_logic) مجموعه‌ای از قوانین رسمی را برای استدلال در مورد صحت برنامه‌ها، از جمله قراردادهای هوشمند، ارائه می‌کند. یک ویژگی به سبک هوآر با یک سه‌گانه هوآر {_P_}_c_{_Q_} نشان داده می‌شود، که در آن _c_ یک برنامه است و _P_ و _Q_ گزاره‌هایی در مورد حالت c (یعنی برنامه) هستند که به ترتیب به صورت _پیش شرط‌ها_ و _پس شرط‌ها_ توصیف می‌شوند. +[منطق هوآر](https://en.wikipedia.org/wiki/Hoare_logic) مجموعه‌ای از قوانین رسمی را برای استدلال در مورد صحت برنامه‌ها، از جمله قراردادهای هوشمند، ارائه می‌کند. یک ویژگی به سبک هوآر با یک سه‌گانه هوآر `{P}c{Q}` نشان داده می‌شود، که در آن `c` یک برنامه است و `P` و `Q` گزاره‌هایی در مورد حالت c (یعنی برنامه) هستند که به ترتیب به صورت _پیش شرط‌ها_ و _پس شرط‌ها_ توصیف می‌شوند. پیش شرط یک گزاره است که شرایط لازم برای اجرای صحیح یک تابع را توصیف می کند. کاربرانی که قرارداد را امضا می کنند باید این شرط را برآورده کنند. پیش شرط یک گزاره است که شرایط لازم برای اجرای صحیح یک تابع را توصیف می کند. کاربرانی که قرارداد را امضا کنند باید این شرط را تعیین کنند. یک _ثابت_ در منطق هوآر یک گزاره است که توسط اجرای یک تابع حفظ می‌شود (یعنی تغییر نمی‌کند). diff --git a/public/content/translations/fa/developers/docs/smart-contracts/security/index.md b/public/content/translations/fa/developers/docs/smart-contracts/security/index.md index 218e328a1be..9f9dcbe8ff9 100644 --- a/public/content/translations/fa/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/fa/developers/docs/smart-contracts/security/index.md @@ -78,7 +78,7 @@ contract VendingMachine { متأسفانه، تست واحد برای بهبود امنیت قراردادهای هوشمند زمانی که به صورت مجزا مورد استفاده قرار می‌گیرد، حداقل مؤثر است. یک تست واحد ممکن است ثابت کند که یک تابع برای داده‌های ساختگی به درستی اجرا می‌شود، اما تست‌های واحد فقط به اندازه تست‌های نوشته شده مؤثر هستند. این امر تشخیص موارد لبه از دست رفته و آسیب پذیری هایی را که می تواند ایمنی قرارداد هوشمند شما را به هم بزند، دشوار می کند. -یک رویکرد بهتر ترکیب آزمایش واحد با آزمایش مبتنی بر ویژگی است که با استفاده از [تحلیل استاتیک و پویا](/developers/docs/smart-contracts/testing/#static-dynamic-analysis) انجام می‌شود. تجزیه و تحلیل استاتیک بر نمایش‌های سطح پایین، مانند [گراف‌های جریان کنترل](https://en.wikipedia.org/wiki/Control-flow_graph) و[درخت‌های نحو انتزاعی](https://deepsource.io/glossary/ast/) برای تجزیه و تحلیل وضعیت‌های قابل دسترسی برنامه و مسیرهای اجرا. در همین حال، تکنیک‌های تحلیل پویا، مانند [فازی قرارداد هوشمند](https://www.cyfrin.io/blog/smart-contract-fuzzing-and-invariants-testing-foundry)، قرارداد را اجرا می‌کنند. کد با مقادیر ورودی تصادفی برای شناسایی عملیاتی که ویژگی‌های امنیتی را نقض می‌کند. +یک رویکرد بهتر ترکیب آزمایش واحد با آزمایش مبتنی بر ویژگی است که با استفاده از [تحلیل استاتیک و پویا](/developers/docs/smart-contracts/testing/#static-dynamic-analysis) انجام می‌شود. تجزیه و تحلیل استاتیک بر نمایش‌های سطح پایین، مانند [گراف‌های جریان کنترل](https://en.wikipedia.org/wiki/Control-flow_graph) و [درخت‌های نحو انتزاعی](https://deepsource.io/glossary/ast/) برای تجزیه و تحلیل وضعیت‌های قابل دسترسی برنامه و مسیرهای اجرا. در همین حال، تکنیک‌های تحلیل پویا، مانند [فازی قرارداد هوشمند](https://www.cyfrin.io/blog/smart-contract-fuzzing-and-invariants-testing-foundry)، قرارداد را اجرا می‌کنند. کد با مقادیر ورودی تصادفی برای شناسایی عملیاتی که ویژگی‌های امنیتی را نقض می‌کند. [تأیید رسمی](/developers/docs/smart-contracts/formal-verification) تکنیک دیگری برای تأیید ویژگی‌های امنیتی در قراردادهای هوشمند است. برخلاف تست‌های معمولی، تأیید رسمی می‌تواند به طور قطعی عدم وجود خطا در یک قرارداد هوشمند را ثابت کند. این امر با ایجاد یک مشخصات رسمی که ویژگی‌های امنیتی مورد نظر را نشان می‌دهد و اثبات اینکه مدل رسمی قراردادها به این مشخصات پایبند است، به دست می‌آید. @@ -93,15 +93,15 @@ contract VendingMachine { با وجود همه‌ی این موارد، شما نباید با حسابرسی امنیتی مانند پاسخی برای تمام مشکلات برخورد کنید. آدیت قراردادهای هوشمند هر اشکالی را شناسایی نمی‌کند و عمدتاً برای ارائه یک سری بررسی اضافی طراحی شده است که می‌تواند به شناسایی مشکلاتی که توسعه دهندگان در طول توسعه و تست اولیه از قلم انداخته‌اند کمک کند. همچنین باید بهترین روش‌ها را برای کار با حسابرسان، مانند مستندسازی کد به درستی و افزودن نظرات درون خطی، دنبال کنید تا از مزایای حسابرسی قرارداد هوشمند به حداکثر برسانید. - [نکات حسابرسی قرارداد هوشمند و amp; ترفندها](https://twitter.com/tinchoabbate/status/1400170232904400897) - _@tinchoabbate_ -- [از حسابرسی خود حداکثر استفاده را ببرید](https://inference.ag/blog/2023-08-14-tips/) +- [از حسابرسی خود حداکثر استفاده را ببرید](https://inference.ag/blog/2023-08-14-tips/) - _Inference_ #### پاداش‌های باگ {#bug-bounties} راه اندازی یک برنامه باگ بانتی روش دیگری برای اجرای بررسی کدهای خار‌جی است. جایزه باگ یک پاداش مالی است که به افرادی (معمولاً هکرهای کلاه سفید) که آسیب‌پذیری‌های یک برنامه را کشف می‌کنند، داده می‌شود. -هنگامی که به درستی استفاده می‌شود، پاداش‌های باگ به اعضای جامعه هکر انگیزه می‌دهد تا کد شما را از نظر نقص‌های مهم بررسی کنند. یک مثال واقعی "باگ پول بی‌نهایت" است که به مهاجم اجازه می‌دهد مقدار نامحدودی اتر را در [آپتیمیزم](https://www.optimism.io/) ایجاد کند، یک < یک پروتکل لایه که روی اتریوم اجرا می‌شود. خوشبختانه، یک هکر whitehat [این نقص را کشف کرد](https://www.saurik.com/optimism.html) و به تیم اطلاع داد، [کسب پرداختی بزرگ در این فرآیند انجام شد](https://cryptoslate.com/in-ethereum-l2-optimism-2m-bounty-paid/) بحرانی-اشکال-. +هنگامی که به درستی استفاده می‌شود، پاداش‌های باگ به اعضای جامعه هکر انگیزه می‌دهد تا کد شما را از نظر نقص‌های مهم بررسی کنند. یک مثال واقعی "باگ پول بی‌نهایت" است که به مهاجم اجازه می‌دهد مقدار نامحدودی اتر را در [آپتیمیزم](https://www.optimism.io/) ایجاد کند، یک یک پروتکل [لایه 2](/layer-2/) که روی اتریوم اجرا می‌شود. خوشبختانه، یک هکر whitehat [این نقص را کشف کرد](https://www.saurik.com/optimism.html) و به تیم اطلاع داد، [کسب پرداختی بزرگ در این فرآیند انجام شد](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). -یک استراتژی مفید این است که پرداخت برنامه پاداش اشکال را متناسب با مقدار وجوه مورد نظر تنظیم کنید. این رویکرد به‌عنوان «[اشکال مقیاس‌گذاری](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7) توصیف می‌شود. انگیزه‌های مالی برای افراد برای افشای مسئولانه آسیب پذیری‌ها به جای سوء استفاده از آنها را ایجاد می‌کند. +یک استراتژی مفید این است که پرداخت برنامه پاداش اشکال را متناسب با مقدار وجوه مورد نظر تنظیم کنید. این رویکرد به‌عنوان «[اشکال مقیاس‌گذاری](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7)» توصیف می‌شود. انگیزه‌های مالی برای افراد برای افشای مسئولانه آسیب پذیری‌ها به جای سوء استفاده از آنها را ایجاد می‌کند. ### 5. در هنگام توسعه قراردادهای هوشمند بهترین رویه های موجود را دنبال کنید {#follow-smart-contract-development-best-practices} @@ -131,7 +131,7 @@ contract VendingMachine { مکانیسم‌های ارتقای قرارداد متفاوت عمل می‌کنند، اما «الگوی پروکسی» یکی از محبوب‌ترین رویکردها برای ارتقای قراردادهای هوشمند است. [الگوهای پراکسی](https://www.cyfrin.io/blog/upgradeable-proxy-smart-contract-pattern) منطق اجرائی و فضای ذخیره‌سازی داده‌ها را بین _دو_ قرارداد تقسیم می‌کند. قرارداد اول (که "قرارداد پراکسی" نامیده می‌شود) متغیرهای حالت را ذخیره می‌کند (به عنوان مثال، موجودی کاربر)، در حالی که قرارداد دوم (که "منطق قرارداد" نامیده می‌شود) کد اجرای توابع قرارداد را نگه می‌دارد. -حساب‌ها با قرارداد پروکسی تعامل دارند، که همه فراخوانی‌های تابع را با استفاده از [`delegatecall()`](https://docs.soliditylang.org/en/v0.8.16/introduction-to-smart-contracts.html?highlight=delegatecall#delegatecall-callcode-and-libraries) به قرارداد منطقی ارسال می‌کند. تماس سطح پایین. برخلاف یک تماس پیامی معمولی، `delegatecall()` تضمین می‌کند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا می‌شود. یک تماس پیامی معمولی، `delegatecall()` تضمین می‌کند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا می‌شود. +حساب‌ها با قرارداد پروکسی تعامل دارند، که همه فراخوانی‌های تابع را با استفاده از [`delegatecall()`](https://docs.soliditylang.org/en/v0.8.16/introduction-to-smart-contracts.html?highlight=delegatecall#delegatecall-callcode-and-libraries) تماس سطح پایین. برخلاف یک تماس پیامی معمولی، `delegatecall()` تضمین می‌کند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا می‌شود. یک تماس پیامی معمولی، `delegatecall()` تضمین می‌کند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا می‌شود. واگذاری تماس‌ها به قرارداد منطقی مستلزم ذخیره آدرس آن در فضای ذخیره‌سازی قرارداد پروکسی است. از این رو، ارتقاء منطق قرارداد فقط به استقرار یک قرارداد منطقی دیگر و ذخیره آدرس جدید در قرارداد پروکسی بستگی دارد. از آنجایی که فراخوانی یا تماس‌های بعدی به قرارداد پروکسی به طور خودکار به قرارداد منطقی جدید هدایت می‌شوند، می‌توانید قرارداد را بدون تغییر واقعی کد «ارتقاء» می‌دادید. @@ -459,11 +459,11 @@ contract Attack { ### ابزارهایی برای تجزیه و تحلیل قراردادهای هوشمند و تأیید صحت کد {#code-analysis-tools} -- **[ابزارها و کتابخانه‌های تست](/developers/docs/smart-contracts/testing/#testing-tools-and-libraries)** - مجموعه ای از ابزارها و کتابخانه‌های استاندارد صنعتی برای انجام تست‌های واحد، تجزیه و تحلیل استاتیک و تجزیه و تحلیل پویا در قراردادهای هوشمند است +- **[ابزارها و کتابخانه‌های تست](/developers/docs/smart-contracts/testing/#testing-tools-and-libraries)** - _مجموعه ای از ابزارها و کتابخانه‌های استاندارد صنعتی برای انجام تست‌های واحد، تجزیه و تحلیل استاتیک و تجزیه و تحلیل پویا در قراردادهای هوشمند است_ - **[ابزارهای تأیید رسمی](/developers/docs/smart-contracts/formal-verification/#formal-verification-tools)** - _ابزارهایی برای تأیید صحت عملکرد در قراردادهای هوشمند و بررسی متغیرها هستند._ -- **[خدمات حسابرسی قراردادهای هوشمند](/developers/docs/smart-contracts/testing/#smart-contract-auditing-services)** - فهرست ‌هایی که خدمات حسابرسی قرارداد هوشمند برای پروژه‌های توسعه اتریوم ارائه می‌کنند. +- **[خدمات حسابرسی قراردادهای هوشمند](/developers/docs/smart-contracts/testing/#smart-contract-auditing-services)** - _فهرست ‌هایی که خدمات حسابرسی قرارداد هوشمند برای پروژه‌های توسعه اتریوم ارائه می‌کنند._ - **[پلتفرم‌های پاداش باگ](/developers/docs/smart-contracts/testing/#bug-bounty-platforms)** - _پلتفرم‌هایی برای هماهنگی پاداش‌های اشکال و پاداش افشای مسئولانه آسیب‌پذیری‌های مهم در قراردادهای هوشمند هستند_ @@ -507,7 +507,7 @@ contract Attack { - **[Nethermind](https://nethermind.io/smart-contracts-audits)** - _ خدمات حسابرسی سالیدیتی و کایرو، تضمین یکپارچگی قراردادهای هوشمند و ایمنی کاربران در سراسر اتریوم و استارک نت را ارائه می‌دهد._ -- **[HashEx](https://hashex.org/)** - _HashEx بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد. +- **[HashEx](https://hashex.org/)** - _HashEx بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد._ - **[Code4rena](https://code4rena.com/)** - _پلتفرم حسابرسی رقابتی که کارشناسان امنیت قراردادهای هوشمند را تشویق می‌کند تا آسیب‌پذیری‌ها را بیابند و به ایمن‌تر شدن Web3 کمک کنند._ diff --git a/public/content/translations/fa/roadmap/merge/index.md b/public/content/translations/fa/roadmap/merge/index.md index 1e87ad09518..26d60c8705f 100644 --- a/public/content/translations/fa/roadmap/merge/index.md +++ b/public/content/translations/fa/roadmap/merge/index.md @@ -90,7 +90,7 @@ title="Dapp و توسعه‌دهندگان قرارداد هوشمند" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -رویداد «ادغام» با تغییراتی در اجماع همراه شد، که همچنین شامل تغییرات مرتبط با موارد زیر می‌شود:< +رویداد «ادغام» با تغییراتی در اجماع همراه شد، که همچنین شامل تغییرات مرتبط با موارد زیر می‌شود:
          • ساختار بلوک
          • diff --git a/public/content/translations/fa/whitepaper/index.md b/public/content/translations/fa/whitepaper/index.md index f678b445ff0..52d793c3d58 100644 --- a/public/content/translations/fa/whitepaper/index.md +++ b/public/content/translations/fa/whitepaper/index.md @@ -16,53 +16,38 @@ _با وجود عمری چندین ساله، ما این مقاله را حفظ ## یک پلتفرم قرارداد هوشمند و برنامه‌ی غیرمتمرکز نسل بعدی {#a-next-generation-smart-contract-and-decentralized-application-platform} -توسعه بیت کوین توسط ساتوشی ناکاموتو در سال ۲۰۰۹ اغلب به عنوان یک تحول اساسی درصنعت پول و رمزارز مورد استقبال قرار گرفته است، اولین نمونه یک دارایی دیجیتال که به طور همزمان نه هیچ پشتوانه یا "[ارزش ذاتی](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/)" دارد و نه هیچ مرجع عرضه متمرکز یا کنترل کننده. با این حال، یکی از بخش‌های - شاید مهم تر - تجربه بیت کوین زیربنای فناوری زنجیره بلوکی آن به عنوان ابزاری برای اجماع توزیع شده است، و توجهات به سرعت در حال شروع به تغییر به این جنبه دیگر بیت کوین است. کاربردهای جایگزین رایج فناوری بلاک چین شامل استفاده از دارایی های دیجیتال درون بلاک چین برای نشان دادن ارزهای سفارشی و ابزارهای مالی "[سکه های رنگی](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lBEoW2T) ویرایش"، مالکیت یک دستگاه فیزیکی زیربنایی ("[اموال هوشمند](https://en.bitcoin.it/wiki/Smart_Property)")، دارایی‌های غیرقابل تعویض مانند نام‌های دامنه ("[Namecoin](http://namecoin.org)")، و همچنین برنامه‌های پیچیده‌تر شامل داشتن دارایی‌های دیجیتال که مستقیماً توسط یک قطعه کد کنترل می‌شوند. اجرای قوانین دلخواه ("[هوشمند قراردادها](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)") یا حتی " - -سازمان های مستقل غیرمتمرکز مبتنی بر بلاک چین (DAOs). آنچه اتریوم قصدش را دارد فراهم‌سازی یک زنجیره بلوکی با یک زبان برنامه نویسی توکار تورینگ-کامل تمام عیار است که بتوان از آن برای ساخت "قرارداد" هایی که می‌توانند برای کد کردن توابع انتقال وضعیت دلخواه مورد استفاده قرار بگیرند بهره برد، که به کاربرها اجازه ساخت هر کدام از سیستم های پیش‌تر ذکر شده را و همچنین بسیاری از انواع دیگری که حتی تصورشان را هم هنوز نکرده ایم می‌دهد، صرفاً با به نوشته در آوردن منطق آن در چند خط کد. +توسعه بیت کوین توسط ساتوشی ناکاموتو در سال ۲۰۰۹ اغلب به عنوان یک تحول اساسی درصنعت پول و رمزارز مورد استقبال قرار گرفته است، اولین نمونه یک دارایی دیجیتال که به طور همزمان نه هیچ پشتوانه یا "[ارزش ذاتی](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/)" دارد و نه هیچ مرجع عرضه متمرکز یا کنترل کننده. با این حال، یکی از بخش‌های - شاید مهم تر - تجربه بیت کوین زیربنای فناوری زنجیره بلوکی آن به عنوان ابزاری برای اجماع توزیع شده است، و توجهات به سرعت در حال شروع به تغییر به این جنبه دیگر بیت کوین است. کاربردهای جایگزین رایج فناوری بلاک چین شامل استفاده از دارایی های دیجیتال درون بلاک چین برای نشان دادن ارزهای سفارشی و ابزارهای مالی ("[سکه های رنگی](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)")، مالکیت یک دستگاه فیزیکی زیربنایی ("[اموال هوشمند](https://en.bitcoin.it/wiki/Smart_Property)")، دارایی‌های غیرقابل تعویض مانند نام‌های دامنه ("[Namecoin](http://namecoin.org)")، و همچنین برنامه‌های پیچیده‌تر شامل داشتن دارایی‌های دیجیتال که مستقیماً توسط یک قطعه کد کنترل می‌شوند. اجرای قوانین دلخواه ("[هوشمند قراردادها](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)") یا حتی مبتنی بر بلاک چین "[سازمان های مستقل غیرمتمرکز](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/)" (DAOs). آنچه اتریوم قصدش را دارد فراهم‌سازی یک زنجیره بلوکی با یک زبان برنامه نویسی توکار تورینگ-کامل تمام عیار است که بتوان از آن برای ساخت "قرارداد" هایی که می‌توانند برای کد کردن توابع انتقال وضعیت دلخواه مورد استفاده قرار بگیرند بهره برد، که به کاربرها اجازه ساخت هر کدام از سیستم های پیش‌تر ذکر شده را و همچنین بسیاری از انواع دیگری که حتی تصورشان را هم هنوز نکرده ایم می‌دهد، صرفاً با به نوشته در آوردن منطق آن در چند خط کد. ## مقدمه ای بر بیت کوین و مفاهیم موجود {#introduction-to-bitcoin-and-existing-concepts} - - ### تاریخچه {#history} مفهوم ارز دیجیتال نامتمرکز و همچنین برنامه های جایگزین مانند ثبت اموال، برای دهه ها وجود داشته است. پروتکل‌های پول نقد الکترونیکی ناشناس در دهه‌های 1980 و 1990، عمدتاً متکی به یک رمزنگاری بدوی به نام کورکننده چاومین، ارزی با درجه بالایی از حریم خصوصی ارائه می‌ شدند، اما پروتکل‌ها عمدتاً به دلیل اتکا به یک واسطه متمرکز نتوانستند مورد توجه قرار گیرند. در سال 1998، [b-money](http://www.weidai.com/bmoney.txt) از Wei Dai نخستین طرحی شد که ایده ساخت پول از طریق حل معما های محاسباتی و نیز اجماع نامتمرکز را معرفی می‌کرد، اما جزئیات طرح پیرامون اینکه اجماع نامتمرکز در واقع چگونه می‌توانست تعبیه شود ناچیز بود. در سال 2005، هال فینی مفهوم [اثبات کار قابل استفاده مجدد](https://nakamotoinstitute.org/finney/rpow/) را معرفی کرد، سیستمی که از ایده‌هایی از b-money به همراه پازل‌های سخت محاسباتی Hashcash آدام بک برای ایجاد مفهومی برای یک ارز دیجیتال بهره می‌برد، اما بار دیگر به دلیل تکیه بر محاسبات قابل اعتماد به عنوان یک بک‌اند، دور از ایده‌آل قرار گرفت. در سال 2009، یک ارز غیرمتمرکز برای اولین بار در عمل توسط ساتوشی ناکاموتو پیاده‌سازی شد، که ترکیبی از اصول اولیه برای مدیریت مالکیت از طریق رمزنگاری کلید عمومی همچنین الگوریتم اجماع برای پیگیری صاحبان سکه‌ها، معروف به "اثبات کار" اجرا شد. سازوکار پشت اثبات کار پیشرفت شگفت انگیزی بود چون به طور همزمان دو مشکل را حل می‌کرد. در وهله اول يك الگوريتم اجماع و ساده و موثر را ارائه مي كرد و به گره ها در شبكه اجازه مي دهد كه بصورت جامع و متمركز بر حالت به روز شده دفتر حساب بيتكوين توافق كنند. دوماً، مکانیسمی را برای ورود آزادانه به فرآیند اجماع ارائه داد که مشکل تصمیم گیری برای اینکه چه کسی هم بر اجماع تاثیر بگذارد و هم از حملات sybil جلوگیری کند. این کار را با جایگزین کردن یک مانع رسمی برای مشارکت، مانند الزام به ثبت نام به عنوان یک موجودیت منحصر به فرد در یک لیست خاص، با یک مانع اقتصادی انجام می دهد - وزن یک گره واحد در فرآیند رای گیری اجماع مستقیماً با قدرت محاسباتی که گره به ارمغان می آورد، متناسب است. از آن زمان، یک رویکرد جایگزین به نام _اثبات سهام_ پیشنهاد شده است که وزن یک گره را متناسب با دارایی های ارز آن محاسبه می کند و نه منابع محاسباتی. بحث در مورد مزایای نسبی دو رویکرد خارج از محدوده این مقاله است، اما باید توجه داشت که هر دو رویکرد می توانند به عنوان ستون فقرات یک رمزارز مورد استفاده قرار گیرند. - - ### بیت کوین به عنوان یک سیستم انتقال حالت {#bitcoin-as-a-state-transition-system} ![انتقال حالت اتریوم](./ethereum-state-transition.png) از نقطه نظر فنی، دفتر کل رمزارزهایی مانند بیتکوین را می توان به عنوان یک سیستم انتقال حالت در نظر گرفت، که در آن یک "حالت" متشکل از وضعیت مالکیت تمام بیتکوین های موجود و یک "تابع انتقال حالت" که یک حالت و یک تراکنش را می گیرد و یک حالت جدید را که نتیجه آن است، خروجی می دهد. به عنوان مثال، در یک سیستم بانکی استاندارد، حالت یک صفحه‌ی موجودی است، تراکنش یک درخواست برای انتقال x ریال از آ به ب، و تابع انتقال حالت از حساب آ مقدار x ریال را کسر می‌کند و به حساب ب مقدار x ریال را می‌افزاید. اگر حساب آ از پیش کمتر از $X داشته باشد، تابع انتقال حالت یک خطا بازمی‌گرداند. سر‌آخر می‌توان به شکل استاندارد تعریف‌ کرد: - - ``` APPLY(S,TX) -> S' or ERROR ``` - در سیستم بانکی که بالا تعریف شد: - - ```js APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") = { Alice: $30, Bob: $70 } ``` - اما: - - ```js APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR ``` - "وضعیت" در بیت کوین مجموعه ای از تمام کوین ها (از لحاظ فنی، "خروجی های تراکنش خرج نشده" یا UTXO) است که ضرب شده اند و هنوز خرج نشده اند، با هر UTXO دارای یک اسم و یک مالک (که با یک آدرس 20 بایتی تعریف می شود. اساسا یک کلید عمومی رمزنگاری است[fn1](#notes)). یک تراکنش شامل یک یا چند ورودی است که هر ورودی حاوی ارجاع به یک UTXO موجود و یک امضای رمزنگاری شده توسط کلید خصوصی مرتبط با آدرس مالک است و یک یا چند خروجی که هر خروجی حاوی یک UTXO جدید است که باید به آن حالت اضافه شود. تابع انتقال حالت `APPLY(S,TX) -> S'` را می توان تقریباً به صورت زیر تعریف کرد: @@ -89,8 +74,6 @@ APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR نیمه‌ی اول از گام اول مانع از این می‌شود که فرستنده‌ها کوین‌هایی که وجود ندارند را خرج کنند، نیمه‌ی دوم از گام اول مانع از این می‌شود که فرستنده‌ها کوین‌های دیگر افراد را خرج نکنند، و گام دوم فرستنده‌ را مجبور می‌کند که ارزش را حفظ کند. برای این که از این برای پرداخت استفاده کنیم، پروتکل به شکل زیر است. فرض کنید که آلیس می‌خواهد ۱۱٬۷ BTC را به باب بفرستد. ابتدا آلیس به دنبال یک مجموعه از UTXO از آن‌هایی که خود مالک آن‌هاست می‌گردد که مجموعشان حداقل ۱۱٬۷ BTC شود. واقع‌بینانه، آلیس نخواهد توانست که دقیقا ۱۱٬۷ BTC را بیابد؛ فرض کنید کمترین میزانی که آلیس می‌تواند بسازد ۶+۴+۲=۱۲ باشد. در گام بعدی او یک تراکنش با سه ورودی گفته‌شده و دو خروجی می‌سازد. اولین خروجی ۱۱٬۷ BTC به آدرس باب خواهد بود و دومین خروجی مقدار ۰٬۳ BTC باقیمانده به عنوان «پول خرد»، به آدرس خود آلیس است. - - ### استخراج {#mining} ![بلوک های اتریوم](./ethereum-blocks.png) @@ -103,7 +86,8 @@ APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR 2. بررسی کنید که مُهر زمانی بلوک بزرگتر از بلوک قبلی باشد[fn2](#notes) و کمتر از 2 ساعت در آینده باشد 3. بررسی کنید که اثبات کار روی بلوک معتبر باشد. 4. حالت `S[0]` را حالت پایانی بلوک قبل بگذار. -5. فرض کن `TX` لیست تراکنش‌های بلوک با تعداد `n` تراکنش است. برای همه `i` در `0...n-1`، `S[i+1] = APPLY(S[i], TX[i]) را تنظیم کنید /code> اگر هر برنامه ای خطا را برمی‌گرداند، از آن خارج شوید و false را برگردانید. True را برگردانید و S[n]` را به عنوان وضعیت در انتهای این بلوک ثبت کنید. +5. فرض کن `TX` لیست تراکنش‌های بلوک با تعداد `n` تراکنش است. فرض کن `TX` لیست تراکنش‌های بلوک با تعداد `n` تراکنش است. برای همه `i` در `0...n-1`، `S[i+1] = APPLY(S[i], TX[i])` را تنظیم کنید اگر هر برنامه ای خطا را برمی‌گرداند، از آن خارج شوید و false را برگردانید. +6. True را برگردانید و `S[n]` را به عنوان وضعیت در انتهای این بلوک ثبت کنید. در واقع هر تراکنش در بلوک باید یک انتقال حالت معتبر را از حالت قبل از انجام تراکنش به حالت جدید انجام دهد. باید توجه کرد که حالت به هیچ صورتی در بلوک ثبت نمی‌شود؛ این یک موضوع تماما انتزاعی است برای این که توسط گره‌های اعتبارسنج به خاطر سپرده شود و تنها می‌توان (به صورت ایمن) با شروع از حالت بلوک پیدایش و حرکت بر روی تراکنش‌های هر بلوک، حالت بلوک فعلی را به دست آورد. علاوه بر این، توجه کنید که ترتیبی که استخراج‌گر تراکنش‌ها را در بلوک ثبت می‌کند مهم است؛ اگر دو تراکنش آ و ب وجود داشته باشند به طوری که ب یک UTXOی ساخته‌شده از آ را خرج کند، در این صورت بلوک معتبر است اگر آ قبل از ب ثبت شود و نه برعکس. @@ -120,8 +104,6 @@ APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR هنگامی که مرحله (1) انجام شد، پس از چند دقیقه برخی از ماینرها تراکنش را در یک بلوک، مثلاً بلوک شماره 270000، وارد می کنند. بعد از حدود یک ساعت، پنج بلوک دیگر به زنجیره پس از آن بلوک، اضافه میشود که هر کدام از این بلوک ها به طور غیر مستقیم به تراکنش اشاره کرده و بنابراین آن را تایید میکنند. در این نقطه، تاجر پرداخت را نهایی تلقی میکند و محصول را تحویل میدهد. همچنان که فرض کردیم این کالا دیجیتال است و تحویل آن فوری است. حال مهاجم تراکنش دیگری را ایجاد میکند و 100 بیت کوین را به خودش ارسال میکند. اگر مهاجم به سادگی آن را رها کند، تراکنش پردازش نخواهد شد. استخراج کنندگان تلاش میکنند که `APPLY(S, TX)` را اعمال کنند و متوجه میشوند که `TX` یک UTXO را مصرف میکند که دیگر در آن حالت نیست. بنابراین در عوض آن، مهاجم یک انشعاب (فورک) از زنجیره بلوکی را ایجاد میکند که با استخراج نسخه دیگری از بلوک 270 شروع میشود که به همان بلوک 269، به عنوان بلوک مادر اشاره میکند، اما با معرفی تراکنش جدید در جای تراکنش قدیمی. از آنجا که داده های بلوک متفاوت است، این مستلزم انجام مجدد اثبات کار است. علاوه بر این، نسخه جدید بلوک 270 مهاجم دارای هش متفاوتی است، بنابراین بلوک های اصلی 271 تا 275 به آن اشاره نمی کنند. بنابراین، زنجیره اصلی و زنجیره جدید مهاجم کاملاً جدا هستند. قانون این است که در یک فورک طولانی‌ترین زنجیره بلوکی حقیقی در نظر گرفته می‌شود، و بنابراین ماینرهای قانونی روی زنجیره ۲۷۵ کار می‌کنند در حالی که مهاجم به تنهایی روی زنجیره ۲۷۰ کار می‌کند. برای اینکه مهاجم بتواند زنجیره بلوکی خود را تبدیل به طولانی‌ترین رنجیره کند، باید قدرت محاسباتی بیشتری نسبت به مجموع سایر شبکه‌ها داشته باشد تا بتواند به آن‌ها برسد (یعنی، "حمله 51٪"). - - ### درختان Merkle {#merkle-trees} ![SPV در بیتکوین](./spv-bitcoin.png) @@ -134,8 +116,6 @@ _طرف راست: هر تلاشی برای تغییر هر بخشی از درخ پروتکل درخت Merkle به طور قابل دفاعی در ماندگاری دراز مدت نقش اساسی دارد. یک گره کامل در شبکه بیت کوین، گره ای است که کلیت یک بلوک را ذخیره و پردازش میکند و حدود 15 گیگابایت از فضای دیسک شبکه بیت کوین را در آپریل 2014 اشغال میکرد و هر ماه حدود یک گیگابایت به این مقدار اضافه میشد. در حال حاضر، این برای برخی از رایانه‌های دسکتاپ و نه تلفن‌ها قابل اجرا است و بعداً در آینده فقط مشاغل و علاقه‌مندان می‌توانند در آن شرکت کنند. پروتکلی به نام "تأیید پرداخت ساده" (SPV) اجازه می دهد تا کلاس دیگری از گره ها به نام "گره های سبک" وجود داشته باشد که هدرهای بلوک را دانلود می کنند، اثبات کار روی هدرهای بلوک را تأیید می کنند و سپس فقط "شاخه ها"ی مرتبط با تراکنش هایی که به آنها مربوط است را دانلود می کنند. این به گره‌های سبک اجازه می‌دهد تا با ضمانت امنیتی قوی، وضعیت هر تراکنش بیت‌کوین و موجودی فعلی آن‌ها را تعیین کنند، در حالی که تنها بخش بسیار کوچکی از کل زنجیره بلوکی را دانلود می‌کنند. - - ### کاربردهای جایگزین زنجیره بلوکی {#alternative-blockchain-applications} ایده گرفتن ایده اصلی زنجیره بلوکی و اعمال آن در مفاهیم دیگر نیز سابقه طولانی دارد. در سال 2005، نیک زابو به مفهوم [عناوین ملکی ایمن با اختیار مالک](https://nakamotoinstitute.org/secure-property-titles/)، سندی که چگونگی "پیشرفت های جدید در فناوری پایگاه داده تکراری" را توضیح می دهد اشاره کرد. یک سیستم مبتنی بر بلاکچین برای ذخیره یک رجیستری از اینکه چه کسی امکانپذیر است که مالک چه زمینی است و یک چارچوب مفصل از جمله مفاهیمی از این قبیل ایجاد می کند به عنوان خانه داری، مالکیت نامناسب و مالیات زمین میلادی ایجاد می کند. با این حال، متأسفانه هیچ سیستم پایگاه داده تکثیر شده مؤثری در آن زمان موجود نبود، و بنابراین این پروتکل هرگز در عمل اجرا نشد. با این حال، پس از سال 2009، هنگامی که اجماع غیرمتمرکز بیت کوین توسعه یافت، تعدادی از برنامه های کاربردی جایگزین به سرعت شروع به ظهور کردند. @@ -148,8 +128,6 @@ _طرف راست: هر تلاشی برای تغییر هر بخشی از درخ از سوی دیگر، رویکرد مبتنی بر بیت‌کوین دارای این نقص است که ویژگی‌های تأیید پرداخت ساده بیت‌کوین را به ارث نمی‌برد. SPV برای بیت کوین کار می کند زیرا می تواند از عمق بلاک چین به عنوان یک پروکسی برای اعتبار استفاده کند. زمانی که پیشینه‌های یک تراکنش به اندازه کافی به عقب بروند، می توان با اطمینان گفت که آنها به طور قانونی بخشی از وضعیت بودند. از سوی دیگر، فراپروتکل‌های مبتنی بر زنجیره‌‌ی بلوکی نمی‌توانند زنجیره‌‌ی بلوکی را مجبور کنند که تراکنش‌هایی را که در چارچوب پروتکل‌های خود معتبر نیستند، در بر نگیرد. از این رو، اجرای فراپروتکل SPV کاملاً ایمن باید تا ابتدای زنجیره‌‌ی بلوکی بیت کوین را به عقب اسکن کند تا مشخص شود که آیا تراکنش های خاصی معتبر هستند یا خیر. در حال حاضر، تمام پیاده‌سازی‌های «سبک» فراپروتکل‌های مبتنی بر بیت‌کوین برای ارائه‌ی داده‌ها به یک سرور قابل اعتماد متکی هستند، که مسلماً نتیجه‌ای بسیار نابهینه است، به‌ویژه زمانی که یکی از اهداف اصلی یک ارز دیجیتال حذف نیاز به اعتماد باشد. - - ### اسکریپت نویسی {#scripting} درواقع پروتکل بیت کوین حتی بدون هیچ گونه افزونه‌ای، نسخه ضعیفی از قرارداد های هوشمند را تسهیل میکند. UTXO در بیت کوین فقط با یک کلید عمومی مالکیت پیدا نمیکند، بلکه همچنین اسکریپت پیچیده تری در زبان برنامه نویسی بر پایه‌ی پشته‌ی ساده ابراز میشود. در این الگو، تراکنشی که آن UTXO را خرج میکند، باید داده هایی را فراهم کند که اسکریپت را قانع کند. در واقع حتی مکانیزم مالکیت کلید عمومی اصلی، از طریق یک اسکریپت پیاده می‌شود. این اسکریپت یک امضای منحنی بیضوی را به عنوان ورودی اعمال میکند که آن را در برابر تراکنش و آدرسی که مالک UTXO است، تایید میکند و اگر تایید موفق باشد، 1 و در غیر این صورت 0 ارجاع داده میشود. اسکریپت های پیچیده‌تر دیگری برای موارد استفاده اضافی متعددی موجود هستند. به عنوان مثال فرد میتواند اسکریپتی بسازد که نیازمند امضاهایی شامل دو از سه کلید خصوصی باشد تا اعتبارسنجی انجام شود. (multisig) این چیدمان برای اکانت های سازمانی، اکانت های پس انداز ایمن و موقعیت های شخص ثالث بازرگان، مفید است. اسکریپت ها همچنین می‌توانند برای پرداخت جایزه هایی که برای راه حل های محاسباتی داده میشوند، استفاده شوند و فرد میتواند حتی اسکریپتی بسازد که چیزی مانند این که UTXO بیت کوین متعلق به چه کسی است، نشان داده شود. اگر بتوان یک مدرک SPV فراهم کرد که فرد یک تراکنش دوج‌کوین را فرستاده است، در اساس این امر مجوز یک تراکنش متقابل غیر متمرکز رمزارز را میدهد. @@ -163,14 +141,10 @@ _طرف راست: هر تلاشی برای تغییر هر بخشی از درخ بنابراین، ما سه رویکرد برای ایجاد برنامه های کاربردی پیشرفته در بالای آن می بینیم ارز دیجیتال: ساخت یک بلاکچین جدید، استفاده از اسکریپت در بالای بیت کوین و ساخت یک فرا پروتکل در بالای بیت کوین. ساخت یک زنجیره‌‌ی بلوکی جدید آزادی نامحدودی را در ساخت مجموعه ویژگی‌ها امکان‌پذیر می‌کند، اما به قیمت زمان توسعه، تلاش و امنیت راه‌اندازی. استفاده از اسکریپت برای پیاده‌سازی و استانداردسازی آسان است، اما در قابلیت های آن بسیار محدود است و فرا پروتکل ها، در عین سادگی، از اشکالاتی در مقیاس پذیری رنج می برند. با اتریوم، ما قصد داریم یک چارچوب جایگزین بسازیم که دستاوردهای بزرگ‌تری را در سهولت توسعه و همچنین ویژگی‌های کلاینت سبک حتی قوی‌تر فراهم می‌کند و در عین حال به برنامه‌ها اجازه می‌دهد محیط اقتصادی و امنیت زنجیره‌‌ی بلوکی را به اشتراک بگذارند. - - ## اتریوم {#ethereum} هدف اتریوم ایجاد یک پروتکل جایگزین برای ساخت برنامه‌های غیرمتمرکز است که مجموعه‌ای متفاوت از معاوضه‌ها را ارائه می‌کند که معتقدیم برای کلاس بزرگی از برنامه‌های غیرمتمرکز بسیار مفید خواهد بود، با تاکید ویژه بر موقعیت‌هایی که زمان توسعه سریع، امنیت برای کوچک و برنامه‌هایی که به ندرت استفاده می‌شوند و توانایی برنامه‌های مختلف برای تعامل بسیار کارآمد، مهم هستند. اتریوم این کار را با ساختن لایه اساسی انتزاعی نهایی انجام می دهد: یک بلاک چین با زبان برنامه نویسی داخلی کامل تورینگ، که به هر کسی اجازه می دهد قراردادهای هوشمند و برنامه های غیرمتمرکز بنویسد که در آن می توانند قوانین دلخواه خود را برای مالکیت، فرمت های تراکنش و توابع انتقال حالت ایجاد کنند. توابع انتقال حالت یک نسخه بدون استخوان Namecoin را می توان در دو خط کد نوشت و سایر پروتکل ها مانند ارزها و سیستم های شهرت را می توان در کمتر از بیست خط ایجاد کرد. قراردادهای هوشمند، "جعبه های" رمزنگاری که حاوی مقدار باشد و فقط در صورت رعایت شرایط خاص، می تواند قفل آن را باز کند در بالای پلت فرم ساخته شود، با قدرت بسیار بیشتر از آن ارائه شده توسط اسکریپت بیت کوین به دلیل قدرت های اضافه شده تورینگ-کامل بودن، آگاهی از ارزش، آگاهی از بلاک چین و وضعیت. - - ### حساب های اتریوم {#ethereum-accounts} در اتریوم، حالت از اشیایی به نام «حساب‌ها» تشکیل می‌شود که هر حساب دارای یک آدرس 20 بایتی است و انتقال حالت، انتقال مستقیم ارزش و اطلاعات بین حساب‌ها است. یک حساب اتریوم شامل چهار فیلد است: @@ -184,8 +158,6 @@ _طرف راست: هر تلاشی برای تغییر هر بخشی از درخ توجه داشته باشید که "قراردادها" در اتریوم نباید به عنوان چیزی که باید "پر شده" یا "منطبق با" تلقی شود. در عوض، آنها بیشتر شبیه «عامل‌های مستقل» هستند که در محیط اجرای اتریوم زندگی می‌کنند، همیشه یک قطعه کد خاص را هنگام «صدا زدن» توسط یک پیام یا تراکنش اجرا می‌کنند و کنترل مستقیم بر تعادل اتر خود و ذخیره کلید/مقدار خود برای پیگیری متغیرهای پایدار دارند. - - ### پیغام ها و تراکنش ها {#messages-and-transactions} واژه "تراکنش" در اتریوم برای اشاره به بسته داده امضا شده ای استفاده می شود که پیغامی را ذخیره می کند تا از یک حساب مالکیت خارجی ارسال شود. معاملات شامل: @@ -201,8 +173,6 @@ _طرف راست: هر تلاشی برای تغییر هر بخشی از درخ فیلدهای `STARTGAS` و `GASPRICE` برای مدل ضد انکار خدمات اتریوم بسیار مهم هستند. به منظور جلوگیری از حلقه‌های نامحدود تصادفی یا متخاصم یا سایر اتلاف‌های محاسباتی در کد، هر تراکنش باید محدودیتی برای تعداد مراحل محاسباتی اجرای کد تعیین کند. واحد اساسی محاسبات "گس" است. معمولاً، یک مرحله محاسباتی 1 گس هزینه دارد، اما برخی از عملیات ها به دلیل اینکه از نظر محاسباتی گران‌تر هستند یا مقدار داده هایی را که باید به عنوان بخشی از حالت ذخیره شوند افزایش می دهند، مقدار گس بیشتری را هزینه می کنند. همچنین برای هر بایت در داده های تراکنش 5 گس کارمزد دریافت می شود. هدف سیستم کارمزد این است که از مهاجم بخواهد به ازای هر منبعی که مصرف می‌کند، از جمله محاسبات، پهنای باند و ذخیره‌سازی، به نسبت هزینه پرداخت کند. از این رو، هر تراکنشی که منجر به مصرف شبکه مقدار بیشتری از هر یک از این منابع شود، باید هزینه گس تقریباً متناسب با افزایش داشته باشد. - - ### پیام‌ها {#messages} قراردادها قابلیت ارسال «پیام» به سایر قراردادها را دارند. پیام ها اشیای مجازی هستند که هرگز سریالی نمی شوند و فقط در محیط اجرای اتریوم وجود دارند. یک پیام شامل موارد زیر است: @@ -217,8 +187,6 @@ _طرف راست: هر تلاشی برای تغییر هر بخشی از درخ توجه داشته باشید که کمک هزینه گس تعیین شده توسط یک معامله یا قرارداد برای کل گس مصرف شده توسط آن معامله و کلیه اجراهای فرعی اعمال می شود. به عنوان مثال، اگر یک بازیگر خارجی A یک تراکنش را با 1000 گس به B ارسال کند، و B قبل از ارسال پیام به C، مقدار 600 گس مصرف کند، و اجرای داخلی C قبل از بازگشت، 300 گس مصرف کند، B می تواند قبل از تمام شدن گس 100 گس دیگر خرج کند. - - ### تابع انتقال حالت اتریوم {#ethereum-state-transition-function} ![انتقال حالت اتر](./ether-state-transition.png) @@ -234,14 +202,11 @@ _طرف راست: هر تلاشی برای تغییر هر بخشی از درخ به عنوان مثال، فرض کنید که کد قرارداد این است: - - ```py if !self.storage[calldataload(0)]: self.storage[calldataload(0)] = calldataload(32) ``` - توجه داشته باشید که در واقع کد قرارداد در کد EVM سطح پایین نوشته شده است. این مثال برای وضوح در Serpent، یکی از زبان های سطح بالای ما، نوشته شده است و می توان آن را به کد EVM کامپایل کرد. فرض کنید ذخیره‌سازی قرارداد خالی شروع می‌شود و تراکنشی با 10 مقدار اتر، 2000 گس، 0.001 اتر قیمت گس و 64 بایت داده ارسال می‌شود، با بایت‌های 0-31 نشان دهنده عدد `2` و بایت است. 32-63 نشان دهنده رشته `CHARLIE` است. فرآیند تابع انتقال حالت در این مورد به شرح زیر است: 1. بررسی کنید که تراکنش معتبر و به خوبی شکل گرفته است. @@ -255,11 +220,9 @@ if !self.storage[calldataload(0)]: توجه داشته باشید که پیام‌ها از نظر بازگردانی‌ها مانند تراکنش‌ها کار می‌کنند: اگر گس اجرای پیام تمام شود، اجرای آن پیام و همه اجرای‌های دیگر که توسط آن اجرا آغاز می‌شوند، برمی‌گردند، اما اجرای والد نیازی به برگرداندن ندارد. این بدان معناست که برای قراردادی "ایمن" است که قرارداد دیگری را فراخوانی کند، زیرا اگر A با گس G برود B را صدا کند، اجرای A تضمین شده است که حداکثر گس G را از دست می دهد. در نهایت، توجه داشته باشید که یک opcode وجود دارد، `CREATE`، که یک قرارداد ایجاد می کند. مکانیک اجرای آن به طور کلی شبیه `CALL` است، با این استثنا که خروجی اجرا کد یک قرارداد جدیدآً ایجاد شده را تعیین می کند. - - ### اجرای کد {#code-execution} -کد در قراردادهای اتریوم به زبان بایت کد مبتنی بر پشته، سطح پایین نوشته می شود که به آن «کد ماشین مجازی اتریوم» یا «کد EVM» گفته می شود. کد شامل یک سری بایت است که هر بایت نشان دهنده یک عملیات است. به طور کلی، اجرای کد یک حلقه بی نهایت است که شامل انجام مکرر عملیات در شمارنده برنامه فعلی (که از صفر شروع می شود) و سپس افزایش شمارنده برنامه به یک اندازه، تا رسیدن به انتهای کد یا یک خطا یا < دستورالعمل 0>STOP یا `RETURN` شناسایی شد. عملیات به سه نوع فضای ذخیره‌سازی داده‌ها دسترسی دارند: +کد در قراردادهای اتریوم به زبان بایت کد مبتنی بر پشته، سطح پایین نوشته می شود که به آن «کد ماشین مجازی اتریوم» یا «کد EVM» گفته می شود. کد شامل یک سری بایت است که هر بایت نشان دهنده یک عملیات است. به طور کلی، اجرای کد یک حلقه بی نهایت است که شامل انجام مکرر عملیات در شمارنده برنامه فعلی (که از صفر شروع می شود) و سپس افزایش شمارنده برنامه به یک اندازه، تا رسیدن به انتهای کد یا یک خطا یا `STOP` یا `RETURN` شناسایی شد. عملیات به سه نوع فضای ذخیره‌سازی داده‌ها دسترسی دارند: - این **پشته**، محفظه‌ای که می‌توان آن‌ها را به بیرون فرستاد و مقادیر را به آن منتقل کرد - **Memory**، یک آرایه بایت بی نهایت قابل گسترش است @@ -267,9 +230,7 @@ if !self.storage[calldataload(0)]: این کد همچنین می‌تواند به مقدار، فرستنده و داده‌های پیام دریافتی و همچنین داده‌های هدر بلوک دسترسی داشته باشد و کد همچنین می‌تواند یک آرایه بایتی از داده‌ها را به عنوان خروجی برگرداند. -مدل اجرای رسمی کد EVM به طرز شگفت آوری ساده است. در حالی که ماشین مجازی اتریوم در حال اجرا است، حالت محاسباتی کامل آن را می‌توان با چند `(block_state، تراکنش، پیام، کد، حافظه، پشته، کامپیوتر، گس)` تعریف کرد، جایی که `block_state حالت جهانی است که شامل تمام حساب ها و شامل موجودی ها و ذخیره‌سازی است. در شروع هر دور اجرا، دستورالعمل فعلی با گرفتن pc`امین بایت `کد` (یا 0 اگر `pc >= len(code)`)، و هر دستورالعمل از نظر نحوه تأثیرگذاری بر تاپل، تعریف خاص خود را دارد. برای مثال، `ADD` دو مورد را از پشته بیرون می‌آورد و مجموع آنها را فشار می‌دهد، `گس` را به 1 کاهش می‌دهد و `pc` را به 1 افزایش می‌دهد و ` SSTORE` دو مورد بالا را از پشته بیرون می‌آورد و مورد دوم را در فهرستی که مورد اول مشخص کرده است در محل ذخیره قرارداد قرار می‌دهد. اگرچه راه‌های زیادی برای بهینه‌سازی اجرای ماشین مجازی اتریوم از طریق کامپایل‌سازی به‌موقع وجود دارد، پیاده‌سازی اولیه اتریوم را می‌توان در چند صد خط کد انجام داد. - - +مدل اجرای رسمی کد EVM به طرز شگفت آوری ساده است. در حالی که ماشین مجازی اتریوم در حال اجرا است، حالت محاسباتی کامل آن را می‌توان با چند `(block_state، تراکنش، پیام، کد، حافظه، پشته، کامپیوتر، گس)` تعریف کرد، جایی که `block_state` حالت جهانی است که شامل تمام حساب ها و شامل موجودی ها و ذخیره‌سازی است. در شروع هر دور اجرا، دستورالعمل فعلی با گرفتن `pc`امین بایت `کد` (یا 0 اگر `pc >= len(code)`)، و هر دستورالعمل از نظر نحوه تأثیرگذاری بر تاپل، تعریف خاص خود را دارد. برای مثال، `ADD` دو مورد را از پشته بیرون می‌آورد و مجموع آنها را فشار می‌دهد، `گس` را به 1 کاهش می‌دهد و `pc` را به 1 افزایش می‌دهد و ` SSTORE` دو مورد بالا را از پشته بیرون می‌آورد و مورد دوم را در فهرستی که مورد اول مشخص کرده است در محل ذخیره قرارداد قرار می‌دهد. اگرچه راه‌های زیادی برای بهینه‌سازی اجرای ماشین مجازی اتریوم از طریق کامپایل‌سازی به‌موقع وجود دارد، پیاده‌سازی اولیه اتریوم را می‌توان در چند صد خط کد انجام داد. ### بلاک‌چین و ماینینگ {#blockchain-and-mining} @@ -290,22 +251,16 @@ if !self.storage[calldataload(0)]: یک سوال متداول این است که کد قرارداد از نظر سخت افزار فیزیکی "کجا" اجرا می شود. جواب هم ساده است: فرآیند اجرای کد قرارداد بخشی از تعریف تابع انتقال حالت است که بخشی از الگوریتم اعتبارسنج بلوک است، بنابراین اگر تراکنش به بلوک `B` اضافه شود، کد اجرای ایجاد شده توسط آن تراکنش توسط همه گره‌ها، در حال حاضر و در آینده، که بلوک `B` دانلود و اعتبارسنج می‌کنند، اجرا خواهد شد. - - ## برنامه‌های کاربردی {#applications} به طور کلی، سه نوع برنامه سوار بر اتریوم هستند: دسته اول برنامه های مالی هستند که روش های قدرتمندتری را برای مدیریت و عقد قراردادها با استفاده از پول در اختیار کاربران قرار می دهند. این شامل ارزهای فرعی، مشتقات مالی، قراردادهای پوشش ریسک، کیف پول های پس انداز، وصیت نامه و در نهایت حتی برخی از کلاس های قراردادهای کار در مقیاس کامل است. دسته دوم برنامه های نیمه مالی است که در آن پول درگیر است، اما جنبه غیر پولی سنگینی نیز برای کاری که انجام می شود وجود دارد. یک مثال عالی، پاداش های خود-اجباری برای راه حل های مسائل محاسباتی است. در نهایت، برنامه هایی مانند رای گیری آنلاین و حاکمیت غیرمتمرکز وجود دارند که اصلاً مالی نیستند. - - ### سیستم‌های توکن {#token-systems} سیستم‌های توکن درون بلاک‌چین کاربردهای زیادی دارند، از ارزهای فرعی که دارایی‌هایی مانند دلار یا طلا را نشان می‌دهند تا سهام شرکت، توکن‌های فردی که نشان دهنده دارایی هوشمند، کوپن‌های غیرقابل جعل امن و حتی سیستم‌های رمزی بدون هیچ ارتباطی با ارزش متعارف، به عنوان سیستم‌های نقطه‌ای برای ایجاد انگیزه استفاده می‌شوند. پیاده سازی سیستم های توکن در اتریوم به طرز شگفت انگیزی آسان است. نکته کلیدی برای درک این است که تمام یک ارز یا سیستم توکن، اساساً یک پایگاه داده با یک عملیات است: X واحدها را از A کم کنید و واحدهای X را به B بدهید، با این شرط که (i) A حداقل X واحد داشته باشد. قبل از تراکنش و (2) تراکنش توسط A تأیید شود. تمام آنچه برای پیاده سازی یک سیستم توکن نیاز است، پیاده سازی این منطق در یک قرارداد است. کد اصلی برای پیاده سازی یک سیستم توکن در Serpent به صورت زیر است: - - ```py def send(to, value): if self.storage[msg.sender] >= value: @@ -313,11 +268,8 @@ def send(to, value): self.storage[to] = self.storage[to] + value ``` - این اساساً اجرای تحت اللفظی تابع انتقال حالت "سیستم بانکی" است که در بالا در این سند شرح داده شد. چند خط کد اضافی باید اضافه شود تا مرحله اولیه توزیع واحدهای ارزی در وهله اول و چند مورد لبه دیگر فراهم شود، و در حالت ایده‌آل تابعی اضافه می‌شود که به قراردادهای دیگر اجازه می‌دهد تا تعادل یک آدرس را جستجو کنند. اما این تمام چیزی است که وجود دارد. از نظر تئوری، سیستم‌های توکن مبتنی بر اتریوم که به‌عنوان ارزهای فرعی عمل می‌کنند، می‌توانند به طور بالقوه ویژگی مهم دیگری را داشته باشند که متا ارزهای مبتنی بر بیتکوین روی زنجیره فاقد آن هستند: توانایی پرداخت مستقیم هزینه‌های تراکنش در آن ارز. روش اجرای این امر به این صورت است که قرارداد دارای تعادل اتری است که با آن اتری که برای پرداخت هزینه‌ها به فرستنده استفاده می‌شود بازپرداخت می‌کند، و این موجودی را با جمع‌آوری واحدهای ارز داخلی که کارمزد دریافت می‌کند و فروش مجدد آن‌ها در یک حراج دائمی دوباره پر می‌کند. بنابراین کاربران باید حساب های خود را با اتر "فعال کنند"، اما زمانی که اتر وجود دارد، قابل استفاده مجدد خواهد بود زیرا قرارداد هر بار آن را بازپرداخت می کند. - - ### مشتقات مالی و ارزهای با ارزش ثابت {#financial-derivatives-and-stable-value-currencies} مشتقات مالی رایج ترین کاربرد "قرارداد هوشمند" و یکی از ساده‌ترین آنها برای پیاده‌سازی در کد هستند. چالش اصلی در اجرای قراردادهای مالی این است که اکثر آنها نیاز به ارجاع به شاخص قیمت خارجی دارند. به عنوان مثال، یک برنامه بسیار مطلوب، یک قرارداد هوشمند است که در برابر نوسانات اتر (یا یک رمزارز دیگر) با توجه به دلار آمریکا محافظت می کند، اما انجام این کار مستلزم آن است که قرارداد بداند ارزش ETH/USD چقدر است. ساده ترین راه برای انجام این کار، از طریق قرارداد «فید داده» است که توسط یک طرف خاص (مثلاً NASDAQ) نگهداری می شود که به گونه ای طراحی شده است که آن طرف توانایی به‌روزرسانی قرارداد را در صورت نیاز داشته باشد، و ارائه رابطی که به سایر قراردادها اجازه می دهد تا یک پیام ارسال کنند. به آن قرارداد پیام دهید و پاسخی دریافت کنید که قیمت را ارائه می دهد. @@ -333,25 +285,18 @@ def send(to, value): با این حال، در عمل، ناشران همیشه قابل اعتماد نیستند و در برخی موارد زیرساخت بانکی برای وجود چنین خدماتی بسیار ضعیف یا بسیار خصمانه است. مشتقات مالی یک جایگزین را ارائه می دهند. در اینجا، به جای اینکه یک صادرکننده واحد پولی را برای پشتیبان‌گیری از یک دارایی فراهم کند، یک بازار غیرمتمرکز از سفته‌بازان که شرط می‌بندند قیمت یک دارایی مرجع رمزنگاری (مثلا اتر) بالا خواهد رفت، این نقش را ایفا می‌کند. بر خلاف صادرکننده، سفته بازان هیچ گزینه ای برای نکول در معامله خود ندارند زیرا قرارداد پوشش ریسک وجوه آنها را در امان نگه می دارد. توجه داشته باشید که این رویکرد کاملاً غیرمتمرکز نیست، زیرا هنوز یک منبع قابل اعتماد برای ارائه شاخص قیمت مورد نیاز است، اگرچه احتمالاً حتی هنوز هم این یک پیشرفت بزرگ از نظر کاهش الزامات زیرساختی است (برخلاف صادرکننده بودن، صدور خوراک قیمت نیازی به مجوز ندارد. و احتمالاً می تواند به عنوان آزادی بیان طبقه بندی شود) و پتانسیل تقلب را کاهش می دهد. - - ### سیستم های هویت و شهرت {#identity-and-reputation-systems} اولین رمزارز جایگزین، [Namecoin](http://namecoin.org/)، تلاش کرد از یک بلاکچین مانند بیتکوین برای ارائه یک سیستم ثبت نام استفاده کند، جایی که کاربران می توانند نام خود را در یک پایگاه داده عمومی در کنار سایر داده ها ثبت کنند. مورد استفاده عمده ذکر شده متعلق به یک سیستم [DNS](https://wikipedia.org/wiki/Domain_Name_System) است که نام های دامنه مانند "bitcoin.org" (یا در مورد Namecoin، "bitcoin.bit") را به یک آدرس IP نگاشت می کند. موارد استفاده دیگر عبارتند از احراز هویت ایمیل و سیستم های شهرت بالقوه پیشرفته‌تر. در اینجا قرارداد اصلی برای ارائه یک سیستم ثبت نام مشابه Namecoin در اتریوم است: - - ```py def register(name, value): if !self.storage[name]: self.storage[name] = value ``` - قرارداد بسیار ساده است. همه اینها یک پایگاه داده در داخل شبکه اتریوم است که می توان به آن اضافه کرد، اما نمی توان آن را تغییر داد یا حذف کرد. هر کسی می تواند نامی با مقداری را ثبت کند و آن ثبت نام برای همیشه باقی می ماند. یک قرارداد پیچیده‌تر ثبت نام همچنین دارای یک «بند عملکرد» است که به سایر قراردادها امکان می‌دهد آن را پرس و جو کنند، و همچنین مکانیزمی برای «مالک» (یعنی اولین ثبت‌کننده) نام برای تغییر داده یا انتقال مالکیت. حتی می توان شهرت و قابلیت های شبکه ای از اعتماد را در بالای آن اضافه کرد. - - ### ذخیره سازی غیرمتمرکز فایل {#decentralized-file-storage} در چند سال گذشته، تعدادی راه‌انداز ذخیره‌سازی فایل آنلاین، معروف‌ترین آن‌ها Dropbox به وجود آمده‌اند که به دنبال اجازه دادن به کاربران برای آپلود یک نسخه پشتیبان از هارد دیسک خود و اینکه سرویس پشتیبان را ذخیره کند و به کاربر اجازه دهد در ازای پرداخت هزینه ماهانه به آن دسترسی داشته باشد هستند. با این حال، در این مرحله، بازار ذخیره‌سازی فایل در زمان‌هایی نسبتاً ناکارآمد است. نگاهی گذرا به راه‌حل‌های مختلف موجود نشان می‌دهد که، به‌ویژه در سطح 20-200 گیگابایتی «دره غیرعادی» که نه سهمیه‌های رایگان و نه تخفیف‌های سطح سازمانی آغاز می‌شود، قیمت های ماهانه هزینه های ذخیره سازی فایل اصلی به گونه ای است که شما بیش از هزینه کل هارد دیسک در یک ماه پرداخت می کنید. قراردادهای اتریوم می‌توانند به توسعه یک اکوسیستم ذخیره‌سازی فایل غیرمتمرکز اجازه دهند، که در آن کاربران فردی می‌توانند با اجاره هارد دیسک‌های خود مقادیر کمی پول به دست آورند و از فضای بلااستفاده برای کاهش بیشتر هزینه‌های ذخیره‌سازی فایل استفاده شود. @@ -360,8 +305,6 @@ def register(name, value): یکی از ویژگی های مهم پروتکل این است که، اگرچه ممکن است به نظر برسد که یک نفر به بسیاری از گره های تصادفی اعتماد دارد تا تصمیم به فراموش کردن فایل نداشته باشد، و یک نفر می‌تواند با تقسیم کردن فایل به قطعات متعدد از طریق اشتراک‌گذاری مخفی، این ریسک را به نزدیک به صفر کاهش دهد و تماشای قراردادها برای دیدن هر قطعه هنوز در اختیار برخی از گره‌ها است. اگر یک قرارداد همچنان پولی را پرداخت می‌کند، این یک مدرک رمزنگاری شده است که نشان می‌دهد یک نفر هنوز در آنجا دارد فایل را ذخیره می‌کند. - - ### سازمان خودمختار غیرمتمرکز {#decentralized-autonomous-organizations} مفهوم کلی "سازمان خودمختار غیرمتمرکز" عبارت است از یک نهاد مجازی که دارای مجموعه معینی از اعضا یا سهامداران است که شاید با اکثریت 67 درصدی، حق دارند وجوه آن واحد را خرج کرده و کد آن را اصلاح کنند. اعضا به طور جمعی در مورد نحوه تخصیص بودجه توسط سازمان تصمیم می گیرند. روش‌های تخصیص وجوه یک DAO می‌تواند از جوایز، حقوق گرفته تا مکانیسم‌های عجیب‌تری مانند ارز داخلی برای پاداش دادن به کار متغیر باشد. این اساساً موارد قانونی یک شرکت سنتی یا غیرانتفاعی را تکرار می کند، اما تنها از فناوری بلاکچین رمزنگاری شده برای اجرا استفاده می کند. تاکنون بسیاری از صحبت‌ها در مورد DAOها حول مدل «سرمایه‌داری» یک «شرکت مستقل غیرمتمرکز» (DAC) با سهامداران دریافت‌کننده سود سهام و سهام قابل معامله بوده است. یک جایگزین، که شاید به عنوان «جامعه خودمختار غیرمتمرکز» توصیف شود، این است که همه اعضا سهم برابری در تصمیم‌گیری دارند و 67 درصد از اعضای موجود باید با اضافه کردن یا حذف یک عضو موافقت کنند. این شرط که یک نفر فقط می تواند یک عضویت داشته باشد باید به طور جمعی توسط گروه اجرا شود. @@ -376,8 +319,6 @@ def register(name, value): یک مدل جایگزین برای یک شرکت غیرمتمرکز است، که در آن هر حسابی می‌تواند دارای سهام صفر یا بیشتر باشد و دو سوم سهام برای تصمیم‌گیری لازم است. یک اسکلت کامل شامل عملکرد مدیریت دارایی، توانایی ارائه پیشنهاد برای خرید یا فروش سهام، و توانایی پذیرش پیشنهادها (ترجیحا با مکانیزم تطبیق سفارش در داخل قرارداد) است. تفویض اختیار نیز به سبک دموکراسی مایع وجود خواهد داشت که مفهوم "هیئت مدیره" را تعمیم می دهد. - - ### برنامه‌های کاربردهای بیشتر {#further-applications} **1. کیف‌های پول پس‌انداز**. فرض کنید که آلیس (Alice) می‌خواهد سرمایه خود را ایمن نگه دارد، اما نگران است که از دست بدهد یا کسی کلید خصوصی او را هک کند. او اتر را در یک قرارداد با باب، یک بانک، به شرح زیر قرار می دهد: @@ -402,12 +343,8 @@ def register(name, value): **8. بازارهای غیرمتمرکز زنجیره‌ای**، با استفاده از سیستم هویت و شهرت به عنوان پایگاه. - - ## مسائل متفرقه و نگرانی‌ها {#miscellanea-and-concerns} - - ### پروتکل اصلاح شده ی GHOST {#modified-ghost-implementation} پروتکل "طماع‌ترین زیردرخت مشاهده شده" (GHOST) یک نوآوری است که برای اولین بار توسط Yonatan Sompolinsky و Aviv Zohar در [دسامبر 2013](https://eprint.iacr.org/2013/881.pdf) معرفی شد. انگیزه پشت GHOST این است که بلاک چین‌هایی با زمان تایید سریع در حال حاضر به دلیل نرخ قدیمی بالا از امنیت کمتری رنج می‌برند - زیرا بلوک‌ها زمان مشخصی را برای انتشار در شبکه می‌طلبند، اگر ماینر A یک بلوک را استخراج کند و سپس ماینر B بلوک دیگری را استخراج کند. قبل از انتشار بلوک ماینر A به B، بلوک ماینر B به هدر می رود و به امنیت شبکه کمک نمی کند. علاوه بر این، یک مشکل متمرکز وجود دارد: اگر ماینر A یک استخر استخراج با 30٪ قدرت هش و B دارای 10٪ قدرت هش باشد، A در 70٪ مواقع (از 30٪ بقیه مواقع) خطر تولید یک بلوک قدیمی را خواهد داشت. A آخرین بلوک را تولید می کند و بنابراین بلافاصله داده های استخراج را دریافت می کند) در حالی که B در 90٪ مواقع خطر تولید یک بلوک قدیمی را دارد. بنابراین، اگر فاصله بلوک به اندازه‌ای کوتاه باشد که نرخ بیات بالا باشد، A به‌دلیل اندازه‌اش به طور قابل‌توجهی کارآمدتر خواهد بود. با ترکیب این دو اثر، بلاکچین‌هایی که بلوک‌ها را به سرعت تولید می‌کنند، به احتمال زیاد منجر به یک استخر ماینینگ می‌شوند که درصد زیادی از قدرت هش شبکه را داشته باشد تا بتواند بالفعل بر فرآیند استخراج کنترل داشته باشد. @@ -417,8 +354,8 @@ def register(name, value): اتریوم نسخه ساده شده GHOST را پیاده سازی می کند که تنها در هفت سطح پایین می آید. به طور مشخص به صورت زیر تعریف می شود: - یک بلوک باید یک والد را مشخص کند و باید 0 یا چند عمو را مشخص کند -- عموی موجود در بلوک B باید دارای ویژگی های زیر باشد: - - این باید یک فرزند مستقیم از اجداد نسل k ام B باشد که در آن `2 <= k <= 7`. +- عموی موجود در بلوک B باید دارای ویژگی های زیر باشد: + - این باید یک فرزند مستقیم از اجداد نسل k ام B باشد که در آن `2 <= k <= 7`. - نمی تواند جد B باشد - عمو باید یک هدر بلوک معتبر باشد، اما نیازی نیست که قبلاً یک بلوک تأیید شده یا حتی معتبر باشد - یک عمو باید با همه عموهای موجود در بلوک های قبلی و سایر عموهای موجود در همان بلوک متفاوت باشد (غیر شامل دوگانه) @@ -426,8 +363,6 @@ def register(name, value): این نسخه محدود GHOST، با عموهایی که فقط تا 7 نسل را شامل می شود، به دو دلیل استفاده شد. اولاً، GHOST نامحدود شامل پیچیدگی های بسیار زیادی در محاسبه است که عموهای یک بلوک معین معتبر هستند. دوم، GHOST نامحدود با جبرانی که در اتریوم استفاده می‌شود، انگیزه استخراج‌کننده را برای استخراج از زنجیره اصلی و نه زنجیره مهاجم عمومی را از بین می‌برد. - - ### کارمزدها {#fees} از آنجایی که هر تراکنش منتشر شده در بلاک‌چین، هزینه دانلود و تأیید آن را بر شبکه تحمیل می‌کند، برای جلوگیری از سوء استفاده، نیاز به مکانیزمی نظارتی وجود دارد که معمولاً شامل کارمزد تراکنش است. رویکرد پیش‌فرض، که در بیت‌کوین استفاده می‌شود، داشتن هزینه‌های کاملاً داوطلبانه است، با تکیه بر ماینرها که به عنوان دروازه‌بان عمل می‌کنند و حداقل‌های پویا را تعیین می‌کنند. این رویکرد در جامعه بیت‌کوین با استقبال بسیار خوبی مواجه شده است، به‌ویژه به این دلیل که «مبتنی بر بازار» است و به عرضه و تقاضای بین ماینرها و فرستندگان تراکنش اجازه می‌دهد تا قیمت را تعیین کنند. با این حال، مشکل این خط استدلال این است که پردازش معاملات یک بازار نیست. اگرچه به طور شهودی درک پردازش تراکنش به عنوان خدماتی که ماینر به فرستنده ارائه می‌دهد جذاب است، در واقع هر تراکنشی که توسط ماینر شامل می‌شود باید توسط هر گره یا نود در شبکه پردازش شود، بنابراین اکثریت قریب به اتفاق هزینه تراکنش پردازش به عهده اشخاص ثالث است و نه ماینری که تصمیم می گیرد که آن را شامل شود یا نه. از این رو، مشکلات تراژدی رایج بسیار محتمل است. @@ -450,20 +385,15 @@ def register(name, value): (1) تمایلی را برای ماینر فراهم می کند که تراکنش های کمتری را شامل شود، و (2) `NC` را افزایش می دهد. بنابراین، این دو اثر حداقل تا حدی یکدیگر را خنثی می کنند.[چگونه؟] https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) و (4) موضوع اصلی هستند. برای حل آنها به سادگی یک سرمایه شناور ایجاد می کنیم: هیچ بلوکی نمی تواند بیش از `BLK_LIMIT_FACTOR` برابر میانگین متحرک نمایی بلندمدت عملیات داشته باشد. به خصوص: - - ```js blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) ``` - `BLK_LIMIT_FACTOR` و `EMA_FACTOR` ثابت‌هایی هستند که فعلاً روی 65536 و 1.5 تنظیم می‌شوند، اما احتمالاً پس از تجزیه و تحلیل بیشتر تغییر خواهند کرد. عامل دیگری نیز وجود دارد که اندازه بلوک‌های بزرگ را در بیتکوین از بین می‌برد: بلوک‌هایی که بزرگ هستند زمان بیشتری طول می‌کشد تا انتشار پیدا کنند و در نتیجه احتمال بیات شدن آنها بیشتر است. در اتریوم، انتشار بلوک‌های بسیار مصرف‌کننده گس هم به دلیل بزرگ‌تر بودن و هم به دلیل اینکه پردازش انتقال‌های حالت تراکنش برای تأیید اعتبار بیشتر طول می‌کشد، ممکن است بیشتر طول بکشد. این بازدارنده تاخیر در بیتکوین مورد توجه قرار می گیرد، اما در اتریوم به دلیل پروتکل GHOST کمتر مورد توجه قرار می گیرد. از این رو، تکیه بر محدودیت های بلوک تنظیم شده، پایه پایدارتری را فراهم می کند. - - ### محاسبات و تورینگ کامل بودن {#computation-and-turing-completeness} یک نکته مهم این است که ماشین مجازی اتریوم تورینگ کامل است. این بدان معنی است که کد EVM می تواند هر محاسباتی را که می توان انجام داد، از جمله حلقه های بی نهایت، رمزگذاری کند. کد EVM به دو صورت امکان حلقه زدن را می دهد. اول، یک دستورالعمل `JUMP` وجود دارد که به برنامه اجازه می دهد به نقطه قبلی در کد بازگردد، و یک دستور `JUMPI` برای انجام پرش شرطی، اجازه می دهد تا عباراتی مانند `در حالی که x < 27: x = x * 2` است. دوم، قراردادها می‌توانند قراردادهای دیگری را فراخوانی کنند، که امکان چرخش از طریق بازگشت را فراهم می‌کند. این مورد به طور طبیعی منجر به یک مشکل می‌شود: آیا کاربران مخرب اساساً می‌توانند ماینرها و گره یا نودهای کامل را با مجبور کردن آنها برای ورود به یک لوپ (loop) بی‌نهایت ببندند؟ این موضوع به دلیل مشکلی در علم کامپیوتر به نام مشکل توقف به وجود می‌آید: در حالت کلی، هیچ راهی برای تشخیص اینکه آیا یک برنامه مشخص هرگز متوقف می‌شود یا خیر وجود ندارد. @@ -477,8 +407,6 @@ floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) تورینگ کامل نبودن جایگزین تورینگ کامل بودن است، که در آن `JUMP` و `JUMPI` وجود ندارند و فقط یک نسخه از هر قرارداد مجاز است در هر زمان معین در پشته تماس وجود داشته باشد. با این سیستم، سیستم کارمزد توصیف شده و عدم اطمینان در مورد اثربخشی راه حل ما ممکن است ضروری نباشد، زیرا هزینه اجرای یک قرارداد به اندازه آن محدود می شود. علاوه بر این، ناقص بودن تورینگ حتی یک محدودیت بزرگ هم نیست. از بین تمام نمونه‌های قراردادی که به صورت داخلی تصور کرده‌ایم، تا کنون تنها یک مورد نیاز به یک حلقه داشت، و حتی آن حلقه را می توان با ایجاد 26 تکرار از یک قطعه کد یک خطی حذف کرد. با توجه به پیامدهای جدی تورینگ کامل بودن و مزایای محدود، چرا به سادگی یک زبان تورینگ ناکامل نداشته باشیم؟ با این حال، در واقعیت، تورینگ ناکامل به دور از یک راه حل ساده برای مشکل است. برای اینکه بفهمید چرا، قراردادهای زیر را در نظر بگیرید: - - ```sh C0: call(C1); call(C1); C1: call(C2); call(C2); @@ -488,11 +416,8 @@ C49: call(C50); call(C50); C50: (run one step of a program and record the change in storage) ``` - اکنون یک تراکنش به A ارسال کنید. بنابراین، در 51 تراکنش، قراردادی داریم که 250 مرحله محاسباتی را طی می کند. ماینرها می‌توانند با حفظ مقداری در کنار هر قرارداد که حداکثر تعداد مراحل محاسباتی را که می‌تواند انجام دهد، این بمب‌های منطقی را پیش از موعد شناسایی کنند، و محاسبه این برای قراردادهایی که قراردادهای دیگر را به صورت بازگشتی فراخوانی می‌کنند، اما این امر مستلزم آن است که ماینرها قراردادهایی را که قراردادهای دیگری ایجاد می‌کنند ممنوع کنند (از آنجایی که ایجاد و اجرای تمام 26 قرارداد فوق به راحتی می تواند در یک قرارداد واحد تبدیل شود). نکته مشکل‌ساز دیگر این است که فیلد آدرس یک پیام یک متغیر است، بنابراین به طور کلی ممکن است حتی نتوان گفت که یک قرارداد معین با کدام قراردادهای دیگر پیش از موعد تماس خواهد گرفت. بنابراین، در مجموع، ما یک نتیجه شگفت‌انگیز داریم: مدیریت کامل بودن تورینگ به‌طور شگفت‌انگیزی آسان است، و مدیریت عدم وجود تورینگ کامل بودن به همان اندازه دشوار است، مگر اینکه دقیقاً همان کنترل‌ها وجود داشته باشد - اما در این مورد چرا نه فقط اجازه دهید پروتکل تورینگ کامل باشد? - - ### ارز و صدور {#currency-and-issuance} شبکه اتریوم شامل ارز داخلی خود به نام اتر است که هدف دوگانه ارائه یک لایه نقدینگی اولیه را برای تبادل کارآمد بین انواع مختلف دارایی‌های دیجیتال و مهمتر از آن، ارائه مکانیزمی برای پرداخت هزینه تراکنش‌ها دارد. برای سهولت و اجتناب از استدلال های آینده (به بحث فعلی mBTC/uBTC/satoshi در بیتکوین مراجعه کنید)، مقادیر ارزش از قبل نامگذاری گذاری خواهند شد: @@ -519,9 +444,6 @@ C50: (run one step of a program and record the change in storage) | رزرو صرف شده پس از فروش | 8.26% | 6.79% | 3.96% | | ماینرها | 0% | 17.8% | 52.0% | - - - #### نرخ رشد عرضه بلندمدت (درصد) ![تورم اتریوم](./ethereum-inflation.png) @@ -534,8 +456,6 @@ _با وجود انتشار ارز خطی، درست مانند بیتکوین توجه داشته باشید که در آینده، این احتمال وجود دارد که اتریوم برای امنیت به مدل اثبات سهام روی بیاورد و نیاز صدور را بین صفر تا 0.05 برابر در سال کاهش دهد. در صورتی که سازمان اتریوم بودجه خود را از دست بدهد یا به هر دلیل دیگری ناپدید شود، یک "قرارداد اجتماعی" را باز می گذاریم: هر کسی حق دارد یک نسخه کاندید آینده اتریوم ایجاد کند، تنها شرط این است که مقدار اتر باید حداکثر برابر با `60102216 * (1.198 + 0.26 * n)` باشد که در آن `n` تعداد سال‌های پس از بلوک پیدایش است. سازندگان مختارند که به صورت انبوه بفروشند یا برخی یا تمام تفاوت بین گسترش عرضه مبتنی بر PoS و حداکثر گسترش عرضه مجاز را برای پرداخت هزینه توسعه اختصاص دهند. نامزدهای ارتقا که با قرارداد اجتماعی مطابقت ندارند، ممکن است به طور موجه در نسخه های سازگار تقسیم شوند. - - ### تمرکزگرایی ماینینگ {#mining-centralization} الگوریتم استخراج بیتکوین به این صورت کار می کند که ماینرها SHA256 را بر روی نسخه های کمی تغییر یافته هدر بلوک میلیون ها بار و بارها محاسبه کنند تا اینکه در نهایت یک گره نسخه ای را ارائه می دهد که هش آن کمتر از هدف است (در حال حاضر حدود 2192 ). با این حال، این الگوریتم استخراج در برابر دو شکل از تمرکزگرایی آسیب پذیر است. اول، اکوسیستم ماینینگ تحت تسلط ASIC ها (مدارهای مجتمع ویژه برنامه)، تراشه های کامپیوتری طراحی شده و در نتیجه هزاران بار کارآمدتر در وظایف خاص استخراج بیتکوین قرار گرفته است. این به این معنی است که استخراج بیتکوین دیگر یک پیگیری بسیار غیرمتمرکز و برابری طلبانه نیست و برای مشارکت موثر در آن به میلیون ها دلار سرمایه نیاز دارد. دوم، اکثر ماینرهای بیتکوین در واقع اعتبارسنج بلوک را به صورت محلی انجام نمی دهند. در عوض، آنها به یک استخر استخراج متمرکز برای ارائه هدرهای بلوک متکی هستند. این مشکل مسلماً بدتر است: تا زمان نگارش این مقاله، سه استخر استخراج برتر به طور غیرمستقیم تقریباً 50 درصد از قدرت پردازش در شبکه بیتکوین را کنترل می‌کنند، اگر چه اگر یک استخر یا ائتلاف حمله ای 51 درصدی انجام دهد، این امر با این واقعیت کاهش می یابد که ماینرها می توانند به استخرهای استخراج دیگر روی آورند. @@ -544,8 +464,6 @@ _با وجود انتشار ارز خطی، درست مانند بیتکوین این مدل آزمایش نشده است و ممکن است هنگام استفاده از اجرای قرارداد به عنوان یک الگوریتم استخراج، مشکلاتی در اجتناب از بهینه‌سازی های هوشمندانه وجود داشته باشد. با این حال، یکی از ویژگی‌های جالب توجه این الگوریتم این است که به هر کسی اجازه می‌دهد «در چاه آب سم بریزد»، با وارد کردن تعداد زیادی قرارداد به بلاکچینی که به‌طور خاص برای جلوگیری از ASIC‌های خاص طراحی شده‌اند. انگیزه های اقتصادی برای سازندگان ASIC وجود دارد تا از چنین ترفندی برای حمله به یکدیگر استفاده کنند. بنابراین، راه حلی که ما در حال توسعه آن هستیم، در نهایت یک راه حل اقتصادی سازگار انسانی است تا صرفاً فنی. - - ### قابل مقیاس {#scalability} یکی از نگرانی‌های رایج در مورد اتریوم مسئله مقیاس‌پذیری است. مانند بیت‌کوین، اتریوم نیز از این نقص رنج می‌برد که هر تراکنش باید توسط هر گره یا نود در شبکه پردازش شود. با بیت‌کوین، اندازه بلاک‌چین فعلی در حدود 15 گیگابایت است که حدود 1 مگابایت در ساعت افزایش می‌یابد. اگر شبکه بیت‌کوین 2000 تراکنش ویزا را در ثانیه پردازش کند، 1 مگابایت در هر سه ثانیه (1 گیگابایت در ساعت، 8 ترابایت در سال) رشد می‌کند. اتریوم احتمالاً از الگوی رشد مشابهی رنج می‌برد، که با این واقعیت بدتر شده است که برنامه‌های کاربردی زیادی بر روی بستر بلاکچین اتریوم به جای ارز مانند بیتکوین وجود خواهد داشت، اما با این واقعیت که گره های کامل اتریوم به جای کل تاریخچه بلاکچین، فقط وضعیت را ذخیره می کنند، بهبود یافته است. @@ -556,28 +474,20 @@ _با وجود انتشار ارز خطی، درست مانند بیتکوین حمله دیگر، پیچیده‌تر، شامل ماینرهای مخرب است که بلوک‌های ناقص را منتشر می‌کنند، بنابراین اطلاعات کامل حتی برای تعیین معتبر بودن یا نبودن بلوک‌ها وجود ندارد. راه‌حل این یک پروتکل پاسخ به چالش است: گره‌های تأیید «چالش‌ها» را در قالب شاخص‌های تراکنش هدف ایجاد می‌کنند. و با دریافت یک گره، یک گره نوری، بلوک را تا زمانی که گره دیگری غیرقابل اعتماد است، در نظر می گیرد. چه ماینر یا تایید کننده دیگر، زیرمجموعه ای از گره های پاتریشیا را به عنوان اثبات اعتبار ارائه می دهد. - - ## نتيجه گيری {#conclusion} پروتکل اتریوم در ابتدا به عنوان یک نسخه ارتقا یافته از یک ارز رمزنگاری شده در نظر گرفته شد که ویژگی‌های پیشرفته‌ای مانند سپرده روی بلاک‌چین، محدودیت‌های برداشت، قراردادهای مالی، بازارهای شرط بندی و موارد مشابه را از طریق یک زبان برنامه‌نویسی بسیار تعمیم‌یافته ارائه می‌دهد. پروتکل اتریوم مستقیماً از هیچ یک از برنامه‌ها پشتیبانی نمی‌کند، اما وجود یک زبان برنامه‌نویسی کامل تورینگ به این معنی است که از نظر تئوری می‌توان قراردادهای دلخواه را برای هر نوع تراکنش یا برنامه‌ای ایجاد کرد. اما آنچه در مورد اتریوم جالب‌تر است این است که پروتکل اتریوم بسیار فراتر از ارز است. پروتکل‌های حول ذخیره‌سازی غیرمتمرکز فایل، محاسبات غیرمتمرکز و بازارهای پیش‌بینی غیرمتمرکز، در میان ده‌ها مفهوم دیگر، پتانسیل افزایش قابل‌توجهی کارایی صنعت محاسبات را دارند، و با افزودن برای اولین بار یک لایه اقتصادی، تقویت گسترده ای برای سایر پروتکل های همتا به همتا فراهم می کند. در نهایت، مجموعه‌ای از برنامه‌های کاربردی نیز وجود دارد که اصلاً ربطی به پول ندارند. مفهوم یک تابع انتقال حالت دلخواه که توسط پروتکل اتریوم پیاده سازی شده است، یک پلتفرم با پتانسیل منحصر به فرد را فراهم می کند. به جای اینکه اتریوم یک پروتکل بسته و تک منظوره باشد که برای مجموعه ای از برنامه های کاربردی در ذخیره سازی داده ها، قمار یا امور مالی در نظر گرفته شده است، اتریوم از نظر طراحی دارای پایان باز است. و ما معتقدیم که برای خدمت به عنوان یک لایه اساسی برای تعداد بسیار زیادی از پروتکل های مالی و غیر مالی در سال های آینده بسیار مناسب است. - - ## یادداشت ها و مطالعه بیشتر {#notes-and-further-reading} - - ### یادداشت ها {#notes} 1. یک خواننده آگاه ممکن است متوجه شود که در واقع یک آدرس بیتکوین هش کلید عمومی منحنی بیضوی است و نه خود کلید عمومی. با این حال، در واقع اصطلاحات رمزنگاری کاملاً قانونی است که به هش پابکی (pubkey) به عنوان خود کلید عمومی اشاره شود. این به این دلیل است که رمزنگاری بیتکوین را می توان یک الگوریتم امضای دیجیتال سفارشی در نظر گرفت، که در آن کلید عمومی از هش کلید pubkey ECC تشکیل شده است، امضا شامل کلید pubkey ECC است که با امضای ECC پیوند خورده است. و الگوریتم تأیید شامل بررسی ECC pubkey در امضا در برابر هش ECC pubkey ارائه شده به عنوان کلید عمومی و سپس تأیید امضای ECC در برابر کلید pubkey ECC است. 2. از نظر فنی، میانه 11 بلوک قبلی. 3. از نظر داخلی، 2 و "CHARLIE" هر دو اعداد هستند[fn3](#notes)، که دومی در نمایش پایه 256 بیگ ایندین قرار دارد. اعداد می توانند حداقل 0 و حداکثر 2256-1 باشند. - - ### اطلاعات بیشتر {#further-reading} 1. [ارزش ذاتی](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) diff --git a/public/content/translations/fr/community/research/index.md b/public/content/translations/fr/community/research/index.md index dc53d5eae2a..682f4768c89 100644 --- a/public/content/translations/fr/community/research/index.md +++ b/public/content/translations/fr/community/research/index.md @@ -111,7 +111,7 @@ Il existe aujourd'hui plusieurs protocoles de seconde couche qui permettent de m #### Recherche récente {#recent-research-2} - [Ordre équitable pour les séquenceurs d'Arbitrum](https://eprint.iacr.org/2021/1465) -- [ethresear.ch Seconde couche](https://ethresear.ch/c/layer-2/32) +- [Ethresear.ch Couche 2](https://ethresear.ch/c/layer-2/32) - [Feuille de route axée sur le rollup](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) - [L2Beat](https://l2beat.com/) @@ -189,7 +189,7 @@ Les portefeuilles Ethereum peuvent être des extensions de navigateur, des appli - [Introduction aux portefeuilles](/wallets/) - [Introduction à la sécurité des portefeuilles](/security/) -- [ethresear.ch Sécurité](https://ethresear.ch/tag/security) +- [Ethresear.ch Sécurité](https://ethresear.ch/tag/security) - [EIP-2938 Abstraction de compte](https://eips.ethereum.org/EIPS/eip-2938) - [EIP-4337 Abstraction de compte](https://eips.ethereum.org/EIPS/eip-4337) @@ -377,11 +377,11 @@ Les piratages sur Ethereum exploitent généralement des vulnérabilités dans d - [Rapport sur l'attaque de Wormhole](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) - [Liste des post-mortems des piratages de contrats Ethereum](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191) -- [Rekt News](https://twitter.com/RektHQ?s=20\&t=3otjYQdM9Bqk8k3n1a1Adg) +- [Rekt News](https://twitter.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg) #### Recherche récente {#recent-research-19} -- [ethresear.ch Applications](https://ethresear.ch/c/applications/18) +- [Ethresear.ch Applications](https://ethresear.ch/c/applications/18) ### Pile technologique {#technology-stack} diff --git a/public/content/translations/fr/contributing/index.md b/public/content/translations/fr/contributing/index.md index f0857000bdd..a6e77482538 100644 --- a/public/content/translations/fr/contributing/index.md +++ b/public/content/translations/fr/contributing/index.md @@ -19,11 +19,11 @@ Nous sommes une communauté accueillante qui vous aidera à grandir et à vous f - [Travailler sur un ticket ouvert](https://github.com/ethereum/ethereum-org-website/issues) – Travail que nous avons identifié comme devant être fait **Conception** -- [Aider à concevoir le site web](/contributing/design/)– Des concepteurs de tous les niveaux peuvent contribuer à améliorer le site web +- [Aidez à concevoir le site web](/contributing/design/) – Les designers de tous niveaux peuvent contribuer à améliorer le site **Contenu** - [Créer/modifier du contenu](/contributing/#how-to-update-content) – Proposez de nouvelles pages ou des modifications de ce qui existe déjà -- [Ajouter un article pour la communauté](/contributing/content-resources/)– Ajoutez un article utile à une page pertinente +- [Ajouter un article pour la communauté](/contributing/content-resources/) – Ajoutez un article utile à une page pertinente - [Suggérer une ressource de design](/contributing/design/adding-design-resources/) - Ajoutez, mettez à jour et supprimez des ressources de design utiles - [Ajouter un terme au glossaire](/contributing/adding-glossary-terms/) – Aidez-nous à poursuivre le développement du [glossaire](/glossary/) Ethereum - [Quiz](/contributing/quizzes/) - Ajoutez, mettez à jour et supprimez des questions de quiz sur une page pertinente @@ -32,7 +32,7 @@ Nous sommes une communauté accueillante qui vous aidera à grandir et à vous f - [Demander une fonctionnalité](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=Type%3A+Feature&template=feature_request.yaml&title=) – Faites-nous part de vos idées pour une nouvelle fonctionnalité ou un nouveau design **Liste de produits** -- [Ajouter une plateforme d'échange](/contributing/adding-exchanges/)– Ajoutez une plateforme d'échange à notre [outil de recherche d'échange](/get-eth/#country-picker) +- [Ajouter une plateforme d'échange](/contributing/adding-exchanges/) – Ajoutez une plateforme d'échange à notre [outil de recherche d'échange](/get-eth/#country-picker) - [Ajouter un produit/service](/contributing/adding-products/) – Ajoutez une application décentralisée (DApp) ou un portefeuille à une page pertinente - [Ajouter des outils de développement](/contributing/adding-developer-tools/) – Ajoutez un outil de développement à une page pertinente - [Ajouter une couche 2](/contributing/adding-layer-2s/) – Ajoutez une seconde couche à une page pertinente @@ -94,7 +94,7 @@ Si votre contribution est intégrée à ethereum.org, vous aurez la possibilité ### Comment le récupérer 1. Rejoignez notre [serveur Discord](https://discord.gg/ethereum-org). -2. Collez un lien vers votre contribution dans le canal `#🥇 | proof-of-contribution` +2. Collez un lien vers votre contribution dans le canal `#🥇 | proof-of-contribution`. 3. Attendez qu'un membre de notre équipe vous envoie un lien vers votre OAT. 4. Réclamez votre OAT ! diff --git a/public/content/translations/fr/contributing/translation-program/translators-guide/index.md b/public/content/translations/fr/contributing/translation-program/translators-guide/index.md index 9af0358f3e7..f61b9f09706 100644 --- a/public/content/translations/fr/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/fr/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ La meilleure façon de gérer les liens est de les copier directement à partir ![Exemple de lien.png](./example-of-link.png) -Les liens apparaissent également dans le texte source sous la forme de balises (c'est-à-dire <0> ). Si vous survolez la balise, l'éditeur affichera son véritable contenu. Parfois, ces balises désigneront des liens. +Les liens apparaissent également dans le texte source sous la forme de balises (c'est-à-dire `<0> `). Si vous survolez la balise, l'éditeur affichera son véritable contenu. Parfois, ces balises désigneront des liens. Il est très important de copier les liens depuis le texte source et de ne pas modifier l'ordre des balises. @@ -154,7 +154,7 @@ nonce - _Texte non traduisible_ Le texte source contient aussi des balises raccourcies. Elles contiennent uniquement des chiffres et leur fonction n'est donc pas directement identifiable. Vous pouvez survoler ces balises pour voir exactement ce à quoi elles servent. -Dans l'exemple ci-dessous, vous pouvez voir que survoler la balise <0> nous permet de savoir qu'elle désigne en fait une balise `` et qu'elle contient un extrait de code. Le contenu de ces balises ne doit donc pas être traduit. +Dans l'exemple ci-dessous, vous pouvez voir que survoler la balise `<0>` nous permet de savoir qu'elle désigne en fait une balise `` et qu'elle contient un extrait de code. Le contenu de ces balises ne doit donc pas être traduit. ![Exemple de balises ambiguës.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/fr/dao/index.md b/public/content/translations/fr/dao/index.md index fd02b9826c8..7b566bf3444 100644 --- a/public/content/translations/fr/dao/index.md +++ b/public/content/translations/fr/dao/index.md @@ -1,5 +1,6 @@ --- -title: Organisation autonome décentralisée (DAO) +title: Qu'est-ce qu'une DAO ? +metaTitle: Qu'est-ce qu'une DAO ? | Organisation autonome et décentralisée description: Un aperçu des DAO sur Ethereum lang: fr template: use-cases diff --git a/public/content/translations/fr/decentralized-identity/index.md b/public/content/translations/fr/decentralized-identity/index.md index e894f77ad68..9a6bb955cc8 100644 --- a/public/content/translations/fr/decentralized-identity/index.md +++ b/public/content/translations/fr/decentralized-identity/index.md @@ -165,12 +165,8 @@ Il existe de nombreux projets ambitieux utilisant Ethereum comme base pour des s - **[walt.id](https://walt.id)** — _Infrastructure décentralisée et open source d'identité et de portefeuille qui permet aux développeurs et aux organisations de tirer parti de l'identité souveraine et des NFT/SBT._ - **[Veramo](https://veramo.io/)** - _Un environnement JavaScript qui permet à chacun d'utiliser facilement des données vérifiables cryptographiquement dans ses applications._ - - ## Complément d'information {#further-reading} - - ### Articles {#articles} - [Cas d'utilisation de la Blockchain : Blockchain en identité numérique](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsensusSys_ @@ -179,8 +175,6 @@ Il existe de nombreux projets ambitieux utilisant Ethereum comme base pour des s - [Qu'est-ce que l'identité décentralisée et pourquoi devriez-vous vous en préocupper ?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - [Introduction à l'Identité Décentralisée](https://walt.id/white-paper/digital-identity)— _Dominik Beron_ - - ### Vidéos {#videos} - [Identité décentralisée (Bonus Session Livestream)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Une formidable vidéo explicative sur l'identité décentralisée par Andreas Antonopolous_ @@ -189,8 +183,6 @@ Il existe de nombreux projets ambitieux utilisant Ethereum comme base pour des s - [The Off Chain Internet : Identités décentralisées & Références vérifiables](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Présentation EthDenver 2022 par Evin McMullen - [Explication des Justificatifs Vérifiables](https://www.youtube.com/watch?v=ce1IdSr-Kig) - Vidéo explicative sur YouTube avec démonstration par Tamino Baumann - - ### Communautés {#communities} - [ERC-725 Alliance sur GitHub](https://github.com/erc725alliance) — _Supporters de la norme ERC725 pour la gestion d'identité sur la blockchain Ethereum_ diff --git a/public/content/translations/fr/defi/index.md b/public/content/translations/fr/defi/index.md index 78a69fc6524..1f0f9023cad 100644 --- a/public/content/translations/fr/defi/index.md +++ b/public/content/translations/fr/defi/index.md @@ -1,5 +1,6 @@ --- title: Finance Décentralisée (DeFi) +metaTitle: Qu'est-ce que DeFi ? | Avantages et utilisation de la finance décentralisée description: Un aperçu de la DeFi sur Ethereum lang: fr template: use-cases @@ -168,7 +169,7 @@ Si l'échange B chutait soudainement et que l'utilisateur n'était pas en mesure Pour pouvoir faire ce qui précède dans le monde de la finance traditionnelle, vous auriez besoin d'une somme d'argent énorme. Ces stratégies pour gagner de l'argent ne sont accessibles qu'à ceux qui possèdent déjà une certaine richesse. Les prêts Flash sont un exemple d'avenir où avoir de l'argent n'est pas nécessairement une condition préalable pour gagner de l'argent. - + Plus d'infos sur les prêts Flash @@ -324,7 +325,7 @@ Vous pouvez voir la DeFi comme des couches : 3. Les protocoles, [contrats intelligents](/glossary/#smart-contract) qui offrent des fonctionnalités comme les prêts d'actifs décentralisés. 4. [Les applications](/dapps/) les produits que vous utilisez pour accéder et gérer les protocoles. -Note : Beaucoup de DeFi utilisent la [norme ERC-20](/glossary/#erc-20). Les applications de la DeFi utilisent un wrapper pour ETH, appelé Wrapped Ether (WETH). [En apprendre plus à propos de l'ether symbolique](/wrapped-eth). +Note : Beaucoup de DeFi utilisent la [norme ERC-20](/glossary/#erc-20). Les applications de DeFi utilisent un "wrapper" pour l'ETH appelé Wrapped Ether (WETH). [En apprendre plus à propos de l'ether symbolique](/wrapped-eth). ## Fabriquer une DeFi {#build-defi} @@ -358,4 +359,4 @@ DeFi est un mouvement open source. Les protocoles et applications DeFi sont ouve - \ No newline at end of file + diff --git a/public/content/translations/fr/developers/docs/apis/javascript/index.md b/public/content/translations/fr/developers/docs/apis/javascript/index.md index 553e6458081..eb548469d3c 100644 --- a/public/content/translations/fr/developers/docs/apis/javascript/index.md +++ b/public/content/translations/fr/developers/docs/apis/javascript/index.md @@ -4,7 +4,7 @@ description: Introduction aux bibliothèques clientes JavaScript, qui vous perme lang: fr --- -Pour qu'une application Web puisse interagir avec la blockchain Ethereum (c'est-à-dire lire les données de la blockchain et/ou envoyer des transactions sur le réseau), elle doit se connecter à un nœud Ethereum. +Pour qu'une application Web puisse interagir avec la blockchain Ethereum (c'est-à-dire lire les données de la blockchain et/ou envoyer des transactions sur le réseau), elle doit se connecter à un nœud Ethereum. À cette fin, chaque client Ethereum met en œuvre la spécification [JSON-RPC](/developers/docs/apis/json-rpc/), de sorte qu'il existe un ensemble uniforme de [méthodes](/developers/docs/apis/json-rpc/#json-rpc-methods) sur lesquelles les applications peuvent s'appuyer. diff --git a/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md index 83b021dee33..94225a163bb 100644 --- a/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md +++ b/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md @@ -1,141 +1,144 @@ --- -title: Attaque et défense de preuve d'enjeu Ethereum -description: Découvrez les vecteurs d'attaques connus sur la preuve d'enjeu Ethereum et comment ils sont défendus. +title: Attaques visant la preuve d'enjeu Ethereum et modes de défense +description: Découvrez les vecteurs d'attaques connus sur la preuve d'enjeu Ethereum et ses modes de défense. lang: fr --- -Les voleurs et les saboteurs sont constamment à la recherche d'opportunités pour attaquer le logiciel client d'Ethereum. Cette page met en lumière les vecteurs d'attaques connus sur la couche de consensus d'Ethereum. Elle montre aussi comment ces attaques peuvent être défendues. Les informations de cette page sont une adaptation d'une [version de longue forme](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). +Les voleurs et les saboteurs sont constamment à la recherche d'opportunités pour attaquer le logiciel client d'Ethereum. Cette page met en lumière les vecteurs d'attaques connus sur la couche de consensus d'Ethereum. Elle montre aussi comment ces attaques peuvent être contrées. Les informations sur cette page sont adaptées d'[une version plus longue](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). -## Les prérequis {#prerequisites} +## Prérequis {#prerequisites} -Quelques notions de bases de la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/) sont requises. Aussi, cela serait utile d'avoir les notions de compréhension de base des la couche d'incitation [d'Ethereum](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) et de l'algorithme de choix de fourche [, LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). +Quelques connaissances de base sur la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/) sont requises. Il sera également utile d'avoir une compréhension de base de la [couche d'incitation] d'Ethereum (/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) et de l'algorithme de choix de fourche, [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). ## Que veulent les attaquants ? {#what-do-attackers-want} -Une idée erronée courante est qu'un attaquant couronné de succès peut générer de nouveaux éthers ou absorber des éthers depuis des comptes arbitraires. Ni l'une, ni l'autre situation n'est possible car toutes les transactions sont exécutées par tous les clients d'exécution sur le réseau. Elles doivent satisfaire à des conditions élémentaires de validité (par exemple, les transactions sont signées par la clé privée de l'expéditeur, l'expéditeur dispose d'un solde suffisant, etc.) sinon elles sont simplement annulées. Il y a trois types de résultats qu'un attaquant pourrait viser : les reorgs, la double finalité ou le délai de finalité. +Une idée erronée et répandue est qu'un attaquant couronné de succès peut générer de nouveaux éthers ou absorber des éthers depuis des comptes arbitraires. Aucune de ces deux situations n'est possible car toutes les transactions sont exécutées par tous les clients d'exécution sur le réseau. Elles doivent satisfaire à des conditions élémentaires de validité (par exemple, les transactions sont signées par la clé privée de l'expéditeur, l'expéditeur dispose d'un solde suffisant, etc.) faute de quoi elles sont simplement annulées. Un attaquant peut viser trois types de résultats : les reorgs, la double finalité ou le retard de finalité. -Un **"reorg"** est un mélange de blocs dans un nouvel ordre, avec éventuellement une addition ou soustraction de blocs dans la chaîne canonique. Une reorg malveillante pourrait garantir que des blocs spécifiques soient inclus ou exclus, permettant une double dépense ou une extraction de valeur en anticipant ou retardant les transactions (MEV). Les re-orgs pourraient également être utilisés pour empêcher certaines transactions d'être incluses dans la chaîne canonique - une forme de censure. La forme la plus extrême de reorg est la « réversion de finalité » qui supprime ou remplace les blocs qui ont été précédemment finalisés. Cela n'est possible que si plus d'un tiers de l'ether total mis en jeu est détruit par l'attaquant - cette garantie est connue sous le nom de « finalité économique » - nous y reviendrons plus tard. +Une **“reorg”** est un remaniement des blocs dans un nouvel ordre, avec éventuellement ajout ou soustraction de blocs dans la chaîne canonique. Une reorg malveillante pourrait garantir que des blocs spécifiques soient inclus ou exclus, permettant une double dépense ou une extraction de valeur en anticipant ou retardant les transactions (MEV). Les re-orgs pourraient également être utilisés pour empêcher certaines transactions d'être incluses dans la chaîne canonique, constituant une forme de censure. La forme la plus extrême de reorg est la « réversion de finalité » qui supprime ou remplace les blocs qui ont été précédemment finalisés. Cela n'est possible que si plus d'un tiers de l'ether total mis en jeu est détruit par l'attaquant - cette garantie est connue sous le nom de « finalité économique » - nous y reviendrons plus tard. -**La double finalité** est la situation peu probable mais grave où deux fourches sont capables de finaliser simultanément, créant un schisme permanent dans la chaîne. Cela est théoriquement possible pour un attaquant prêt à risquer 34 % de l'éther total mis en jeu. La communauté serait alors forcée de coordonner hors chaîne et de se mettre d'accord sur la chaîne à suivre, ce qui nécessiterait une solidité dans la couche sociale. +La **double finalité** est une situation improbable mais grave dans laquelle deux fourches sont capables de finaliser simultanément, créant un schisme permanent dans la chaîne. Cela est théoriquement possible pour un attaquant prêt à risquer 34 % de l'éther total mis en jeu. La communauté serait alors forcée de se coordonner hors chaîne et de se mettre d'accord sur la chaîne à suivre, ce qui nécessiterait une certaine solidité dans la couche sociale. -Une attaque de type **retard de finalité** empêche le réseau d'atteindre les conditions nécessaires à la finalisation des sections de la chaîne. Sans finalité, il est difficile de faire confiance aux applications financières conçues sur Ethereum. Le but d'une attaque visant à retarder la finalité est probablement de perturber Ethereum plutôt que d'en tirer un profit direct, à moins que l'attaquant n'ait une ou plusieurs positions stratégiques de vente à découvert. +Une attaque de type **retard de finalité** empêche le réseau d'atteindre les conditions nécessaires à la finalisation des sections de la chaîne. Sans finalité, il est difficile de faire confiance aux applications financières conçues sur Ethereum. Le but d'une attaque visant à retarder la finalité est probablement de perturber Ethereum plutôt que d'en tirer un profit direct, à moins que l'attaquant ne dispose d'une ou de plusieurs positions stratégiques à court terme. -Une attaque sur la couche sociale pourrait chercher à saper la confiance du public en Ethereum, dévaluer l'éther, réduire l'adoption ou affaiblir la communauté Ethereum pour rendre la coordination hors bande plus difficile. +Une attaque sur la couche sociale pourrait chercher à saper la confiance du public envers Ethereum, dévaluer l'éther, réduire l'adoption ou affaiblir la communauté Ethereum pour rendre la coordination hors bande plus difficile. -Après avoir établi les raisons pour lesquelles un adversaire pourrait attaquer Ethereum, les sections suivantes examinent _comment_ il pourrait s'y prendre. +Après avoir établi les raisons pour lesquelles un adversaire pourrait attaquer Ethereum, les sections suivantes examinent comment il pourrait s'y prendre. -## Méthodes d'attaque {#methods-of-attack} +## Méthodes d'attaques {#methods-of-attack} -### Attaques de couche 0 {#layer-0} +### Attaque sur la couche 0 {#layer-0} -Premièrement, les individus qui ne participent pas activement à Ethereum (en exécutant le logiciel client) peuvent attaquer en ciblant la couche sociale (Couche 0). La couche 0 est la fondation sur laquelle repose l'Ethereum, et, en tant que telle, représente une potentielle surface pour les attaques avec des conséquences se répercutant sur le reste de la pile. Voici quelques exemples : +Premièrement, les individus qui ne participent pas activement à Ethereum (en exécutant le logiciel client) peuvent effectuer une attaque en ciblant la couche sociale (Couche 0). La couche 0 est la fondation sur laquelle repose Ethereum, et, en tant que telle, représente une surface potentielle pour les attaques avec des conséquences se répercutant sur le reste de la pile. Voici quelques exemples : - Une campagne de désinformation pourrait éroder la confiance de la communauté dans la feuille de route d'Ethereum, les équipes de développeurs, les applications, etc. Cela pourrait alors réduire le nombre de personnes désireuses de participer à la sécurisation du réseau, dégradant ainsi la décentralisation et la sécurité crypto-économique. + - Attaques ciblées et/ou intimidation à l'encontre de la communauté de développeurs. Cela pourrait entraîner le départ volontaire de développeurs et ralentir la progression d'Ethereum. - Une réglementation trop zélée pourrait également être considérée comme une attaque de la couche 0, car elle pourrait rapidement décourager la participation et l'adoption. + - Infiltration dans la communauté de développeurs d'acteurs bien informés mais malveillants dont l'objectif est de ralentir les progrès en court-circuitant les discussions, en retardant les décisions clés, en créant des spams, etc. + - Pots-de-vin versés à des acteurs clés de l'écosystème Ethereum pour influencer la prise de décision. -Ce qui rend ces attaques particulièrement dangereuses, c'est que dans de nombreux cas, très peu de capital ou de savoir-faire technique est nécessaire. Une attaque de la couche 0 pourrait multiplier les effets d'une attaque crypto-économique. Par exemple, si une censure ou une réversion de finalité était réalisée par un actionnaire majoritaire malveillant, miner la couche sociale pourrait rendre plus difficile la coordination d'une réponse de la communauté hors ligne. +Ce qui rend ces attaques particulièrement dangereuses, c'est que dans de nombreux cas, très peu de capital ou de savoir-faire technique est nécessaire. Une attaque de la couche 0 pourrait multiplier les effets d'une attaque crypto-économique. Par exemple, si une censure ou une réversion de finalité était réalisée par une partie prenante majoritaire et malveillante, le fait de miner la couche sociale pourrait rendre plus difficile la coordination d'une réponse de la communauté hors ligne. -Défendre les attaques sur la couche 0 n'est probablement pas simple, mais quelques principes basiques peuvent être établis. L'un d'eux est de maintenir un rapport signal/bruit élevé pour l'information publique sur Ethereum, créée et diffusée par des membres honnêtes de la communauté via des blogs, des serveurs discord, des spécifications annotées, des livres, des podcasts et Youtube. Ici, sur ethereum.org, nous nous efforçons de maintenir des informations précises et de les traduire dans le plus grand nombre de langues possible. Inonder un espace avec des informations de haute qualité et des mèmes est une défense efficace contre la désinformation. +Se défendre face aux attaques sur la couche 0 n'est probablement pas évident, mais quelques principes de base peuvent être établis. L'un d'eux est de maintenir un rapport signal/bruit élevé pour l'information publique sur Ethereum, créée et diffusée par des membres honnêtes de la communauté via des blogs, des serveurs discord, des spécifications annotées, des livres, des podcasts et Youtube. Ici, sur ethereum.org, nous nous efforçons de fournir des informations précises et de les traduire dans le plus grand nombre de langues possible. Inonder un espace avec des informations de haute qualité et des mèmes est une défense efficace contre la désinformation. -Une autre fortification importante contre les attaques de la couche sociale est une déclaration de mission claire et un protocole de gouvernance. Ethereum s'est positionné comme le champion de la décentralisation et de la sécurité parmi les blockchains de contrats intelligents en couche 1, tout en valorisant fortement la scalabilité et la durabilité. Quels que soient les désaccords au sein de la communauté Ethereum, ces principes fondamentaux sont compromis au minimum. Évaluer un récit par rapport à ces principes fondamentaux, et les examiner à travers des tours successifs d'examen dans le processus EIP (Ethereum Improvement Proposal), pourrait aider la communauté à distinguer les bons acteurs des mauvais et limite la portée pour les acteurs malveillants d'influencer la direction future d'Ethereum. +Une déclaration de mission et un protocole de gouvernance clairs constituent un autre rempart important contre les attaques de la couche sociale. Ethereum s'est positionné comme le champion de la décentralisation et de la sécurité parmi les couches 1 de contrats intelligents, tout en valorisant fortement l'évolutivité et la durabilité. Quels que soient les désaccords au sein de la communauté Ethereum, ces principes fondamentaux ne sont que très peu remis en cause. Évaluer un récit par rapport à ces principes fondamentaux, et les examiner à travers des tours successifs d'examen dans le processus EIP (Proposition d'amélioration Ethereum), pourrait aider la communauté à distinguer les bons acteurs des mauvais et limite la possibilité pour les acteurs malveillants d'influencer la direction future d'Ethereum. -Enfin, il est essentiel que la communauté Ethereum reste ouverte et accueillante pour tous les participants. Une communauté où règnent des gardiens et l'exclusivité est particulièrement vulnérable aux attaques sociales, car il est facile de créer des récits de type « nous et eux ». Le tribalisme et le maximalisme toxique blessent la communauté et érodent la sécurité de la Couche 1. Les Ethéréens ayant un intérêt direct dans la sécurité du réseau devraient considérer leur comportement en ligne et dans le monde réel comme une contribution directe à la sécurité de la couche 0 d'Ethereum. +Enfin, il est essentiel que la communauté Ethereum reste ouverte et accueillante pour tous les participants. Une communauté où règnent des gardiens et l'exclusivité est particulièrement vulnérable aux attaques sociales, car il est facile de créer des récits de type « nous et eux ». Le tribalisme et le maximalisme toxique blessent la communauté et érodent la sécurité de la Couche 0. Les Ethéréens ayant un intérêt direct dans la sécurité du réseau devraient considérer leur comportement en ligne et dans le monde réel comme une contribution directe à la sécurité de la couche 0 d'Ethereum. ### Attaquer le protocole {#attacking-the-protocol} -Tout le monde peut utiliser le logiciel client d'Ethereum. Pour ajouter un validateur à un client, l'utilisateur doit mettre en jeu 32 ether dans le contrat de dépôt. Un validateur permet à un utilisateur de participer activement à la sécurité du réseau Ethereum en proposant et en attestant de nouveaux blocs. Le validateur dispose désormais d'une voix qu'il peut utiliser pour influencer le contenu futur de la blockchain - il peut le faire honnêtement et augmenter sa réserve d'ether via des récompenses ou il peut essayer de manipuler le processus à son propre avantage, en risquant sa mise. L'une des façons de monter une attaque consiste à accumuler une plus grande proportion de l'enjeu total et à l'utiliser pour mettre en minorité les validateurs honnêtes. Plus la part de la participation contrôlée par l'attaquant est importante, plus son pouvoir de vote est élevé, en particulier à certaines étapes économiques que nous examinerons plus tard. Cependant, la plupart des attaquants ne seront pas en mesure d'accumuler suffisamment d'ether pour attaquer de cette manière, et devront donc utiliser des techniques subtiles pour manipuler la majorité honnête afin qu'elle agisse d'une certaine manière. +Tout le monde peut utiliser le logiciel client d'Ethereum. Pour ajouter un validateur à un client, l'utilisateur doit mettre en jeu 32 ether dans le contrat de dépôt. Un validateur permet à un utilisateur de participer activement à la sécurité du réseau Ethereum en proposant et en attestant de nouveaux blocs. Le validateur dispose désormais d'une voix qu'il peut utiliser pour influencer le contenu futur de la blockchain - il peut le faire honnêtement et augmenter sa réserve d'ether via des récompenses ou il peut essayer de manipuler le processus à son propre avantage, en risquant sa mise. L'une des façons de monter une attaque consiste à accumuler une plus grande proportion de la mise en jeu totale et à l'utiliser pour mettre en minorité les validateurs honnêtes. Plus la part de la mise en jeu contrôlée par l'attaquant est importante, plus son pouvoir de vote est élevé, en particulier lors de certaines phases économiques que nous examinerons plus tard. Cependant, la plupart des attaquants ne seront pas en mesure d'accumuler suffisamment d'ether pour attaquer de cette manière, et devront donc utiliser des techniques plus subtiles pour manipuler la majorité des utilisateurs honnêtes afin qu'ils agissent d'une certaine manière. -Fondamentalement, toutes les attaques à faible enjeu sont des variations subtiles de deux types de comportement erroné du validateur : la sous-activité (ne pas proposer ou le faire en retard) ou la suractivité (proposer/attester trop de fois dans un créneau). Dans leurs formes les plus basiques, ces actions sont facilement gérées par l'algorithme de choix de fourche et la couche d'incitation, mais il existe des moyens astucieux de tromper le système à l'avantage de l'attaquant. +Fondamentalement, toutes les attaques à faible enjeu sont des variations subtiles de deux types de comportement inapproprié du validateur : la sous-activité (ne pas proposer/attester ou le faire en retard) ou la suractivité (proposer/attester trop de fois dans un créneau). Dans leurs formes les plus basiques, ces actions sont facilement gérées par l'algorithme de choix de fourche et la couche d'incitation, mais il existe des moyens astucieux de tromper le système à l'avantage de l'attaquant. -### Attaques utilisant de faibles quantités d'ETH {#attacks-by-small-stakeholders} +### Attaque utilisant une petite quantité d'ETH {#attacks-by-small-stakeholders} #### reorgs {#reorgs} -Plusieurs documents ont expliqué des attaques sur Ethereum qui réalisent des reorgs ou des retards de finalité avec seulement une petite proportion de l'ether total mis en jeu. Ces attaques reposent généralement sur le fait que l'attaquant dissimule certaines informations aux autres validateurs, puis les divulgue d'une manière subtile et/ou à un moment opportun. Ils visent généralement à déplacer un ou plusieurs blocs honnêtes de la chaîne canonique. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) ont montré comment un validateur attaquant peut créer et attester d'un bloc (`B`) pour un créneau particulier `n+1` mais s'abstenir de le propager à d'autres nœuds du réseau. Au lieu de cela, ils conservent ce bloc attesté jusqu'au créneau suivant `n+2`. Un validateur honnête propose un bloc (`C`) pour le créneau `n+2`. Presque simultanément, l'attaquant peut envoyer leur bloc retenu (`B`) et leurs attestations retenues pour lui, et dans le même attester que `B` est la tête de la chaîne avec leurs votes pour le créneau `n+2`, niant effectivement l'existence du bloc honnête `C`. Lorsque le bloc honnête `D` est créé, l'algorithme de choix de fourche voit `D` se construire sur `B` étant plus lourd que `D` se construisant sur `C`. L'attaquant a donc réussi à retirer le bloc honnête `C` du créneau `n+2` de la chaîne canonique en utilisant un reorg ex ante d'1 bloc. [Un attaquant avec 34 %](https://www.youtube.com/watch?v=6vzXwwk12ZE) des enjeux a de très bonnes chances de réussir cette attaque, comme expliqué dans [cette note](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). En théorie, cependant, cette attaque pourrait être tentée avec des enjeux plus petits. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) décrit cette attaque fonctionnant avec une participation de 30 %, mais il a été démontré plus tard qu'elle était viable avec [2% de la mise totale](https://arxiv.org/pdf/2009.04987.pdf) et puis à nouveau pour un [seul validateur](https://arxiv.org/abs/2110.10086#) en utilisant des techniques d'équilibrage que nous examinerons dans la section suivante. +Plusieurs articles ont décrit des attaques sur Ethereum qui réalisent des reorgs ou des retards de finalité avec seulement une petite proportion de l'ether total mis en jeu. Ces attaques reposent généralement sur le fait que l'attaquant dissimule certaines informations aux autres validateurs, puis les divulgue d'une manière subtile et/ou à un moment opportun. Ils visent généralement à déplacer un/des bloc(s) honnêtes de la chaîne canonique. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) ont montré comment un validateur attaquant peut créer et attester d'un bloc ('B') pour un créneau particulier 'n+1' mais s'abstenir de le propager à d'autres nœuds du réseau. Au lieu de cela, ils conservent ce bloc attesté jusqu'au créneau suivant 'n+2'. Un validateur honnête propose un bloc ('C') pour le créneau 'n+2'. Presque simultanément, l'attaquant peut envoyer son bloc retenu ('B') et ses attestations retenues, et aussi attester que 'B' est la tête de la chaîne avec ses votes pour le créneau 'n+2', niant l'existence du bloc honnête 'C'. Lorsque le bloc honnête 'D' est créé, l'algorithme de choix de fourche voit que 'D' construit sur 'B' est plus lourd que 'D' construit sur 'C'. L'attaquant a donc réussi à retirer le bloc honnête 'C' du créneau 'n+2' de la chaîne canonique en utilisant un reorg ex ante 1-bloc. [Un attaquant détenant 34 %](https://www.youtube.com/watch?v=6vzXwwk12ZE) de la mise en jeu a de très bonnes chances de réussir cette attaque, comme expliqué dans cette vidéo et [dans cette note](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). En théorie, cependant, cette attaque pourrait être menée avec des enjeux plus modestes. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) a décrit cette attaque fonctionnant avec une participation de 30 %, mais il a été démontré plus tard qu'elle était viable avec [2% de la mise totale](https://arxiv.org/pdf/2009.04987.pdf) et également pour [un seul validateur](https://arxiv.org/abs/2110.10086#) en utilisant des techniques d'équilibrage que nous examinerons dans la section suivante. -![ex-ante re-org](reorg-schematic.png) +![réorganisation ex-ante](reorg-schematic.png) -Un schéma conceptuel de l'attaque de reorg d'un bloc décrite ci-dessus (adapté de https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) +Schéma conceptuel de l'attaque de reorg d'un bloc décrite ci-dessus (adapté de https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) -Une attaque plus sophistiquée peut diviser l'ensemble des validateurs honnêtes en groupes distincts qui ont des vues différentes de la tête de la chaîne. C'est ce qu'on appelle une **attaque d'équilibrage**. L'attaquant attend sa chance de proposer un bloc, et lorsqu'elle arrive, il équivaut et propose deux. Ils envoient un bloc à la moitié de l'ensemble des validateurs honnêtes et l'autre bloc à l'autre moitié. L'équivocation serait détectée par l'algorithme de choix de fourche et le proposeur de bloc serait puni et expulsé du réseau, mais les deux blocs existeraient toujours et auraient environ la moitié de l'ensemble des validateurs attestant de chaque fourche. Pendant ce temps, les validateurs malveillants restants retiennent leurs attestations. Ensuite, en libérant sélectivement les attestations en faveur de l'une ou l'autre fourche à suffisamment de validateurs juste au moment où l'algorithme de choix de fork s'exécute, ils inclinent le poids accumulé des attestations en faveur de l'une ou l'autre fourche. Cela peut continuer indéfiniment, les validateurs attaquants maintenant une division égale des validateurs entre les deux fourches. Comme aucune des deux fourches ne peut attirer une super-majorité de 2/3, le réseau ne finaliserait pas. +Une attaque plus sophistiquée peut diviser l'ensemble des validateurs honnêtes en groupes distincts qui ont des vues différentes de la tête de la chaîne. C'est ce qu'on appelle une **attaque d'équilibrage**. L'attaquant attend sa chance de proposer un bloc, et lorsqu'elle arrive, il équivaut et en propose deux. Il envoie un bloc à la moitié de l'ensemble des validateurs honnêtes et l'autre bloc à l'autre moitié. L'équivocation serait détectée par l'algorithme de choix de fourche et le proposeur de bloc serait puni et expulsé du réseau, mais les deux blocs existeraient toujours et auraient environ la moitié de l'ensemble des validateurs attestant de chaque fourche. Pendant ce temps, les validateurs malveillants restants retiennent leurs attestations. Ensuite, en libérant sélectivement les attestations en faveur de l'une ou l'autre fourche à un nombre suffisant de validateurs au moment où l'algorithme de choix de fourche s'exécute, ils font basculer le poids accumulé des attestations en faveur de l'une ou l'autre fourche. Cela peut continuer indéfiniment, les validateurs attaquants conservant une division égale des validateurs entre les deux fourches. Comme aucune des deux fourches ne peut attirer une super-majorité de 2/3, le réseau ne finaliserait pas. -Les **attaques de rebond** sont similaires. Les votes sont à nouveau retenus par les validateurs attaquants. Au lieu de libérer les votes pour maintenir une répartition égale entre deux fourches, ils utilisent leurs votes à des moments opportuns pour justifier des points de contrôle qui alternent entre le choix A et le choix B. Cette alternance de justification entre deux fourches empêche qu'il y ait des paires de points de contrôle source et cible justifiés qui peuvent être finalisés sur l'une ou l'autre chaîne, bloquant ainsi la finalité. +**Les attaques de rebond** sont similaires. Les votes sont à nouveau retenus par les validateurs attaquants. Au lieu de libérer les votes pour maintenir une répartition égale entre deux fourches, ils utilisent leurs votes à des moments opportuns pour justifier des points de contrôle qui alternent entre le choix A et le choix B. Cette alternance de justification entre deux fourches empêche l'existence de paires de points de contrôle source et cible justifiés susceptibles d'être finalisés sur l'une ou l'autre chaîne, bloquant ainsi la finalité. -Les attaques de rebond et d'équilibrage dépendent de la capacité de l'attaquant à contrôler très précisément la synchronisation des messages à travers le réseau, ce qui est peu probable. Néanmoins, des défenses sont intégrées au protocole sous la forme d'un poids supplémentaire accordé aux messages rapides par rapport aux messages lents. Ceci est connu sous le nom de [renforcement du poids du proposeur](https://github.com/ethereum/consensus-specs/pull/2730). Pour se défendre contre les attaques de rebond, l'algorithme de choix de fourche a été mis à jour afin que le dernier point de contrôle justifié ne puisse passer à celui d'une chaîne alternative que pendant [le premier tiers des créneaux de chaque période](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Cette condition empêche l'attaquant de cumuler des votes pour les déployer plus tard - l'algorithme de choix de fourche reste simplement fidèle au point de contrôle qu'il a choisi lors du premier tiers de l'époque, période pendant laquelle la plupart des validateurs honnêtes auraient voté. +Les attaques de rebond et d'équilibrage dépendent de la capacité de l'attaquant à contrôler très précisément la synchronisation des messages à travers le réseau, ce qui est peu probable. Néanmoins, des défenses sont intégrées au protocole sous la forme d'un poids supplémentaire accordé aux messages rapides par rapport aux messages lents. Cela est connu sous le nom de [renforcement du poids du proposeur](https://github.com/ethereum/consensus-specs/pull/2730). Pour se défendre contre les attaques de rebond, l'algorithme de choix de fourche a été mis à jour afin que le dernier point de contrôle justifié ne puisse passer à celui d'une chaîne alternative que pendant [les 1/3 des créneaux de chaque période](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Cette condition empêche l'attaquant de cumuler des votes pour les déployer plus tard - l'algorithme de choix de fourche reste simplement fidèle au point de contrôle qu'il a choisi lors du premier tiers de la période pendant laquelle la plupart des validateurs honnêtes auraient voté. -Combinées, ces mesures créent un scénario dans lequel un proposeur de bloc honnête émet son bloc très rapidement après le début du créneau, puis il y a une période d'environ un tiers de créneau (4 secondes) où ce nouveau bloc pourrait amener l'algorithme de choix de fourchette à basculer vers une autre chaîne. Après cette même échéance, les attestations provenant de validateurs lents sont sous-pondérées par rapport à celles qui sont arrivées plus tôt. Cela favorise fortement les proposeurs et validateurs rapides dans la détermination de la tête de la chaîne et réduit considérablement la probabilité d'une attaque réussie d'équilibrage ou de rebond. +Combinées entre elles, ces mesures créent un scénario dans lequel un proposeur de bloc honnête émet son bloc très rapidement après le début du créneau, suivi d'une période d'environ 1/3 de créneau (4 secondes) pendant laquelle ce nouveau bloc pourrait amener l'algorithme de choix de fourche à basculer vers une autre chaîne. Après cette même échéance, les attestations provenant de validateurs lents sont sous-pondérées par rapport à celles qui sont arrivées plus tôt. Cela favorise fortement les proposeurs et validateurs rapides lors de la détermination de la tête de la chaîne et réduit considérablement la probabilité d'une attaque d'équilibrage ou de rebond réussie. -Il convient de noter que le renforcement du proposeur à lui seul ne défend que contre les « reorgs bon marché », c'est-à-dire celles tentées par un attaquant avec une petite mise. En fait, le renforcement du proposeur lui-même peut être manipulé par des détenteurs de parts plus importantes. Les auteurs de [cet article](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) décrivent comment un attaquant détenant 7 % de la mise peut déployer ses votes de manière stratégique pour tromper les validateurs honnêtes afin qu'ils construisent sur leur fourche, éliminant ainsi un bloc honnête. Cette attaque a été conçue en supposant des conditions de latence idéales qui sont très peu probables. Les chances sont encore très faibles pour l'attaquant, et une mise plus importante signifie également plus de capital en jeu et un moyen de dissuasion économique plus fort. +Il convient de noter que le renforcement du proposeur à lui seul ne défend que contre les « reorgs bon marché », c'est-à-dire celles tentées par un attaquant avec une petite mise. En fait, le renforcement du proposeur lui-même peut être manipulé par des parties prenantes plus importantes. Les auteurs de [cet article](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) décrivent comment un attaquant détenant 7 % de la mise peut déployer ses votes de manière stratégique pour amener les validateurs honnêtes à construire sur leur fourche, éliminant ainsi un bloc honnête. Cette attaque a été conçue en supposant des conditions de latence idéales qui sont très peu probables. Les chances sont encore très faibles pour l'attaquant, et une mise plus importante signifie également plus de capital en jeu et un moyen de dissuasion économique plus fort. -Une [attaque d'équilibrage ciblant spécifiquement la règle LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853) a également été proposée, qui serait viable malgré le renforcement du proposeur. Un attaquant met en place deux chaînes concurrentes en rendant équivoque sa proposition de bloc et en propageant chaque bloc à environ la moitié du réseau, établissant un équilibre approximatif entre les fourches. Ensuite, les validateurs complices tergiversent leurs votes, en les chronométrant de sorte que la moitié du réseau reçoive leurs votes pour la Fourche `A` en premier et l'autre moitié reçoive leurs votes pour la Fourche `B` en premier. Comme la règle LMD élimine la deuxième attestation et ne garde que la première pour chaque validateur, la moitié du réseau voit des votes pour `A` et aucun pour `B`, l'autre moitié voit des votes pour `B` et aucun pour `A`. Les auteurs décrivent la règle LMD donnant à l'adversaire un « pouvoir remarquable » pour monter une attaque d'équilibrage. +Une [attaque d'équilibrage ciblant spécifiquement la règle LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853) a également été proposée, et il a été suggéré qu'elle pourrait être viable malgré le renforcement du poids du proposeur. Un attaquant met en place deux chaînes concurrentes en équivoquant proposition de bloc et en propageant chaque bloc à environ la moitié du réseau, établissant un équilibre approximatif entre les fourches. Ensuite, les validateurs complices équivoquent leurs votes, en les chronométrant de sorte que la moitié du réseau reçoive leurs votes pour la Fourche A en premier et l'autre moitié reçoive leurs votes pour la Fourche B en premier. Comme la règle LMD élimine la deuxième attestation et ne garde que la première pour chaque validateur, la moitié du réseau voit des votes pour A et aucun pour B, l'autre moitié voit des votes pour B et aucun pour A. Les auteurs décrivent la règle LMD comme donnant à l'adversaire un « pouvoir remarquable » pour monter une attaque d'équilibrage. -Ce vecteur d'attaque LMD a été fermé en [mettant à jour l'algorithme de choix de fourche](https://github.com/ethereum/consensus-specs/pull/2845) afin qu'il écarte totalement les validateurs problématiques de la considération du choix de fourche. Les validateurs problématiques voient également leur influence future réduite par l'algorithme de choix de fourche. Cela empêche l'attaque d'équilibrage décrite ci-dessus tout en conservant la résilience contre les attaques d'avalanche. +Ce vecteur d'attaque LMD a été stoppé en [mettant à jour l'algorithme de choix de fourche](https://github.com/ethereum/consensus-specs/pull/2845) afin qu'il écarte totalement les validateurs problématiques de la prise en compte du choix de fourche. Les validateurs problématiques voient également leur influence future réduite par l'algorithme de choix de fourche. Cela empêche l'attaque d'équilibrage décrite ci-dessus tout en conservant la résilience contre les attaques en avalanche. -Un autre type d'attaque, appelé [**attaques avalanche**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3), a été décrit dans un [article de mars 2022](https://arxiv.org/pdf/2203.01315.pdf). Pour mettre en place une attaque en avalanche, l'attaquant doit contrôler plusieurs proposeurs de blocs consécutifs. Dans chacun des créneaux de proposition de bloc, l'attaquant retient son bloc, les accumulant jusqu'à ce que la chaîne honnête atteigne un poids de sous-arbre égal avec les blocs retenus. Ensuite, les blocs retenus sont libérés afin qu'ils s'équivoquent au maximum. Les auteurs suggèrent que le renforcement du proposeur - la principale défense contre les attaques d'équilibrage et de rebond - ne protège pas contre certaines variantes d'attaque en avalanche. Cependant, les auteurs ont également démontré l'attaque uniquement sur une version hautement idéalisée du protocole de choix de fourche d'Ethereum (ils ont utilisé GHOST sans LMD). +Une autre catégorie d'attaques, appelée [**attaques en avalanche**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3), a été décrite dans un article de [mars 2022](https://arxiv.org/pdf/2203.01315.pdf). Pour mettre en place une attaque en avalanche, l'attaquant doit contrôler plusieurs proposeurs de blocs consécutifs. Dans chacun des créneaux de proposition de bloc, l'attaquant retient son bloc, les accumulant jusqu'à ce que la chaîne honnête atteigne un poids de sous-arbre égal à celui des blocs retenus. Ensuite, les blocs retenus sont libérés afin de les équivoquer au maximum. Les auteurs estiment que le renforcement du proposeur - la principale défense contre les attaques d'équilibrage et de rebond - ne protège pas contre certaines variantes d'attaque en avalanche. Cependant, les auteurs ont également démontré l'attaque uniquement sur une version hautement idéalisée du protocole de choix de fourche d'Ethereum (ils ont utilisé GHOST sans LMD). -L'attaque en avalanche est atténuée par la partie LMD de l'algorithme de choix de fourche LMD-GHOST. LMD signifie « dirigé par le dernier message » et cela fait référence à un tableau conservé par chaque validateur contenant le dernier message reçu des autres validateurs. Ce champ n'est mis à jour que si le nouveau message provient d'un créneau plus tardif que celui déjà dans le tableau pour un validateur particulier. En pratique, cela signifie que dans chaque créneau, le premier message reçu est celui qui est accepté et tous les messages supplémentaires sont des équivoques à ignorer. Autrement dit, les clients du consensus ne comptent pas les équivoques - ils utilisent le premier message arrivant de chaque validateur et les équivoques sont simplement écartées, empêchant les attaques en avalanche. +L'attaque en avalanche est atténuée par la partie LMD de l'algorithme de choix de fourche LMD-GHOST. LMD signifie « dirigé par le dernier message » et cela fait référence à un tableau conservé par chaque validateur contenant le dernier message reçu des autres validateurs. Ce champ n'est mis à jour que si le nouveau message provient d'un créneau plus tardif que celui qui figure déjà dans le tableau pour un validateur particulier. En pratique, cela signifie que dans chaque créneau, le premier message reçu est celui qui est accepté et tous les messages supplémentaires sont des équivoques à ignorer. Autrement dit, les clients de consensus ne comptent pas les équivoques - ils utilisent le premier message arrivant de chaque validateur et les équivoques sont simplement écartées, empêchant les attaques en avalanche. -Il existe plusieurs autres mises à niveau potentielles de la règle de choix de fourche qui pourraient ajouter à la sécurité fournie par le renforcement du proposeur. L'une est [la fusion des vues](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), où les attestateurs gèlent leur vue du choix de fourche `n` secondes avant le début d'un créneau et le proposeur aide ensuite à synchroniser la vue de la chaîne à travers le réseau. Une autre mise à niveau potentielle est la [finalité en un seul créneau](https://notes.ethereum.org/@vbuterin/single_slot_finality), qui protège contre les attaques basées sur la synchronisation des messages en finalisant la chaîne après un seul créneau. +Il existe plusieurs autres mises à niveau potentielles de la règle de choix de fourche qui pourraient renforcer la sécurité fournie par le renforcement du proposeur. L'une est la [fusion des vues](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), où les autorisateurs gèlent leur vue du choix de fourche `n` secondes avant le début d'un créneau et où le proposeur aide ensuite à synchroniser la vue de la chaîne à travers le réseau. Une autre mise à niveau potentielle est la [finalité en un seul créneau](https://notes.ethereum.org/@vbuterin/single_slot_finality), qui protège contre les attaques basées sur la synchronisation des messages en finalisant la chaîne après un seul créneau. -#### Retard de Finalité {#finality-delay} +#### Retard de finalité {#finality-delay} -[Le même document](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) qui a d'abord décrit l'attaque de réorganisation d'un bloc à faible coût a également décrit une attaque de retard de finalité (également connue sous le nom de « défaillance de disponibilité ») qui repose sur le fait que l'attaquant soit le proposeur de bloc pour un bloc à la limite d'une période. C'est crucial car ces blocs à la limite d'une période deviennent les points de contrôle que Casper FFG utilise pour finaliser des portions de la chaîne. L'attaquant retient simplement son bloc jusqu'à ce que suffisamment de validateurs honnêtes utilisent leurs votes FFG en faveur du bloc précédent à la limite d'une période comme cible de finalisation actuelle. Ensuite, ils publient leur bloc retenu. Ils attestent de leur bloc et les autres validateurs honnêtes en font autant, créant des fourches avec différents points de contrôle cibles. S'ils l'ont chronométré parfaitement, ils empêcheront la finalité car il n'y aura pas de super-majorité de deux tiers attestant de l'une ou l'autre fourche. Plus la mise est petite, plus le chronométrage doit être précis car l'attaquant contrôle directement moins d'attestations, et plus les chances que l'attaquant contrôle le validateur proposant un bloc à la limite d'une période donnée sont faibles. +Le [même article](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) qui a d'abord décrit l'attaque de réorganisation d'un bloc à faible coût a également décrit une attaque de retard de finalité (également connue sous le nom de « défaillance de disponibilité ») qui repose sur le fait que l'attaquant soit le proposeur de bloc pour un bloc à la limite d'une période. Cela est crucial car ces blocs à la limite d'une période deviennent les points de contrôle que Casper FFG utilise pour finaliser des portions de la chaîne. L'attaquant retient simplement son bloc jusqu'à ce qu'un nombre suffisant de validateurs honnêtes utilisent leurs votes FFG en faveur du bloc précédent à la limite d'une période comme cible de finalisation actuelle. Il publie ensuite le bloc retenu. Ils attestent de leur bloc et les autres validateurs honnêtes en font autant, créant des fourches avec différents points de contrôle cibles. S'ils ont choisi le bon moment, ils empêcheront la finalité car il n'y aura pas de super-majorité des 2/3 attestant de l'une ou l'autre fourche. Plus la mise est petite, plus le moment doit être bien choisi car l'attaquant contrôle directement moins d'attestations, et plus les chances que l'attaquant contrôle le validateur proposant un bloc à la limite d'une période donnée sont faibles. #### Attaques à longue portée {#long-range-attacks} -Il existe également une classe d'attaques spécifique aux blockchains preuve d'enjeu qui implique un validateur ayant participé au bloc d'origine en maintenant une fourche séparée de la blockchain à côté de la fourche honnête, convaincant éventuellement l'ensemble des validateurs honnêtes de basculer dessus à un moment opportun bien plus tard. Ce type d'attaque n'est pas possible sur Ethereum en raison du gadget de finalité qui garantit que tous les validateurs sont d'accord sur l'état de la chaîne honnête à intervalles réguliers (les « points de contrôle »). Ce mécanisme simple neutralise les attaquants à longue portée car les clients Ethereum ne réorganiseront tout simplement pas les blocs finalisés. Les nouveaux nœuds rejoignant le réseau le font en trouvant un hachage d'état récent de confiance (un « point de contrôle de [la faible subjectivité »](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)") et en l'utilisant comme un pseudo bloc d'origine pour construire par-dessus. Cela crée une « passerelle de confiance » pour un nouveau nœud entrant dans le réseau avant qu'il puisse commencer à vérifier l'information par lui-même. +Il existe également une classe d'attaques spécifique aux blockchains à preuve d'enjeu qui implique un validateur ayant participé au bloc d'origine en maintenant une fourche séparée de la blockchain à côté de la fourche honnête, convaincant éventuellement l'ensemble des validateurs honnêtes de basculer dessus à un moment opportun, bien plus tard. Ce type d'attaque n'est pas possible sur Ethereum en raison du gadget de finalité qui garantit que tous les validateurs sont d'accord sur l'état de la chaîne honnête à intervalles réguliers (les « points de contrôle »). Ce mécanisme simple neutralise les attaquants à longue portée car les clients Ethereum ne réorganiseront tout simplement pas les blocs finalisés. Les nouveaux nœuds rejoignant le réseau le font en trouvant un hachage d'état récent de confiance (un [point de contrôle de subjectivité faible](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)) et en l'utilisant comme un pseudo bloc d'origine sur lequel construire. Cela crée une « passerelle de confiance » pour un nouveau nœud entrant dans le réseau avant qu'il puisse commencer à vérifier l'information par lui-même. #### Déni de service {#denial-of-service} -Le mécanisme PoS d'Ethereum sélectionne à chaque créneau un unique validateur parmi l'ensemble des validateurs pour proposer un bloc. Cela peut être calculé en utilisant une fonction publiquement connue et il est possible pour un adversaire d'identifier le prochain proposeur de bloc légèrement à l'avance. L'attaquant peut alors inonder de requêtes le proposeur de bloc pour l'empêcher d'échanger des informations avec ses pairs. Pour le reste du réseau, il semblerait que le proposeur de bloc était hors ligne et le créneau resterait simplement vide. Cela pourrait être une forme de censure contre des validateurs spécifiques, les empêchant d'ajouter des informations à la blockchain. La mise en œuvre des élections secrètes de leader unique (SSLE) ou des élections non secrètes de leader unique atténuera les risques de DoS car seul le proposeur de bloc saura qu'il a été sélectionné et la sélection n'est pas connue à l'avance. Ceci n'est pas encore implémenté, mais est un domaine actif de [recherche et développement](https://ethresear.ch/t/secret-non-single-leader-election/11789). +Le mécanisme de preuve d'enjeu d'Ethereum sélectionne à chaque créneau un unique validateur parmi l'ensemble des validateurs pour proposer un bloc. Cela peut être calculé en utilisant une fonction publiquement connue et il est possible pour un adversaire d'identifier le prochain proposeur de bloc légèrement à l'avance. L'attaquant peut alors inonder de requêtes le proposeur de bloc pour l'empêcher d'échanger des informations avec ses pairs. Le reste du réseau aurait l'impression que le proposeur de bloc était hors ligne et que le créneau était simplement vide. Cela pourrait être une forme de censure contre des validateurs spécifiques, les empêchant d'ajouter des informations à la blockchain. La mise en œuvre des élections secrètes de leader unique (SSLE) ou des élections non secrètes de leader unique atténuera les risques d'attaque par déni de service car seul le proposeur de bloc saura qu'il a été sélectionné et la sélection n'est pas connue à l'avance. Cela n'a pas encore été implémenté, mais il s'agit d'un domaine actif de [recherche et développement](https://ethresear.ch/t/secret-non-single-leader-election/11789). -Tout cela montre à quel point il est très difficile d'attaquer avec succès Ethereum avec une petite mise. Les attaques viables décrites ici nécessitent un algorithme de choix de fourche idéalisé, des conditions réseau improbables, ou les vecteurs d'attaque ont déjà été corrigés avec des mises à jour mineures du logiciel client. Cela n'exclut pas la possibilité d'attaques zero-day existantes, mais cela montre le niveau très élevé d'aptitude technique, de connaissance de la couche de consensus et de chance nécessaire pour qu'un attaquant avec une mise minoritaire soit efficace. Du point de vue d'un attaquant, le mieux serait d'accumuler autant d'ether que possible et de revenir armé d'une plus grande proportion de la mise totale. +Tout cela montre à quel point il est très difficile d'attaquer avec succès Ethereum avec une petite mise. Les attaques viables décrites ici nécessitent un algorithme de choix de fourche idéalisé, des conditions réseau improbables, ou les vecteurs d'attaque ont déjà été corrigés avec des mises à jour mineures du logiciel client. Cela n'exclut pas la possibilité que des attaques zero-day se produisent, mais cela montre le niveau très élevé d'aptitude technique, de connaissance de la couche de consensus et de chance nécessaire pour qu'un attaquant disposant d'une mise minoritaire soit efficace. Du point de vue d'un attaquant, le mieux serait d'accumuler autant d'ether que possible et de revenir armé d'une plus grande proportion de la mise totale. -### Attaquants utilisant >= 33 % de la mise totale {#attackers-with-33-stake} +### Attaquants utilisant plus de 33 % du total des mises {#attackers-with-33-stake} -Toutes les attaques mentionnées précédemment dans cet article deviennent plus susceptibles de réussir lorsque l'attaquant dispose de plus d'ether misé pour voter, et de plus de validateurs qui pourraient être choisis pour proposer des blocs à chaque créneau. Un validateur malveillant pourrait donc viser à contrôler autant d'ether misé que possible. +Toutes les attaques mentionnées précédemment dans cet article deviennent plus susceptibles de réussir lorsque l'attaquant dispose de plus d'ether misé pour voter, et de plus de validateurs susceptibles d'être choisis pour proposer des blocs à chaque créneau. Un validateur malveillant pourrait donc viser à contrôler autant d'ether misé que possible. -33 % de l'ether misé est un seuil de référence pour un attaquant car avec plus que cela, ils ont la capacité d'empêcher la chaîne de finaliser sans avoir à contrôler finement les actions des autres validateurs. Ils peuvent simplement tous disparaître ensemble. Si 1/3 ou plus de l'ether misé atteste malicieusement ou n'atteste pas, alors une super-majorité de 2/3 ne peut exister et la chaîne ne peut finaliser. La défense contre cela est la fuite d'inactivité. Cette fuite identifie les validateurs qui n'attestent pas ou attestent contrairement à la majorité. L'ether misé par ces validateurs qui n'attestent pas est progressivement réduit jusqu'à ce qu'ils représentent collectivement moins de 1/3 du total afin que la chaîne puisse à nouveau finaliser. +33 % de l'ether misé est un point de repère pour un attaquant, car s'il dépasse ce montant, il a la capacité d'empêcher la chaîne de finaliser sans avoir à contrôler finement les actions des autres validateurs. Ils peuvent simplement tous disparaître ensemble. Si 1/3 ou plus de l'ether misé atteste ou omet d'attester de manière malveillante, la super-majorité de 2/3 ne peut exister et la chaîne ne peut finaliser. La défense contre ce phénomène est la fuite d'inactivité. Cette fuite d'inactivité identifie les validateurs qui n'attestent pas ou attestent contrairement à la majorité. L'ether misé par ces validateurs qui n'attestent pas est progressivement réduit jusqu'à ce qu'ils représentent collectivement moins de 1/3 du total afin que la chaîne puisse à nouveau finaliser. -Le but de la fuite d'inactivité est de faire finaliser à nouveau la chaîne. Cependant, l'attaquant perd aussi une partie de son ether misé. Une inactivité persistante parmi les validateurs représentant 33% de l'ether misé total est très coûteuse même si les validateurs ne sont pas sanctionnés. +Le but de la fuite d'inactivité est de faire finaliser à nouveau la chaîne. Cependant, l'attaquant perd aussi une partie de son ether misé. Une inactivité persistante de validateurs représentant 33% de l'ether misé total est très coûteuse même si les validateurs ne sont pas sanctionnés. -En supposant que le réseau Ethereum soit asynchrone (c'est-à-dire qu'il y ait des retards entre l'envoi et la réception des messages), un attaquant contrôlant 34 % de la mise totale pourrait provoquer une double finalité. C'est parce que l'attaquant peut équivoquer lorsqu'il est choisi comme producteur de bloc, puis voter deux fois avec tous ses validateurs. Cela crée une situation où une fourche de la blockchain existe, chacune avec 34 % de l'ether misé votant pour elle. Chaque fourche nécessite seulement 50 % des validateurs restants pour voter en sa faveur pour que les deux fourches soient soutenues par une super-majorité, auquel cas les deux chaînes peuvent finaliser (car 34 % des validateurs attaquants + la moitié des 66 % restants = 67 % sur chaque fourche). Les blocs concurrents devraient chacun être reçus par environ 50 % des validateurs honnêtes, donc cette attaque est viable seulement lorsque l'attaquant a un certain degré de contrôle sur la synchronisation des messages se propageant sur le réseau afin qu'ils puissent pousser la moitié des validateurs honnêtes sur chaque chaîne. L'attaquant détruirait nécessairement toute sa mise (34 % des ~10 millions d'ethers avec l'ensemble des validateurs actuels) pour réaliser cette double finalité car 34 % de leurs validateurs voteraient deux fois simultanément - une offense sanctionnable avec la pénalité de corrélation maximale. La défense contre cette attaque est le coût très élevé de destruction de 34 % de l'ether misé total. Se remettre de cette attaque nécessiterait que la communauté Ethereum se coordonne « hors chaine » et accepte de suivre l'une ou l'autre des fourches et d'ignorer l'autre. +En supposant que le réseau Ethereum soit asynchrone (c'est-à-dire qu'il y ait des retards entre l'envoi et la réception des messages), un attaquant contrôlant 34 % de la mise totale pourrait provoquer une double finalité. Cela vient de ce que l'attaquant peut équivoquer lorsqu'il est choisi comme producteur de bloc, puis voter deux fois avec tous ses validateurs. Cela crée une situation où il existe fourche de la blockchain, chacune avec 34 % de l'ether misé votant pour elle. Chaque fourche nécessite seulement 50 % des validateurs restants pour voter en sa faveur pour que les deux fourches soient soutenues par une super-majorité, auquel cas les deux chaînes peuvent finaliser (car 34 % des validateurs attaquants + la moitié des 66 % restants = 67 % sur chaque fourche). Les blocs concurrents devraient chacun être reçus par environ 50 % des validateurs honnêtes, de sorte que cette attaque est viable seulement lorsque l'attaquant a un certain degré de contrôle sur la synchronisation des messages se propageant sur le réseau, de manière à faire passer la moitié des validateurs honnêtes sur chaque chaîne. L'attaquant détruirait nécessairement toute sa mise (34 % des ~10 millions d'ethers avec l'ensemble des validateurs actuels) pour réaliser cette double finalité car 34 % de leurs validateurs voteraient deux fois simultanément - une offense sanctionnable avec la pénalité de corrélation maximale. La défense contre cette attaque est le coût très élevé que représente la destruction de 34 % de l'ether misé total. Se remettre de cette attaque nécessiterait que la communauté Ethereum se coordonne « hors chaine » et accepte de suivre l'une ou l'autre des fourches et d'ignorer l'autre. -### Attaquants utilisant ~50% de la mise totale {#attackers-with-50-stake} +### Attaquants utilisant environ 50 % du total des mises {#attackers-with-50-stake} -Avec 50 % de l'ether misé, un groupe de validateurs malicieux pourrait théoriquement diviser la chaîne en deux fourches de taille égale, puis simplement utiliser leur mise complète de 50 % pour voter contrairement à l'ensemble des validateurs honnêtes, maintenant ainsi les deux fourches et empêchant la finalité. La fuite d'inactivité sur les deux fourches conduirait finalement les deux chaînes à finaliser. À ce stade, la seule option est de se replier sur une récupération sociale. +Avec 50 % de l'ether misé, un groupe de validateurs malveillants pourrait théoriquement diviser la chaîne en deux fourches de taille égale, puis simplement utiliser leur mise complète de 50 % pour voter contrairement à l'ensemble des validateurs honnêtes, maintenant ainsi les deux fourches et empêchant la finalité. La fuite d'inactivité sur les deux fourches conduirait finalement les deux chaînes à finaliser. À ce stade, la seule option est de se replier sur une récupération sociale. -Il est très improbable qu'un groupe de validateurs malveillants puisse contrôler constamment précisément 50 % du total de la mise compte tenu d'un certain degré de fluctuation dans les nombres de validateurs honnêtes, de la latence du réseau, etc. - le coût énorme d'une telle attaque combiné à la faible probabilité de succès semble être un fort effet dissuasif pour un attaquant rationnel, d'autant plus qu'un petit investissement supplémentaire pour obtenir _plus de_ 50 % débloque beaucoup un pouvoir bien plus grand. +Il est très improbable qu'un groupe de validateurs malveillants puisse contrôler constamment précisément 50 % du total de la mise compte tenu d'un certain degré de fluctuation du nombre de validateurs honnêtes, de la latence du réseau, etc. - le coût énorme d'une telle attaque combiné à la faible probabilité de succès semble être un facteur fort dissuasif pour un attaquant rationnel, surtout lorsqu'un petit investissement supplémentaire pour obtenir _plus_ de 50 % débloque beaucoup plus de pouvoir. -Avec >50 % de la mise totale, l'attaquant pourrait dominer l'algorithme de choix de fourche. Dans ce cas, l'attaquant serait en mesure d'attester avec le vote majoritaire, lui donnant suffisamment de contrôle pour effectuer de courts réarrangements sans avoir besoin de tromper les clients honnêtes. Les validateurs honnêtes suivraient car leur algorithme de choix de fourche verrait également la chaîne préférée de l'attaquant comme la plus lourde, donc la chaîne pourrait finaliser. Cela permet à l'attaquant de censurer certaines transactions, d'effectuer de courts réarrangements et d'extraire la valeur MEV maximale en réorganisant les blocs à leur avantage. La défense contre cela est l'énorme coût d'une mise majoritaire (actuellement un peu moins de 19 milliards de dollars USD) qui est mis en danger par un attaquant car la couche sociale est susceptible d'intervenir et d'adopter une fourche minoritaire honnête, dévalorisant considérablement la mise de l'attaquant. +Avec plus de 50 % de la mise totale, l'attaquant pourrait dominer l'algorithme de choix de la fourche. Dans ce cas, l'attaquant serait en mesure d'attester avec le vote majoritaire, lui donnant suffisamment de contrôle pour effectuer de courtes réorganisations sans avoir besoin de tromper les clients honnêtes. Les validateurs honnêtes suivraient le mouvement, car leur algorithme de choix de fourche verrait également la chaîne privilégiée par l'attaquant comme étant la plus lourde, de sorte que la chaîne pourrait finaliser. Cela permet à l'attaquant de censurer certaines transactions, d'effectuer de courtes réorganisations et d'extraire la valeur MEV maximale en réorganisant les blocs à leur avantage. La défense repose sur l'énorme coût d'une mise majoritaire (actuellement un peu moins de 19 milliards de dollars USD) qui est mis en danger par un attaquant car la couche sociale est susceptible d'intervenir et d'adopter une fourche minoritaire honnête, dévalorisant considérablement la mise de l'attaquant. -### Attaquants utilisant >=66 % de la mise totale {#attackers-with-66-stake} +### Attaquants utilisant plus de 66 % du total des mises {#attackers-with-66-stake} -Un attaquant disposant de 66 % ou plus de l'ether total misé peut finaliser sa chaîne préférée sans avoir à contraindre aucun validateur honnête. L'attaquant peut simplement voter pour sa fourche préférée puis la finaliser, simplement parce qu'il peut voter avec une super-majorité malhonnête. En tant que détenteur de la super-majorité des enjeux, l'attaquant contrôlerait toujours le contenu des blocs finalisés, avec le pouvoir de dépenser, rembobiner et dépenser à nouveau, censurer certaines transactions et réorganiser la chaîne à volonté. En achetant de l'ether supplémentaire pour contrôler 66 % plutôt que 51 %, l'attaquant achète effectivement la capacité d'effectuer des réarrangements ex post et des réversions de finalité (c'est-à-dire de changer le passé ainsi que de contrôler l'avenir). Les seules véritables défenses ici sont l'énorme coût de 66 % de l'ether total misé, et la possibilité de se replier sur la couche sociale pour coordonner l'adoption d'une fourche alternative. Nous pouvons explorer cela plus en détail dans la section suivante. +Un attaquant disposant de 66 % ou plus de l'ether total misé peut finaliser sa chaîne préférée sans avoir à contraindre aucun validateur honnête. L'attaquant peut simplement voter pour sa fourche préférée puis la finaliser, simplement parce qu'il peut voter avec une super-majorité malhonnête. En tant que détenteur de la super-majorité des enjeux, l'attaquant contrôlerait toujours le contenu des blocs finalisés, avec le pouvoir de dépenser, rembobiner et dépenser à nouveau, censurer certaines transactions et réorganiser la chaîne à volonté. En achetant de l'ether supplémentaire pour contrôler 66 % plutôt que 51 %, l'attaquant achète effectivement la capacité d'effectuer des réarrangements ex post et des réversions de finalité (c'est-à-dire de changer le passé ainsi que de contrôler l'avenir). Les seules véritables défenses ici sont l'énorme coût de 66 % de l'ether total misé, et la possibilité de se replier sur la couche sociale pour coordonner l'adoption d'une fourche alternative. Nous verrons cela plus en détail dans la section suivante. -## Les Gens : la dernière ligne de défense {#people-the-last-line-of-defense} +## Les personnes : la dernière ligne de défense {#people-the-last-line-of-defense} -Si les validateurs malhonnêtes parviennent à finaliser leur version préférée de la chaîne, la communauté Ethereum se retrouve dans une situation difficile. La chaîne canonique intègre une section malhonnête gravée dans son histoire, tandis que les validateurs honnêtes peuvent finir par être sanctionnés pour avoir attesté d'une chaîne alternative (honnête). Notez qu'une chaîne finalisée mais incorrecte pourrait également résulter d'un bug dans un client majoritaire. En fin de compte, le recours ultime est de s'appuyer sur la couche sociale - la Couche 0 - pour résoudre la situation. +Si les validateurs malhonnêtes parviennent à finaliser leur version préférée de la chaîne, la communauté Ethereum se retrouve dans une situation difficile. La chaîne canonique intègre une section malhonnête gravée dans son histoire, tandis que les validateurs honnêtes peuvent être sanctionnés pour avoir attesté d'une chaîne alternative (honnête). Notez qu'une chaîne finalisée mais incorrecte pourrait également résulter d'un bug dans un client majoritaire. En fin de compte, le recours ultime est de s'appuyer sur la couche sociale - la Couche 0 - pour résoudre la situation. -L'une des forces du consensus PoS d'Ethereum est qu'il existe toute une [gamme de stratégies défensives](https://youtu.be/1m12zgJ42dI?t=1712) que la communauté peut utiliser face à une attaque. Une réponse minimale pourrait être d'exclure de force les validateurs attaquants du réseau sans aucune pénalité supplémentaire. Pour réintégrer le réseau, l'attaquant devrait rejoindre une file d'attente d'activation garantissant que l'ensemble des validateurs croît progressivement. Par exemple, l'ajout de suffisamment de validateurs pour doubler la quantité d'ether misée prend environ 200 jours, offrant ainsi aux validateurs honnêtes 200 jours avant que l'attaquant ne puisse tenter une nouvelle attaque à 51 %. Cependant, la communauté pourrait également décider de pénaliser l'attaquant plus sévèrement, en révoquant les récompenses précédentes ou en brûlant une partie (jusqu'à 100 %) de leur capital misé. +L'une des forces du consensus de la preuve d'enjeu d'Ethereum est qu'il existe toute une [gamme de stratégies défensives](https://youtu.be/1m12zgJ42dI?t=1712) que la communauté peut utiliser face à une attaque. Une réponse minimale pourrait être d'exclure de force les validateurs attaquants du réseau sans aucune pénalité supplémentaire. Pour réintégrer le réseau, l'attaquant devrait rejoindre une file d'attente d'activation garantissant que l'ensemble des validateurs s'accroît progressivement. Par exemple, l'ajout d'un nombre suffisant de validateurs pour doubler la quantité d'ether misée prend environ 200 jours, offrant ainsi aux validateurs honnêtes 200 jours avant que l'attaquant ne puisse tenter une nouvelle attaque à 51 %. Cependant, la communauté pourrait également décider de pénaliser l'attaquant plus sévèrement, en révoquant les récompenses précédentes ou en brûlant une partie (jusqu'à 100 %) de son capital mis en jeu. -Quelle que soit la pénalité imposée à l'attaquant, la communauté doit également décider ensemble si la chaîne malhonnête, bien que favorisée par l'algorithme de choix de fourche codé dans les clients Ethereum, est en réalité invalide et que la communauté devrait construire sur la chaîne honnête à la place. Les validateurs honnêtes pourraient collectivement accepter de construire sur une fourche acceptée par la communauté de la blockchain Ethereum qui aurait, par exemple, bifurqué de la chaîne canonique avant le début de l'attaque ou aurait les validateurs attaquants supprimés de force. Les validateurs honnêtes seraient incités à construire sur cette chaîne car ils éviteraient les pénalités qui leur seraient infligées pour ne pas avoir attesté (à juste titre) de la chaîne de l'attaquant. Les échanges, les points d'entrée et les applications construites sur Ethereum préféreraient probablement être sur la chaîne honnête et suivraient les validateurs honnêtes vers la blockchain honnête. +Quelle que soit la pénalité imposée à l'attaquant, la communauté doit également décider ensemble si la chaîne malhonnête, bien que favorisée par l'algorithme de choix de fourche codé dans les clients Ethereum, est en réalité invalide et que la communauté devrait plutôt construire sur la chaîne honnête. Les validateurs honnêtes pourraient collectivement accepter de construire sur une fourche acceptée par la communauté de la blockchain Ethereum qui aurait, par exemple, bifurqué de la chaîne canonique avant le début de l'attaque ou dont les validateurs attaquants seraient supprimés de force. Les validateurs honnêtes seraient incités à construire sur cette chaîne car ils éviteraient les pénalités qui leur seraient infligées pour ne pas avoir attesté (à juste titre) de la chaîne de l'attaquant. Les échanges, les points d'entrée et les applications construites sur Ethereum préféreraient probablement être sur la chaîne honnête et suivraient les validateurs honnêtes vers la blockchain honnête. -Cependant, il s'agirait d'un défi important en matière de gouvernance. Certains utilisateurs et validateurs subiraient inévitablement des pertes à la suite du retour à la chaîne honnête, les transactions dans les blocs validés après l'attaque pourraient potentiellement être annulées, perturbant la couche d'application, et cela remettrait tout simplement en question l'éthique de certains utilisateurs qui ont tendance à croire que « le code est la loi ». Les échanges et les applications auront très probablement lié des actions hors chaîne à des transactions en chaîne qui pourraient maintenant être annulées, déclenchant une cascade de rétractations et de révisions qui seraient difficiles à démêler équitablement, surtout si les gains mal acquis ont été mélangés, déposés dans la DeFi ou d'autres dérivés avec des effets secondaires pour les utilisateurs honnêtes. Certains utilisateurs, peut-être même institutionnels, auraient certainement déjà bénéficié de la chaîne malhonnête, soit par habileté, soit par hasard, et pourraient s'opposer à une fourche pour protéger leurs gains. Il y a eu des appels à répéter la réponse de la communauté aux attaques >51% afin qu'une mitigation coordonnée sensée puisse être exécutée rapidement. Il y a des discussions utiles de Vitalik sur ethresear.ch [ici](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) et [là](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363) et sur Twitter [ici](https://twitter.com/skylar_eth/status/1551798684727508992?s=20&t=oHZ1xv8QZdOgAXhxZKtHEw). L'objectif d'une réponse sociale coordonnée devrait être de punir très précisément l'attaquant et de minimiser les effets pour les autres utilisateurs. +Cependant, il s'agirait d'un défi important en matière de gouvernance. Certains utilisateurs et validateurs subiraient inévitablement des pertes à la suite du retour à la chaîne honnête, les transactions dans les blocs validés après l'attaque pourraient potentiellement être annulées, perturbant la couche d'application, et cela remettrait tout simplement en question l'éthique de certains utilisateurs qui ont tendance à croire que « le code est la loi ». Les échanges et les applications auront très probablement établi un lien entre des actions hors chaîne et des transactions en chaîne qui pourraient maintenant être annulées, déclenchant une cascade de rétractations et de révisions qui seraient difficiles à démêler équitablement, surtout si les gains mal acquis ont été mélangés, déposés dans la DeFi ou d'autres dérivés ayant des effets secondaires pour les utilisateurs honnêtes. Certains utilisateurs, peut-être même institutionnels, auraient certainement déjà bénéficié de la chaîne malhonnête, soit par habileté, soit par hasard, et pourraient s'opposer à une fourche pour protéger leurs gains. Il y a eu des appels à répéter la réponse de la communauté face aux attaques à plus de 51 % afin qu'une réaction coordonnée et raisonnable puisse être exécutée rapidement. Vitalik a mené des discussions utiles sur ethresear.ch [ici](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) et [ici](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363) et sur Twitter ici. L'objectif d'une réponse sociale coordonnée devrait être de punir très précisément l'attaquant et de minimiser les effets sur les autres utilisateurs. -La gouvernance est déjà un sujet complexe. Gérer une réponse d'urgence de la Couche-0 à une chaîne finalisant malhonnêtement serait sans aucun doute un défi pour la communauté Ethereum, mais cela [s'est produit](/history/#dao-fork-summary) - [deux fois](/history/#tangerine-whistle) - dans l'histoire d'Ethereum). +La gouvernance est déjà un sujet complexe. Gérer une réponse d'urgence de la couche 0 à une chaîne finalisée malhonnête serait sans aucun doute un défi pour la communauté Ethereum, mais [cela s'est produit](/history/#dao-fork-summary) - [deux fois](/history/#tangerine-whistle) - dans l'histoire d'Ethereum). -Néanmoins, il y a quelque chose d'assez satisfaisant à ce que le dernier recours se situe dans le monde réel. En fin de compte, même avec cette pile technologique immense au-dessus de nous, si le pire devait arriver, de vraies personnes devraient se coordonner pour s'en sortir. +Néanmoins, il y a quelque chose d'assez satisfaisant à ce que le dernier recours se situe dans le monde réel. En fin de compte, même avec cette pile technologique immense au-dessus de nous, si le pire devait arriver, des personnes réelles devraient se concerter pour s'en sortir. ## Résumé {#summary} -Cette page explore certaines des façons dont les attaquants pourraient tenter d'exploiter le protocole de consensus de la preuve d'enjeu d'Ethereum. Les réorganisations et les retards de finalité ont été examinés pour des attaquants possédant des proportions croissantes de l'ether total misé. En général, un attaquant plus riche a plus de chances de réussir car sa mise se traduit par un pouvoir de vote qu'il peut utiliser pour influencer le contenu des futurs blocs. À certains seuils de mise en ether, le pouvoir de l'attaquant s'accroît : +Cette page explore certaines des façons dont les attaquants pourraient tenter d'exploiter le protocole de consensus de la preuve d'enjeu d'Ethereum. Les réorganisations et les retards de finalité ont été examinés pour des attaquants possédant des proportions croissantes de l'ether total misé. En général, un attaquant plus riche a plus de chances de réussir car sa mise se traduit par un pouvoir de vote qu'il peut utiliser pour influencer le contenu des futurs blocs. À partir d'un certain seuil d'éther mis en jeu, le pouvoir de l'attaquant s'accroît : 33 % : retard de finalité @@ -145,19 +148,19 @@ Cette page explore certaines des façons dont les attaquants pourraient tenter d 66 % : retard de finalité, double finalité, censure, contrôle sur l'avenir et le passé de la blockchain -Il existe également une gamme d'attaques plus sophistiquées nécessitant de petites quantités d'ether misé mais reposant sur un attaquant très sophistiqué ayant un contrôle précis sur le moment des messages pour influencer l'ensemble des validateurs honnêtes en leur faveur. +Il existe également une gamme d'attaques plus sophistiquées nécessitant de petites quantités d'ether misé mais reposant sur un attaquant très sophistiqué ayant un contrôle précis sur la synchronisation des messages pour faire basculer l'ensemble des validateurs honnêtes en sa faveur. -Dans l'ensemble, malgré ces potentiels vecteurs d'attaque, le risque d'une attaque réussie est faible, certainement plus faible que les équivalents de la preuve de travail. Cela est dû au coût énorme de l'ether misé mis en jeu par un attaquant cherchant à submerger les validateurs honnêtes avec leur pouvoir de vote. La couche d'incitation intégrée « la carotte et le bâton » protège contre la plupart des malversations, surtout pour les attaquants à faible mise. Des attaques de déséquilibrage et d'équilibrage plus subtiles sont également peu susceptibles de réussir car les conditions réelles du réseau rendent le contrôle fin de la livraison des messages à des sous-ensembles spécifiques de validateurs très difficiles à réaliser, et les équipes de clients ont rapidement fermé les vecteurs d'attaque connus de déséquilibrage, d'équilibrage et d'avalanche avec des correctifs simples. +Dans l'ensemble, malgré ces potentiels vecteurs d'attaque, le risque d'une attaque réussie est faible, certainement plus faible que les équivalents de la preuve de travail. Cela est dû au coût énorme de l'ether misé mis en jeu par un attaquant cherchant à submerger les validateurs honnêtes avec son pouvoir de vote. La couche d'incitation intégrée (« la carotte et le bâton ») protège contre la plupart des malversations, surtout face aux attaquants à faible mise. Des attaques de déséquilibrage et d'équilibrage plus subtiles sont également peu susceptibles de réussir car les conditions réelles du réseau rendent le contrôle minutieux de la livraison des messages à des sous-ensembles spécifiques de validateurs très difficiles à réaliser. Les équipes de clients ont rapidement fermé les vecteurs d'attaque de déséquilibrage, d'équilibrage et d'avalanche connus à l'aide de simples correctifs. -Les attaques à 34%, 51% ou 66% nécessiteraient probablement une coordination sociale externe pour être résolues. Bien que cela soit probablement douloureux pour la communauté, la capacité d'une communauté à répondre de manière externe est un puissant moyen de dissuasion pour un attaquant. La couche sociale d'Ethereum est le dernier rempart - une attaque techniquement réussie pourrait toujours être neutralisée par la communauté acceptant d'adopter une fourchette honnête. Il y aurait une course entre l'attaquant et la communauté Ethereum - les milliards de dollars dépensés pour une attaque à 66 % seraient probablement anéantis par une attaque de coordination sociale réussie si elle était livrée assez rapidement, laissant l'attaquant avec de lourds sacs d'ether misé et illiquide sur une chaîne malhonnête connue et ignorée par la communauté Ethereum. La probabilité que cela finisse par être rentable pour l'attaquant est suffisamment faible pour être un moyen de dissuasion efficace. C'est pourquoi investir dans le maintien d'une couche sociale cohérente avec des valeurs étroitement alignées est si important. +Les attaques à 34 %, 51 % ou 66 % nécessiteraient probablement une coordination sociale externe pour être résolues. Bien que cela soit probablement douloureux pour la communauté, la capacité pour une communauté de répondre de manière externe est un puissant moyen de dissuasion pour un attaquant. La couche sociale d'Ethereum est le dernier rempart - une attaque techniquement réussie pourrait toujours être neutralisée par la communauté en acceptant d'adopter une fourchette honnête. Il se produirait alors une course entre l'attaquant et la communauté Ethereum - les milliards de dollars dépensés pour une attaque à 66 % seraient probablement anéantis par une attaque de coordination sociale réussie si celle-ci était menée assez rapidement, laissant l'attaquant avec de lourds sacs d'ether misé et non liquide sur une chaîne malhonnête connue et ignorée par la communauté Ethereum. La probabilité que cela finisse par être rentable pour l'attaquant est suffisamment faible pour constituer un moyen de dissuasion efficace. C'est pourquoi investir dans le maintien d'une couche sociale cohérente et affichant des valeurs étroitement alignées est si important. -## Complément d'information {#further-reading} +## En savoir plus {#further-reading} - [Version plus détaillée de cette page](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) -- [Vitalik à propos de la finalité du règlement](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) -- [Article sur LMD GHOST](https://arxiv.org/abs/2003.03052) -- [Article sur Casper-FFG](https://arxiv.org/abs/1710.09437) -- [Article sur Gasper](https://arxiv.org/pdf/2003.03052.pdf) -- [Spécifications du consensus sur l'augmentation du poids du proposant](https://github.com/ethereum/consensus-specs/pull/2730) -- [Attaques de rebond sur ethresear.ch](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) -- [Recherche SSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) +- [Vitalik sur la finalité du règlement](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) +- [article LMD GHOST](https://arxiv.org/abs/2003.03052) +- [Article Casper-FFG](https://arxiv.org/abs/1710.09437) +- [Article Gasper](https://arxiv.org/pdf/2003.03052.pdf) +- [Spécifications du consensus d'augmentation du poids du proposeur](https://github.com/ethereum/consensus-specs/pull/2730) +- [Attaque de rebonds sur ethresear.ch](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) +- [recherche SSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md index aa05b4e3543..bf31079b7ad 100644 --- a/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md +++ b/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md @@ -58,7 +58,7 @@ Au-delà des attaques à 51 %, les acteurs mal intentionnés pourraient égaleme - attaques de longue portée (bien que le gadget de finalité neutralise ce vecteur d'attaque) - réorganisations de courte portée (bien que les délais d'accélération et d'attestation de la proposition atténuent ce problème) - attaques par rebond et par équilibrage (également atténuées par l'augmentation du nombre de propositions, et ces attaques n'ont de toute façon été démontrées que dans des conditions de réseau idéales) -- attaques avalanche (neutralisé par la règle des algorithmes de choix de fourche qui consiste à ne prendre en compte que le dernier message) +- attaques en avalanche (neutralisées par la règle des algorithmes de choix de fourche qui consiste à ne prendre en compte que le dernier message) Dans l'ensemble, il a été démontré que la preuve d'enjeu, telle qu'elle est implémentée sur Ethereum, est plus sûre économiquement que la preuve de travail. diff --git a/public/content/translations/fr/developers/docs/gas/index.md b/public/content/translations/fr/developers/docs/gas/index.md index cca651f2f86..df29d4c6f6a 100644 --- a/public/content/translations/fr/developers/docs/gas/index.md +++ b/public/content/translations/fr/developers/docs/gas/index.md @@ -1,5 +1,6 @@ --- title: Gaz et frais +metaTitle: "Gaz et frais Ethereum : aperçu technique" description: lang: fr --- diff --git a/public/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md index a47b1868ab2..aee82e31cc8 100644 --- a/public/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md +++ b/public/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md @@ -23,7 +23,7 @@ Pour un nœud Ethereum, la multiaddr contient l'identifiant du nœud (un hachage ## Enode {#enode} -Un enode est un moyen d'identifier un nœud Ethereum en utilisant un format d'adresse URL. L'identifiant hexadécimal de nœud est encodé dans la partie nom d'utilisateur de l'URL, séparée de l'hôte à l'ide du signe @. Le nom d'hôte ne peut être donné qu'en tant qu'adresse IP, les noms DNS ne sont pas autorisés. Le port dans la section nom d'hôte est le port d'écoute TCP. Si les ports TCP et UDP (découverte) diffèrent, le port UDP est spécifié comme paramètre de requête "discport" +Un enode est un moyen d'identifier un nœud Ethereum en utilisant un format d'adresse URL. L'identifiant hexadécimal de nœud est encodé dans la partie nom d'utilisateur de l'URL, séparée de l'hôte à l'ide du signe @. Le nom d'hôte ne peut être donné qu'en tant qu'adresse IP, les noms DNS ne sont pas autorisés. Le port dans la section nom d'hôte est le port d'écoute TCP. Si les ports TCP et UDP (découverte) diffèrent, le port UDP est spécifié comme paramètre de requête "discport". Dans l'exemple suivant, l'URL du nœud décrit un nœud avec une adresse IP `10.3.58.`, port TCP `30303` et port de découverte UDP `30301`. @@ -35,4 +35,6 @@ Les registres de Nœuds Ethereum (ENRs en anglais) sont un format standardisé p ## Complément d'information {#further-reading} -[EIP-778 : Registres de Nœuds Ethereum (ENR)](https://eips.ethereum.org/EIPS/eip-778) [Adresses réseau sur Ethereum](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) [LibP2P : Multiaddr-Enode-ENR ?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) +- [EIP-778 : enregistrements de nœuds Ethereum (ENR)](https://eips.ethereum.org/EIPS/eip-778) +- [Adresses réseau dans Ethereum](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) +- [LibP2P : Multiaddr-Enode-ENE ?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md index f4093493e8e..9c114bce9cb 100644 --- a/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ Les avantages de cette conception de réseau sont : - réduire la dépendance vis-à-vis des fournisseurs centralisés - réduire l'utilisation de la bande passante Internet - synchronisation minimale ou nulle -- Accessible aux appareils à ressources limitées (<1 GB RAM, < 100 MB d'espace disque, 1 CPU) +- Accessible aux appareils à ressources limitées (\<1 GB RAM, \<100 MB d'espace disque, 1 CPU) Le diagramme ci-dessous montre les fonctions des clients existants qui peuvent être fournies par le Portal Network, permettant aux utilisateurs d'accéder à ces fonctions sur des appareils à très faibles ressources. diff --git a/public/content/translations/fr/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/archive-nodes/index.md index 808f93a380d..fa7df83693a 100644 --- a/public/content/translations/fr/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/fr/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ Outre les [recommandations générales pour l'exécution d'un nœud](/developers Assurez-vous toujours de vérifier les exigences matérielles pour un mode spécifique dans la documentation du client. L'espace disque est la principale exigence pour les nœuds d'archive. Selon le client, cela varie de 3 To à 12 To. Même si le disque dur peut être considéré comme une meilleure solution pour de grandes quantités de données, sa synchronisation et la mise à jour constante de la tête de chaîne nécessiteront des disques SSD. Les disques [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) sont assez bons mais ils doivent être d'une qualité fiable, au moins [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). Les disques peuvent être installés dans un ordinateur de bureau ou un serveur avec suffisamment d'emplacements. Ces appareils dédiés sont idéaux pour exécuter un nœud à haute disponibilité. Il est tout à fait possible de l'exécuter sur un ordinateur portable, mais la portabilité entraînera un coût supplémentaire. -Toutes les données doivent tenir dans un seul volume, donc les disques doivent être joints, par ex. avec [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) ou [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html). Il pourrait également être utile d'envisager d'utiliser [ZFS](https://en.wikipedia.org/wiki/ZFS) car il prend en charge « Copy-on-write » qui garantit que les données sont correctement écrites sur le disque sans aucune erreur de bas niveau. +Toutes les données doivent tenir dans un seul volume, donc les disques doivent être joints, par ex. avec [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) ou LVM. Il pourrait également être utile d'envisager d'utiliser [ZFS](https://en.wikipedia.org/wiki/ZFS) car il prend en charge « Copy-on-write » qui garantit que les données sont correctement écrites sur le disque sans aucune erreur de bas niveau. Pour plus de stabilité et de sécurité dans la prévention de la corruption accidentelle de la base de données, en particulier dans une configuration professionnelle, envisagez d'utiliser la [mémoire ECC](https://en.wikipedia.org/wiki/ECC_memory) si votre système le prend en charge. Il est généralement conseillé d'avoir la même quantité de RAM que pour un nœud complet, mais davantage de RAM peut accélérer la synchronisation. diff --git a/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md index 4a8477bd547..b72aea62735 100644 --- a/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md @@ -79,6 +79,8 @@ Pour résoudre le problème de la diversité des clients, il ne suffit pas que l [Prysm](https://docs.prylabs.network/docs/getting-started) +[Grandine](https://docs.grandine.io/) + Les utilisateurs techniques peuvent aider à accélérer ce processus en rédigeant plus de tutoriels et de documentation pour les clients minoritaires et ainsi encourager leurs pairs à migrer loin des clients dominants. Des guides pour basculer vers un client de consensus minoritaire sont disponibles sur [clientdiversity.org](https://clientdiversity.org/). ## Tableaux de bord relatif à la diversité des clients {#client-diversity-dashboards} diff --git a/public/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md index 2dc92e05997..43b5e7e728e 100644 --- a/public/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md +++ b/public/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md @@ -311,7 +311,7 @@ nœud reth \ --authrpc.port 8551 ``` -Consultez [Configurer Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) pour en savoir plus sur les répertoires de données par défaut. [La documentation de Reth](https://reth.rs/run/mainnet.html) contient des options supplémentaires et des détails de configuration. +Voir [Configurer Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) pour en savoir plus sur les répertoires de données par défaut. [La documentation de Reth](https://reth.rs/run/mainnet.html) contient des options supplémentaires et des détails de configuration. #### Démarrer le client de consensus {#starting-the-consensus-client} diff --git a/public/content/translations/fr/developers/docs/programming-languages/elixir/index.md b/public/content/translations/fr/developers/docs/programming-languages/elixir/index.md index cf9e4678c1c..8aa8af88a20 100644 --- a/public/content/translations/fr/developers/docs/programming-languages/elixir/index.md +++ b/public/content/translations/fr/developers/docs/programming-languages/elixir/index.md @@ -16,8 +16,8 @@ Utilisez Ethereum pour créer des applications décentralisées (ou "DApps") qui Besoin d’une approche plus élémentaire ? Consultez [ethereum.org/learn](/learn/) ou [ethereum.org/developers](/developers/). - [Blockchain expliquée](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) -- [Comprendre les contrats intelligents](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) -- [Écrivez votre premier contrat intelligent](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Comprendre les contrats intelligents (https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Écrivez votre premier contrat intelligent (https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) - [Apprenez comment compiler et déployer Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) ## Articles pour débutants {#beginner-articles} diff --git a/public/content/translations/fr/developers/docs/scaling/state-channels/index.md b/public/content/translations/fr/developers/docs/scaling/state-channels/index.md new file mode 100644 index 00000000000..e2f4e5a5a9d --- /dev/null +++ b/public/content/translations/fr/developers/docs/scaling/state-channels/index.md @@ -0,0 +1,261 @@ +--- +title: Canaux d'état +description: Une introduction aux canaux d'état et canaux de paiement en tant que solution de mise à l'échelle actuellement utilisée par la communauté Ethereum. +lang: fr +sidebarDepth: 3 +--- + +Les canaux d'état permettent aux participants d'effectuer des transactions hors chaîne en toute sécurité tout en réduisant au minimum l'interaction avec le réseau principal d'Ethereum. Les pairs du canal peuvent effectuer un nombre arbitraire de transactions hors chaîne tout en ne soumettant que deux transactions en chaîne pour ouvrir et fermer le canal. Cela permet un débit de transaction extrêmement élevé et entraîne une réduction des coûts pour les utilisateurs. + +## Prérequis {#prerequisites} + +Vous devrez avoir lu et compris nos pages sur l'[évolutivité d'Ethereum](/developers/docs/scaling/) et les [couches de niveau 2](/layer-2/). + +## Que sont les canaux ? {#what-are-channels} + +Les blockchains publiques, telles qu'Ethereum, sont confrontées à des problèmes d'évolutivité en raison de leur architecture distribuée : les transactions sur la chaîne doivent être exécutées par tous les nœuds. Les nœuds doivent être en mesure de traiter le volume de transactions d'un bloc avec un matériel modeste, imposant une limite au débit des transactions afin de préserver la décentralisation du réseau. Les canaux de la blockchain résolvent ce problème en permettant aux utilisateurs d'interagir hors chaîne tout en s'appuyant sur la sécurité de la chaîne principale pour le règlement final. + +Les canaux sont de simples protocoles de pair à pair qui permettent à deux parties d'effectuer de nombreuses transactions entre elles, puis de ne publier que les résultats finaux sur la blockchain. Le canal utilise la cryptographie pour démontrer que les données récapitulatives qu'il génère sont réellement le résultat d'un ensemble valide de transactions intermédiaires. Une ["multi-signature"](/developers/docs/smart-contracts/#multisig) garantit que les transactions sont signées par les bonnes personnes. + +Avec les canaux, les changements d'état sont exécutés et validés par les parties intéressées, ce qui minimise les calculs sur la couche d'exécution d'Ethereum. Cela réduit la congestion sur Ethereum et augmente la vitesse de traitement des transactions pour les utilisateurs. + +Chaque canal est géré par un [contrat intelligent multi-signature](/developers/docs/smart-contracts/#multisig) fonctionnant sur Ethereum. Pour ouvrir un canal, les participants déploient le contrat de canal sur la chaîne et y déposent des fonds. Les deux parties signent collectivement une mise à jour d'état pour initialiser l'état du canal, après quoi elles peuvent effectuer des transactions rapidement et librement hors chaîne. + +Pour fermer le canal, les participants soumettent le dernier état convenu du canal sur la chaîne. Ensuite, le contrat intelligent distribue les fonds bloqués en fonction du solde de chaque participant dans l'état final du canal. + +Les canaux pair-à-pair sont particulièrement utiles dans les situations où certains participants prédéfinis souhaitent effectuer des transactions à une fréquence élevée sans encourir de frais généraux visibles. Les canaux de la blockchain se divisent en deux catégories : les **canaux de paiement** et les **canaux d'état**. + +## Les canaux de paiement {#payment-channels} + +La meilleure façon de décrire un canal de paiement est de dire qu'il s'agit d'un « registre à double sens » tenu collectivement par deux utilisateurs. Le solde initial du registre est la somme des dépôts bloqués dans le contrat sur la chaîne pendant la phase d'ouverture du canal. Les transferts de canaux de paiement peuvent être effectués instantanément et sans l'intervention de la blockchain elle-même, à l'exception d'une création initiale unique sur la chaîne et d'une fermeture éventuelle du canal. + +Les mises à jour du solde du registre (c'est-à-dire l'état du canal de paiement) nécessitent l'approbation de toutes les parties du canal. Une mise à jour du canal, signée par tous les participants au canal, est considérée comme finalisée, un peu comme une transaction sur Ethereum. + +Les canaux de paiement ont été parmi les premières solutions de mise à l'échelle conçues pour minimiser l'activité coûteuse des interactions simples des utilisateurs sur la chaîne (par exemple, les transferts d'ETH, les échanges atomiques, les micropaiements). Les participants au canal peuvent effectuer un nombre illimité de transactions instantanées et sans frais entre eux, tant que la somme nette de leurs transferts ne dépasse pas les jetons déposés. + +## Les canaux d'état {#state-channels} + +En dehors de la prise en charge des paiements hors chaîne, les canaux de paiement ne se sont pas révélés utiles pour gérer la logique générale de transition d'état. Les canaux d'état ont été créés pour résoudre ce problème et rendre les canaux utiles pour la mise à l'échelle du calcul à usage général. + +Les canaux d'état ont néanmoins beaucoup de points communs avec les canaux de paiement. Par exemple, les utilisateurs interagissent en échangeant des messages cryptographiquement signés (transactions), que les autres participants au canal doivent également signer. Si une mise à jour d'état proposée n'est pas signée par tous les participants, elle est considérée comme invalide. + +Cependant, en plus de contenir les soldes de l'utilisateur, le canal suit également l'état actuel du stockage du contrat (c'est-à-dire les valeurs des variables du contrat). + +Cela rend possible l'exécution d'un contrat intelligent hors chaîne entre deux utilisateurs. Dans ce scénario, les mises à jour de l'état interne du contrat intelligent ne nécessitent que l'approbation des pairs qui ont créé le canal. + +Si cela permet de résoudre le problème d'évolutivité décrit plus haut, cette approche a également des conséquences sur la sécurité. Sur Ethereum, la validité des transitions d'état est assurée par le protocole de consensus du réseau. Il est ainsi impossible de proposer une mise à jour invalide de l'état d'un contrat intelligent ou de modifier l'exécution d'un contrat intelligent. + +Les canaux d'état ne présentent pas les mêmes garanties de sécurité. Dans une certaine mesure, un canal d'état constitue une version miniature du réseau principal. Avec un ensemble limité de participants chargés de faire respecter les règles, la possibilité de comportements malveillants (par exemple, proposer des mises à jour d'état invalides) augmente. Les canaux d'état tirent leur sécurité d'un système d'arbitrage des litiges basé sur des [preuves de fraude](/glossary/#fraud-proof). + +## Comment fonctionnent les canaux d'état {#how-state-channels-work} + +Fondamentalement, l'activité dans un canal d'état constitue une session d'interactions impliquant des utilisateurs et un système de blockchain. Les utilisateurs communiquent principalement entre eux hors chaîne et n'interagissent avec la blockchain sous-jacente que pour ouvrir le canal, le fermer ou régler d'éventuels conflits entre les participants. + +La section suivante décrit le flux de travail de base d'un canal d'état : + +### Ouverture du canal {#opening-the-channel} + +Pour ouvrir un canal, les participants doivent engager des fonds dans un contrat intelligent sur le réseau principal. Le dépôt fonctionne également comme un onglet virtuel, de sorte que les acteurs participants peuvent effectuer des transactions librement sans avoir besoin de régler les paiements immédiatement. Ce n'est que lorsque le canal est finalisé sur la chaîne que les parties s'arrangent entre elles et retirent ce qui reste de leur onglet. + +Ce dépôt sert également d'obligation pour garantir un comportement honnête de la part de chaque participant. Si les déposants sont reconnus coupables d'actions malveillantes pendant la phase de résolution des litiges, le contrat annule leur dépôt. + +Les pairs du canal doivent signer un état initial, sur lequel ils sont tous d'accord. Il s'agit de la genèse du canal d'état, après quoi les utilisateurs peuvent commencer à effectuer des transactions. + +### Utilisation du canal {#using-the-channel} + +Après avoir initialisé l'état du canal, les pairs interagissent en signant des transactions et en se les envoyant mutuellement pour approbation. Les participants initient les mises à jour d'état avec ces transactions et signent les mises à jour d'état des autres. Chaque transaction comprend les éléments suivants : + +- Un **nonce**, qui sert d'identifiant unique pour les transactions et empêche les attaques par rejeu. Il identifie également l'ordre dans lequel les mises à jour de l'état ont eu lieu (ce qui est important pour la résolution des conflits) + +- L'ancien état du canal + +- Le nouvel état du canal + +- La transaction qui déclenche la transition d'état (par exemple, Alice envoie 5 ETH à Bob) + +Les mises à jour d'état dans le canal ne sont pas diffusées sur la chaîne, comme c'est normalement le cas lorsque les utilisateurs interagissent sur le réseau principal, ce qui correspond à l'objectif des canaux d'état de minimiser l'empreinte sur la chaîne. Tant que les participants sont d'accord sur les mises à jour d'état, celles-ci sont aussi définitives qu'une transaction Ethereum. Les participants ne doivent dépendre du consensus du réseau principal qu'en cas de conflit. + +### Fermeture du canal {#closing-the-channel} + +La fermeture d'un canal d'état nécessite de soumettre l'état final et convenu du canal au contrat intelligent sur la chaîne. Les détails mentionnés dans la mise à jour de l'état comprennent le nombre de mouvements de chaque participant et une liste des transactions approuvées. + +Après avoir vérifié que la mise à jour de l'état est valide (c'est-à-dire qu'elle est signée par toutes les parties), le contrat intelligent finalise le canal et distribue les fonds bloqués en fonction du résultat du canal. Les paiements effectués hors chaîne sont appliqués à l'état d'Ethereum et chaque participant reçoit sa part restante des fonds bloqués. + +Le scénario décrit ci-dessus représente ce qui se passe dans un cas de figure favorable. Parfois, les utilisateurs ne parviennent pas à se mettre d'accord et à finaliser le canal (cas de figure défavorable). Chacune des affirmations suivantes peut s'appliquer à la situation : + +- Les participants se déconnectent et ne proposent pas de transitions d'état + +- Les participants refusent de cosigner des mises à jour d'état valides + +- Les participants essaient de finaliser le canal en proposant une mise à jour de l'ancien état au contrat sur la chaîne + +- Les participants proposent des transitions d'état invalides pour que les autres les signent + +Lorsque le consensus est rompu entre les acteurs participants d'un canal, la dernière option est de s'appuyer sur le consensus du réseau principal pour faire respecter l'état final et valide du canal. Dans ce cas, la fermeture du canal d'état nécessite de régler les litiges sur la chaîne. + +### Résolution des litiges {#settling-disputes} + +En général, les parties d'un canal se mettent d'accord sur la fermeture du canal au préalable et cosignent la dernière transition d'état, qu'elles soumettent au contrat intelligent. Une fois la mise à jour approuvée sur la chaîne, l'exécution du contrat intelligent hors chaîne prend fin et les participants quittent le canal avec leur argent. + +Cependant, une partie peut soumettre une demande sur la chaîne pour mettre fin à l'exécution du contrat intelligent et finaliser le canal, sans attendre l'approbation de son homologue. Si l'une des situations de rupture de consensus décrites précédemment se produit, l'une ou l'autre partie peut déclencher le contrat en chaîne pour fermer le canal et distribuer les fonds. Cela permet une **absence de confiance**, garantissant que les parties honnêtes peuvent retirer leurs dépôts à tout moment, indépendamment des actions de l'autre partie. + +Pour traiter la sortie du canal, l'utilisateur doit soumettre la dernière mise à jour d'état valide de l'application au contrat en chaîne. S'il est validé (c'est-à-dire qu'il porte la signature de toutes les parties), les fonds sont redistribués en sa faveur. + +Il y a cependant un retard dans l'exécution des demandes de sortie des utilisateurs uniques. Si la demande de fermeture du canal a été approuvée à l'unanimité, alors la transaction de sortie sur la chaîne est exécutée immédiatement. + +Le délai a une certaine importance dans les sorties mono-utilisateur en raison de la possibilité d'actions frauduleuses. Par exemple, un participant au canal peut essayer de finaliser le canal sur Ethereum en soumettant une ancienne mise à jour d'état sur la chaîne. + +Comme contre-mesure, les canaux d'état permettent aux utilisateurs honnêtes de contester les mises à jour d'état invalides en soumettant le dernier état valide du canal sur la chaîne. Les canaux d'état sont conçus de telle sorte que les mises à jour d'état les plus récentes et agréées l'emportent sur les mises à jour d'état plus anciennes. + +Lorsqu'un pair déclenche le système de résolution des conflits sur la chaîne, l'autre partie est tenue de répondre dans un certain délai (appelé fenêtre de contestation). Cela permet aux utilisateurs de contester la transaction de sortie, notamment si l'autre partie applique une mise à jour périmée. + +Quoi qu'il en soit, les utilisateurs du canal ont toujours de fortes garanties de finalité : si la transition d'état en leur possession a été signée par tous les membres et constitue la mise à jour la plus récente, alors elle a la même finalité qu'une transaction ordinaire sur la chaîne. Ils doivent encore contester l'autre partie sur la chaîne, mais le seul résultat possible est de finaliser le dernier état valide, qu'ils détiennent. + +### Comment les canaux d'état interagissent-ils avec Ethereum ? {#how-do-state-channels-interact-with-ethereum} + +Bien qu'ils existent en tant que protocoles hors chaîne, les canaux d'état ont un composant en chaîne : le contrat intelligent déployé sur Ethereum lors de l'ouverture du canal. Ce contrat contrôle les actifs déposés dans le canal, vérifie les mises à jour de l'état et arbitre les conflits entre les participants. + +Les canaux d'état ne publient pas les données de transaction ou les engagements d'état sur le réseau principal, contrairement aux solutions de mise à l'échelle de la [couche de niveau 2](/layer-2/). Cependant, ils sont plus connectés au réseau principal que, par exemple, les [chaînes latérales](/developers/docs/scaling/sidechains/), ce qui les rend un peu plus sûrs. + +Les canaux d'état reposent sur le protocole principal d'Ethereum pour les éléments suivants : + +#### 1. Vivacité {#liveness} + +Le contrat en chaîne déployé lors de l'ouverture du canal est responsable de la fonctionnalité du canal. Si le contrat est exécuté sur Ethereum, le canal est toujours disponible à l'utilisation. À l'inverse, une chaîne latérale peut toujours échouer, même si le réseau principal est opérationnel, mettant ainsi les fonds des utilisateurs en danger. + +#### 2. Sécurité {#security} + +Dans une certaine mesure, les canaux d'état reposent sur Ethereum pour assurer la sécurité et protéger les utilisateurs contre les pairs malveillants. Comme nous le verrons dans les sections suivantes, les canaux utilisent un mécanisme de preuve de fraude qui permet aux utilisateurs de contester les tentatives de finaliser le canal avec une mise à jour invalide ou périmée. + +Dans ce cas, la partie honnête fournit le dernier état valide du canal comme preuve de fraude au contrat en chaîne pour vérification. Les preuves de fraude permettent à des parties mutuellement méfiantes d'effectuer des transactions hors chaîne sans risquer leurs fonds dans le processus. + +#### 3. Finalité {#finality} + +Les mises à jour d'état signées collectivement par les utilisateurs du canal sont considérées comme aussi bonnes que les transactions en chaîne. Cependant, toute activité au sein d'un canal n'atteint une véritable finalité que lorsque le canal est fermé sur Ethereum. + +Dans l'hypothèse optimiste, les deux parties peuvent coopérer et signer la mise à jour de l'état final et la soumettre sur la chaîne pour fermer le canal, après quoi les fonds sont distribués selon l'état final du canal. Dans l'hypothèse pessimiste, où quelqu'un essaie de tricher en postant une mise à jour d'état incorrecte sur la chaîne, sa transaction n'est pas finalisée tant que la fenêtre de contestation n'est pas écoulée. + +## Canaux d'état virtuel {#virtual-state-channels} + +L'implémentation naïve d'un canal d'état consisterait à déployer un nouveau contrat lorsque deux utilisateurs souhaitent exécuter une application hors chaîne. Non seulement cela n'est pas faisable, mais cette approche réduirait à néant le rapport coût-efficacité des canaux d'état (les coûts de transaction sur la chaîne peuvent rapidement s'accumuler). + +Pour résoudre ce problème, des « canaux virtuels » ont été créés. Contrairement aux canaux réguliers qui nécessitent des transactions sur la chaîne pour s'ouvrir et se clôturer, un canal virtuel peut être ouvert, exécuté et finalisé sans interaction avec la chaîne principale. Cette méthode permet même de régler des litiges hors chaîne. + +Ce système repose sur l'existence de ce que l'on appelle des « canaux de registre », qui ont été financés sur la chaîne. Les canaux virtuels entre deux parties peuvent être construits sur un canal de registre existant, le/les propriétaire(s) du canal de registre servant d'intermédiaire. + +Les utilisateurs de chaque canal virtuel interagissent via une nouvelle instance de contrat, le canal du registre pouvant prendre en charge plusieurs instances de contrat. L'état du canal du registre contient également plus d'un état de stockage de contrat, ce qui permet l'exécution parallèle d'applications hors chaîne entre différents utilisateurs. + +Tout comme les canaux ordinaires, les utilisateurs échangent des mises à jour d'état pour faire progresser la machine d'état. Hormis en cas de litige, il suffit de contacter l'intermédiaire pour ouvrir ou fermer le canal. + +### Canaux de paiement virtuel {#virtual-payment-channels} + +Les canaux de paiement virtuels fonctionnent sur le même principe que les canaux d'état virtuels : les participants connectés au même réseau peuvent échanger des messages sans avoir à ouvrir un nouveau canal sur la chaîne. Dans les canaux de paiement virtuels, les transferts de valeur sont acheminés par un ou plusieurs intermédiaires, avec la garantie que seul le destinataire prévu peut recevoir les fonds transférés. + +## Applications des canaux d'états {#applications-of-state-channels} + +### Paiements {#payments} + +Les premiers canaux de la blockchain étaient de simples protocoles qui permettaient à deux participants d'effectuer des transferts rapides et peu coûteux hors chaîne sans avoir à payer des frais de transaction élevés sur le réseau principal. Aujourd'hui, les canaux de paiement sont encore utiles pour les applications conçues pour l'échange et les dépôts d'éther et de jetons. + +Les paiements basés sur les canaux présentent les avantages suivants : + +1. **Débit** : la quantité de transactions hors chaîne par canal n'a aucun lien avec le débit d'Ethereum, qui résulte de divers facteurs, notamment la taille et la durée des blocs. En exécutant des transactions hors chaîne, les canaux de la blockchain peuvent atteindre un débit plus élevé. + +2. **Confidentialité** : dans la mesure où les canaux existent hors chaîne, les détails des interactions entre les participants ne sont pas enregistrés sur la blockchain publique d'Ethereum. Les utilisateurs de canaux ne doivent interagir sur la chaîne que pour financer et fermer des canaux ou régler des litiges. Les canaux sont donc utiles pour les personnes qui recherchent des transactions plus privées. + +3. **Latence** : les transactions hors chaîne effectuées entre les participants au canal peuvent être réglées instantanément, si les deux parties coopèrent, ce qui réduit les délais. En revanche, pour envoyer une transaction sur le réseau principal, il faut attendre que les nœuds traitent la transaction, produisent un nouveau bloc avec la transaction et parviennent à un consensus. Il se peut également que les utilisateurs doivent attendre d'autres confirmations de blocs avant de considérer une transaction comme finalisée. + +4. **Coût** : les canaux d'état sont particulièrement utiles dans les situations où un ensemble de participants échangent de nombreuses mises à jour d'état sur une longue période. Les seuls coûts encourus concernent l'ouverture et la fermeture du contrat intelligent du canal d'état ; chaque changement d'état entre l'ouverture et la fermeture du canal sera moins coûteux que le précédent car le coût du règlement est réparti en conséquence. + +La mise en œuvre de canaux d'état sur les solutions de couche 2, telles que les [rollups](/developers/docs/scaling/#rollups), pourrait les rendre encore plus attrayantes pour les paiements. Alors que les canaux offrent des paiements bon marché, les coûts de mise en place du contrat en chaîne sur le réseau principal pendant la phase d'ouverture peuvent devenir onéreux, surtout lorsque les frais de gaz augmentent. Les rollups basés sur Ethereum offrent des [frais de transaction plus bas](https://l2fees.info/) et peuvent réduire les frais généraux pour les participants au canal en faisant baisser les frais d'installation. + +### Microtransactions {#microtransactions} + +Les microtransactions sont des paiements de faible valeur (inférieurs à une fraction de dollar, par exemple) que les entreprises ne peuvent pas traiter sans encourir de pertes. Ces entités doivent payer les prestataires de services de paiement, ce qu'elles ne peuvent faire si la marge sur les paiements des clients est trop faible pour réaliser un bénéfice. + +Les canaux de paiement résolvent ce problème en réduisant les frais généraux associés aux microtransactions. Par exemple, un fournisseur d'accès à Internet (« Internet Service Provider » ou ISP) peut ouvrir un canal de paiement avec un client, lui permettant d'effectuer de petits paiements en continu chaque fois qu'il utilise le service. + +Au-delà du coût d'ouverture et de fermeture du canal, les participants n'encourent pas de frais supplémentaires sur les microtransactions (pas de frais de gaz). Tout le monde y gagne : les clients disposent d'une plus grande marge de manœuvre pour régler les services et les entreprises ne perdent pas de bénéfices sur les microtransactions. + +### Applications décentralisées {#decentralized-applications} + +Comme les canaux de paiement, les canaux d'état peuvent effectuer des paiements conditionnels en fonction des états finaux de la machine d'état. Les canaux d'état peuvent également prendre en charge une logique de transition d'état arbitraire, ce qui les rend utiles pour exécuter des applications génériques hors chaîne. + +Les canaux d'état sont souvent limités à de simples applications à tour de rôle, car cela facilite la gestion des fonds engagés dans le contrat sur la chaîne. En outre, avec un nombre limité de parties mettant à jour l'état de l'application hors chaîne à intervalles réguliers, il est relativement simple de sanctionner un comportement malhonnête. + +L'efficacité d'une application de canal d'état dépend également de sa conception. Par exemple, un développeur peut déployer une fois le contrat de canal de l'application sur la chaîne et permettre aux autres joueurs de réutiliser l'application sans avoir à passer par la chaîne. Dans ce cas, le canal initial de l'application sert de canal de registre supportant plusieurs canaux virtuels, chacun exécutant une nouvelle instance du contrat intelligent de l'application hors chaîne. + +Les jeux simples à deux joueurs, où les fonds sont distribués en fonction de l'issue du jeu, constituent un cas d'utilisation potentiel des applications de canaux d'état. L'avantage est que les joueurs n'ont pas à se faire confiance (absence de confiance) et que le contrat sur la chaîne, et non les joueurs, contrôle l'allocation des fonds et le règlement des litiges (décentralisation). + +Parmi les autres cas d'utilisation possibles des applications de canaux d'état, citons la propriété des noms ENS, les registres NFT, et bien d'autres encore. + +### Transferts atomiques {#atomic-transfers} + +Les premiers canaux de paiement étaient limités aux transferts entre deux parties, ce qui en limitait l'utilité. Cependant, l'introduction des canaux virtuels a permis aux individus d'acheminer les transferts par le biais d'intermédiaires (c'est-à-dire de multiples canaux p2p) sans avoir à ouvrir un nouveau canal sur la chaîne. + +Communément décrits comme des « transferts multi-saut », les paiements acheminés sont atomiques (c'est-à-dire que soit toutes les parties de la transaction réussissent, soit la transaction échoue complètement). Les transferts atomiques utilisent les [contrats HTLC (Contrats à synchronisation de hachage)](https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts) pour garantir que le paiement n'est libéré que si certaines conditions sont remplies, ce qui réduit le risque de contrepartie. + +## Inconvénients de l'utilisation des canaux d'états {#drawbacks-of-state-channels} + +### Hypothèses de vivacité {#liveness-assumptions} + +Pour garantir l'efficacité, les canaux d'état imposent des limites de temps aux participants du canal pour répondre aux litiges. Cette règle suppose que les pairs seront toujours en ligne pour surveiller l'activité du canal et contester les problèmes si nécessaire. + +En réalité, les utilisateurs peuvent être mis hors ligne pour des raisons indépendantes de leur volonté (par exemple, une mauvaise connexion internet, une panne mécanique, etc.). Si un utilisateur honnête se déconnecte, un pair malveillant peut exploiter la situation en présentant d'anciens états intermédiaires au contrat de l'adjudicateur et en volant les fonds engagés. + +Certains canaux utilisent des « watchtowers », c'est-à-dire des entités chargées de surveiller les conflits sur la chaîne au nom des autres et de prendre les mesures nécessaires, comme alerter les parties concernées. Cependant, cela peut augmenter les coûts d'utilisation d'un canal d'état. + +### Indisponibilité des données {#data-unavailability} + +Comme expliqué précédemment, la contestation d'un litige invalide nécessite de présenter le dernier état valide du canal d'état. Il s'agit d'une autre règle basée sur une hypothèse - que les utilisateurs ont accès au dernier état du canal. + +Bien qu'il soit raisonnable d'attendre des utilisateurs de canaux qu'ils stockent des copies de l'état des applications hors chaîne, ces données peuvent être perdues en raison d'une erreur ou d'une défaillance mécanique. Si l'utilisateur n'a pas sauvegardé les données, il ne peut qu'espérer que l'autre partie ne finalise pas une demande de sortie invalide en utilisant les anciennes transitions d'état en sa possession. + +Les utilisateurs d'Ethereum n'ont pas à faire face à ce problème puisque le réseau applique des règles sur la disponibilité des données. Les données relatives aux transactions sont stockées, propagées par tous les nœuds et peuvent être téléchargées par les utilisateurs en cas de besoin. + +### Problèmes de liquidité {#liquidity-issues} + +Pour établir un canal sur la blockchain, les participants doivent bloquer des fonds dans un contrat intelligent sur la chaîne pour le cycle de vie du canal. Cela réduit la liquidité des utilisateurs du canal et limite également les canaux à ceux qui peuvent se permettre de garder les fonds bloqués sur le réseau principal. + +Toutefois, les canaux des registres - exploités par un fournisseur de services hors chaîne (OSP) - peuvent réduire les problèmes de liquidité pour les utilisateurs. Deux pairs connectés à un canal du registre peuvent créer un canal virtuel, qu'ils peuvent ouvrir et finaliser complètement hors chaîne, quand ils le souhaitent. + +Les fournisseurs de services hors chaîne pourraient également ouvrir des canaux avec plusieurs pairs, ce qui les rend utiles pour l'acheminement des paiements. Bien entendu, les utilisateurs doivent payer des frais aux OSP pour leurs services, ce que certains pourraient juger indésirable. + +### Les attaques de griefing {#griefing-attacks} + +Les attaques de griefing sont une caractéristique commune des systèmes basés sur la preuve de fraude. Une attaque de griefing ne profite pas directement à l'attaquant mais cause du grief (c'est-à-dire du tort) à la victime, d'où son nom. + +La preuve de fraude est susceptible de faire l'objet d'attaques de type griefing, car la partie honnête doit répondre à chaque litige, même invalide, sous peine de perdre ses fonds. Un participant malveillant peut décider de poster de manière répétée des transitions d'état périmées sur la chaîne, obligeant la partie honnête à répondre avec l'état valide. Le coût de ces transactions sur la chaîne peut rapidement s'accumuler, et les parties honnêtes y perdent au change. + +### Ensembles de participants prédéfinis {#predefined-participant-sets} + +Par conception, le nombre de participants qui composent un canal d'état reste fixe pendant toute sa durée de vie. En effet, la mise à jour de l'ensemble des participants compliquerait le fonctionnement du canal, notamment pour le financement du canal ou le règlement des litiges. L'ajout ou le retrait de participants nécessiterait également une activité supplémentaire sur la chaîne, ce qui augmente les frais généraux pour les utilisateurs. + +Bien que cela rende les canaux d'état plus faciles à appréhender, cette approche limite l'utilité des conceptions de canaux pour les développeurs d'applications. Cela explique en partie pourquoi les canaux d'état ont été abandonnés au profit d'autres solutions de mise à l'échelle, comme les rollups. + +### Traitement parallèle des transactions {#parallel-transaction-processing} + +Les participants au canal d'état envoient des mises à jour d'état à tour de rôle, c'est pourquoi ils fonctionnent mieux pour les « applications basées sur le tour de rôle » (par exemple, un jeu d'échecs à deux joueurs). Cela élimine la nécessité de gérer les mises à jour simultanées de l'état et réduit le travail que le contrat en chaîne doit faire pour punir les publications de mise à jour périmées. Cependant, cette conception a pour effet secondaire de rendre les transactions dépendantes les unes des autres, ce qui augmente la latence et diminue l'expérience globale de l'utilisateur. + +Certains canaux d'état résolvent ce problème en utilisant une conception « full-duplex » qui divise l'état hors chaîne en deux états unidirectionnels « simplex », permettant des mises à jour d'état simultanées. Ces conceptions améliorent le débit hors chaîne et réduisent les délais de transaction. + +## Utilisation des canaux d'états {#use-state-channels} + +Plusieurs projets fournissent des implémentations de canaux d'état que vous pouvez intégrer dans vos dApps : + +- [Connext](https://connext.network/) +- [Kchannels](https://www.kchannels.io/) +- [Perun](https://perun.network/) +- [Raiden](https://raiden.network/) +- [Statechannels.org](https://statechannels.org/) + +## En savoir plus {#further-reading} + +**Canaux d'état** + +- [Comprendre les solutions de mise à l'échelle de la couche 2 d'Ethereum : State Channels, Plasma, et Truebit](https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4) _– Josh Stark, 12 Fev 2018_ +- [Canaux d'état - une explication](https://www.jeffcoleman.ca/state-channels/) _– Jeff Coleman, 6 Nov 2015_ +- [Les bases des canaux d'état](https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/) _District0x_ +- [Les canaux d'état de la blockchain : situation actuelle](https://ieeexplore.ieee.org/document/9627997) + +_Une ressource communautaire vous a aidé ? Modifiez cette page et ajoutez-la !_ diff --git a/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md index b12f2afd10c..63dd72b43e6 100644 --- a/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md +++ b/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md @@ -222,6 +222,7 @@ Regardez la vidéo de Finematics qui explique les rollups ZK : + ## Qui travaille sur une zkEVM ? {#zkevm-projects} Les projets fonctionnant sur les zkEVM comprennent : diff --git a/public/content/translations/fr/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/fr/developers/docs/smart-contracts/formal-verification/index.md index 6c3a724a3b8..7c43dec0543 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Les spécifications formelles de bas niveau peuvent être données sous forme de ### Propriétés de style Hoare {#hoare-style-properties} -[La logique Hoare](https://en.wikipedia.org/wiki/Hoare_logic) fournit un ensemble de règles formelles pour raisonner sur la correction des programmes, y compris les contrats intelligents. Une propriété de style Hoare est représentée par un triple Hoare {_P_}_c_{_Q_}, où _c_ est un programme et _P_ et _Q_ sont des prédicats sur l'état de _c_ (c'est-à-dire le programme), formellement décrits comme des _prérequis_ et des _conditions ulérieures_, respectivement. +[La logique Hoare](https://en.wikipedia.org/wiki/Hoare_logic) fournit un ensemble de règles formelles pour raisonner sur la correction des programmes, y compris les contrats intelligents. Une propriété de style Hoare est représentée par un triple Hoare `{P}c{Q}`, où `c` est un programme et `P` et `Q` sont des prédicats sur l'état de `c` (c'est-à-dire le programme), formellement décrits comme des _prérequis_ et des _conditions ulérieures_, respectivement. Un prérequis est un prédicat décrivant les conditions requises pour l'exécution correcte d'une fonction ; les utilisateurs qui font appel au contrat doivent satisfaire à cette exigence. Une condition ultérieure est un prédicat décrivant la condition qu'une fonction établit si elle est correctement exécutée ; les utilisateurs peuvent s'attendre à ce que cette condition soit vraie après avoir appelé la fonction. Un _invariant_ en logique Hoare est un prédicat qui est préservé par l'exécution d'une fonction (c'est-à-dire qu'il ne change pas). diff --git a/public/content/translations/fr/developers/docs/smart-contracts/security/index.md b/public/content/translations/fr/developers/docs/smart-contracts/security/index.md index 4c72dcb07f2..0d9be9f2935 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/security/index.md @@ -115,7 +115,7 @@ L’existence d’audits et de primes de bogue n'exclut pas votre responsabilit - Utilisez un [environnement de développement](/developers/docs/frameworks/) pour tester, compiler, déployer des contrats intelligents -- Exécutez votre code sur des outils d'analyse de code basiques, tels que [Cyfrin Aderyn](https://github.com/Cyfrin/aderyn), Mythril et Slither. Idéalement, vous devriez le faire avant de fusionner chaque pull request et comparer les différences de sortie +- Exécutez votre code sur des outils d'analyse de code basiques, tels que [Cyfrin Aaderyn](https://github.com/Cyfrin/aderyn), Mythril et Slither. Idéalement, vous devriez le faire avant de fusionner chaque pull request et comparer les différences de sortie - Assurez-vous que votre code est compilé sans erreurs, et que le compilateur Solidity n'émet aucun avertissement @@ -519,7 +519,7 @@ Si vous comptez interroger un oracle sur le prix des actifs, envisagez d'utilise - **[Oxorio](https://oxor.io/)** - _Audits de contrats intelligents et services de sécurité blockchain avec expertise concernant l'EVM, Solidity, le ZK, la technologie inter-chaînes pour les entreprises de crypto et les projets de DeFi._ -- **[Inference](https://inference.ag/)** - _Entreprise d'audit de sécurité spécialisée dans l'audit de contrats intelligents pour les blockchains basées sur l'EVM. Grâce à ces auditeurs experts, elle identifie les problèmes potentiels et suggèrent des solutions opérationnelles pour les régler avant leur déploiement._ +- **[Inference](https://inference.ag/)** - _Entreprise d'audit de sécurité spécialisée dans l'audit de contrats intelligents pour les blockchains basées sur l'EVM. Grâce à ces auditeurs experts, elle identifie les problèmes potentiels et suggèrent des solutions opérationnelles pour les régler avant leur déploiement. _ ### Plateformes de récompense de bug {#bug-bounty-platforms} @@ -563,7 +563,7 @@ Si vous comptez interroger un oracle sur le prix des actifs, envisagez d'utilise - **[Norme de vérification de la sécurité des contrats intelligents](https://github.com/securing/SCSVS)** - _Liste de contrôle de quatorze parties créée pour standardiser la sécurité des contrats intelligents pour les développeurs, architectes, réviseurs de sécurité et fournisseurs._ -- **[Apprendre la sécurité et l'audit des contrats intelligents](https://updraft.cyfrin.io/courses/security)** - _Le cours ultime sur la sécurité et l'audit des contrats intelligents, conçu pour les développeurs de contrats intelligents souhaitant améliorer leurs pratiques en matière de sécurité et devenir des chercheurs en sécurité._ +- **[Apprendre la sécurité et l'audit des contrats intelligents](https://updraft.cyfrin.io/courses/security) - _Le cours ultime sur la sécurité et l'audit des contrats intelligents, conçu pour les développeurs de contrats intelligents souhaitant améliorer leurs pratiques en matière de sécurité et devenir des chercheurs en sécurité._ ### Tutoriels sur la sécurité des contrats intelligents {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md b/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md index 61ea726eb67..2238e913f64 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md @@ -130,7 +130,7 @@ De nombreux frameworks de tests unitaires vous permettent de créer des assertio ##### 3. Mesurer la couverture du code -[La couverture de code](https://en.m.wikipedia.org/wiki/Code_coverage) est une métrique de test qui suit le nombre de branches, de lignes et d'instructions dans votre code exécuté lors des tests. Les tests doivent avoir une bonne couverture du code, sinon vous risquez d'obtenir des « faux négatifs », ce qui se produit lorsqu'un contrat réussit tous les tests, mais des vulnérabilités existent toujours dans le code. L'enregistrement d'une couverture de code élevée donne toutefois l'assurance que toutes les déclarations/fonctions d'un contrat intelligent ont été suffisamment testées pour être correctes. +[La couverture de code](https://en.m.wikipedia.org/wiki/Code_coverage) est une métrique de test qui suit le nombre de branches, de lignes et d'instructions dans votre code exécuté lors des tests. Les tests devraient avoir une bonne couverture de code pour minimiser le risque de vulnérabilités non testées. Sans une couverture suffisante, vous pourriez à tort supposer que votre contrat est sécurisé parce que tous les tests réussissent, alors que des vulnérabilités existent encore dans des chemins de code non testés. L'enregistrement d'une couverture de code élevée donne toutefois l'assurance que toutes les déclarations/fonctions d'un contrat intelligent ont été suffisamment testées pour être correctes. ##### 4. Utiliser des frameworks de test bien développés @@ -213,7 +213,7 @@ Exécuter des contrats sur une blockchain locale pourrait être utile comme une ### Tests de contrats sur les réseaux de test {#testing-contracts-on-testnets} -Un réseau de test fonctionne exactement comme le réseau principal d'Ethereum, sauf qu'il utilise Ether (ETH) sans valeur de monde réel. Déployer votre contrat sur un [réseau de test](/developers/docs/networks/#ethereum-testnets) signifie que n'importe qui peut interagir avec lui (par exemple, via le frontend de la DAPP) sans mettre en péril les fonds. +Un réseau de test fonctionne exactement comme le réseau principal d'Ethereum, sauf qu'il utilise de l'Ether (ETH) sans valeur dans le monde réel. Déployer votre contrat sur un [réseau de test](/developers/docs/networks/#ethereum-testnets) signifie que n'importe qui peut interagir avec lui (par exemple, via le frontend de la DAPP) sans mettre en péril les fonds. Cette forme de test manuel est utile pour évaluer le flux de bout en bout de votre application du point de vue de l'utilisateur. Ici, les utilisateurs finaux peuvent exécuter des essais et rapporter tous les problèmes avec la logique commerciale du contrat et les fonctionnalités générales. diff --git a/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md b/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md index dccd56c0485..140c8d6f107 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md @@ -74,7 +74,7 @@ Utiliser les méthodes de proxy nécessite une compréhension de la fonction **d Selon la [documentation Solidity](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#delegatecall-callcode-and-libraries) : -> _Il existe une variante spéciale de l'appel de message, nommée **delegatecall** qui est identique à un appel de message à part le fait que le code à l'adresse cible est exécuté dans le contexte (c'est-à-dire à l'adresse) du contrat appelant et `msg.sender` et `msg.value` ne changent pas leurs valeurs. __Cela signifie qu'un contrat peut charger dynamiquement du code depuis une adresse différente à l'exécution. Le stockage, l'adresse actuelle et le solde font toujours référence au contrat appelant, seul le code est pris à partir de l'adresse appelée._ +> _Il existe une variante spéciale de l'appel de message, nommée **delegatecall** qui est identique à un appel de message à part le fait que le code à l'adresse cible est exécuté dans le contexte (c'est-à-dire à l'adresse) du contrat appelant et `msg.sender` et `msg.value` ne changent pas leurs valeurs. \_\_Cela signifie qu'un contrat peut charger dynamiquement du code depuis une adresse différente à l'exécution. Le stockage, l'adresse actuelle et le solde font toujours référence au contrat appelant, seul le code est pris à partir de l'adresse appelée._ Le contrat proxy sait invoquer `delegatecall` chaque fois qu'un utilisateur appelle une fonction car il dispose d'une fonction `fallback` intégrée. En programmation Solidity, la [fonction fallback](https://docs.soliditylang.org/en/latest/contracts.html#fallback-function) est exécutée lorsqu'un appel de fonction ne correspond pas aux fonctions spécifiées dans un contrat. @@ -160,6 +160,6 @@ Les timelocks donnent aux utilisateurs un certain temps pour quitter le système - [L'état des mises à jour des contrats intelligents](https://blog.openzeppelin.com/the-state-of-smart-contract-upgrades/) par Santiago Palladino - [Plusieurs façons de mettre à jour un contrat intelligent Solidity](https://cryptomarketpool.com/multiple-ways-to-upgrade-a-solidity-smart-contract/) - Blog Crypto Market Pool -- [Apprendre à mettre à jour un contrat intelligent](https://docs.openzeppelin.com/learn/upgrading-smart-contracts) - OpenZeppelin Docs +- [ Apprendre à mettre à jour un contrat intelligent](https://docs.openzeppelin.com/learn/upgrading-smart-contracts) - OpenZeppelin Docs - [La méthode proxy pour mettre à jour les contrats en Solidity : Proxy Transparent vs UUPS](https://mirror.xyz/0xB38709B8198d147cc9Ff9C133838a044d78B064B/M7oTptQkBGXxox-tk9VJjL66E1V8BUF0GF79MMK4YG0) par Naveen Samu - [Comment les mises à jour en diamant fonctionnent ?](https://dev.to/mudgen/how-diamond-upgrades-work-417j) par Nick Mudge diff --git a/public/content/translations/fr/developers/docs/transactions/index.md b/public/content/translations/fr/developers/docs/transactions/index.md index a38892db7b2..be8b76fd1f1 100644 --- a/public/content/translations/fr/developers/docs/transactions/index.md +++ b/public/content/translations/fr/developers/docs/transactions/index.md @@ -22,7 +22,7 @@ Les transactions requièrent des frais et doivent être incluses dans un bloc va Une transaction soumise comprend les informations suivantes : -- `depuis` - l'adresse de l'expéditeur qui signera la transaction. On aura donc une adresse émettrice, car les contrats et les adresses (Accounts) ne vous permettront pas d'envoyer des transactions. +- `depuis` - l'adresse de l'expéditeur qui signera la transaction. Il s'agira d'un compte externe, car les comptes contractuels ne vous permettront pas d'envoyer des transactions - `to` : l'adresse de réception (S'il s'agit d'un compte externe, la transaction va transférer la valeur. S'il s'agit d'un compte de contrat, la transaction exécutera le code du contrat.) - `signature` : identifiant de l'expéditeur. Cette signature est générée lorsque la clé privée de l'expéditeur signe la transaction, et confirme que l'expéditeur a autorisé cette transaction. - `nonce` -, il s'agit d'une machine à travers laquelle un nombre maximum d'essais consécutifs est réalisé, il qualifie aussi le numéro de transactions dans la liste des transactions sortantes depuis votre adresse @@ -162,7 +162,7 @@ Tout gaz non utilisé dans une transaction est remboursé sur le compte de l'uti Du gaz est nécessaire pour toute transaction qui implique un contrat intelligent. -Les contrats intelligents peuvent également contenir des fonctions connues sous le nom de fonctions [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) ou [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions), qui n'altèrent pas l'état du contrat. Ainsi, appeler ces fonctions à partir d'un EOA ne nécessitera aucun gaz. L'appel RPC sous-jacent pour ce scénario est [`eth_call`](/developers/docs/apis/json-rpc#eth_call) +Les contrats intelligents peuvent également contenir des fonctions connues sous le nom de fonctions [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) ou [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions), qui n'altèrent pas l'état du contrat. Ainsi, appeler ces fonctions à partir d'un EOA ne nécessitera aucun gaz. L'appel RPC sous-jacent pour ce scénario est [`eth_call`](/developers/docs/apis/json-rpc#eth_call). Contrairement à l'utilisation de `eth_call`, ces fonctions `view` ou `pure` sont également fréquemment appelées en interne (c'est-à-dire à partir du contrat lui-même ou d'un autre contrat), ce qui entraîne un coût en gaz. @@ -198,7 +198,7 @@ Où les champs sont définis comme : - `TransactionType` : un nombre compris entre 0 et 0x7f, pour un total de 128 types de transactions possibles. - `TransactionPayload` : une table arbitraire d'octets définie par le type de transaction. -En fonction de la valeur `TransactionType`, une transaction peut être classée comme +En fonction de la valeur `TransactionType`, une transaction peut être classée comme : 1. **Transactions de type 0 (Legacy) :** Le format de transaction original utilisé depuis le lancement d'Ethereum. Ils n'incluent pas les fonctionnalités de l'[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), telles que les calculs dynamiques des frais de gaz ou les listes d'accès pour les contrats intelligents. Les transactions originelles n'ont pas de préfixe spécifique indiquant leur type dans leur forme sérialisée, et commencent par l'octet `0xf8` lorsqu'elles utilisent le codage [Recursive Length Prefix (RLP)](/developers/docs/data-structures-and-encoding/rlp). La valeur TransactionType pour ces transactions est `0x0`. diff --git a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md index 1877b234c5a..1afe4a47d0b 100644 --- a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ Toute personne autorisée à transférer un jeton est autorisée à le détruire Contrairement à Solidity, Vyper n'a pas de système d'héritage. Il s'agit d'un choix de conception délibéré visant à rendre le code plus clair et donc plus facile à sécuriser. Donc pour créer votre propre contrat Vyper ERC-721, vous prenez [ce contrat](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) puis vous le modifiez en fonction de la stratégie commerciale que vous souhaitez mettre en œuvre. -# Conclusion {#conclusion} +## Conclusion {#conclusion} Voici les principaux points à retenir sur ce contrat : diff --git a/public/content/translations/fr/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/erc20-annotated-code/index.md index 2121f7f7829..7333affe215 100644 --- a/public/content/translations/fr/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/fr/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ La fonction `a.add(b)` est un ajout sûr. Dans le cas peu probable où `a`+`b`>= Voici les quatre fonctions qui font le travail réel : `_transfer`, `_mint`, `_burn`, et `_approve`. -#### La fonction \_transfer {#\_transfer} +#### La fonction \_transfer {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ Ce sont les lignes qui exécutent réellement le transfert. Notez qu'il n'y a ** Enfin, émettre un événement `Transfert`. Les événements ne sont pas accessibles par les contrats intelligents, mais le code exécuté en dehors de la blockchain peut lire les événements et réagir. Par exemple, un portefeuille peut garder une trace du moment où le propriétaire obtient plus de jetons. -#### La fonction \_mint and \_burn {#\_mint-and-\_burn} +#### La fonction \_mint and \_burn {#_mint-and-_burn} Ces deux fonctions (`_mint` et `_burn`) modifient la quantité totale de jetons. Elles sont internes et il n'y a pas de fonction qui les appelle dans ce contrat, ainsi elles ne sont utiles que si vous héritez du contrat et ajoutez votre propre logique pour décider dans quelles conditions générer de nouveaux jetons ou utiliser les jetons existants. @@ -706,7 +706,7 @@ Veillez à mettre à jour `_totalSupply` lorsque le nombre total de jetons chang La fonction `_burn` est presque identique à `_mint` sauf qu'elle fonctionne en sens inverse. -#### Fonction \_approve {#\_approve} +#### Fonction \_approve {#_approve} C'est la fonction qui spécifie les provisions. Notez qu'elle permet à un propriétaire de spécifier une provision supérieure au solde actuel du propriétaire. Cela ne pose pas de problème car le solde est vérifié au moment du transfert dans la mesure où il pourrait être différent du solde existant au moment de la création de la provision. @@ -783,7 +783,7 @@ Cette fonction modifie la variable `_decimals` qui est utilisée pour dicter aux Il s'agit de la fonction hook à appeler pendant les transferts. Elle est ici vide, mais si vous en avez besoin pour accomplir quelque chose, vous avez juste à la remplacer. -# Conclusion {#conclusion} +## Conclusion {#conclusion} Pour résumer, voici quelques-unes des idées les plus importantes de ce contrat (selon moi et les vôtres pourraient ne pas être les mêmes) : diff --git a/public/content/translations/fr/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/fr/developers/tutorials/hello-world-smart-contract-fullstack/index.md index 753c92c0f40..7b9f77123dc 100644 --- a/public/content/translations/fr/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/translations/fr/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -317,7 +317,7 @@ npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" -### Étape 13 : Mettre à jour hardhat.config.js {#step-13-update-hardhat.configjs} +### Étape 13 : Mettre à jour hardhat.config.js {#step-13-update-hardhat-configjs} A ce stade, nous avons ajouté plusieurs dépendances et plugins. Nous devons maintenant mettre à jour `hardhat.config.js` pour que notre projet les reconnaisse. diff --git a/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 22ff9cfcebd..5e3804f4d1b 100644 --- a/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -76,7 +76,7 @@ Maintenant que nous sommes dans le dossier de notre projet, nous allons utiliser npm init La manière dont vous répondez à ces questions d'installation a peu d'importance ; pour référence, voici comment nous avons répondu : - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -99,7 +99,7 @@ La manière dont vous répondez à ces questions d'installation a peu d'importan "author": "", "license": "ISC" } - +``` Approuvez le package.json, et nous sommes prêts à démarrer ! ## Étape 7 : Installer [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} @@ -259,6 +259,7 @@ Nous aurons également besoin d'ethers dans notre hardhat.config.js à l'étape Mettez à jour votre hardhat.config.js pour qu'il ressemble à ceci : +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -276,6 +277,7 @@ Mettez à jour votre hardhat.config.js pour qu'il ressemble à ceci : } }, } +``` ## Étape 14 : Compiler notre contrat {#compile-contract} diff --git a/public/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md index 0ebbb431a54..e218818e546 100644 --- a/public/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md @@ -53,8 +53,8 @@ Les contrats sont toujours exécutés à partir du premier octet. Ceci est la pr | 4 | MSTORE | Vide | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | Vide | Ce code fait deux choses : @@ -119,8 +119,8 @@ Le `NOT` est au niveau des bits donc il inverse la valeur de chaque bit dans la | --------:| ------------ | ------------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | | On saute si `Value*` est inférieure à 2^256-CALLVALUE-1 ou égale à celle-ci. Cela ressemble à une logique pour éviter les dépassements. Et en effet, nous voyons qu'après quelques opérations absurdes (écrire en mémoire est sur le point d'être supprimé, par exemple) au décalage 0x01DE, le contrat annule si le dépassement est détecté, ce qui est le comportement normal. @@ -431,7 +431,7 @@ Le code aux décalages 0x138-0x143 est identique à ce que nous avons vu en 0x10 | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -471,8 +471,8 @@ Voyons ce qui se passe si la fonction _obtient_ les données d'appel dont elle a | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Quelque chose comme ceci : "typescript": "^3.8.3" } } +```
            tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Quelque chose comme ceci : "target": "ES2018" } } +```
            @@ -104,6 +108,7 @@ Quelque chose comme ceci :
            .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Quelque chose comme ceci : } ] } +```
            @@ -709,6 +715,7 @@ Vous devriez voir que Waffle a compilé votre contrat et placé la sortie JSON r
            BasicToken.json +```json { "abi": [ { @@ -1005,6 +1012,8 @@ Vous devriez voir que Waffle a compilé votre contrat et placé la sortie JSON r "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P +``` +
            ## Étape #4 : Testez votre contrat intelligent ([Lien vers la documentation](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/fr/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/fr/developers/tutorials/yellow-paper-evm/index.md index 667696cc673..1192e571e0c 100644 --- a/public/content/translations/fr/developers/tutorials/yellow-paper-evm/index.md +++ b/public/content/translations/fr/developers/tutorials/yellow-paper-evm/index.md @@ -167,7 +167,7 @@ Nous avons un arrêt exceptionnel si l'une de ces conditions est vraie : La fonction _W(w,μ)_ est définie plus tard dans l'équation 150. _W(w,μ)_ est vraie si l'une de ces conditions est vraie : - - **_w ∈ {CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Ces opcodes modifient l'état, soit en créant un nouveau contrat, soit en stockant une valeur, soit en détruisant le contrat actuel. + - **_w ∈ \{CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Ces opcodes modifient l'état, soit en créant un nouveau contrat, soit en stockant une valeur, soit en détruisant le contrat actuel. - **_LOG0≤w ∧ w≤LOG4_** Si nous sommes appelés de manière statique, nous ne pouvons pas émettre d'entrées de journal. Les opcodes de journal sont tous dans la plage entre [`LOG0` (A0)](https://www.evm.codes/#a0) et [`LOG4` (A4)](https://www.evm.codes/#a4). Le nombre après l'opcode de journal spécifie combien de sujets l'entrée de journal contient. - **_w=CALL ∧ μs[2]≠0_** Vous pouvez appeler un autre contrat lorsque vous êtes statique, mais si vous le faites, vous ne pouvez pas lui transférer de l'ETH. @@ -228,7 +228,7 @@ L'adresse dont nous avons besoin pour trouver le solde est _μs[0] mo Si _σ[μs[0] mod 2160] ≠ ∅_, cela signifie qu'il y a des informations sur cette adresse. Dans ce cas, _σ[μs[0] mod 2160]b_ est le solde de cette adresse. Si _σ[μs[0] mod 2160] = ∅_, cela signifie que cette adresse n'est pas initialisée et le solde est zéro. Vous pouvez voir la liste des champs d'information du compte dans la section 4.1 à la page 4. -La deuxième équation, _A'a ≡ Aa ∪ {μs[0] mod 2160}_, est liée à la différence de coût entre l'accès au stockage chaud (stockage qui a récemment été accédé et est susceptible d'être mis en cache) et le stockage froid (stockage qui n'a pas été accédé et est susceptible de se trouver dans un stockage plus lent qui est plus coûteux à récupérer). _Aa_ est la liste des adresses précédemment accédées par la transaction, qui devraient donc être moins chères à accéder, comme défini dans la section 6.1 à la page 8. Vous pouvez en savoir plus sur ce sujet dans [l'EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). +La deuxième équation, _A'a ≡ Aa ∪ \{μs[0] mod 2160}_, est liée à la différence de coût entre l'accès au stockage chaud (stockage qui a récemment été accédé et est susceptible d'être mis en cache) et le stockage froid (stockage qui n'a pas été accédé et est susceptible de se trouver dans un stockage plus lent qui est plus coûteux à récupérer). _Aa_ est la liste des adresses précédemment accédées par la transaction, qui devraient donc être moins chères à accéder, comme défini dans la section 6.1 à la page 8. Vous pouvez en savoir plus sur ce sujet dans [l'EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). | Valeur | Mnemonic | δ | α | Description | | ------:| -------- | -- | -- | --------------------------------------- | diff --git a/public/content/translations/fr/glossary/index.md b/public/content/translations/fr/glossary/index.md index 5b5b26b4ca5..3241f6bc951 100644 --- a/public/content/translations/fr/glossary/index.md +++ b/public/content/translations/fr/glossary/index.md @@ -20,8 +20,12 @@ lang: fr + + + + @@ -60,6 +64,8 @@ lang: fr + + @@ -92,6 +98,8 @@ lang: fr + + @@ -158,6 +166,12 @@ lang: fr + + + + + + @@ -214,6 +228,8 @@ lang: fr + + @@ -226,7 +242,7 @@ lang: fr - + @@ -236,6 +252,8 @@ lang: fr + + @@ -244,12 +262,18 @@ lang: fr ## L {#section-l} + + + + + + @@ -258,18 +282,26 @@ lang: fr + + + + + + + + ## N {#section-n} @@ -288,8 +320,12 @@ lang: fr ## O {#section-o} + + + + @@ -302,16 +338,24 @@ lang: fr + + + + + + + + @@ -336,6 +380,10 @@ lang: fr + + + + @@ -374,6 +422,8 @@ lang: fr + + @@ -394,6 +444,8 @@ lang: fr + + @@ -436,7 +488,7 @@ lang: fr ## Sources {#sources} -_Fournis pour partie par [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook) (Maîtriser Ethereum) par [Andreas M. Antonopoulos et Gavin Wood](https://ethereumbook.info), sous licence CC-BY-SA_ +_Fournis pour partie par [Maîtriser Ethereum](https://github.com/ethereumbook/ethereumbook) par [Andreas M. Antonopoulos et Gavin Wood](https://ethereumbook.info), sous licence CC-BY-SA_ diff --git a/public/content/translations/fr/guides/how-to-use-a-bridge/index.md b/public/content/translations/fr/guides/how-to-use-a-bridge/index.md index 890c4d98614..fa088ae57f2 100644 --- a/public/content/translations/fr/guides/how-to-use-a-bridge/index.md +++ b/public/content/translations/fr/guides/how-to-use-a-bridge/index.md @@ -10,7 +10,7 @@ Si le trafic sur Ethereum devient trop important, cela peut devenir coûteux. Un **Prérequis :** -- détenir un portefeuille de cryptomonnaies, vous pouvez suivre ce tutoriel : [Comment : « Enregistrer » un compte Ethereum](/guides/how-to-create-an-ethereum-account/) +- avoir un portefeuille crypto, vous pouvez suivre ce tutoriel : [Comment créer un compte Ethereum](/guides/how-to-create-an-ethereum-account/) - ajouter des fonds à votre portefeuille ## 1. Déterminez le réseau de seconde couche que vous souhaitez utiliser diff --git a/public/content/translations/fr/guides/how-to-use-a-wallet/index.md b/public/content/translations/fr/guides/how-to-use-a-wallet/index.md index 009f48431cd..7e7f4e4746b 100644 --- a/public/content/translations/fr/guides/how-to-use-a-wallet/index.md +++ b/public/content/translations/fr/guides/how-to-use-a-wallet/index.md @@ -1,5 +1,6 @@ --- title: Comment utiliser un portefeuille +metaTitle: Comment utiliser un portefeuille Ethereum | Étape par étape description: Un guide expliquant comment envoyer, recevoir des jetons et se connecter à des projets web3. lang: fr --- diff --git a/public/content/translations/fr/history/index.md b/public/content/translations/fr/history/index.md index 80728c95f22..7d7d16c5671 100644 --- a/public/content/translations/fr/history/index.md +++ b/public/content/translations/fr/history/index.md @@ -19,12 +19,110 @@ Ces changements de règles peuvent créer une scission temporaire dans le résea + + +Le logiciel qui sous-tend Ethereum est composé de deux moitiés, connues sous le nom de [couche d'exécution](/glossary/#execution-layer) et de [couche de consensus](/glossary/#consensus-layer). + +**Nom des mises à jour de la couche d'exécution** + +Depuis 2021, les mises à jour de la **couche d'exécution** sont nommées en fonction du nom de la ville où a eu lieu la [précédente conférence Devcon](https://devcon.org/en/past-events/). Par ordre chronologique : + +| Nom | Année de la Devcon| Numéro de la Devcon | Date de mise à jour | +| ------------ | ----------- | ------------- | ------------ | +| Berlin | 2015 | 0 | 15 Avril 2021 | +| Londre | 2016 | I | 5 Août 2021 | +| Shanghai | 2017 | II | 12 Avril 2023 | +| **Cancun** | 2018 | III | 13 Mars 2024 | +| _Prague_ | 2019 | IV | À déterminer | +| _Osaka_ | 2020 | V | À déterminer | +| _Bogota_ | 2022 | VI | À déterminer | +| _Bangkok_ | 2024 | VII | À déterminer | + +**Nom des mises à jour de la couche de consensus** + +Depuis le lancement de la [chaîne phare](/glossary/#beacon-chain), les mises à jour de la **couche de consensus** sont nommées d'après des étoiles célestes commençant par des lettres qui se suivent dans l'ordre alphabétique : + +| Nom | Date de mise à jour | +| ----------------------------------------------------------- | ------------ | +| Beacon Chain genesis | Dec 1, 2020 | +| [Altaïr](https://fr.wikipedia.org/wiki/Altaïr) | Oct 27, 2021 | +| [Bellatrix](https://fr.wikipedia.org/wiki/Gamma_Orionis) | Sep 6, 2022 | +| [Capella](https://fr.wikipedia.org/wiki/Capella_(étoile)) | Apr 12, 2023 | +| [**Deneb**](https://fr.wikipedia.org/wiki/Deneb) | Mar 13, 2024 | +| [_Electra_]() | À déterminer | + +**Dénomination combiné** + +Initialement, les mises à jour des couches d'exécution et de consensus n'étaient pas déployées simultanément. Mais après [La Fusion](/roadmap/merge/) réalisée en 2022, elles ont été déployées simultanément. Ainsi, des termes familiers sont apparus pour simplifier les références à ces mises à niveau en utilisant un seul terme conjoint. Cela a commencé avec la mise à niveau _Shanghai-Capella_, communément appelée "**Shapella**", et se poursuit avec la mise à niveau _Cancun-Deneb_, qui peut être appelée "**Dencun**." + +| Mise à niveau Exécution | Mise à niveau Consensus | Nom court | +| ----------------- | ----------------- | ---------- | +| Shanghai | Capella | "Shapella" | +| Cancun | Deneb | "Dencun" | + + + Passer directement à l'information sur certaines des mises à jour passées particulièrement importantes : [La Chaîne phare](/roadmap/beacon-chain/); [La Fusion](/roadmap/merge/); et [EIP-1559](#london) Vous cherchez les prochaines mises à jour de protocole ? [Découvrez les mises à jour à venir sur la feuille de route Ethereum](/roadmap/). +## 2024 {#2024} + +### Cancun-Deneb ("Dencun") {#dencun} + + + +#### Résumé de Cancun {#cancun-summary} + +La mise à niveau Cancun contient un ensemble d'améliorations pour l'_exécution_ d'Ethereum destiné à l'amélioration de l'évolutivité, en association avec les mises à niveau de consensus Deneb. + +Cela inclut notamment EIP-4844, connu comme **Proto-Danksharding**, qui réduit significativement le coût du stockage de données pour les rollups de seconde couche. Cela est réalisé grâce à l'introduction de "blobs" de données qui permettent aux rollups d'envoyer des données sur le Réseau principal pendant une courte période de temps. Il en résulte une diminution significative des frais de transactions pour les utilisateurs de rollups de seconde couche. + + + +
              +
            • EIP-1153 - Codes d'opération de stockage transitoire
            • +
            • EIP-4788 - Racine du bloc phare dans l'EVM
            • +
            • EIP-4844 - Transactions de blobs fragmentés (Proto-Danksharding)
            • +
            • EIP-5656 - MCOPY - Instruction de copie de mémoire
            • +
            • EIP-6780 - SELFDESTRUCT uniquement dans la même transaction
            • +
            • EIP-7516 - BLOBBASEFEE opcode
            • +
            + +
            + +- [Les rollups de couche 2](/layer-2/) +- [Proto-Danksharding](/roadmap/scaling/#proto-danksharding) +- [Danksharding](/roadmap/danksharding/) +- [Lire les spécifications de la mise à jour Cancun](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md) + +#### Résumé de Deneb {#deneb-summary} + +La mise à niveau Deneb contient un ensemble d'améliorations du _consensus_ d'Ethereum visant à améliorer l'évolutivité. Cette mise à niveau s'accompagne des mises à niveau d'exécution de Cancun pour activer le Proto-Danksharding (EIP-4844), ainsi que d'autres améliorations de la Chaîne phare. + +Les "messages de sortie volontaire" n'expirent plus, donnant ainsi plus de contrôle aux utilisateurs mettant en jeu leurs fonds auprès d'un opérateur de nœud tiers. Avec ce message de sortie signé, les validateurs peuvent déléguer les opérations de noeud tout en maintenant leur capacité de retirer en toute sécurité et à tout moment leurs fonds, sans avoir à demander la permission à quiconque. + +EIP-7514 apporte une restriction de la distribution d'ETH en limitant le taux de "churn", afin que les validateurs rejoignent le réseau par groupe de huit (8) maximum pour chaque période. Dans la mesure où la distribution de l'ETH est proportionnelle à la totalité des ETH mis en jeu, limiter le nombre de validateurs bloque la _croissance_ d'ETH nouvellement distribués, tout en réduisant les besoins en matériel informatique pour les opérateurs de noeud, aidant ainsi la décentralisation. + + + +
              +
            • EIP-4788 - Racine du bloc phare dans l'EVM
            • +
            • EIP-4844 - Transactions de blocs de fragmentation
            • +
            • EIP-7044 - Sorties volontaires signées perpétuellement valides
            • +
            • EIP-7045 - Augmentation de l'attestation maximale du créneau d'inclusion
            • +
            • EIP-7514 - Ajout d'une limite maximale de changement par époque
            • +
            + +
            + +- [Lire les spécifications de la mise à jour Deneb](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/) +- [FAQ Cancun-Deneb ("Dencun")](/roadmap/dencun/) + + + ## 2023 {#2023} ### Shanghai-Capella ("Shapella") {#shapella} @@ -150,7 +248,7 @@ La mise à niveau Altair était la première mise à niveau répertoriée pour l - [Lire les spécifications de la mise à niveau Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Anecdote ! {#altair-fun-fact} +#### Anecdote ! {#altair-fun-fact} Altair a été la première mise à jour majeure du réseau à disposer d'un délai de mise en œuvre précis. Toutes les mises à niveau antérieures étaient basées sur un numéro de bloc déclaré sur la chaîne de preuve de travail, dans laquelle les durées de blocage varient. La chaîne phare ne nécessite pas de résoudre de preuve de travail, mais fonctionne sur la base d'un système de périodes composées de 32 créneaux de 12 secondes pendant lesquels les validateurs peuvent proposer des blocs. C'est pourquoi nous savions exactement quand nous atteindrions l'époque 74 240 et la date de sortie d'Altair ! @@ -166,6 +264,20 @@ Altair a été la première mise à jour majeure du réseau à disposer d'un dé La mise à niveau London a introduit [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), qui a réorganisé le marché des frais de transaction, ainsi que des changements dans le traitement des remboursements de gaz et le calendrier [Ice Age](/glossary/#ice-age). +#### Qu'est-ce que la mise à niveau de Londres / EIP-1559 ? {#eip-1559} + +Avant la mise à jour de Londres, Ethereum avait des blocs de taille fixe. En période de forte demande du réseau, ces blocs fonctionnaient à pleine capacité. En conséquence, les utilisateurs devaient souvent attendre que la demande diminue pour être inclus dans un bloc, ce qui entraînait une mauvaise expérience utilisateur. La mise à niveau de Londres a permis d'introduire des blocs de taille variable dans Ethereum. + +Dans le cadre de la [mise à niveau de Londres](/history/#london) d'août 2021, le mode de calcul des frais de transaction sur le réseau Ethereum a été modifié. Avant la mise à niveau de Londres, les frais étaient calculés sans distinguer les frais de `base` et de `priority`, comme suit : + +Disons qu'Alice devait payer à Marc la somme d'1 ETH. Dans la transaction, la limite de gaz est de 21 000 unités et le prix du gaz est de 200 gwei. + +Les frais totaux auraient été les suivants : `Gas units (limit) * Gas price per unit` (unités de gaz (limite) * Prix du gaz par unité) soit `21 000 * 200 = 4 200 000 gwei` ou 0,0042 ETH + +La mise en œuvre de [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) dans la mise à niveau de Londres a rendu le mécanisme de frais de transaction plus complexe, mais a rendu les frais de gaz plus prévisibles, ce qui s'est traduit par un marché des frais de transaction plus efficace. Les utilisateurs peuvent soumettre des transactions avec un`maxFeePerGas`, correspondant au montant qu'ils sont prêts à payer pour l'exécution de la transaction, et ce, en sachant qu'ils ne paieront pas plus que le prix du marché pour le gaz (`baseFeePerGas`), et qu'ils se feront rembourser tout excédent, moins leur pourboire. + +Cette vidéo explique l'EIP-1559 et les avantages qu'elle apporte : [EIP-1559 expliqué](https://www.youtube.com/watch?v=MGemhK9t44Q) + - [Êtes-vous un développeur d'applications décentralisées ? Assurez-vous de mettre à niveau vos bibliothèques et vos outils.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) - [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) - [Lire l'explication du site Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) @@ -316,7 +428,7 @@ La fourche Constantinople a :
            • EIP-145Optimise le coût de certaines actions en chaîne.
            • EIP-1014vous permet d'interagir avec des adresses qui n'ont pas encore été créées.
            • -
            • EIP-1052optimise le coût de certaines actions en chaîne.
            • +
            • EIP-1052introduit l'instruction EXTCODEHASH pour récupérer le hachage du code d'un autre contrat.
            • EIP-1234s'assure que la blockchain ne gèle pas 'avant la preuve d'enjeu et réduit les récompenses de 3 à 2 ETH par bloc.
            @@ -334,7 +446,7 @@ La fourche Constantinople a : La fourche Byzantium a : -- réduit les récompenses pour le [minage](/developers/docs/consensus-mechanisms/pow/mining/)des blocs de 5 à 3 ETH ; +- réduit les récompenses pour le [minage](/developers/docs/consensus-mechanisms/pow/mining/) des blocs de 5 à 3 ETH ; - retardé la [bombe de difficulté](/glossary/#difficulty-bomb) d'un an ; - ajouté la possibilité d'effectuer des appels sans changement d'état vers d'autres contrats ; - ajouté certaines méthodes de cryptographie pour permettre la [mise à l'échelle de la couche 2](/developers/docs/scaling/#layer-2-scaling). diff --git a/public/content/translations/fr/nft/index.md b/public/content/translations/fr/nft/index.md index deaca1918aa..3520a99155d 100644 --- a/public/content/translations/fr/nft/index.md +++ b/public/content/translations/fr/nft/index.md @@ -1,5 +1,6 @@ --- title: Jetons non fongibles (NFT) +metaTitle: Que sont les NFT ? | Avantages et utilisation description: Un aperçu des NFT sur Ethereum lang: fr template: use-cases diff --git a/public/content/translations/fr/roadmap/future-proofing/index.md b/public/content/translations/fr/roadmap/future-proofing/index.md index 7326e7a2bb1..e5f246b63b4 100644 --- a/public/content/translations/fr/roadmap/future-proofing/index.md +++ b/public/content/translations/fr/roadmap/future-proofing/index.md @@ -13,7 +13,7 @@ Certaines parties de la feuille de route ne sont pas nécessairement requises po Une partie de la sécurisation de la [cryptographie](/glossary/#cryptography) actuelle d'Ethereum sera compromise lorsque le calcul quantique deviendra une réalité. Bien que les ordinateurs quantiques soient probablement à des décennies de constituer une véritable menace pour la cryptographie moderne, Ethereum est construit pour être sécurisé pour les siècles à venir. Cela signifie rendre [Ethereum quantique résistant](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) dès que possible. -Le défi auquel sont confrontés les développeurs d'Ethereum est que le protocole actuel de [preuve d'enjeu](/glossary/#pos)repose sur un système de signature très efficace connu sous le nom de BLS pour regrouper les votes sur les [blocs](/glossary/#block) valides. Ce schéma de signature est rompu par les ordinateurs quantiques, mais les alternatives de résistance quantique ne sont pas aussi efficaces. +Le défi auquel sont confrontés les développeurs d'Ethereum est que le protocole actuel de [preuve d'enjeu](/glossary/#pos) repose sur un système de signature très efficace connu sous le nom de BLS pour regrouper les votes sur les [blocs](/glossary/#block) valides. Ce schéma de signature est rompu par les ordinateurs quantiques, mais les alternatives de résistance quantique ne sont pas aussi efficaces. Les [schémas d'engagement « KZG»](/roadmap/danksharding/#what-is-kzg) utilisés à plusieurs endroits à travers Ethereum pour générer des secrets cryptographiques sont connus pour être vulnérables. Actuellement, cela est contourné en utilisant des « configurations de confiance » où de nombreux utilisateurs génèrent un aléa qui ne peut pas être inversé par un ordinateur quantique. Cependant, la solution idéale serait simplement d'intégrer la cryptographie quantique sûre. Il y a deux approches principales qui pourraient devenir des remplacements efficaces pour le schéma BLS : la signature [basée sur le STARK](https://hackmd.io/@vbuterin/stark_aggregation) et la signature [basée sur le treillis](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175). **Ils sont encore en cours de recherche et de prototype**. diff --git a/public/content/translations/fr/roadmap/merge/index.md b/public/content/translations/fr/roadmap/merge/index.md index d02bccd1788..b500e2f32c2 100644 --- a/public/content/translations/fr/roadmap/merge/index.md +++ b/public/content/translations/fr/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Développeurs de dApps et de contrats intelligents" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -La Fusion s'est accompagnée de changements apportés au consensus, qui incluent également des changements liés à :< +La Fusion s'est accompagnée de changements apportés au consensus, qui incluent également des changements liés à :
            • la structure d'un bloc
            • diff --git a/public/content/translations/fr/roadmap/statelessness/index.md b/public/content/translations/fr/roadmap/statelessness/index.md index c170da0ca0a..4fe040ffee1 100644 --- a/public/content/translations/fr/roadmap/statelessness/index.md +++ b/public/content/translations/fr/roadmap/statelessness/index.md @@ -16,7 +16,7 @@ Des disques durs moins coûteux peuvent être utilisés pour stocker les donnée Il y a plusieurs façons de réduire la quantité de données que chaque nœud doit stocker, chacune nécessitant que le protocole au cœur d'Ethereum soit mis à jour à des degrés différents : -- **Expiration de l'historique** : permet aux noeuds de se débarrasser des données d'état plus anciennes que X blocs, mais ne change pas la manière dont les clients Ethereum gèrent les données d'état +- **Expiration de l'historique** : permet aux noeuds de se débarrasser des données d'état plus anciennes que X blocs, mais ne change pas la manière dont les clients Ethereum gèrent les données d'état. - **Expiration d'état** : permet aux données d'état qui ne sont pas utilisées fréquemment de devenir inactives. Les données inactives peuvent être ignorées par les clients jusqu'à ce qu'elles soient ressuscitées. - **Absence d'état faible** : seuls les producteurs de blocs ont besoin d'accéder aux données d'état complètes, les autres noeuds peuvent vérifier les blocs sans base de données locale. - **Absence d'état forte** : aucun noeud n'a besoin d'accéder aux données d'état complètes. diff --git a/public/content/translations/fr/security/index.md b/public/content/translations/fr/security/index.md index ec129dbd13b..708d219a50d 100644 --- a/public/content/translations/fr/security/index.md +++ b/public/content/translations/fr/security/index.md @@ -19,7 +19,7 @@ L'intérêt grandissant pour la cryptomonnaie amène avec lui un risque croissan Une mauvaise compréhension de la façon dont fonctionnent les cryptomonnaies peut amener à des erreurs coûteuses. Par exemple, si quelqu'un prétend être un agent d'un service client qui peut vous rendre vos ETH perdus en échange de vos clés privées, ils s'attaquent aux personnes ne comprenant pas qu'Ethereum est un réseau décentralisé manquant de ce genre de fonctionnalité. S'informer sur le fonctionnement d'Ethereum est un investissement qui en vaut la peine. - Qu'est-ce qu'Ethereum ? + Qu'est-ce qu'Ethereum ? diff --git a/public/content/translations/fr/smart-contracts/index.md b/public/content/translations/fr/smart-contracts/index.md index b0b036ed4d7..85fb2bf8edc 100644 --- a/public/content/translations/fr/smart-contracts/index.md +++ b/public/content/translations/fr/smart-contracts/index.md @@ -1,5 +1,6 @@ --- title: Contrats intelligents +metaTitle: "Contrats intelligents : quels sont les avantages" description: Une introduction non technique aux contrats intelligents lang: fr --- @@ -76,7 +77,6 @@ Ils peuvent effectuer des calculs, produire de la monnaie, stocker des données, ## Complément d'information {#further-reading} - [Comment les contrats intelligents vont changer le monde](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contrats intelligents : la technologie de la blockchain qui va remplacer les juristes](https://blockgeeks.com/guides/smart-contracts/) - [Les contrats intelligents pour les développeurs](/developers/docs/smart-contracts/) - [Apprenez à rédiger des contrats intelligents](/developers/learning-tools/) - [Maîtriser Ethereum - Qu'est-ce qu'un contrat intelligent ?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/fr/staking/solo/index.md b/public/content/translations/fr/staking/solo/index.md index 0032e1d68cb..bbb0f8d3f8c 100644 --- a/public/content/translations/fr/staking/solo/index.md +++ b/public/content/translations/fr/staking/solo/index.md @@ -25,7 +25,7 @@ Les validateurs à domicile sont responsables du fonctionnement du matériel né Un validateur à domicile reçoit des récompenses directement du protocole pour le maintien de son validateur en bon état de fonctionnement et en ligne. -## Pourquoi miser à domicile ? {#why-stake-solo} +## Pourquoi effectuer des mises en jeu depuis chez soi ? {#why-stake-solo} La mise en jeu à domicile demande plus de responsabilités, mais vous donne un contrôle maximal sur vos fonds et votre configuration de mise en jeu. diff --git a/public/content/translations/ga/bridges/index.md b/public/content/translations/ga/bridges/index.md new file mode 100644 index 00000000000..5b2863dfb47 --- /dev/null +++ b/public/content/translations/ga/bridges/index.md @@ -0,0 +1,139 @@ +--- +title: Réamhrá ar dhroichid bhlocshlabhra +description: Ceadaíonn Droichid úsáideoirí a gcuid cistí a bhogadh thar bhlocshlabhraí éagsúla +lang: ga +--- + +# Droichid Bhlocshlabhra {#prerequisites} + +_Tá Web3 tagtha chun cinn ina éiceachóras de bhlocshlabhraí L1 agus réitigh scálaithe L2, gach ceann acu deartha le cumais uathúla agus comhbhabhtálacha. De réir mar a mhéadaíonn líon na bprótacal blocshlabhra, is amhlaidh a thagann méadú ar an éileamh ar shócmhainní a aistriú thar shlabhraí. Chun an t-éileamh seo a chomhlíonadh, tá droichid de dhíth orainn._ + + + +## Cad is droichid ann? {#what-are-bridges} + +Oibríonn droichid bhlocshlabhra díreach cosúil leis na droichid atá ar eolas againn sa domhan fisiceach. Díreach mar a nascann droichead fisiceach dhá shuíomh fisiceach, nascann droichead blocshlabhra dhá éiceachóras blocshlabhra. **Éascaíonn droichid cumarsáid idir blocshlabhraí trí fhaisnéis agus sócmhainní a aistriú**. + +Déanaimis machnamh ar shampla: + +Is as SAM thú agus tá turas chun na hEorpa á phleanáil agat. Tá USD agat, ach teastaíonn EUR uait le caitheamh. Chun do USD a mhalartú le haghaidh EUR is féidir leat malartú airgeadra a úsáid ar tháille bheag. + +Ach, cad a dhéanfaidh tú más mian leat malartú comhchosúil a dhéanamh chun [blocshlabhra](/glossary/#blockchain) eile a úsáid? Deirimis gur mhaith leat [ETH](/glossary/#ether) a mhalartú ar Ethereum Mainnet le haghaidh ETH ar [Arbitrum](https://arbitrum.io/). Cosúil leis an malartú airgeadra a rinneamar le haghaidh EUR, ní mór dúinn meicníocht chun ár gcuid ETH a bhogadh ó Ethereum go Arbitrum. Déanann droichid idirbheart den sórt sin is féidir. Sa chás seo, [Tá droichead dúchais ag Arbitrum](https://bridge.arbitrum.io/) a fhéadfaidh ETH a aistriú ó Mainnet go Arbitrum. + +## Cén fáth a bhfuil droichid de dhíth orainn? {#why-do-we-need-bridges} + +Tá a gcuid teorainneacha ag gach blocshlabhra. Chun go n-éireodh le Ethereum scála agus coinneáil suas leis an éileamh, bhí [rollaithe](/glossary/#rollups) ag teastáil uaidh. De rogha air sin, déantar L1anna cosúil le Solana agus Avalanche a dhearadh ar bhealach difriúil chun tréchur níos airde a chumasú ach ar chostas an díláraithe. + +Mar sin féin, forbraítear gach blocshlabhra i dtimpeallachtaí iargúlta agus tá rialacha éagsúla agus meicníochtaí [comhdhearcaidh](/glossary/#consensus) acu. Ciallaíonn sé sin nach féidir leo cumarsáid dhúchasach a dhéanamh, agus ní féidir le comharthaí gluaiseacht faoi shaoirse idir blocshlabhraí. + +Tá droichid ann chun blocshlabhra a nascadh, rud a ligeann d’aistriú faisnéise agus comharthaí eatarthu. + +**Le droichead cumasaítear**: + +- aistriú tras-shlabhra sócmhainní agus faisnéise. +- [daipeanna](/glossary/#dapp) chun rochtain a fháil ar láidreachtaí na mblocshlabhraí éagsúla – ar an gcaoi sin feabhsaítear a gcumas (mar go bhfuil níos mó spáis dearaidh ag prótacail anois don nuálaíocht). +- úsáideoirí chun rochtain a fháil ar ardáin nua agus na buntáistí a bhaineann le slabhraí éagsúla a ghiaráil. +- forbróirí ó éiceachórais blocshlabhraí éagsúla chun comhoibriú agus ardáin nua a thógáil do na húsáideoirí. + +[Conas comharthaí a aistriú go ciseal 2](/guides/how-to-use-a-bridge/) + + + +## Cásanna úsáide droichid {#bridge-use-cases} + +Seo a leanas roinnt cásanna inar féidir leat droichead a úsáid: + +### Táillí idirbheartaíochta níos ísle {#transaction-fees} + +Cuir is gcás go bhfuil ETH agat ar Ethereum Mainnet ach ba mhaith leat táillí idirbheart níos saoire chun daipeanna éagsúla a iniúchadh. Trí do chuid ETH a aistriú ón Mainnet go dtí rollaí Ethereum L2, is féidir leat tairbhe a bhaint as táillí idirbhirt níos ísle. + +### Daipeanna ar bhlocshlabhraí eile {#dapps-other-chains} + +If you’ve been using Aave on Ethereum Mainnet to supply USDT but the interest rate you may receive for supplying USDT using Aave on Polygon is higher. + +### Déan iniúchadh ar éiceachórais blocshlabhra {#explore-ecosystems} + +Má tá ETH agat ar Ethereum Mainnet agus ba mhaith leat alt L1 a iniúchadh chun triail a bhaint as a gcuid daipeanna dúchais. Is féidir leat droichead a úsáid chun do chuid ETH a aistriú ó Ethereum Mainnet go dtí alt L1. + +### Sócmhainní dúchasacha crypto a bheith agat {#own-native} + +Deirimis gur mhaith leat Bitcoin dúchais (BTC) a bheith agat, ach níl cistí agat ach ar Ethereum Mainnet. Chun nochtadh do BTC a fháil ar Ethereum, is féidir leat Bitcoin Fillte (WBTC) a cheannach. Mar sin féin, is comhartha [ERC-20](/glossary/#erc-20) é WBTC ó dhúchas do líonra Ethereum, rud a chiallaíonn gur leagan Ethereum de Bitcoin é agus ní an tsócmhainn bhunaidh ar bhlocshlabhra Bitcoin. Chun BTC dúchais a bheith agat, bheadh ​​ort do shócmhainní a aistriú ó Ethereum go Bitcoin trí dhroichead a úsáid. Leis sin déanfar droichead do do chuid WBTC agus déanfar é a thiontú ina BTC dúchais. Mar mhalairt air sin, b'fhéidir gur leat BTC agus gur mhaith leat é a úsáid i bprótacail Ethereum [DeFi](/glossary/#defi). Bheadh ​​gá leis an mbealach eile a nascadh, ó BTC go WBTC ar féidir a úsáid ansin mar shócmhainn ar Ethereum. + + + Is féidir leat gach rud thuas a dhéanamh freisin trí úsáid a bhaint as malartán láraithe. Mar sin féin, mura bhfuil do chistí ar mhalartú cheana féin, bheadh ​​ilchéimeanna i gceist leis, agus is dócha go mbeadh tú níos fearr as droichead a úsáid. + + + + +## Cineálacha droichead {#types-of-bridge} + +Tá go leor cineálacha dearaí agus castachtaí ag droichid. Go ginearálta, bíonn dhá chatagóir ag droichid: droichid iontaofa agus gan iontaoibh. + +| Droichid Iontaofa | Droichid Gan Iontaoibh | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| Braitheann droichid iontaofa ar aonán lárnach nó ar chóras lárnach dá n-oibríochtaí. | Feidhmíonn droichid gan iontaoibh trí chonarthaí cliste agus halgartaim a úsáid. | +| Tá boinn tuisceana iontaoibhe acu maidir le cúram cistí agus slándáil an droichid. Braitheann úsáideoirí den chuid is mó ar cháil an oibreora droichid. | Tá siad iontaofa, i.e., tá slándáil an droichid mar an gcéanna le slándáil an bhunshlabhra. | +| Ní mór d'úsáideoirí smacht a ghéileadh ar a gcuid sócmhainní crypto. | Trí [chonarthaí cliste](/glossary/#smart-contract), cuireann droichid neamhiontaofa ar chumas úsáideoirí fanacht i gceannas ar a gcuid cistí. | + +Go hachomair, is féidir linn a rá go bhfuil boinn tuisceana iontaobhais ag droichid iontaofa, ach go ndéantar iontaoibh a íoslaghdú ar dhroichid neamhiontaofa agus nach ndéanann siad boinn tuisceana iontaoibhe nua thar na cinn de na fearainn bhunúsacha. Seo mar is féidir cur síos a dhéanamh ar na téarmaí seo: + +- **Gan iontaibh**: a bhfuil an t-urrús comhionann leis na fearainn bhunúsacha. Mar atá tuairiscithe ag [Arjun Bhuptani san alt seo.](https://medium.com/connext/the-interoperability-trilemma-657c2cf69f17) +- **Boinn tuisceana iontaobhais:** dul ar shiúl ó shlándáil na bhfearann ​​foluiteacha trí fhíoraitheoirí seachtracha a chur leis an gcóras, rud a fhágann nach bhfuil sé chomh slán go cripteacnamúil. + +Chun tuiscint níos fearr a fháil ar na príomhdhifríochtaí idir an dá chur chuige, glacaimis sampla: + +Samhlaigh go bhfuil tú ag seicphointe slándála an aerfoirt. Tá dhá chineál seicphointí ann: + +1. Seicphointí Láimhe — á n-oibriú ag oifigigh a sheiceálann de láimh sonraí uile do thicéad agus aitheantais sula dtugann siad an pas bordála duit. +2. Féinchlárú - á oibriú ag meaisín ina gcuireann tú sonraí do eitilte isteach agus ina bhfaigheann tú an pas bordála má dhéantar gach rud a sheiceáil. + +Tá seicphointe láimhe cosúil le samhail iontaofa mar go mbraitheann sé ar thríú páirtí, i.e., na hoifigigh, dá oibríochtaí. Mar úsáideoir, tá muinín agat as na hoifigigh chun na cinntí cearta a dhéanamh agus do chuid faisnéise príobháideacha a úsáid i gceart. + +Tá an fhéinsheiceáil isteach cosúil le samhail gan iontaoibh toisc go mbaineann sé ról an oibreora agus úsáideann sé teicneolaíocht dá oibríochtaí. Fanann úsáideoirí i gcónaí i gceannas ar a gcuid sonraí agus ní gá dóibh muinín a bheith acu as tríú páirtí lena bhfaisnéis phríobháideach. + +Glacann go leor réiteach tógála droichid samhlacha idir an dá fhoirceann seo le leibhéil éagsúla d’iontaofacht. + + + +## Bain úsáid as droichead {#use-bridge} + +Trí dhroichid a úsáid is féidir leat do chuid sócmhainní a bhogadh thar bhlocshlabhraí éagsúla. Seo roinnt acmhainní a chabhróidh leat droichid a aimsiú agus a úsáid: + +- **[Achoimre ar Dhroichid L2BEAT](https://l2beat.com/bridges/summary) & [Anailís Riosca ar Dhroichid L2BEAT](https://l2beat.com/bridges/risk)**: Achoimre chuimsitheach ar dhroichid éagsúla, lena n-áirítear sonraí ar sciar den mhargadh, cineál droichid, agus slabhraí cinn scríbe. Tá anailís riosca ag L2BEAT freisin maidir le droichid, ag cabhrú le húsáideoirí cinntí eolasacha a dhéanamh agus iad ag roghnú droichead. +- **[Achoimre ar Dhroichead DefiLlama](https://defillama.com/bridges/Ethereum)**: Achoimre ar mhéideanna droichead thar líonraí Ethereum. + + + +## Riosca a bhaineann le húsáid droichid {#bridge-risk} + +Tá droichid sna céimeanna luathfhorbartha. Is dócha nach bhfuil an dearadh droichid is fearr aimsithe fós. Tá riosca ag baint le hidirghníomhú le droichead ar bith: + +- ** Riosca Cliste Conartha -** an riosca go mbeidh fabht sa chód a d'fhéadfadh cistí úsáideora a chailliúint +- ** Riosca Teicneolaíochta -** d'fhéadfadh teip bogearraí, cód bugaí, earráid dhaonna, turscar agus ionsaithe mailíseacha cur isteach ar oibríochtaí úsáideoirí + +Ina theannta sin, ós rud é go gcuireann droichid iontaofa le boinn tuisceana iontaobhais, tá rioscaí breise ag baint leo amhail: + +- ** Riosca Cinsireachta —** go teoiriciúil is féidir le hoibreoirí droichead stop a chur le húsáideoirí a gcuid sócmhainní a aistriú tríd an droichead +- ** Riosca Coimeádta —** is féidir le hoibreoirí droichid a chlaonpháirteachas chun cistí na n-úsáideoirí a ghoid + +Tá cistí úsáideora i mbaol: + +- má tá fabht sa chonradh cliste +- má dhéanann an t-úsáideoir earráid +- má tá an castachtaí bunúsach haiceáilte +- má tá rún mailíseach ag oibritheoirí an droichid maidir le droichead iontaofa +- má dhéantar haiceáil ar an droichead + +Haic amháin a rinneadh le déanaí ná droichead Wormhole ag Solana, [inar goideadh 120k wETH ($325 milliún USD) le linn na haiceála](https://rekt.news/wormhole-rekt/). Bhain droichid le go leor de na [haiceanna is fearr i mblocshlabhraí](https://rekt.news/leaderboard/). + +Tá droichid ríthábhachtach chun úsáideoirí a chur ar bord ar Ethereum L2anna, agus fiú d'úsáideoirí atá ag iarraidh éiceachórais éagsúla a iniúchadh. Mar sin féin, i bhfianaise na rioscaí a bhaineann le hidirghníomhú le droichid, ní mór d'úsáideoirí na comhbhabhtálacha atá á ndéanamh ag na droichid a thuiscint. Seo roinnt [straitéisí slándála trasshlabhra](https://blog.debridge.finance/10-strategies-for-cross-chain-security-8ed5f5879946). + + + +## Tuilleadh léitheoireachta {#further-reading} +- [EIP-5164: Cross-Chain Execution](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658) - _June 18, 2022 - Brendan Asselstine_ +- [L2Bridge Risk Framework](https://gov.l2beat.com/t/l2bridge-risk-framework/31) - _July 5, 2022 - Bartek Kiepuszewski_ +- ["Why the future will be multi-chain, but it will not be cross-chain."](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) - _January 8, 2022 - Vitalik Buterin_ +- [Harnessing Shared Security For Secure Cross-Chain Interoperability: Lagrange State Committees And Beyond](https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) - _June 12, 2024 - Emmanuel Awosika_ +- [The State Of Rollup Interoperability Solutions](https://research.2077.xyz/the-state-of-rollup-interoperability) - _June 20, 2024 - Alex Hook_ + diff --git a/public/content/translations/ga/dao/index.md b/public/content/translations/ga/dao/index.md new file mode 100644 index 00000000000..f859a589a51 --- /dev/null +++ b/public/content/translations/ga/dao/index.md @@ -0,0 +1,167 @@ +--- +title: Cad is DAO ann? +metaTitle: Cad is DAO ann? | Eagraíocht Uathrialach Dhíláraithe +description: Forbhreathnú ar DAOnna ar Ethereum +lang: ga +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /images/use-cases/dao-2.png +alt: Léiriú ó DAO a vótáil ar thogra. +summaryPoint1: Pobail faoi úinéireacht ball gan ceannaireacht láraithe. +summaryPoint2: Bealach sábháilte chun comhoibriú le strainséirí idirlín. +summaryPoint3: Áit shábháilte chun cistí a thiomnú do chúis shonrach. +--- + +## Cad iad DAOanna? {#what-are-daos} + +Is eagraíocht faoi chomhúinéireacht é DAO a oibríonn i dtreo misean comhroinnte. + +Ligeann DAO dúinn oibriú le daoine den mheon céanna ar fud na cruinne gan muinín a bheith againn as ceannaire carthanach chun na cistí nó na hoibríochtaí a bhainistiú. Níl aon CEO ann ar féidir leis airgead a chaitheamh gan mhachnamh nó níl aon CFO atá in ann na leabhair a chúbláil. Ina áit sin, trí na rialacha atá bunaithe ar bhlocshlabhra a chuirtear isteach sa chód sainítear conas a oibríonn an eagraíocht agus conas a chaitear cistí. + +Tá stórais ionsuite acu nach bhfuil an t‑údarás ag éinne rochtain a fháil orthu gan cead a fháil ón ngrúpa. Decisions are governed by proposals and voting to ensure everyone in the organization has a voice, and everything happens transparently [onchain](/glossary/#onchain). + +## Cén fáth a bhfuil DAO ag teastáil uainn? {#why-dao} + +Teastaíonn go leor muiníne as na daoine a bhfuil tú ag obair leo chun eagraíocht a bhfuil maoiniú agus airgead i gceist léi a thosú. Ach tá sé deacair muinín a bheith agat as duine nach raibh tú ag idirghníomhú leis ach ar an idirlíon. Le DAOnna ní gá muinín a bheith agat as aon duine eile sa ghrúpa, díreach as cód an DAO, atá 100% trédhearcach agus atá infhíoraithe ag aon duine. + +Leis sin cruthaítear go leor deiseanna nua do chomhoibriú agus do chomhordú domhanda. + +### Comparáid {#dao-comparison} + +| DAO | Eagraíocht thraidisiúnta | +| ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| De ghnáth cothrom, agus go hiomlán daonlathach. | De ghnáth ordlathach. | +| Vótáil ag teastáil ó chomhaltaí chun aon athruithe a chur i bhfeidhm. | Ag brath ar an struchtúr, is féidir athruithe a éileamh ó pháirtí amháin, nó féadfar vótáil a thairiscint. | +| Suimítear na vótaí, agus cuirtear an toradh i bhfeidhm go huathoibríoch gan idirghabhálaí iontaofa. | Má cheadaítear vótáil, déantar na vótaí a shuimiú go hinmheánach, agus ní mór toradh na vótála a láimhseáil de láimh. | +| Déantar na seirbhísí a thairgtear a láimhseáil go huathoibríoch ar bhealach díláraithe (mar shampla dáileadh cistí daonchairdiúla). | Éilítear go láimhseálfadh duine na vótaí, nó go rialófaí an t‑uathoibriú go lárnach, seans maith go mbeadh cúbláil i gceist. | +| Tá gach gníomhaíocht trédhearcach agus go hiomlán poiblí. | Is gnách go mbíonn an ghníomhaíocht príobháideach, agus teoranta don phobal. | + +### Samplaí DAO {#dao-examples} + +Chun é seo a shoileiriú duit, seo roinnt samplaí den tslí a d’fhéadfá DAO a úsáid: + +- **Carthanas** – d’fhéadfaí glacadh le tabhartais ó dhuine ar bith ar domhan agus d'fhéadfaí vótáil ar na cúiseanna atá le maoiniú. +- **Úinéireacht chomhchoiteann** – d’fhéadfaí sócmhainní fisiceacha nó digiteacha a cheannach agus d'fhéadfadh baill vótáil ar conas iad a úsáid. +- **Fiontair agus deontais** – d’fhéadfaí ciste fiontair a chruthú trína gcomhthiomsófaí caipiteal infheistíochta agus lenar vótálfaí ar son fiontar chun tacú leo. D'fhéadfaí airgead aisíoctha a athdháileadh níos déanaí ar chomhaltaí an DAO. + + + +## Conas a oibríonn DAOnna? {#how-daos-work} + +Is é cnámh droma DAO a [chonradh cliste](/glossary/#smart-contract), ina sainítear rialacha na heagraíochta agus trína sealbhaítear státchiste an ghrúpa. Tráth a mbeidh an conradh beo ar Ethereum, ní féidir le duine ar bith na rialacha a athrú ach amháin trí vóta. Má dhéanann duine ar bith iarracht rud éigin a dhéanamh nach bhfuil clúdaithe ag na rialacha agus an loighic sa chód, teipfidh air. Agus toisc go bhfuil an státchiste sainithe ag an gconradh cliste freisin ciallaíonn sé sin nach féidir le duine ar bith an t‑airgead a chaitheamh gan ceadú an ghrúpa ach an oiread. Leis sin fágtar nach bhfuil údarás lárnach ag teastáil ó DAOnna. Ina áit sin, déanann an grúpa cinntí le chéile, agus údaraítear íocaíochtaí go huathoibríoch nuair a fhaomhtar vótaí. + +Is féidir é seo a dhéanamh toisc go bhfuil conarthaí cliste cosanta ó thaobh baic de nuair a théann siad beo ar Ethereum. Ní féidir leat go díreach an cód a chur in eagar (rialacha DAOnna) gan daoine a bheith á thabhairt faoi deara mar go bhfuil gach rud poiblí. + +## Ethereum agus DAOnna {#ethereum-and-daos} + +Is é Ethereum an bunús foirfe do DAOnna ar roinnt cúiseanna: + +- Tá comhdhearcadh Ethereum féin díláraithe agus sách seanbhunaithe chun go mbeidh muinín ag eagraíochtaí as an líonra. +- Ní féidir fiú le húinéirí cóid cód conartha chliste a mhodhnú tráth a mbeidh sé beo. Leis sin ligtear don DAO feidhmiú de réir na rialacha a raibh sé cláraithe leo. +- Is féidir le conarthaí cliste cistí a sheoladh/a fháil. Gan é sin a bheith ann theastódh ​​idirghabhálaí iontaofa chun cistí grúpa a bhainistiú. +- Tá sé cruthaithe go bhfuil pobal Ethereum níos comhoibríche ná mar atá sé iomaíoch, rud a ligeann do dhea‑chleachtas agus do chóras tacaíochta teacht chun cinn go tapaidh. + +## Rialachas DAO {#dao-governance} + +Tá go leor gnéithe le breithniú agus DAO á rialú, mar shampla conas a oibríonn vótáil agus moltaí. + +### Toscaireacht {#governance-delegation} + +Tá an toscaireacht cosúil le leagan DAO den daonlathas ionadaíoch. Tarmligeann sealbhóirí comharthaí vótaí d'úsáideoirí a ainmníonn iad féin agus a gheallann an prótacal a mhaoirsiú agus fanacht ar an eolas. + +#### Sampla cáiliúil {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Is féidir le sealbhóirí ENS a vótaí a tharmligean chuig baill den phobal rannpháirteach chun ionadaíocht a dhéanamh orthu. + +### Rialachas na n‑idirbheart uathoibríoch {#governance-example} + +I go leor DAOnna, déanfar idirbhearta go huathoibríoch má vótálann córam comhaltaí ar a shon. + +#### Sampla cáiliúil {#governance-example} + +[Ainmfhocail](https://nouns.wtf) – In Ainmfhocail DAO, déantar idirbheart go huathoibríoch má chomhlíontar córam vótaí agus má vótálann tromlach na vótaí ar a shon, chomh fada agus nach gcuireann na bunaitheoirí ar ceal é. + +### Rialachas ilsínithe {#governance-example} + +Cé go bhféadfadh na mílte ball vótála a bheith ag DAOnna, is féidir le cistí maireachtáil i [sparán](/glossary/#wallet) atá roinnte idir 5-20 ball gníomhach den phobal a bhfuil muinín astu agus a bhfuil doxx de ghnáth (féiniúlachtaí poiblí ar eolas ag an bpobal). Tar éis vóta, feidhmíonn sínitheoirí [ilsínithe](/glossary/#multisig) toil an phobail. + +## Dlíthe DAO {#dao-laws} + +I 1977, in Wyoming cumadh an LLC, rud a dhéanann fiontraithe a chosaint agus a chuireann teorainn lena ndliteanas. Níos déanaí, bhí siad chun tosaigh ar an dlí DAO lena mbunaítear stádas dlíthiúil do DAOnna. Faoi láthair tá dlíthe DAO i bhfoirm éigin i bhfeidhm in Wyoming, in Vermont, agus in Oileáin Mheiriceánacha na Maighdean. + +### Sampla cáiliúil {#law-example} + +[CityDAO](https://citydao.io) – Bhain CityDAO úsáid as dlí DAO Wyoming chun 40 acra talún a cheannach in aice le Páirc Náisiúnta Yellowstone. + +## Ballraíocht DAO {#dao-membership} + +Tá múnlaí éagsúla ann do bhallraíocht DAO. Is féidir gur ar bhallraíocht a bhraitheann conas a oibríonn an vótáil agus príomhchodanna eile den DAO. + +### Ballraíocht chomhartha-bhunaithe {#token-based-membership} + +Go hiomlán [gan chead](/glossary/#permissionless) de ghnáth, ag brath ar an gcomhartha a úsáidtear. Den chuid is mó is féidir na comharthaí rialachais seo a thrádáil gan chead ar [mhalartán díláraithe](/glossary/#dex). Ní mór cinn eile a thuilleamh trí leachtacht nó ‘cruthúnas oibre’ éigin eile a sholáthar. Slí amháin nó slí eile, tá cead vótála ag duine ar bith a bhfuil seilbh an chomhartha aige. + +_Úsáidtear go hiondúil chun prótacail leathana dhíláraithe agus/nó comharthaí féin a rialú._ + +#### Sampla cáiliúil {#token-example} + +[MakerDAO](https://makerdao.com) – Tá comhartha MakerDAO darb ainm MKR ar fáil go forleathan ar mhalartáin dhíláraithe agus is féidir le duine ar bith cead vótála a cheannach ar thodhchaí phrótacal Maker. + +### Ballraíocht scair-bhunaithe {#share-based-membership} + +Tá níos mó ceaduithe ag DAOnna scairbhunaithe, ach tá siad fós oscailte go leor. Is féidir le chomhalta ionchasach ar bith togra a chur isteach chun dul isteach sa DAO, de ghnáth trí ómós de luach éigin i bhfoirm comharthaí nó saothair a thairiscint. Is ionann scaireanna agus cumhacht díreach vótála agus úinéireacht. Is féidir le comhaltaí imeacht am ar bith lena sciar comhréireach den stórchiste. + +_Úsáidtear é go hiondúil le haghaidh eagraíochtaí atá níos dlúithe, atá dírithe ar dhaoine, amhail carthanachtaí, grúpaí oibrithe agus clubanna infheistíochta. Is féidir leis prótacail agus comharthaí a rialú freisin._ + +#### Sampla cáiliúil {#share-example} + +[MolochDAO](http://molochdao.com/) – Tá MolochDAO dírithe ar thionscadail Ethereum a mhaoiniú. Teastaíonn moladh ballraíochta uathu ionas gur féidir leis an ngrúpa a mheas an bhfuil an saineolas agus an caipiteal riachtanach agat chun breithiúnais eolasacha a dhéanamh faoi dheontaithe ionchasacha. Ní féidir leat rochtain ar an DAO a cheannach ar an margadh oscailte. + +### Ballraíocht bunaithe ar cháil {#reputation-based-membership} + +Trí cháil an duine léirítear cruthúnas na rannpháirtíochta agus bronntar cead vótála sa DAO. Murab ionann agus ballraíocht atá bunaithe ar chomharthaí nó scaireanna, ní aistríonn DAOnna atá bunaithe ar cháil úinéireacht chuig rannpháirtithe. Ní féidir cáil a cheannach, a aistriú nó a tharmligean; ní mór do bhaill an DAO clú a thuilleamh tríd an rannpháirtíocht. Onchain voting is permissionless and prospective members can freely submit proposals to join the DAO and request to receive reputation and tokens as a reward in exchange for their contributions. + +_Úsáidtear é go hiondúil le haghaidh forbairt díláraithe agus rialachas prótacail agus [daipeanna](/glossary/#dapp), ach a oireann go maith freisin do shraith éagsúil eagraíochtaí amhail carthanachtaí, grúpaí oibrithe, clubanna infheistíochta, srl._ + +#### Sampla cáiliúil {#reputation-example} + +[DXdao](https://DXdao.eth.limo) – Ba chomharghrúpa ceannasach domhanda é DXdao atá i mbun prótacail agus feidhmchláir dhíláraithe a thógáil agus a rialú ó 2019 i leith. Ghiaráil sé rialachas bunaithe ar chlú agus [comhdhearcadh holografach](/glossary/#holographic-consensus) chun cistí a chomhordú agus a bhainistiú, rud a chiallaigh nach bhféadfadh aon duine tionchar a cheannach ar a thodhchaí ná ar a rialachas. + +## Glac páirt / cuir tús le DAO {#join-start-a-dao} + +### Glac páirt in DAO {#join-a-dao} + +- [DAOnna phobal Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Liosta DAOnna de chuid DAOHaus](https://app.daohaus.club/explore) +- [Liosta DAOnna de chuid Tally.xyz](https://www.tally.xyz) + +### Cuir tús le DAO {#start-a-dao} + +- [Gair DAO le DAOHaus](https://app.daohaus.club/summon) +- [Cuir tús le DAO Gobharnóir le Tally](https://www.tally.xyz/add-a-dao) +- [Cruthaigh DAO faoi thiomáint Aragon](https://aragon.org/product) +- [Cuir tús le coilíneacht](https://colony.io/) +- [Cruthaigh DAO le comhdhearcadh holografach DAOstack](https://alchemy.daostack.io/daos/create) + +## Tuilleadh léitheoireachta {#further-reading} + +### Ailt DAO {#dao-articles} + +- [Cad is DAO ann?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Teach na DAOnna](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Meiteachluiche](https://wiki.metagame.wtf/) +- [Cad is DAO ann agus cad chuige dó?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Conas Pobal Digiteach faoi Thiomáint DAO a Thosú](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) +- [Cad is DAO ann?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [ Coinmarketcap](https://coinmarketcap.com) +- [Cad é Comhdhearcadh holagrafach?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [Ní corparáidí iad DAOnna: áit a bhfuil tábhacht ag baint le dílárú in eagraíochtaí uathrialacha le Vitalik](https://vitalik.eth.limo/general/2022/09/20/daos.html) +- [DAOnna, DACanna, DAnna agus Tuilleadh: Treoir Neamhiomlán Téarmaíochta](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blag Ethereum](https://blog.ethereum.org) + +### Físeáin {#videos} + +- [Cad é DAO in crypto?](https://youtu.be/KHm0uUPqmVE) +- [An féidir le DAO Cathair a Thógáil?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) + + + + diff --git a/public/content/translations/ga/decentralized-identity/index.md b/public/content/translations/ga/decentralized-identity/index.md new file mode 100644 index 00000000000..c4d53e458db --- /dev/null +++ b/public/content/translations/ga/decentralized-identity/index.md @@ -0,0 +1,191 @@ +--- +title: Féiniúlacht dhíláraithe +description: Cad is féiniúlacht dhíláraithe ann, agus cén fáth a bhfuil sé tábhachtach? +lang: ga +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /images/eth-gif-cat.png +summaryPoint1: Tá eisiúint, cothabháil agus rialú d'aitheantóirí láraithe ag córais céannachta thraidisiúnta. +summaryPoint2: Cuireann céannacht dhíláraithe deireadh le spleáchas ar thríú páirtithe láraithe. +summaryPoint3: A bhuí le crypto, tá na huirlisí ag úsáideoirí anois a n‑aitheantóirí agus a bhfianuithe féin a eisiúint, a shealbhú agus a rialú arís. +--- + +Tá an fhéiniúlacht mar bhonn agus mar thaca ag beagnach gach gné de do shaol inniu. Trí úsáid a bhaint as seirbhísí ar líne, cuntas bainc a oscaolt, vóta a chaitheamh i dtoghcháin, réadmhaoine a cheannach, post a fháil – ní mór do chéannacht a chruthú do na rudaí seo go léir. + +Mar sin féin, tá córais traidisiúnta bhainistíochta céannachta ag brath le fada ar idirghabhálaithe láraithe a dhéanann do chuid aitheantóirí agus [fhianuithe](/glossary/#attestation) a eisiúint, a shealbhú agus a rialú. Ciallaíonn sé sin nach féidir leat d’fhaisnéis a bhaineann le céannacht a rialú ná cinneadh a dhéanamh cé a bhfuil rochtain aige ar fhaisnéis inaitheanta phearsanta (PII) agus cé mhéad rochtain atá ag na páirtithe sin. + +Chun na fadhbanna seo a réiteach, tá córais céannachta díláraithe againn bunaithe ar bhlocshlabhraí poiblí cosúil le hEthereum. Tríd an gcéannacht díláraithe ligtear do dhaoine aonair a gcuid faisnéise a bhaineann le céannacht a bhainistiú. Le réitigh dhíláraithe céannachta, is féidir _tú_ aitheantóirí a chruthú agus do chuid fianuithe a éileamh agus a choinneáil gan a bheith ag brath ar údaráis lárnacha, amhail soláthraithe seirbhíse nó rialtais. + +## Cad is céannacht ann? {#what-is-identity} + +Faoin gcéannacht clúdaítear braistint an duine aonair air féin, arna sainmhíniú ag tréithe uathúla. Tagraíonn céannacht do bheith ina _dhuine aonair_, i.e., aonán daonna ar leith. D’fhéadfadh céannacht tagairt a dhéanamh freisin d’eintitis neamhdhaonna eile, amhail eagraíocht nó údarás. + + + +## Cad is aitheantóirí ann? {#what-are-identifiers} + +Is éard is aitheantóir ann píosa faisnéise a fheidhmíonn mar phointeoir do chéannacht nó do chéannacht ar leith. Áirítear ar aitheantóirí coitianta: + +- Ainm +- Uimhir leasa shóisialaigh/uimhir aitheantais chánach +- Uimhir fón póca +- Dáta agus áit bhreithe +- Dintiúir aitheantais dhigitigh, m.sh., seoltaí ríomhphoist, ainmneacha úsáideoirí, abhatáranna + +Déanann eintitis lárnacha na samplaí traidisiúnta seo d’aitheantóirí a eisiúint, a shealbhú agus a rialú. Teastaíonn cead uait ó do rialtas chun d’ainm a athrú nó ó ardán meáin shóisialta chun do hanla a athrú. + +## Buntáistí a bhaineann le céannacht dhíláraithe {#benefits-of-decentralized-identity} + +1. Le céannacht dhíláraithe méadaítear rialú an duine aonair ar fhaisnéis chéannachta. Is féidir aitheantóirí agus fianuithe díláraithe a fhíorú gan a bheith ag brath ar údaráis láraithe agus ar sheirbhísí tríú páirtí. + +2. Le réitigh díláraithe céannachta éascaítear modh gan iontaoibh, gan uaim agus cosanta príobháideachta chun céannacht úsáideora a fhíorú agus a bhainistiú. + +3. Baineann féiniúlacht dhíláraithe leas as teicneolaíocht bhlocshlabhra, rud a chruthaíonn muinín idir páirtithe éagsúla agus a sholáthraíonn ráthaíochtaí cripteagrafacha chun bailíocht na bhfianuithe a chruthú. + +4. Le céannacht dhíláraithe déantar sonraí aitheantais iniompartha. Stórálann úsáideoirí fianuithe agus aitheantóirí i sparán soghluaiste agus is féidir leo roinnt le páirtí ar bith dá rogha féin. Ní chuirtear aitheantóirí agus fianuithe díláraithe faoi ghlas i mbunachar sonraí na heagraíochta eisiúna. + +5. Ba cheart go n-oibreodh céannacht dhíláraithe go maith le teicneolaíochtaí [náid-eolas](/glossary/#zk-proof) atá ag teacht chun cinn a chuirfidh ar chumas daoine aonair a chruthú gur leo nó rud éigin go ndearna siad rud éigin gan a nochtadh cad é an rud sin. D’fhéadfadh sé seo a bheith ina bhealach cumhachtach chun muinín agus príobháideacht a chomhcheangal d’fheidhmchláir mar vótáil. + +6. Le céannacht dhíláraithe cumasaítear meicníochtaí [frith-Sybil](/glossary/#anti-sybil) chun a aithint nuair a bhíonn duine aonair amháin ag ligean air gur daoine iolracha é chun cluiche a dhéanamh nó turscar a dhéanamh ar chóras éigin. + +## Cásanna úsáide aitheantais díláraithe {#decentralized-identity-use-cases} + +Tá go leor cásanna úsáide féideartha ag baint le céannacht dhíláraithe: + +### 1. Logáil isteach uilíoch {#universal-dapp-logins} + +Is féidir le céannacht dhíláraithe cuidiú le fíordheimhniú díláraithe a chur in ionad logáil isteach atá bunaithe ar phasfhocal. Is féidir le soláthraithe seirbhíse fianuithe a eisiúint d'úsáideoirí, ar féidir iad a stóráil i sparán Ethereum. Sampla de fhianú is ea [NFT](/glossary/#nft) a thugann rochtain don sealbhóir ar phobal ar líne. + +Ansin chuirfeadh feidhm [Sínigh isteach le hEthereum](https://login.xyz/) ar chumas na bhfreastalaithe cuntas Ethereum an úsáideora a dhearbhú agus an fianú riachtanach a fháil óna seoladh cuntais. Ciallaíonn sé sin gur féidir le húsáideoirí rochtain a fháil ar ardáin agus ar shuímh ghréasáin gan pasfhocail fhada a chur de ghlanmheabhair agus feabhsaíonn sé an t‑eispéireas ar líne d'úsáideoirí. + +### 2. Fíordheimhniú KYC {#kyc-authentication} + +Le go leor seirbhísí ar líne a úsáid ní mór do dhaoine fianuithe agus dintiúir a sholáthar, amhail ceadúnas tiomána nó pas náisiúnta. Ach tá fadhb leis an gcur chuige seo mar is féidir faisnéis úsáideoirí príobháideacha a chur i mbaol agus ní féidir le soláthraithe seirbhíse barántúlacht an fhianaithe a fhíorú. + +Le céannacht díláraithe ligtear do chuideachtaí scipeáil ar ghnáthphróisis [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) agus féiniúlachtaí úsáideora a fhíordheimhniú trí Dintiúir Infhíoraithe. Leis sin laghdaítear costas bainistíochta aitheantais agus cuireann sé cosc ​​​​ar úsáid doiciméadú falsa. + +### 3. Pobail vótála agus ar líne {#voting-and-online-communities} + +Dhá fheidhmchlár nua ar chéannacht dhíláraithe iad vótáil ar líne agus na meáin shóisialta. Tá scéimeanna vótála ar líne so-ghabhálach i leith cúblála, go háirithe má chruthaíonn gníomhaithe mailíseacha céannachtaí bréagacha chun vóta a chaitheamh. Asking individuals to present onchain attestations can improve the integrity of online voting processes. + +Is féidir le céannacht dhíláraithe cabhrú le pobail ar líne a chruthú atá saor ó chuntais bhréige. For example, each user might have to authenticate their identity using an onchain identity system, like the Ethereum Name Service, reducing the possibility of bots. + +### 4. Cosaint frith-Sybil {#sybil-protection} + +Tá feidhmchláir bhronnta deontais a úsáideann [vótáil chuadratach](/glossary/#quadratic-voting) i mbaol [ionsaithe Sybil](/glossary/#sybil-attack) toisc go méadaítear luach deontais nuair a vótálann níos mó daoine ar a shon, rud a spreagann úsáideoirí a gcuid ranníocaíochtaí a roinnt thar go leor féiniúlachtaí. Cuidíonn céannachtaí díláraithe chun é seo a chosc tríd an ualach a ardú ar gach rannpháirtí lena chruthú gur daoine daonna iad i ndáiríre, cé gur minic nach mbíonn orthu faisnéis phríobháideach shonrach a nochtadh. + +## Cad is fianuithe ann? {#what-are-attestations} + +Is éard is fianú ann éileamh a dhéanann aonán amháin faoi eintiteas eile. Má tá cónaí ort sna Stáit Aontaithe, dearbhaíonn an ceadúnas tiomána arna eisiúint duit ag an Roinn Mótarfheithiclí (aonán amháin) go bhfuil cead dlíthiúil agat (aonán eile) carr a thiomáint. + +Tá fianuithe difriúil ó aitheantóirí. Tá an fianú _mar chuid_ den aitheantóir chun tagairt a dhéanamh do chéannacht áirithe, agus déanann sé éileamh maidir le tréith atá bainteach leis an gcéannacht seo. Mar sin, tá aitheantóirí ar do cheadúnas tiomána (ainm, dáta breithe, seoladh) ach is fianú é freisin maidir le do cheart dlíthiúil tiomána. + +### Cad is aitheantóirí díláraithe ann? {#what-are-decentralized-identifiers} + +Braitheann aitheantóirí traidisiúnta ar nós d’ainm dlíthiúil nó do sheoladh ríomhphoist ar thríú páirtithe – rialtais agus soláthraithe ríomhphoist. Tá aitheantóirí díláraithe (DIDanna) difriúil – ní eisíonn, ní bhainistíonn ná ní rialaíonn aon aonán lárnach iad. + +Eisíonn, sealbhaíonn agus rialaíonn daoine aonair aitheantóirí díláraithe. Is sampla é [Cuntas Ethereum](/glossary/#account) d'aitheantóir díláraithe. Is féidir leat an oiread cuntas agus is mian leat a chruthú gan cead ó aon duine agus gan gá iad a stóráil i gclár lárnach. + +Stóráiltear aitheantóirí díláraithe ar mhórleabhair dáilte ([blocshlabhraí](/glossary/#blockchain)) nó [líonraí idir comhghleacaithe](/glossary/#peer-to-peer-network). Fágann sé seo go bhfuil DIDeanna [ uathúil ar fud an domhain, inréite le hard-infhaighteacht, agus infhíoraithe go cripteagrafach](https://w3c-ccg.github.io/did-primer/). Is féidir aitheantóir díláraithe a bheith bainteach le heintitis éagsúla, lena n-áirítear daoine, eagraíochtaí nó institiúidí rialtais. + +## Cad a éascaíonn aitheantóirí díláraithe a bheith ann? {#what-makes-decentralized-identifiers-possible} + +### 1. Cripteagrafaíocht Eochracha Poiblí {#public-key-cryptography} + +Is beart slándála faisnéise í cripteagrafaíocht na heochrach poiblí a ghineann [eochair phoiblí](/glossary/#public-key) agus [eochair phríobháideach](/glossary/#private-key) le haghaidh aonáin. Úsáidtear eochair phoiblí [cripteagrafaíocht](/glossary/#cryptography) i líonraí blocshlabhra chun céannachtaí úsáideoirí a fhíordheimhniú agus chun úinéireacht sócmhainní digiteacha a chruthú. + +Tá eochracha poiblí agus príobháideacha ag roinnt aitheantóirí díláraithe, mar shampla cuntas Ethereum. Aithníonn an eochair phoiblí rialtóir an chuntais, agus is féidir leis na heochracha príobháideacha teachtaireachtaí don chuntas seo a shíniú agus a dhíchriptiú. Le cripteagrafaíocht eochrach poiblí soláthraítear na cruthúnais a theastaíonn chun aonáin a fhíordheimhniú agus chun pearsanú agus úsáid céannachtaí bréige a chosc, trí úsáid a bhaint as [sínithe cripteagrafaíochta](https://andersbrownworth.com/blockchain/public-private-keys/) chun gach éileamh a fhíorú. + +### 2. Stórais sonraí díláraithe {#decentralized-datastores} + +Feidhmíonn blocshlabhra mar chlár sonraí infhíoraithe: stór faisnéise oscailte, gan iontaoibh agus díláraithe. Mar gheall ar bhlocshlabhraí poiblí a bheith ann, cuirtear deireadh leis an ngá atá le haitheantóirí a stóráil i gclárlanna láraithe. + +Más gá do dhuine ar bith bailíocht aitheantóra díláraithe a dhearbhú, is féidir leo an eochair phoiblí ghaolmhar a chuardach ar an mblocshlabhra. Tá sé seo difriúil ó aitheantóirí traidisiúnta a éilíonn tríú páirtithe a fhíordheimhniú. + +## Conas a chumasaíonn aitheantóirí agus fianuithe díláraithe céannacht dhíláraithe? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Is ionann céannacht dhíláraithe agus an smaoineamh gur cheart go mbeadh faisnéis a bhaineann le haitheantas féinrialaithe, príobháideach agus iniompartha, agus aitheantóirí agus fianuithe díláraithe mar na bunchlocha tógála. + +I gcomhthéacs na céannachta díláraithe, tá fianuithe (ar a dtugtar [Dintiúir Infhíoraithe](https://www.w3.org/TR/vc-data-model/)) dobhearnaithe, go cripteagrafach éilimh infhíoraithe arna ndéanamh ag an eisitheoir. Tá gach fianú nó Creidmheas Infhíoraithe a eisíonn aonán (m.sh., eagraíocht) bainteach lena DID. + +Toisc go bhfuil DIDanna stóráilte ar an mblocshlabhra, is féidir le duine ar bith bailíocht fianaithe a fhíorú trí chros‑seiceáil a dhéanamh ar DID an eisitheora ar Ethereum. Go bunúsach, feidhmíonn blocshlabhra Ethereum mar eolaire domhanda trína n-éascaítear fíorú DIDanna a bhaineann le heintitis áirithe. + +Is iad aitheantóirí díláraithe an chúis go bhfuil fianuithe féinrialaithe agus infhíoraithe. Fiú mura bhfuil an t-eisitheoir ann a thuilleadh, bíonn cruthúnas ag an sealbhóir i gcónaí ar bhunáit agus ar bhailíocht an fhianaithe. + +Tá aitheantóirí díláraithe ríthábhachtach freisin chun príobháideacht faisnéise pearsanta a chosaint trí chéannacht dhíláraithe. Mar shampla, má chuireann duine isteach cruthúnas ar fhianú (ceadúnas tiomána), ní gá don pháirtí fíoraithe bailíocht na faisnéise sa chruthúnas a sheiceáil. Ina áit sin, ní theastaíonn ón bhfíoraitheoir ach ráthaíochtaí cripteagrafacha maidir le barántúlacht an fhianaithe agus céannacht na heagraíochta eisiúna chun a chinneadh an bhfuil an cruthúnas bailí. + +## Cineálacha fianuithe sa chéannacht dhíláraithe {#types-of-attestations-in-decentralized-identity} + +Tá an chaoi a stóráiltear agus a n-aisghabhtar faisnéis fianaithe in éiceachóras céannachta bunaithe ar Ethereum difriúil ó bhainistíocht thraidisiúnta chéannachta. Seo forbhreathnú ar na cineálacha cur chuige éagsúla maidir le fianuithe i gcórais dhíláraithe chéannachta a eisiúint, a stóráil agus a fhíorú: + +### Offchain attestations {#offchain-attestations} + +One concern with storing attestations onchain is that they might contain information individuals want to keep private. Mar gheall ar nádúr poiblí bhlocshlabhra Ethereum níl sé mealltach fianuithe den sórt sin a stóráil. + +The solution is to issue attestations, held by users offchain in digital wallets, but signed with the issuer's DID stored onchain. These attestations are encoded as [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) and contain the issuer's digital signature—which allows for easy verification of offchain claims. + +Here's an hypothetical scenario to explain offchain attestations: + +1. Gineann ollscoil (an t-eisitheoir) fianú (teastas acadúil digiteach), síníonn sí é leis na heochracha, agus eisíonn sí é chuig Bob (úinéir na céannachta). + +2. Déanann Bob iarratas ar phost agus ba mhaith leis a cháilíochtaí acadúla a chruthú le fostóir, mar sin roinneann sé an fianú óna sparán soghluaiste. Féadfaidh an chuideachta (an fíoraitheoir) bailíocht an fhianaithe a dhearbhú ansin trí DID an eisitheora a sheiceáil (i.e. a eochair phoiblí ar Ethereum). + +### Offchain attestations with persistent access {#offchain-attestations-with-persistent-access} + +Under this arrangement attestations are transformed into JSON files and stored offchain (ideally on a [decentralized cloud storage](/developers/docs/storage/) platform, such as IPFS or Swarm). However, a [hash](/glossary/#hash) of the JSON file is stored onchain and linked to a DID via an onchain registry. D’fhéadfadh gurb ionann an DID gaolmhar agus eisitheoir an fhianaithe nó an fhaighteora. + +Cuireann an cur chuige seo ar chumas fianuithe marthanacht bunaithe ar bhlocshlabhra a fháil, agus faisnéis éilimh a choinneáil criptithe agus infhíoraithe. Ceadaíonn sé freisin do nochtadh roghnach toisc gur féidir le sealbhóir na heochrach príobháidí an fhaisnéis a dhíchriptiú. + +### Onchain attestations {#onchain-attestations} + +Onchain attestations are held in [smart contracts](/glossary/#smart-contract) on the Ethereum blockchain. The smart contract (acting as a registry) will map an attestation to a corresponding onchain decentralized identifier (a public key). + +Here's an example to show how onchain attestations might work in practice: + +1. Tá sé beartaithe ag cuideachta (XYZ Corp) scaireanna úinéireachta a dhíol trí úsáid a bhaint as conradh cliste ach ní theastaíonn uathu ach ceannaitheoirí a bhfuil seiceáil cúlra críochnaithe acu. + +2. XYZ Corp can have the company performing background checks to issue onchain attestations on Ethereum. Deimhníonn an fianú seo gur éirigh le duine an tseiceáil chúlra gan aon fhaisnéis phearsanta a nochtadh. + +3. Is féidir leis an gconradh cliste a dhíolann scaireanna an conradh clárlainne a sheiceáil le haghaidh aitheantais na gceannaitheoirí scagtha, rud a fhágann gur féidir leis an gconradh cliste a chinneadh cé hiad a bhfuil nó nach bhfuil cead acu scaireanna a cheannach. + +### Comharthaí agus féiniúlacht faoi cheangal anama {#soulbound} + +[Soulbound comharthaí](https://vitalik.eth.limo/general/2022/01/26/soulbound.html) ([NFTanna neamh-aistrithe](/glossary/#nft)) D’fhéadfaí iad a úsáid chun faisnéis a bhailiú a bhaineann le sparán ar leith. This effectively creates a unique onchain identity bound to a particular Ethereum address that could include tokens representing achievements (e.g. finishing some specific online course or passing a threshold score in a game) or community participation. + +## Úsáid céannacht dhíláraithe {#use-decentralized-identity} + +Tá go leor tionscadal uaillmhianach ag baint úsáide as Ethereum mar bhunús le haghaidh réitigh chéannachta díláraithe: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _A decentralized naming system for onchain, machine-readable identifiers, like, Ethereum wallet addresses, content hashes, and metadata._ +- **[SpruceID](https://www.spruceid.com/)** - _Tionscadal díláraithe céannachta a ligeann d’úsáideoirí céannacht dhigiteach a rialú le cuntais Ethereum agus le próifílí ENS seachas a bheith ag brath ar sheirbhísí tríú páirtí._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _A decentralized ledger/protocol for making onchain or offchain attestations about anything._ +- **[Cruthúnas ar Dhaonnacht](https://www.proofofhumanity.id)** - _ Córas fíoraithe céannachta sóisialta é an Cruthúnas ar Dhaonnacht (nó PoH) a tógadh ar Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Líonra díláraithe foinse oscailte, maidir le céannacht shóisialta atá ag iarraidh fíorú céannachta a athchóiriú trí ghraf sóisialta a chruthú agus a anailísiú._ +- **[walt.id](https://walt.id)** — _Aitheantas díláraithe foinse oscailte agus bonneagar sparán a chuireann ar chumas forbróirí agus eagraíochtaí féiniúlacht fhéincheannasach agus NFTanna/SBTanna a ghiaráil._ +- **[Veramo](https://veramo.io/)** - _Creat JavaScript a dhéanann sé éasca do dhuine ar bith sonraí atá infhíoraithe go cripteagrafach a úsáid ina bhfeidhmchláir._ + +## Tuilleadh léitheoireachta {#further-reading} + +### Ailt {#articles} + +- [Cásanna Úsáide Blocshlabhra: Blocshlabhra sa Chéannacht Dhigiteach](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Cad é Ethereum ERC725? Bainistíocht Fhéincheannasach Chéannachta ar an mBlocshlabhra](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Conas a d’fhéadfadh Blocshlabhra Fadhb na Céannachta Digití a Réiteach](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Cad is féiniúlacht dhíláraithe ann agus cén fáth a bhfuil tábhacht ag baint léi?](https://web3.hashnode.com/what-is-decentralized-identity) - _Emmanuel Awosika_ +- [Réamhrá ar Chéannacht Dhíláraithe](https://walt.id/white-paper/digital-identity) — _Dominik Beron_ + +### Físeáin {#videos} + +- [Céannacht Dhíláraithe (Seisiún Bónais Livestream)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Físeán míniúcháin den scoth ar chéannacht dhíláraithe le hAndreas Antonopolous_ +- [Sínigh isteach le hEthereum agus Céannacht Dhíláraithe le Ceramic, IDX, React, agus 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _ Rang teagaisc YouTube ar chóras bainistíochta céannachta a thógáil amach chun próifíl úsáideora a chruthú, a léamh agus a nuashonrú trí úsáid a bhaint as a sparán Ethereum le Nader Dabit_ +- [BrightID - Céannacht Dhíláraithe ar Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Eipeasóid podchraoltaí gan Bhanc ina bpléitear BrightID, réiteach céannachta díláraithe d'Ethereum_ +- [The Offchain Internet: Decentralized Identity & Verifiable Credentials](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 presentation by Evin McMullen +- [Dintiúir Infhíoraithe arna Míniú](https://www.youtube.com/watch?v=ce1IdSr-Kig) - físeán míniúcháin YouTube le taispeántas le Tamino Baumann + +### Pobail {#communities} + +- [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Tacaitheoirí chaighdeán ERC725 chun aitheantas a bhainistiú ar bhlocshlabhra Ethereum_ +- [freastalaí SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Pobal do dhíograiseoirí agus d'fhorbróirí atá ag obair ar Sínigh isteach le hEthereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Pobal forbróirí a chuidíonn le creat a chruthú le haghaidh sonraí infhíoraithe d'fheidhmchláir_ +- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Pobal forbróirí agus tógálaithe atá ag obair ar chásanna úsáide céannachta díláraithe ar fud tionscail éagsúla_ diff --git a/public/content/translations/ga/defi/index.md b/public/content/translations/ga/defi/index.md new file mode 100644 index 00000000000..19e7cefc6e7 --- /dev/null +++ b/public/content/translations/ga/defi/index.md @@ -0,0 +1,362 @@ +--- +title: Airgeadas díláraithe (DeFi) +metaTitle: Cad é DeFi? | Sochair agus Úsáid Airgeadais Dhíláraithe +description: Forbhreathnú ar DeFi ar Ethereum +lang: ga +template: use-cases +emoji: ":money_with_wings:" +image: /images/use-cases/defi.png +alt: Lógó Eth déanta as brící lego. +sidebarDepth: 2 +summaryPoint1: Rogha dhomhanda, oscailte ar an gcóras airgeadais reatha. +summaryPoint2: Táirgí a ligeann duit iasacht a fháil, airgead a shábháil, agus infheistíocht agus trádáil a dhéanamh, agus go leor eile. +summaryPoint3: Bunaithe ar theicneolaíocht foinse oscailte ar féidir le duine ar bith a ríomhchlárú. +--- + +Is córas airgeadais oscailte agus domhanda é DeFi a tógadh don aois idirlín – rogha eile ar chóras atá teimhneach, rialaithe go docht agus á choinneáil le chéile ag bonneagar agus ag próisis atá fiche nó tríocha bliain d’aois. Tugann sé smacht agus infheictheacht duit ar do chuid airgid. Tugann sé nochtadh duit do mhargaí domhanda agus roghanna eile seachas d’airgeadra áitiúil nó do roghanna baincéireachta. Osclaíonn táirgí DeFi seirbhísí airgeadais d’aon duine a bhfuil nasc idirlín acu agus is lena n-úsáideoirí den chuid is mó atá siad faoi úinéireacht agus faoi chothabháil. Go dtí seo tá na billiúin dollar Crypto tar éis sreafa trí fheidhmchláir DeFi agus tá fás ag teacht air gach lá. + +## Cad é DeFi? {#what-is-defi} + +Is téarma comhchoiteann é DeFi le haghaidh táirgí agus seirbhísí airgeadais atá inrochtana do dhuine ar bith atá in ann Ethereum a úsáid - duine ar bith a bhfuil nasc idirlín aige. Le DeFi, bíonn na margaí ar oscailt i gcónaí agus níl aon údaráis láraithe ann ar féidir leo bac a chur ar íocaíochtaí nó rochtain a dhiúltú duit ar rud ar bith. Tá seirbhísí a bhí mall roimhe seo agus i mbaol earráid dhaonna uathoibríoch agus níos sábháilte anois go bhfuil siad láimhsithe le cód gur féidir le duine ar bith a iniúchadh agus a scrúdú. + +Tá borradh faoi gheilleagar crypto i gcéin is i gcóngar, áit ar féidir leat iasacht a thabhairt, iasacht a fháil, fadtéarmach/gearrthéarmach, ús a thuilleamh agus go leor eile. Bhí DeFi in úsáid ag Airgintínigh atá an-eolach ar crypto chun éalú ó bhoilsciú géar. Tá tús curtha ag cuideachtaí lena gcuid pá a shruthú i bhfíor-am. Tá roinnt daoine tar éis iasachtaí ar fiú na milliúin dollar iad a thógáil amach agus a íoc gan aon ghá le haon chéannacht phearsanta. + + + +## DeFi vs airgeadas traidisiúnta {#defi-vs-tradfi} + +Ceann de na bealaí is fearr chun acmhainneacht DeFi a fheiceáil ná na fadhbanna atá ann inniu a thuiscint. + +- Ní thugtar rochtain do dhaoine áirithe chun cuntas bainc a bhunú nó seirbhísí airgeadais a úsáid. +- Is féidir le heaspa rochtana ar sheirbhísí airgeadais daoine a chosc ón bhfostaíocht. +- Is féidir le seirbhísí airgeadais bac a chur ort íocaíochtaí a fháil. +- Is ionann muirear folaithe seirbhísí airgeadais agus do shonraí pearsanta. +- Is féidir le rialtais agus le hinstitiúidí láraithe margaí a dhúnadh de réir tola. +- Is minic a bhíonn uaireanta trádála teoranta d'uaireanta gnó de chrios ama ar leith. +- Is féidir go nglacann aistrithe airgid laethanta le déanamh mar gheall ar phróisis inmheánacha daonna. +- Tá préimh ag baint le seirbhísí airgeadais mar ní mór d’institiúidí idirghabhála iad a ghearradh. + +### Comparáid {#defi-comparison} + +| DeFi | Airgeadas traidisiúnta | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Coinníonn tú do chuid airgid. | Tá do chuid airgid i seilbh cuideachtaí. | +| Rialaíonn tú cá háit a dtéann do chuid airgid agus conas a chaitear é. | Caithfidh tú muinín a bheith agat as cuideachtaí gan do chuid airgid a chur amú, amhail iasachtú a dhéanamh d'iasachtaithe contúirteacha. | +| Tarlaíonn aistrithe cistí faoi chionn cúpla nóiméid. | Is féidir le híocaíochtaí laethanta a ghlacadh mar gheall ar phróisis láimhe. | +| Is iad daoine a bhfuil ainmneacha bréige leo a dhéanann gníomhaíocht idirbhirt. | Téann gníomhaíocht airgeadais lámh ar láimh le do chéannacht. | +| Tá DeFi oscailte do dhuine ar bith. | Ní mór duit iarratas a dhéanamh chun seirbhísí airgeadais a úsáid. | +| Bíonn na margaí ar oscailt i gcónaí. | Dúnann na margaí mar go dteastaíonn sosanna ó fhostaithe. | +| Tá sé bunaithe ar thrédhearcacht - is féidir le duine ar bith breathnú ar shonraí táirge agus iniúchadh a dhéanamh ar an gcaoi a n-oibríonn an córas. | Is leabhair dhúnta iad institiúidí airgeadais: ní féidir leat iarraidh féachaint ar a stair iasachtaí, ar thaifead ar a sócmhainní bainistithe, agus mar sin de. | + + + Foghlaim faoi aipeanna DeFi + + +## Thosaigh sé le Bitcoin... {#bitcoin} + +Is iomaí sin dóigh gurbh é Bitcoin an chéad fheidhmchlár DeFi. Ligeann Bitcoin duit úinéireacht a bheith agat ar luach agus é a rialú agus a sheoladh áit ar bith ar fud an domhain. Déantar é sin trí bhealach a sholáthar faoi choinne líon mór daoine, nach bhfuil muinín acu as a chéile, chun comhaontú ar mhórleabhar cuntas gan gá le hidirghabhálaí iontaofa. Tá Bitcoin oscailte do dhuine ar bith agus níl an t-údarás ag aon duine a rialacha a athrú. Tá rialacha Bitcoin, cosúil lena ghanntanas agus a oscailteacht, scríofa isteach sa teicneolaíocht. Níl sé cosúil le hairgeadas traidisiúnta nuair is féidir le rialtais airgead a phriontáil, rud a dhíluachálann do choigilteas agus is féidir le cuideachtaí margaí a dhúnadh. + +Tógann Ethereum air sin. Cosúil le Bitcoin, ní féidir leis na rialacha athrú ort agus tá rochtain ag gach duine. Ach déanann sé an t‑airgead digiteach seo in‑ríomhchláraithe freisin, trí úsáid a bhaint as [conarthaí cliste](/glossary/#smart-contract), ionas gur féidir leat dul níos faide ná luach a stóráil agus a sheoladh. + + + +## Airgead in-ríomhchláraithe {#programmable-money} + +Tá cuma ait ar an scéal seo... "cén fáth a mbeinn ag iarraidh mo chuid airgid a ríomhchlárú"? Mar sin féin, níl sé seo ach ina ghné réamhshocraithe de chomharthaí ar Ethereum. Is féidir le duine ar bith an loighic a ríomhchlárú in íocaíochtaí. Mar sin is féidir leat rialú agus slándáil Bitcoin a fháil i dteannta leis na seirbhísí a sholáthraíonn institiúidí airgeadais. Leis sin ligtear duit rudaí a dhéanamh le criptea-airgeadraí nach féidir leat a dhéanamh le Bitcoin cosúil le hiasachtaí a thabhairt agus iasachtaí a fháil, íocaíochtaí a sceidealú, infheistíocht a dhéanamh i gcistí innéacs agus go leor eile. + + +
              Foghlaim faoinár moltaí le haghaidh feidhmchláir DeFi le triail a bhaint astu mura bhfuil tú cleachta le hEthereum.
              + + Foghlaim faoi aipeanna DeFi + +
              + +## Cad is féidir leat a dhéanamh le DeFi? {#defi-use-cases} + +Tá rogha dhíláraithe eile ann seachas an chuid is mó de na seirbhísí airgeadais. Ach cruthaíonn Ethereum deiseanna freisin chun táirgí airgeadais a chruthú atá go hiomlán nua. Is liosta é seo atá ag méadú i gcónaí. + +- [Seol airgead ar fud na cruinne](#send-money) +- [Sruthaigh airgead ar fud na cruinne](#stream-money) +- [Faigh rochtain ar airgeadraí cobhsaí](#stablecoins) +- [Cistí a fháil ar iasacht le comhthaobhacht](#lending) +- [Faigh iasacht gan comhthaobhacht](#flash-loans) +- [Tosaigh coigilteas crypto](#saving) +- [Trádáil comharthaí](#swaps) +- [Fás do phunann](#investing) +- [Déan do chuid smaointe a mhaoiniú](#crowdfunding) +- [Ceannaigh árachas](#insurance) +- [Bainistigh do phunann](#aggregators) + + + +### Seol airgead ar fud na cruinne go tapa {#send-money} + +Mar bhlocshlabhra, tá Ethereum deartha chun idirbhearta a sheoladh ar bhealach slán agus domhanda. Cosúil le Bitcoin, déanann Ethereum airgead a sheoladh ar fud an domhain chomh héasca le ríomhphost a sheoladh. Cuir isteach [ainm ENS](/glossary/#ens) (cosúil le bob.eth) nó seoladh cuntais an fhaighteora ó do sparán agus rachaidh d’íocaíocht díreach chucu faoi chionn nóiméid (go hiondúil). Chun íocaíochtaí a sheoladh nó a fháil, beidh [sparán](/wallets/) uait. + + + Féach daipeanna íocaíochta + + +#### Sruthaigh airgead ar fud an domhain... {#stream-money} + +Is féidir leat airgead a shruthú thar Ethereum freisin. Leis sin ligtear duit a dtuarastal a íoc le duine de réir gach soicind a oibríonn siad, rud a thugann rochtain dóibh ar a gcuid airgid nuair a bhíonn sé ag teastáil uathu. Nó faigh rud éigin ar cíos de réir gach soicind a úsáideann tú é cosúil le taisceadán stórála nó scútar leictreach. + +Agus mura bhfuil tú ag iarraidh [ETH](/glossary/#ether) a sheoladh nó a shruthú mar gheall ar an méid is féidir a luach a athrú, tá airgeadraí eile ar Ethereum: [stablecoins](/glossary/#stablecoin). + + + +### Faigh rochtain ar airgeadraí cobhsaí {#stablecoins} + +Is fadhb í luaineacht criptea-airgeadra le haghaidh go leor táirgí airgeadais agus caiteachas ginearálta. Tá pobal DeFi tar éis é seo a réiteach le Stablecoins. Fanann a luach pionnáilte le sócmhainn eile, airgeadra coitianta cosúil le dollar de ghnáth. + +Tá luach ag boinn cosúil le Dai nó USDC a fhanann laistigh de chúpla cent dollar. Leis seo tá siad foirfe iad le haghaidh tuillimh nó miondíola. Bhain go leor daoine i Meiriceá Laidineach úsáid as Stablecoins mar bhealach chun a gcuid coigilteas a chosaint in am an-éiginnte dá n-airgeadraí arna n-eisiúint ag an rialtas. + + + Tuilleadh faoi stablecoins + + + + +### Iasachtaíocht {#lending} + +Tá dhá phríomhchineál ann chun airgead a fháil ar iasacht ó sholáthraithe díláraithe. + +- Idir comhghleacaí, rud a chiallaíonn go bhfaighidh an t‑iasachtaí an iasacht go díreach ó iasachtóir ar leith. +- Pobalbhunaithe nuair a chuireann iasachtóirí cistí (leachtacht) ar fáil do chomhthiomsú ar féidir le hiasachtaithe iasachtaí a fháil uaithi. + + + Féach daipeanna iasachtaíochta + + +Tá go leor buntáistí ag baint le hiasachtóir díláraithe a úsáid... + +#### Iasachtaíocht le príobháideacht {#borrowing-privacy} + +Sa lá atá inniu ann, is iad na daoine aonair atá i gceist an t‑airgead a thabhairt ar iasacht agus a fháil ar iasacht. Caithfidh fios a bheith ag bainc cé acu an dóigh go n‑aisíocfaidh tú iasacht roimh iasacht a thabhairt. + +Oibríonn iasachtú díláraithe gan iallach a bheith ar cheachtar páirtí iad féin a aithint. Ina áit sin, ní mór don iasachtaí comhthaobhacht a gheobhaidh an t-iasachtóir go huathoibríoch a chur suas mura n-aisíoctar an iasacht. Glacann roinnt iasachtóirí fiú le [NFTanna](/glossary/#nft) mar chomhthaobhacht. Is gníomhas iad NFTanna do shócmhainn uathúil, cosúil le pictiúr. [Tuilleadh faoi NFTanna](/nft/) + +Leis sin ligtear duit airgead a fháil ar iasacht gan seiceálacha creidmheasa nó faisnéis phríobháideach a thabhairt duit. + +#### Rochtain ar chistí domhanda {#access-global-funds} + +Nuair a úsáideann tú iasachtóir díláraithe tá rochtain agat ar chistí arna dtaisceadh ó gach cearn den domhan, ní hamháin na cistí atá faoi chúram an bhainc nó na hinstitiúide atá roghnaithe agat. Leis sin déantar iasachtaí níos inrochtana agus feabhsaítear sé na rátaí úis. + +#### Éifeachtúlachtaí cánach {#tax-efficiencies} + +Is féidir le hiasachtaí rochtain a thabhairt duit ar na cistí a theastaíonn uait gan do chuid ETH a dhíol (imeacht inchánach). Ina áit sin, is féidir leat ETH a úsáid mar chomhthaobhacht le haghaidh iasacht stablecoin. Leis sin tugtar duit an sreabhadh airgid atá uait agus ligeann duit do chuid ETH a choinneáil. Is comharthaí iad stablecoins atá i bhfad níos fearr nuair a bhíonn airgead de dhíth ort toisc nach n-athraíonn luach mar ETH. [Tuilleadh ar stablecoins](#stablecoins) + +#### Splanc-iasachtaí {#flash-loans} + +Is cineál níos turgnamhaí d'iasachtaí díláraithe iad splanc‑iasachtaí trína ligtear duit iasacht a fháil gan comhthaobhacht ná aon fhaisnéis phearsanta a sholáthar. + +Níl siad inrochtana go forleathan ag daoine neamhtheicniúla faoi láthair ach tugann siad le fios cad a d'fhéadfadh a bheith indéanta do gach duine amach anseo. + +Oibríonn sé ar an mbonn go dtógtar amach an iasacht agus go n-íoctar ar ais é laistigh den idirbheart céanna. Murar féidir é a íoc ar ais, filleann an t-idirbheart amhail is nár tharla aon rud riamh. + +Coinnítear na cistí a úsáidtear go minic i gcomhthiomsaithe leachtachta (comhthiomsuithe móra cistí a úsáidtear chun iasacht a fháil). Mura bhfuil siad á n-úsáid ag tráth ar leith, cruthaíonn sé seo deis do dhuine éigin na cistí seo a fháil ar iasacht, gnó a dhéanamh leo agus iad a aisíoc ina n-iomláine go litriúil ag an am céanna a fhaightear ar iasacht iad. + +Ciallaíonn sé sin nach mór go leor loighce a chur san áireamh in idirbheart an-saincheaptha. Sampla simplí is ea duine a úsáideann splanc-iasacht chun an oiread sin de shócmhainn a fháil ar iasacht ar phraghas amháin ionas gur féidir leo é a dhíol ar mhalartán eile nuair a bhíonn an praghas níos airde. + +Mar sin, in aon idirbheart amháin, tarlaíonn an méid seo a leanas: + +- Faigheann tú X méid de $asset ar $1.00 ar iasacht ó mhalartán A +- Díolann tú sócmhainn X $asset ar mhalartán B ar $1.10 +- Íocann tú iasacht ar ais chuig malartán A +- Coinníonn tú an brabús lúide an táille idirbhirt + +Dá dtitfeadh soláthar mhalartán B go tobann agus nach raibh an t-úsáideoir in ann a dhóthain a cheannach chun an iasacht bhunaidh a chlúdach, theipfeadh ar an idirbheart. + +Le bheith in ann an sampla thuas a dhéanamh i saol an airgeadais thraidisiúnta, bheadh ​​méid ollmhór airgid uait. Níl teacht ar na straitéisí seo chun airgead a dhéanamh ach amháin dóibh siúd a bhfuil saibhreas acu cheana féin. Is sampla iad splanc‑iasachtaí de thodhchaí nuair nach gá go mbeidh airgead ina réamhriachtanas chun airgead a dhéanamh. + + + Tuilleadh faoi splanc‑iasachtaí + + + + +### Tosaigh ag sábháil le crypto {#saving} + +#### Iasachtú {#lending} + +Is féidir leat ús a thuilleamh ar do crypto trína thabhairt ar iasacht agus féachaint ar do chistí ag fás i bhfíor-am. Faoi láthair tá rátaí úis i bhfad níos airde ná mar is dócha a gheobhaidh tú ag do bhanc áitiúil (má tá an t-ádh leat a bheith in ann rochtain a fháil ar cheann). Seo sampla: + +- Tugann tú do 100 Dai, [stablecoin](/stablecoins/), ar iasacht do tháirge cosúil le Aave. +- Faigheann tú 100 Aave Dai (aDai) arb ionann é agus an Dai a fuair tú ar iasacht. +- Méadóidh do aDai bunaithe ar na rátaí úis agus feicfidh tú d’iarmhéid ag fás i do sparán. Ag brath ar an [APR](/glossary/#apr), beidh iarmhéid do sparáin rud éigin mar 100.1234 tar éis cúpla lá nó fiú cúpla uair an chloig! +- Is féidir leat méid Dai rialta a aistarraingt atá comhionann le d’iarmhéid aDai ag am ar bith. + + + Féach daipeanna iasachta + + +#### Crannchuir gan chailliúint {#no-loss-lotteries} + +Bealach nua spraíúil nuálach chun airgead a shábháil is ea crannchuir gan chailliúint mar PoolTogether. + +- Ceannaíonn tú 100 ticéad trí úsáid a bhaint as 100 comhartha Dai. +- Faigheann tú 100 plDai a léiríonn do 100 ticéad. +- Má roghnaítear ceann de do thicéid mar bhuaiteoir, méadófar d’iarmhéid plDai faoi mhéid na linne duaise. +- Mura mbíonn an bua agat, rachaidh do 100 plDai ar aghaidh chuig tarraingt na seachtaine seo chugainn. +- Is féidir leat méid Dai rialta a tharraingt siar atá comhionann le d’iarmhéid plDai ag am ar bith. + +Gintear an chomhthiomsú duaiseanna leis an ús ar fad a ghintear trí thaiscí ticéad a thabhairt ar iasacht mar atá sa sampla iasachta thuas. + + + Bain triail as PoolTogether + + + + +### Babhtáil comharthaí {#swaps} + +Tá na mílte comharthaí ar Ethereum. Le malartáin dhíláraithe (DEXanna) ligtear duit comharthaí éagsúla a thrádáil aon uair is mian leat. Ní éiríonn tú as smacht ar do shócmhainní riamh. Tá sé cosúil le malartán airgeadra a úsáid agus cuairt á tabhairt ar thír eile. Ach ní dhúnann an leagan DeFi riamh. Tá na margaí ar oscailt 24/7, 365 lá sa bhliain agus ráthaíonn an teicneolaíocht go mbeidh duine ann i gcónaí chun glacadh le trádáil. + +Mar shampla, más mian leat an crannchur gan chailliúint PoolTogether (a gcuirtear síos air thuas) a úsáid, beidh comhartha cosúil le Dai nó USDC ag teastáil uait. Ligeann na DEXanna seo duit do chuid ETH a mhalartú ar na comharthaí sin agus ar ais arís nuair a bheidh tú críochnaithe. + + + Féach ar mhalartáin comharthaí + + + + +### Ardtrádáil {#trading} + +Tá roghanna níos forbartha ann do thrádálaithe ar mhaith leo beagán níos mó smachta. Is féidir orduithe teorann, suthain, trádáil corrlaigh agus tuilleadh. Le trádáil dhíláraithe faigheann tú rochtain ar leachtacht dhomhanda, ní dhúnann an margadh choíche, agus bíonn smacht agat i gcónaí ar do chuid sócmhainní. + +Nuair a úsáideann tú malartán láraithe caithfidh tú do shócmhainní a thaisceadh roimh an trádáil agus muinín a bheith agat as aire a thabhairt dóibh. Cé go bhfuil do shócmhainní i dtaisce, tá siad i mbaol mar gur spriocanna tarraingteacha iad malartáin láraithe do hackers. + + + Féach daipeanna trádála + + + + +### Fás do phunann {#investing} + +Tá táirgí bainistíochta cistí ar Ethereum a dhéanfaidh iarracht do phunann a fhás bunaithe ar straitéis de do rogha féin. Tá sé seo uathoibríoch, oscailte do chách, agus ní gá bainisteoir daonna a thógann ciorrú ar do bhrabúis. + +Sampla maith is ea an [ciste Innéacs Pulse DeFi (DPI)](https://defipulse.com/blog/defi-pulse-index/). Is ciste é seo a athchothromaíonn go huathoibríoch chun a chinntiú go n-áiríonn do phunann na comharthaí DeFi is fearr i gcónaí trí chaipitliú margaidh. Ní gá duit aon cheann de na sonraí a bhainistiú riamh agus is féidir leat tarraingt siar ón gciste aon uair is mian leat. + + + Féach daipeanna infheistíochta + + + + +### Déan do chuid smaointe a mhaoiniú {#crowdfunding} + +Is ardán iontach é Ethereum le haghaidh an tslua-chistithe: + +- Is féidir le maoinitheoirí ionchasacha teacht ó áit ar bith - tá Ethereum agus a chuid comharthaí oscailte d'aon duine, áit ar bith ar domhan. +- Tá sé trédhearcach ionas gur féidir le tiomsaitheoirí airgid a chruthú cé mhéad airgid a bailíodh. Is féidir leat a rianú fiú conas atá cistí á chaitheamh níos déanaí. +- Is féidir le tiomsaitheoirí airgid aisíocaíochtaí uathoibríocha a shocrú má tá, mar shampla, spriocdháta sonrach agus íosmhéid nach bhfuil comhlíonta. + + + Féach daipeanna slua-chistithe + + +#### Maoiniú cuadratach {#quadratic-funding} + +Is bogearraí foinse oscailte é Ethereum agus go dtí seo tá go leor den obair maoinithe ag an bpobal. Mar thoradh air sin tá fás ar shamhail nua spéisiúil tiomsaithe airgid: maoiniú cuadratach. D’fhéadfadh sé seo feabhas a chur ar an mbealach a mhaoinímid gach cineál earraí poiblí sa todhchaí. + +Cinntíonn maoiniú cearnógach gurb iad na tionscadail a fhaigheann an maoiniú is mó na cinn leis an éileamh is uathúla. I bhfocail eile, tionscadail a sheasann chun feabhas a chur ar shaol na ndaoine is mó. Seo mar a oibríonn sé: + +1. Tá comhthiomsú cistí deonaithe ann. +2. Cuirtear tús le babhta maoinithe poiblí. +3. Is féidir le daoine a n-éileamh ar thionscadal a chur in iúl trí roinnt airgid a bhronnadh. +4. Nuair a bhíonn an babhta thart, déantar an linn mheaitseála a dháileadh ar thionscadail. Faigheann na daoine sin leis an éileamh is uathúla an méid is airde ón linn mheaitseála. + +Ciallaíonn sé sin go bhféadfadh níos mó maoinithe a bheith ag Tionscadal A lena 100 deonachán de 1 dhollar ná mar a bheadh ​​i dTionscadal B le síntiús amháin de 10,000 dollar (ag brath ar mhéid na linne meaitseála). + + + Tuilleadh faoi mhaoiniú cuadratach + + + + +### Árachas {#insurance} + +Tá sé mar aidhm ag árachas díláraithe árachas a dhéanamh níos saoire, níos tapúla le híoc amach agus níos trédhearcaí. Le uathoibrithe breise, bíonn clúdach níos inacmhainne agus bíonn íocaíochtaí amach i bhfad níos tapúla. Tá na sonraí a úsáidtear chun cinneadh a dhéanamh ar d’éileamh go hiomlán trédhearcach. + +Is féidir le táirgí Ethereum, cosúil le haon bhogearraí, fulaingt ó fhabhtanna agus ó dhúshaothair. Mar sin, anois díreach tá a lán de na táirgí árachais sa spás ag díriú ar a n-úsáideoirí a chosaint i gcoinne caillteanas cistí. Mar sin féin, tá tionscadail ag tosú ar chlúdach a fhorbairt do gach rud a d'fhéadfadh tarlú sa saol. Sampla maith de seo is ea clúdach Barraí Etherisc a bhfuil sé mar aidhm aige [feirmeoirí ar sealbhóirí beaga iad sa Chéinia a chosaint ar thriomaigh agus tuilte](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Is féidir le hárachas díláraithe cumhdach níos saoire a sholáthar d’fheirmeoirí ar minic a mbíonn praghsanna le haghaidh árachas traidisiúnta ró-ard. + + + Féach daipeanna árachais + + + + +### Comhbhailitheoirí agus bainisteoirí punainne {#aggregators} + +Agus an oiread sin ar siúl, beidh bealach uait chun súil a choinneáil ar do chuid infheistíochtaí, iasachtaí agus trádála go léir. Tá go leor táirgí ann a ligeann duit do ghníomhaíocht DeFi go léir a chomhordú ó áit amháin. Seo áilleacht ailtireacht oscailte DeFi. Is féidir le foirne comhéadain a chruthú nach féidir leat d'iarmhéideanna thar tháirgí a fheiceáil, ach is féidir leat a gcuid gnéithe a úsáid freisin. Seans go mbeidh sé seo úsáideach duit agus tú ag foghlaim tuilleadh faoi DeFi. + + + Féach daipeanna punann + + + + +## Conas a oibríonn DeFi? {#how-defi-works} + +Úsáideann DeFi criptea-airgeadraí agus conarthaí cliste chun seirbhísí a sholáthar nach bhfuil idirghabhálaithe ag teastáil uathu. I saol airgeadais an lae inniu, gníomhaíonn institiúidí airgeadais mar ráthóirí idirbheart. Tugann sé sin cumhacht ollmhór do na hinstitiúidí seo toisc go sreabhann do chuid airgid tríothu. Ina theannta sin ní féidir leis na billiúin daoine ar fud an domhain rochtain a fháil ar chuntas bainc fiú. + +In DeFi, cuirtear conradh cliste in ionad na hinstitiúide airgeadais san idirbheart. Is cineál de chuntas Ethereum é conradh cliste ar féidir leis cistí a shealbhú agus is féidir iad a sheoladh / a aisíoc bunaithe ar choinníollacha áirithe. Ní féidir le duine ar bith an conradh cliste sin a athrú agus é beo – beidh sé ar siúl i gcónaí mar atá ríomhchláraithe. + +D’fhéadfaí conradh atá deartha chun liúntas nó airgead póca a thabhairt amach a ríomhchlárú chun airgead a sheoladh ó Chuntas A go Cuntas B gach Aoine. Agus ní dhéanfaidh sé é sin ach amháin má bhíonn na cistí dóthanacha ag Cuntas A. Ní féidir le duine ar bith an conradh a athrú agus Cuntas C a chur leis mar fhaighteoir chun cistí a ghoid. + +Tá conarthaí poiblí freisin d’aon duine le cigireacht agus iniúchadh a dhéanamh orthu. Ciallaíonn sé sin go dtiocfaidh droch-chonarthaí faoi ghrinnscrúdú pobail tapa go leor. + +Ciallaíonn sé sin go bhfuil gá ann faoi láthair muinín a chur sna baill níos teicniúla de phobal Ethereum atá in ann cód a léamh. Tríd an bpobal foinse oscailte cabhraítear le forbróirí a choinneáil faoi smacht, ach laghdófar an gá seo le himeacht ama de réir mar a éiríonn conarthaí cliste níos éasca le léamh agus de réir mar a fhorbraítear bealaí eile chun muinín an chóid a chruthú. + +## Ethereum agus DeFi {#ethereum-and-defi} + +Is é Ethereum an bunús foirfe do DeFi ar roinnt cúiseanna: + +- Níl aon úinéireacht ag duine ar Ethereum ná ar na conarthaí cliste a mhaireann air - leis sin tugtar deis do gach duine DeFi a úsáid. Ciallaíonn sé sin freisin nach féidir le duine ar bith na rialacha maidir leatsa a athrú. +- Labhraíonn táirgí DeFi go léir an teanga chéanna sa chúlra: Ethereum. Ciallaíonn sé sin go n-oibríonn go leor de na táirgí le chéile gan uaim. Is féidir leat comharthaí a thabhairt ar iasacht ar ardán amháin agus an comhartha úsmhar a mhalartú ar mhargadh difriúil ar fheidhmchlár atá difriúil go hiomlán. Tá sé seo cosúil le bheith in ann pointí dílseachta a thabhairt isteach i do bhanc. +- Tá comharthaí agus criptea-airgeadra ionsuite in Ethereum, mórleabhar comhroinnte - is maith le hEthereum súil a choinneáil ar idirbhearta agus úinéireacht. +- Ceadaíonn Ethereum saoirse iomlán airgeadais - ní dhéanfaidh formhór na dtáirgí cúram do chistí go deo, rud a fhágann tusa i gceannas. + +Is féidir leat smaoineamh ar DeFi i gcisil: + +1. Tá stair na n-idirbheart agus staid na gcuntas sa bhlocshlabhra - Ethereum. +2. Na sócmhainní – [ETH](/eth/) agus na comharthaí eile (airgeadraí). +3. Na prótacail – [conarthaí cliste](/glossary/#smart-contract) trína soláthraítear an fheidhmiúlacht, mar shampla, seirbhís a cheadaíonn iasachtú díláraithe sócmhainní. +4. [Na feidhmchláir](/dapps/) – na táirgí a úsáidimid chun na prótacail a bhainistiú agus a rochtain. + +Nóta: úsáideann cuid mhór de DeFi [caighdeán ERC-20](/glossary/#erc-20). Úsáideann feidhmchláir in DeFi fillteán le haghaidh ETH ar a dtugtar éitear fillte (WETH). [Foghlaim tuilleadh faoi éitear fillte](/wrapped-eth). + +## Tóg Defi {#build-defi} + +Is gluaiseacht foinse oscailte é DeFi. Tá prótacail agus feidhmchláir DeFi ar fáil duit le hiniúchadh, forcáil agus nuálaíocht a dhéanamh orthu. Mar gheall ar an gcruach shraitheach seo (comhroinneann siad go léir an bonn blocshlabhra agus sócmhainní céanna), is féidir prótacail a mheascadh agus a mheaitseáil chun deiseanna uathúla teaglama a dhíghlasáil. + + + Tuilleadh faoi dhaipeanna a thógáil + + +## Tuilleadh léitheoireachta {#further-reading} + +### Sonraí Defi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) + +### Ailt DeFi {#defi-articles} + +- [Treoir do thosaitheoirí ar DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 Eanáir, 2020_ + +### Físeáin {#videos} + +- [Finematics - oideachas airgeadais díláraithe](https://finematics.com/) - _Físeáin ar DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _ Bunphrionsabail DeFi: Gach rud a theastaíonn uait chun tús a chur leis sa spás corraitheach seo._ +- [Crypto an Chláir Bháin](https://youtu.be/17QRFlml4pA) _Cad é DeFi?_ + +### Pobail {#communities} + +- [Freastalaí DeFi Llama Discord](https://discord.defillama.com/) +- [Freastalaí DeFi Pulse Discord](https://discord.gg/Gx4TCTk) + + + + diff --git a/public/content/translations/ga/desci/index.md b/public/content/translations/ga/desci/index.md new file mode 100644 index 00000000000..ed3b67e741f --- /dev/null +++ b/public/content/translations/ga/desci/index.md @@ -0,0 +1,138 @@ +--- +title: Eolaíocht dhíláraithe (DeSci) +description: Forbhreathnú ar eolaíocht dhíláraithe ar Ethereum +lang: ga +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /images/future_transparent.png +alt: "" +summaryPoint1: Rogha dhomhanda, oscailte ar an gcóras eolaíoch reatha. +summaryPoint2: Teicneolaíocht a chuireann ar chumas eolaithe maoiniú a chruinniú, turgnaimh a reáchtáil, sonraí a roinnt, léargais a dháileadh, agus go leor eile. +summaryPoint3: Tógann sé ar an ngluaiseacht oscailte eolaíochta. +--- + +## Cad is eolaíocht dhíláraithe (DeSci) ann? {#what-is-desci} + +Is gluaiseacht í an eolaíocht dhíláraithe (DeSci) a bhfuil sé mar aidhm aige bonneagar poiblí a thógáil le haghaidh maoinithe, ag cruthú, ag athbhreithniú, ag creidiúnú, ag stóráil agus ag scaipeadh eolas eolaíoch go cothrom trí úsáid a bhaint as cruacha [Web3](/glossary/#web3). + +Tá sé mar aidhm ag DeSci éiceachóras a chruthú ina spreagtar eolaithe a gcuid taighde a roinnt go hoscailte agus creidmheas a fháil as a gcuid oibre agus ag an am céanna ligean d’aon duine rochtain a fháil ar an taighde agus cur leis go héasca. Is é buntuiscint DeSci gur cheart go mbeadh eolas eolaíoch inrochtana do chách agus gur chóir go mbeadh próiseas an taighde eolaíoch trédhearcach. Tá samhail taighde eolaíoch níos díláraithe agus níos dáilte á cruthú ag DeSci, rud a fhágann go bhfuil sé níos frithsheasmhaí do chinsireacht agus do rialú ag údaráis láir. Tá súil ag DeSci timpeallacht a chruthú inar féidir le smaointe nua agus neamhchoinbhinsiúin teacht chun cinn trí rochtain ar mhaoiniú, ar uirlisí eolaíocha agus ar bhealaí cumarsáide a dhílárú. + +Tríd an eolaíocht dhíláraithe ceadaítear foinsí maoinithe níos éagsúla (ó [DAOnna](/glossary/#dao), [deonacháin cuadratacha](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) do shlua-chistiú agus tuilleadh), sonraí agus modhanna níos inrochtana, agus trí dhreasachtaí maidir le hin‑atáirgtheacht a sholáthar. + +### Juan Benet - Gluaiseacht DeSci + + + +## Conas a fheabhsaíonn DeSci an eolaíocht {#desci-improves-science} + +Liosta neamhiomlán de na príomhfhadhbanna san eolaíocht agus conas is féidir le heolaíocht dhíláraithe cabhrú le dul i ngleic leis na saincheisteanna sin + +| **Eolaíocht dhíláraithe** | **Eolaíocht thraidisiúnta** | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| Is é **an pobal** a chinntíonn dáileadh na gcistí trí meicníochtaí a úsáid cosúil le bronntanais chuadratacha nó DAOnna. | Déanann grúpaí beaga, dúnta, **láraithe** dáileadh na gcistí a rialú. | +| Comhoibríonn tú le piaraí as **gach cearn den domhan** i bhfoirne dinimiciúla. | Eagraíochtaí maoinithe agus institiúidí baile a **theorannaíonn** do chomhoibrithe. | +| Déantar cinntí maoinithe ar líne agus ar bhealach **trédhearcach**. Déantar meicníochtaí nua maoinithe a iniúchadh. | Déantar cinntí maoinithe le ham slánúcháin fada agus **trédhearcacht theoranta**. Is beag meicníochtaí maoinithe atá ann. | +| Déantar seirbhísí saotharlainne a roinnt níos fusa agus níos trédhearcaí trí úsáid a bhaint as teicneolaíocht [Web3](/glossary/#web3). | Is minic a dhéantar acmhainní saotharlainne a roinnt **go mall agus go teimhneach**. | +| **Is féidir samhlacha nua foilsitheoireachta** a fhorbairt a úsáideann bunleaganacha Web3 ar mhaithe le muinín, trédhearcacht agus rochtain uilíoch. | Foilsíonn tú trí bhealaí seanbhunaithe ar minic go meastar iad a bheith **neamhéifeachtúil, claonta agus dúshaothraithe**. | +| Is féidir leat **comharthaí agus cáil a thuilleamh as obair piar-athbhreithnithe**. | Tá **do chuid oibre piarmheasúnaithe neamhíoctha**, rud a théann chun sochair na bhfoilsitheoirí ar bhrabús. | +| **Is leatsa an mhaoin intleachtúil (IP)** a ghineann tú agus dáileann tú í de réir téarmaí trédhearcacha. | **Is le d'institiúid baile an IP** a ghineann tú. Níl rochtain ar an IP trédhearcach. | +| **Sharing all of the research**, including the data from unsuccessful efforts, by having all steps onchain. | Ciallaíonn **Laofacht Foilsitheoireachta** gur mó an seans go roinnfidh taighdeoirí turgnaimh a raibh torthaí rathúla orthu. | + +## Ethereum agus DeSci {#ethereum-and-desci} + +Teastóidh slándáil láidir, costais íosta airgeadaíochta agus idirbhearta agus éiceachóras saibhir chun feidhmchlár a fhorbairt le haghaidh córas díláraithe eolaíochta. Soláthraíonn Ethereum gach rud is gá chun teicneolaíocht eolaíochta díláraithe a thógáil. + +## Cásanna úsáide DeSci {#use-cases} + +Tá DeSci ag tógáil uirlisí eolaíochta chun an saol acadúil traidisiúnta a chur ar bord sa saol digiteach. Seo thíos samplaí de chásanna úsáide is féidir le Web3 a thairiscint don phobal eolaíoch. + +### Foilsitheoireacht {#publishing} + +Tá cáil ar fhoilsitheoireacht eolaíochta toisc go ndéantar í a bhainistiú le tithe foilsitheoireachta a bhíonn ag brath ar shaothar saor ó eolaithe, athbhreithneoirí agus eagarthóirí chun na páipéir a ghiniúint ach a ghearrann táillí foilsitheoireachta iomarcacha ansin. Is minic nach féidir leis an bpobal, a d’íoc go hindíreach as an saothar agus as na costais foilsithe de ghnáth trí chánachas, rochtain a fháil ar an saothar céanna gan an foilsitheoir a íoc arís. Is minic gur cúig fhigiúr ($USD) na táillí iomlána as páipéir eolaíochta aonair a fhoilsiú, rud a bhainfidh an bonn de choincheap iomlán an eolais eolaíoch mar [leasa poiblí](/glossary/#public-goods) agus brabúis ollmhóra á nginiúint ag an am céanna. do ghrúpa beag foilsitheoirí. + +Tá ardáin saor in aisce agus rochtana oscailte ann i bhfoirm freastalaithe réamhphriontála, [ar nós ArXiv](https://arxiv.org/). Mar sin féin, níl rialú cáilíochta ag na hardáin seo, [meicníochtaí frith-sybil](/glossary/#anti-sybil), agus ní rianaíonn siad méadracht leibhéal na n-alt de ghnáth, rud a chiallaíonn nach n-úsáidtear iad de ghnáth ach chun obair a phoibliú sula gcuirtear faoi bhráid foilsitheoir traidisiúnta é. Cuireann SciHub páipéir fhoilsithe ar fáil saor in aisce chun rochtain a fháil orthu, ach ní go dlíthiúil, agus go dtí go mbíonn na foilsitheoirí tar éis a n-íocaíocht a ghlacadh cheana féin agus an saothar a fhilleadh faoi dhianreachtaíocht chóipchirt. Fágann sé sin go bhfuil bearna ríthábhachtach do pháipéir agus sonraí eolaíochta inrochtana le meicníocht dlisteanachta leabaithe agus samhail dreasachta. Tá na huirlisí chun a leithéid de chóras a thógáil in Web3. + +### In-atáirgtheacht agus inmhacasamhlaitheacht {#reproducibility-and-replicability} + +Tá in-atáirgtheacht agus inmhacasamhlaitheacht mar bhunchlocha d'fhionnachtain eolaíoch ardchaighdeáin. + +- Is féidir leis an bhfoireann chéanna torthaí in-atáirgthe a bhaint amach arís agus arís eile tríd an modheolaíocht chéanna a úsáid. +- Is féidir le grúpa difriúil torthaí macasamhlaithe a bhaint amach tríd an socrú turgnamhach céanna a úsáid. + +Is féidir le huirlisí dúchasacha nua Web3 a chinntiú go bhfuil in-atáirgtheacht agus inmhacasamhlaitheacht mar bhonn le fionnachtain. Is féidir linn eolaíocht ardchaighdeáin a fhí isteach i bhfabraic teicneolaíochta an acadaimh. Tugann Web3 an cumas [fianuithe](/glossary/#attestation) a chruthú do gach comhpháirt anailíse: na sonraí amha, an t-inneall ríomhaireachtúil, agus toradh an fheidhmchláir. Is é áilleacht na gcóras comhaontaithe ná nuair a chruthaítear líonra iontaofa chun na comhpháirteanna seo a chothabháil, is féidir le gach rannpháirtí líonra a bheith freagrach as an ríomh a atáirgeadh agus as gach toradh a bhailíochtú. + +### Maoiniú {#funding} + +Is é an tsamhail chaighdeánach atá ann faoi láthair maidir le heolaíocht a mhaoiniú ná go ndéanann daoine aonair nó grúpaí eolaithe iarratais scríofa chuig gníomhaireacht maoinithe. Scórálann painéal beag daoine iontaofa na hiarratais agus ansin cuireann siad iarrthóirí faoi agallamh sula mbronntar airgead ar chuid bheag iarratasóirí. Seachas scrogaill a chruthú as a leanann uaireanta **blianta d’aga feithimh** idir iarratas a dhéanamh ar dheontas agus deontas a fháil, is eol go bhfuil an tsamhail seo **leochaileach do laofachtaí, d'dhéinleasanna agus do pholaitíocht** an phainéil athbhreithnithe. + +Léirítear sna staidéir nach n-éiríonn le painéil athbhreithnithe deontas jab maith a dhéanamh maidir le tograí ardcháilíochta a roghnú mar go mbíonn torthaí an-difriúil ag na moltaí céanna a thugtar do phainéil éagsúla. De réir mar a bhíonn maoiniú ag éirí níos gainne, tá sé dírithe ar líon níos lú taighdeoirí sinsearacha le tionscadail níos coimeádaí ó thaobh na intleachta de. Chruthaigh an éifeacht seo tírdhreach maoinithe atá thar a bheith iomaíoch, rud a chuireann isteach ar dhreasachtaí claonta agus a chuireann bac ar nuálaíocht. + +Tá an poitéinseal ag Web3 cur isteach ar an múnla maoinithe briste seo trí thriail a dhéanamh ar mhúnlaí dreasachta éagsúla arna bhforbairt ag DAOnna agus Web3 go ginearálta. [Cistiú earraí poiblí aisghníomhacha](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [maoiniú cuadratach](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [rialachas DAO](https://www.antler.co/blog/daos-and-web3-governance-the-promise-implications-and-challenges-ahead) agus [struchtúir dreasachta théacschomharthaithe](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) ar chuid de na huirlisí Web3 a d'fhéadfadh maoiniú eolaíochta a réabhlóidiú. + +### Úinéireacht agus forbairt IP {#ip-ownership} + +Is fadhb mhór í maoin intleachtúil (IP) san eolaíocht thraidisiúnta: ó bheith i bhfostú in ollscoileanna nó gan úsáid i mbiteicníochtaí, agus bheith an-deacair a luach a mheas. Mar sin féin, trí Web3 socraítear úinéireacht ar shócmhainní digiteacha (cosúil le sonraí nó earraí eolaíocha) go han-mhaith trí úsáid a bhaint as [comharthaí neamh-idirmhalartacha (NFTanna)](/glossary/#nft). + +Ar an mbealach céanna inar féidir le NFTanna ioncam ó idirbhearta sa todhchaí a thabhairt ar ais chuig an mbunchruthaitheoir, is féidir slabhraí leithdháilte luacha trédhearcacha a bhunú chun luach saothair a thabhairt do thaighdeoirí, do chomhlachtaí rialaithe (cosúil le DAOanna), nó fiú do na daoine a mbailítear a gcuid sonraí uathu. + +Is féidir le [IP-NFTanna](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) feidhmiú mar eochair do stór sonraí díláraithe de na turgnaimh thaighde atá ar siúl, agus plugáil isteach i NFT agus in airgeadú [deFi](/glossary/#defi) (lena n-áirítear codánú, linnte iasachtaithe agus breithmheas luacha). It also allows natively onchain entities such as DAOs like [VitaDAO](https://www.vitadao.com/) to conduct research directly onchain. D’fhéadfadh go mbeadh ról tábhachtach ag teacht [ chomharthaí “soulbound”](https://vitalik.eth.limo/general/2022/01/26/soulbound.html) i DeSci freisin trí ligean do dhaoine aonair a gcuid taithí agus dintiúir a chruthú atá nasctha lena seoladh Ethereum. + +### Stóráil sonraí, rochtain agus ailtireacht {#data-storage} + +Is féidir sonraí eolaíocha a dhéanamh i bhfad níos inrochtana trí úsáid a bhaint as patrúin Web3, agus trí stóráil dáilte eascaítear taighde a theacht slán ó imeachtaí dochracha. + +Ní mór gur córas é an pointe tosaigh atá inrochtana ag aon chéannacht dhíláraithe a bhfuil na dintiúir infhíoraithe chuí aige. Ligeann sé sin do pháirtithe iontaofa sonraí íogaire a mhacasamhlú go slán, rud a fhágann gur féidir iomarcaíocht agus frithsheasmhacht cinsireachta, atáirgeadh torthaí agus fiú an cumas d’ilpháirtithe comhoibriú agus sonraí nua a chur leis an tacar sonraí. Le modhanna ríomhaireachta rúnda amhail [ríomh-go-sonraí](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) soláthraítear meicníochtaí malartacha rochtana ar mhacasamhlú sonraí amha, trí Thimpeallachtaí Taighde Iontaofa a chruthú do na sonraí is íogaire. Tá Timpeallachtaí Taighde Iontaofa [luaite ag an NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) mar réiteach a bheidh ann amach anseo ar phríobháideachas sonraí agus ar chomhoibriú trí éiceachóras a chruthú inar féidir le taighdeoirí oibriú go sábháilte le sonraí ar an láthair trí úsáid a bhaint as timpeallachtaí caighdeánaithe chun cód agus cleachtais a roinnt. + +Tacaíonn réitigh sonraí Sholúbtha Web3 leis na cásanna thuas agus cuireann siad an bonn d'Eolaíocht Oscailte i ndáiríre, áit ar féidir le taighdeoirí earraí poiblí a chruthú gan cead rochtana nó táillí. Tá réitigh sonraí poiblí Web3 cosúil le IPFS, Arweave agus Filecoin optamaithe le haghaidh díláraithe. Soláthraíonn dClimate, mar shampla, rochtain uilíoch ar shonraí aeráide agus aimsire, lena n-áirítear ó stáisiúin aimsire agus samhlacha aeráide réamh-mheasta. + +## Glac páirt {#get-involved} + +Foghlaim faoi thionscadail agus bí páirteach i bpobal DeSci. + +- [DeSci.Global: imeachtaí domhanda agus féilire cruinnithe](https://desci.global) +- [Blocshlabhra le haghaidh Teileagraim Eolaíochta](https://t.me/BlockchainForScience) +- [Molecule: Tabhair maoiniú do thionscadail taighde agus faigh maoiniú dóibh](https://www.molecule.xyz/) +- [VitaDAO: maoiniú a fháil trí chomhaontuithe taighde urraithe do thaighde fad saoil](https://www.vitadao.com/) +- [ResearchHub: postáil toradh eolaíoch agus gabháil do chomhrá le piaraí](https://www.researchhub.com/) +- [LabDAO: filleadh próitéine in silico](https://alphafodl.vercel.app/) +- [dClimate API: fiosraigh sonraí aeráide arna mbailiú ag pobal díláraithe](https://api.dclimate.net/) +- [Fondúireacht DeSci: Tógálaí uirlisí foilsitheoireachta DeSci](https://descifoundation.org/) +- [DeSci.World: ionad ilfhreastail d’úsáideoirí le féachaint ar an eolaíocht dhíláraithe, agus le dul i ngleic leí](https://desci.world) +- [OceanDAO: Maoiniú arna rialú ag an DAO le haghaidh eolaíocht a bhaineann le sonraí](https://oceanprotocol.com/) +- [Opscientia: sreafaí oibre eolaíochta atá díláraithe oscailte](https://opsci.io/research/) +- [Bio.xyz: faigh maoiniú do do thionscadal biteicneolaíochta DAO nó desci](https://www.bio.xyz/) +- [Prótacal Fleming: geilleagar sonraí foinse oscailte a spreagann fionnachtain chomhoibríoch bithleighis](http://flemingprotocol.io/) +- [Institiúid na Táscála Gníomhaí](https://www.activeinference.org/) +- [IdeaMarkets: inchreidteacht eolaíoch dhíláraithe a chumasú](https://ideamarket.io/) +- [Saotharlanna DeSci](https://www.desci.com/) +- [ValleyDAO: pobal domhanda oscailte a thairgeann maoiniú agus tacaíocht aistritheach do thaighde bitheolaíochta sintéiseacha](https://www.valleydao.bio) +- [Cerebrum DAO: réitigh a aimsiú agus a chothú chun sláinte inchinne a chur chun cinn agus chun néar-mheathlú a chosc](https://www.cerebrumdao.com/) +- [CryoDAO: taighde gealaí a mhaoiniú i réimse an chrióchaomhnaithe](https://www.cryodao.org) + +Fáiltímid roimh mholtaí do thionscadail nua le liostú - féach ar ár [bpolasaí liostála](/contributing/adding-desci-projects/) le do thoil chun tús a chur leis! + +## Tuilleadh léitheoireachta {#further-reading} + +- [DeSci Wiki le Jocelynn Pearl agus Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Treoir don bhiteicneolaíocht díláraithe le Jocelynn Pearl le haghaidh thodhchaí a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [An cás ar son DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Treoir do DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Acmhainní eolaíochta díláraithe](https://www.vincentweisser.com/decentralized-science) +- [IP-NFTanna Bithchógaisíochta Mhóilín - Cur Síos Teicniúil](https://www.molecule.xyz/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Ag Tógáil Chórais Eolaíochta nach gá brath ar Mhuinín le Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Paul Kohlhaas - DeSci: Todhchaí na hEolaíochta Díláraithe (podchraoladh)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Ointeolaíocht an Infeirithe Ghníomhaigh don Eolaíocht Dhíláraithe: ón nGnáthchiall Shuite go dtí na Coimíneachtaí Eipistéimeacha](https://zenodo.org/record/6320575) +- [DeSci: Todhchaí an Taighde le Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Maoiniú Eolaíochta (Epilogue: DeSci agus bunphionsabail an crypto nua) ag Nadia](https://nadia.xyz/science-funding) +- [Cuireann dílárú isteach ar Fhorbairt Drugaí](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) +- [Cad é DeSci – Eolaíocht Dhíláraithe?](https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) + +### Físeáin {#videos} + +- [Cad is Eolaíocht Díláraithe ann?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Comhrá idir Vitalik Buterin agus an t-eolaí Aubrey de Grey faoi chrosbhealach taighde fad saoil agus crypto](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Tá an Fhoilsitheoireacht Eolaíoch Briste. An féidir le Web3 é a dheisiú?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Saotharlanna Neamhspleácha, & Eolaíocht Sonraí ar Mhórscála](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - Conas is féidir le DeSci Taighde Bithleighis & Caipiteal Fiontair](https://www.youtube.com/watch?v=qB4Tc3FcVbM) +- [Paige Donner - Eolaíocht Oscailte a Uirlisiú le Web3 & An Blocshlabhra](https://www.youtube.com/watch?v=nC-2QWQ-lgw&t=17s) diff --git a/public/content/translations/ga/developers/docs/accounts/index.md b/public/content/translations/ga/developers/docs/accounts/index.md new file mode 100644 index 00000000000..46cc640b070 --- /dev/null +++ b/public/content/translations/ga/developers/docs/accounts/index.md @@ -0,0 +1,136 @@ +--- +title: Cuntais Ethereum +description: Míniú ar chuntais Ethereum - a struchtúir sonraí agus a gcaidreamh le cripteagrafaíocht péire eochair-luach. +lang: ga +--- + +Is aonán é cuntas Ethereum le iarmhéid éitear (ETH) ar féidir leis idirbhearta a sheoladh ar Ethereum. Is féidir cuntais a rialú ag an úsáideoir nó iad a imscaradh mar chonarthaí cliste. + +## Réamhriachtanais {#prerequisites} + +Chun cabhrú leat an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús trínár [réamhrá do Ethereum](/developers/docs/intro-to-ethereum/). + +## Cineálacha cuntais {#types-of-account} + +Tá dhá chineál cuntais ag Ethereum: + +- Cuntas faoi úinéireacht sheachtrach (EOA) – arna rialú ag aon duine a bhfuil na heochracha príobháideacha aige +- Cuntas conartha – conradh cliste arna imscaradh chuig an líonra, arna rialú ag cód. Foghlaim faoi [conarthaí cliste](/developers/docs/smart-contracts/) + +Tá an cumas ag an dá chineál cuntais: + +- ETH agus comharthaí a fháil, a choinneáil agus a sheoladh +- Idirghníomhú le conarthaí cliste imscartha + +### Difríochtaí tábhachtacha {#key-differences} + +**Faoi úinéireacht sheachtrach** + +- Ní chosnaíonn aon rud cuntas a chruthú +- Is féidir idirbhearta a thionscnamh +- Ní féidir le hidirbhearta idir cuntais faoi úinéireacht eachtrach ach a bheith ina n-aistrithe ETH/dearbhán +- Comhdhéanta de phéire eochracha cripteagrafacha: eochracha poiblí agus príobháideacha a rialaíonn gníomhaíochtaí cuntais + +**Conradh** + +- Tá costas ag baint le conradh a chruthú toisc go bhfuil stóras líonra á úsáid agat +- Ní féidir idirbhearta a sheoladh ach mar fhreagra ar idirbheart a fuarthas +- Is féidir le hidirbhearta ó chuntas seachtrach go cuntas conartha cód a spreagadh ar féidir leo go leor gníomhartha éagsúla a rith, mar shampla comharthaí a aistriú nó fiú conradh nua a chruthú +- Níl eochracha príobháideacha ag cuntais chonartha. Ina áit sin, tá siad á rialú ag loighic an chóid chonartha cliste + +## Scrúdú cuntas {#an-account-examined} + +Tá ceithre réimse ag cuntais Ethereum: + +- `nonce` – Cuntar a léiríonn líon na n-idirbhearta arna seoladh ó chuntas faoi úinéireacht sheachtrach nó líon na gconarthaí arna gcruthú ag cuntas conartha. Ní féidir ach idirbheart amháin le nonce ar leith a dhéanamh do gach cuntas, rud a thugann cosaint in aghaidh ionsaithe athimeartha nuair a chraoltar agus a athritear idirbhearta sínithe arís agus arís eile. +- `iarmhéid` – Líon na wei ar leis an seoladh seo iad. Is ainmníocht ETH é Wei agus tá 1e+18 wei in aghaidh an ETH. +- `codeHash` – Tagraíonn an hais seo do _chód_ chuntais ar mheaisín fíorúil Ethereum (EVM). Tá blúirí de chód cláraithe i gcuntais chonartha ar féidir leo oibríochtaí éagsúla a dhéanamh. Ritear an cód EVM seo má fhaigheann an cuntas glao teachtaireachta. Ní féidir é a athrú, murab ionann agus na réimsí cuntais eile. Tá gach blúirí cód den sórt sin i mbunachar sonraí na staide faoina haiseanna comhfhreagracha le haisghabháil níos déanaí. CódHash a thugtar ar an luach haise seo. I gcás cuntais faoi úinéireacht sheachtrach, is hais de theaghrán folamh é an réimse codeHash. +- `storageRoot` – Uaireanta tugtar hais stórála air. Hais 256-giotán d'fhréamhnód Merkle Patricia trie a ionchódaíonn inneachar stórála an chuntais (mapáil idir luachanna slánuimhir 256-giotán), atá ionchódaithe isteach sa trie mar léarscáiliú ón hash Keccak 256-giotán den 256 -eochracha slánuimhir giotán do na luachanna slánuimhir 256-giotán RLP-ionchódaithe. Ionchódaíonn an trie seo hash ábhar stórála an chuntais seo, agus tá sé folamh de réir réamhshocraithe. + +![Léaráid a thaispeánann comhdhéanamh cuntais](./accounts.png) _Léaráid oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Cuntais faoi úinéireacht eachtrach agus péirí eochair {#externally-owned-accounts-and-key-pairs} + +Tá cuntas comhdhéanta de phéire eochracha cripteagrafacha: poiblí agus príobháideach. Cuidíonn siad le cruthú gur shínigh an seoltóir idirbheart i ndáiríre agus cuireann siad cosc ​​​​ar bhrionnú. Is í an eochair phríobháideach a úsáideann tú chun idirbhearta a shíniú, mar sin deonaíonn sí cumhdach duit ar na cistí a bhaineann le do chuntas. Ní shealbhaíonn tú criptea-airgeadra i ndáiríre, bíonn eochracha príobháideacha agat - bíonn na cistí ar mhórleabhar Ethereum i gcónaí. + +Cuireann sé seo cosc ​​ar ghníomhaithe mailíseacha idirbhearta falsa a chraoladh mar is féidir leat seoltóir idirbhirt a fhíorú i gcónaí. + +Más mian le Alice éitear a sheoladh óna cuntas féin chuig cuntas Bob, ní mór do Alice iarratas idirbhirt a chruthú agus é a sheoladh chuig an líonra lena fhíorú. Cinntíonn úsáid cripteagrafaíocht eochair phoiblí ag Ethereum gur féidir leh Alice a chruthú gur chuir sí tús leis an iarratas idirbhirt ar dtús. Gan meicníochtaí cripteagrafacha, d’fhéadfadh namhaid mailíseach Eve iarratas a chraoladh go poiblí ar nós “5 ETH a sheoladh ó chuntas Alice chuig cuntas Eve,” agus ní bheadh ​​aon duine in ann a fhíorú nár tháinig sé ó Alice. + +## Cruthú cuntais {#account-creation} + +Nuair is mian leat cuntas a chruthú, ginfidh formhór na leabharlann eochair phríobháideach randamach duit. + +Tá eochair phríobháideach comhdhéanta de 64 carachtar heicsidheachúlach agus is féidir í a chriptiú le pasfhocal. + +Sampla: + +`fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f` + +Gintear an eochair phoiblí ón eochair phríobháideach trí úsáid a bhaint as an [Algartam Síniú Digiteach an Chuair Eiliptic](https://wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm). Gheobhaidh tú seoladh poiblí do do chuntas tríd an 20 beart deiridh den hais Keccak-256 den eochair phoiblí a ghlacadh agus `0x` a chur leis an tús. + +Ciallaíonn sé seo go bhfuil seoladh 42 carachtar ag cuntas faoi úinéireacht eachtrach (EOA) (mírín 20 beart arb ionann é agus 40 carachtar heicsidheachúlach móide an réimír `0x`). + +Sampla: + +`0x5e97870f263700f46aa00d967821199b9bc5a120` + +Léiríonn an sampla seo a leanas conas uirlis sínithe dar teideal [Clef](https://geth.ethereum.org/docs/tools/clef/introduction) a úsáid chun cuntas nua a ghiniúint. Uirlis bhainistíochta agus sínithe cuntas is ea Clef a thagann i gcuachta leis an gcliant Ethereum, [Geth](https://geth.ethereum.org). Cruthaíonn an t-ordú `clef newaccount` péire nua eochrach agus sábhálann sé iad i stór eochrach criptithe. + +``` +> clef newaccount --keystore + +Please enter a password for the new account to be created: +> + +------------ +INFO [10-28|16:19:09.156] Your new key was generated address=0x5e97870f263700f46aa00d967821199b9bc5a120 +WARN [10-28|16:19:09.306] Please backup your key file path=/home/user/go-ethereum/data/keystore/UTC--2022-10-28T15-19-08.000825927Z--5e97870f263700f46aa00d967821199b9bc5a120 +WARN [10-28|16:19:09.306] Please remember your password! +Generated account 0x5e97870f263700f46aa00d967821199b9bc5a120 +``` + +[Doiciméadú Getth](https://geth.ethereum.org/docs) + +Is féidir eochracha poiblí nua a dhíorthú ó d'eochair phríobháideach, ach ní féidir eochair phríobháideach a dhíorthú ó eochracha poiblí. Tá sé ríthábhachtach do chuid eochracha príobháideacha a choinneáil slán agus, mar a thugann an t-ainm le fios, **PRÍOBHÁIDEACH**. + +Teastaíonn eochair phríobháideach uait chun teachtaireachtaí agus idirbhearta a shíniú a aschuireann síniú. Féadfaidh daoine eile an síniú a ghlacadh ansin chun d’eochair phoiblí a dhíorthú, rud a dheimhníonn údar na teachtaireachta. I d’iarratas, is féidir leat leabharlann JavaScript a úsáid chun idirbhearta a sheoladh chuig an líonra. + +## Cuntais chonartha {#contract-accounts} + +Tá seoladh heicsidheachúil 42 carachtar ag cuntais chonartha freisin: + +Sampla: + +`0x06012c8cf97bead5deae237070f9587f8e7a266d` + +De ghnáth tugtar seoladh an chonartha nuair a dhéantar conradh a imscaradh chuig Blocshlabhra Ethereum. Tagann an seoladh ó sheoladh an chruthaitheora agus líon na n-idirbheart a seoladh ón seoladh sin (an “nonce”). + +## Eochracha bailíochtaithe {#validators-keys} + +Tá eochair de chineál eile in Ethereum freisin, a tugadh isteach nuair a d’athraigh Ethereum ó chruthúnas oibre go comhthoil bunaithe ar chruthúnas. Is eochracha 'BLS' iad seo agus úsáidtear iad chun bailíochtóirí a aithint. Is féidir na heochracha seo a chomhiomlánú go héifeachtach chun an bandaleithead a theastaíonn le comhthoil a chruthú sa líonra a laghdú. Gan an eochair-chomhiomlánú seo bheadh ​​an t-íosmhéid geall le haghaidh bailíochtaithe i bhfad níos airde. + +[Tuilleadh ar eochracha bailíochtaithe](/developers/docs/consensus-mechanisms/pos/keys/). + +## Nóta ar sparáin {#a-note-on-wallets} + +Ní sparán é cuntas. Is comhéadan nó feidhmchlár é sparán a ligeann duit idirghníomhú le do chuntas Ethereum, cuntas faoi úinéireacht sheachtrach nó cuntas conartha. + +## Léiriú físe {#a-visual-demo} + +Féach ar Austin do do threorú trí fheidhmeanna hais, agus péirí eochair. + + + + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Cuntas Ethereum a Thuiscint](https://info.etherscan.com/understanding-ethereum-accounts/) - etherscan + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Ábhair ghaolmhara {#related-topics} + +- [Conarthaí cliste](/developers/docs/smart-contracts/) +- [Idirbhearta](/developers/docs/transactions/) diff --git a/public/content/translations/ga/developers/docs/blocks/index.md b/public/content/translations/ga/developers/docs/blocks/index.md new file mode 100644 index 00000000000..4a820ce1383 --- /dev/null +++ b/public/content/translations/ga/developers/docs/blocks/index.md @@ -0,0 +1,152 @@ +--- +title: Bloic +description: Forbhreathnú ar na bloic i mblocshlabhra Ethereum - a struchtúr sonraí, cén fáth a bhfuil gá leo, agus conas a dhéantar iad. +lang: ga +--- + +Is baisceanna idirbhearta iad bloic le hais den bhloc roimhe seo sa slabhra. Nascann sé seo bloic le chéile (i slabhra) toisc go bhfuil haiseanna díorthaithe go cripteagrafach ó na sonraí bloc. Cuireann sé seo cosc ​​​​ar chalaois, toisc go ndéanfadh athrú amháin ar aon bhloc sa stair na bloic seo a leanas go léir a neamhbhailiú mar go n-athródh gach hashes ina dhiaidh sin agus go dtabharfadh gach duine a ritheann an blockchain faoi deara. + +## Réamhriachtanais {#prerequisites} + +Is ábhar an-chairdiúil do thosaitheoirí iad bloic. Ach le cabhrú leat an leathanach seo a thuiscint níos fearr, molaimid duit [Cuntais](/developers/docs/accounts/) a léamh ar dtús, [Idirbhearta](/developers/docs/transactions/), agus ár [réamhrá do Ethereum](/developers/docs/intro-to-ethereum/). + +## Cén fáth bloic? {#why-blocks} + +Chun a chinntiú go mbíonn staid shioncrónaithe á cothabháil ag gach rannpháirtí ar líonra Ethereum agus go n-aontaíonn siad ar stair bheacht na n-idirbhearta, déanaimid idirbhearta a bhaiscáil ina mbloic. Ciallaíonn sé seo go bhfuil na dosaenacha (nó na céadta) idirbheart tiomanta, comhaontaithe, agus sioncrónaithe ag an am céanna. + +![Léaráid a thaispeánann idirbheart i mbloc is cúis le hathruithe staide](./tx-block.png) _Léaráid oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Trí thiomantais a spásáil amach, tugaimid dóthain ama do rannpháirtithe an líonra teacht ar chomhthoil: cé go dtarlaíonn iarratais ar idirbhearta mórán uaireanta in aghaidh an tsoicind, ní chruthaítear agus ní dhéantar bloic ar Ethereum ach uair amháin gach dhá shoicind déag. + +## Conas a oibríonn bloic {#how-blocks-work} + +Chun stair na n-idirbhearta a chaomhnú, cuirtear bloic in ord docht (tá tagairt dá mháthairbhloc i ngach bloc nua a chruthaítear), agus cuirtear idirbhearta laistigh de na bloic in ord docht freisin. Ach amháin i gcásanna neamhchoitianta, ag aon am ar leith, tá gach rannpháirtí ar an líonra ar aon intinn maidir le líon beacht agus stair na mbloc, agus tá siad ag obair chun na hiarratais ar idirbhearta beo reatha a bhaisceadh isteach sa chéad bhloc eile. + +Nuair a chuireann bailíochtóir roghnaithe go randamach bloc le chéile ar an líonra, iomadaítear é chuig an gcuid eile den líonra; cuireann gach nóid an bloc seo go dtí deireadh a bhlocshlabhra, agus roghnaítear bailíochtóir nua chun an chéad bhloc eile a chruthú. Tá an próiseas cruinn bloc-tionóil agus an próiseas tiomantais/comhthola sonraithe faoi láthair ag prótacal “cruthúnas-ar gheall” Ethereum. + +## Prótacal cruthúnais ar gheall {#proof-of-work-protocol} + +Ciallaíonn cruthúnas ar gheall an méid seo a leanas: + +- Caithfidh nóid bhailíochtaithe 32 ETH a chur isteach i gconradh taisce mar chomhthaobhacht in aghaidh droch-iompar. Cabhraíonn sé seo leis an líonra a chosaint mar is dócha go scriostar cuid den bheart sin nó é go léir de bharr gníomhaíochta mímhacánta. +- I ngach sliotán (spásáilte dhá shoicind déag óna chéile) roghnaítear bailíochtóir go randamach le bheith ina mholtóir bloic. Cuachann siad idirbhearta le chéile, déanann iad a fhorghníomhú agus cinneann siad 'staid' nua. Imfhilleann siad an fhaisnéis seo i mbloc agus cuireann siad ar aghaidh chuig bailíochtóirí eile í. +- Ritheann bailíochtóirí eile a chloiseann faoin mbloc nua na hidirbhearta le cinntiú go n-aontaíonn siad leis an athrú atá beartaithe ar an stát domhanda. Ag glacadh leis go bhfuil an bloc bailí, cuireann siad é lena mbunachar sonraí féin. +- Má chloiseann bailíochtóir faoi dhá bhloc contrártha don sliotán céanna úsáideann siad a n-algartam forc-rogha chun an ceann a fhaigheann tacaíocht ón ETH geallta is mó a phiocadh. + +[Tuilleadh faoi chruthúnas-gheallta](/developers/docs/consensus-mechanisms/pos) + +## Cad atá i mbloc? {#block-anatomy} + +Tá go leor faisnéise laistigh de bhloc. Ag an leibhéal is airde tá na réimsí seo a leanas i mbloc: + +| Réimse | Cur síos | +|:---------------- |:--------------------------------------------------------- | +| `slot` | an sliotán lena mbaineann an bloc | +| `proposer_index` | ID an bhailíochtóra a mhol an bloc | +| `parent_root` | hais an bhloic roimhe seo | +| `state_root` | hais fhréamh an réad staide | +| `body` | réad ina bhfuil roinnt réimsí, mar atá sainmhínithe thíos | + +Tá roinnt réimsí dá chuid féin sa bhloc `corp`: + +| Réimse | Cur síos | +|:-------------------- |:----------------------------------------------------------------------- | +| `randao_reveal` | luach a úsáidtear chun an chéad mholtóir bloc eile a roghnú | +| `eth1_data` | faisnéis faoin gconradh taisce | +| `graffiti` | sonraí treallach a úsáidtear chun bloic a chlibeáil | +| `proposer_slashings` | liosta de bhailithóirí le gearradh siar | +| `attester_slashings` | liosta na bhfianaitheoirí atá le gearradh | +| `attestations` | liosta fianuithe i bhfabhar an bhloc reatha | +| `deposits` | liosta de thaiscí nua leis an gconradh taisce | +| `voluntary_exits` | liosta de bhailitheoirí atá ag fágáil an líonra | +| `sync_aggregate` | fothacar de bhailíchtóirí a úsáidtear chun freastal ar chliaint éadroma | +| `execution_payload` | idirbhearta a ritheadh ​​ón gcliant reatha | + +Sa réimse `fianuithe` tá liosta de na fianuithe go léir sa bhloc. Tá a gcineál sonraí féin ag fianuithe ina bhfuil roinnt píosaí sonraí. Tá gach fianú: + +| Réimse | Cur síos | +|:------------------ |:------------------------------------------------------- | +| `aggregation_bits` | liosta de na bailíochtóirí a ghlac páirt san fhianú seo | +| `data` | coimeádán le foréimsí iolracha | +| `signature` | síniú comhiomlán na mbailíochtóirí fianaithe go léir | + +Tá an méid seo a leanas sa réimse `sonraí` sa `fhianú`: + +| Réimse | Cur síos | +|:------------------- |:--------------------------------------------------- | +| `slot` | an sliotán lena mbaineann an fianú | +| `index` | innéacsanna le haghaidh bailíochtóirí fianaithe | +| `beacon_block_root` | hais fréimhe an bhloc Beacon ina bhfuil an réad seo | +| `foinse` | an seicphointe deiridh a bhfuil údar leis | +| `target` | an bloc teorann aga is déanaí | + +Nuair a ritear na hidirbhearta sa `execution_payload`, nuashonraítear an staid dhomhanda. Athritheann gach cliant na hidirbhearta sa `execution_payload` chun a chinntiú go dtagann an staid nua leis an staid sa réimse bloc nua `state_root`. Seo mar is féidir le cliaint a rá go bhfuil bloc nua bailí agus sábháilte le cur lena bhlocshlabhra. Is réad é an `pálasta reatha` féin a bhfuil roinnt réimsí ann. Tá `execution_payload_header` ann freisin ina bhfuil faisnéis achomair thábhachtach faoi na sonraí reatha. Tá na struchtúir sonraí seo eagraithe mar a leanas: + +Tá na réimsí seo a leanas sa `execution_payload_header`: + +| Réimse | Cur síos | +|:------------------- |:--------------------------------------------------------------------------------- | +| `parent_hash` | hais an mháthairbhloic | +| `fee_recipient` | seoladh cuntais chun táillí idirbhirt a íoc leis | +| `state_root` | hais fréimhe don staid dhomhanda tar éis athruithe a chur i bhfeidhm sa bhloc seo | +| `receipts_root` | hais na bhfáltas idirbhirt trie | +| `logs_bloom` | struchtúr sonraí ina bhfuil logaí imeachtaí | +| `prev_randao` | luach a úsáidtear i roghnú bailíochtaithe randamach | +| `block_number` | uimhir an bhloic reatha | +| `gas_limit` | uasghás a cheadaítear sa bhloc seo | +| `gas_used` | an méid iarbhír gáis a úsáidtear sa bhloc seo | +| `timestamp` | an t-am bloic | +| `extra_data` | sonraí breise treallach mar bhearta amha | +| `base_fee_per_gas` | luach na buntáille | +| `block_hash` | Hais an bhloc reatha | +| `transactions_root` | hais fréimhe na n-idirbhearta sa phálasta | +| `withdrawal_root` | hais fréimhe na n-aistarraingtí sa phálasta | + +Tá na nithe seo a leanas sa `execution_payload` féin (tabhair faoi deara go bhfuil sé seo comhionann leis an gceanntásc ach amháin go n-áirítear ann liosta iarbhír na n-idirbhearta agus faisnéis aistarraingthe in ionad hais fréimhe na n-idirbhearta): + +| Réimse | Cur síos | +|:------------------ |:--------------------------------------------------------------------------------- | +| `parent_hash` | hais an mháthairbhloic | +| `fee_recipient` | seoladh cuntais chun táillí idirbhirt a íoc leis | +| `state_root` | hais fréimhe don staid dhomhanda tar éis athruithe a chur i bhfeidhm sa bhloc seo | +| `receipts_root` | hais na bhfáltas idirbhirt trie | +| `logs_bloom` | struchtúr sonraí ina bhfuil logaí imeachtaí | +| `prev_randao` | luach a úsáidtear i roghnú bailíochtaithe randamach | +| `block_number` | uimhir an bhloic reatha | +| `gas_limit` | uasghás a cheadaítear sa bhloc seo | +| `gas_used` | an méid iarbhír gáis a úsáidtear sa bhloc seo | +| `timestamp` | an t-am bloic | +| `extra_data` | sonraí breise treallach mar bhearta amha | +| `base_fee_per_gas` | luach na buntáille | +| `block_hash` | Hais an bhloc reatha | +| `transactions` | liosta na n-idirbhearta atá le déanamh | +| `withdrawals` | liosta de réada aistarraingthe | + +Sa liosta `aistarraingtí` tá réada `aistarraingt` struchtúrtha mar a leanas: + +| Réimse | Cur síos | +|:---------------- |:------------------------------------ | +| `seoladh` | seoladh cuntais a rinne aistarraingt | +| `amount` | méid aistarraingthe | +| `index` | luach innéacs aistarraingthe | +| `validatorIndex` | luach innéacs bailíochtóra | + +## Am bloic {#block-time} + +Tagraíonn am bloic don am a scarann bloic. In Ethereum, roinntear an t-am ina dhá aonad déag ar a dtugtar 'sliotáin'. I ngach sliotán roghnaítear bailíochtóir amháin chun bloc a mholadh. Ag glacadh leis go bhfuil gach bailíochtóir ar líne agus ag feidhmiú go hiomlán beidh bloc i ngach sliotán, rud a chiallaíonn gurb é 12s an t-am bloic. Ó am go chéile, áfach, d’fhéadfadh go mbeadh bailíochtóirí as líne nuair a ghlaoitear orthu bloc a mholadh, rud a chiallaíonn gur féidir le sliotáin a bheith folamh uaireanta. + +Ní hionann an feidhmiú seo agus córais atá bunaithe ar chruthúnas oibre, áit a bhfuil amanna blocála dóchúlaíoch agus tiúnáilte ag deacracht mhianadóireachta sprice an phrótacail. Is sampla foirfe é [meán-am bloic](https://etherscan.io/chart/blocktime) de seo mar ar féidir an t-aistriú ó chruthúnas oibre go cruthúnas gill a bheith soiléir. tátal bunaithe ar chomhsheasmhacht an am bloic 12s nua. + +## Méid bloic {#block-size} + +Nóta tábhachtach deiridh is ea go bhfuil na bloic iad féin teoranta ó thaobh méide. Tá spriocmhéid de 15 milliún gáis ag gach bloc ach méadóidh nó laghdóidh méid na mbloc de réir éilimh líonra, suas go dtí an teorainn bloc de 30 milliún gáis (2x spriocmhéid bloc). Is féidir an teorainn gháis bhloc a choigeartú suas nó síos faoi fhachtóir 1/1024 ó theorainn gháis an bhloic roimhe sin. Mar thoradh air sin, is féidir le bailíochtóirí an teorainn gháis bloc a athrú trí chomhthoil. Ní mór méid iomlán an gháis a chaithfidh gach idirbheart sa bhloc a bheith níos lú ná teorainn gháis an bhloic. Tá sé seo tábhachtach toisc go gcinntíonn sé nach féidir le bloic a bheith mór go treallach. Más rud é go bhféadfadh bloic a bheith mór go treallach, ní bheadh nóid lána le níos lú feidhmíochta in ann coinneáil suas leis an líonra mar gheall ar riachtanais spáis agus luais. Dá mhéad an bloc, is mó an chumhacht ríomhaireachta a theastaíonn chun iad a phróiseáil in am don chéad sliotán eile. Is fórsa láraithe é seo, a ndéantar friotaíocht ina aghaidh trí theorainn a chur ar mhéideanna na mbloc. + +## Tuilleadh léitheoireachta {#further-reading} + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Ábhair ghaolmhara {#related-topics} + +- [Idirbhearta](/developers/docs/transactions/) +- [Gás](/developers/docs/gas/) +- [Cruthúnas-de-geall](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/ga/developers/docs/dapps/index.md b/public/content/translations/ga/developers/docs/dapps/index.md new file mode 100644 index 00000000000..c78ede740f8 --- /dev/null +++ b/public/content/translations/ga/developers/docs/dapps/index.md @@ -0,0 +1,96 @@ +--- +title: Réamhrá le dapps +description: +lang: ga +--- + +Is feidhmchlár díláraithe (dapp) é feidhmchlár atá bunaithe ar líonra díláraithe a chomhcheanglaíonn [conradh cliste](/developers/docs/smart-contracts/) agus comhéadan úsáideora tosaigh. Ar Ethereum, tá conarthaí cliste inrochtana agus trédhearcach - cosúil le APIs oscailte - mar sin is féidir le do dapp fiú conradh cliste a scríobh duine éigin eile a áireamh. + +## Réamhriachtanais {#prerequisites} + +Sula bhfoghlaimíonn tú faoi dapps, ba chóir duit na [bunphrionsabail an bhlocshlabhra](/developers/docs/intro-to-ethereum/) a chlúdach agus léamh faoi líonra Ethereum agus conas a dhéantar é a dhílárú. + +## Sainmhíniú ar dapp {#definition-of-a-dapp} + +Tá a chód cúil ag dapp ag rith ar líonra díláraithe piara go piara. Cuir é seo i gcodarsnacht le haip ina bhfuil an cód cúil ag rith ar fhreastalaithe láraithe. + +Is féidir le dapp cód tosaigh agus comhéadain úsáideora a bheith scríofa i dteanga ar bith (cosúil le haip) chun glaonna a dhéanamh ar a chúl. Ina theannta sin, is féidir a thosach a óstáil ar stóras díláraithe mar [IPFS](https://ipfs.io/). + +- **Díláraithe** - feidhmíonn dapps ar Ethereum, ardán poiblí díláraithe oscailte nach bhfuil smacht ag duine nó grúpa amháin air +- **cinntitheach** - feidhmíonn dapps an fheidhm chéanna is cuma cén timpeallacht ina gcuirtear i gcrích iad +- **Turing-iomlán** - is féidir le dapps aon ghníomh a dhéanamh nuair a bhíonn na h-acmhainní riachtanacha ar fáil +- **Scoite** - ritear dapps a i dtimpeallacht fhíorúil ar a dtugtar Meaisín Fíorúil Ethereum ionas má tá fabht ag an gconradh cliste, nach gcuirfear isteach ar ghnáthfheidhmiú an líonra blocshlabhra + +### Maidir le conarthaí cliste {#on-smart-contracts} + +Chun dapps a thabhairt isteach, ní mór dúinn conarthaí cliste a thabhairt isteach - cúl dapp nuair nach bhfuil téarma níos fearr ann. Le haghaidh forbhreathnú mionsonraithe, téigh chuig ár rannán ar [conarthaí cliste](/developers/docs/smart-contracts/). + +Is éard atá i gconradh cliste ná cód a chónaíonn ar bhlocshlabhra Ethereum agus a ritheann go díreach mar atá cláraithe. Nuair a bhíonn conarthaí cliste imscartha ar an líonra ní féidir leat iad a athrú. Is féidir Dapps a dhílárú toisc go bhfuil siad á rialú ag an loighic atá scríofa sa chonradh, ní ag duine aonair nó ag cuideachta. Ciallaíonn sé seo freisin go gcaithfidh tú do chonarthaí a dhearadh go han-chúramach agus iad a thástáil go críochnúil. + +## Buntáistí a bhaineann le forbairt dapp {#benefits-of-dapp-development} + +- **Gan aga neamhfhónaimh** – Nuair a bhíonn an conradh cliste imscartha ar an mblocshlabhra, bíonn an líonra ina iomláine in ann i gcónaí freastal ar chliaint atá ag iarraidh idirghníomhú leis an gconradh. Ní féidir le gníomhaithe mailíseacha, dá bhrí sin, ionsaithe diúltú seirbhíse a sheoladh atá dírithe ar dhaps aonair. +- **Príobháideacht** – Ní gá duit aitheantas fíorshaoil ​​a sholáthar chun imscaradh nó idirghníomhú le dapp. +- **Friotaíocht in aghaidh na cinsireachta** – Ní féidir le haonán amháin ar an líonra bac a chur ar úsáideoirí idirbhearta a chur isteach, dapps a imscaradh nó sonraí a léamh ón mblocshlabhra. +- **Sláine iomlán na sonraí** - Tá sonraí atá stóráilte ar an mblocshlabhra do-athchurtha agus do-athraithe, a bhuí le primitives cripteagrafacha. Ní féidir le gníomhaithe mailíseacha idirbhearta nó sonraí eile atá poiblithe cheana féin a bhrionnú. +- **Ríomh gan iontaobh/iompraíocht infhíoraithe** – Is féidir anailís a dhéanamh ar chonarthaí cliste agus ráthaítear go ndéanfar iad a rith ar bhealaí intuartha, gan aon ghá le muinín a chur in údarás lárnach. Níl sé seo fíor i samhlacha traidisiúnta; mar shampla, nuair a bhainimid úsáid as córais bhaincéireachta ar líne, ní mór muinín a bheith againn nach mbainfidh institiúidí airgeadais mí-úsáid as ár gcuid sonraí airgeadais, nach gcuirfidh siad isteach ar thaifid, nó nach ndéanfar iad a haiceáil. + +## Míbhuntáistí a bhaineann le forbairt dapp {#drawbacks-of-dapp-development} + +- **Cothabháil** - Is féidir le Dapps a bheith níos deacra a chothabháil mar go bhfuil sé níos deacra na cóid agus na sonraí a fhoilsítear don bhlocshlabhra a mhodhnú. Bíonn sé deacair ar fhorbróirí nuashonruithe a dhéanamh ar a gcuid dapps (nó ar na sonraí bunúsacha arna stóráil ag dapp) a luaithe a imscartar iad, fiú má aithnítear fabhtanna nó rioscaí slándála i seanleagan. +- **Forchostas feidhmíochta** – Tá forchostas feidhmíochta ollmhór ann, agus tá an scálú thar a bheith deacair. Chun an leibhéal slándála, sláine, trédhearcachta agus iontaofachta a bhfuil Ethereum ag iarraidh a bhaint amach, ritheann agus stórálann gach nód gach idirbheart. Ina theannta sin, bíonn am ag teastáil le haghaidh comhthoil maidir le cruthúnas gill. +- **Plódú líonra** – Nuair a úsáideann dapp amháin an iomarca acmhainní ríomhaireachtúla, cuirtear cúltaca ar fáil don líonra iomlán. Faoi láthair, ní féidir leis an líonra ach thart ar 10-15 idirbheart in aghaidh an tsoicind a phróiseáil; má tá idirbhearta á seoladh isteach níos tapúla ná seo, is féidir leis an linn na n-idirbheart neamhdheimhnithe a bhailiú go tapa. +- **Eispéiris úsáideora** - D'fhéadfadh sé a bheith níos deacra eispéiris atá éasca le húsáid a innealtóireacht mar go bhféadfadh sé a bheith ródheacair don ghnáthúsáideoir deiridh chruach uirlisí a shocrú atá riachtanach chun idirghníomhú leis an mblocshlabhra ar bhealach fíor slán. +- **Lárú** - D'fhéadfadh go mbeadh cuma seirbhíse láraithe ar réitigh atá éasca le húsáid agus atá éasca le forbróir bunaithe ar bhunchiseal Ethereum ar aon nós. Mar shampla, féadfaidh seirbhísí den sórt sin eochracha nó faisnéis íogair eile a stóráil ar thaobh an fhreastalaí, freastal ar thosach ag baint úsáide as freastalaí láraithe, nó loighic ghnó tábhachtach a reáchtáil ar fhreastalaí láraithe roimh scríobh chuig an mblocshlabhra. Cuireann lárnú deireadh le mórán de na buntáistí a bhaineann le blocshlabhra ar an tsamhail thraidisiúnta (mura gcuireann sé deireadh leo go léir). + +## An bhfuil tú níos mó d’fhoghlaimeoir amhairc? {#visual-learner} + + + +## Uirlisí chun dapps a chruthú {#dapp-tools} + +**Scaffold-ETH _- Déan turgnamh go tapa le Solidity ag baint úsáide as éadain a théann in oiriúint do do chonradh cliste._** + +- [GitHub](https://github.com/scaffold-eth/scaffold-eth-2) +- [Sampla dapp](https://punkwallet.io/) + +**Cruthaigh Aip Eth _- Cruthaigh aipeanna faoi thiomáint Ethereum le hordú amháin._** + +- [GitHub](https://github.com/paulrberg/create-eth-app) + +**Dapp aon-chlic _- uirlis FOSS chun tosaigh dapp a ghiniúint ó [ABI](/glossary/#abi)._** + +- [oneclickdapp.com](https://oneclickdapp.com) +- [GitHub](https://github.com/oneclickdapp/oneclickdapp-v1) + +**Etherflow _- uirlis FOSS d’fhorbróirí Ethereum chun a nód a thástáil, agus & glaonna RPC ón mbrabhsálaí a dhífhabhtú._** + +- [etherflow.quiknode.io](https://etherflow.quiknode.io/) +- [GitHub](https://github.com/abunsen/etherflow) + +**thirdweb _- SDKanna i ngach teanga, conarthaí cliste, uirlisí, agus bonneagar le haghaidh forbairt web3._** + +- [Leathanach baile](https://thirdweb.com/) +- [Doiciméadúchán](https://portal.thirdweb.com/) +- [GitHub](https://github.com/thirdweb-dev/) + +**Crossmint _- Ardán forbartha web3 de ghrád fiontair chun conarthaí cliste a imscaradh, íocaíochtaí cárta creidmheasa agus tras-shlabhra a chumasú, agus úsáidí APInna chun NFTanna a chruthú, a dháileadh, a dhíol, a stóráil agus a chur in eagar._** + +- [crossmint.com](https://www.crossmint.com) +- [Doiciméadúchán](https://docs.crossmint.com) +- [Discord](https://discord.com/invite/crossmint) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Foghlaim faoi dhaipeanna](/dapps) +- [Ailtireacht feidhmchlár Web 3.0](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ +- [Treoir 2021 maidir le feidhmchláir dhíláraithe](https://limechain.tech/blog/what-are-dapps-the-2021-guide/) - _ Slabhra Aoil_ +- [Cad is Aipeanna Díláraithe ann?](https://www.gemini.com/cryptopedia/decentralized-applications-defi-dapps) - _Gemini_ +- [Dapps coitianta](https://www.alchemy.com/dapps) - _Alchemy_ + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Ábhair Ghaolmhara {#related-topics} + +- [Cur i láthair ar an stack Ethereum](/developers/docs/ethereum-stack/) +- [Creataí forbartha](/developers/docs/frameworks/) diff --git a/public/content/translations/ga/developers/docs/evm/index.md b/public/content/translations/ga/developers/docs/evm/index.md new file mode 100644 index 00000000000..0f910ee858e --- /dev/null +++ b/public/content/translations/ga/developers/docs/evm/index.md @@ -0,0 +1,78 @@ +--- +title: Meaisín Fíorúil Ethereum (EVM) +description: Réamhrá ar an meaisín fíorúil Ethereum agus conas a bhaineann sé le staid, idirbhearta, agus conarthaí cliste. +lang: ga +--- + +Is timpeallacht fhíorúil dhíláraithe é Meaisín Fíorúil Ethereum (EVM) a ritheann cód go comhsheasmhach agus go slán ar fud na nóid Ethereum go léir. Ritheann Nóid an EVM chun conarthaí cliste a dhéanamh, ag baint úsáide as "[gas](/developers/docs/gas/)" chun an iarracht ríomhaireachtúil atá ag teastáil le haghaidh [ oibríochtaí](/developers/docs/evm/opcodes/), lena gcinntítear leithdháileadh éifeachtach acmhainní agus slándáil líonra. + +## Réamhriachtanais {#prerequisites} + +Tá eolas bunúsach ar théarmaíocht choiteann san ríomheolaíocht mar [bearta](https://wikipedia.org/wiki/Byte), [cuimhne](https://wikipedia.org/wiki/computer_memory), agus [cruach](https://wikipedia.org/wiki/Stack_(abstract_data_type)) riachtanach chun an EVM a thuiscint. Bheadh ​​sé ina chuidiú freisin a bheith compordach le coincheapa cripteagrafaíochta/blocshlabhra mar [haisfheidhmeanna](https://wikipedia.org/wiki/Cryptographic_hash_function) agus an [Crann Merkle](https://wikipedia.org/wiki/Merkle_tree). + +## Ó mhórleabhar go meaisín staide {#from-ledger-to-state-machine} + +Is minic a úsáidtear an t-analach 'mórleabhar dáilte' mar thuairisc ar bhlocshlabhra cosúil le Bitcoin, a chumasaíonn airgeadra díláraithe le huirlisí bunúsacha cripteagrafaíochta. Cothabhálann an mórleabhar taifead gníomhaíochta nach mór dó cloí le sraith rialacha a rialaíonn cad is féidir agus nach féidir le duine a dhéanamh chun an mórleabhar a mhodhnú. Mar shampla, ní féidir le seoladh Bitcoin níos mó Bitcoin a chaitheamh ná mar atá faighte aige roimhe seo. Tá na rialacha seo mar bhonn agus mar thaca ag gach idirbheart ar Bitcoin agus go leor blocshlabhraí eile. + +While Ethereum has its own native cryptocurrency (ether) that follows almost exactly the same intuitive rules, it also enables a much more powerful function: [smart contracts](/developers/docs/smart-contracts/). Don ghné níos casta seo, tá analach níos sofaisticiúla ag teastáil. In ionad mórleabhar dáilte, is [meaisín staide](https://wikipedia.org/wiki/Finite-state_machine) dáilte é Ethereum. Is struchtúr mór sonraí é staid Ethereum a choinníonn ní hamháin gach cuntas agus iarmhéid, ach _staid mheaisín_, ar féidir é a athrú ó bhloc go bloc de réir thacar réamhshainithe de rialacha, agus ar féidir leo cód meaisín treallach a rith. Sainmhíníonn an EVM na rialacha sonracha maidir le staid a athrú ó bhloc go bloc. + +![Léaráid a thaispeánann comhdhéanamh an EVM](./evm.png) _Léaráid oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Feidhm aistrithe staide Ethereum {#the-ethereum-state-transition-function} + +Feidhmíonn an EVM mar fheidhm mhatamaiticiúil: Nuair a thugtar ionchur dó, táirgeann sé aschur cinntitheach. Is mór an chabhair mar sin cur síos níos foirmiúla a dhéanamh ar Ethereum agus a rá go bhfuil **feidhm aistrithe staid** aige: + +``` +Y(S, T)= S' +``` + +Nuair a thugtar seanstaid bhailí `(S)` agus sraith nua idirbheart bailí `(T)`, táirgeann feidhm trasdula staide Ethereum `Y(S, T)` staid aschuir bhailí nua `S'` + +### Staid {#state} + +I gcomhthéacs Ethereum, is struchtúr ollmhór sonraí é an staid ar a dtugtar [ Trie modhnaithe Merkle Patricia](/developers/docs/data-structures-and-ioncoding/patricia-merkle-trie/), a choimeádann gach [cuntas](/developers/docs/accounts/) nasctha le haiseanna agus atá in-laghdaithe le hais fréimhe amháin atá stóráilte ar an mblocshlabhra. + +### Idirbhearta {#transactions} + +Is treoracha sínithe go cripteagrafach ó chuntais iad idirbhearta. Tá dhá chineál idirbhirt ann: iad sin a mbíonn glaonna teachtaireachtaí mar thoradh orthu agus iad siúd a chruthaíonn conarthaí. + +Cruthaítear cuntas conartha nua mar thoradh ar chruthú conarthaí ina bhfuil [conradh cliste](/developers/docs/smart-contracts/anatomy/) beartchód tiomsaithe. Aon uair a dhéanann cuntas eile glao teachtaireachta chuig an gconradh sin, ritheann sé a bheartchód. + +## Treoracha EVM {#evm-instructions} + +Feidhmíonn an EVM mar [mheaisín cruachta](https://wikipedia.org/wiki/Stack_machine) le doimhneacht de 1024 mír. Is focal 256-giotán gach mír, a roghnaíodh ar mhaithe le héascaíocht úsáide le cripteagrafaíocht 256-giotán (cosúil le haiseanna eccak-256 nó sínithe secp256k1). + +Le linn an reatha, coinníonn an EVM _cuimhne neamhbhuan_ (mar eagar beart focal-seolta), nach seasann idir idirbhearta. + +I gconarthaí, áfach, tá _stóráil_ trie Merkle Patricia (mar eagar focal inseolta), a bhaineann leis an gcuntas atá i gceist agus cuid den staid dhomhanda. + +Ritear beartchód conartha cliste tiomsaithe mar líon [opcodes](/developers/docs/evm/opcodes) EVM, a dhéanann gnáthoibríochtaí cruachta amhail `XOR`, `AND `, `ADD`, `SUB`, etc. Cuireann an EVM roinnt oibríochtaí cruachta a bhaineann go sonrach le blocshlabhra i bhfeidhm freisin, mar `ADDRESS`, `BALANCE`, `BLOCKHASH`, etc. + +![Léaráid a thaispeánann cá bhfuil gás ag teastáil le haghaidh oibríochtaí EVM](../gas/gas.png) _Léaráidí oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Feidhmithe EVM {#evm-implementations} + +Ní mór do gach feidhmiú den EVM cloí leis an tsonraíocht a thuairiscítear sa Ethereum Yellowpaper. + +Thar stair naoi mbliana Ethereum, rinneadh roinnt leasuithe ar an EVM, agus tá roinnt feidhmiúcháin den EVM i dteangacha ríomhchlárúcháin éagsúla. + +Áirítear le [cliaint reatha Ethereum](/developers/docs/nodes-and-clients/#execution-clients) feidhmiú EVM. Ina theannta sin, tá iliomad feidhmiúcháin neamhspleácha ann, lena n-áirítear: + +- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_ +- [evmone](https://github.com/ethereum/evmone) - _C++_ +- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ +- [revm](https://github.com/bluealloy/revm) - _Rust_ + +## Further Reading {#further-reading} + +- [Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf) +- [Jellopaper aka KEVM: Séimeantaic EVM i K](https://jellopaper.org/) +- [Beigepaper](https://github.com/chronaeon/beigepaper) +- [Cóid oibríochta Meaisín Fíorúil Ethereum](https://www.ethervm.io/) +- [Tagairt Idirghníomhach Cóid Oibríochta Meaisín Fíorúil Ethereum](https://www.evm.codes/) +- [Réamhrá gearr i ndoiciméadú Solidity](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#index-6) +- [Máistreacht Ethereum - An Meaisín Fíorúil Ethereum](https://github.com/ethereumbook/ethereumbook/blob/develop/13evm.asciidoc) + +## Ábhair Ghaolmhara {#related-topics} + +- [Gás](/developers/docs/gas/) diff --git a/public/content/translations/ga/developers/docs/evm/opcodes/index.md b/public/content/translations/ga/developers/docs/evm/opcodes/index.md new file mode 100644 index 00000000000..16395df9450 --- /dev/null +++ b/public/content/translations/ga/developers/docs/evm/opcodes/index.md @@ -0,0 +1,174 @@ +--- +title: Treoirchóid le haghaidh an EVM +description: Liosta de na treoirchóid atá ar fáil le haghaidh an meaisín fíorúil Ethereum. +lang: ga +--- + +## Forbhreathnú {#overview} + +Seo leagan nuashonraithe den leathanach tagartha EVM ag [wolflo/evm-opcodes](https://github.com/wolflo/evm-opcodes). Tarraingthe freisin ón [Páipéar Buí](https://ethereum.github.io/yellowpaper/paper.pdf), an [Jello Paper](https://jellopaper.org/evm/), agus an [geth](https://github.com/ethereum/go-ethereum). Tá sé seo beartaithe le bheith ina thagairt inrochtana, ach níl sé thar a bheith dian. Más mian leat a bheith cinnte de chruinneas agus ar an eolas faoi gach cás imill, moltar an Páipéar Jello nó feidhmiú cliaint a úsáid. + +An bhfuil tagairt idirghníomhach uait? Seiceáil [evm.codes](https://www.evm.codes/). + +Le haghaidh oibríochtaí le costais dhinimiciúla gáis, féach [gas.md](https://github.com/wolflo/evm-opcodes/blob/main/gas.md). + +💡 Leid thapa: Chun línte iomlána a fheiceáil, úsáid `[shift] + scrollaigh` chun scrollú go cothrománach ar an deasc. + +| Cruach | Ainm | Gás | Cruach Tosaigh | Cruach mar thoradh air | Mem / Stóráil | Nótaí | +|:------:|:-------------- |:-----------------------------------------------------------------------------------------------:|:------------------------------------------------ |:-------------------------------------------- |:----------------------------------------------------------------------------- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 00 | STOP | 0 | | | | halt execution | +| 01 | ADD | 3 | `a, b` | `a + b` | | (u)int256 addition modulo 2\*\*256 | +| 02 | MUL | 5 | `a, b` | `a * b` | | (u)int256 multiplication modulo 2\*\*256 | +| 03 | SUB | 3 | `a, b` | `a - b` | | (u)int256 addition modulo 2\*\*256 | +| 04 | DIV | 5 | `a, b` | `a // b` | | uint256 division | +| 05 | SDIV | 5 | `a, b` | `a // b` | | int256 division | +| 06 | MOD | 5 | `a, b` | `a % b` | | uint256 modulus | +| 07 | SMOD | 5 | `a, b` | `a % b` | | int256 modulus | +| 08 | ADDMOD | 8 | `a, b, N` | `(a + b) % N` | | (u)int256 addition modulo N | +| 09 | MULMOD | 8 | `a, b, N` | `(a * b) % N` | | (u)int256 multiplication modulo N | +| 0A | EXP | [A1](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a1-exp) | `a, b` | `a ** b` | | uint256 exponentiation modulo 2\*\*256 | +| 0B | SIGNEXTEND | 5 | `b, x` | `SIGNEXTEND(x, b)` | | [sign extend](https://wikipedia.org/wiki/Sign_extension) `x` from `(b+1)` bytes to 32 bytes | +| 0C-0F | _invalid_ | | | | | | +| 10 | LT | 3 | `a, b` | `a < b` | | uint256 less-than | +| 11 | GT | 3 | `a, b` | `a > b` | | uint256 greater-than | +| 12 | SLT | 3 | `a, b` | `a < b` | | int256 less-than | +| 13 | SGT | 3 | `a, b` | `a > b` | | int256 greater-than | +| 14 | EQ | 3 | `a, b` | `a == b` | | (u)int256 equality | +| 15 | ISZERO | 3 | `a` | `a == 0` | | (u)int256 iszero | +| 16 | AND | 3 | `a, b` | `a && b` | | bitwise AND | +| 17 | OR | 3 | `a, b` | `a \|\| b` | | bitwise OR | +| 18 | XOR | 3 | `a, b` | `a ^ b` | | bitwise XOR | +| 19 | NOT | 3 | `a` | `~a` | | bitwise NOT | +| 1A | BYTE | 3 | `i, x` | `(x >> (248 - i * 8)) && 0xFF` | | `i`th byte of (u)int256 `x`, from the left | +| 1B | SHL | 3 | `shift, val` | `val << shift` | | shift left | +| 1C | SHR | 3 | `shift, val` | `val >> shift` | | logical shift right | +| 1D | SAR | 3 | `shift, val` | `val >> shift` | | arithmetic shift right | +| 1E-1F | _invalid_ | | | | | | +| 20 | KECCAK256 | [A2](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a2-sha3) | `ost, len` | `keccak256(mem[ost:ost+len-1])` | | keccak256 | +| 21-2F | _invalid_ | | | | | | +| 30 | ADDRESS | 2 | `.` | `address(this)` | | address of executing contract | +| 31 | BALANCE | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `addr.balance` | | balance, in wei | +| 32 | ORIGIN | 2 | `.` | `tx.origin` | | address that originated the tx | +| 33 | CALLER | 2 | `.` | `msg.sender` | | address of msg sender | +| 34 | CALLVALUE | 2 | `.` | `msg.value` | | msg value, in wei | +| 35 | CALLDATALOAD | 3 | `idx` | `msg.data[idx:idx+32]` | | read word from msg data at index `idx` | +| 36 | CALLDATASIZE | 2 | `.` | `len(msg.data)` | | length of msg data, in bytes | +| 37 | CALLDATACOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1] | copy msg data | +| 38 | CODESIZE | 2 | `.` | `len(this.code)` | | length of executing contract's code, in bytes | +| 39 | CODECOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | | mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1] | copy executing contract's bytecode | +| 3A | GASPRICE | 2 | `.` | `tx.gasprice` | | gas price of tx, in wei per unit gas [\*\*](https://eips.ethereum.org/EIPS/eip-1559#gasprice) | +| 3B | EXTCODESIZE | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `len(addr.code)` | | size of code at addr, in bytes | +| 3C | EXTCODECOPY | [A4](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a4-extcodecopy) | `addr, dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1] | copy code from `addr` | +| 3D | RETURNDATASIZE | 2 | `.` | `size` | | size of returned data from last external call, in bytes | +| 3E | RETURNDATACOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1] | copy returned data from last external call | +| 3F | EXTCODEHASH | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `hash` | | hash = addr.exists ? keccak256(addr.code) : 0 | +| 40 | BLOCKHASH | 20 | `blockNum` | `blockHash(blockNum)` | | | +| 41 | COINBASE | 2 | `.` | `block.coinbase` | | seoladh mholtóir an bhloc reatha | +| 42 | TIMESTAMP | 2 | `.` | `block.timestamp` | | timestamp of current block | +| 43 | NUMBER | 2 | `.` | `block.number` | | number of current block | +| 44 | PREVRANDAO | 2 | `.` | `randomness beacon` | | randomness beacon | +| 45 | GASLIMIT | 2 | `.` | `block.gaslimit` | | gas limit of current block | +| 46 | CHAINID | 2 | `.` | `chain_id` | | push current [chain id](https://eips.ethereum.org/EIPS/eip-155) onto stack | +| 47 | SELFBALANCE | 5 | `.` | `address(this).balance` | | balance of executing contract, in wei | +| 48 | BASEFEE | 2 | `.` | `block.basefee` | | base fee of current block | +| 49 | BLOBHASH | 3 | `idx` | `tx.blob_versioned_hashes[idx]` | | [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) | +| 4A | BLOBBASEFEE | 2 | `.` | `block.blobbasefee` | | blob base fee of current block ([EIP-7516](https://eips.ethereum.org/EIPS/eip-7516)) | +| 4B-4F | _invalid_ | | | | | | +| 50 | POP | 2 | `_anon` | `.` | | remove item from top of stack and discard it | +| 51 | MLOAD | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost` | `mem[ost:ost+32]` | | read word from memory at offset `ost` | +| 52 | MSTORE | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, val` | `.` | mem[ost:ost+32] := val | write a word to memory | +| 53 | MSTORE8 | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, val` | `.` | mem[ost] := val && 0xFF | write a single byte to memory | +| 54 | SLOAD | [A6](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a6-sload) | `key` | `storage[key]` | | read word from storage | +| 55 | SSTORE | [A7](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a7-sstore) | `key, val` | `.` | storage[key] := val | write word to storage | +| 56 | JUMP | 8 | `dst` | `.` | | `$pc := dst` mark that `pc` is only assigned if `dst` is a valid jumpdest | +| 57 | JUMPI | 10 | `dst, condition` | `.` | | `$pc := condition ? dst : $pc + 1` | +| 58 | PC | 2 | `.` | `$pc` | | program counter | +| 59 | MSIZE | 2 | `.` | `len(mem)` | | size of memory in current execution context, in bytes | +| 5A | GAS | 2 | `.` | `gasRemaining` | | | +| 5B | JUMPDEST | 1 | | | mark valid jump destination | a valid jump destination for example a jump destination not inside the push data | +| 5C | TLOAD | 100 | `key` | `tstorage[key]` | | read word from transient storage ([EIP-1153](https://eips.ethereum.org/EIPS/eip-1153)) | +| 5D | TSTORE | 100 | `key, val` | `.` | tstorage[key] := val | write word to transient storage ([EIP-1153](https://eips.ethereum.org/EIPS/eip-1153)) | +| 5E | MCOPY | 3+3\*words+[A0](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `dstOst, ost, len` | `.` | mem[dstOst] := mem[ost:ost+len] | copy memory from one area to another ([EIP-5656](https://eips.ethereum.org/EIPS/eip-5656)) | +| 5F | PUSH0 | 2 | `.` | `uint8` | | push the constant value 0 onto stack | +| 60 | PUSH1 | 3 | `.` | `uint8` | | push 1-byte value onto stack | +| 61 | PUSH2 | 3 | `.` | `uint16` | | push 2-byte value onto stack | +| 62 | PUSH3 | 3 | `.` | `uint24` | | push 3-byte value onto stack | +| 63 | PUSH4 | 3 | `.` | `uint32` | | push 4-byte value onto stack | +| 64 | PUSH5 | 3 | `.` | `uint40` | | push 5-byte value onto stack | +| 65 | PUSH6 | 3 | `.` | `uint48` | | push 6-byte value onto stack | +| 66 | PUSH7 | 3 | `.` | `uint56` | | push 7-byte value onto stack | +| 67 | PUSH8 | 3 | `.` | `uint64` | | push 8-byte value onto stack | +| 68 | PUSH9 | 3 | `.` | `uint72` | | push 9-byte value onto stack | +| 69 | PUSH10 | 3 | `.` | `uint80` | | push 10-byte value onto stack | +| 6A | PUSH11 | 3 | `.` | `uint88` | | push 11-byte value onto stack | +| 6B | PUSH12 | 3 | `.` | `uint96` | | push 12-byte value onto stack | +| 6C | PUSH13 | 3 | `.` | `uint104` | | push 13-byte value onto stack | +| 6D | PUSH14 | 3 | `.` | `uint112` | | push 14-byte value onto stack | +| 6E | PUSH15 | 3 | `.` | `uint120` | | push 15-byte value onto stack | +| 6F | PUSH16 | 3 | `.` | `uint128` | | push 16-byte value onto stack | +| 70 | PUSH17 | 3 | `.` | `uint136` | | push 17-byte value onto stack | +| 71 | PUSH18 | 3 | `.` | `uint144` | | push 18-byte value onto stack | +| 72 | PUSH19 | 3 | `.` | `uint152` | | push 19-byte value onto stack | +| 73 | PUSH20 | 3 | `.` | `uint160` | | push 20-byte value onto stack | +| 74 | PUSH21 | 3 | `.` | `uint168` | | push 21-byte value onto stack | +| 75 | PUSH22 | 3 | `.` | `uint176` | | push 22-byte value onto stack | +| 76 | PUSH23 | 3 | `.` | `uint184` | | push 23-byte value onto stack | +| 77 | PUSH24 | 3 | `.` | `uint192` | | push 24-byte value onto stack | +| 78 | PUSH25 | 3 | `.` | `uint200` | | push 25-byte value onto stack | +| 79 | PUSH26 | 3 | `.` | `uint208` | | push 26-byte value onto stack | +| 7A | PUSH27 | 3 | `.` | `uint216` | | push 27-byte value onto stack | +| 7B | PUSH28 | 3 | `.` | `uint224` | | push 28-byte value onto stack | +| 7C | PUSH29 | 3 | `.` | `uint232` | | push 29-byte value onto stack | +| 7D | PUSH30 | 3 | `.` | `uint240` | | push 30-byte value onto stack | +| 7E | PUSH31 | 3 | `.` | `uint248` | | push 31-byte value onto stack | +| 7F | PUSH32 | 3 | `.` | `uint256` | | push 32-byte value onto stack | +| 80 | DUP1 | 3 | `a` | `a, a` | | clone 1st value on stack | +| 81 | DUP2 | 3 | `_, a` | `a, _, a` | | clone 2nd value on stack | +| 82 | DUP3 | 3 | `_, _, a` | `a, _, _, a` | | clone 3rd value on stack | +| 83 | DUP4 | 3 | `_, _, _, a` | `a, _, _, _, a` | | clone 4th value on stack | +| 84 | DUP5 | 3 | `..., a` | `a, ..., a` | | clone 5th value on stack | +| 85 | DUP6 | 3 | `..., a` | `a, ..., a` | | clone 6th value on stack | +| 86 | DUP7 | 3 | `..., a` | `a, ..., a` | | clone 7th value on stack | +| 87 | DUP8 | 3 | `..., a` | `a, ..., a` | | clone 8th value on stack | +| 88 | DUP9 | 3 | `..., a` | `a, ..., a` | | clone 9th value on stack | +| 89 | DUP10 | 3 | `..., a` | `a, ..., a` | | clone 10th value on stack | +| 8A | DUP11 | 3 | `..., a` | `a, ..., a` | | clone 11th value on stack | +| 8B | DUP12 | 3 | `..., a` | `a, ..., a` | | clone 12th value on stack | +| 8C | DUP13 | 3 | `..., a` | `a, ..., a` | | clone 13th value on stack | +| 8D | DUP14 | 3 | `..., a` | `a, ..., a` | | clone 14th value on stack | +| 8E | DUP15 | 3 | `..., a` | `a, ..., a` | | clone 15th value on stack | +| 8F | DUP16 | 3 | `..., a` | `a, ..., a` | | clone 16th value on stack | +| 90 | SWAP1 | 3 | `a, b` | `b, a` | | | +| 91 | SWAP2 | 3 | `a, _, b` | `b, _, a` | | | +| 92 | SWAP3 | 3 | `a, _, _, b` | `b, _, _, a` | | | +| 93 | SWAP4 | 3 | `a, _, _, _, b` | `b, _, _, _, a` | | | +| 94 | SWAP5 | 3 | `a, ..., b` | `b, ..., a` | | | +| 95 | SWAP6 | 3 | `a, ..., b` | `b, ..., a` | | | +| 96 | SWAP7 | 3 | `a, ..., b` | `b, ..., a` | | | +| 97 | SWAP8 | 3 | `a, ..., b` | `b, ..., a` | | | +| 98 | SWAP9 | 3 | `a, ..., b` | `b, ..., a` | | | +| 99 | SWAP10 | 3 | `a, ..., b` | `b, ..., a` | | | +| 9A | SWAP11 | 3 | `a, ..., b` | `b, ..., a` | | | +| 9B | SWAP12 | 3 | `a, ..., b` | `b, ..., a` | | | +| 9C | SWAP13 | 3 | `a, ..., b` | `b, ..., a` | | | +| 9D | SWAP14 | 3 | `a, ..., b` | `b, ..., a` | | | +| 9E | SWAP15 | 3 | `a, ..., b` | `b, ..., a` | | | +| 9F | SWAP16 | 3 | `a, ..., b` | `b, ..., a` | | | +| A0 | LOG0 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len` | `.` | | LOG0(memory[ost:ost+len-1]) | +| A1 | LOG1 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0` | `.` | | LOG1(memory[ost:ost+len-1], topic0) | +| A2 | LOG2 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1` | `.` | | LOG2(memory[ost:ost+len-1], topic0, topic1) | +| A3 | LOG3 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1, topic2` | `.` | | LOG3(memory[ost:ost+len-1], topic0, topic1, topic2) | +| A4 | LOG4 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1, topic2, topic3` | `.` | | LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3) | +| A5-EF | _invalid_ | | | | | | +| F0 | CREATE | [A9](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a9-create-operations) | `val, ost, len` | `addr` | | addr = keccak256(rlp([address(this), this.nonce])) | +| F1 | CALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | gas, addr, val, argOst, argLen, retOst, retLen | `success` | mem[retOst:retOst+retLen-1] := returndata | | +| F2 | CALLCODE | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `gas, addr, val, argOst, argLen, retOst, retLen` | `success` | mem[retOst:retOst+retLen-1] = returndata | same as DELEGATECALL, but does not propagate original msg.sender and msg.value | +| F3 | RETURN | 0[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, len` | `.` | | return mem[ost:ost+len-1] | +| F4 | DELEGATECALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `gas, addr, argOst, argLen, retOst, retLen` | `success` | mem[retOst:retOst+retLen-1] := returndata | | +| F5 | CREATE2 | [A9](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a9-create-operations) | `val, ost, len, salt` | `addr` | | addr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:] | +| F6-F9 | _invalid_ | | | | | | +| FA | STATICCALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `gas, addr, argOst, argLen, retOst, retLen` | `success` | mem[retOst:retOst+retLen-1] := returndata | | +| FB-FC | _invalid_ | | | | | | +| FD | REVERT | 0[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, len` | `.` | | revert(mem[ost:ost+len-1]) | +| FE | INVALID | [AF](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#af-invalid) | | | designated invalid opcode - [EIP-141](https://eips.ethereum.org/EIPS/eip-141) | | +| FF | SELFDESTRUCT | [AB](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#ab-selfdestruct) | `addr` | `.` | | sends all ETH to `addr`; if executed in the same transaction as a contract was created it destroys the contract | diff --git a/public/content/translations/ga/developers/docs/gas/index.md b/public/content/translations/ga/developers/docs/gas/index.md new file mode 100644 index 00000000000..e5c8ba34435 --- /dev/null +++ b/public/content/translations/ga/developers/docs/gas/index.md @@ -0,0 +1,142 @@ +--- +title: Gás agus táillí +metaTitle: "Gás Ethereum agus táillí: forbhreathnú teicniúil" +description: +lang: ga +--- + +Tá gás riachtanach don líonra Ethereum. Is é an breosla a ligeann dó oibriú, ar an mbealach céanna a theastaíonn gásailín le carr a rith. + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh faoi [idirbhearta](/developers/docs/transactions/) agus an [EVM](/developers/docs/evm/). + +## Cad is gás ann? {#what-is-gas} + +Tagraíonn gás don aonad a thomhaiseann an méid iarracht ríomhaireachtúil a theastaíonn chun oibríochtaí sonracha a fhorghníomhú ar líonra Ethereum. + +Ós rud é go n-éilíonn gach idirbheart Ethereum acmhainní ríomhaireachtúla le feidhmiú, ní mór íoc as na hacmhainní sin le cinntiú nach bhfuil Ethereum i mbaol turscair agus nach féidir é a bheith greamaithe i lúba ríomhaireachtúla éigríochta. Déantar íocaíocht ar ríomh i bhfoirm táille gáis. + +Is é an táille gáis ná **an méid gáis a úsáidtear chun oibríocht éigin a dhéanamh, arna iolrú faoin gcostas in aghaidh an aonaid gháis**. Íoctar an táille is cuma má éiríonn le hidirbheart nó má theipeann air. + +![Léaráid a thaispeánann cá bhfuil gás de dhíth in oibríochtaí EVM](./gas.png) _Léaráid oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Ní mór táillí gáis a íoc in airgeadra dúchais Ethereum, éitear (ETH). De ghnáth luaitear praghsanna gáis i gwei, ar ainmníocht ETH é. Tá gach gwei cothrom le billiúnú ETH (0.000000001 ETH nó 10-9 ETH). + +Mar shampla, in ionad a rá go gcosnaíonn do ghás 0.000000001 éitear, is féidir leat a rá go gcosnaíonn do ghás 1 gwei. + +Is crapadh é an focal 'gwei' ar 'giga-wei', rud a chiallaíonn 'billiún wei'. Tá gwei amháin cothrom le billiún wei. Is é an Wei féin (ainmnithe i ndiaidh [Wei Dai](https://wikipedia.org/wiki/Wei_Dai), cruthaitheoir [b-money](https://www.investopedia.com/terms/b/bmoney.asp)) an t-aonad is lú de ETH. + +## Conas a ríomhtar táillí gáis? {#how-are-gas-fees-calculated} + +Féadfaidh tú an méid gáis atá tú sásta a íoc a shocrú nuair a chuireann tú idirbheart faoi bhráid. Trí mhéid áirithe gáis a thairiscint, tá tú ag tairiscint go gcuirfear d’idirbheart san áireamh sa chéad bhloc eile. Má dtairgeann tú ró-bheagán, is lú an seans go roghnóidh bailíochtóirí d’idirbheart lena chur san áireamh, rud a chiallaíonn go bhféadfaí d’idirbheart a rith go déanach nó nach rithfear ar chor ar bith é. Má thairgeann tú an iomarca, d'fhéadfá roinnt ETH a chur amú. Mar sin, conas is féidir leat a rá cé mhéad atá le híoc? + +Tá an gás iomlán a íocann tú roinnte ina dhá chomhpháirt: an `buntáille` agus an `táille tosaíochta` (leid). + +Socraíonn an prótacal an `buntáille` - caithfidh tú an méid seo ar a laghad a íoc le go measfar go bhfuil d’idirbheart bailí. Is éard atá sa `táille tosaíochta` ná leid a chuireann tú leis an mbuntáille chun d’idirbheart a dhéanamh tarraingteach do bhailíochtóirí ionas go roghnaíonn siad é le cur san áireamh sa chéad bhloc eile. + +Tá idirbheart nach n-íocann ach an `buntáille` bailí go teicniúil ach ní dócha go n-áireofar é toisc nach dtugann sé aon dreasacht do bhailíochtóirí é a roghnú thar aon idirbheart eile. Cinneann an úsáid líonra ag an am a sheolann tú d'idirbheart an táille 'ceart' `tosaíochta` - b'fhéidir go mbeidh ort do tháille `tosaíochta` a shocrú níos airde má tá a lán éilimh ann, ach nuair a bhíonn níos lú éilimh ann is féidir leat níos lú a íoc. + +Mar shampla, abair go gcaithfidh Jordan 1 ETH a íoc le Taylor. Le haghaidh aistriú ETH 21,000 éilítear aonad gáis, agus is é 10 gwei an bonntáille. Áiríonn Jordan barr de 2 gwei. + +Bheadh ​​an táille iomlán cothrom anois le: + +`aonaid gháis a úsáideadh * (buntáille + táille tosaíochta)` + +nuair is luach é an `buntáille` atá socraithe ag an bprótacal agus gur luach é an `táille tosaíochta` a shocraíonn an t-úsáideoir mar leid don bhailíochtóir. + +i.e. `21,000* (10+2) = 252,000 gwei` (0.000252 ETH). + +Nuair a sheolann Jordáin an t-airgead, asbhainfear 1.000252 ETH ó chuntas Jordan. Cuirfear 1.0000 ETH chun sochair Taylor. Faigheann an bailíochtóir an barr 0.000042 ETH. Dóitear an `buntáille` de 0.00021 ETH. + +### Buntáille {#base-fee} + +Tá buntáille ag gach bloc a fheidhmíonn mar phraghas cúltaca. Le bheith incháilithe lena áireamh i mbloc caithfidh an praghas tairgthe in aghaidh an gháis a bheith comhionann ar a laghad leis an mbuntáille. Ríomhtar an buntáille go neamhspleách ar an mbloc reatha agus ina ionad sin déantar é a chinneadh ag na bloic os a chomhair - rud a fhágann go bhfuil táillí idirbhirt níos intuartha d'úsáideoirí. Nuair a chruthaítear an bloc déantar an **buntáille seo a "dhó"**, rud a bhaineann den gcúrsaíocht é. + +Ríomhtar an buntáille trí fhoirmle a dhéanann comparáid idir méid an bhloic roimhe seo (méid an gháis a úsáidtear le haghaidh na n-idirbheart go léir) agus an spriocmhéid. Méadóidh an buntáille d'uasmhéid 12.5% ​​in aghaidh an bhloc má sháraítear an spriocmhéid bloc. Mar gheall ar an bhfás easpónantúil seo níl sé inmharthana ó thaobh an gheilleagair de go bhfanfaidh méid na mbloc ard go deo. + +| Bloc-uimhir | Gás san áireamh | Méadú Táille | Buntáille Reatha | +| ----------- | ---------------:| ------------:| ----------------:| +| 1 | 15M | 0% | 100 gwei | +| 2 | 30M | 0% | 100 gwei | +| 3 | 30M | 12.5% | 112.5 gwei | +| 4 | 30M | 12.5% | 126.6 gwei | +| 5 | 30M | 12.5% | 142.4 gwei | +| 6 | 30M | 12.5% | 160.2 gwei | +| 7 | 30M | 12.5% | 180.2 gwei | +| 8 | 30M | 12.5% | 202.7 gwei | + +De réir an tábla thuas - chun idirbheart a chruthú ar bhloc uimhir 9, cuirfidh sparán in iúl don úsáideoir go cinnte gurb é an **buntáille uasta** atá le cur leis an gcéad bhloc eile `buntáille reatha * 112.5%` nó `202.7 gwei * 112.5% ​​= 228.1 gwei`. + +Tá sé tábhachtach freisin a thabhairt faoi deara nach bhfuil sé dóchúil go bhfeicfimid borrtha fada de bhloic iomlána mar gheall ar an luas a mhéadaíonn an buntáille roimh bhloc iomlán. + +| Bloc-uimhir | Gás san áireamh | Méadú Táille | Buntáille Reatha | +| ----------- | ---------------:| ------------:| ----------------:| +| 30 | 30M | 12.5% | 2705.6 gwei | +| ... | ... | 12.5% | ... | +| 50 | 30M | 12.5% | 28531.3 gwei | +| ... | ... | 12.5% | ... | +| 100 | 30M | 12.5% | 10302608.6 gwei | + +### Táille tosaíochta (bairr) {#priority-fee} + +Tugann an táille tosaíochta (barr) dreasacht do bhailíochtóirí idirbheart a áireamh sa bhloc. Gan bairr, bheadh ​​sé inmharthana go heacnamaíoch do bhailitheoirí bloic fholmha a mhianadóireacht, mar go bhfaighidís an luach saothair bloic céanna. Tugann séisíní beaga dreasacht íosta do bhailiíochtóirí idirbheart a áireamh. Chun go ndéanfaí idirbhearta a fheidhmiú mar thosaíocht ar idirbheart eile sa bhloc céanna, is féidir séisín níos airde a chur leis mar iarracht le tairiscint níos airde a dhéanamh ná na hidirbhearta iomaíocha. + +### Táille uasta {#maxfee} + +Chun idirbheart a fhorghníomhú ar an líonra, is féidir le húsáideoirí uasteorainn a shonrú a bhfuil siad sásta íoc as a n-idirbheart a fhorghníomhú. `maxFeePerGas` a thugtar ar an bparaiméadar roghnach seo. Chun idirbheart a chur i gcrích, ní mór an táille uasta a bheith níos airde ná suim na buntáille agus an barr. Aisíoctar leis an seoltóir idirbhirt an difríocht idir an táille uasta agus suim na buntáille agus an bhairr. + +### Méid bloic {#block-size} + +Tá spriocmhéid de 15 milliún gáis ag gach bloc, ach méadóidh nó laghdóidh méid na mbloc de réir éileamh an ghréasáin, suas go dtí an teorainn bloc de 30 milliún gáis (2x an spriocmhéid bloc). Baineann an prótacal méid cothromaíochta de 15 milliún ar an meán amach tríd an bpróiseas _tâtonnement_. Ciallaíonn sé seo má tá an méid bloic níos mó ná an méid bloc sprice, méadóidh an prótacal an buntáille don bhloc seo a leanann é. Ar an gcaoi chéanna, laghdóidh an prótacal an buntáille má tá an méid bloc níos lú ná an spriocmhéid bloic. Tá an méid a choigeartaítear an buntáille comhréireach le cé chomh fada agus atá an méid bloic reatha ón sprioc. [Tuilleadh maidir le bloic](/developers/docs/blocks/). + +### Táillí gáis á ríomh go praiticiúil {#calculating-fees-in-practice} + +Is féidir leat a rá go follasach cé mhéad atá tú sásta a íoc chun d’idirbheart a chur i gcrích. Mar sin féin, socróidh an chuid is mó de na soláthraithe sparán táille idirbhirt mholta go huathoibríoch (buntáille + táille tosaíochta molta) chun méid na castachta a chuirtear ar a n-úsáideoirí a laghdú. + +## Cén fáth a bhfuil táillí gáis ann? {#why-do-gas-fees-exist} + +I mbeagán focal, cabhraíonn táillí gáis le líonra Ethereum a choinneáil slán. Trí tháille a éileamh ar gach ríomh a dhéantar ar an líonra, cuirimid cosc ​​ar dhroch-aisteoirí an líonra a thurscar. D'fhonn lúba gan teorainn trí thaisme nó naimhdeach nó cur amú ríomhaireachtúil eile sa chód a sheachaint, ní mór do gach idirbheart teorainn a shocrú maidir le cé mhéad céimeanna ríomhaireachtúla um rith an chóid is féidir leis a úsáid. Is é "gás" an bunaonad ríomhaireachtúil. + +Cé go bhfuil teorainn san áireamh in idirbheart, cuirtear aon ghás nach n-úsáidtear in idirbheart ar ais chuig an úsáideoir (i.e. aischuirtear `uas-táille - (buntáille + leid)`). + +![Léaráid a thaispeánann conas a dhéantar gás neamhúsáidte a aisíoc](../transactions/gas-tx.png) _Léaráid oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Cad é an teorainn gháis? {#what-is-gas-limit} + +Tagraíonn an teorainn gháis don mhéid uasta gáis atá tú sásta a thomhailt ar idirbheart. Tá níos mó oibre ríomhaireachta ag teastáil le haghaidh idirbhearta níos casta a bhaineann le [conarthaí cliste](/developers/docs/smart-contracts/), mar sin teastaíonn teorainn gháis níos airde uathu ná íocaíocht shimplí. Éilíonn aistriú caighdeánach ETH teorainn gháis de 21,000 aonad gáis. + +Mar shampla, má chuireann tú teorainn gháis de 50,000 ar aistriú ETH simplí, ídíonn an EVM 21,000, agus gheobhaidh tú an 29,000 eile ar ais. However, if you specify too little gas, for example, a gas limit of 20,000 for a simple ETH transfer, the transaction will fail during the validation phase. It will be rejected before being included in a block, and no gas will be consumed. On the other hand, if a transaction runs out of gas during execution (e.g., a smart contract uses up all the gas halfway), the EVM will revert any changes, but all the gas provided will still be consumed for the work performed. + +## Cén fáth gur féidir le táillí gáis a bheith chomh hard sin? {#why-can-gas-fees-get-so-high} + +Tá táillí gáis arda ann mar gheall ar an tóir atá ar Ethereum. Má tá an iomarca éilimh ann, ní mór d'úsáideoirí méideanna séisín níos airde a thairiscint chun iarracht a dhéanamh cosc ​​a chur ar idirbhearta úsáideoirí eile. Is féidir le séisín níos airde é a dhéanamh níos dóchúla go dtiocfaidh d'idirbheart isteach sa chéad bhloc eile. Chomh maith leis sin, d'fhéadfadh go mbeadh go leor oibríochtaí á ndéanamh ag aipeanna conartha cliste níos casta chun tacú lena bhfeidhmeanna, rud a fhágann go n-ídíonn siad go leor gáis. + +## Tionscnaimh chun costais gháis a laghdú {#initiatives-to-reduce-gas-costs} + +Ba cheart go dtabharfadh [uasghráduithe inscálaitheachta Ethereum](/roadmap/) aghaidh ar chuid de na saincheisteanna táillí gáis, rud a chuirfidh ar chumas an ardáin na mílte idirbheart in aghaidh an tsoicind a phróiseáil agus scála domhanda a dhéanamh. + +Is tionscnamh príomhúil é scálú Sraith 2 chun costais gháis, taithí úsáideora agus inscálaitheacht a fheabhsú go mór. [Tuilleadh maidir le scálú ciseal 2](/developers/docs/scaling/#layer-2-scaling). + +## Monatóireacht a dhéanamh ar tháillí gáis {#monitoring-gas-fees} + +Más mian leat monatóireacht a dhéanamh ar phraghsanna gáis, ionas gur féidir leat do ETH a sheoladh níos saoire, is féidir leat go leor uirlisí éagsúla a úsáid mar: + +- [Etherscan](https://etherscan.io/gastracker) _Meastachán ar phraghas an gháis idirbhirt_ +- [Rianóir Gáis ETH](https://www.ethgastracker.com/) _Déan monatóireacht agus rianú ar phraghsanna gáis Ethereum, agus L2 chun táillí idirbhirt a laghdú agus airgead a shábháil_ +- [ Meastóir Gáis Blocknative ETH](https://chrome.google.com/webstore/detail/blocknative-eth-gas-estim/ablbagjepecncofimgjmdpnhnfjiecfm) _ Meastachán gáis Iarmhír Chrome a thacaíonn le hidirbhearta oidhreachta de Chineál 0 agus le hidirbhearta Cineál 2 EIP-1559._ +- [Áireamh Táillí Gáis Cryptoneur](https://www.cryptoneur.xyz/gas-fees-calculator) _Ríomh táillí gáis i d'airgeadra áitiúil le haghaidh cineálacha difriúla idirbhirt ar Mainnet, Arbitrum, agus Polygon._ + +## Uirlisí gaolmhara {#related-tools} + +- [Ardán Gáis Blocknative](https://www.blocknative.com/gas) _ API Meastacháin Gáis arna chumhachtú ag ardán sonraí mempool domhanda Blocknative_ + +## Tuilleadh léitheoireachta {#further-reading} + +- [Gás Ethereum Mínithe](https://defiprime.com/gas) +- [Ídiú gáis do Chonarthaí Cliste a laghdú](https://medium.com/coinmonks/8-ways-of-reducing-the-gas-consumption-of-your-smart-contracts-9a506b339c0a) +- [Cruthúnas Geallta in aghaidh Cruthúnas Oibre](https://blockgeeks.com/guides/proof-of-work-vs-proof-of-stake/) +- [Straitéisí Optamaithe Gáis d'Fhorbróirí](https://www.alchemy.com/overviews/solidity-gas-optimization) +- [EIP-1559 doiciméad](https://eips.ethereum.org/EIPS/eip-1559). +- [Acmhainní EIP-1559 Tim Beiko](https://hackmd.io/@timbeiko/1559-resources) +- [EIP-1559: Separating Mechanisms From Memes](https://research.2077.xyz/eip-1559-separating-mechanisms-from-memes) diff --git a/public/content/translations/ga/developers/docs/index.md b/public/content/translations/ga/developers/docs/index.md new file mode 100644 index 00000000000..d5da6cd9e0f --- /dev/null +++ b/public/content/translations/ga/developers/docs/index.md @@ -0,0 +1,25 @@ +--- +title: Doiciméadú forbartha Ethereum +description: Doiciméadú an fhorbróra ethereum.org a thabhairt isteach. +lang: ga +--- + +Tá an doiciméadú seo deartha chun cabhrú leat tógáil le Ethereum. Clúdaíonn sé Ethereum mar choincheap, míníonn sé cruach teic Ethereum, agus doiciméadaíonn sé topaicí casta le haghaidh iarratais cásanna úsáide níos casta. + +Iarracht pobail foinse oscailte é seo, mar sin ná bíodh drogall ort topaicí nua a mholadh, ábhar nua a chur leis, agus samplaí a sholáthar cibé áit a cheapann tú go bhféadfadh sé a bheith cabhrach. Is féidir na doiciméid go léir a chur in eagar trí GitHub – mura bhfuil tú cinnte conas, [lean na treoracha seo](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/editing-markdown.md). + +## Modúil fhorbartha {#development-modules} + +Más é seo do chéad iarracht ar fhorbairt Ethereum, molaimid tosú ag an tús agus do bhealach a dhéanamh tríd mar leabhar. + +### Bunábhair {#foundational-topics} + + + +### Cruach Ethereum {#ethereum-stack} + + + +### Casta {#advanced} + + diff --git a/public/content/translations/ga/developers/docs/intro-to-ether/index.md b/public/content/translations/ga/developers/docs/intro-to-ether/index.md new file mode 100644 index 00000000000..34ebdcfb046 --- /dev/null +++ b/public/content/translations/ga/developers/docs/intro-to-ether/index.md @@ -0,0 +1,78 @@ +--- +title: Réamhrá don éitear +description: Réamhrá forbróir ar an gcriptea-airgeadra éitear. +lang: ga +--- + +## Réamhriachtanais {#prerequisites} + +Chun cabhrú leat an leathanach seo a thuiscint níos fearr, molaimid duit [Réamhrá ar Ethereum](/developers/docs/intro-to-ethereum/) a léamh ar dtús. + +## Cad é an criptea-airgeadra? {#what-is-a-cryptocurrency} + +Is meán malartaithe é criptea-airgeadra atá urraithe ag mórleabhar blocshlabhra-bhunaithe. + +Is ionann meán malartaithe agus rud ar bith a bhfuil glacadh forleathan leis mar íocaíocht ar earraí agus seirbhísí, agus is stór sonraí é an mórleabhar a choinníonn cuntas ar idirbhearta. Ligeann teicneolaíocht Blocshlabhra d’úsáideoirí idirbhearta a dhéanamh ar an mórleabhar gan a bheith ag brath ar thríú páirtí iontaofa chun an mórleabhar a chothabháil. + +Ba é Bitcoin, a chruthaigh Satoshi Nakamoto,. an chéad chriptea-airgeadra. Ó eisíodh Bitcoin in 2009, tá na mílte criptea-airgeadraí cumtha ag daoine thar go leor blocshlabhraí éagsúla. + +## Cad é éitear? {#what-is-ether} + +Is é **Éitear (ETH)** an criptea-airgeadra a úsáidtear le haghaidh go leor rudaí ar líonra Ethereum. Go bunúsach, is é an t-aon chineál íocaíochta atá inghlactha le haghaidh táillí idirbhirt, agus tar éis [The Merge](/roadmap/merge), tá gá le héitear chun bloic ar Mainnet a bhailíochtú agus a mholadh. Úsáidtear éitear freisin mar phríomhfhoirm chomhthaobhachta i margaí iasachtaithe [DeFi](/defi), mar aonad cuntais i margaí NFT, mar íocaíocht a thuilltear as seirbhísí a chomhlíonadh nó as earraí a dhíol sa saol fíor., agus níos mó. + +Ligeann Ethereum d’fhorbróirí [**feidhmchláir díláraithe (dapps)**](/developers/docs/dapps) a chruthú, a roinneann comhthiomsú cumhachta ríomhaireachta. Is linn críochta í an linn chomhroinnte seo, agus mar sin tá meicníocht ag teastáil ó Ethereum chun a chinneadh cé a fhéadfaidh é a úsáid. Seachas sin, d'fhéadfadh dapp na hacmhainní líonra go léir a ithe de thaisme nó go mailíseach, rud a chuirfeadh bac ar dhaoine eile rochtain a fháil air. + +Tacaíonn an éitear criptea-airgeadra le meicníocht praghsála do chumhacht ríomhaireachta Ethereum. Nuair is mian le húsáideoirí idirbheart a dhéanamh, ní mór dóibh éitear a íoc ionas go n-aithneofar a n-idirbheart ar an mblocshlabhra. Tugtar [táillí gáis](/developers/docs/gas/) ar na costais úsáide seo, agus braitheann an táille gháis ar an méid cumhachta ríomhaireachta a theastaíonn chun an t‑idirbheart a dhéanamh agus ar an éileamh ar fud an líonra ar chumhacht ríomhaireachta ag an am. + +Dá bhrí sin, fiú má chuir dapp mailíseach lúb gan teorainn faoi bhráid, rithfidh an t-idirbheart as éitear agus críochnófar é, rud a ligeann don líonra filleadh ar an ngnáthbhealach. + +Go minic déantar [comhcheangail](https://abcnews.go.com/Business/bitcoin-slumps-week-low-amid-renewed-worries-chinese/story?id=78399845) idir Ethereum agus éitear - nuair a dhéanann daoine tagairt do "phraghas Ethereum," tá siad ag cur síos ar phraghas an éitear. + +## Éitear a bhualadh {#minting-ether} + +Is é bualadh an próiseas ina gcruthaítear éitear nua ar mhórleabhar Ethereum. Cruthaíonn prótacal bunúsach Ethereum an t-éitear nua, agus níl sé indéanta d'úsáideoir éitear a chruthú. + +Buailtear éitear mar luach saothair do gach bloc atá molta agus ag gach seicphointe aga do ghníomhaíocht bhailíochtóra eile a bhaineann le teacht ar chomhdhearcadh. Braitheann an méid iomlán a eisítear ar líon na mbailíochtóirí agus cé mhéad éitear atá geallta acu. Tá an t-eisiúint iomlán seo roinnte go cothrom i measc na mbailíochtóirí sa chás idéalach go bhfuil gach bailíochtóir macánta agus ar líne, ach i ndáiríre, athraíonn sé ab brath ar fheidhmíocht an bhailitheoir. Téann thart ar 1/8 den eisiúint iomlán chuig an moltóir bloc; déantar an chuid eile a dháileadh ar na bailíochtaithe eile. Faigheann moltóirí bloc leideanna freisin ó tháillí idirbheart agus ioncam a bhaineann le MEV, ach tagann siad seo ó éitear athchúrsáilte, ní eisiúint nua. + +## Éitear a dhó {#burning-ether} + +Chomh maith le éitear a chruthú trí luach saothair bloc, is féidir éitear a scriosadh trí phróiseas ar a dtugtar 'dó'. Nuair a dhóitear éitear, baintear é as cúrsaíocht go buan. + +Tarlaíonn dó éitear i ngach idirbheart ar Ethereum. Nuair a íocann úsáideoirí as a n-idirbhearta, scriostar buntáille gháis, arna shocrú ag an líonra de réir éileamh idirbheartaíochta. Anuas air sin, agus in éineacht le méideanna athraitheacha bloc agus táille uasta gáis, déantar meastachán ar tháillí idirbheart ar Ethereum a shimpliú. Nuair a bhíonn an t-éileamh ar an líonra ard, is féidir le [bloic](https://etherscan.io/block/12965263) níos mó éitear a dhó ná mar a bhualann siad, rud a dhéanann fhritháireamh go héifeachtach ar eisiúint éitear. + +Cuireann dó an buntáille bac ar chumas táirgeora bloc idirbhearta a ionramháil. Mar shampla, má fuair táirgeoirí bloc an buntáille, d'fhéadfadh siad a n-idirbheart féin a áireamh saor in aisce agus an buntáille a ardú do gach duine eile. Alternatively, they could refund the base fee to some users offchain, leading to a more opaque and complex transaction fee market. + +## Ainmníochtaí éitir {#denominations} + +Ós rud é go bhfuil luach go leor idirbheart ar Ethereum beag, tá roinnt ainmníochtaí ag éitear ar féidir tagairt a dhéanamh dóibh mar aonaid chuntais níos lú. As na hainmníochtaí seo, tá Wei agus gwei thar a bheith tábhachtach. + +Is é Wei an méid éitear is lú is féidir, agus mar thoradh air sin, beidh ríomh a lán feidhmeanna teicniúla, ar nós [Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf), bunaithe i Wei. + +Is minic a úsáidtear Gwei, gearr ar giga-wei, chun cur síos a dhéanamh ar chostais gháis ar Ethereum. + +| Ainmníocht | Luach in éitear | Úsáid Choiteann | +| ---------- | ---------------- | ------------------------------- | +| Wei | 10-18 | Feidhmithe teicniúla | +| Gwei | 10-9 | Táillí gáis inléite ag an duine | + +## Aistriú éitir {#transferring-ether} + +Tá réimse `luacha` i ngach idirbheart ar Ethereum, a shonraíonn an méid éitir atá le haistriú, ainmnithe i wei, le seoladh ó sheoladh an tseoltóra chuig seoladh an fhaighteora. + +Nuair is [conradh cliste](/developers/docs/smart-contracts/) an seoladh faighteora, féadfar an t-éitear aistrithe seo a úsáid chun íoc as gás nuair a fheidhmíonn an conradh cliste a chód. + +[Tuilleadh faoi idirbhearta](/developers/docs/transactions/) + +## Iarratas ae éitear {#querying-ether} + +Is féidir le húsáideoirí iarmhéid éitir aon [chuntais](/developers/docs/accounts/) a fhiosrú trí réimse `iarmhéid` an chuntais a iniúchadh, a thaispeánann sealúchais éitear atá ainmnithe sa wei. + +Is uirlis choitianta é [Etherscan](https://etherscan.io) chun iarmhéideanna seoltaí a iniúchadh trí fheidhmchlár gréasán-bhunaithe. Mar shampla, léiríonn [an leathanach Etherscan seo](https://etherscan.io/address/0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae) an t-iarmhéid don Fhondúireacht Ethereum. Is féidir iarmhéideanna cuntais a cheistiú freisin trí úsáid a bhaint as sparán nó go díreach trí iarratais a dhéanamh ar nóid. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Defining ether and Ethereum](https://www.cmegroup.com/education/courses/introduction-to-ether/defining-ether-and-ethereum.html) – _CME Group_ +- [Páipéar Bán Ethereum](/whitepaper/): An togra bunaidh le haghaidh Ethereum. Cuimsíonn an doiciméad seo cur síos ar éitear agus na spreagthaí taobh thiar de a chruthú. +- [ Áireamhán Gwei](https://www.alchemy.com/gwei-calculator): Úsáid an t-áireamhán gwei seo chun wei, gwei, agus éitear a thiontú go héasca. Níl ort ach aon mhéid wei, gwei, nó ETH a phlugáil isteach agus ríomh an t-iompú go huathoibríoch. + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ diff --git a/public/content/translations/ga/developers/docs/intro-to-ethereum/index.md b/public/content/translations/ga/developers/docs/intro-to-ethereum/index.md new file mode 100644 index 00000000000..4985b4c31e6 --- /dev/null +++ b/public/content/translations/ga/developers/docs/intro-to-ethereum/index.md @@ -0,0 +1,116 @@ +--- +title: Réamhrá le hEthereum +description: Réamhrá forbróir dapp ar na coincheapa lárnacha Ethereum. +lang: ga +--- + +## Cad é an blocshlabhra? {#what-is-a-blockchain} + +Is bunachar sonraí poiblí é blocshlabhra a nuashonraítear agus a roinntear thar go leor ríomhairí i líonra. + +Tagraíonn "bloc" do shonraí agus do staid á stóráil i ngrúpaí i ndiaidh a chéile ar a dtugtar "bloic". Má sheolann tú ETH chuig duine éigin eile, is gá na sonraí idirbhirt a chur le bloc chun a bheith rathúil. + +Tagraíonn "Slabhra" ar an bhfíric go ndéanann gach bloc tagairt cripteagrafach dá mháthair. I bhfocail eile, déantar bloic a shlabhrú le chéile. Ní féidir na sonraí i mbloc a athrú gan na bloic go léir ina dhiaidh sin a athrú, rud a éileodh comhdhearcadh an líonra iomláin. + +Caithfidh gach ríomhaire sa líonra aontú ar gach bloc nua agus ar an slabhra ina iomláine. Tugtar "nóid" ar na ríomhairí seo. Cinntíonn nóid go bhfuil na sonraí céanna ag gach duine a idirghníomhaíonn leis an mblocshlabhra. Chun an comhaontú dáilte seo a chur i gcrích, tá meicníocht chomhthola de dhíth ar bhlocshlabhra. + +Úsáideann Ethereum [meicníocht chomhaontaithe cruthúnas-de-geallta](/developers/docs/consensus-mechanisms/pos/). Ní mór d'aon duine atá ag iarraidh bloic nua a chur leis an slabhra ETH - an t-airgeadra dúchais in Ethereum - a ghlacadh mar chomhthaobhacht agus bogearraí bailíochtaithe a reáchtáil. Is féidir na "bailíochtóirí" seo a roghnú go randamach ansin chun bloic a mholadh le sheiceáil ag bailíochtóirí eile agus le cur leis an mblocshlabhra. Tá córas luach saothair agus pionós ann mar spreagadh láidir do rannpháirtithe a bheith macánta agus ar fáil ar líne a oiread agus is féidir. + +Más mian leat a fheiceáil conas a dhéantar sonraí blocshlabhra a lua agus a chur i gceangal le stair na mbloc-thagairtí, déan [an taispeántas seo](https://andersbrownworth.com/blockchain/blockchain) le Anders Brownworth a sheiceáil agus féach ar an bhfíseán thíos. + +Féach ar Anders ag míniú haiseanna i mblocshlabhra: + + + +## Cad é Ethereum? {#what-is-ethereum} + +Is blocshlabhra é Ethereum a bhfuil ríomhaire leabaithe ann. Tá sé mar bhunús le haipeanna agus eagraíochtaí a thógáil ar bhealach díláraithe, gan chead, atá in aghaidh na cinsireachta. + +Sa chruinne Ethereum, tá ríomhaire aonair, canónach (ar a dtugtar an Meaisín Fíorúil Ethereum, nó EVM) a aontaíonn gach duine ar líonra Ethereum ar a staid. Coinníonn gach duine a ghlacann páirt sa líonra Ethereum (gach nód Ethereum) cóip de staid an ríomhaire seo. Ina theannta sin, is féidir le rannpháirtí ar bith iarratas a chraoladh ar an ríomhaire seo chun ríomh treallach a dhéanamh. Aon uair a chraoltar iarratas den sórt sin, déanann rannpháirtithe eile ar an líonra an ríomh a fhíorú, a bhailíochtú agus a chur i gcrích ("forghníomhú"). Déanann an forghníomhú seo athrú ar staid an EVM, atá tiomanta agus iomadaithe ar fud an ghréasáin ar fad. + +Tugtar iarratais ar idirbhirt ar iarratais ar ríomhaireacht; coinnítear taifead na n-idirbheart go léir agus staid reatha an EVM ar an mblocshlabhra, a stóráiltear agus a chomhaontaíonn na nóid go léir ar a seal. + +Cinntíonn meicníochtaí cripteagrafacha, a luaithe a dheimhnítear go bhfuil idirbhearta bailí agus go gcuirtear leis an mblocshlabhra iad, nach féidir cur isteach orthu níos déanaí. Cinntíonn na meicníochtaí céanna freisin go ndéantar gach idirbheart a shíniú agus a fhorghníomhú le "ceadanna" cuí (níor cheart go mbeadh aon duine in ann sócmhainní digiteacha a sheoladh ó chuntas Alice, ach Alice í féin). + +## Cad é éitear? {#what-is-ether} + +Is é **Éitear (ETH)** criptea-airgeadra dúchasach Ethereum. Is é cuspóir ETH margadh le haghaidh ríomh a cheadú. Soláthraíonn margadh den sórt sin dreasacht eacnamaíoch do rannpháirtithe chun iarratais ar idirbheart a fhíorú agus a fhorghníomhú agus acmhainní ríomhaireachtúla a sholáthar don líonra. + +Ní mór d'aon rannpháirtí a chraolann iarratas idirbheart méid áirithe ETH a thairiscint don líonra mar dheolchaire freisin. Dófaidh an líonra cuid den deolchaire agus bronnfaidh sé an chuid eile ar an té a dhéanfaidh an obair chun an t-idirbheart a fhíorú sa deireadh, é a fhorghníomhú, é a thiomnú don mblocshlabhra, agus é a chraoladh ar an líonra. + +Freagraíonn an méid ETH a íoctar leis na hacmhainní a theastaíonn chun an ríomh a dhéanamh. Cuireann na deolchairí seo cosc ​​freisin ar rannpháirtithe mailíseacha bac a chur ar an líonra d’aon ghnó trí iarraidh go ndéanfaí ríomh gan teorainn nó scripteanna eile atá dian ar acmhainní, mar go gcaithfidh na rannpháirtithe sin íoc as acmhainní ríomha. + +Úsáidtear ETH freisin chun slándáil cripte-eacnamaíoch a sholáthar don líonra ar thrí phríomhbhealach: 1) úsáidtear é mar mhodh chun luach saothair a thabhairt do bhailíochtóirí a mholann bloic nó a cháineann iompar mímhacánta ó bhailitheoirí eile; 2) Tá bailíochtóirí i ngeall air, ag gníomhú mar chomhthaobhacht in aghaidh iompar mímhacánta - má dhéanann bailíochóirí iarracht ar mhí-iompar le ETH is féidir é a scrios; 3) úsáidtear é chun 'vótaí' a mheá le haghaidh bloic nua-mholta, ag cur leis an gcuid den mheicníocht chomhthola a bhaineann leis an rogha foirc. + +## Cad is conarthaí cliste ann? {#what-are-smart-contracts} + +Go praiticiúil, ní scríobhann rannpháirtithe cód nua gach uair a bhíonn siad ag iarraidh ríomh a iarraidh ar an EVM. Ina ionad sin, uaslódálann forbróirí feidhmchlár cláir (giotaí cód ath-inúsáidte) isteach i staid EVM, agus déanann úsáideoirí iarratais chun na giotaí cóid seo a rith le paraiméadair éagsúla. Tugaimid conarthaí cliste ar na cláir a uaslódáiltear chuig an líonra agus a fhorghníomhaíonn siad. + +Ar leibhéal an-bhunúsach, is féidir leat smaoineamh ar chonradh cliste mar mheaisín díola: script a dhéanann, nuair a ghlaoitear air le paraiméadair áirithe, roinnt gníomhartha nó ríomh má shásaítear coinníollacha áirithe. Mar shampla, d'fhéadfadh conradh cliste díoltóir simplí úinéireacht sócmhainn dhigiteach a chruthú agus a shannadh má chuireann an glaoiteoir ETH chuig faighteoir ar leith. + +Is féidir le haon fhorbróir conradh cliste a chruthú agus é a phoibliú don líonra, ag baint úsáide as an mblocshlabhra mar chiseal sonraí dó, ar tháille a íoctar leis an líonra. Is féidir le haon úsáideoir glaoch ar an gconradh cliste ansin chun a chód a fhorghníomhú, arís ar tháille a íoctar leis an líonra. + +Mar sin, le conarthaí cliste, is féidir le forbróirí aipeanna agus seirbhísí casta go treallach a thógáil agus a imscaradh le haghaidh úsáideoirí amhail: áiteanna margaidh, ionstraimí airgeadais, cluichí, srl. + +## Téarmaíocht {#terminology} + +### Blocshlabhra {#blockchain} + +Seicheamh na mbloc go léir atá geallta don líonra Ethereum i stair an líonra. Tugadh an t-ainm sin air toisc go bhfuil tagairt ag gach bloc don bhloc roimhe seo, rud a chabhraíonn linn ordú a choinneáil thar gach bloc (agus mar sin thar an stair bheacht). + +### ETH {#eth} + +Is é **Éitear (ETH)** criptea-airgeadra dúchasach Ethereum. Íocann úsáideoirí ETH le húsáideoirí eile chun a n-iarratais forghníomhaithe cód a chomhlíonadh. + +[Tuilleadh faoi ETH](/developers/docs/intro-to-ether/) + +### EVM {#evm} + +Is é an Meaisín Fíorúil Ethereum an ríomhaire fíorúil domhanda a stórálann agus a aontaíonn gach rannpháirtí ar líonra Ethereum. Is féidir le rannpháirtí ar bith a iarraidh go ndéanfaí cód treallach ar an EVM; athraíonn forghníomhú an chóid staid an EVM. + +[Tuilleadh faoin EVM](/developers/docs/evm/) + +### Nóid {#nodes} + +Na meaisíní fíorshaoil ​​atá ag stóráil an stáit EVM. Déanann nóid cumarsáid lena chéile chun faisnéis a iomadú faoi staid EVM agus athruithe stáit nua. Is féidir le haon úsáideoir freisin forghníomhú cód a iarraidh trí iarratas forghníomhaithe cód a chraoladh ó nód. Is é líonra Ethereum féin comhiomlán na nóid Ethereum go léir agus a gcumarsáid. + +[Tuilleadh faoi nóid](/developers/docs/nodes-and-clients/) + +### Cuntais {#accounts} + +I gcás ina stóráiltear ETH. Is féidir le húsáideoirí cuntais a thúsú, ETH a thaisceadh sna cuntais, agus ETH a aistriú óna gcuntais chuig úsáideoirí eile. Stóráiltear cuntais agus iarmhéideanna cuntas i dtábla mór san EVM; is cuid den stát foriomlán EVM iad. + +[Tuilleadh faoi chuntais](/developers/docs/accounts/) + +### Idirbhearta {#transactions} + +Is é "iarratas idirbheart" an téarma foirmiúil le haghaidh iarratais ar fhorghníomhú cód ar an EVM, agus is éard atá i "idirbheart" iarratas ar idirbheart comhlíonta agus an t-athrú gaolmhar sa stát EVM. Is féidir le haon úsáideoir iarratas idirbheart a chraoladh chuig an líonra ó nód. Chun go mbeidh tionchar ag an iarratas idirbheart ar an stát EVM comhaontaithe, ní mór é a bhailíochtú, a fhorghníomhú, agus "tiomanta don líonra" le nód eile. Athraítear staid an EVM má dhéantar aon chód; tar éis gealltanas a thabhairt, craoltar an t-athrú stáit seo chuig gach nóid sa líonra. Roinnt samplaí d’idirbhearta: + +- Seol X ETH ó mo chuntas chuig cuntas Alice. +- Foilsigh roinnt cód conartha cliste i stát EVM. +- Forghníomhaigh cód an chonartha cliste ag seoladh X san EVM, le hargóintí Y. + +[Tuilleadh faoi idirbhearta](/developers/docs/transactions/) + +### Bloic {#blocks} + +Tá líon na n-idirbheart an-ard, mar sin déantar idirbhearta "tiomanta" i mbaisceanna, nó i mbloic. Go ginearálta bíonn mórán sna bloic sna céadta idirbheart. + +[Tuilleadh faoi bloic](/developers/docs/blocks/) + +### Conarthaí cliste {#smart-contracts} + +Cuid athúsáidte de chód (clár) a fhoilsíonn forbróir i stát EVM. Is féidir le duine ar bith a iarraidh go ndéanfar an cód conartha cliste a fhorghníomhú trí iarratas idirbhirt a dhéanamh. Toisc gur féidir le forbróirí feidhmchláir inrite treallach a scríobh isteach san EVM (cluichí, áiteanna margaidh, ionstraimí airgeadais, etc.) trí chonarthaí cliste a fhoilsiú, is minic a dtugtar [dapps, nó Aipeanna Díláraithe orthu seo freisin.](/developers/docs/dapps/). + +[Tuilleadh faoi chonarthaí cliste](/developers/docs/smart-contracts/) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Páipéar Bán Ethereum](/whitepaper/) +- [Conas a oibríonn Ethereum, mar sin féin?](https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369) - _Preethi Kasireddy_ (**NB** tá an acmhainn seo fós luachmhar ach bí ar an eolas gur tháinig sí roimh [The Merge](/roadmap/merge) agus mar sin tagraíonn sé fós do mheicníocht cruthúnais oibre Ethereum - tá Ethereum daingnithe anois ag baint úsáide as [cruthúnas i gceist](/developers/docs/consensus-mechanisms/pos)) + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Treoir forbróra ar Ethereum, cuid 1](/forbróirí/teagaisc/a-forbróirí-treoir-go-ethereum-part-one/) _– A taiscéalaíocht an-chairdiúil do thosaitheoirí ar Ethereum ag baint úsáide as Python agus web3.py_ diff --git a/public/content/translations/ga/developers/docs/networks/index.md b/public/content/translations/ga/developers/docs/networks/index.md new file mode 100644 index 00000000000..513f7cb9a87 --- /dev/null +++ b/public/content/translations/ga/developers/docs/networks/index.md @@ -0,0 +1,149 @@ +--- +title: Líonraí +description: Forbhreathnú ar líonraí Ethereum agus cá háit a bhfaighidh tú éitear testnet (ETH) chun d'iarratas a thástáil. +lang: ga +--- + +Is grúpaí de ríomhairí nasctha iad líonraí Ethereum a dhéanann cumarsáid ag baint úsáide as prótacal Ethereum. Níl ach Ethereum Mainnet amháin ann, ach is féidir líonraí neamhspleácha a chomhlíonann na rialacha prótacail céanna a chruthú chun críocha tástála agus forbartha. Tá go leor "líonraí" neamhspleácha ann a chloíonn leis an bprótacal gan idirghníomhú lena chéile. Is féidir leat fiú ceann a thosú go háitiúil ar do ríomhaire féin chun do chonarthaí cliste agus aipeanna web3 a thástáil. + +Oibreoidh do chuntas Ethereum thar na líonraí éagsúla, ach ní thabharfar iarmhéid do chuntais agus stair idirbheart anonn ó phríomhlíonra Ethereum. Chun críocha tástála, tá sé úsáideach go mbeadh a fhios agat cé na líonraí atá ar fáil agus conas testnet ETH a fháil chun triail a bhaint as. Go ginearálta, ó thaobh slándála, ní mholtar cuntais mainnet a athúsáid ar líonraí tástála nó a mhalairt. + +## Réamhriachtanais {#prerequisites} + +Ba cheart duit [bunphrionsabail Ethereum](/developers/docs/intro-to-ethereum/) a thuiscint sula ndéanann tú staidéar ar na gréasáin éagsúla, mar go bhfuil leagan saor, sábháilte de Ethereum ar na líonraí tástála le triail a bhaint as. + +## Líonraí poiblí {#public-networks} + +Tá rochtain ag aon duine ar domhan a bhfuil nasc idirlín acu ar líonraí poiblí. Is féidir le duine ar bith idirbhearta a léamh nó a chruthú ar bhlocshlabhra poiblí agus na hidirbhearta atá á gcur i gcrích a bhailíochtú. Cinneann an chomhthoil i measc na bpiaraí áireamh n-idirbheart agus staid an líonra. + +### Mainnet Ethereum {#ethereum-mainnet} + +Is é Mainnet an príomhbhloc táirgthe poiblí Ethereum, áit a dtarlaíonn idirbhearta de luach iarbhír ar an mórleabhar dáilte. + +Nuair a phléann daoine agus malartáin praghsanna ETH, tá siad ag caint faoi Mainnet ETH. + +### Líonraí tástála Ethereum {#ethereum-testnets} + +Chomh maith le Mainnet, tá testnets poiblí ann. Is líonraí iad seo a úsáideann forbróirí prótacail nó forbróirí conarthaí cliste chun uasghrádú prótacail a thástáil chomh maith le conarthaí cliste féideartha i dtimpeallacht cosúil le táirgeadh roimh imscaradh chuig Mainnet. Smaoinigh air seo mar analóg le táirgeadh i gcoinne freastalaithe stáitse. + +Ba cheart duit aon chód conartha a scríobhann tú ar testnet a thástáil sula n-imscartar chuig Mainnet. I measc na dapps a chomhtháthaíonn le conarthaí cliste atá ann cheana féin, tá cóipeanna imscartha chuig testnets ag formhór na dtionscadal. + +Thosaigh formhór na ngréasán tástála ag baint úsáide as meicníocht cheadaithe cruthúnais údaráis. Ciallaíonn sé seo go roghnaítear líon beag nód chun idirbhearta a bhailíochtú agus chun bloic nua a chruthú - ag cur a n-aitheantas sa phróiseas. Mar mhalairt air sin, tá meicníocht chomhaontaithe cruthúnais oscailte i gceist le roinnt líontáin tástála inar féidir le gach duine tástáil a dhéanamh ar bhailíochtóir a rith, díreach cosúil le Ethereum Mainnet. + +Tá sé ceaptha nach bhfuil aon luach fíor ag ETH ar testnets; ach, cruthaíodh margaí do chineálacha áirithe testnet ETH atá gann nó deacair a fháil. Ós rud é go bhfuil ETH uait chun idirghníomhú iarbhír le Ethereum (fiú ar testnets), faigheann an chuid is mó daoine testnet ETH saor in aisce ó sconnaí. Is feidhmchláir ghréasáin iad an chuid is mó de na sconnaí inar féidir leat seoladh a iarrann tú ETH a sheoladh chuige a ionchur. + +#### Cén Testnet ba cheart dom a úsáid? + +Is iad Sepolia agus Goerli an dá líonra tástála poiblí atá á gcothabháil ag forbróirí cliant faoi láthair. Is líonra é Sepolia d’fhorbróirí conarthaí agus feidhmchlár chun a bhfeidhmchláir a thástáil. Ligeann líonra Goerli d'fhorbróirí prótacail uasghráduithe líonra a thástáil, agus ligeann sé do gheallsealbhóirí bailíochtaithe reatha a thástáil. + +#### Sepolia {#sepolia} + +**Is é Sepolia an líonra tástála réamhshocraithe a mholtar chun feidhmchláir a fhorbairt**. Úsáideann líonra Sepolia tacar bailíochtaithe ceadaithe. Tá sé measartha nua, rud a chiallaíonn go bhfuil a staid agus a stair araon beag go leor. Ciallaíonn sé seo gur féidir an líonra a shioncronú go tapa agus go dteastaíonn níos lú stórála chun nód a rith air. Tá sé seo úsáideach d'úsáideoirí atá ag iarraidh nód a chasadh go tapa agus idirghníomhú go díreach leis an líonra. + +- Tacar bailíochtaithe dúnta, arna rialú ag an gcliant & foirne tástála +- Testnet nua, níos lú feidhmchlár imlonnaithe ná testnets eile +- Teastaíonn spás diosca íosta chun nód a shioncronú agus a rith + +##### Acmhainní + +- [Suíomh Gréasáin](https://sepolia.dev/) +- [GitHub](https://github.com/eth-clients/sepolia) +- [Otterscan](https://sepolia.otterscan.io/) +- [Etherscan](https://sepolia.etherscan.io) +- [Blockscout](https://eth-sepolia.blockscout.com/) + +##### Sconnaí + +- [Sconna Sepolia QuickNode](https://faucet.quicknode.com/drip) +- [Grabteeth](https://grabteeth.xyz/) +- [Sconna PoW](https://sepolia-faucet.pk910.de/) +- [Sconna Sparán Coinbase | Seplia](https://coinbase.com/faucets/ethereum-sepolia-faucet) +- [Sconna Sepolia Alchemy](https://sepoliafaucet.com/) +- [Sconna Sepolia Infura](https://www.infura.io/faucet) +- [Sconna Sepolia Chainstack](https://faucet.chainstack.com/sepolia-faucet) +- [Sconna Éiceachórais Ethereum](https://www.ethereum-ecosystem.com/faucets/ethereum-sepolia) + +#### Goerli _(tacaíocht fhadtéarmach)_ {#goerli} + +_Nóta: [tá testnet Goerli imithe i léig](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575/17) agus cuirfear [Holesovice](https://github.com/eth-clients/holesovice) in 2023. Déan machnamh le do thoil ar d'iarratais a aistriú go Seplia._ + +Is líonra tástála é Goerli chun bailíochtú agus gealltóireacht a thástáil. Tá líonra Goerli ar oscailt d'úsáideoirí ar mian leo bailíochtóir testnet a rith. Dá bhrí sin, ba cheart do gheallsealbhóirí atá ag iarraidh uasghráduithe prótacail a thástáil sula n-imscartar iad chuig mainnet úsáid a bhaint as Goerli. + +- Tacar bailíochtóra oscailte, is féidir le geallsealbhóirí uasghrádú líonra a thástáil +- Staid mhór, úsáideach le haghaidh idirghníomhaíochtaí conartha cliste casta a thástáil +- Níos faide le sioncrónú agus teastaíonn tuilleadh stórála chun nód a rith + +##### Acmhainní + +- [Suíomh Gréasáin](https://goerli.net/) +- [GitHub](https://github.com/eth-clients/goerli) +- [Etherscan](https://goerli.etherscan.io) +- [Blockscout](https://eth-goerli.blockscout.com/) + +##### Sconnaí + +- [Sconna Goerli QuickNode](https://faucet.quicknode.com/drip) +- [Grabteeth](https://grabteeth.xyz/) +- [Sconna PoW](https://goerli-faucet.pk910.de/) +- [Sconna Paradigm](https://faucet.paradigm.xyz/) +- [Sconna Goerli Alchemy](https://goerlifaucet.com/) +- [Sconna Goerli All That Node](https://www.allthatnode.com/faucet/ethereum.dsrv) +- [Sconna Sparán Coinbase | Goerli](https://coinbase.com/faucets/ethereum-goerli-faucet) +- [Sconna Goerli Chainstack](https://faucet.chainstack.com/goerli-faucet) + +Chun Baioíochtóir a sheoladh ar Holesky testnet, bain úsáid as [ "bailíochtóir Cheap Holesky"](https://holesky.launchpad.ethstaker.cc/ga/) ethstaker. + +### Testnets Ciseal 2 {#layer-2-testnets} + +Is téarma comhchoiteann é [Ciseal 2 (L2)](/layer-2/) chun cur síos a dhéanamh ar thacar sonrach de réitigh scálaithe Ethereum. Is blocshlabhra ar leith é ciseal 2 a leathnaíonn Ethereum agus a fhaigheann ráthaíochtaí slándála Ethereum le hoidhreacht. De ghnáth bíonn líontáin tástála Ciseal 2 ceangailte go docht le líonraí tástála poiblí Ethereum. + +#### Arbitrum Goerli {#arbitrum-goerli} + +Líonra tástála le haghaidh [Arbitrum](https://arbitrum.io/). + +##### Sconnaí + +- [Sconna Chainlink](https://faucets.chain.link/) + +#### Optimistic Goerli {#optimistic-goerli} + +Líonra tástála le haghaidh [Optimism](https://www.optimism.io/). + +##### Sconnaí + +- [Sconna Paradigm](https://faucet.paradigm.xyz/) +- [Sconna Sparán Coinbase | Optimism Goerli](https://coinbase.com/faucets/optimism-goerli-faucet) + +#### Starknet Goerli {#starknet-goerli} + +Líonra tástála le haghaidh [Starknet](https://www.starknet.io). + +##### Sconnaí + +- [Sconna Starknet](https://faucet.goerli.starknet.io) + +## Líonraí príobháideacha {#private-networks} + +Is líonra príobháideach é líonra Ethereum mura bhfuil a nóid ceangailte le líonra poiblí (i.e. Mainnet nó testnet). Sa chomhthéacs seo, ní cihallaíonn príobháideach ach forchoimeádta nó leithlisithe, seachas faoi chosaint nó slán. + +### Líonraí forbartha {#development-networks} + +Chun feidhmchlár Ethereum a fhorbairt, beidh tú ag iarraidh é a rith ar líonra príobháideach chun a fheiceáil conas a oibríonn sé sula n-imscarfar é. Cosúil leis an gcaoi a gcruthaíonn tú freastalaí áitiúil ar do ríomhaire le haghaidh forbairt gréasáin, is féidir leat blocshlabhra samplach áitiúil a chruthú chun do dapp a thástáil. Ceadaíonn sé seo atriall i bhfad níos tapúla ná líonra tástála poiblí. + +Tá tionscadail agus uirlisí tiomnaithe chun cabhrú leis seo. Foghlaim tuilleadh faoi [líonraí forbartha](/developers/docs/development-networks/). + +### Líonraí cuibhreannais {#consortium-networks} + +Tá an próiseas comhthola á rialú ag sraith nóid réamhshainithe iontaofa. Mar shampla, líonra príobháideach d’institiúidí acadúla aitheanta a rialaíonn nód amháin, agus bloic a bhailíochtaíonn tairseach sínitheoirí laistigh den líonra. + +Má tá líonra poiblí Ethereum cosúil leis an idirlíon poiblí, tá líonra cuibhreannais cosúil le inlíon príobháideach. + +## Uirlisí gaolmhara {#related-tools} + +- [Chainlist](https://chainlist.org/) _liosta líonraí EVM chun sparán agus soláthraithe a nascadh leis an Aitheantas Slabhra agus an Aitheantas Líonra cuí_ +- [ Slabhraí bunaithe ar EVM](https://github.com/ethereum-lists/chains) _ GitHub repo de mheiteashonraí slabhra a chumhachtaíonn an Slabhraliosta_ + +## Tuilleadh léitheoireachta {#further-reading} + +- [Togra: Saolré Intuartha Ethereum Testnet](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575/17) +- [Éabhlóid na Testnets Ethereum](https://etherworld.co/2022/08/19/the-evolution-of-ethereum-testnet/) diff --git a/public/content/translations/ga/developers/docs/transactions/index.md b/public/content/translations/ga/developers/docs/transactions/index.md new file mode 100644 index 00000000000..4fb1bdbb4c9 --- /dev/null +++ b/public/content/translations/ga/developers/docs/transactions/index.md @@ -0,0 +1,221 @@ +--- +title: Idirbhearta +description: Forbhreathnú ar idirbhearta Ethereum \u2013 conas a oibríonn siad, a struchtúr sonraí, agus conas iad a sheoladh trí fheidhmchlár. +lang: ga +--- + +Is treoracha sínithe go cripteagrafach ó chuntais iad idirbhearta. Cuirfidh cuntas tús le hidirbheart chun staid líonra Ethereum a nuashonrú. Is é an t-idirbheart is simplí ná ETH a aistriú ó chuntas amháin go ceann eile. + +## Réamhriachtanais {#prerequisites} + +Chun cabhrú leat an leathanach seo a thuiscint níos fearr, molaimid duit ar dtús léamh faoi [Cuntais](/developers/docs/accounts/) agus [réamhrá ar Ethereum](/developers/docs/intro-to-ethereum/). + +## Cad is idirbheart ann? {#whats-a-transaction} + +Tagraíonn idirbheart Ethereum do ghníomh arna thionscnamh ag cuntas faoi úinéireacht sheachtrach, i bhfocail eile cuntas arna bhainistiú ag duine, ní conradh. Mar shampla, má sheolann Bob 1 ETH chuig Alice, ní mór cuntas Bob a chur chun dochair agus cuntas Alice a chur chun sochair. Tarlaíonn an gníomh seo a athraíonn an stát laistigh d’idirbheart. + +![Léaráid a thaispeánann idirbheart is cúis le hathrú stáit](./tx.png) _Léaráid oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Is gá idirbhearta, a athraíonn staid an EVM, a chraoladh chuig an líonra iomlán. Is féidir le haon nód iarratas ar idirbheart a rith ar an EVM a chraoladh; tar éis dó seo a dhéanamh, déanfaidh bailíochtóir an t-idirbheart a rith agus cuirfidh sé an t-athrú staid mar thoradh air chuig an gcuid eile den líonra. + +Teastaíonn táille le haghaidh idirbhearta agus ní mór iad a áireamh i mbloc bailíochtaithe. Chun an forbhreathnú seo a dhéanamh níos simplí clúdóimid táillí gáis agus bailíochtú in áiteanna eile. + +Áirítear an fhaisnéis seo a leanas in idirbheart a cuireadh isteach: + +- `ó` \u2013 seoladh an tseoltóra, a bheidh ag síniú an idirbhirt. Cuntas faoi úinéireacht sheachtrach a bheidh anseo mar ní féidir le cuntais chonartha idirbhearta a sheoladh +- `go` \u2013 an seoladh fála (más cuntas faoi úinéireacht sheachtrach é, aistreoidh an t-idirbheart luach. Más cuntas conartha é, déanfaidh an t-idirbheart cód an chonartha a fhorghníomhú) +- `síniú` \u2013 aitheantóir an tseoltóra. Gintear é seo nuair a shíníonn eochair phríobháideach an tseoltóra an t-idirbheart agus nuair a dheimhnítear go bhfuil an t-idirbheart seo údaraithe ag an seoltóir +- `nonce` - cuntar incriminteach seicheamhach a léiríonn uimhir an idirbhirt ón gcuntas +- `luach` \u2013 méid ETH le haistriú ón seoltóir go faighteoir (ainmnithe in WEI, áit a bhfuil 1ETH cothrom le 1e+18wei) +- `sonraí inchuir` \u2013 réimse roghnach chun sonraí treallacha a chur san áireamh +- `gasLimit` \u2013 uasmhéid na n-aonad gáis is féidir a ídiú ag an idirbheart. Sonraíonn an [EVM](/developers/docs/evm/opcodes) na haonaid gháis a theastaíonn do gach céim ríomhaireachtúil +- `maxPriorityFeePerGas` - uasphraghas an gháis ídithe le cur san áireamh mar leid don bhailitheoir +- `maxFeePerGas` - an táille uasta in aghaidh an aonaid gháis atá sásta a bheith íoctha as an idirbheart (lena n-áirítear `baseFeePerGas` agus `maxPriorityFeePerGas`) + +Is tagairt é gás don ríomh a theastaíonn chun an t-idirbheart a phróiseáil ag bailíochtóir. Caithfidh úsáideoirí táille a íoc as an ríomh seo. Cinneann an `gasLimit`, agus an `maxPriorityFeePerGas` an táille uasta idirbhirt a íoctar leis an mbailitheoir. [Tuilleadh faoin nGás](/developers/docs/gas/). + +Breathnóidh réad an idirbhirt beagán mar seo: + +```js +{ + from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", + to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a", + gasLimit: "21000", + maxFeePerGas: "300", + maxPriorityFeePerGas: "10", + nonce: "0", + value: "10000000000" +} +``` + +Ach ní mór réad idirbhirt a shíniú ag baint úsáide as eochair phríobháideach an tseoltóra. Cruthaíonn sé seo nach bhféadfadh an t-idirbheart teacht ach ón seoltóir agus nár seoladh go calaoiseach é. + +Déanfaidh cliant Ethereum cosúil le Geth an próiseas sínithe seo a láimhseáil. + +Sampla [JSON-RPC](/developers/docs/apis/json-rpc) glao: + +```json +{ + "id": 2, + "jsonrpc": "2.0", + "method": "account_signTransaction", + "params": [ + { + "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db", + "gas": "0x55555", + "maxFeePerGas": "0x1234", + "maxPriorityFeePerGas": "0x1234", + "input": "0xabcd", + "nonce": "0x0", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234" + } + ] +} +``` + +Freagra samplach: + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": { + "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "tx": { + "nonce": "0x0", + "maxFeePerGas": "0x1234", + "maxPriorityFeePerGas": "0x1234", + "gas": "0x55555", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234", + "input": "0xabcd", + "v": "0x26", + "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e", + "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e" + } + } +} +``` + +- is é an `raw` an t-idirbheart sínithe san fhoirm ionchódaithe [Réimír Fad Athchúrsach (RLP)](/developers/docs/data-structures-and-encoding/rlp) +- is é an `tx` an t-idirbheart sínithe i bhfoirm JSON + +Leis an hais sínithe, is féidir an t-idirbheart a chruthú go cripteagrafaíoch gur tháinig sé ón seoltóir agus gur cuireadh faoi bhráid an líonra é. + +### An réimse sonraí {#the-data-field} + +Faigheann formhór mór na n-idirbheart rochtain ar chonradh ó chuntas faoi úinéireacht sheachtrach. Scríobhtar formhór na gconarthaí i Solidity agus léirmhíníonn siad a réimse sonraí i gcomhréir leis an [comhéadan dénártha feidhmchláir (ABI)](/glossary/#abi). + +Sonraíonn na chéad cheithre bheart an fheidhm atá le glaoch, ag baint úsáide as hais ainm agus argóintí na feidhme. Uaireanta is féidir leat an fheidhm a aithint ón roghnóir trí úsáid a bhaint as [an bunachar sonraí seo](https://www.4byte.directory/signatures/). + +Tá na hargóintí sa chuid eile de na sonraí glaonna, [ionchódaithe mar atá sonraithe sa Sonraíochtaí ABI](https://docs.soliditylang.org/en/latest/abi-spec.html#formal-specification-of-the-encoding). + +Mar shampla, breathnaímis ar [an t-idirbheart seo](https://etherscan.io/tx/0xd0dcbe007569fcfa1902dae0ab8b4e078efe42e231786312289b1eee5590f6a1). Úsáid **Cliceáil chun Tuilleadh a fheiceáil** chun na sonraí glaonna a fheiceáil. + +Is é `0xa9059cbb` an roghnóir feidhme. Tá roinnt [feidhm aitheanta leis an síniú seo](https://www.4byte.directory/signatures/?bytes4_signature=0xa9059cbb). Sa chás seo tá [cód foinse an chonartha](https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#code) uaslódáilte chuig Etherscan, mar sin is eol dúinn gurb é `transfer(address,uint256)`. + +Is é an chuid eile de na sonraí ná: + +``` +0000000000000000000000004f6742badb049791cd9a37ea913f2bac38d01279 +000000000000000000000000000000000000000000000000000000003b0559f4 +``` + +De réir sonraíochtaí ABI, tá luachanna slánuimhir (cosúil le seoltaí, atá ina slánuimhreacha 20 beart) le feiceáil san ABI mar fhocail 32 beart, stuáilte le nialais sa tosaigh. Mar sin, tá a fhios againn go bhfuil an seoladh `to` [`4f6742badb049791cd9a37ea913f2bac38d01279`](https://etherscan.io/address/0x4f6742badb049791cd9a37ea913f2bac38d01279). Is é an `value` 0x3b0559f4 = 990206452. + +## Cineálacha idirbheart {#types-of-transactions} + +Ar Ethereum tá roinnt cineálacha éagsúla idirbhearta: + +- Idirbhearta rialta: idirbheart ó chuntas amháin go ceann eile. +- Idirbhearta imlonnaithe conartha: idirbheart gan seoladh 'chuig', ina n-úsáidtear an réimse sonraí don chód conartha. +- Conradh a rith: idirbheart a idirghníomhaíonn le conradh cliste imscartha. Sa chás seo, is é seoladh 'chun' an seoladh conartha cliste. + +### Ar ghás {#on-gas} + +Mar a luadh, gabhann costas le hidirbhearta [gas](/developers/docs/gas/) a rith. Éilíonn idirbhearta aistrithe simplí 21000 aonad Gáis. + +Mar sin má sheolann Bob 1 ETH chuig Alice ag`baseFeePerGas` de 190 gwei agus `maxPriorityFeePerGas` de 10 gwei, beidh ar Bob an táille seo a leanas a íoc: + +``` +(190 + 10) * 21000 = 4,200,000 gwei +--nó-- +0.0042 ETH +``` + +Cuirfear **-1.0042 ETH** do dhochar cuntas Bob (1 ETH le haghaidh Alice + 0.0042 ETH i dtáillí gáis) + +Cuirfear **+1.0 ETH** chun sochair do chuntas Alice + +Dóitear an buntáille **-0.00399 ETH** + +Coinníonn bailíochtóir an leid **+0.000210 ETH** + + +![Léaráid a thaispeánann conas a dhéantar gás neamhúsáidte a aisíoc](./gas-tx.png) _Léaráid oiriúnaithe ó [Ethereum EVM léirithe](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Aisíoctar leis an gcuntas úsáideora aon ghás nach n-úsáidtear in idirbheart. + +### Idirghníomhaíochtaí conartha cliste {#smart-contract-interactions} + +Tá gás riachtanach le haghaidh aon idirbheart a bhaineann le conradh cliste. + +Féadfaidh feidhmeanna ar a dtugtar [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) nó `pure` feidhmeanna, nach n-athraíonn staid an chonartha. Mar sin, ní bheidh gá le haon ghás chun na feidhmeanna seo a ghlaoch ó EOA. Is é an glao RPC bunúsach don chás seo ná [`eth_call`](/developers/docs/apis/json-rpc#eth_call). + +Murab ionann agus nuair a dhéantar rochtain orthu trí úsáid a bhaint as `eth_call`, is gnách go dtugtar go hinmheánach ar na feidhmeanna `view` nó `pure` seo (i.e. ón gconradh féin nó ó chonradh eile) a dhéanann costas gáis. + +## Saolré idirbhirt {#transaction-lifecycle} + +Nuair a chuirtear an t-idirbheart isteach tarlaíonn an méid seo a leanas: + +1. Gintear hais idirbhirt go cripteagrafach: `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017` +2. Ansin déantar an t-idirbheart a chraoladh chuig an líonra agus a chur le linn idirbheart ina bhfuil gach idirbheart líonra eile ar feitheamh. +3. Ní mór do bhailíochtóir d'idirbheart a phiocadh agus é a áireamh i mbloc chun an t-idirbheart a fhíorú agus a mheas go bhfuil sé "rathúil". +4. Le himeachtaí ama, déanfar an bloc ina bhfuil d'idirbheart a uasghrádú go "dlisteanaithe" ansin "críochnaithe". Leis na huasghráduithe seo bíonn sé níos cinnte gur éirigh le d’idirbheart agus nach n-athrófar go deo é. Nuair a bhíonn bloc "críochnaithe" ní féidir é a athrú riamh ach trí ionsaí ar leibhéal an líonra a chosnódh na billiúin dollar. + +## Léiriú físe {#a-visual-demo} + +Féach ar Austin ag míniú idirbhearta, gás, agus mianadóireacht. + + + +## Clúdach Idirbhirt Clóscríofa {#typed-transaction-envelope} + +Ar dtús bhí formáid amháin ag Ethereum le haghaidh idirbhearta. Bhí nonce, praghas gáis, teorainn gháis, le seoladh, luach, sonraí, v, r, agus s i ngach idirbheart. Tá na réimsí seo [RLP-ionchódaithe](/developers/docs/data-structures-and-encoding/rlp/), chun breathnú ar rud éigin mar seo: + +`RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])` + +Tá Ethereum tagtha chun cinn chun tacú le cineálacha iomadúla idirbheart chun ligean do ghnéithe nua cosúil le liostaí rochtana agus [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) a bheith curtha i bhfeidhm gan cur isteach ar fhormáidí oidhreachta idirbhearta. + +Is é [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) a cheadaíonn don iompar seo. Léirmhínítear idirbhearta mar: + +`TransactionType || TransactionPayload` + +I gcás ina sainítear na réimsí mar: + +- `TransactionType` - uimhir idir 0 agus 0x7f, le haghaidh 128 cineál idirbheart féideartha san iomlán. +- `TransactionPayload` - eagar beart treallach arna shainiú ag an gcineál idirbhirt. + +Bunaithe ar an luach `TransactionType`, is féidir idirbheart a rangú mar: + +1. ** Idirbhearta Cineál 0 (Oidhreacht):** An bhunfhormáid idirbhirt a úsáideadh ó seoladh Ethereum. Ní áirítear leo gnéithe ó [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) amhail ríomh táillí gáis dinimiciúla nó liostaí rochtana le haghaidh conarthaí cliste. Tá réimír shainiúil in easnamh ar idirbhearta oidhreachta a chuireann a gcineál in iúl ina bhfoirm sraitheach, ag tosú leis an mbeart `0xf8` nuair a úsáidtear [Athchúrsach Ionchódú Réimír Fad (RLP)](/developers/docs/data-structures-and-encoding/rlp). Is é luach an Chineál Idirbheart do na hidirbhearta seo ná `0x0`. + +2. ** Idirbhearta de Chineál 1:** Arna thabhairt isteach i [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) mar mar chuid de [Uasghrádú Beirlín](/history/#berlin) Ethereum, áirítear leis na hidirbhearta seo paraiméadar `accessList`. Sonraíonn an liosta seo seoltaí agus eochracha stórála a bhfuil súil ag an idirbheart a rochtain, rud a chabhraíonn le costais [gas](/developers/docs/gas/) a laghdú d’idirbhearta casta lena mbaineann conarthaí cliste. Níl athruithe margaidh táillí EIP-1559 san áireamh in idirbhearta Cineál 1. Áirítear le hidirbhearta de chineál 1 paraiméadar `yParity` freisin, ar féidir é a bheith `0x0` nó `0x1`, rud a léiríonn an phaireacht i luach y an tsínithe secp256k1. Aithnítear iad ag tosú leis an mbeart `0x01`, agus is é `0x1` a luach TransactionCype. + +3. **Idirbhearta de Chineál 2**, ar a dtugtar idirbhearta EIP-1559 de ghnáth, is idirbhearta iad a thugtar isteach in [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), i [Uasghrádú Londain](/history/#london) Ethereum. Tá siad tar éis éirí mar an cineál caighdeánach idirbheart ar líonra Ethereum. Tugann na hidirbhearta seo isteach meicníocht nua um mhargadh táillí a fheabhsaíonn intuarthacht tríd an táille idirbhirt a scaradh ina bhuntáille agus ina táille tosaíochta. Tosaíonn siad leis an mbeart `0x02` agus áirítear leo réimsí mar `maxPriorityFeePerGas` agus `maxFeePerGas`. Is iad idirbhearta Chineál 2 an réamhshocrú anois mar gheall ar a solúbthacht agus a n-éifeachtúlacht, go háirithe i bhfabhar a gcumas chun cabhrú le húsáideoirí táillí idirbhirt a bhainistiú ar bhealach níos intuartha. Is é luach an Chineál Idirbheart do na hidirbhearta seo ná `0x2`. + + + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP-2718: Clúdach Idirbheart Clóscríofa](https://eips.ethereum.org/EIPS/eip-2718) + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Ábhair ghaolmhara {#related-topics} + +- [Cuntais](/developers/docs/accounts/) +- [Meaisín fíorúil Ethereum (EVM)](/developers/docs/evm/) +- [Gás](/developers/docs/gas/) diff --git a/public/content/translations/ga/developers/docs/web2-vs-web3/index.md b/public/content/translations/ga/developers/docs/web2-vs-web3/index.md new file mode 100644 index 00000000000..2dd2af1e8b6 --- /dev/null +++ b/public/content/translations/ga/developers/docs/web2-vs-web3/index.md @@ -0,0 +1,62 @@ +--- +title: Web2 vs Web3 +description: +lang: ga +--- + +Tagraíonn Web2 don leagan den idirlíon atá ar eolas ag an gcuid is mó againn inniu. Idirlíon atá faoi cheannas cuideachtaí a sholáthraíonn seirbhísí mar mhalairt ar do shonraí pearsanta. Tagraíonn Web3, i gcomhthéacs Ethereum, d'aipeanna díláraithe a ritheann ar an mblocshlabhra. Is aipeanna iad seo a ligeann d’aon duine páirt a ghlacadh gan luach airgid a chur ar a gcuid sonraí pearsanta. + +An bhfuil acmhainn atá níos so-úsáidte do thosaitheoirí uait? Féach ar ár [réamhrá do web3](/web3/). + +## Buntáistí Web3 {#web3-benefits} + +Roghnaigh go leor forbróirí Web3 dapps a thógáil mar gheall ar dhílárú bunúsach Ethereum: + +- Tá cead ag aon duine atá ar an líonra an tseirbhís a úsáid - nó i bhfocail eile, níl cead ag teastáil. +- Ní féidir le duine ar bith bac a chur ort ná rochtain ar an tseirbhís a dhiúltú duit. +- Cuirtear íocaíochtaí isteach tríd an chomhartha dúchais, éitear (ETH). +- Tá Ethereum turing-iomlán, rud a chiallaíonn gur féidir leat beagnach rud ar bith a ríomhchlárú. + +## Comparáidí praiticiúla {#practical-comparisons} + +| Web2 | Web3 | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| Is féidir le Twitter cinsireacht a dhéanamh ar aon chuntas nó tvuít | Bheadh ​​tvuíteanna Web3 do-chinsirithe toisc go bhfuil an rialú díláraithe | +| Féadfaidh seirbhís íocaíochta a chinneadh gan íocaíochtaí a cheadú do chineálacha áirithe oibre | Níl aon sonraí pearsanta ag teastáil ó aipeanna íocaíochta Web3 agus ní féidir leo íocaíochtaí a chosc | +| D’fhéadfadh freastalaithe le haghaidh aipeanna geilleagair poistíní cliseadh agus cur isteach ar ioncam oibrithe | Ní féidir le freastalaithe Web3 cliseadh - úsáideann siad Ethereum, líonra díláraithe de na mílte ríomhairí mar chúl | + +Ní chiallaíonn sé seo gur gá gach seirbhís a iompú ina dapp. Léiríonn na samplaí seo na príomhdhifríochtaí idir seirbhísí web2 agus web3. + +## Teorainneacha Web3 {#web3-limitations} + +Tá roinnt teorainneacha ag Web3 faoi láthair: + +- Inscálaitheacht - Tá inscálaitheacht idirbhearta níos moille ar Web3 toisc go bhfuil siad díláraithe. Ní mór athruithe ar an staid amhail íocaíocht, a phróiseáil le nód agus iad a iomadú ar fud an líonra. +- UX - d'fhéadfadh céimeanna, bogearraí agus oideachas breise a bheith ag teastáil chun UX a idirghníomhú le feidhmchláir Web3. Is féidir leis seo a bheith ina chonstaic ar ghlacacht. +- Inrochtaineacht - is lú rochtain a bhíonn ag formhór na n-úsáideoirí ar web3 mar gheall ar an easpa comhtháthaithe i mbrabhsálaithe gréasáin nua-aimseartha. +- Costas - cuireann na dapps is rathúla codanna an-bheaga dá gcód ar an mblocshlabhra mar go bhfuil sé costasach. + +## Lárú vs dílárú {#centralization-vs-decentralization} + +Sa tábla thíos, liostaímid cuid de na buntáistí agus na míbhuntáistí leathana a bhaineann le líonraí digiteacha láraithe agus díláraithe. + +| Córais Láraithe | Córais Dhíláraithe | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Trastomhas líonra íseal (tá gach rannpháirtí ceangailte le húdarás lárnach); forleatar faisnéis go tapa, toisc go láimhseálann údarás lárnach a bhfuil go leor acmhainní ríomhaireachta aige an forleathadh. | D’fhéadfadh go mbeadh na rannpháirtithe is faide amach ar an líonra i bhfad i gcéin óna chéile. Seans go dtógfaidh sé go leor ama chun faisnéis a chraoladh ó thaobh amháin den líonra chun an taobh eile a bhaint amach. | +| Feidhmíocht níos airde de ghnáth (tréchur níos airde, níos lú acmhainní ríomhaireachta iomlána caite) agus níos éasca le cur i bhfeidhm. | Feidhmíocht níos ísle de ghnáth (tréchur níos ísle, níos mó acmhainní ríomhaireachta iomlána caite) agus níos casta le cur i bhfeidhm. | +| I gcás sonraí contrártha, tá réiteach soiléir agus éasca: is é an t-údarás lárnach foinse deiridh na fírinne. | Tá gá le prótacal (a bhíonn casta go minic) chun aighnis a réiteach, má dhéanann piaraí éilimh chontrártha faoi staid na sonraí a bhfuil na rannpháirtithe ceaptha a bheith sioncronaithe orthu. | +| Pointe aonair teipe: d’fhéadfadh go mbeadh gníomhaithe mailíseacha in ann an líonra a laghdú trí dhíriú ar an údarás lárnach. | Gan aon phointe teipe amháin: is féidir leis an líonra feidhmiú go fóill fiú má ionsaítear cuid mhór de na rannpháirtithe/go dtógtar amach iad. | +| Is fusa i bhfad an comhordú i measc rannpháirtithe an líonra, agus láimhseálann údarás lárnach é. Is féidir leis an údarás lárnach iallach a chur ar rannpháirtithe líonra uasghráduithe, nuashonruithe prótacail, etc., a ghlacadh le fíorbheagán frithchuimilte. | Is minic a bhíonn comhordú deacair, toisc nach bhfuil an focal deiridh ag aon ghníomhaire aonair i gcinntí ar leibhéal líonra, uasghrádú prótacail, etc. Sa chás is measa, tá seans maith ann go scoiltear líonra nuair a bhíonn easaontais ann faoi athruithe prótacail. | +| Is féidir leis an údarás lárnach sonraí a chinsireacht, rud a d'fhéadfadh codanna den líonra a ghearradh as idirghníomhú leis an gcuid eile den líonra. | Tá an chinsireacht i bhfad níos deacra, toisc go bhfuil go leor bealaí ag faisnéis le scaipeadh ar fud an líonra. | +| Tá rannpháirtíocht sa líonra á rialú ag an údarás lárnach. | Is féidir le duine ar bith páirt a ghlacadh sa líonra; níl aon "coimeádaithe" ann. Go hidéalach, tá costas na rannpháirtíochta an-íseal. | + +Tabhair faoi deara gur patrúin ghinearálta iad seo nach bhfuil fíor i ngach líonra. Ina theannta sin, i ndáiríre luíonn an méid líonra atá láraithe/díláraithe ar speictream; níl aon líonra iomlán láraithe nó díláraithe go hiomlán. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Cad é Web3?](/web3/) - _ethereum.org_ +- [Ailtireacht feidhmchlár Web 3.0](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ +- [Brí an Díláraithe](https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274) _ 6 Feabhra, 2017 - Vitalik Buterin_ +- [Cén fáth go bhfuil Dílárú Tábhachtach](https://medium.com/s/story/why-decentralization-matters-5e3f79f7638e) _ 18 Feabhra, 2018 - Chris Dixon _ +- [Cad é Web 3.0 & An Fáth a bhfuil Tábhacht ag baint leis](https://medium.com/fabric-ventures/what-is-web-3-0-why-it-matters-934eb07f3d2b) _Nollaig 31, 2019 - Max Mersch agus Richard Muirhead_ +- [Cén Fáth a bhfuil Gréasán 3.0 de dhíth orainn](https://medium.com/@gavofyork/why-we-need-web-3-0-5da4f2bf95ab) _ 12 Meán Fómhair, 2018 - Gavin Wood_ diff --git a/public/content/translations/ga/developers/docs/wrapped-eth/index.md b/public/content/translations/ga/developers/docs/wrapped-eth/index.md new file mode 100644 index 00000000000..7f4ecde9ff9 --- /dev/null +++ b/public/content/translations/ga/developers/docs/wrapped-eth/index.md @@ -0,0 +1,65 @@ +--- +title: Cad é Éitear Timfhillte (WETH) +description: Cur i láthair ar éitear timfhillte (WETH) - rapar atá comhoiriúnach le ERC20 le haghaidh éitear (ETH). +lang: ga +--- + +# Éitear timfhillte (WETH) {#intro-to-weth} + +Is é ether (ETH) príomh-airgeadra Ethereum. Úsáidtear é chun críocha éagsúla cosúil le cruachadh, mar airgeadra, agus le híoc as táillí gáis le haghaidh ríomha. **Is foirm uasghrádaithe ETH é WETH le feidhmiúlacht bhreise a theastaíonn ó go leor feidhmchlár agus [ERC-20 comharthaí](/glossary/#erc-20)**, ar cineálacha eile sócmhainní digiteacha iad ar Ethereum. Chun oibriú leis na comharthaí seo, ní mór do ETH na rialacha céanna a dhéanann siad, ar a dtugtar an caighdeán ERC-20 a leanúint. + +Chun an bhearna seo a líonadh, cruthaíodh ETH timfhillte (WETH). **Is conradh cliste é ETH timfhillte a ligeann duit aon mhéid ETH a chur isteach sa chonradh agus an méid céanna a fháil i WETH buailte** a chloíonn le caighdeán dearbhán ERC-20. Is léiriú é WETH ar ETH a ligeann duit idirghníomhú leis mar chomhartha ERC-20, ní mar an tsócmhainn dhúchasach ETH. Beidh ETH dúchasach fós ag teastáil uait chun íoc as táillí gáis, mar sin déan cinnte go sábhálfaidh tú roinnt agus tú ag taisceadh. + +Is féidir leat WETH a dhífhilleadh le haghaidh ETH trí úsáid a bhaint as conradh cliste WETH. Is féidir leat aon mhéid WETH a fhuascailt leis an gconradh cliste WETH, agus gheobhaidh tú an méid céanna in ETH. Déantar an WETH a taisceadh a dhó ansin agus a bhaint as an soláthar imshruthaithe WETH. + +**Tá thart ar ~3% den soláthar ETH atá i gcúrsaíocht faoi ghlas sa chonradh chomhartha WETH** rud a fhágann go bhfuil sé ar cheann de na [conarthaí cliste](/glossary/#smart-contract) is mó a úsáitear. Tá tábhacht ar leith ag baint le WETH nuair a bhíonn úsáideoirí ag idirghníomhú le feidhmchláir in airgeadas díláraithe (DeFi). + +## Cén fáth a gcaithfimid ETH a thimfhilleadh mar ERC-20? {#why-do-we-need-to-wrap-eth} + +Sainmhíníonn [ERC-20] (/developers/docs/standards/tokens/erc-20/) comhéadan caighdeánach le haghaidh comharthaí inaistrithe, ionas gur féidir le duine ar bith comharthaí a chruthú a idirghníomhaíonn gan uaim le feidhmchláir agus comharthaí a úsáideann an caighdeán seo in éiceachóras Ethereum. Ós rud é go raibh **ETH ann roimh an gcaighdeán ERC-20**, ní chloíonn ETH leis an tsonraíocht seo. Mar gheall air seo **ní féidir leat** ETH a mhalartú go héasca ar chomharthaí ERC-20 eile nó **ETH a úsáid in aipeanna ag baint úsáide as an gcaighdeán ERC-20**. Tugann timfhilleadh ETH deis duit na rudaí seo a leanas a dhéanamh: + +- \*\* ETH a mhalartú le haghaidh comharthaí ERC-20\*\*: Ní féidir leat ETH a mhalartú go díreach le haghaidh comharthaí ERC-20 eile. Is léiriú é WETH ar éitear a chloíonn le caighdeán comharthaí idirmhalartacha ERC-20 agus is féidir é a mhalartú le comharthaí ERC-20 eile. + +- \*\* Úsáid ETH i dapps \*\*: Toisc nach bhfuil ETH comhoiriúnach le ERC20, bheadh ​​ar fhorbróirí comhéadain ar leith a chruthú (ceann amháin le haghaidh ETH agus ceann eile le haghaidh comharthaí ERC-20) i dapps. Nuair a dhéantar ETH a thimfhilleadh, baintear an chonstaic seo agus cuireann sé ar chumas forbróirí ETH agus comharthaí eile a láimhseáil laistigh den dapp céanna. Úsáideann go leor feidhmchlár díláraithe airgeadais an caighdeán seo, agus cruthaíonn siad margaí chun na comharthaí sin a mhalartú. + +## Éitear timfhillte (WETH) vs éitear (ETH): Cad é an difríocht? {#weth-vs-eth-differences} + +| | **Éitear (ETH)** | **Éitear timfhillte (WETH)** | +| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Soláthar | Tá soláthar ETH á bhainistiú ag prótacal Ethereum. Láimhseálann bailíochtóirí Ethereum [eisiúint] (/treochlár / cumasc / eisiúint) ETH agus iad ag próiseáil idirbhearta agus ag cruthú bloic. | Is comhartha ERC-20 é WETH a bhfuil a sholáthar á bhainistiú ag conradh cliste. Eisíonn an conradh aonaid nua WETH tar éis dó taiscí ETH a fháil ó úsáideoirí, nó déantar aonaid WETH a dhó nuair is mian le húsáideoir WETH a fhuascailt le haghaidh ETH. | +| Úinéireacht | Is é prótacal Ethereum a bhainistíonn úinéireacht trí iarmhéid do chuntais. | Tá úinéireacht WETH á bhainistiú ag conradh cliste chomhartha WETH, arna urrú ag prótacal Ethereum. | +| Gás | Is é Éitear (ETH) an t-aonad íocaíochta a nglactar leis le haghaidh ríomha ar líonra Ethereum. Tá táillí gáis ainmnithe in gwei (aonad éitear). | Ní thacaítear ó dhúchas le gás a íoc le comharthaí WETH. | + +## Ceisteanna coitianta {#faq} + + + +Íocann tú táillí gáis chun ETH a thimfhilleadh nó a dhífhilleadh trí leas a bhaint as an gconradh WETH. + + + + + +Meastar go ginearálta go bhfuil WETH slán mar go bhfuil sé bunaithe ar chonradh cliste simplí a bhfuil tástáil catha air. Tá conradh WETH fíoraithe go foirmiúil freisin, arb é an caighdeán slándála is airde do chonarthaí cliste ar Ethereum. + + + + + +Chomh maith le [feidhmiú canónta WETH](https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2) a thuairiscítear ar an leathanach seo, tá leaganacha eile san fhiántas. D’fhéadfadh gur comharthaí saincheaptha iad seo a chruthaigh forbróirí feidhmchlár nó leaganacha a eisíodh ar bhlocshlabhraí eile, agus d’fhéadfadh go mbeidís ag feidhmiú ar bhealach difriúil nó go bhfuil airíonna slándála éagsúla acu. **Seiceáil an t-eolas comharthaí faoi dhó i gcónaí ionas go mbeidh a fhios agat den rith WETH a bhfuil tú ag idirghníomhú leis.** + + + + + +- [Ethereum Mainnet](https://etherscan.io/token/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) +- [Arbitrum](https://arbiscan.io/token/0x82af49447d8a07e3bd95bd0d56f35241523fbab1) +- [Optimism](https://optimistic.etherscan.io/token/0x4200000000000000000000000000000000000006) + + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Cad é WETH?](https://weth.tkn.eth.limo/) +- [Faisnéis chomhartha WETH ar Etherscan](https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2) +- [Fíorú Foirmiúil WETH](https://zellic.io/blog/formal-verification-weth) diff --git a/public/content/translations/ga/eips/index.md b/public/content/translations/ga/eips/index.md new file mode 100644 index 00000000000..ef0abaff9e7 --- /dev/null +++ b/public/content/translations/ga/eips/index.md @@ -0,0 +1,79 @@ +--- +title: Moltaí Feabhsúcháin Ethereum (EIPs) +description: An fhaisnéis bhunúsach a theastaíonn chun EIPanna a thuiscint +lang: ga +--- + +# Réamhrá ar Mholtaí Feabhsúcháin Ethereum (EIPs) {#introduction-to-ethereum-improvement-proposals} + +## Cad is EIPanna ann? {#what-are-eips} + +Is caighdeáin iad [Moltaí Feabhsúcháin Ethereum (EIPs)](https://eips.ethereum.org/) a shonraíonn gnéithe nó próisis nua ionchasacha do Ethereum. Tá sonraíochtaí teicniúla le haghaidh na n-athruithe atá beartaithe sna EIPs agus feidhmíonn siad mar “fhoinse na fírinne” don phobal. Déantar uasghrádú líonra agus caighdeáin iarratais do Ethereum a phlé agus a fhorbairt tríd an bpróiseas EIP. + +Tá an cumas ag duine ar bith laistigh de phobal Ethereum EIP a chruthú. Tá treoirlínte maidir le CENanna (EIP?) a scríobh san áireamh in [EIP-1](https://eips.ethereum.org/EIPS/eip-1). Ba cheart go soláthródh CEN go príomha sonraíocht theicniúil achomair le méid beag spreagtha. Tá údar an EIP freagrach as teacht ar chomhdhearcadh laistigh den phobal agus as tuairimí malartacha a dhoiciméadú. Mar gheall ar an mbacainn theicniúil ard maidir le CEN dea-chruthaithe a chur isteach, go stairiúil is forbróirí feidhmchláir nó prótacail formhór na n-údair EIP. + +## Cén fáth a bhfuil EIPanna tábhachtach? {#why-do-eips-matter} + +Tá ról lárnach ag EIPanna sa chaoi a dtarlaíonn athruithe agus déantar iad a dhoiciméadú ar Ethereum. Is bealach iad do dhaoine athruithe a mholadh, a phlé agus a ghlacadh. Tá [cineálacha éagsúla EIPanna](https://eips.ethereum.org/EIPS/eip-1#eip-types) ann, lena n-áirítear croí-EIPanna le haghaidh athruithe prótacail ar leibhéal íseal a théann i bhfeidhm ar chomhdhearcadh agus a cheangal ar uasghrádú líonra amhail [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), agus ERCanna le haghaidh caighdeáin feidhmchláir mar [EIP-20](https://eips.ethereum.org/EIPS/eip-20) agus [ EIP-721](https://eips.ethereum.org/EIPS/eip-721). + +Cuimsíonn gach uasghrádú líonra sraith EIPanna a chaithfidh gach [cliant Ethereum](/learn/#clients-and-nodes) ar an líonra a chur i bhfeidhm. Ciallaíonn sé seo gur gá d'fhorbróirí cliaint a chinntiú go bhfuil na EIPanna riachtanacha curtha i bhfeidhm acu go léir chun fanacht i gcomhthoil le cliaint eile ar an Ethereum Mainnet. + +Chomh maith le sonraíocht theicniúil a sholáthar le haghaidh athruithe, is iad EIPanna an t-aonad ar a dtarlaíonn rialachas in Ethereum: tá cead ag duine ar bith ceann a mholadh, agus ansin déanfaidh páirtithe leasmhara éagsúla sa phobal díospóireacht lena chinneadh ar cheart é a ghlacadh mar chaighdeán nó a áireamh in a uasghrádú líonra. Toisc nach gá do gach feidhmchlár EIPanna neamh-lárnacha a ghlacadh (mar shampla, is féidir dearbhán inbhraite a chruthú nach gcuireann EIP-20 i bhfeidhm), ach ní mór glacadh go forleathan le croí-CENanna (toisc go gcaithfidh gach nóid a uasghrádú chun fanacht mar chuid den líonra céanna), teastaíonn comhdhearcadh níos leithne laistigh den phobal maidir le croí-CENanna ná le EIPanna neamhlárnacha. + +## Stair na nEIPanna {#history-of-eips} + +Cruthaíodh stór GitHub [Tograí Feabhsúcháin Ethereum (EIPanna)](https://github.com/ethereum/EIPs) i mí Dheireadh Fómhair 2015. Tá an próiseas EIP bunaithe ar an bpróiseas [Moltaí Feabhsúcháin Bitcoin (BIPanna)](https://github.com/bitcoin/bips), atá bunaithe ar an [Próiseas Moltaí Feabhsúcháin Python (PEPanna)](https://www.python.org/dev/peps/). + +Tá sé de chúram ar eagarthóirí EIP athbhreithniú a dhéanamh ar EIPanna le haghaidh fóntacht theicniúil, saincheisteanna formáidithe, agus litriú, gramadach agus stíl chóid a cheartú. Ba iad Martin Becze, Vitalik Buterin, Gavin Wood, agus roinnt eile na heagarthóirí bunaidh EIP ó 2015 go dtí deireadh 2016. + +Seo thíos ainmneacha na n-eagarthóirí EIP reatha + +- Alex Beregszaszi (@axic) +- Gavin John (@Pandapip1) +- Greg Colvin (@gcolvin) +- Matt Garnett (@lightclient) +- Sam Wilson (@SamWilsn) + +Tá eagarthóirí EIP Emeritus + +- Casey Detrio (@cdetrio) +- Hudson Jameson (@Souptacular) +- Martin Becze (@wanderer) +- Micah Zoltu (@MicahZoltu) +- Nick Johnson (@arachnid) +- Nick Savers (@nicksavers) +- Vitalik Buterin (@vbuterin) + +Más mian leat a bheith i d’eagarthóir EIP, seiceáil le do thoil [EIP-5069](https://eips.ethereum.org/EIPS/eip-5069). + +Cinneann eagarthóirí an CEN cathain a bheidh togra réidh le bheith ina CEN, agus cuidíonn siad le húdair an CEN a gcuid tograí a chur chun cinn. Cuidíonn [Ethereum Cat Herders](https://www.ethereumcatherders.com/) cruinnithe a eagrú idir eagarthóirí an EIP agus an pobal (féach [EIPIP](https://github.com/ethereum-cat-herders/EIPIP)). + +Tá cur síos ar an bpróiseas caighdeánaithe iomlán in éineacht leis an gcairt i [EIP-1](https://eips.ethereum.org/EIPS/eip-1) + +## Foghlaim níos mó {#learn-more} + +Más spéis leat tuilleadh a léamh faoi EIPs, féach ar [suíomh Gréasáin EIPanna](https://eips.ethereum.org/) agus [EIP-1](https://eips.ethereum.org/EIPS/eip-1). Seo roinnt naisc úsáideacha: + +- [Liosta de gach Togra Feabhsúcháin Ethereum](https://eips.ethereum.org/all) +- [Cur síos ar gach cineál EIP](https://eips.ethereum.org/EIPS/eip-1#eip-types) +- [Cur síos ar gach stádas EIP](https://eips.ethereum.org/EIPS/eip-1#eip-process) + +### Tionscadail oideachais pobail {#community-projects} + +- [PEEPanEIP](https://www.youtube.com/playlist?list=PL4cwHXAawZxqu0PKKyMzG_3BJV_xZTi1F) — * Is sraith físeán oideachais é PEEPanEIP a phléann Togra Feabhsúcháin Ethereum ( EIPanna) agus príomhghnéithe na n-uasghráduithe atá le teacht.* +- [EIPs For Nerds](https://ethereum2077.substack.com/t/eip-research) — * Soláthraíonn EIPs For Nerds forbhreathnú cuimsitheach ar stíl ELI5 Moltaí éagsúla Feabhsúcháin Ethereum (EIPanna), lena n-áirítear EIPanna lárnacha agus EIPanna feidhmchláir/ciseal bonneagair (ERCanna), chun oideachas a chur ar léitheoirí agus chun comhdhearcadh a mhúnlú maidir le hathruithe molta ar an Ethereum prótacal.* +- [EIPs.wtf](https://www.eips.wtf/) — *EIPs.wtf soláthraíonn sé faisnéis bhreise maidir le Moltaí Feabhsúcháin Ethereum (EIPanna), lena n-áirítear a stádas, sonraí cur chun feidhme, iarratais ar tharraingt gaolmhar, agus aiseolas pobail.* +- [EIP.Fun](https://eipfun.substack.com/) — * Soláthraíonn EIP.Fun an nuacht is déanaí maidir le Moltaí Feabhsúcháin Ethereum (EIPanna), nuashonruithe ar chruinnithe EIP, agus tuilleadh.* +- [EIPs Insight](https://eipsinsight.com/) — *Is léiriú é EIPs Insight ar staid phróiseas na dTograí Feabhsúcháin Ethereum (EIPs) & staitisticí de réir na faisnéise a bhailítear ó acmhainní éagsúla.* + +## Páirt a ghlacadh {#participate} + +Is féidir le duine ar bith EIP a chruthú. Sula gcuirtear togra isteach, ní mór [EIP-1](https://eips.ethereum.org/EIPS/eip-1) a léamh ina leagtar amach próiseas an EIP agus conas EIP a scríobh, agus aiseolas a lorg ar [Ethereum Magicians](https://ethereum-magicians.org/), áit a bpléitear tograí leis an bpobal ar dtús sula gcuirtear dréacht isteach. + +## Tagairtí {#references} + + + +Ábhar leathanaigh arna sholáthar go páirteach ó [Phrótacal Ethereum, Rialachas Forbartha agus Comhordú Uasghrádaithe Líonra](https://hudsonjameson.com/2020-03-23-ethereum-protocol-development-governance-and-network-upgrade-coordination/) le Hudson Jameson + + diff --git a/public/content/translations/ga/energy-consumption/index.md b/public/content/translations/ga/energy-consumption/index.md new file mode 100644 index 00000000000..6070322840e --- /dev/null +++ b/public/content/translations/ga/energy-consumption/index.md @@ -0,0 +1,82 @@ +--- +title: Tomhaltas Fuinnimh Ethereum +description: An fhaisnéis bhunúsach a theastaíonn uait chun tomhaltas fuinnimh Ethereum a thuiscint. +lang: ga +--- + +# Caiteachas fuinnimh Ethereum {#proof-of-stake-energy} + +Is blocshlabhra glas é Ethereum. Úsáideann meicníocht chomhdhearcadh Ethereum [cruthúnas-geallchuir](/developers/docs/consensus-mechanisms/pos) ETH in ionad [ fuinneamh chun an líonra a dhaingniú](/developers/docs/consensus-mechanisms/pow). Tá tomhaltas fuinnimh Ethereum thart ar [~0.0026 TWh/yr](https://carbon-ratings.com/eth-report-2022) ar fud an ghréasáin dhomhanda ar fad. + +Tagann meastachán tomhaltas fuinnimh Ethereum ó [staidéar CCRI (Institiúid Rátálacha Carbóin Crypto)](https://carbon-ratings.com). Ghin siad meastacháin ón mbun aníos ar thomhaltas leictreachais agus lorg carbóin líonra Ethereum ([féach an tuarascáil](https://carbon-ratings.com/eth-report-2022)). Thomhais siad tomhaltas leictreachais nóid éagsúla le cumraíochtaí éagsúla crua-earraí agus bogearraí cliant. Freagraíonn an meastachán **2,601 MWh** (0.0026 TWh) d’ídiú bliantúil leictreachais an líonra d’astaíochtaí bliantúla carbóin **870 tona CO2e** fachtóirí déine carbóin a bhaineann go sonrach le réigiúin a chur i bhfeidhm. Athraíonn an luach seo de réir mar a théann nóid isteach agus amach as an líonra - is féidir leat súil a choinneáil trí mheánmheastachán rollach 7 lá a úsáid faoi [Innéacs Inbhuanaitheachta Líonra Blocshlabhra Cambridge](https://ccaf.io/cbnsi/ethereum) (tabhair faoi deara go n-úsáideann siad modh beagán difriúil dá meastacháin - sonraí ar fáil ar a láithreán). + +Chun tomhaltas fuinnimh Ethereum a chur i gcomhthéacs, is féidir linn meastacháin bhliantúla do roinnt táirgí agus tionscail eile a chur i gcomparáid. Cuidíonn sé seo linn tuiscint níos fearr a fháil ar cibé an bhfuil an meastachán d'Ethereum ard nó íseal. + + + +Léiríonn an chairt thuas an tomhaltas fuinnimh measta i TWh/bliain d'Ethereum, i gcomparáid le go leor táirgí agus tionscail eile. Tagann na meastacháin a chuirtear ar fáil ó fhaisnéis atá ar fáil go poiblí, a bhfuarthas rochtain uirthi i mí Iúil 2023, agus tá naisc chuig na foinsí atá ar fáil sa tábla thíos. + +| | Tomhaltas fuinnimh bliantúil (TWh) | Comparáid le PoS Ethereum | Foinse | +|:------------------------------------------- |:----------------------------------:|:-------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| Ionaid sonraí domhanda | 190 | 73,000x | [foinse](https://www.iea.org/commentaries/data-centres-and-energy-from-global-headlines-to-local-headaches) | +| Bitcoin | 149 | 53,000x | [foinse](https://ccaf.io/cbnsi/cbeci/comparisons) | +| Mianadóireacht óir | 131 | 50,000x | [foinse](https://ccaf.io/cbnsi/cbeci/comparisons) | +| Cluichíocht i Stáit Aontaithe Mheiriceá\* | 34 | 13,000x | [foinse](https://www.researchgate.net/publication/336909520_Toward_Greener_Gaming_Estimating_National_Energy_Use_and_Energy_Efficiency_Potential) | +| PoW Ethereum | 21 | 8,100x | [foinse](https://ccaf.io/cbnsi/ethereum/1) | +| Google | 19 | 7,300x | [foinse](https://www.gstatic.com/gumdrop/sustainability/google-2022-environmental-report.pdf) | +| Netflix | 0.457 | 176x | [foinse](https://assets.ctfassets.net/4cd45et68cgf/7B2bKCqkXDfHLadrjrNWD8/e44583e5b288bdf61e8bf3d7f8562884/2021_US_EN_Netflix_EnvironmentalSocialGovernanceReport-2021_Final.pdf) | +| PayPal | 0.26 | 100x | [foinse](https://s202.q4cdn.com/805890769/files/doc_downloads/global-impact/CDP_Climate_Change_PayPal-(1).pdf) | +| AirBnB | 0.02 | 8x | [foinse](https://s26.q4cdn.com/656283129/files/doc_downloads/governance_doc_updated/Airbnb-ESG-Factsheet-(Final).pdf) | +| **PoS Ethereum** | **0.0026** | **1x** | [foinse](https://carbon-ratings.com/eth-report-2022) | + +\* Áirítear gléasanna úsáideora deiridh ar nós ríomhairí pearsanta, ríomhairí glúine agus consóil cluichíochta. + +Is casta é meastacháin chruinne a fháil ar ídiú fuinnimh, go háirithe nuair a bhíonn slabhra soláthair casta nó sonraí imlonnaithe casta ag an méid atá á thomhas a mbíonn tionchar aige ar a éifeachtúlacht. Mar shampla, athraíonn meastacháin ar ídiú fuinnimh Netflix agus Google ag brath ar cibé an áirítear iontu ach an fuinneamh a úsáidtear chun a gcórais a chothabháil agus chun ábhar a sheachadadh d’úsáideoirí (_caiteachas díreach_) nó an áirítear leo an caiteachas a theastaíonn chun ábhar a tháirgeadh, oifigí corparáideacha a rith, fógraíocht a dhéanamh, srl (_caiteachas indíreach_). D’fhéadfadh go n-áireofaí i gcaiteachas indíreach freisin an fuinneamh a theastaíonn chun ábhar a chaitheamh ar ghléasanna úsáideoirí deiridh amhail teilifíseáin, ríomhairí agus fóin phóca. + +Ní comparáidí foirfe iad na meastacháin thuas. Athraíonn méid an chaiteachais indírigh a dtugtar cuntas air de réir foinse, agus is annamh a chuimsíonn sé fuinneamh ó fheistí úsáideoirí deiridh. Tá tuilleadh sonraí ar a bhfuil á thomhas i ngach bunfhoinse. + +Áiríonn an tábla agus an chairt thuas freisin comparáidí le Bitcoin agus Ethereum cruthúnas-oibre. Tá sé tábhachtach a thabhairt faoi deara nach bhfuil tomhaltas fuinnimh líonraí cruthúnais oibre statach agus go n-athraíonn siad ó lá go lá. Is féidir le meastacháin a bheith éagsúil ó fhoinsí éagsúla freisin. Is [cúis díospóireacht](https://www.coindesk.com/business/2020/05/19/the-last-word-on-bitcoins-energy-consumption/) é an topaic seo, ní hamháin faoin méid fuinnimh a chaitear, ach freisin faoi fhoinsí an fhuinnimh sin agus faoin eitic ghaolmhar. Ní gá go mapáltar ídiú fuinnimh go beacht de réir lorg comhshaoil ​​mar go bhféadfadh tionscadail éagsúla foinsí éagsúla fuinnimh a úsáid, lena n-áirítear céatadán níos lú nó níos mó d’fhuinneamh in-athnuaite. Mar shampla, tugann [Innéacs Tomhaltas Leictreachais Bitcoin Cambridge](https://ccaf.io/cbnsi/cbeci/comparisons) le fios go bhféadfadh an t-éileamh ar líonra Bitcoin a bheith faoi thiomáint go teoiriciúil ag bladhmadh gáis nó leictreachas a d'fhéadfaí a cailleadh le linn tarchuir agus dáilte. Ba é bealach Ethereum chun inbhuanaitheachta ná rogha eile glas a chur in ionad na coda sin den líonra a bhí cíocrach ó thaobh fuinnimh de. + +Is féidir leat bhrabhsáil ar mheastacháin ar ídiú fuinnimh agus astaíochtaí carbóin do go leor tionscal ar [Láithreán Innéacs Inbhuanaitheachta Líonra Blocshlabhra Cambridge](https://ccaf.io/cbnsi/ethereum). + +## Meastacháin in aghaidh an idirbhirt {#per-transaction-estimates} + +Measann go leor earraí caiteachas fuinnimh "in aghaidh an idirbhirt" le haghaidh blocshlabhra. Féadfaidh sé seo a bheith míthreorach toisc go bhfuil an fuinneamh a theastaíonn chun bloc a mholadh agus a bhailíochtú neamhspleách ar líon na n-idirbheart laistigh de. Tugann aonad caiteachais fuinnimh in aghaidh an idirbhirt le tuiscint go mbeadh caiteachas fuinnimh níos lú mar thoradh ar níos lú idirbheart agus vice-versa, rud nach fíor. Fosta, tá meastacháin in aghaidh an idirbhirt an-íogair maidir le conas a shainmhínítear tréchur idirbheart blocshlabhra, agus is féidir an sainmhíniú seo a athrú chun an luach a dhéanamh níos mó nó níos lú. + +Ar Ethereum, mar shampla, ní hé gur tréchur na mbunchiseal amháin é tréchur an idirbhirt - is ionann é freisin agus suim thréchur an idirbhirt dá rollaithe"[chiseal 2](/layer-2/) ". De ghnáth ní áirítear sraitheanna 2 sna ríomhanna, ach is dócha go laghdódh meastacháin in aghaidh an idirbhirt go suntasach mar gheall ar an bhfuinneamh breise a ídíonn seicheamhóirí (beag) agus líon na n-idirbheart a phróiseálann siad (mór). Sin fáth amháin a bhféadfadh comparáid a dhéanamh idir ídiú fuinnimh in aghaidh an idirbhirt thar ardáin a bheith míthreorach. + +## Fiach carbóin Ethereum {#carbon-debt} + +Tá caiteachas fuinnimh Ethereum an-íseal, ach ní mar sin a bhí riamh anall. Ar dtús bhain Ethereum úsáid as cruthúnas oibre a raibh costas comhshaoil ​​i bhfad níos mó aige ná an mheicníocht chruthúnais reatha. + +Ón tús, bhí sé beartaithe ag Ethereum meicníocht chomhthoil bunaithe ar chruthúnas a chur i bhfeidhm, ach thóg sé blianta de thaighde agus forbairt dhírithe leis sin á dhéanamh gan slándáil agus dílárú a íobairt. Mar sin, baineadh úsáid as meicníocht cruthúnais oibre chun an líonra a thosú. Éilíonn cruthúnas-oibre mianadóirí a gcuid crua-earraí ríomhaireachta a úsáid chun luach a ríomh, ag caitheamh fuinnimh sa phróiseas. + +![Comparáid a dhéanamh ar thomhaltas fuinnimh Ethereum réamh agus iar-Merge, trí úsáid a bhaint as Túr Eiffel (330 méadar ar airde) ar chlé le an tomhaltas fuinnimh ard roimh an gCumasc a léiriú, agus figiúr Lego beag 4 cm ar airde ar dheis chun an laghdú suntasach ar úsáid fuinnimh tar éis an Chumaisc a léiriú](energy_consumption_pre_post_merge.png) + +Measann CCRI gur laghdaigh An Cumasc (The Merge) tomhaltas leictreachais bliantúil Ethereum faoi bhreis is **99.988%**. Mar an gcéanna, laghdaíodh lorg carbóin Ethereum thart ar **99.992%** (ó 11,016,000 go 870 tona CO2e). Chun é seo a chur i bpeirspictíocht, tá an laghdú ar astuithe cosúil le dul ó airde an Túr Eiffel go figiúr bréagán plaisteach beag, mar a léirítear san fhigiúr thuas. Mar thoradh air sin, laghdaítear an costas comhshaoil ​​a bhaineann leis an líonra a dhaingniú go suntasach. Ag an am céanna, creidtear go bhfuil feabhas tagtha ar shlándáil an líonra. + +## Ciseal na bhfeidhmchlár glas {#green-applications} + +Cé go bhfuil tomhaltas fuinnimh Ethereum an-íseal, tá pobal [**airgeadais athghiniúna (ReFi)**](/refi/) substaintiúil, ag fás agus an-ghníomhach ag forbairt ar Ethereum freisin. Úsáideann feidhmchláir ReFi comhpháirteanna DeFi chun feidhmchláir airgeadais a chruthú a bhfuil seachtrachachtaí dearfacha acu a théann chun sochair an chomhshaoil. Tá ReFi mar chuid de ghluaiseacht ["solarpunk"](https://en.wikipedia.org/wiki/Solarpunk) atá ag teacht go mór le hEthereum agus a bhfuil sé mar aidhm aige dul chun cinn teicneolaíochta agus maoirseacht chomhshaoil ​​a chomhcheangal. Mar gheall ar nádúr díláraithe, neamhcheadaithe agus in-chomhdhéanta Ethereum is é an bunchiseal idéalach é do phobail ReFi agus solarpunk. + +Reáchtálann ardáin mhaoinithe earraí poiblí dúchasacha Web3 ar nós [Gitcoin](https://gitcoin.co) babhtaí aeráide chun tógáil atá comhfhiosach don chomhshaol a spreagadh ar chiseal feidhmchlár Ethereum. Trí fhorbairt na dtionscnamh seo (agus cinn eile, m.sh. [DeSci](/desci/)), tá Ethereum ag éirí mar theicneolaíocht atá dearfach ó thaobh an chomhshaoil ​​agus na sochaí de. + + + Má cheapann tú gur féidir an leathanach seo a dhéanamh níos cruinne, cuir ceist nó PR le do thoil. Is meastacháin iad na staitisticí ar an leathanach seo bunaithe ar shonraí atá ar fáil go poiblí - ní léiríonn siad ráiteas oifigiúil nó gealltanas ó fhoireann ethereum.org nó ó Fhondúireacht Ethereum. + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Innéacs Inbhuanaitheachta Líonra Bhlocshlabhra Cambridge](https://ccaf.io/cbnsi/ethereum) +- [Tuarascáil an Tí Bháin ar bhlocshlabhrí cruthúnas-ar-obair](https://www.whitehouse.gov/wp-content/uploads/2022/09/09-2022-Crypto-Assets-and-Climate-Report.pdf) +- [Astaíochtaí Ethereum: Meastachán Bun aníos](https://kylemcdonald.github.io/ethereum-emissions/) - _Kyle McDonald_ +- [Innéacs Tomhaltas Fuinnimh Ethereum](https://digiconomist.net/ethereum-energy-consumption/) - _Digiconomist_ +- [ETHMerge.com](https://ethmerge.com/) - _[@ InsideTheSim](https://twitter.com/InsideTheSim)_ +- [An Cumasc - Impleachtaí ar Thomhaltas Leictreachais agus Lorg Carbóin Líonra Ethereum](https://carbon-ratings.com/eth-report-2022) - _CCRI_ +- [Tomhaltas fuinnimh Ethereum](https://mirror.xyz/jmcook.eth/ODpCLtO4Kq7SCVFbU4He8o8kXs418ZZDTj0lpYlZkR8) + +## Ábhair ghaolmhara {#related-topics} + +- [Fís Ethereum](/roadmap/vision/) +- [An Slabhra Beacon](/roadmap/beacon-chain) +- [An Comhoiriúnú](/roadmap/merge/) diff --git a/public/content/translations/ga/governance/index.md b/public/content/translations/ga/governance/index.md new file mode 100644 index 00000000000..e5ae00ad54b --- /dev/null +++ b/public/content/translations/ga/governance/index.md @@ -0,0 +1,184 @@ +--- +title: Rialachas Ethereum +description: Réamheolas ar conas a dhéantar cinntí faoi Ethereum. +lang: ga +--- + +# Réamhrá le rialachas Ethereum {#introduction} + +_Mura bhfuil Ethereum ag duine ar bith, conas a dhéantar cinntí faoi athruithe san am atá caite agus sa todhchaí ar Ethereum? Tagraíonn rialachas Ethereum don phróiseas a cheadaíonn cinntí den sórt sin a dhéanamh._ + + + +## Cad is rialachas ann? {#what-is-governance} + +Is é atá i rialachas ná na córais atá i bhfeidhm a cheadaíonn cinntí a dhéanamh. I ngnáthstruchtúr eagraíochtúil, féadfaidh an fhoireann feidhmiúcháin nó an bord stiúrthóirí a bheith i gceannas ar an gcinnteoireacht. Nó b’fhéidir go vótálfadh scairshealbhóirí ar thograí chun athrú a achtú. I gcóras polaitiúil, féadfaidh feisirí tofa reachtaíocht a ghníomhú d'fhonn iarracht a dhéanamh mianta a dtoghthóirí a léiriú. + +## Rialachas díláraithe {#decentralized-governance} + +Ní le haon duine amháin é prótacal Ethereum nó níl sé á rialú ag duine ar bith, ach ní mór cinntí a dhéanamh fós maidir le hathruithe a chur i bhfeidhm chun fad saoil agus rathúnas an líonra a chinntiú. Mar gheall ar an easpa úinéireachta seo is réiteach neamh-chomhoiriúnach é rialachas traidisiúnta na heagraíochta. + +## Rialachas Ethereum {#ethereum-governance} + +Is é rialachas Ethereum an próiseas trína ndéantar athruithe prótacail. Tá sé tábhachtach a chur in iúl nach bhfuil baint ag an bpróiseas seo leis an gcaoi a n-úsáideann daoine agus feidhmchláir an prótacal - tá Ethereum gan chead. Anyone from anywhere in the world can participate in onchain activities. Níl aon rialacha leagtha síos maidir le cé hiad atá in ann agus cé hiad nach bhfuil in ann iarratas a dhéanamh nó idirbheart a sheoladh. Mar sin féin, tá próiseas ann chun athruithe a mholadh ar an gcroíphrótacal, a ritheann feidhmchláir dhíláraithe ar a bharr. Ós rud é go bhfuil an oiread sin daoine ag brath ar chobhsaíocht Ethereum, tá tairseach comhordaithe an-ard ann le haghaidh athruithe lárnacha, lena n-áirítear próisis shóisialta agus theicniúla, chun a chinntiú go bhfuil aon athruithe ar Ethereum slán agus go dtacaíonn an pobal go forleathan leo. + +### Onchain vs offchain governance {#onchain-vs-offchain} + +Blockchain technology allows for new governance capabilities, known as onchain governance. Onchain governance is when proposed protocol changes are decided by a stakeholder vote, usually by holders of a governance token, and voting happens on the blockchain. With some forms of onchain governance, the proposed protocol changes are already written in code and implemented automatically if the stakeholders approve the changes via signing a transaction. + +The opposite approach, offchain governance, is where any protocol change decisions happen through an informal process of social discussion, which, if approved, would be implemented in code. + +**Ethereum governance happens offchain** with a wide variety of stakeholders involved in the process. + +_Whilst at the protocol level Ethereum governance is offchain, many use cases built on top of Ethereum, such as DAOs, use onchain governance._ + + + Tuilleadh faoi DAO + + + + +## Cé atá i gceist? {#who-is-involved} + +Tá geallsealbhóirí éagsúla i [bpobal Ethereum](/community/), agus tá ról ag gach ceann acu sa phróiseas rialachais. Tosaímis leis na geallsealbhóirí is faide amuigh ón bprótacal agus zúmálamais isteach, áirítear: + +- ** Sealbhóirí éitir**: tá méid treallach ETH ag na daoine seo. [Tuilleadh faoi ETH](/eth/). +- **Úsáideoirí Feidhmchláir**: idirghníomhaíonn na daoine seo le feidhmchláir ar bhlocshlabhra Ethereum. +- **Forbróirí Feidhmchláir/Uirlisí**: scríobhann na daoine seo feidhmchláir a ritheann ar bhlocshlabhra Ethereum (m.sh. DeFi, NFTanna, etc.) nó a thógann uirlisí chun idirghníomhú le hEthereum (m.sh. sparán, tástáil seomraí, etc.). [Tuilleadh faoi dhaipeanna](/dapps/). +- **Oibreoirí Nóid**: ritheann na daoine seo nóid a fhorleagann bloic agus idirbhearta, rud a dhiúltaíonn d'aon idirbheart nó bloc neamhbhailí a aimsíonn siad. [Tuilleadh faoi nóid](/developers/docs/nodes-and-clients/). +- **Údair EIP**: molann na daoine seo athruithe ar phrótacal Ethereum, i bhfoirm Moltaí Feabhsúcháin Ethereum (EIPs). [Tuilleadh faoi EIPeanna](/eips/). +- **Bailitheoirí**: ritheann na daoine seo nóid ar féidir leo bloic nua a chur le blocshlabhra Ethereum. +- **Forbróirí Prótacail** (a.k.a. "Croífhorbróirí" ): coinníonn na daoine seo feidhmiúcháin éagsúla Ethereum (m.sh. go-ethereum, Nethermind, Besu, Erigon, Reth ag an gciseal forghníomhaithe nó Prysm, Lighthouse, Nimbus, Teku, Lodestar, Grandine ag an gciseal comhdhearcaidh). [Tuilleadh faoi chliaint Ethereum](/developers/docs/nodes-and-clients/). + +_Tabhair faoi deara: is féidir le haon duine a bheith ina bhall den uile ghrúpa seo (m.sh. d’fhéadfadh forbróir prótacail EIP a chur chun cinn, bailíochtóir slabhra rabhcháin a rith, agus feidhmchláir DeFi a úsáid). Ar mhaithe le soiléireacht choincheapúil, is fusa idirdhealú a dhéanamh eatarthu, áfach._ + + + +## Cad is EIP ann? {#what-is-an-eip} + +Próiseas tábhachtach amháin a úsáidtear i rialachas Ethereum is ea an togra **Tograí Feabhsúcháin Ethereum (EIPeana)**. Is caighdeáin iad EIPeanna a shonraíonn gnéithe nó próisis nua féideartha d'Ethereum. Is féidir le duine ar bith laistigh de phobal Ethereum EIP a chruthú. Más spéis leat EIP a scríobh nó páirt a ghlacadh in athbhreithniú piaraí agus/nó rialachas, féach: + + + Tuilleadh faoi EIPeanna + + + + +## An próiseas foirmiúil {#formal-process} + +Seo a leanas an próiseas foirmiúil chun athruithe ar phrótacal Ethereum a thabhairt isteach: + +1. ** Mol Croí EIP**: mar a thuairiscítear in [EIP- 1](https://eips.ethereum.org/EIPS/eip-1#core-eips), an chéad chéim chun athrú ar Ethereum a mholadh go foirmiúil ná é a mhionsonrú i gCroí-EIP. Feidhmeoidh sé seo mar shonraíocht oifigiúil d'EIP a chuirfidh Forbróirí Prótacail i bhfeidhm má ghlactar leis. + +2. **Cuir d'EIP i láthair Forbróirí Prótacail**: a luaithe a bheidh Croí-EIP agat a bhfuil ionchur pobail bailithe agat ina leith, ba cheart duit é a chur i láthair Forbróirí Prótacail. Is féidir leat é sin a dhéanamh ach é a mholadh le haghaidh díospóireachta ar [Glao AllCoreDevs](https://github.com/ethereum/execution-specs/tree/master/network-upgrades#getting-the-considered-for-inclusion-cfi-status). Is dócha go mbeidh roinnt plé déanta cheana féin go neamhshioncronach ar [fhóram Ethereum Magician](https://ethereum-magicians.org/) nó in [Ethereum R&D Discord](https://discord.gg/mncqtgVSVw). + +> Is iad torthaí féideartha na céime seo: + +> - Déanfar an EIP a mheas le haghaidh uasghrádú líonra amach anseo +> - Iarrfar athruithe teicniúla +> - Féadfar é a dhiúltú mura bhfuil sé ina thosaíocht nó mura bhfuil an feabhsúchán mór go leor i gcoibhneas leis an iarracht forbartha + +3. **Atriail i dtreo togra deiridh:** tar éis aiseolas a fháil ó na geallsealbhóirí ábhartha go léir, is dócha go mbeidh ort athruithe a dhéanamh ar do thogra tosaigh chun a shlándáil a fheabhsú nó chun freastal níos fearr a dhéanamh ar riachtanais na n-úsáideoirí éagsúla. Nuair a bheidh na hathruithe go léir a gcreideann tú a bhfuil gá leo ionchorpraithe ag do CEN, beidh ort é a chur i láthair arís d’fhorbróirí Prótacail. Bogfaidh tú ansin go dtí an chéad chéim eile den phróiseas seo, nó tiocfaidh ábhair imní nua chun cinn, a éilíonn babhta eile atriailte ar do thogra. + +4. **EIP San áireamh in Uasghrádú Líonra**: má ghlactar leis go bhfuil an EIP ceadaithe, tástáilte agus curtha i bhfeidhm, beidh sé sceidealta mar chuid d'uasghrádú líonra. I bhfianaise na gcostas ard comhordaithe a bhaineann le huasghráduithe líonra (ní mór do gach duine uasghrádú a dhéanamh ag an am céanna), is gnách go ndéantar EIPeanna a chuachadh le chéile in uasghráduithe. + +5. **Uasghrádú Líonra Gníomhachtaithe**: tar éis an t-uasghrádú líonra a chur i ngníomh, beidh an EIP beo ar líonra Ethereum. _Tabhair faoi deara: is iondúil go gcuirtear uasghráduithe líonra i ngníomh ar testnets sula ngníomhachtaítear iad ar Ethereum Mainnet._ + +Cé go bhfuil sé an-simplithe, tugann an sreabhadh seo forbhreathnú ar na céimeanna suntasacha maidir le hathrú prótacail a chur i ngníomh ar Ethereum. Anois, amharcaimis ar na fachtóirí neamhfhoirmiúla atá i gceist le linn an phróisis seo. + +## An próiseas neamhfhoirmiúil {#informal-process} + +### Réamhobair a thuiscint {#prior-work} + +Ba cheart go gcuirfeadh Seaimpíní an EIP iad féin ar an eolas maidir le réamhobair agus moltaí sula gcruthaítear EIP ar féidir breithniú dáiríre a dhéanamh air lena imscaradh ar Ethereum Mainnet. Ar an mbealach seo, tá súil againn go dtabharfaidh an EIP rud éigin nua nár diúltaíodh cheana. Is iad na trí phríomháit le taighde a dhéanamh air seo ná [stór EIP](https://github.com/ethereum/EIPs), [Ethereum Magicians](https://ethereum-magicians.org/) agus [ethresear.ch](https://ethresear.ch/). + +### Grúpaí oibre {#working-groups} + +Ní dócha go gcuirfear dréacht tosaigh EIP i bhfeidhm ar Ethereum Mainnet gan athruithe nó claochluithe. Go ginearálta, oibreoidh Seaimpíní an EIP le fo-thacar d’Fhorbróirí Prótacail chun a dtogra a shonrú, a chur chun feidhme, a thástáil, a atriail agus a thabhairt chun críche. Go stairiúil, bhí roinnt míonna (agus roinnt blianta ar uairibh!) oibre de dhíth ar na grúpaí oibre seo. Ar an gcaoi chéanna, ba cheart go mbeadh baint ag na Forbróirí Feidhmchláir/Uirlise ábhartha le Seaimpíní EIP le haghaidh athruithe den sórt sin go luath ina n-iarrachtaí chun aiseolas úsáideoirí deiridh a bhailiú agus aon rioscaí imlonnaithe a mhaolú. + +### Comhdhearcadh pobail {#community-consensus} + +Cé gur feabhsuithe teicniúla simplí iad roinnt EIPeanna gan mórán miondifríochtaí, tá cuid acu níos casta agus tagann comhbhabhtáil leo a rachaidh i bhfeidhm ar pháirtithe leasmhara éagsúla ar bhealaí éagsúla. Ciallaíonn sé seo go bhfuil roinnt EIPeanna níos conspóidí laistigh den phobal ná a chéile. + +Níl aon lámhleabhar soiléir ann maidir le conas déileáil le moltaí conspóideacha. Tá sé seo mar thoradh ar dhearadh díláraithe Ethereum nach féidir le haon ghrúpa geallsealbhóirí amháin dul i ngleic leis an gceann eile trí fhórsa brúidiúil: is féidir le forbróirí prótacail a roghnú gan athruithe cód a chur i bhfeidhm; is féidir le hoibreoirí nód a roghnú gan cliant is déanaí Ethereum a rith; is féidir le foirne feidhmchláir agus le húsáideoirí roghnú gan idirbhearta a dhéanamh ar an slabhra. Ós rud é nach bhfuil aon bhealach ag Forbróirí Prótacail chun iachall a chur ar dhaoine uasghráduithe líonra a ghlacadh, seachnóidh siad go ginearálta cur chun feidhme EIPeanna nuair is mó a chonspóid ná na tairbhí don phobal i gcoitinne. + +Táthar ag súil go lorgóidh Seaimpíní an EIP aiseolas ó na geallsealbhóirí ábhartha go léir. Má tharlaíonn duit bheith i do mholtóir ar EIP conspóideach, ba chóir duit iarracht a dhéanamh aghaidh a thabhairt ar agóidí chun comhdhearcadh a chruthú maidir le d'EIP. I bhfianaise mhéid agus éagsúlacht phobal Ethereum, níl aon mhéadrach amháin (m.sh. vóta boinn) is féidir a úsáid chun comhdhearcadh an phobail a mheas, agus táthar ag súil go ndéanfaidh Seaimpíní an EIP oiriúnú d’imthosca a dtogra. + +Lasamuigh de shlándáil líonra Ethereum, tá béim mhór curtha go stairiúil ag Forbróirí Prótacail ar an luach a bhaineann le Forbróirí Feidhmchláir/Uirlisí agus Úsáideoirí Feidhmchláir, ós rud é gurb iad an úsáid agus an fhorbairt a dhéanann siadsan ar Ethereum a mheallan geallsealbhóirí eile chuig an éiceachóras. Ina theannta sin, ní mór EIPeanna a chur i bhfeidhm ar fud gach feidhmiú de chuid na gcliant, arna mbainistiú ag foirne ar leith. Ciallaíonn cuid den phróiseas seo go hiondúil go gcuirtear ina luí ar an iomad foirne Forbróirí Prótacail go bhfuil athrú ar leith luachmhar agus go gcabhraíonn sé le húsáideoirí deiridh nó go réitíonn sé saincheist slándála. + + + +## Déileáil le heasaontais {#disagreements} + +Má bhíonn go leor geallsealbhóirí ann a bhfuil spreagthaí agus creidimh éagsúla acu, ní bhíonn easaontais neamhchoitianta. + +Go ginearálta, déantar easaontais a láimhseáil le plé fada i bhfóraim phoiblí chun fréamh na faidhbe a thuiscint agus ligean d’aon duine focal a rá. Go hiondúil, géilleann grúpa amháin, nó baintear meán sona amach. Má mhothaíonn grúpa amháin láidir go leor, d’fhéadfadh scoilt slabhra a bheith mar thoradh ar athrú ar leith a bhrú ar aghaidh. Is éard atá i gceist le scoilt slabhra ná nuair a dhéanann roinnt geallsealbhóirí agóid i gcoinne athrú prótacail a chur i bhfeidhm, rud a fhágann go n-oibríonn leaganacha éagsúla neamh-chomhoiriúnacha den phrótacal, as a dtagann dhá bhlocshlabhra ar leith. + +### An forc DAO {#dao-fork} + +Is éard atá i gceist le forcanna nuair is gá uasghrádú nó athruithe móra teicniúla a dhéanamh ar an líonra agus "rialacha" an phrótacail a athrú. Ní mór do [chliaint Ethereum](/developers/docs/nodes-and-clients/) a mbogearraí a nuashonrú chun na rialacha foirc nua a chur i bhfeidhm. + +Bhí forc an DAO mar fhreagra ar [ionsaí DAO 2016](https://www.coindesk.com/understanding-dao-hack-journalists) nuair a draenáladh [DAO](/glossary/#dao) de níos mó ná 3.6 milliún ETH i gcamscéim. Bhog an forc na cistí ón gconradh lochtach go conradh nua a ligeann do dhuine ar bith a chaill cistí sa haic iad a aisghabháil. + +Vótáil pobal Ethereum ar son na gníomhaíochta seo. Bhí aon sealbhóir ETH in ann vótáil trí idirbheart ar [ardán vótála](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). Bhain an cinneadh chun forcála os cionn 85% de na vótaí. + +Tá sé tábhachtach a thabhairt faoi deara, cé go ndearna an prótacal forc chun an haic a aisiompú, go bhfuil an meáchan a d’éirigh leis an vóta agus cinneadh á dhéanamh forc in aghaidh roinnt cúiseanna: + +- Bhí an líon daoine a vótáil thar a bheith íseal +- Ní raibh a fhios ag formhór na ndaoine go raibh an vóta ag tarlú +- Níor léirigh an vóta ach sealbhóirí ETH, ní aon cheann de na rannpháirtithe eile sa chóras + +Dhiúltaigh fo-thacar den phobal forc a dhéanamh, go mór mhór toisc gur bhraith siad nach raibh eachtra DAO ina locht sa phrótacal. Lean siad ar aghaidh chun [Ethereum Classic](https://ethereumclassic.org/) a chruthú. + +Sa lá atá inniu ann, tá beartas neamh-idirghabhála glactha ag pobal Ethereum i gcásanna ina bhfuil fabhtanna conartha nó cistí caillte chun neodracht inchreidte an chórais a choinneáil. + +Féach níos mó ar haic DAO: + + + + + +### Úsáideacht na forcála {#forking-utility} + +Is sampla iontach é forc Ethereum/Ethereum Classic d'fhorc sláintiúil. Bhí dhá ghrúpa againn a d’easaontaigh go láidir lena chéile maidir le croíluachanna áirithe chun gur bhraith siad gurbh fhiú na rioscaí a bhain lena gcuid sainchúrsaí gníomhaíochta a leanúint. + +In ainneoin difríochtaí suntasacha polaitiúla, fealsúnachta nó eacnamaíocha, tá ról mór ag an gcumas chun forcála i rathúlacht rialachas Ethereum. Gan an cumas chun forc a dhéanamh, an rogha eile a bhí ann ná troideanna inmheánacha leanúnacha, rannpháirtíocht dhrogallach d'éigean dóibh siúd a bhunaigh Ethereum Classic sa deireadh agus fís ag éirí níos difreálaí ar cad is rathúlacht ann d'Ethereum. + + + +## Rialachas Shlabhra Beacon {#beacon-chain} + +Is minic a thrádáiltear luas agus éifeachtúlacht i bpróiseas rialachais Ethereum ar mhaithe le hoscailteacht agus cuimsitheacht. D'fhonn forbairt Beacon Chain a luathú, seoladh é ar leithligh ó líonra cruthúnais Ethereum agus lean sé a chleachtais rialachais féin. + +Cé go raibh an tsonraíocht agus na feidhmiúcháin forbartha foinse oscailte i gcónaí, níor úsáideadh na próisis fhoirmiúla a úsáideadh chun nuashonruithe a bhfuil cur síos orthu thuas a mholadh. Cheadaigh sé seo athruithe a shonrú agus a chomhaontú níos tapúla ag taighdeoirí agus feidhmitheoirí. + +Nuair a chumaisc an Beacon Chain le ciseal forghníomhaithe Ethereum an 15ú Meán Fómhair, 2022, cuireadh an Cumasc i gcrích mar chuid [d'uasghrádú líonra Pháras](/history/#paris). Athraíodh an togra [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) ó 'Ghlaoch Deireanach' go 'Deiridh', rud a chuir an t-aistriú go cruthúnas-geallchuir. + + + Tuilleadh faoin gCumasc + + + + +## Conas is féidir liom a bheith páirteach? {#get-involved} + +- [Mol EIP](/eips/#participate) +- [Tograí reatha a phlé](https://ethereum-magicians.org/) +- [Glac páirt i bplé T&F](https://ethresear.ch/) +- [Glac páirt in discord T&F Ethereum](https://discord.gg/mncqtgVSVw) +- [Rith nód](/developers/docs/nodes-and-clients/run-a-node/) +- [Cur le forbairt cliant](/developers/docs/nodes-and-clients/#execution-clients) +- [Clár Printíseachta Croífhorbróraí](https://blog.ethereum.org/2021/09/06/core-dev-apprenticeship-second-cohort/) + +## Tuilleadh léitheoireachta {#further-reading} + +Níl an rialachas in Ethereum sainmhínithe go docht. Tá dearcthaí éagsúla ag rannpháirtithe pobail éagsúla air. Seo cúpla ceann acu: + +- [Nótaí ar Rialachas Blocshlabhra](https://vitalik.eth.limo/general/2017/12/17/voting.html) - _Vitalik Buterin_ +- [Conas a oibríonn Rialachas Ethereum?](https://cryptotesters.com/blog/ethereum-governance) - _Cryptotesters_ +- [Conas a oibríonn rialachas Ethereum](https://medium.com/coinmonks/how-ethereum-governance-works-71856426b63a) - _Micah Zoltu_ +- [Cad is croífhorbróir Ethereum ann?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) - _Hudson Jameson_ +- [Rialachas, Cuid 2: Tá an plútacratachas fós go dona](https://vitalik.eth.limo/general/2018/03/28/plutocracy.html) - _Vitalik Buterin_ +- [Ag bogadh níos faide ná rialachas vótála boinn](https://vitalik.eth.limo/general/2021/08/16/voting3.html) - _Vitalik Buterin _ +- [Understanding Blockchain Governance](https://research.2077.xyz/understanding-blockchain-governance) - _2077 Research_ +- [The Ethereum Government](https://www.galaxy.com/insights/research/ethereum-governance/) - _Christine Kim_ diff --git a/public/content/translations/ga/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/ga/guides/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..69b569835a9 --- /dev/null +++ b/public/content/translations/ga/guides/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: Conas cuntas Ethereum a "chruthú" +description: Treoir céim ar chéim ar chruthú cuntas Ethereum ag baint úsáide as sparán. +lang: ga +--- + +# Conas cuntas Ethereum a chruthú + +**Is féidir le duine ar bith cuntas Ethereum a chruthú saor in aisce.** Níl le déanamh agat ach aip crypto-sparán a shuiteáil. Cruthaíonn agus bainistíonn Sparán do chuntas Ethereum. Is féidir leo idirbhearta a sheoladh, seiceáil ar do chuid iarmhéideanna agus tú a nascadh le haipeanna eile atá tógtha ar Ethereum. + +Le sparán is féidir leat freisin logáil isteach ar aon mhalartán comharthaí, cluichí, aonaigh[NFT](/glossary/#nft) láithreach bonn. Níl gá le clárú aonair, roinntear cuntas amháin do gach aip a tógadh ar Ethereum. + +## Céim 1: Roghnaigh sparán + +Is aip é sparán a chuidíonn leat do chuntas Ethereum a bhainistiú. Tá mórán sparán éagsúla le roghnú astu: síntí soghluaiste, deisce, nó fiú brabhsálaí. + + + + Liosta sparán + + +Más duine nua thú, is féidir leat an scagaire “Nua le criptiú” a roghnú ar an leathanach “aimsigh sparán” chun sparán a shainaithint ar cheart go n-áireofaí iontu na gnéithe riachtanacha go léir atá oiriúnach do thosaitheoirí. + +![Scag an rogha ar an leathanach 'faigh sparán'](./wallet-box.png) + +Tá scagairí próifíle eile ann freisin chun freastal ar do chuid riachtanas. Is samplaí iad seo de sparán a úsáidtear go coitianta - ba cheart duit do thaighde féin a dhéanamh sula gcuireann tú muinín in aon bhogearraí. + +## Céim 2: Íoslódáil agus suiteáil do aip sparáin + +Nuair a bheidh cinneadh déanta agat ar sparán ar leith, tabhair cuairt ar a láithreán gréasáin oifigiúil nó siopa aipeanna, a íoslódáil agus a shuiteáil. Ba chóir go mbeadh gach ceann acu saor. + +## Céim 3: Oscail an aip agus déan do chuntas Ethereum a chruthú + +An chéad uair a osclaíonn tú do sparán nua b’fhéidir go n-iarrfar ort rogha a dhéanamh idir cuntas nua a chruthú nó cuntas atá ann cheana a iompórtáil. Cliceáil ar chruthú cuntais nua. **Seo an chéim lena ngineann na bogearraí sparán do chuntas Ethereum.** + +## Céim 4: Stóráil do fhrása athshlánaithe + +Iarrfaidh roinnt aipeanna ort "frása athshlánaithe" rúnda a shábháil (ar a dtugtar "frása síl" nó "neamónach" uaireanta). Tá sé thar a bheith tábhachtach an frása seo a choinneáil slán! Úsáidtear é seo chun do chuntas Ethereum a ghiniúint agus is féidir é a úsáid chun idirbhearta a chur isteach. + +**Is féidir le duine ar bith a bhfuil an frása ar eolas aige smacht a fháil ar na cistí go léir.** Ná roinn é seo le haon duine choíche. Ba chóir go mbeadh idir 12 agus 24 focal a gineadh go randamach san abairt seo (tá ord na bhfocal tábhachtach). + +
              + +
              Sparán suiteáilte?
              Foghlaim conas é a úsáid.
              + + Conas sparán a úsáid + +
              +
              + +Spéis agat i dtreoracha eile? Breathnaigh ar ár: [dtreoracha céim ar chéim](/guides/) + +## Ceisteanna coitianta + +### An bhfuil mo sparán agus mo chuntas Ethereum mar an gcéanna? + +Ní féidir. Is uirlis bhainistíochta é an sparán a chuidíonn leat cuntais a bhainistiú. D'fhéadfadh go mbeadh rochtain ag sparán aonair ar roinnt cuntas, agus is féidir rochtain a fháil ar chuntas amháin trí il-sparáin. Úsáidtear an frása athshlánaithe chun cuntais a chruthú agus tugann sé cead d’aip sparán chun sócmhainní a bhainistiú. + +### An féidir liom bitcoin a sheoladh chuig seoladh Ethereum, nó éitear chuig seoladh Bitcoin? + +Ní féidir leat. Tá Bitcoin agus éitear ar dhá líonra ar leith (i.e. blocshlabhraí éagsúla), agus a bhformáidí leabharchoimeád agus tá a seoltaí féin ag gach ceann acu. Rinneadh iarrachtaí éagsúla an dá líonra difriúla a dhúnadh, agus is é an ceann is gníomhaí faoi láthair ná [Wrapped Bitcoin nó WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Ní moladh é seo, toisc gur réiteach coimeádta é WBTC (a chiallaíonn go rialaíonn grúpa amháin daoine feidhmeanna ríthábhachtacha áirithe) agus cuirtear ar fáil anseo é chun críocha faisnéise amháin. + +### Má tá seoladh ETH agam, an liomsa an seoladh céanna ar bhlocshlabhraí eile? + +Is féidir leat an [seoladh](/glossary/#address) céanna a úsáid ar gach blocshlabhra a úsáideann bogearraí bunúsacha atá cosúil le Ethereum (ar a dtugtar 'EVM-compatible'). Taispeánfaidh an [liosta](https://chainlist.org/) duit na blocshlabhraí is féidir leat a úsáid leis an seoladh céanna. Cuireann roinnt blocshlabhraí, cosúil le Bitcoin, sraith rialacha líonra ar leithligh i bhfeidhm agus beidh seoladh difriúil uait le formáid dhifriúil. Má tá sparán conartha cliste agat ba cheart duit a láithreán gréasáin táirge a sheiceáil le haghaidh tuilleadh faisnéise maidir leis na blocshlabhraí a dtugtar tacaíocht dóibh mar go hiondúil go bhfuil raon feidhme teoranta ach níos sláine acu siúd. + +### An bhfuil mo sparán féin níos sábháilte ná mo chistí a choinneáil ar mhalartú? + +Má tá do sparán féin agat, glacann tú freagracht as slándáil do shócmhainní. Ar an drochuair tá go leor samplaí de mhalartuithe teipthe a chaill airgead a gcustaiméirí. Má shealbhaíonn tú sparán (le frása athshlánaithe) cuirtear deireadh leis an riosca a bhaineann le muinín a bheith agat as aonán éigin as do chuid sócmhainní a shealbhú. Mar sin féin, caithfidh tú féin é a dhaingniú agus scamálacha fioscaireachta a sheachaint, idirbhearta a cheadú trí thimpiste nó frása athshlánaithe a nochtadh, idirghníomhú le láithreáin ghréasáin falsa agus rioscaí féinchoinneála eile. Tá na rioscaí agus na tairbhí difriúil. + +### Má chaillim mo ghuthán/sparán crua-earraí, an gá dom an aip sparán céanna a úsáid arís chun na cistí caillte a aisghabháil? + +Níl, is féidir leat sparán difriúil a úsáid. Chomh fada agus a bhfuil an frása síl agat is féidir leat é a chur isteach i bhformhór na sparán agus tabharfaidh siad do chuntas ar ais. Bí cúramach más gá duit é seo a dhéanamh riamh: is fearr a chinntiú nach bhfuil tú ceangailte leis an idirlíon nuair a bhíonn do sparán á athshlánú agat ionas nach sceitear ​​​​d'fhrása síl de thaisme. Is minic go bhfuil sé dodhéanta cistí caillte a ghnóthú gan an frása athshlánaithe. diff --git a/public/content/translations/ga/guides/how-to-id-scam-tokens/index.md b/public/content/translations/ga/guides/how-to-id-scam-tokens/index.md new file mode 100644 index 00000000000..bb361ea0535 --- /dev/null +++ b/public/content/translations/ga/guides/how-to-id-scam-tokens/index.md @@ -0,0 +1,97 @@ +--- +title: Conas comharthaí caimiléireachta a aithint +description: Tuiscint a fháil ar dearbháin chaimiléireachta, conas a chuireann siad i gcéill go bhfuil siad fíor, agus conas iad a sheachaint. +lang: ga +--- + +# Conas comharthaí caimiléireachta a aithint {#identify-scam-tokens} + +Ceann de na húsáidí is coitianta le haghaidh Ethereum ná go gcruthaíonn grúpa dearbhán intrádála, mar a n-airgeadra féin, d'fhéadfá a rá. De ghnáth leanann na dearbháin seo cur chuige aitheanta, [ERC-20](/developers/docs/standards/tokens/erc-20/). Mar sin féin, áit ar bith ina bhfuil cásanna úsáide dlisteanacha a thugann luach, tá coirpigh ann freisin a dhéanann iarracht an luach sin a ghoid dóibh féin. + +Tá dhá bhealach ann inar dócha go gcuirfidh siad tú amú: + +- **Ag díol comhartha camscéimeanna**, b'fhéidir gur cosúil leis an chomhartha dlisteanach atá tú ag iarraidh a cheannach, ach go n-eisíonn na scamadóirí iad agus nach fiú aon rud é. +- **Ag cur feall ort droch-idirbhearta a shíniú**, de ghnáth trí tú a threorú chuig a gcomhéadan úsáideora féin. B’fhéidir go ndéanfaidh siad iarracht tú a mhealladh chun liúntas as do chuid dearbháin ERC-20 a thabhairt dá gconarthaí, ag nochtadh faisnéise íogair a thugann rochtain dóibh ar do shócmhainní, etc. D'fhéadfadh na comhéadain úsáideora seo a bheith gar-foirfe clón de láithreáin macánta, ach le cleasanna i bhfolach. + +Chun a léiriú cad is dearbháin chaimiléireachta ann, agus conas iad a aithint, féachfaimid ar shampla amháin: [`wARB`](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82). Déanann an comhartha seo iarracht cuma dhlisteanach [`ARB`](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1). + + + +Is eagraíocht é Arbitrum a fhorbraíonn agus a bhainistíonn rollaí dóchasacha. Ar dtús, eagraíodh Arbitrum mar chuideachta bhrabús, ach ansin ghlac céimeanna chun dílárú. Mar chuid den phróiseas sin, d'eisigh siad comhartha rialachais intrádála. + + + + + +Tá coinbhinsiún ann in Ethereum, nuair nach bhfuil sócmhainn comhlíontach ERC-20 cruthaímid leagan "fillte" di leis an ainm ag tosú le "w". Mar sin, mar shampla, tá wBTC againn le haghaidh bitcoin agus wETH le haghaidh éitear . + +Ní dhéanann sé ciall leagan fillte de chomhartha ERC-20 a chruthú atá ar Ethereum cheana féin, ach bíonn scamóirí ag brath ar chuma dlisteanachta seachas an réaltacht bhunúsach. + + + +## Conas a oibríonn comharthaí scam? {#how-do-scam-tokens-work} + +Is é dílárú bun agus barr Ethereum. Ciallaíonn sé seo nach bhfuil aon údarás lárnach ann a fhéadfaidh do shócmhainní a choigistiú nó cosc ​​a chur ort conradh cliste a imscaradh. Ach ciallaíonn sé freisin gur féidir le scamóirí aon chonradh cliste is mian leo a imscaradh. + + + +Is iad Conarthaí cliste na cláir a ritheann ar bharr blockchain Ethereum. Cuirtear gach dearbhán ERC-20, mar shampla, i bhfeidhm mar chonradh cliste. + + + +Go sonrach, d'imscar Arbitrum conradh a úsáideann an tsiombail `ARB`. Ach ní chuireann sé sin bac ar dhaoine eile conradh a imscaradh a úsáideann an tsiombail chéanna, nó ceann cosúil leis. Is é an té a scríobhann an conradh a shocróidh cad a dhéanfaidh an conradh. + +## Chun cuma dhlisteanach a chur in iúl {#appearing-legitimate} + +Tá roinnt cleasanna ann a dhéanann cruthaitheoirí comharthaí scam chun a bheith dlisteanach. + +- **Ainm dlisteanach agus siombail**. Mar a luadh cheana, is féidir an tsiombail agus an t-ainm céanna a bheith ag conarthaí ERC-20 agus atá ag conarthaí ERC-20 eile. Ní féidir leat brath ar na réimsí sin le haghaidh slándála. + +- **Úinéirí dlisteanacha**. Is minic a scaoiltear iarmhéideanna dhearbháin chaimiléireachta chuig seoltaí ar féidir a bheith ag súil leo a bheith ina sealbhóirí dlisteanacha den fhíordhearbhán. + + Mar shampla, breathnaímis ar `wARB` arís. [Táthart ar 16% de na dearbháin](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) i seilbh ag seoladh a bhfuil an clib phoiblí air[Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) Seo _ní_ seoladh bréige é seo, i ndáiríre is é an seoladh a [chonradh an fíor-deployed26 ar Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). + + Toisc gur cuid de stóráil chonartha ERC-20 iarmhéid seoladh ERC-20, is féidir a shonrú sa chonradh gur cuma cad is mian le forbróir an chonartha. Is féidir freisin le conradh aistrithe a thoirmeasc ionas nach mbeidh na húsáideoirí dlisteanacha in ann fáil réidh leis na dearbháin chaimiléireachta sin. + +- **Aistrithe dlisteanacha**. _Ní íocfadh úinéirí dlisteanacha dearbhán caimiléireachta a aistriú chuig daoine eile, mar sin má tá aistrithe ann caithfidh sé a bheith dlisteanach, ceart?_ ** Mícheart**. Táirgeann an conradh ERC-20 imeachtaí `Aistriú`. Is féidir le scamóir an conradh a scríobh go héasca ar bhealach a dhéanfaidh na gníomhartha sin a tháirgeadh. + +## Láithreáin ghréasáin calaoiseacha {#websites} + +Is féidir le scamóirí láithreáin ghréasáin an-láidir a chruthú freisin, uaireanta clónna beacht de shuíomhanna barántúla le comhéadain úsáideora comhionanna, ach le cleasa caolchúiseacha. I measc na samplaí a d’fhéadfadh a bheith ann tá naisc sheachtracha a bhfuil cuma dhlisteanach orthu an t-úsáideoir a sheoladh chuig suíomh calaoiseacha sheachtrach, nó treoracha míchearta a thugann treoir don úsáideoir a gcuid eochracha a nochtadh nó cistí a sheoladh chuig seoladh ionsaitheora. + +Is é an cleachtas is fearr chun é seo a sheachaint ná URL na suíomhanna a dtugann tú cuairt orthu a sheiceáil go cúramach, agus seoltaí do shuíomhanna barántúla aitheanta a shábháil i do leabharmharcanna. Ansin, is féidir leat rochtain a fháil ar an bhfíorshuíomh trí do leabharmharcanna gan earráidí litrithe a dhéanamh de thaisme nó a bheith ag brath ar naisc sheachtracha. + +## Conas is féidir leat tú féin a chosaint? {#protect-yourself} + +1. **Seiceáil seoladh an chonartha**. Tagann comharthaí dlisteanacha ó eagraíochtaí dlisteanacha, agus is féidir leat na seoltaí conartha a fheiceáil ar shuíomh Gréasáin na heagraíochta. Mar shampla, [le haghaidh `ARB` is féidir leat na seoltaí dlisteanacha a fheiceáil anseo](https://docs.arbitrum.foundation/deployment-addresses#token). + +2. **Tá leachtacht ag fíorchomharthaí**. Rogha eile is ea féachaint ar mhéid na linne leachtachta ar [Uniswap](https://uniswap.org/), ceann de na prótacail babhtála dearbháin is coitianta. Feidhmíonn an prótacal seo ag baint úsáide as linnte leachtachta, ina dtaisceann infheisteoirí a gcuid comharthaí le súil le haisíoc ó tháillí trádála. + +De ghnáth bíonn linnte leachtachta bídeacha ag dearbháin chaimiléireachta, más ann dóibh, toisc nach bhfuil na scamóirí ag iarraidh sócmhainní réadacha a chur i mbaol. Mar shampla, tá tuairim is milliún dollar i gcomhthiomsú Uniswap `ARB`/`ETH` ([féach anseo le haghaidh an luach suas chun dáta](https://info.uniswap.org/#/pools/0x755e5a186f0469583bd2e80d1216e02ab88ec6ca)) agus níl aon dul chun cinn a cheannach nó a dhíol méid beag chun an praghas a athrú: + +![Comhartha dlisteanach a cheannach](./uniswap-real.png) + +Ach nuair a dhéanann tú iarracht an chomhartha camscéim `wARB` a cheannach, d’athródh fiú ceannach beag bídeach níos mó ná 90% ar an bpraghas: + +![Comhartha scam a cheannach](./uniswap-scam.png) + +Seo píosa eile fianaise a thaispeánann dúinn nach dócha gur comhartha dlisteanach é `wARB`. + +3. **Féach in Etherscan**. Tá go leor dearbháin chaimiléireachta aitheanta agus tuairiscithe ag an bpobal cheana féin. Tá comharthaí dá leithéid [marcáilte in Etherscan](https://info.etherscan.com/etherscan-token-reputation/). Cé nach foinse údaráis fírinne é Etherscan (mar gheall ar nádúr na líonraí díchentralaithe nach féidir foinse údaráis a bheith ann le haghaidh dlisteanachta), is dócha gur calaois iad comharthaí a shainaithnítear mar chalaoisí ag Etherscan. + + ![Comhartha scam in Etherscan](./etherscan-scam.png) + +## Conclúid {#conclusion} + +Chomh fada agus a bhfuil luach ar fud an domhain, beidh scamóirí ann a dhéanann iarracht é a ghoid dóibh féin, agus i ndomhan díláraithe níl aon duine chun tú a chosaint ach amháin tú féin. Tá súil agam go gcuimhneoidh tú na pointí seo chun na comharthaí dlisteanacha ó na chalaoisí a insint: + +- Is ionann comharthaí calaoise agus comharthaí dlisteanacha; is féidir leo an t-ainm céanna, an tsiombail chéanna, srl., a úsáid. +- Ní féidir le comharthaí calaoise _an seoladh conartha céanna a úsáid_. +- Is í an fhoinse is fearr chun seoladh an dearbháin dhlisteanach a aimsiú ná an eagraíocht ar léi an dearbháin. +- Dá éagmais sin, is féidir leat feidhmchláir mhóréilimh a bhfuil muinín agat astu a úsáid, mar shampla [Uniswap](https://app.uniswap.org/#/swap) agus [Etherscan](https://etherscan.io/). diff --git a/public/content/translations/ga/guides/how-to-revoke-token-access/index.md b/public/content/translations/ga/guides/how-to-revoke-token-access/index.md new file mode 100644 index 00000000000..bc74c3fa008 --- /dev/null +++ b/public/content/translations/ga/guides/how-to-revoke-token-access/index.md @@ -0,0 +1,73 @@ +--- +title: Conas rochtain chonartha cliste ar do chistí crypto a chúlghairm +description: Treoir maidir le rochtain ar chomharthaí conartha cliste dúshaothraithe a chúlghairm +lang: ga +--- + +# Conas rochtain chonartha cliste ar do chistí crypto a chúlghairm + +Míneoidh an treoir seo duit conas féachaint ar liosta de na [conarthaí cliste](/glossary/#smart-contract) a cheadaigh tú rochtain a fháil ar do chistí agus conas iad a chur ar ceal. + +Uaireanta tógann forbróirí mailíseach isteach, faoi choim, conarthaí cliste a cheadaíonn rochtain ar chistí úsáideoirí aineolacha a idirghníomhaíonn leis an gconradh cliste. Is é an rud a tharlaíonn go minic ná go n-iarrann ardáin dá leithéid cead ar an úsáideoir **líon neamhtheoranta dhearbán** a chaitheamh in iarracht méideanna beaga [gás](/glossary/#gas) amach anseo, ach tagann riosca méadaithe leis seo. + +Nuair a bhíonn cearta rochtana neamhtheoranta ag ardán ar chomhartha ar do [sparán](/glossary/#wallet), is féidir leo na comharthaí sin go léir a chaitheamh fiú má tharraing tú do chistí siar óna n-ardán isteach i do sparán. Is féidir le gníomhaithe mailíseacha rochtain a fháil ar do chistí fós agus iad a tharraingt siar ina gcuid sparán gan aon rogha aisghabhála fágtha agat. + +Is iad na cosaintí amháin atá ann ná staonadh ó thionscadail nua neamhthástáilte a úsáid, gan ach an méid a theastaíonn uait a cheadú, nó rochtain a chúlghairm go rialta. Mar sin, conas a dhéanann tú é sin? + +## Céim 1: Úsáid uirlisí rochtana a chúlghairm + +Ligeann go leor suíomhanna gréasáin duit conarthaí cliste a bhaineann le do sheoladh a fheiceáil agus a chúlghairm. Tabhair cuairt ar an suíomh Gréasáin agus ceangail do sparán: + +- [Ethallowance](https://ethallowance.com/) (Ethereum) +- [Etherscan](https://etherscan.io/tokenapprovalchecker) (Ethereum) +- [Cointool](https://cointool.app/approve/eth) (líonraí iolracha) +- [Cúlghairm](https://revoke.cash/) (líonraí iomadúla) +- [Unrekt](https://app.unrekt.net/) (líonraí iolracha) +- [EverRevoke](https://everrise.com/everrevoke/) (líonraí iomadúla) + +## Céim 2: Ceangail do sparán + +Nuair a bheidh tú ar an suíomh Gréasáin, cliceáil ar "Ceangail sparán". Ba chóir go spreagfadh an láithreán gréasáin tú chun do sparán a nascadh. + +Bí cinnte go n-úsáideann tú an líonra céanna i do sparán agus do shuíomh Gréasáin. Ní fheicfidh tú ach conarthaí cliste a bhaineann leis an líonra a roghnaíodh. Mar shampla, má nascann tú le Ethereum Mainnet, ní fheicfidh tú ach conarthaí Ethereum, ní conarthaí ó slabhraí eile cosúil le Polygon. + +## Céim 3: Roghnaigh conradh cliste is mian leat a chúlghairm + +Ba cheart duit na conarthaí go léir a bhfuil cead rochtana acu ar do chuid dearbháin agus a dteora caiteachais a fheiceáil. Faigh an ceann is mian leat a fhoirceannadh. + +Mura bhfuil a fhios agat cén conradh a roghnaíonn tú, is féidir leat iad uilig a chúlghairm. Ní chruthóidh sé aon fhadhb duit, ach beidh ort sraith nua ceadanna a dheonú an chéad uair eile a idirghníomhaíonn tú le haon cheann de na conarthaí seo. + +## Céim 4: Rochtain ar do chistí a chúlghairm + +Nuair a chliceálann tú ar chúlghairm, ba cheart duit moladh idirbhirt nua a fheiceáil i do sparán. Tá sé seo le bheith ag súil leis. Beidh ort an táille a íoc le go n-éireoidh leis an gcealú. Ag brath ar an líonra is féidir go dtógfaidh sé seo tamall beag le próiseáil. + +Molaimid duit an uirlis chúlghairme a athnuachan tar éis cúpla nóiméad agus do sparán a nascadh arís le seiceáil faoi dhó an bhfuil an conradh cúlghairthe imithe ón liosta. + +Molaimid duit gan rochtain neamhtheoranta a cheadú do thionscadail ar do chomharthaí agus gach rochtain liúntais chomharthaí a chúlghairm go rialta. Níor cheart go gcaillfí cistí riamh má úsáideann tú na huirlisí atá liostaithe thuas má úsáideann tú rochtain chomharthaí. + +
              + + +
              Ar mhaith leat níos mó a fhoghlaim?
              + + Féach ar ár dtreoracha eile + +
              + +## Ceisteanna coitianta + +### An gcuirtear deireadh le geallchur, comhthiomsú, iasachtú srl freisin má dhéantar rochtain dearbháin a chúlghairm? + +Ní chuirfidh sé isteach ar cheann ar bith de do chuid straitéisí [DeFi](/glossary/#defi). Fanfaidh tú mar a bhí agus leanfaidh tú ag fáil luach saothair etc. + +### An ionann sparán a dhínascadh ó thionscadal agus an cead a bhaint as mo chistí a úsáid? + +Ní féidir, má dhínascann tú do sparán ón tionscadal, ach go bhfuil ceadanna lamháltais dearbhán tugtha agat, is féidir leo na dearbháin sin a úsáid fós. Ní mór duit an rochtain sin a chúlghairm. + +### Cathain a rachaidh cead an chonartha in éag? + +Níl aon dátaí éaga ar cheadanna conartha. Má thugann tú ceadanna conartha, is féidir iad a úsáid, fiú blianta tar éis dóibh a bheith deonaithe. + +### Cén fáth a socraíonn tionscadail liúntas comhartha gan teorainn? + +Is minic a dhéanann tionscadail é seo chun líon na n-iarratas a theastaíonn a íoslaghdú, rud a chiallaíonn nach mbíonn ar an úsáideoir ach aon uair amháin a cheadú agus an táille idirbhirt a íoc uair amháin. Cé go bhfuil sé áisiúil, is féidir leis seo a bheith contúirteach d'úsáideoirí a cheadú go míchúramach, ar shuímh nach bhfuil cruthaithe le himeacht ama nó iniúchta. Ligeann roinnt sparán duit srian a chur de láimh ar an méid dearbháin atá ceadaithe chun do riosca a theorannú. Seiceáil le do sholáthraí sparán le haghaidh tuilleadh eolais. diff --git a/public/content/translations/ga/guides/how-to-swap-tokens/index.md b/public/content/translations/ga/guides/how-to-swap-tokens/index.md new file mode 100644 index 00000000000..339de81da30 --- /dev/null +++ b/public/content/translations/ga/guides/how-to-swap-tokens/index.md @@ -0,0 +1,67 @@ +--- +title: Conas comharthaí a mhalartú +description: Treoir ar conas dearbháin a mhalartú ar Ethereum. +lang: ga +--- + +# Conas comharthaí a mhalartú + +An bhfuil tú tuirseach de bheith ag cuardach do mhalartán a liostaíonn na dearbháin is fearr leat? Is féidir leat an chuid is mó de na dearbháin a mhalartú le [malartuithe díláraithe](/glossary/#dex). + +Is éard atá i gceist le babhtáil dearbháin ná malartú dhá shócmhainn dhifriúla atá ann ar líonra Ethereum, mar shampla ETH a mhalartú le haghaidh DAI (comhartha [ERC-20](/glossary/#erc-20)). Tá an próiseas an-tapa agus saor. Beidh ort sparán cripte a bheith agat chun comharthaí a mhalartú. + +**Réamhriachtanas:** + +- bíodh [sparán cripte](/glossary/#wallet) agat, is féidir leat an rang seo a leanúint: [Conas chuig: "Cláraigh" cuntas Ethereum](/treoracha/conas-chruthú-an-ethereum-account/) +- cuir airgead le do sparán + +## 1. Ceangail do sparán leis an malartán díláraithe (DEX) de do rogha féin + +Seo a leanas roinnt malartuithe coitianta: + +- [Uniswap](https://app.uniswap.org/#/swap) +- [Sushiswap](https://www.sushi.com/swap) +- [1Inch](https://app.1inch.io/#/1/unified/swap/ETH/DAI) +- [Curve](https://curve.fi/#/ethereum/swap) + +Suimiúil? Foghlaim tuilleadh faoi cad is [airgeadas díláraithe (DeFi)](/defi/) ann agus conas a oibríonn na malartuithe nua seo. + +## 2. Roghnaigh an péire dearbháin is mian leat a mhalartú + +Mar shampla, ETH agus DAI. Bí cinnte go bhfuil cistí agat i gceann amháin den dá dhearbhán. ![Comhéadan coitianta le haghaidh malartú](./swap1.png) + +## 3. Cuir isteach an méid dearbhán is mian leat a thrádáil agus cliceáil ar bhabhtáil + +Ríomhfaidh an malartú go huathoibríoch cé mhéad dearbháin a gheobhaidh tú. + +![Comhéadan coitianta le haghaidh malartú](./swap2.png) + +## 4. Deimhnigh an t-idirbheart + +Déan athbhreithniú ar shonraí an idirbhirt. Seiceáil an ráta malairte agus aon táillí eile chun iontas gránna a chosc. + +![Comhéadan coiteann chun an t-idirbheart a athbhreithniú](./swap3.png) + +## 5. Fan go ndéanfar an t-idirbheart a phróiseáil + +Is féidir leat dul chun cinn an idirbhirt a fheiceáil ar aon taiscéalaí blocshlabhra. Níor cheart go dtógfadh an próiseas seo níos mó ná 10 nóiméad. + +Gheobhaidh tú na comharthaí malartaithe i do sparán go huathoibríoch nuair a bheidh an t-idirbheart próiseáilte. +
              + + +
              Ar mhaith leat níos mó a fhoghlaim?
              + + Féach ar ár dtreoracha eile + +
              + +## Ceisteanna coitianta + +### An féidir liom ETH a mhalartú le haghaidh BTC ó mo sparán? + +Ní féidir, ní féidir leat ach comharthaí atá dúchasach do líonra Ethereum a mhalartú, mar ETH, comharthaí ERC-20 nó NFTanna. Ní féidir leat ach foirmeacha "fillte" de Bitcoin a chónaíonn ar Ethereum a mhalartú. + +### Cad is sárú ann? + +Is ionann sárú agus an difríocht idir do ráta malairte ionchais agus an ráta iarbhír. diff --git a/public/content/translations/ga/guides/how-to-use-a-bridge/index.md b/public/content/translations/ga/guides/how-to-use-a-bridge/index.md new file mode 100644 index 00000000000..11e139c4035 --- /dev/null +++ b/public/content/translations/ga/guides/how-to-use-a-bridge/index.md @@ -0,0 +1,70 @@ +--- +title: Conas comharthaí a aistriú go ciseal 2 +description: Treoir a mhíníonn conas dearbháin a aistriú ó Ethereum go ciseal 2 ag baint úsáide as droichead. +lang: ga +--- + +# Conas comharthaí a aistriú go ciseal 2 + +Má tá go leor tráchta ar Ethereum, is féidir é a bheith costasach. Réiteach amháin air seo ná "sraitheanna" nua a chruthú: ie líonraí éagsúla a fheidhmíonn ar bhealaí cosúil le Ethereum féin. Cuidíonn na Sraitheanna 2s, mar a thugtar orthu, brú tráchta agus costas ar Ethereum a laghdú trí i bhfad níos mó idirbheart a phróiseáil ar tháillí níos ísle, agus gan ach an toradh a stóráil ar Ethereum chomh minic sin. Mar sin, cuireann na sraitheanna 2 seo ar ár gcumas idirbhearta a dhéanamh le luas méadaithe agus costais laghdaithe. Tá go leor tionscadal crypto tóir ag bogadh go ciseal 2s mar gheall ar na buntáistí seo. Is é an bealach is simplí chun dearbháin a aistriú ó Ethereum go ciseal 2 ná droichead a úsáid. + +**Réamhriachtanas:** + +- bíodh sparán criptithe agat, is féidir leat an rang teagaisc seo a leanúint: [Conas cuntas Ethereum a chruthú](/guides/how-to-create-an-ethereum-account/) +- cuir airgead le do sparán + +## 1. Aimsigh an líonra ciseal 2 is mian leat a úsáid + +Is féidir leat tuilleadh a fhoghlaim faoi na tionscadail éagsúla agus naisc thábhachtacha ar ár [leathanach ciseal 2](/layer-2/). + +## 2. Téigh go dtí an droichead roghnaithe + +Is iad seo a leanas roinnt sraitheanna 2s a bhfuil tóir orthu: + +- [Droichead Arbitrum](https://bridge.arbitrum.io/?l2ChainId=42161) +- [Droichead dóchais](https://app.optimism.io/bridge/deposit) +- [Droichead líonra Boba](https://gateway.boba.network/) + +## 3. Ceangail leis an droichead le do sparán + +Bí cinnte go bhfuil do sparán ceangailte le líonra Ethereum Mainnet. Mura bhfuil, spreagfaidh an suíomh Gréasáin tú go huathoibríoch chun líonraí a aistriú. + +![Comhéadan coitianta le haghaidh dearbháin idirlinne](./bridge1.png) + +## 4. Sonraigh an méid agus bogadh na cistí + +Déan athbhreithniú ar an méid a gheobhaidh tú mar chúiteamh ar líonra ciseal 2 agus na táillí chun iontas míthaitneamhach a sheachaint. + +![Comhéadan coitianta le haghaidh dearbháin idirlinne](./bridge2.png) + +## 5. Deimhnigh an t-idirbheart i do sparán + +Beidh ort táille a íoc i bhfoirm ETH chun an t-idirbheart a phróiseáil. + +![Comhéadan coitianta le haghaidh dearbháin idirlinne](./bridge3.png) + +## 6. Fan go n-aistreofar do chuid airgid + +Níor cheart go dtógfadh an próiseas seo níos mó ná 10 nóiméad. + +## 7. Cuir an líonra sraith 2 roghnaithe le do sparán (roghnach) + +Is féidir leat [chainlist.org](http://chainlist.org) a úsáid chun sonraí RPC an líonra a fháil. Nuair a bheidh an líonra curtha leis agus an t-idirbheart críochnaithe, ba cheart go mbeadh na dearbháin le feiceáil i do sparán. +
              + + +
              Ar mhaith leat níos mó a fhoghlaim?
              + + Féach ar ár dtreoracha eile + +
              + +## Ceisteanna coitianta + +### Cad a tharlóidh má tá cistí agam ar mhalartú? + +Seans go mbeidh tú in ann tarraingt siar go dtí roinnt sraitheanna 2s go díreach ó mhalartú. Féach ar an gcuid “Bog go ciseal 2” dár [leathanach Sraith 2](/layer-2/) le haghaidh tuilleadh eolais. + +### An féidir liom dul ar ais go Ethereum mainnet tar éis dom mo chuid dearbháin a aistriú go L2? + +Sea, is féidir leat do chistí a aistriú ar ais go dtí an mainnet i gcónaí ag baint úsáide as an droichead céanna. diff --git a/public/content/translations/ga/guides/how-to-use-a-wallet/index.md b/public/content/translations/ga/guides/how-to-use-a-wallet/index.md new file mode 100644 index 00000000000..b5438a2c892 --- /dev/null +++ b/public/content/translations/ga/guides/how-to-use-a-wallet/index.md @@ -0,0 +1,89 @@ +--- +title: Conas sparán a úsáid +metaTitle: Conas Sparán Ethereum a úsáid | Céim ar Chéim +description: Treoir a mhíníonn conas dearbháin a sheoladh, a fháil agus nascadh le tionscadail Web3. +lang: ga +--- + +# Conas sparán a úsáid + +Foghlaim conas na feidhmeanna bunúsacha go léir a bhaineann le sparán a oibriú. Mura bhfuil ceann agat fós, féach ar ár [Conas cuntas Ethereum a chruthú](/guides/how-to-create-an-ethereum-account/). + +## Oscail do sparán + +Ba cheart duit painéal a fheiceáil a thaispeánfaidh do chothromaíocht agus a mbeidh cnaipí ann chun comharthaí a sheoladh agus a fháil. + +## Faigh criptea-airgeadra + +Ar mhaith leat criptithe a fháil isteach i do sparán? + +Tá a sheoladh glactha féin ag gach cuntas Ethereum, seicheamh uathúil uimhreacha agus litreacha. Feidhmíonn an seoladh mar uimhir chuntais bainc. Tosóidh seoltaí Ethereum i gcónaí le “0x”. Is féidir leat an seoladh seo a roinnt le haon duine: tá sé sábháilte é sin a dhéanamh. + +Tá do sheoladh cosúil le do sheoladh baile: ní mór duit é sin a chur in iúl do dhaoine ionas go mbeidh siad tú a aimsiú. Tá sé sábháilte é seo a dhéanamh, mar is féidir leat fós do dhoras tosaigh a ghlasáil le heochair eile nach rialaíonn duine ar bith eile seachas tú féin ionas nach féidir le duine ar bith dul isteach, fiú má tá a fhios acu cá bhfuil tú i do chónaí. + +Ní mór duit do sheoladh poiblí a chur ar fáil do dhuine ar bith atá ag iarraidh airgead a sheoladh chugat. Ligeann go leor aipeanna sparán duit do sheoladh a chóipeáil nó cód QR a thaispeáint chun scanadh a dhéanamh le húsáid níos éasca. Seachain aon seoladh Ethereum a chlóscríobh de láimh. D'fhéadfadh earráidí cléireachais agus cistí caillte a bheith mar thoradh air seo go héasca. + +D’fhéadfadh go n-athródh feidhmchláir éagsúla nó go n-úsáideann siad teanga dhifriúil, ach ba cheart dóibh próiseas comhchosúil a thabhairt duit má tá tú ag iarraidh airgead a aistriú. + +1. Oscail do aip sparán. +2. Cliceáil ar "Faigh" (nó rogha na bhfocal comhchosúil). +3. Cóipeáil do sheoladh Ethereum chuig an ngearrthaisce. +4. Tabhair do sheoladh Ethereum glactha don seoltóir. + +## Seol criptea-airgeadra + +Ar mhaith leat ETH a sheoladh chuig sparán eile? + +1. Oscail do aip sparán. +2. Faigh an seoladh glactha agus cinntigh go bhfuil tú ceangailte leis an líonra céanna leis an bhfaighteoir. +3. Cuir isteach an seoladh glactha nó scanadh cód QR le do cheamara ionas nach mbeidh ort an seoladh a scríobh de láimh. +4. Cliceáil ar an gcnaipe “Seol” i do sparán (nó rogha eile a bhfuil na focail chéanna leis). + +![Seol réimse le haghaidh seoladh criptithe](./send.png) +
              + +5. Tá go leor sócmhainní, cosúil le DAI nó USDC, ar líonraí iolracha. Agus tú ag aistriú dearbháin chriptea, déan cinnte go bhfuil an faighteoir ag baint úsáide as an líonra céanna agus atá tú, ós rud é nach bhfuil siad seo idirmhalartaithe. +6. Cinntigh go bhfuil go leor ETH ag do sparán chun an táille idirbhirt a chlúdach, a athraíonn ag brath ar choinníollacha an líonra. Cuirfidh formhór na sparán an táille mholta leis an idirbheart go huathoibríoch agus is féidir leat a dheimhniú ansin. +7. Nuair a bheidh d’idirbheart próiseáilte, taispeánfar an méid criptithe comhfhreagrach i gcuntas an fhaighteora. Seans go dtógfaidh sé seo idir cúpla soicind go cúpla nóiméad ag brath ar an méid atá á úsáid ag an líonra faoi láthair. + +## Ag nascadh le tionscadail + +Beidh do sheoladh mar an gcéanna i ngach tionscadal Ethereum. Ní gá duit clárú i d’aonar ar aon tionscadal. Nuair a bheidh sparán agat, is féidir leat ceangal le haon tionscadal Ethereum gan aon fhaisnéis bhreise. Níl gá le ríomhphoist ná le haon fhaisnéis phearsanta eile. + +1. Tabhair cuairt ar láithreán gréasáin aon tionscadail. +2. Mura bhfuil i leathanach tuirlingthe an tionscadail ach cur síos statach ar an tionscadal, ba cheart duit a bheith in ann cliceáil ar an gcnaipe "Oscail an Aip" sa roghchlár a sheolfaidh tú chuig an aip gréasáin iarbhír. +3. Nuair atá tú san aip cliceáil ar "Ceangail". + +![Cnaipe a ligeann don úsáideoir ceangal leis an suíomh Gréasáin le sparán](./connect1.png) + +4. Roghnaigh do sparán ón liosta roghanna atá curtha ar fáil. Mura bhfuil tú ábalta do sparán a fheiceáil, seans go mbeidh sé i bhfolach faoin rogha “WalletConnect”. + +![Roghnú ó liosta de na sparán chun nascadh leis](./connect2.png) + +5. Deimhnigh an t-iarratas sínithe i do sparán chun an nasc a bhunú. **Níor cheart go gcaithfí aon ETH** chun an teachtaireacht seo a shíniú. +6. Sin é! Tosaigh ag baint úsáide as an aip. Is féidir leat roinnt tionscadal suimiúil a fháil ar ár [leathanach dApps](/dapps/#explore).
              + + +
              Ar mhaith leat níos mó a fhoghlaim?
              + + Féach ar ár dtreoracha eile + +
              + +## Ceisteanna coitianta + +### Má tá seoladh ETH agam, an liomsa an seoladh céanna ar bhlocshlabhraí eile? + +Is féidir leat an seoladh céanna a úsáid ar gach blocshlabhra atá comhoiriúnach le EVM (má tá an cineál sparán agat le frása athshlánaithe). Taispeánfaidh an [liosta](https://chainlist.org/) duit na blocshlabhraí is féidir leat a úsáid leis an seoladh céanna. Cuireann roinnt blocshlabhraí, cosúil le Bitcoin, sraith rialacha líonra ar leithligh i bhfeidhm agus beidh seoladh difriúil uait le formáid dhifriúil. Má tá sparán conartha cliste agat, ba cheart duit suíomh Gréasáin an táirge a sheiceáil le haghaidh tuilleadh eolais faoi na blocshlabhraí a dtugtar tacaíocht dóibh. + +### An féidir liom an seoladh céanna a úsáid ar ilghléasanna? + +Sea, is féidir leat an seoladh céanna a úsáid ar ilghléasanna. Go teicniúil, níl sa sparán ach comhéadan chun d'iarmhéid a thaispeáint duit agus chun idirbhearta a dhéanamh, ní stóráiltear do chuntas laistigh den sparán, ach ar an blocshlabhra. + +### Níl an crypto faighte agam, cén áit ar féidir liom stádas idirbheart a sheiceáil? + +Is féidir leat [block taiscéalaithe](/developers/docs/data-and-analytics/block-explorers/) a úsáid chun stádas aon idirbhirt a fheiceáil i bhfíor-am. Níl le déanamh agat ach do sheoladh sparán nó comhartha aitheantais an idirbhirt a chuardach. + +### An féidir liom idirbhearta a chealú nó a thabhairt ar ais? + +Ní féidir, a luaithe a dheimhnítear idirbheart, ní féidir leat an t-idirbheart a chur ar ceal. diff --git a/public/content/translations/ga/guides/index.md b/public/content/translations/ga/guides/index.md new file mode 100644 index 00000000000..081dd7b28e1 --- /dev/null +++ b/public/content/translations/ga/guides/index.md @@ -0,0 +1,27 @@ +--- +title: Treoraí Ethereum +description: Bailiúchán de threoracha praiticiúla a mhíníonn na bunghnéithe a bhaineann le Ethereum a úsáid do thosaitheoirí. +lang: ga +--- + +# Treoraí Ethereum + +Ar mhaith leat do thuras Ethereum a thosú? Treoraíonn ár dtreoirleabhair phraiticiúla tú céim ar chéim chun tús a chur leis, agus é a dhéanamh níos éasca an teicneolaíocht nua seo a úsáid. + +## Ag tosnú + +1. [Conas cuntas Ethereum](/guides/how-to-create-an-ethereum-account/) a chruthu- Is féidir le duine ar bith sparán a chruthú saor in aisce. Taispeánfaidh an treoir seo duit cá háit le tosú. + +2. [Conas sparán a úsáid](/guides/how-to-use-a-wallet/) - Foghlaim conas comharthaí a sheoladh agus a fháil i do sparán agus conas sparán a nascadh le tionscadail. + +## Bunriachtanais slándála + +1. [Conas rochtain chliste chonarthach ar do chistí cripte a chúlghairm](/guides/how-to-revoke-token-access/) - Má fheiceann tú go tobann idirbheart i do sparán nár thionscain tú, múinfidh an treoir seo duit conas é sin a chosc ó tharlú arís. + +2. [Conas dearbháin chamscéime a aithint](/guides/how-to-id-scam-tokens/) - Cad is dearbháin camscéime ann, cén chaoi a bhfuil cuma dhlisteanach orthu féin, agus conas iad a aithint chun tú féin a chosaint agus sceamáil a seachaint. + +## Úsáid Ethereum + +1. [Conas dearbháin a aistriú go ciseal 2](/guides/how-to-use-a-bridge/) - An bhfuil idirbhearta Ethereum róchostasach? Smaoinigh ar aistriú chuig réitigh scálaithe Ethereum ar a dtugtar ciseal 2s. + +2. [Conas dearbháin a mhalartú](/guides/how-to-swap-tokens/) - Ar mhaith leat do chuid dearbháin a mhalartú ar cheann eile? Léireoidh an treoir shimplí seo duit conas é sin a dhéanamh. diff --git a/public/content/translations/ga/nft/index.md b/public/content/translations/ga/nft/index.md new file mode 100644 index 00000000000..9e504300810 --- /dev/null +++ b/public/content/translations/ga/nft/index.md @@ -0,0 +1,115 @@ +--- +title: Comharthaí neamh-idirmhalartacha (NFT) +metaTitle: Cad is NFTanna ann? | Sochair agus úsáid +description: Forbhreathnú ar NFTanna ar Ethereum +lang: ga +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /images/infrastructure_transparent.png +alt: Lógó Eth á thaispeáint trí holagram. +summaryPoint1: Bealach chun aon rud uathúil a léiriú mar shócmhainn atá bunaithe ar Ethereum. +summaryPoint2: Bíonn NFTanna ag tabhairt níos mó cumhachta do chruthaitheoirí ábhair ná riamh. +summaryPoint3: Arna gcumhachtú ag conarthaí cliste ar bhlocshlabhra Ethereum. +--- + +## Cad is NFTanna ann? {#what-are-nfts} + +Is comharthaí iad NFTanna atá **uathúil go haonarach**. Tá airíonna éagsúla (neamh-idirmharlartacha) ag gach NFT agus is cinnte go bhfuil sé gann. Tá sé seo difriúil ó chomharthaí ar nós [ETH](/glossary/#ether) nó comharthaí eile atá bunaithe ar Ethereum cosúil le USDC, áit a bhfuil gach comhartha comhionann agus a bhfuil na hairíonna céanna aige (‘fungible’). Is cuma leat cén bille dollar sonrach (nó ETH) atá agat i do sparán, mar tá siad go léir comhionann agus comhluachmhar. Mar sin féin, tugann tú aird ar _an NFT ar leith atá agat_, toisc go bhfuil airíonna aonair acu go léir a dhéanann idirdhealú idir iad agus daoine eile ('neamh‑idirmhalartach'). + +Tríd uathúlacht gach NFT cumasaítear rudaí cosúil le healaín, earraí inbhailithe, nó fiú eastát réadach a théacschomharthú, i gcás ina seasann NFT uathúil amháin ar fhíorshaol nó ar mhír dhigiteach uathúil. Tá úinéireacht sócmhainne infhíoraithe go poiblí ar Ethereum [blockchain](/glossary/#blockchain). + + + +## Idirlíon sócmhainní {#internet-of-assets} + +Réitíonn NFTanna agus Ethereum cuid de na fadhbanna atá ann ar an Idirlíon inniu. De réir mar a éiríonn gach rud níos digití, ní mór airíonna míreanna fisiceacha, cosúil le ganntanas, uathúlacht agus cruthúnas úinéireachta, a mhacasamhlú ar bhealach nach bhfuil á rialú ag eagraíocht lárnach. Mar shampla, le NFTanna, is féidir leat comhad ceoil mp3 a bheith agat ar fud gach feidhmchláir atá bunaithe ar Ethereum agus gan a bheith ceangailte le haip cheoil ar leith ar le cuideachta amháin í ar nós Spotify nó Apple Music. Is féidir leat hanla meán sóisialta a bheith agat ar féidir leat a dhíol nó a mhalartú, ach ní féidir le soláthraí ardáin **é a thógáil uait go treallach**. + +Seo an chuma ar idirlíon NFTanna a cuireadh i gcomparáid leis an idirlíon a úsáideann an chuid is mó againn inniu... + +### Comparáid {#nft-comparison} + +| Idirlíon NFT | An tIdirlíon inniu | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Is leatsa do shócmhainní!** Ní féidir ach leatsa iad a dhíol nó a mhalartú. | **Tá sócmhainn ar cíos agat** ó eagraíocht éigin agus is féidir í a bhaint uait. | +| Tá NFTanna **uathúil go digiteach**, níl aon dá NFT mar an gcéanna. | **Go minic ní féidir idirdhealú a dhéanamh idir cóip** agus an bhunchóip. | +| Stóráiltear úinéireacht NFT ar an mblocshlabhra ionas gur féidir le duine ar bith **í a fhíorú go poiblí**. | Tá rochtain ar thaifid úinéireachta na míreanna digiteacha **rialaithe ag institiúidí** - ní mór duit a gcuid focal a ghlacadh air. | +| Is [conarthaí cliste](/glossary/#smart-contract) iad NFTanna ar Ethereum. Ciallaíonn sé seo gur féidir iad **a úsáid go héasca i gconarthaí cliste eile** agus in aipeanna ar Ethereum! | Is iondúil go mbíonn **infreastruchtúr "gairdín daingean" féin ag teastáil ó chuideachtaí a bhfuil earraí digiteacha acu**. | +| Is féidir le cruthaitheoirí ábhair **a gcuid oibre a dhíol áit ar bith** agus is féidir leo rochtain a fháil ar mhargadh domhanda. | Bíonn cruthaitheoirí ag brath ar bhonneagar agus dáileadh na n-ardán a úsáideann siad. Is minic a bhíonn siad seo faoi réir téarmaí úsáide agus **srianta geografacha**. | +| Is féidir le cruthaitheoirí NFT **cearta úinéireachta** a choinneáil ar a gcuid oibre féin, agus dleachtanna a chlárú go díreach isteach sa chonradh NFT. | Is iad ardáin, ar nós seirbhísí sruthaithe ceoil **, a choinníonn formhór na mbrabús ó dhíolacháin**. | + +## Cad chuige a n-úsáidtear NFTanna? {#nft-use-cases} + +Úsáidtear NFTanna le haghaidh go leor rudaí, lena n‑áirítear: + +- le cruthú gur fhreastail tú ar imeacht +- le deimhniú gur chríochnaigh tú cúrsa +- míreanna in-sealbhaithe le haghaidh cluichí +- ealaín dhigiteach +- sócmhainní fíor-dhomhain a théacschomharthú +- d’aitheantas ar líne a chruthú +- cosaint ar rochtain ar ábhar +- ticéadú +- ainmneacha fearainn idirlín díláraithe +- comhthaobhacht in [airgeadas díláraithe](/glossary/#defi) + +B’fhéidir gur ealaíontóir thú atá ag iarraidh a gcuid oibre a roinnt le NFTanna, gan smacht a chailleadh agus do bhrabúis a bhronnadh ar idirghabhálaithe. Is féidir leat conradh nua a chruthú agus líon na NFTanna, a n-airíonna agus nasc le roinnt saothar ealaíne ar leith a shonrú. Mar ealaíontóir, is féidir leat na dleachtanna ar cheart a bheith íoctha leat **a ríomhchlárú isteach sa chonradh cliste** (m.sh. aistrigh 5% den phraghas díola chuig úinéir an chonartha gach uair a aistrítear NFT). Is féidir leat a chruthú i gcónaí gur chruthaigh tú na NFTanna toisc gur leatsa an [sparán](/glossary/#wallet) a bhain feidhm as an gconradh. Is féidir le do cheannaitheoirí a chruthú go héasca go bhfuil **NFT barántúal** acu as do bhailiúchán toisc go bhfuil [seoladh](/glossary/#address) a sparáin bainteach le comhartha i do chonradh cliste. Is féidir leo é a úsáid ar fud éiceachóras Ethereum, agus iad muiníneach as a bharántúlacht. + + +
              Foghlaim, ceannaigh nó cruthaigh do chuid ealaíne/earraí inbhailithe NFT féin...
              + + Foghlaim faoi ealaín NFT + +
              + +Nó smaoinigh ar thicéad chuig imeacht spóirt. Díreach mar is féidir le **heagraí imeachta a roghnú cé mhéad ticéad a dhíolfaidh sé**, is féidir le cruthaitheoir NFT a chinneadh cé mhéad macasamhail atá ann. Uaireanta is macasamhla cruinne iad seo, amhail 5000 ticéad Iontrála Ginearálta. Uaireanta déantar roinnt díobh a bhualadh atá an-chosúil, ach beagán difriúil óna chéile, mar thicéad le suíochán sannta. Is féidir iad seo a cheannach agus a dhíol idir comhghleacaithe gan íoc as láimhseálaithe ticéad agus dearbhaíonn an ceannaitheoir i gcónaí barántúlacht an ticéid trí sheoladh an chonartha a sheiceáil. + +Ar ethereum.org, úsáidtear **NFTanna chun a léiriú gur chuir daoine go mór** lenár stór Github (rinneadar an láithreán Gréasáin a ríomhchlárú, scríobhadar alt nó d'athraíodar alt...), gur aistríodar ár n‑ábhar, nó d’fhreastalaíodar ar ár nglaonna pobail, agus tá ainm fearainn NFT dár gcuid féin againn fiú. Má chuireann tú le ethereum.org, is féidir leat [POAP](/glossary/#poap) NFT a éileamh. Bhain roinnt cruinnithe crypto úsáid as POAPanna mar thicéid. [Tuilleadh faoin rannchuidiú](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Tá ainm fearainn eile ar an láithreán gréasáin seo freisin arna chumhachtú ag NFTanna, **ethereum.eth**. Tá ár seoladh `.org` á bhainistiú go lárnach ag soláthraí córais ainmneacha fearainn (DNS), ach tá ethereum `.eth` cláraithe ar Ethereum trí Sheirbhís Ainmneacha Ethereum (ENS). Agus tá sé faoinár n-úinéireachtsan agus á bhainistiú againne. [Seiceáil ár dtaifead ENS](https://app.ens.domains/name/ethereum.eth) + +[Tuilleadh faoi ENS](https://app.ens.domains) + + + +## Conas a oibríonn NFTanna? {#how-nfts-work} + +Cruthaítear NFTanna, cosúil le gach earraí digiteacha ar bhlocshlabhra Ethereum, trí chlár ríomhaireachta speisialta atá bunaithe ar Ethereum ar a dtugtar "conradh cliste". Leanann na conarthaí seo rialacha áirithe, amhail caighdeáin [ERC-721](/glossary/#erc-721) nó [ERC-1155](/glossary/#erc-1155), trína gcinntear cad is féidir leis an gconradh a dhéanamh. + +Is féidir le conradh cliste NFT roinnt rudaí tábhachtacha a dhéanamh: + +- **Cruthaigh NFTanna:** Is féidir leis NFTanna nua a dhéanamh. +- **Sann Úinéireacht:** Coinníonn sé súil ar cé leis na NFTanna trína nascadh le seoltaí sonracha Ethereum. +- **Tabhair Céannacht do gach NFT:** Tá uimhir uathúil ag gach NFT. Ina theannta sin, de ghnáth bíonn roinnt faisnéise (meiteashonraí) ag gabháil leis, a chuireann síos ar a seasann an NFT. + +Nuair a dhéanann duine NFT a "chruthú" nó a "bhualadh", tá siad go bunúsach ag tabhairt treorach don chonradh cliste chun úinéireacht a thabhairt dóibh ar NFT áirithe. Stóráiltear an fhaisnéis seo go sábháilte agus go poiblí sa blockchain. + +Ina theannta sin, is féidir le cruthaitheoir an chonartha rialacha breise a chur leis. D’fhéadfaidís teorainn a chur le cén líon de NFT áirithe is féidir a dhéanamh nó cinneadh a dhéanamh gur cheart dóibh táille bheag dleachta a fháil nuair a athraítear úinéireacht an NFT ó dhuine go duine. + +### Slándáil NFT {#nft-security} + +Tagann slándáil Ethereum ó [cruthúnas i gceist](/glossary/#pos). Tá an córas deartha chun gníomhartha mailíseacha a dhídhreasú go heacnamaíoch, rud a fhágann gur féidir le Ethereum a bheith dosháraithe. Is é sin a fhágann gur féidir NFTanna a bheith ann. Agus an [bloc](/glossary/#block) ina bhfuil d'idirbheart NFT [críochnaithe](/glossary/#finality) chosnódh sé na milliúin ETH ar ionsaitheoir é a athrú. Bheadh ​​​duine ar bith atá ag rith bogearraí Ethereum in ann cur isteach mímhacánta le NFT a bhrath láithreach, agus chuirfí pionós eacnamaíoch ar an meirleach agus dhéanfaí é a dhíshealbhú. + +Is minic a bhaineann saincheisteanna slándála i dtaca le NFTanna le camscéimeanna fioscaireachta, leochaileachtaí conarthaí cliste nó earráidí úsáideoirí (amhail eochracha príobháideacha a nochtadh go neamhaireach), rud a fhágann go bhfuil ríthábhachtacht ag baint le slándáil mhaith sparáin le haghaidh úinéirí NFT. + + + Tuilleadh faoi shlándáil + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Treoir do thosaitheoirí ar NFTanna](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _Linda Xie, Eanáir 2020_ +- [Rianaire Nft Etherscan](https://etherscan.io/nft-top-contracts) +- [Caighdeán chomhartha ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Caighdeán chomhartha ERC-1155](/developers/docs/standards/tokens/erc-1155/) +- [Feidhmchláir agus Uirlisí Coitianta NFT](https://www.ethereum-ecosystem.com/blockchains/ethereum/nfts) + +## Acmhainní eile {#other-resources} + +- [NFTScan](https://nftscan.com/) + + + + diff --git a/public/content/translations/ga/payments/index.md b/public/content/translations/ga/payments/index.md new file mode 100644 index 00000000000..c97696dda56 --- /dev/null +++ b/public/content/translations/ga/payments/index.md @@ -0,0 +1,155 @@ +--- +title: Íocaíochtaí Ethereum +metaTitle: Payments on Ethereum +description: An overview of payments on Ethereum +lang: ga +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /images/impact_transparent.png +alt: An Eth logo being displayed along with giving hands. +summaryPoint1: A world where money moves as freely as information +summaryPoint2: Open and global, enabling borderless transactions for everyone +summaryPoint3: Payments received within a minute +--- + +Every day, millions of people face the same challenge: moving money across borders is slow, expensive, and often frustrating. A freelancer in Bali waits days for payment to clear from their New York client. This particularly affects people in regions with limited banking infrastructure, making it difficult to participate in the global economy. + +This isn't a far-off dream – it's happening today on Ethereum. While traditional financial institutions have built robust payment systems over decades, they often remain constrained by borders, working hours, and legacy infrastructure. Ethereum offers a new paradigm: a global, 24/7 financial platform that enables near-instant, programmable transactions for anyone with internet access. + +
              + +![Ethereum logo on the computer screen](./computer.png) + +
              + +## Remittances: cheaper international transfers {#remittances} + +For millions of people working abroad, sending money back home is a regular necessity. Traditional remittance services often come with high fees and slow processing times. Ethereum offers a compelling alternative. + + + + + + + +## Access to Global Currencies {#access-to-global-currencies} + +In many countries, inflation is a pressing concern, often accompanied by limited access to foreign currencies. People in these situations struggle to preserve their wealth as they are forced to hold rapidly depreciating savings. + +The Ethereum community has created **a robust alternative financial system** that is independent of any nation’s monetary policies or control. + +Ethereum users can use **stablecoins—tokens typically tied to strong currencies like the US Dollar**. By earning and saving in cryptocurrency, people can protect themselves from high inflation in their country, helping to preserve or even grow their purchasing power. This also enables easier payments for goods and services, both locally and globally. + + + More on stablecoins + + +## Buying Goods and Payment for Services {#buying-goods-and-payment-for-services} + +Many businesses are beginning to accept ether (ETH) and other cryptocurrencies as payment. Mar shampla: + +- **Newegg:** The popular electronics retailer accepts Ethereum for purchases in select countries. +- **Travala.com:** This travel booking platform allows users to pay for hotels and flights using Ethereum. +- **Shopify:** This popular E-commerce platform which serves as a platform for hosting businesses also accepts payments for goods and services using Ethereum. +- **Sotheby's:** This organisation trade fine and decorative art, jewellery, and collectibles and allows for payments using Ethereum and other cryptocurrencies. + +Countries like El Salvador and the Central African Republic have even adopted cryptocurrencies as legal tender, paving the way for wider acceptance of Ethereum payments in everyday transactions. + +In countries where their means of payment have been disconnected from the rest of the world, crypto-integrated payment solutions have been a huge relief. Payments of subscriptions for platforms like Netflix, Spotify, and educational courses have now been made easy through crypto payment platforms like Gnosis Pay and Paypal. + + +
              Create your Ethereum account with a wallet app today.
              + + Get started + +
              + +## Salary Payments {#salary-payments} + +Many forward-thinking companies are now offering employees the option to receive their salaries, or a portion of them, in cryptocurrencies like ether (ETH): + +- **Gipsybee:** is an organisation that deals in electronics, robotics, game creation and other services. They give employees the option to get paid in Ethereum. +- **SC5:** This Finnish company was one of the first to offer salaries in Bitcoin, paving the way for similar arrangements with Ethereum. +- **Blockchain startups:** Many companies in the blockchain space naturally offer cryptocurrency salary options to their employees. +- **DAOs:** Due to the peculiarity and diversity of contributors to DAOs, most contributions and salaries are rewarded in cryptocurrency. + +This trend particularly appeals to remote workers and digital nomads who can benefit from borderless payments and potentially favorable exchange rates. + + + +## Global relief efforts {#global-relief-efforts} + +In February 2023, when devastating earthquakes struck Turkey and Syria, the global crypto community sprang into action. Various campaigns were launched to collect funds for relief efforts, showcasing the power of Ethereum in times of crisis. Despite crypto [not being a recognized form](https://www.reuters.com/technology/no-more-kebabs-bitcoins-turkeys-crypto-payment-ban-looms-2021-04-28/) of payment in Turkey, authorities made [exceptions](https://x.com/haluklevent/status/1622913175409623041) for some organizations to collect donations. Some examples are: + +- [Refik Anadol](https://x.com/refikanadol/status/1622623521104089090): is a renowned digital artist who initiated a fundraising campaign. +- DAO Power: [Anka Relief DAO](https://ankarelief.org/) and [Bankless DAO](https://x.com/banklessDAO) joined forces with [Giveth](https://x.com/Giveth/status/1623493672149843969) to raise funds. +- [Pak](https://cause.quest/), a prominent NFT artist, also contributed to the cause. +- Even Ethereum co-founder [Vitalik Buterin](https://cointelegraph.com/news/vitalik-buterin-donates-227k-to-help-earthquake-victims-in-turkey-syria) made personal donations to multiple campaigns. + The result of this? Over $6 million was raised in a matter of days, as tracked by a [Dune](https://dune.com/davy42/turkiye-earthquake-donations) Analytics dashboard. + +There were also similar response times for tragedies that happened in India and Ukraine. This rapid response highlights a crucial advantage of Ethereum payments, which is the ability to quickly mobilize global support without the hurdles of currency conversion, lengthy bank transfers, or exorbitant fees. + +
              + +![Ethereum Robot Image](./eth_robot.png) + +
              + +## Ethereum vs fiat {#ethereum-vs-fiat} + +To truly appreciate the impact of Ethereum payments, it's worth comparing them to traditional fiat currencies: + +| | **Ethereum** | **Traditional banks** | +| --------------------- | ----------------------- | ------------------------------------------------------------ | +| **Speed** | Seconds to minutes | Hours to days | +| **Global Reach** | Borderless, 24/7 | Subject to international banking restrictions and work hours | +| **Transparency** | Fully transparent | Varies by institution | +| **Programmability** | Smart contracts enabled | Limited to basic transactions | +| **Inflation Control** | Predictable issuance | Subject to central bank policies | +| **Inrochtaineacht** | Anyone with internet | Subject to national and international restrictions | + +At its core, Ethereum is a decentralized platform that allows for secure, fast, and transparent transactions. However, many components set it apart from traditional payment methods. Let's dive into the benefits that make Ethereum payments a game-changer: + +### Programmability {#programmability} + +One of Ethereum's unique features is its ability to support smart contracts. Smart contracts are self-executing agreements with the terms directly written into code. This opens up a world of possibilities for automated, condition-based payments that can greatly improve transactions like: + +- Escrow services +- Recurring payments +- Performance-based compensation + +### Speed {#speed} + +Do you remember the last time you waited days for an international bank transfer to clear? The long queue? And the multiple forms you had to fill? With Ethereum, those days are long gone. Transactions on the Ethereum network settle in minutes, regardless of where the sender and recipient are located. Due to Ethereum being permissionless, there is no regulatory bureaucracy when sending money. This speed is particularly crucial in time-sensitive situations, such as emergency relief efforts. + +### Lower Fees {#lower-fees} + +Traditional international money transfers fees sometimes eat up a significant portion of the amount sent, especially when dealing with transactions in the hundreds of dollars. Ethereum transactions, while not free, often come with lower fees. This means more of your money goes where you intend it to, rather than lining the pockets of intermediaries. + +### Transparency {#transparency} + +Every transaction on the Ethereum blockchain is recorded on a public ledger. This means anyone can verify the movement of funds, making it an excellent tool for: + +- Charitable organizations to demonstrate how donations are used +- Businesses to prove payments to suppliers or employees +- Individuals to keep track of their financial activities + +With Ethereum, everyone can see how money moves and how costs are implemented, unlike traditional organisations where most of these remain unknown. + +
              + +![walking image](./walking.png) + +
              + +While fiat currencies have the advantage of widespread acceptance and stability, Ethereum offers unique benefits that make it an attractive option for certain types of transactions. + +From facilitating rapid disaster relief to empowering global workers, Ethereum payments are writing a new chapter in the long history of money. While challenges remain, the unique advantages offered by this technology make it an attractive option for a wide range of use cases. + + +
              Time to get your own Ethereum account.
              + + Get started + +
              \ No newline at end of file diff --git a/public/content/translations/ga/refi/index.md b/public/content/translations/ga/refi/index.md new file mode 100644 index 00000000000..edc5a62e269 --- /dev/null +++ b/public/content/translations/ga/refi/index.md @@ -0,0 +1,81 @@ +--- +title: Airgeadas Athghiniúna (ReFi) +description: Forbhreathnú ar ReFi agus a chásanna úsáide reatha. +lang: ga +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /images/future_transparent.png +alt: "" +summaryPoint1: Córas eacnamaíoch malartach bunaithe ar phrionsabail athghiniúna +summaryPoint2: Iarracht leas a bhaint as Ethereum chun géarchéimeanna comhordaithe ar leibhéal domhanda amhail athrú aeráide a réiteach +summaryPoint3: Uirlis chun sócmhainní leasa éiceolaíochta a scálú go suntasach amhail creidmheasanna carbóin fíoraithe +--- + +## Cad é ReFi? {#what-is-refi} + +Is sraith uirlisí agus smaointe é **airgeadas athghiniúna (ReFi)** a tógadh ar bharr [blocshlabhraí](/glossary/#blockchain), arb é is aidhm dóibh geilleagair a chruthú atá athghiniúnach, seachas iad a bheith eastóscach nó dúshaothraitheach. Faoi dheireadh, ídíonn córais eastóscacha na hacmhainní atá ar fáil agus titeann siad ó chéile; gan meicníochtaí athghiniúna, níl athléimneacht acu. Feidhmíonn ReFi ar an mbonn tuisceana nach mór cruthú luach airgeadaíochta a dhíchúpláil ó eastóscadh neamh‑inbhuanaithe acmhainní ónár bplainéad agus ónár bpobail. + +Ina áit sin, tá sé mar aidhm ag ReFi fadhbanna comhshaoil, pobail nó sóisialta a réiteach trí thimthriallta athghiniúna a chruthú. Cruthaíonn na córais seo luach do rannpháirtithe agus téann siad chun sochair éiceachórais agus pobail ag an am céanna. + +Ar cheann de bhunsraitheanna ReFi tá coincheap na heacnamaíochta athghiniúna a rinne John Fullerton ón Institiúid Caipitil. Mhol sé [ocht bprionsabal idirnasctha](https://capitalinstitute.org/8-principles-regenerative-economy/) atá mar bhunús le sláinte shistéamach: + +![Ocht bprionsabal idirnasctha](refi-regenerative-economy-diagram.png) + +Comhlíonann tionscadail ReFi na prionsabail seo trí úsáid a bhaint as [conarthaí cliste](/glossary/#smart-contract) agus [airgeadas díláraithe (DeFi)](/glossary/#defi) chun iompraíochtaí athghiniúna a dhreasú, e.g. éiceachórais dhíghrádaithe a athchóiriú agus comhoibriú ar scála mór a éascú ar shaincheisteanna domhanda amhail athrú aeráide agus caillteanas bithéagsúlachta. + +Forluíonn ReFi freisin leis an ngluaiseacht um [eolaíocht dhíláraithe (DeSci)](/desci/), a úsáideann Ethereum mar ardán chun eolas eolaíoch a mhaoiniú, a chruthú, a athbhreithniú, a chreidmheas, a stóráil agus a scaipeadh. D’fhéadfadh uirlisí DeSci a bheith úsáideach chun caighdeáin agus cleachtais infhíoraithe a fhorbairt chun gníomhaíochtaí athghiniúna a chur chun feidhme agus chun monatóireacht a dhéanamh orthu amhail crainn a chur, plaisteach a bhaint den aigéan nó éiceachóras díghrádaithe a athchóiriú. + + + +## Téacschomharthú creidmheasanna carbóin {#tokenization-of-carbon-credits} + +Is meicníocht é an **[margadh deonach carbóin (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** chun tionscadail a mhaoiniú a mbíonn tionchar dearfach fíoraithe acu ar astaíochtaí carbóin, cibé acu a laghdaítear astuithe leanúnacha nó a bhaintear na gáis cheaptha teasa a astaítear cheana ón atmaisféar. Faigheann na tionscadail seo sócmhainn ar a dtugtar “creidmheasanna carbóin” tar éis iad a fhíorú, ar féidir leo a dhíol le daoine aonair agus le heagraíochtaí atá ag iarraidh tacú le gníomhaíocht ar son na haeráide. + +Anuas ar an VCM, tá roinnt margaí carbóin faoi shainordú ag rialtais (‘margaí comhlíonta’) a bhfuil sé mar aidhm acu praghas carbóin a bhunú trí dhlíthe nó rialacháin laistigh de dhlínse ar leith (m.sh. tír nó réigiún), lena rialaítear soláthar na gceadanna a bheidh le dáileadh. Spreagann margaí comhlíonta na truaillitheoirí atá laistigh dá ndlínse chun astaíochtaí a laghdú, ach níl siad in ann gáis cheaptha teasa atá astaithe cheana féin a bhaint. + +In ainneoin na forbartha le blianta beaga anuas, leanann an VCM ag fulaingt ó réimse saincheisteanna: + +1. Leachtacht an-ilroinnte +2. Meicníochtaí idirbhearta teimhneach +3. Táillí arda +4. Luas trádála an-mhall +5. Easpa inscálaitheachta + +D’fhéadfadh sé gur deis é an VCM a aistriú go dtí an **margadh digiteach carbóin (DCM)** nua atá bunaithe ar bhlocchain chun an teicneolaíocht atá ann cheana a uasghrádú chun creidmheasanna carbóin a bhailíochtú, a dhéanamh agus a chaitheamh. Ceadaíonn Blockchains sonraí infhíoraithe go poiblí, rochtain do raon leathan úsáideoirí, agus níos mó leachtachta. + +Fostaíonn tionscadail ReFi teicneolaíocht blockchain chun go leor de na fadhbanna a bhaineann leis an margadh traidisiúnta a mhaolú: + +- **Tá an leachtacht comhchruinnithe i líon beag linnte leachtachta** ar féidir le duine ar bith iad a thrádáil go saor. Is féidir le heagraíochtaí móra agus le húsáideoirí aonair na linnte seo a úsáid gan cuardaigh láimhe do dhíoltóirí/cheannaitheoirí, táillí rannpháirtíochta, nó clárú roimh ré. +- **Déantar gach idirbheart a thaifeadadh ar bhlocshlabhraí poiblí**. Tá an cosán a thógann gach creidmheas carbóin mar gheall ar ghníomhaíocht trádála inrianaithe go deo chomh luath agus a chuirtear ar fáil sa DCM é. +- **Tá luas an idirbhirt beagnach ar an toirt**. Is féidir laethanta nó seachtainí a ghlacadh chun méideanna móra creidmheasanna carbóin a fháil trí na margaí oidhreachta, ach is féidir é seo a bhaint amach i gcúpla soicind sa DCM. +- ** Tarlaíonn gníomhaíocht trádála gan idirghabhálaithe**, a ghearrann táillí arda. Léiríonn creidmheasanna carbóin digiteacha laghdú suntasach ar chostais i gcomparáid le creidmheasanna traidisiúnta. +- **Tá an DCM inscálaithe** agus féadann sé freastal ar éilimh daoine aonair agus corparáidí ilnáisiúnta araon. + +### Príomhchodanna an DCM {#key-components-dcm} + +Tá ceithre phríomh-chomhpháirt i dtírdhreach reatha an DCM: + +1. Le clárlanna mar [Verra](https://verra.org/project/vcs-program/registry-system/) agus [Caighdeán Óir](https://www.goldstandard.org/) cinntítear go bhfuil tionscadail ann trína gcruthaítear creidmheasanna carbóin iontaofa. Feidhmíonn siad freisin na bunachair sonraí óna dtagann creidmheasanna carbóin digiteacha agus ar féidir iad a aistriú nó a úsáid (ar scor). + +Tá tonn nua de thionscadail nuálacha atá á dtógáil ar bhlocshlabhraí atá ag iarraidh cur isteach ar na sealbhóirí san earnáil seo. + +2. Droichid charbóin, a.k.a. chomharthaí, soláthraíonn siad teicneolaíocht chun creidmheasanna carbóin a léiriú nó a aistriú ó chlárlanna traidisiúnta isteach sa DCM. I measc na samplaí suntasacha tá [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), agus [Moss.Earth](https://moss.earth/). +3. Le seirbhísí comhtháite cuirtear ar fáil creidmheasanna seachanta agus/nó aistrithe carbóin ar fáil d’úsáideoirí deiridh ionas gur féidir leo leas comhshaoil ​​creidmheasa a éileamh agus a dtacaíocht do ghníomhaíocht aeráide a roinnt leis an domhan. + +Cuireann roinnt eagraíochtaí mar [Klima Infinity](https://www.klimadao.finance/infinity) agus [Senken](https://senken.io/) réimse leathan tionscadal ar fáil atá forbartha ag tríú páirtithe agus eisithe de réir caighdeáin sheanbhunaithe amhail Verra; ní thairgeann eagraíochtaí eile ar nós [Nori](https://nori.com/) ach tionscadail shonracha a forbraíodh faoina gcaighdeán creidmheasa carbóin féin, a eisíonn siadsan agus a bhfuil a margadh tiomnaithe féin acu. + +4. Na ráillí bunúsacha agus an bonneagar lena n-éascaítear méadú ar thionchar agus ar éifeachtúlacht shlabhra soláthair iomlán an mhargaidh charbóin. Le [KlimaDAO](http://klimadao.finance/) soláthraítear leachtacht mar leas poiblí (lena ligtear d’aon duine creidmheasanna carbóin a cheannach nó a dhíol ar phraghas trédhearcach), dreasaítear thréchur méadaithe na margaí carbóin agus aistarraingtí le luaíochtaí, agus cuirtear uirlis chomh-inoibritheach so-úsáidte ar fáil chun rochtain a fháil ar shonraí faoi raon leathan de chreidmheasanna carbóin téacschomharthaithe, mar aon lena bhfáil agus lena gcur ar scor. + +## ReFi lastall de mhargaí carbóin {#refi-beyond} + +Cé go bhfuil béim láidir faoi láthair ar mhargaí carbóin i gcoitinne agus ar an VCM a aistriú go dtí an DCM go háirithe laistigh den spás, níl an téarma “ReFi” teoranta go docht do charbón. Is féidir sócmhainní comhshaoil ​​eile seachas creidmheasanna carbóin a fhorbairt agus a mharcáil, rud a chiallóidh gur féidir seachtrachachtaí diúltacha eile a phraghsáil laistigh de bhunchiseal chórais eacnamaíocha na todhchaí. Ina theannta sin, is féidir gné athghiniúnach an mhúnla eacnamaíoch seo a chur i bhfeidhm i réimsí eile, amhail maoiniú earraí poiblí trí ardáin chuadratacha mhaoinithe amhail [Gitcoin](https://gitcoin.co/). Cuireann eagraíochtaí atá bunaithe ar an smaoineamh maidir le rannpháirtíocht oscailte agus dáileadh cothrom acmhainní ar chumas gach duine airgead a threorú chuig tionscadail bogearraí foinse oscailte, chomh maith le tionscadail oideachais, comhshaoil ​​agus pobail. + +Trí threo an chaipitil a aistriú ó chleachtais eastóscacha i dtreo sreafa athghiniúna, féadfaidh tionscadail agus cuideachtaí a sholáthraíonn tairbhí sóisialta, comhshaoil ​​nó pobail — agus a d’fhéadfaí go dteipfeadh orthu maoiniú a bhaint amach san airgeadas traidisiúnta — tús a chur leis mar is ceart agus seachtrachachtaí dearfacha a ghiniúint don tsochaí i bhfad níos tapúla agus níos éasca. Osclaíonn an t‑aistriú go dtí an tsamhail mhaoinithe seo an doras freisin do chórais eacnamaíocha i bhfad níos cuimsithí, inar féidir le daoine de gach déimeagrafaic a bheith ina rannpháirtithe gníomhacha seachas ina n‑amharcóirí éighníomhacha amháin. Tairgeann ReFi fís d'Ethereum mar mheicníocht chun gníomhaíocht a chomhordú ar dhúshláin eiseacha atá os comhair ár speiceas agus gach saol ar ár bplainéad - mar bhunchiseal paraidím eacnamaíoch nua, lena gcumasófar todhchaí níos cuimsithí agus níos inbhuanaithe do na céadta bliain atá le teacht. + +## Léitheoireacht bhreise ar ReFi + +- [Forbhreathnú ardleibhéil ar airgeadraí carbóin agus a n-áit sa gheilleagar](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [An Aireacht don Todhchaí, úrscéal a thaispeánann an ról atá ag airgeadra a bhfuil tacaíocht charbóin aige in aghaidh an athraithe aeráide](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Tuarascáil mhionsonraithe ón Tascfhórsa um Margaí Deonacha Carbóin a Scálú](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Iontráil CoinMarketCap Glossary ar ReFi le Kevin Owocki agus Evan Miyazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/ga/roadmap/account-abstraction/index.md b/public/content/translations/ga/roadmap/account-abstraction/index.md new file mode 100644 index 00000000000..95f7a65a170 --- /dev/null +++ b/public/content/translations/ga/roadmap/account-abstraction/index.md @@ -0,0 +1,132 @@ +--- +title: Astarraingt cuntais +description: Forbhreathnú ar phleananna Ethereum chun cuntais úsáideora a dhéanamh níos simplí agus níos sábháilte +lang: ga +summaryPoints: + - Le hastarraingt cuntais bíonn sé i bhfad níos éasca sparáin chonartha cliste a thógáil + - Le sparáin chonartha cliste bíonn sé i bhfad níos éasca rochtain ar chuntais Ethereum a bhainistiú + - Is féidir eochracha caillte agus neamhchosanta a athshlánú trí úsáid a bhaint as cúltacaí iolracha +--- + +# Astarraingt cuntais {#account-abstraction} + +Idirghníomhaíonn úsáideoirí le Ethereum trí úsáid a bhaint as **[cuntais faoi úinéireacht sheachtrach (EOAs)](/glossary/#eoa)**. Is é seo an t-aon bhealach chun idirbheart a thosú nó conradh cliste a fhorghníomhú. Cuireann sé seo teorainn le conas is féidir le húsáideoirí idirghníomhú le Ethereum. Mar shampla, bíonn sé deacair baisceanna idirbheart a dhéanamh agus bíonn ar úsáideoirí iarmhéid ETH a choinneáil i gcónaí chun gás a chlúdach. + +Is bealach é astarraingt cuntais chun na fadhbanna seo a réiteach trí ligean d’úsáideoirí níos mó slándála agus eispéiris úsáideora níos fearr a ríomhchlárú go solúbtha ina gcuntais. Féadfaidh sé seo tarlú trí [EOAs a uasghrádú](https://eips.ethereum.org/EIPS/eip-3074) ionas gur féidir iad a rialú trí chonarthaí cliste, nó trí [conarthaí cliste a uasghrádú](https://eips.ethereum.org/EIPS/eip-2938) ionas gur féidir leo idirbhearta a thionscnamh. Éilíonn an dá rogha seo athruithe ar phrótacal Ethereum. Tá an tríú cosán ann freisin a bhaineann le [dara córas idirbhirt ar leith](https://eips.ethereum.org/EIPS/eip-4337) a chur leis le rith ag an am céanna leis an bprótacal reatha. Beag beann ar an mbealach, bíonn rochtain ar Ethereum trí sparán conartha cliste dá thoradh, le tacaíocht dhúchasach mar chuid den phrótacal reatha nó trí líonra idirbheart breiseán. + +Díghlasálann sparán conartha cliste go leor buntáistí don úsáideoir, lena n-áirítear: + +- do rialacha slándála solúbtha féin a shainiú +- do chuntas a aisghabháil má chailleann tú na heochracha +- do shlándáil chuntais a chomhroinnt thar ghléasanna iontaofa nó daoine aonair +- íoc as gás duine eile, nó a iarraidh ar dhuine eile do chuidse a íoc +- idirbhearta a nascadh le chéile (m.sh. babhtáil a cheadú agus a dhéanamh in aon turas amháin) +- níos mó deiseanna d’fhorbróirí dapps agus sparán a bheith nuálach le heispéiris úsáideoirí + +Ní thacaítear leis na sochair seo ó dhúchas inniu toisc nach féidir ach le cuntais faoi úinéireacht sheachtrach ([EOAs](/glossary/#eoa)) idirbhearta a thosú. Níl in EOAnna ach eochairphéirí poiblí-príobháideacha. Oibríonn siad mar seo: + +- má tá an eochair phríobháideach agat is féidir leat _rud ar bith_ a dhéanamh laistigh de rialacha Meaisín Fíorúil Ethereum (EVM) +- mura bhfuil an eochair phríobháideach agat ní féidir leat _rud ar bith_ a dhéanamh. + +Má chailleann tú d'eochracha ní féidir iad a aisghabháil, agus tugann eochracha goidte rochtain láithreach do na gadaithe ar gach ciste atá i gcuntas. + +Is iad sparáin chonartha cliste an réiteach ar na fadhbanna seo, ach inniu tá siad deacair a ríomhchlárú mar sa deireadh, ní mór aon loighic a chuireann siad i bhfeidhm a aistriú go sraith idirbhearta EOA sular féidir le Ethereum iad a phróiseáil. Cuireann astarraingt cuntais ar chumas conarthaí cliste idirbhearta a thionscnamh iad féin, ionas gur féidir aon loighic is mian leis an úsáideoir a chur i bhfeidhm a chódú isteach sa sparán conartha cliste féin agus a fhorghníomhú ar Ethereum. + +I ndeireadh na dála, feabhsaíonn astarraingt cuntais tacaíocht do sparán conartha cliste, rud a fhágann go bhfuil siad níos éasca le tógáil agus níos sábháilte le húsáid. Sa deireadh, le astarraingt cuntais, is féidir le húsáideoirí taitneamh a bhaint as na buntáistí go léir a bhaineann le Ethereum gan a bheith ar an eolas nó ag tabhairt aire don teicneolaíocht bhunúsach. + +## Thar frásaí síolta {#beyond-seed-phrases} + +Déantar cuntais an lae inniu a urrú le heochracha príobháideacha a ríomhtar ó na frásaí síl. Is féidir le haon duine a bhfuil rochtain aige ar fhrása síl an eochair phríobháideach a chosnaíonn cuntas a fháil amach go héasca agus rochtain a fháil ar na sócmhainní go léir a chosnaíonn sé. Má chailltear eochair phríobháideach agus frása síl, ní féidir iad a aisghabháil choíche agus reoitear go deo na sócmhainní a rialaíonn siad. Tá sé deacair na frásaí síolta seo a urrú, fiú d'úsáideoirí an-eolacha agus tá fioscaireacht frása síolta ar cheann de na bealaí is coitianta ina ndéantar scéiméireacht ar úsáideoirí. + +Déanfaidh astarraingt cuntais an fhadhb seo a réiteach trí chonradh cliste a úsáid chun sócmhainní a shealbhú agus idirbhearta a údarú. Is féidir na conarthaí cliste seo a mhaisiú ansin le loighic saincheaptha chun iad a dhéanamh chomh slán agus chomh hoiriúnaithe don úsáideoir agus is féidir. I ndeireadh na dála, úsáideann tú eochracha príobháideacha fós le rochtain ar do chuntas a rialú, ach le líontáin sábhála a dhéanann níos éasca iad agus níos sábháilte le bainistiú. + +Mar shampla, is féidir eochracha cúltaca a chur le sparán ionas gur féidir eochair nua, slán a chur ina ionad má chailleann tú nó má nochtann tú do phríomheochair trí thimpiste, le cead ó na heochracha cúltaca. D'fhéadfá gach ceann de na heochracha seo a dhaingniú ar bhealach difriúil, nó iad a roinnt ar chaomhnóirí iontaofa. Dá bharr sin bíonn sé i bhfad níos deacra ag gadaí smacht iomlán a fháil ar do chuid cistí. Mar an gcéanna, is féidir leat rialacha a chur leis an sparán chun an tionchar a laghdú má sháraítear do phríomheochair, mar shampla, d’fhéadfá idirbhearta ar luach íseal a cheadú le síniú amháin, ach ceadú ó shínitheoirí iolracha a éileamh chun idirbhearta de luach níos airde a dhéanamh. Tá bealaí eile ann inar féidir le sparán cliste conartha cabhrú leat bac a chur ar gadaithe freisin, mar shampla, is féidir liosta ceadaithe a úsáid chun gach idirbheart a bhlocáil mura bhfuil sé chuig seoladh iontaofa nó fíoraithe ag roinnt de na heochracha réamhcheadaithe atá agat. + +### Samplaí de loighic slándála is féidir a chur isteach i sparán conartha cliste: + +- **Údarú multisig**: Is féidir leat dintiúir údaraithe a roinnt ar an iliomad daoine nó gléasanna a bhfuil muinín agat astu. Ansin is féidir an conradh a chumrú ionas go mbeidh údarú ag teastáil ó chion áirithe (m.sh. 3/5) de na páirtithe iontaofa ar idirbhearta atá níos mó ná luach réamhshocraithe. Mar shampla, d’fhéadfadh go mbeadh formheas ó ghléas soghluaiste agus ó sparán crua-earraí araon ag teastáil le haghaidh idirbhearta ardluacha, nó sínithe ó chuntais atá dáilte ar bhaill teaghlaigh iontaofa. +- **Reo cuntais**: Má chailltear nó má thruaillítear gaireas é is féidir an cuntas a ghlasáil ó ghaireas údaraithe eile, rud a chosnaíonn sócmhainní an úsáideora. +- **Athghabháil cuntais**: Gaireas caillte nó pasfhocal dearmadta agat? Sa paraidím reatha, ciallaíonn sé seo go bhféadfaí do shócmhainní a reoite go deo. Le sparán conartha cliste, is féidir leat liosta ceadaithe cuntas a shocrú a fhéadfaidh gléasanna nua a údarú agus rochtain a athshocrú. +- **Socraigh teorainneacha idirbhirt**: Sonraigh tairseacha laethúla don mhéid luach is féidir a aistriú ón gcuntas i lá/seachtain/mí. Ciallaíonn sé seo má fhaigheann ionsaitheoir rochtain ar do chuntas ní féidir leo gach rud a dhraenáil láithreach agus tá deiseanna agat rochtain a reo agus a athshocrú. +- **Cruthaigh liostaí ceadaithe**: Ná lig ach idirbhearta chuig seoltaí áirithe a bhfuil a fhios agat a bheith sábháilte. Ciallaíonn sé seo _fiú má goideadh_ d'eochair phríobháideach, ní fhéadfadh an t-ionsaitheoir ach airgead a sheoladh chuig cuntais sprice ar do liosta. Bheadh ​​sínithe iolracha ag teastáil ó na liostaí ceadaithe seo chun iad a athrú ionas nach bhféadfadh ionsaitheoir a sheoladh féin a chur leis an liosta mura raibh rochtain aige ar roinnt de na heochracha cúltaca atá agat. + +## Taithí úsáideora níos fearr {#better-user-experience} + +Ceadaíonn astarraingt cuntais **eispéireas iomlán níos fearr don úsáideoir** chomh maith le **slándáil fheabhsaithe** toisc go gcuireann sé tacaíocht le sparán conartha cliste ag leibhéal an phrótacail. Is é an chúis is tábhachtaí leis seo ná go dtabharfaidh sé i bhfad níos mó saoirse d’fhorbróirí conarthaí cliste, sparán agus feidhmchlár a bheith nuálach maidir le heispéireas an úsáideora ar bhealaí nach mbeimid in ann a réamh-mheas go fóill. I measc roinnt feabhsuithe soiléire a thiocfaidh chomh maith le hastarraingt cuntas tá beartú na n-idirbheart ar mhaithe le luas agus éifeachtúlacht. Mar shampla, ba cheart go mbeadh babhtáil shimplí ina oibríocht aon-chliceála, ach sa lá atá inniu ann éilíonn sé idirbhearta iolracha a shíniú chun caitheamh comharthaí aonair a cheadú sula ndéantar an bhabhtáil. Baineann astarraingt cuntais an frithchuimilt sin amach trí bheartú idirbheart a cheadú. Ina theannta sin, d’fhéadfadh an t-idirbheart cuachta luach ceart na n-airíonna a theastaíonn do gach idirbheart a cheadú go beacht agus ansin na formheasanna a chúlghairm tar éis don idirbheart a bheith críochnaithe, ag soláthar urrús breise. + +Tá feabhas mór tagtha ar bhainistíocht an gháis freisin le hastarraingt cuntais. Ní hamháin gur féidir le hiarratais táillí gáis a n-úsáideoirí a thairiscint, ach is féidir táillí gáis a íoc mar chomharthaí seachas ETH, rud a fhágann nach mór d’úsáideoirí iarmhéid ETH a choinneáil le haghaidh idirbhearta maoinithe. D'oibreodh sé seo trí chomharthaí an úsáideora a mhalartú le haghaidh ETH taobh istigh den chonradh agus ansin an ETH a úsáid chun íoc as gás. + + + +Tá bainistíocht gháis ar cheann de na príomh-fhritíochtaí d'úsáideoirí Ethereum, go príomha toisc gurb é ETH an t-aon sócmhainn is féidir a úsáid chun íoc as idirbhearta. Samhlaigh go bhfuil sparán agat le hiarmhéid USDC, ach gan aon ETH. Ní féidir leat na comharthaí USDC sin a bhogadh ná a mhalartú toisc nach féidir leat gás a íoc. Ní féidir leat an USDC a mhalartú le haghaidh ETH ach an oiread, toisc go gcosnaíonn sé sin gás ann féin. Bheadh ​​ort níos mó ETH a sheoladh chuig do chuntas ó mhalartán nó ó sheoladh eile chun an fhadhb a réiteach. Le sparán conartha cliste, ní gá duit ach gás a íoc in USDC ina ionad sin, ag saoráil do chuntas. Ní gá duit iarmhéid ETH a choinneáil i do chuntais go léir a thuilleadh. + +Ligeann astarraingt cuntais freisin d’fhorbróirí dapp a bheith cruthaitheach le bainistíocht gáis. Mar shampla, b'fhéidir go mbeifeá in ann tús a chur le táille sheasta a íoc leis an DEX is fearr leat gach mí le haghaidh idirbhearta neamhtheoranta. Seans go dtairgfidh Dapps do tháillí gáis go léir a íoc ar do shon mar luaíocht as a n-ardán a úsáid, nó mar thairiscint bordála. Beidh sé i bhfad níos éasca d'fhorbróirí nuálaíocht a dhéanamh ar ghás nuair a thacaítear le sparán conartha cliste ag leibhéal an phrótacail. + + + +D’fhéadfadh seisiúin iontaofa a bheith claochlaitheach freisin d’eispéiris úsáideoirí, go háirithe d’fheidhmchláir mar chluichíocht, áit a bhféadfadh go mbeadh faomhadh ag teastáil ó líon mór idirbhearta beaga i mbeagán ama. Dá ndéanfaí gach idirbheart a fhaomhadh ina n-aonar bhrisfí an t-eispéireas cluichíochta, ach níl faomhadh buan sábháilte. D’fhéadfadh sparán conartha cliste idirbhearta áirithe a fhaomhadh ar feadh tréimhse socraithe, suas le luach sonrach nó díreach chuig seoltaí áirithe. + +Tá sé suimiúil freisin a mheas conas a d’fhéadfadh ceannacháin athrú le hastarraingt cuntais. Sa lá atá inniu ann, ní mór gach idirbheart a fhaomhadh agus a fhorghníomhú ó sparán atá réamh-mhaoinithe le méid leordhóthanach den chomhartha ceart. Le astarraingt cuntais, d'fhéadfadh an taithí a bheith níos mó cosúil le gnáth-shiopadóireacht ar líne mar a dhéanfadh úsáideoir "ciseán" a líonadh le míreanna agus cliceáil uair amháin chun iad a cheannach ag an am céanna, agus an loighic ar fad a theastaíonn á láimhseáil ag an gconradh, ní ag an úsáideoir. + +Níl iontu seo ach roinnt samplaí den chaoi a bhféadfaí eispéiris úsáideoirí a chothromú trí astarraingt cuntais, ach beidh go leor eile ann nach bhfuil samhlaithe againn go fóill. Saorann astarraingt cuntais forbróirí ó shrianta EOAnna an lae inniu, ligeann sé dóibh gnéithe maithe Web2 a thabhairt isteach i Web3 gan féin-choimeád a íobairt, agus haiceáil chruthaitheach a dhéanamh ar eispéiris airgtheacha nua úsáideoirí. + +## Conas a chuirfear astarraingt cuntais i bhfeidhm? {#how-will-aa-be-implemented} + +Tá sparán conartha cliste ann inniu ach tá siad dúshlánach a chur i bhfeidhm toisc nach dtacaíonn an EVM leo. Ina áit sin, bíonn siad ag brath ar chód sách casta a thimfhilleadh ar idirbhearta caighdeánacha Ethereum. Ethereum can change this by allowing smart contracts to initiate transactions, handling the necessary logic in Ethereum smart contracts instead of offchain. Má chuirtear an loighic i gconarthaí cliste, méadaítear dílárú Ethereum freisin ós rud é go mbainfidh sé an gá atá le "athsheoltóirí" arna reáchtáil ag forbróirí sparán chun teachtaireachtaí sínithe ag an úsáideoir a aistriú chuig idirbhearta rialta Ethereum. + + + +Tugann EIP-2771 isteach coincheap na meitea-idirbhearta a ligeann do thríú páirtithe íoc as costais gháis úsáideora gan athruithe a dhéanamh ar phrótacal Ethereum. Is é an smaoineamh go seolfar idirbhearta sínithe ag úsáideoir chuig conradh `Athsheoltóra`. Is aonán iontaofa é an t-athsheoltóir a fhíoraíonn go bhfuil idirbhearta bailí sula gcuirtear ar aghaidh chuig athsheachadán gáis iad. This is done offchain, avoiding the need to pay gas. Cuireann an sealaíocht gáis an t-idirbheart ar aghaidh chuig conradh `Faighteora`, ag íoc an gháis is gá chun an t-idirbheart a dhéanamh inrite ar Ethereum. Cuirtear an t-idirbheart i gcrích má tá aithne ag an bh'Faighteoir' ar an `Athsheoltóir` agus muinín aige as. Leis an tsamhail seo bíonn sé éasca d'fhorbróirí idirbhearta gan ghás a chur i bhfeidhm d'úsáideoirí. + + + + + +Is é EIP-4337 an chéad chéim i dtreo tacaíocht a thabhairt do sparán conartha cliste dúchais ar bhealach díláraithe gan athruithe ar phrótacal Ethereum a éileamh. In ionad an ciseal comhthola a mhodhnú chun tacú le sparán conartha cliste, cuirtear córas nua ar leithligh leis an ngnáthphrótacal béadáin idirbhearta. Tá an córas ardleibhéil seo bunaithe ar réad nua ar a dtugtar UserOperation lena ndéantar gníomhartha ó úsáideoir a phacáistiú in éineacht leis na sínithe ábhartha. Craoltar na réada UserOperation seo ansin isteach i mempool tiomnaithe inar féidir le bailíochtóirí iad a bhailiú in “idirbheart cuachta”. Léiríonn an t-idirbheart cuachta seicheamh de mhórán Oibríochtaí Úsáideora aonair agus is féidir é a áireamh i mbloic Ethereum díreach cosúil le gnáth-idirbheart, agus d'fhéadfadh bailíochtóirí é a phiocadh suas ag baint úsáide as samhail roghnaithe chomhchosúil a uasmhéadaíonn táillí. + +D’athródh an dóigh a n-oibreodh sparán freisin faoi EIP-4337. Seachas loighic chosanta choiteann ach casta a ath-fhorfheidhmiú, bheadh na feidhmeanna sin á ndéanamh ag conradh sparán domhanda ar a dtugtar an "pointe iontrála". Láimhseálfadh sé seo oibríochtaí cosúil le táillí a íoc agus cód EVM a fhorghníomhú ionas gur féidir le forbróirí sparán díriú ar thaithí úsáideora den scoth a sholáthar. + +Tabhair do d'aire rinneadh an conradh pointe iontrála EIP 4337 a imscaradh chuig Ethereum Mainnet ar 1ú Márta 2023. Is féidir leat an conradh a fheiceáil ar Etherscan. + + + + + +Tá sé mar aidhm ag EIP-2938 prótacal Ethereum a nuashonrú trí chineál nua idirbhirt a thabhairt isteach, AA_TX_TYPE a chuimsíonn trí réimse: nonce, sprioc agus sonraí, nuair is cuntar idirbheartaíochta é nonce, nuair is ésprioc an seoladh pointe iontrála conartha agus nuair is beartchód EVM é sonraí. Chun na hidirbhearta seo a rith, ní mór dhá threoir nua (ar a dtugtar opcodes) a chur leis an EVM: NONCE agus PAYGAS. Rianaíonn an opchód NONCE seicheamh an idirbhirt agus déanann PAYGAS an gás a theastaíonn chun an t-idirbheart a rith a ríomh agus a aistarraingt ó iarmhéid an chonartha. Ligeann na gnéithe nua seo do Ethereum tacaíocht a thabhairt do sparán cliste conartha ó dhúchas mar go bhfuil an bonneagar riachtanach ionsuite i bprótacal Ethereum. + +Tabhair faoi deara nach bhfuil EIP-2938 gníomhach faoi láthair. Tá an pobal i bhfabhar EIP-4337 faoi láthair toisc nach dteastaíonn athruithe ar an bprótacal uaidh. + + + + + +Tá sé mar aidhm ag EIP-3074 cuntais faoi úinéireacht sheachtrach Ethereum a nuashonrú trí ligean dóibh rialú a tharmligean chuig córas cliste conradh. Ciallaíonn sé seo go bhféadfadh loighic conartha chliste idirbhearta de thionscnamh EOA a cheadú. Cheadódh sé sin gnéithe cosúil le hidirbhearta gás-urraithe agus baisceanna. Ionas go n-oibreoidh sé seo, ní mór dhá opchód nua a chur leis an EVM: AUTH agus AUTHCALL. Le EIP-3074 cuirtear na buntáistí a bhaineann le sparán conartha cliste ar fáil gan conradh a bheith ag teastáil - ina ionad sin, láimhseálann cineál sonrach conartha gan stát, gan iontaobhas, neamh-uasghrádaithe ar a dtugtar "agairt" na hidirbhearta. + +Tabhair faoi deara nach bhfuil EIP-3074 gníomhach faoi láthair. Tá an pobal i bhfabhar EIP-4337 faoi láthair toisc nach dteastaíonn athruithe ar an bprótacal uaidh. + + + +## Dul chun cinn reatha {#current-progress} + +Tá sparáin chonartha cliste ar fáil cheana féin, ach tá gá le tuilleadh uasghráduithe chun iad a dhéanamh chomh díláraithe agus gan chead agus is féidir. Is togra aibí é EIP-4337 nach n-éilíonn aon athruithe ar phrótacal Ethereum, agus mar sin is féidir go bhféadfaí é seo a chur i bhfeidhm go tapa. Mar sin féin, níl forbhairt ghníomhach á dhéanamh ar uasghráduithe a athraíonn prótacal Ethereum faoi láthair, agus mar sin b'fhéidir go dtógfaidh sé i bhfad níos faide na hathruithe sin a sheoladh. Is féidir freisin go bhfuil astarraingt cuntais bainte amach sách maith ag EIP-4337 nach dteastaíonn aon athruithe prótacail riamh. + +**Note**: You can track adoption of ERC-4337 smart contract wallets [via this dashboard](https://www.bundlebear.com/overview/all). + +## Tuilleadh léitheoireachta {#further-reading} + +- [erc4337.io](https://www.erc4337.io/) +- [Plé painéil astarraingt Cuntas ó Devcon Bogota](https://www.youtube.com/watch?app=desktop&v=WsZBymiyT-8) +- ["Cén fáth gur athchasadh do dapps é astarraingt cuntais" ó Devcon Bogota](https://www.youtube.com/watch?v=OwppworJGzs) +- ["Astarraingt cuntais ELI5" ó Devcon Bogota](https://www.youtube.com/watch?v=QuYZWJj65AY) +- [Nótaí Vitalik faoi "Bóthar chuig Astarraingt Cuntais"](https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap#Transaction-inclusion-lists) +- [Postbhlag Vitalik ar sparán téarnaimh shóisialta](https://vitalik.eth.limo/general/2021/01/11/recovery.html) +- [EIP-2938 nótaí](https://hackmd.io/@SamWilsn/ryhxoGp4D#What-is-EIP-2938) +- [Doiciméid EIP-2938](https://eips.ethereum.org/EIPS/eip-2938) +- [EIP-4337 nótaí](https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a) +- [Doiciméid EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) +- [Doiciméid EIP-2771](https://eips.ethereum.org/EIPS/eip-2771) +- ["Bunús an Astarraingt Chuntas" -- Cad is Astarraingt Cuntais ann Cuid I](https://www.alchemy.com/blog/account-abstraction) +- [Charting Ethereum's Account Abstraction Roadmap I: EIP-3074, EIP-5806, & EIP-7702](https://research.2077.xyz/charting-ethereums-account-abstraction-roadmap-eip-3074-eip-5806-eip-7702) +- [Awesome Account Abstraction](https://github.com/4337Mafia/awesome-account-abstraction) +- [Modular Account Abstraction for Everyone Else](https://blog.rhinestone.wtf/part-1-modular-account-abstraction-for-everyone-else-84567422bc46) + diff --git a/public/content/translations/ga/roadmap/beacon-chain/index.md b/public/content/translations/ga/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..efb7706fa7b --- /dev/null +++ b/public/content/translations/ga/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: An Slabhra Beacon +description: Foghlaim faoin Beacon Slabhra - an t-uasghrádú a thug isteach cruthúnais Ethereum. +lang: ga +template: upgrade +image: /images/upgrades/core.png +alt: +summaryPoint1: Thug an Slabhra Beacon cruthúnas-de-geall ar an éiceachóras Ethereum. +summaryPoint2: Cumascadh é le slabhra cruthúnais oibre bunaidh Ethereum i Meán Fómhair 2022. +summaryPoint3: Thug an Beacon Chain isteach an loighic chomhthoil agus an prótacal gossip bloc a dhaingníonn Ethereum anois. +--- + + + Seoladh an Beacon Chain an 1 Nollaig, 2020, agus rinne sé cruthúnas foirmiúil mar mheicníocht chomhdhearcadh Ethereum le huasghrádú The Merge an 15 Meán Fómhair, 2022. + + +## Cad é an Slabhra Beacon? {#what-is-the-beacon-chain} + +Is é an Beacon Chain an t-ainm atá ar an mbloc slabhra cruthúnais bunaidh a seoladh in 2020. Cruthaíodh é chun a chinntiú go raibh an loighic comhdhearcadh cruthúnas-de-geallta slán agus inbhuanaithe sula dtabharfaí rochtain ar Ethereum Mainnet dó. Dá bhrí sin, rith sé taobh le cruthúnas-bunaidh-oibre Ethereum. . Slabhra de bhloic 'folamh' a bhí sa Beacon Chain, ach d'éiligh an Slabhra Beacon glacadh le sonraí idirbhirt ó chliaint forghníomhaithe, iad a bheartú i mbloic agus ansin iad a eagrú. iad isteach i blockchain ag baint úsáide as meicníocht comhdhearcadh cruthúnas-de-geallta. Ag an nóiméad céanna, d'éirigh le cliaint Ethereum bunaidh as a gcuid mianadóireachta, iomadú bloc agus loighic chomhdhearcadh, ag tabhairt an méid sin ar fad do Shlabhra Beacon. Tugadh [The Merge](/roadmap/merge/) ar an imeacht seo. Chomh luath agus a tharla The Merge, ní raibh dhá bhlocshlabhra ann a thuilleadh. Ina áit sin, ní raibh ach cruthúnais-gheallta amháin Ethereum, a éilíonn anois dhá chliaint éagsúla in aghaidh an nóid. Is é an Slabhra Beacon an ciseal comhthoil anois, líonra piaraí le piaraí de chliaint chomhthoil a láimhseálann gossip bloc agus loighic comhdhearcadh, agus is iad na cliaint bhunaidh a fhoirmíonn an ciseal forghníomhaithe, atá freagrach as gossiping agus idirbhearta a fhorghníomhú, agus bainistíocht a dhéanamh ar staid Ethereum. Is féidir leis an dá shraith cumarsáid a dhéanamh lena chéile ag baint úsáide as an Inneall API. + +## Cad a dhéanann an Slabhra Beacon? {#what-does-the-beacon-chain-do} + +Is é an Beacon Chain an t-ainm a thugtar ar mhórleabhar cuntas a rinne agus a chomhordaigh líonra Ethereum [gealltóirí](/staking/) sular thosaigh na geallsealbhóirí sin ag bailíochtú bloic Ethereum fíor. Ní phróiseálann sé idirbhearta ná ní láimhseálann sé idirghníomhaíochtaí conartha cliste toisc go bhfuil sé sin á dhéanamh sa chiseal forghníomhaithe. Tá an Slabhra Beacon freagrach as rudaí cosúil le láimhseáil bloc agus fianú, ag rith an algartam rogha forc, agus luach saothair agus pionóis a bhainistiú. Léigh tuilleadh ar ár [leathanach ailtireachta nód](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## Tionchar Slabhra Beacon {#beacon-chain-features} + +### Ag tabhairt isteach geallta {#introducing-staking} + +Thug an Slabhra Beacon [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) isteach chuig Ethereum. Coinníonn sé seo Ethereum slán agus tuilleann bailíochtaithe níos mó ETH sa phróiseas. Go praiticiúil, is éard atá i gceist le gealltóireacht ná ETH a dhéanamh chun bogearraí bailíochtaithe a ghníomhachtú. Mar ghealltóir, ritheann tú na bogearraí a chruthaíonn agus a bhailíochtaíonn bloic nua sa slabhra. + +Feidhmíonn gealladh an cuspóir céanna agus a bhíodh ag [mianadóireacht](/developers/docs/consensus-mechanisms/pow/mining/), ach tá sé difriúil ar go leor bealaí. Bhíodh caiteachas mór roimh ré ag teastáil ón mianadóireacht i bhfoirm crua-earraí cumhachtacha agus tomhaltas fuinnimh, rud a d'fhág go raibh barainneachtaí scála ann, agus go gcuirfí lárú chun cinn. Níor tháinig an mhianadóireacht freisin le haon cheanglas sócmhainní a ghlasáil mar chomhthaobhacht, rud a chuir srian le cumas an phrótacail pionós a ghearradh ar dhrochghníomhaithe tar éis ionsaí. + +Mar gheall ar an aistriú go cruthúnais-gheallta bhí Ethereum i bhfad níos sláine agus díláraithe i gcomparáid le cruthúnais oibre. Dá mhéad daoine a ghlacann páirt sa líonra, is amhlaidh is díláraithe agus sábháilte ó ionsaithe a éiríonn sé. + +Agus is comhpháirt bhunúsach do [cruthúnas-gheallta a úsáid mar mheicníocht chomhthoiliúil don Ethereum slán, neamhdhíobhálach don timpeallacht agus inscálaithe atá againn anois](/roadmap/vision/). + + + Más spéis leat a bheith i do bhailíochtóir agus cabhrú le Ethereum a shlánú, foghlaim tuilleadh faoi ghealltóireacht. + + +### Socrú le haghaidh roinnte {#setting-up-for-sharding} + +Ós rud é gur chumasc an Slabhra Beacon leis an Ethereum Mainnet bunaidh, thosaigh pobal Ethereum ag iarraidh an líonra a roinnt. + +Tá sé de bhuntáiste ag baint le cruthúnas-gheallta go bhfuil clár de gach táirgeoir bloc ceadaithe ag aon am ar leith, gach ceann acu le ETH i gceist. Socraíonn an chlárlann seo an chéim chun an cumas a roinnt agus a shárú ach roinntear freagrachtaí sonracha líonra go hiontaofa. + +Tá an fhreagracht seo i gcodarsnacht le cruthúnais-oibre, áit nach bhfuil aon oibleagáid ar an líonra mianadóirí agus go bhféadfadh siad stop a chur le mianadóireacht agus a gcuid bogearraí nód a mhúchadh go buan ar an toirt gan iarmhairt. Níl aon chlárlann de mholtóirí bloc aitheanta ann freisin agus níl aon bhealach iontaofa ann chun freagrachtaí líonra a roinnt go sábháilte. + +[Tuilleadh faoi roinnt](/roadmap/danksharding/) + +## Gaol idir uasghrádú {#relationship-between-upgrades} + +Tá na huasghráduithe Ethereum go léir idirghaolmhar. Mar sin déanaimis achoimre ar conas a théann an Slabhra Beacon i bhfeidhm ar na huasghráduithe eile. + +### Slabhra Beacon agus The Merge {#merge-and-beacon-chain} + +Ar dtús, bhí An Slabhra Beacon ann ar leithligh ó Ethereum Mainnet, ach rinneadh iad a chumasc in 2022. + + + An Comhoiriúnú + + +### Shards agus an Slabhra Beacon {#shards-and-beacon-chain} + +Ní féidir le roinntear dul isteach go sábháilte ar éiceachóras Ethereum ach amháin le meicníocht comhdhearcadh cruthúnais-gheallta i bhfeidhm. Thug an Slabhra Beacon isteach roinnt, a 'cumaisc' le Mainnet, ag réiteach an bhealaigh le haghaidh roinnte chun cabhrú le Ethereum a roinnt níos mó. + + + Slabhraí roinnte + + +## Further Reading + +- [Tuilleadh faoi uasghrádú Ethereum sa todhchaí](/roadmap/vision) +- [Tuilleadh faoi ailtireacht nód](/developers/docs/nodes-and-clients/node-architecture) +- [Níos mó faoi cruthúnas-gheallta](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/ga/roadmap/danksharding/index.md b/public/content/translations/ga/roadmap/danksharding/index.md new file mode 100644 index 00000000000..460df63bac8 --- /dev/null +++ b/public/content/translations/ga/roadmap/danksharding/index.md @@ -0,0 +1,95 @@ +--- +title: Danksharding +description: Foghlaim faoi Proto-Danksharding agus Danksharding - dhá uasghrádú seicheamhach le haghaidh Ethereum a scálú. +lang: ga +summaryPoints: + - Is uasghrádú ilchéime é Danksharding chun inscálaitheacht agus cumas Ethereum a fheabhsú. + - Cuireann an chéad chéim, Proto-Danksharding, Blobaí sonraí le bloic + - Cuireann blobaí sonraí bealach níos saoire ar fáil le rolladh suas sonraí a phostáil chuig Ethereum agus is féidir na costais sin a chur ar aghaidh chuig úsáideoirí i bhfoirm táillí idirbhirt níos ísle. + - Níos déanaí, leathnóidh Danksharding iomlán an fhreagracht as blobaí sonraí a fhíorú thar fho-thacair nóid, ag scálú Ethereum go níos mó ná 100,000 idirbheart in aghaidh an tsoicind. +--- + +# Danksharding {#danksharding} + +Is le **Danksharding** a dhéanfar bhlocshlabhra inscálaithe fíor den Ethereum, ach tá roinnt uasghráduithe prótacail ag teastáil chun é sin a bhaint amach. Is céim idirmheánach é **Proto-Danksharding** feadh na slí. Tá sé mar aidhm ag an dá cheann idirbhearta ar Chiseal 2 a dhéanamh chomh saor agus is féidir d’úsáideoirí agus ba cheart dóibh Ethereum a scála go 100,000 idirbheart in aghaidh an tsoicind. + +## Cad is Proto-Danksharding ann? {#what-is-protodanksharding} + +Is bealach é Proto-Danksharding, ar a dtugtar [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) freisin, le haghaidh [rollups](/layer-2/#rollups) chun sonraí níos saoire a chur le bloic. Tagann an t-ainm ón dá thaighdeoir a mhol an smaoineamh: Protolambda agus Dankrad Feist. Go stairiúil, bhí teorainn le rolladh suas maidir le cé chomh saor is féidir leo idirbhearta úsáideora a dhéanamh toisc go bpostálann siad a n-idirbheart i `CALLDATA`. + +This is expensive because it is processed by all Ethereum nodes and lives onchain forever, even though rollups only need the data for a short time. Tugann Proto-Danksharding isteach bllobaí sonraí ar féidir iad a sheoladh agus a cheangal le bloic. Níl rochtain ag an EVM ar na sonraí sna blobaí seo agus scriostar iad go huathoibríoch tar éis tréimhse ama socraithe (socraithe go 4096 ré ag am scríofa, nó thart ar 18 lá). Ciallaíonn sé seo gur féidir le rollaí suas a gcuid sonraí a sheoladh i bhfad níos saoire agus an coigilteas a chur ar aghaidh chuig úsáideoirí deiridh i bhfoirm idirbhearta níos saoire. + + + +Rollups are a way to scale Ethereum by batching transactions offchain and then posting the results to Ethereum. Go bunúsach tá rolladh suas comhdhéanta de dhá chuid: seiceáil sonraí agus forghníomhú. Is iad na sonraí seicheamh iomlán na n-idirbheart atá á phróiseáil ag rolladh suas chun an t-athrú stáit atá á phostáil chuig Ethereum a tháirgeadh. Is éard atá sa tseiceáil forghníomhaithe athfhorghníomhú na n-idirbheart sin ag gníomhaí macánta éigin ("promhadóir") chun a chinntiú go bhfuil an t-athrú stáit atá beartaithe i gceart. Chun an tseiceáil forghníomhaithe a dhéanamh, caithfidh na sonraí idirbhirt a bheith ar fáil ar feadh fada go leor le gur féidir le duine ar bith iad a íoslódáil agus a sheiceáil. Ciallaíonn sé seo gur féidir leis an promhadóir aon iompar mímhacánta a dhéanann an seicheamhóir rolladh suas a aithint agus dúshlán a thabhairt dó. Mar sin féin, ní gá go mbeadh sé ar fáil go deo. + + + + + +Rollups post commitments to their transaction data onchain and also make the actual data available in data blobs. Ciallaíonn sé seo gur féidir le promhadóirí a sheiceáil go bhfuil na gealltanais bailí nó dúshlán a thabhairt do shonraí a cheapann siad atá mícheart. Ag leibhéal an nóid, coinnítear blobaí sonraí sa chliant comhthola. Deimhníonn na cliaint chomhthola go bhfuil na sonraí feicthe acu agus go ndearnadh iad a fhorleathadh timpeall an líonra. Dá gcoimeádfaí na sonraí go deo, bheadh ​​na cliaint seo ata agus bheadh riachtanais crua-earraí móra ann le nóid a rith. Ina áit sin, prúnáiltear na sonraí go huathoibríoch ón nód gach 18 lá. Léiríonn fianuithe comhdhearcadh na gcliant go raibh dóthain deis ag na cruthaitheoirí na sonraí a fhíorú. The actual data can be stored offchain by rollup operators, users or others. + + + +### Conas a dhéantar sonraí blob a fhíorú? {#how-are-blobs-verified} + +Postálann Rollaí suas na hidirbhearta a dhéanann siad i mblobaí sonraí. Postálann siad "tiomantas" do na sonraí freisin. Déanann siad é seo trí fheidhm iltéarmach a fheistiú ar na sonraí. Is féidir an fheidhm seo a mheas ansin ag pointí éagsúla. Mar shampla, má shainímid feidhm thar a bheith simplí `f(x) = 2x-1` ansin is féidir linn an fheidhm seo a mheas le haghaidh `x = 1`, `x = 2`, `x = 3` ag tabhairt na dtorthaí `1, 3, 5`. Cuireann promhadóir an fheidhm chéanna i bhfeidhm ar na sonraí agus déanann sé meastóireacht orthu ag na pointí céanna. Má athraítear na sonraí bunaidh, ní bheidh an fheidhm comhionann, agus mar sin ní dhéantar meastóireacht ar na luachanna ag gach pointe ach an oiread. I ndáiríre, tá an tiomantas agus an cruthúnas níos casta toisc go bhfuil siad imfhillte i bhfeidhmeanna cripteagrafacha. + +### Cad é KZG? {#what-is-kzg} + +Seasann KZG do Kate-Zaverucha-Goldberg - ainmneacha na dtrí [údar bunaidh](https://link.springer.com/chapter/10.1007/978-3-642-17373-8_11) de scéim a laghdaíonn blob sonraí síos go dtí ["tiomantas" cripteagrafach](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) beag. Ní mór blob na sonraí a chuirtear isteach trí rolladh suas a fhíorú lena chinntiú nach bhfuil mí-iompair sa rolladh suas. Is éard atá i gceist leis seo ná go ndéanann cruthaitheoir na hidirbhearta sa bhlob arís le seiceáil go raibh an tiomantas bailí. Tá sé seo go coincheapúil mar an gcéanna leis an mbealach a sheiceálann cliaint fhorghníomhaithe bailíocht idirbhearta Ethereum ar chiseal 1 ag baint úsáide as cruthúnais Merkle. Promhadh eile is ea KZG a oireann cothromóid iltéarmach do na sonraí. Déanann an tiomantas meastóireacht ar an iltéarmach ag pointí rúnda sonraí áirithe. D’oirfeadh an promhadóir an t-iltéarmach céanna ar na sonraí agus dhéanfadh measúnú air ag na luachanna céanna, ag seiceáil gurb ionann an toradh. Is bealach é seo chun na sonraí a fhíorú atá comhoiriúnach le teicnící nialais-eolais a úsáideann roinnt rolladh agus ar deireadh thiar codanna eile den phrótacal Ethereum. + +### Cad a bhí i Searmanas KZG? {#what-is-a-kzg-ceremony} + +Bhí an searmanas KZG ina bhealach do go leor daoine ó ar fud an phobail Ethereum teaghrán rúnda randamach uimhreacha a ghiniúint ar féidir a úsáid chun roinnt sonraí a fhíorú. Tá sé an-tábhachtach nach mbeadh an teaghrán uimhreacha seo ar eolas agus nach féidir le duine ar bith é a athchruthú. Chun é seo a chinntiú, fuair gach duine a ghlac páirt sa searmanas teaghrán ón rannpháirtí roimhe seo. Ansin chruthaigh siad roinnt luachanna randamacha nua (m.sh. trí ligean dá mbrabhsálaí gluaiseacht na luiche a thomhas) agus é a mheascadh leis an luach roimhe sin. Chuir siad an luach ar aghaidh chuig an gcéad rannpháirtí eile ansin agus scrios siad as a n-inneall áitiúil é. Chomh fada agus a rinne duine amháin sa searmanas é seo go hionraic, ní bheidh an luach deiridh ar eolas ag ionsaitheoir. + +Bhí searmanas EIP-4844 KZG oscailte don phobal agus ghlac na mílte duine páirt chun a eantrópacht (randamach) féin a chur leis. San iomlán bhí breis agus 140,000 ionchur, rud a fhágann gurb é an searmanas is mó dá leithéid ar domhan. Le go mbainfí an bonn den searmanas, bheadh ​​ar 100% de na rannpháirtithe sin a bheith gníomhach mímhacánta. Ó thaobh na rannpháirtithe de, má tá a fhios acu go raibh siad macánta, ní gá muinín a chur ar aon duine eile mar go bhfuil a fhios acu gur bhain siad amach an searmanas (shásaigh siad ina n-aonar riachtanas an rannpháirtí macánta 1-as-N). + + + +When a rollup posts data in a blob, they provide a "commitment" that they post onchain. Tá an gealltanas seo mar thoradh ar oiriúnacht iltéarmach do na sonraí a mheas ag pointí áirithe. Sainmhínítear na pointí seo leis na huimhreacha randamacha a ghintear sa searmanas KZG. Is féidir le cruthaitheoirí ansin an ilchineálach a mheas ag na pointí céanna chun na sonraí a fhíorú - má thagann siad ar na luachanna céanna tá na sonraí ceart. + + + + + +Más eol do dhuine na láithreacha randamacha a úsáideadh don tiomantas, is furasta dóibh iltéarmach nua a ghiniúint a oireann do na pointí sonracha sin (i.e. “imbhualadh”). Ciallaíonn sé seo go bhféadfadh siad sonraí a chur leis nó a bhaint den bhlob agus fós cruthúnas bailí a sholáthar. Chun é seo a chosc, in ionad na láithreacha rúnda iarbhír a thabhairt do na cruthaitheoirí, faigheann siad na láithreacha atá imfhillte i "mbosca dubh" cripteagrafach ag baint úsáide as cuair éilipseacha. Déanann siad seo na luachanna a scrobhadh go héifeachtach ar bhealach nach féidir na bunluachanna a aisiompú, ach le roinnt cruthaitheoirí agus fíoraitheoirí ailgéabar cliste fós is féidir leo iltéarmaí a mheas ag na pointí a léiríonn siad. + + + + + Ní leanann Danksharding ná Proto-Danksharding an tsamhail thraidisiúnta "sharding" a bhfuil sé mar aidhm aige an blocshlabhra a roinnt ina ilchodanna. Níl slabhraí shard mar chuid den treochlár a thuilleadh. Ina áit sin, úsáideann Danksharding sampláil sonraí dáilte ar fud blobaí chun Ethereum a scálú. Tá sé seo i bhfad níos simplí a chur i bhfeidhm. Tagraítear don tsamhail seo uaireanta mar “scriosadh sonraí”. + + +## Cad is Danksharding ann? {#what-is-danksharding} + +Is é Danksharding réadú iomlán an scálaithe rollta a thosaigh le Proto-Danksharding. Tabharfaidh Danksharding méideanna ollmhóra spáis ar Ethereum le haghaidh rollaí suas chun a gcuid sonraí idirbheart comhbhrúite a dhumpáil. Ciallaíonn sé seo go mbeidh Ethereum in ann tacú leis na céadta rollaí suas aonair gan stró agus na milliúin idirbheart in aghaidh an tsoicind a thabhairt i gcrích. + +Oibríonn sé seo trí na blobaí atá ceangailte le bloic a leathnú ó shé (6) i Proto-Danksharding, go 64 i Danksharding iomlán. Is nuashonruithe iad an chuid eile de na hathruithe atá ag teastáil ar an mbealach a fheidhmíonn cliaint chomhthola le cur ar a gcumas na blobaí móra nua a láimhseáil. Tá roinnt de na hathruithe sin ar an treochlár cheana féin ar son críocha eile atá neamhspleách ar Danksharding. Mar shampla, éilíonn Danksharding go gcuirfí scaradh tairgeoir-tógálaí i bhfeidhm. Uasghrádú é seo a scarann ​​na tascanna a bhaineann le bloic a thógáil agus bloic a mholadh thar bhailitheoirí éagsúla. Ar an gcaoi chéanna, tá gá le sampláil infhaighteachta sonraí le haghaidh Danksharding, ach tá sé ag teastáil freisin chun cliaint an-éadrom a fhorbairt nach stórálann mórán sonraí stairiúla ("cliaint gan stát"). + + + +Teastaíonn deighilt idir an tairgeoir agus an tógálaí chun cosc ​​a chur ar bhailitheoirí aonair tiomantais agus cruthúnais costasacha a ghiniúint le haghaidh 32MB de shonraí blobaí. Chuirfeadh sé seo an iomarca brú ar na geallsealbhóirí baile agus d’éileodh sé orthu infheistíocht a dhéanamh i gcrua-earraí níos cumhachtaí, rud a ghortódh an dílárú. Ina áit sin, glacann tógálaithe bloc speisialaithe freagracht as an obair ríomhaireachtúil daor seo. Ansin, cuireann siad a gcuid bloic ar fáil mholtóirí bloic le craoladh. Roghnaíonn an moltóir an bloc is brabúsaí de na bloic. Is féidir le duine ar bith blobaí a fhíorú go saor agus go mear, agus mar sin is féidir le gnáthbhailíochtóir ar bith a dheimhniú go bhfuil na tógálaithe bloic ag feidhmiú go hionraic. Ceadaíonn sé seo na blobaí móra a phróiseáil gan dílárú a íobairt. D'fhéadfaí tógálaithe bloc a chleachtaíonn mí-iompair a dhíbirt as an líonra agus a ghearradh amach - rachaidh daoine eile isteach ina n-áit toisc gur gníomhaíocht bhrabúsach é blocthógáil. + + + + + +Tá gá le sampláil infhaighteachta sonraí le go bhféadfaidh bailíochtaithe sonraí blobaí a fhíorú go tapa agus go héifeachtach. Trí úsáid a bhaint as sampláil infhaighteachta sonraí, is féidir leis na bailíochtaithe a bheith an-chinnte go raibh na sonraí blobaí ar fáil agus go ndearnadh iad i gceart. Ní féidir le gach bailíochtóir ach cúpla pointe sonraí a shampláil go randamach agus cruthúnas a chruthú, rud a chiallaíonn nach gcaithfidh aon bhailitheoir an blob iomlán a sheiceáil. Má tá aon sonraí in easnamh, aithneofar go tapa é agus diúltófar don bhlob. + + + +### Dul chun cinn reatha {#current-progress} + +Tá Full Danksharding roinnt blianta ar shiúl. Idir an dá linn, tá an searmanas KZG tugtha chun críche le breis agus 140,000 cion, agus tá an [EIP](https://eips.ethereum.org/EIPS/eip-4844) le haghaidh Proto-Danksharding tagtha in aibíocht. Tá an togra seo curtha chun feidhme go hiomlán i ngach líontán tástála, agus chuaigh sé beo ar Mainnet le huasghrádú líonra Cancun-Deneb ("Dencun") i mí an Mhárta 2024. + +### Tuilleadh léitheoireachta {#further-reading} + +- [Nótaí Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) - _Vitalik Buterin_ +- [Nótaí Dankrad ar Danksharding](https://notes.ethereum.org/@dankrad/new_sharding) +- [Pléann Dankrad, Proto agus Vitalik Danksharding](https://www.youtube.com/watch?v=N5p0TB77flM) +- [Searmanas KZG](https://ceremony.ethereum.org/) +- [Labhraíonn Devcon Carl Beekhuizen ar shocruithe iontaofa](https://archive.devcon.org/archive/watch/6/the-kzg-ceremony-or-how-i-learnt-to-stop-worrying-and-love-trusted-setups/?tab=YouTube) +- [Tuilleadh ar shampláil infhaighteachta sonraí le haghaidh blobaí](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) +- [Dankrad Feist ar thiomantais agus cruthúnais KZG](https://youtu.be/8L2C6RDMV9Q) +- [Tiomantais iltéarmacha KZG](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) diff --git a/public/content/translations/ga/roadmap/dencun/index.md b/public/content/translations/ga/roadmap/dencun/index.md new file mode 100644 index 00000000000..575b0bdffd6 --- /dev/null +++ b/public/content/translations/ga/roadmap/dencun/index.md @@ -0,0 +1,120 @@ +--- +title: Ceisteanna Coitianta Cancun-Deneb (Dencun) +description: Ceisteanna coitianta maidir le huasghrádú líonra Cancun-Deneb (Dencun) +lang: ga +--- + +# Cancun-Deneb (Dencun) {#dencun} + +Is uasghrádú é Cancun-Deneb (Dencun) ar líonra Ethereum, a ghníomhaíonn **Proto-Danksharding (EIP-4844)**, ag tabhairt isteach sonraí sealadacha **blobaí** le haghaidh [ciseal 2 (L2)](/glossary/#layer-2) stóráil rollta níos saoire. + +Cuireann cineál nua idirbhirt ar chumas soláthraithe rolladh suas sonraí a stóráil ar bhealach níos cost-éifeachtaí i rud ar a dtugtar "blobs." Cinntítear go mbeidh Blobaí ar fáil don líonra ar feadh timpeall 18 lá (níos cruinne, 4096 [agaí](/glossary/#epoch)). Tar éis na tréimhse seo, bearrtar blobaí ón líonra, ach is féidir le feidhmchláir fós bailíocht a gcuid sonraí a fhíorú ag baint úsáide as cruthúnais. + +Laghdaíonn sé seo go mór costas rollú suas, cuireann sé teorainn le fás slabhra, agus cabhraíonn sé le tacaíocht a thabhairt do níos mó úsáideoirí agus slándáil agus sraith díláraithe oibreoirí nód á gcoinneáil ag an am céanna. + +## Cén uair a bheimid ag súil go léireoidh rolluithe táillí níos ísle de bharr Proto-Danksharding? {#when} + +- Cuireadh an t-uasghrádú seo i ngníomh ag aga 269568, ar **13-Mar-2024 ag 13:55PM (UTC)** +- Tá sé tugtha le fios ag gach mórsholáthraí rollta suas, ar nós Arbitrum nó Optimism, go dtabharfar tacaíocht do bhlobaí díreach tar éis an uasghrádaithe +- Féadfaidh an t-amlíne do thacaíocht rollta suas aonair a bheith éagsúil, mar ní mór do gach soláthraí a gcórais a nuashonrú chun leas a bhaint as an spás blobaí nua + +## Conas is féidir ETH a thiontú tar éis an gabhal crua? {#scam-alert} + +- \*\* Níl aon Ghníomh ag Teastáil do Do ETH\*\*: Tar éis uasghrádú Ethereum Dencun, ní gá do ETH a thiontú nó a uasghrádú. Fanfaidh iarmhéid do chuntais mar a chéile, agus beidh an ETH atá agat faoi láthair fós inrochtana ina fhoirm láithreach tar éis an ghabhail chrua. +- **Bí ar an airdeall ar Camscéimeanna!**  \*\* tá aon duine a thugann treoir duit do ETH a "uasghrádú" i mbun scéiméireachta.\*\* Níl aon rud le déanamh agat maidir leis an uasghrádú seo. Ní dhéanfar aon difear do do shócmhainní. Cuimhnigh, is é fanacht ar an eolas an chosaint is fearr i gcoinne camscéimeanna. + +[Tuilleadh maidir le camscéimeanna a aithint agus a sheachaint](/slándáil/) + +## Cén fhadhb atá á réiteach ag uasghrádú líonra Dencun? {#network-impact} + +Tugann Dencun aghaidh go príomha ar **inscálaitheacht** (níos mó úsáideoirí agus níos mó idirbheart a láimhseáil) le **táillí incheannaithe**, agus **dílárú** an líonra á chothabháil. + +Tá cur chuige "láraithe ar rollú suas" á ghlacadh ag pobal Ethereum maidir lena fhás, rud a dhéanann príomhbhealach chun tacú le níos mó úsáideoirí go sábháilte de rollú suas ciseal 2. + +Láimhseálann líonraí rollta _próiseáil_ (nó “forghníomhú”) na n-idirbhearta scartha ó Mainnet agus ansin foilsíonn siad cruthúnas cripteagrafach agus/nó sonraí idirbhirt chomhbhrúite ar na torthaí ar ais go Mainnet chun taifid a choinneáil. Gabhann costas (i bhfoirm [gás](/gluais/#gas)) leis na cruthúnais seo a stóráil, a raibh ar gach oibreoir nód líonra é a stóráil go buan roimh Proto-Danksharding, rud a fhágann gur tasc costasach é. + +Cuireann tabhairt isteach Proto-Danksharding in uasghrádú Dencun stóráil sonraí níos saoire ar fáil do na cruthúnais seo gan a éileamh ar oibreoirí nód na sonraí seo a stóráil ach ar feadh thart ar 18 lá, agus ina dhiaidh sin is féidir sonraí a bhaint go sábháilte chun leathnú ar riachtanais crua-earraí a chosc. Toisc go mbíonn tréimhse aistarraingthe 7 lá ag rollú suas go hiondúil, níl aon athrú ar a samhail slándála fad is a bhíonn blobaí ar fáil ar L1 don tréimhse sin. Soláthraíonn an fhuinneog bhearrtha 18-lá maolán suntasach don tréimhse seo. + +[Tuilleadh ar scálú Ethereum](/treochlár/scálú/) + +## Conas a fhaightear rochtain ar sheanshonraí blobaí? {#historical-access} + +Cé go gcoimeádfaidh nóid rialta Ethereum -_staid reatha_ an líonra i gcónaí, is féidir sonraí blobaí stairiúla a chaitheamh amach thart ar 18 lá tar éis é a thabhairt isteach. Sula gcaitear amach na sonraí seo, cinntíonn Ethereum go bhfuil siad curtha ar fáil do gach rannpháirtí líonra, ag ligean am do: + +- Páirtithe leasmhara chun na sonraí a íoslódáil agus a stóráil. +- Críochnú na dtréimhsí dúshlán rollta go léir. +- Críochnú na n-idirbheart rollú suas. + +D’fhéadfadh sonraí blob _Stairiúil_ a bheith ag teastáil ar chúiseanna éagsúla agus is féidir iad a stóráil agus a rochtain trí roinnt prótacal díláraithe a úsáid: + +- Stórálann **Prótacail innéacsaithe tríú páirtí**, mar The Graph, na sonraí seo trí líonra díláraithe oibreoirí nód arna spreagadh ag meicníochtaí criptea-eacnamaíochta. +- Is prótacal díláraithe é **BitTorrent** inar féidir le saorálaithe na sonraí seo a choinneáil agus a dháileadh ar dhaoine eile. +- \*\* Tá sé mar aidhm ag [líonra tairsí Ethereum](/developers/docs/networking-layer/portal-network/)\*\* rochtain a sholáthar ar shonraí Ethereum go léir trí líonra díláraithe oibreoirí nód trí shonraí atá cosúil le BitTorrent a dháileadh i measc rannpháirtithe. +- **Tá cead ag úsáideoirí aonair** a gcóipeanna féin a stóráil i gcónaí d’aon sonraí is mian leo mar thagairt stairiúil. +- Tugtar dreasachtaí do **sholáthraithe rollta** chun na sonraí seo a stóráil chun eispéireas an úsáideora ar a rollú suas a fheabhsú. +- Is iondúil go ritheann **Taiscéalaithe bloc** nóid chartlainne a dhéanann innéacsú agus stóráil ar an bhfaisnéis seo go léir le haghaidh tagartha stairiúil éasca, a bhfuil rochtain ag úsáideoirí orthu trí chomhéadan gréasáin. + +Tá sé tábhachtach a thabhairt faoi deara go n-oibríonn an staid stairiúil athshlánaithe ar **shamhail iontaobhais 1-as-N**. Ciallaíonn sé seo nach bhfuil uait ach sonraí ó fhoinse iontaofa amháin chun a gcruinneas a fhíorú ag baint úsáide as staid reatha an líonra. + +## Conas a chuireann an t-uasghrádú seo le treochlár Ethereum níos leithne? {#roadmap-impact} + +Leagann Proto-Danksharding síos an chéim chun [Danksharding](/treochlár/danksharding/) a chur i bhfeidhm go hiomlán. Tá Danksharding deartha chun stóráil sonraí rollta suas a dháileadh ar fud oibreoirí nód, mar sin ní gá do gach oibreoir ach cuid bheag de na sonraí iomlána a láimhseáil. Méadóidh an dáileadh seo líon na blobaí sonraí in aghaidh an bhloc, rud atá riachtanach chun Ethereum a scálú chun níos mó úsáideoirí agus idirbhearta a láimhseáil. + +Tá an inscálaitheacht seo ríthábhachtach chun [tacaíocht a thabhairt do na billiúin úsáideoirí ar Ethereum] (/treochlár / scálaithe /) le táillí inacmhainne agus feidhmchláir níos forbartha, agus líonra díláraithe á chothabháil ag an am céanna. Gan na hathruithe seo, thiocfadh méadú ar éilimh chrua-earraí na n-oibreoirí nód, rud a fhágfadh go mbeadh gá le trealamh atá ag éirí níos costasaí. D’fhéadfadh sé seo praghas a chur ar oibreoirí níos lú, rud a d’fhág go mbeadh tiúchan rialaithe líonra i measc roinnt oibreoirí móra, rud a rachadh i gcoinne phrionsabal an díláraithe. + +## An ndéanann an t-uasghrádú seo difear do gach cliant Ethereum agus bailíochtaithe? {#client-impact} + +Déanann, éilíonn Proto-Danksharding (EIP-4844) nuashonruithe do chliaint forghníomhaithe agus do chliaint chomhthoil araon. Tá leaganacha eisithe ag gach príomhchliant Ethereum ag tacú leis an uasghrádú. Chun sioncrónú a choinneáil le hiar-uasghrádú líonra Ethereum, ní mór d'oibreoirí nód a chinntiú go bhfuil leagan cliant tacaithe á rith acu. Tabhair faoi deara go bhfuil an fhaisnéis faoi eisiúintí cliant íogair ó thaobh ama de, agus ba cheart d'úsáideoirí tagairt a dhéanamh do na nuashonruithe is déanaí le haghaidh na sonraí is déanaí. [Féach sonraí ar eisiúintí cliant tacaithe](https://blog.ethereum.org/2024/02/27/dencun-mainnet-announcement#client-releases). + +Láimhseálann na cliaint chomhthola an bogearra _Validator_, a bhfuil na nuashonraithe go léir aige chun freastal ar an uasghrádú. + +## Conas a théann Cancun-Deneb (Dencun) i bhfeidhm ar Goerli nó ar líonraí tástála Ethereum eile? {#testnet-impact} + +- Tá Devnets, Goerli, Sepolia agus Holesky go léir tar éis dul faoi uasghrádú Dencun agus tá Proto-Danksharding ag feidhmiú go hiomlán +- Is féidir le forbróirí Rollú suas na líonraí seo a úsáid le haghaidh tástála EIP-4844 +- Ní chuirfidh an t-athrú seo ar gach líonra tástála isteach go hiomlán ar fhormhór na n-úsáideoirí + +## An úsáidfidh gach idirbheart ar L2anna spás blobaí sealadach anois, nó an mbeidh tú in ann rogha a dhéanamh? {#calldata-vs-blobs} + +Tá an rogha ag idirbhearta rollta suas ar Chiseal 2 (L2) de Ethereum dhá chineál stórála sonraí a úsáid: spás blob sealadach nó calldata buan conartha cliste. Is rogha eacnamaíoch é spás Blob, a sholáthraíonn stóráil go sealadach ar chostas níos ísle. Ráthaíonn sé infhaighteacht sonraí do na tréimhsí dúshláin riachtanacha go léir. Ar an láimh eile, cuireann calldata conartha cliste stóráil bhuan ar fáil ach tá sé níos costasaí. + +Is iad soláthraithe rolladh suas go príomha a dhéanann an cinneadh idir spás blob nó sonraí call a úsáid. Bunaíonn siad an cinneadh seo ar an éileamh reatha ar spás blobaí. Má tá éileamh ard ar spás blobaí, féadfaidh rolladh sonraí glao a roghnú chun a chinntiú go gcuirtear na sonraí suas go tráthúil. + +Cé gur féidir go teoiriciúil d’úsáideoirí an cineál stórála is fearr leo a roghnú, is gnách go ndéanann soláthraithe rolladh suas an rogha seo a bhainistiú. Chuirfí castacht leis an rogha seo a thairiscint d’úsáideoirí, go háirithe in idirbhearta cuachta cost-éifeachtacha. Le sonraí sonracha a fháil faoin rogha seo, ba cheart d’úsáideoirí tagairt a dhéanamh don doiciméadacht a sholáthraíonn soláthraithe aonair rollta suas. + +## An laghdóidh 4844 gás L1? {#l1-fee-impact} + +Ní go suntasach. Tugtar isteach margadh gáis nua go heisiach do spás blobaí, le húsáid ag soláthraithe rollta suas. _Cé gur féidir táillí ar L1 a laghdú trí shonraí rollta suas a dhíluchtú go blobaí, díríonn an t-uasghrádú seo go príomha ar tháillí L2 a laghdú. D’fhéadfadh laghdú táillí ar L1 (Mainnet) tarlú mar éifeacht dara hordú go pointe níos lú._ + +- Beidh laghdú gáis L1 comhréireach le glacadh/úsáid sonraí blobaí ag soláthraithe rollta suas +- Is dócha go bhfanfaidh gás L1 iomaíoch ó ghníomhaíocht nach mbaineann le rolladh suas +- Éileoidh rollaí suas a ghlacann úsáid spás blob níos lú gás L1, rud a chuideoidh le táillí gáis L1 a bhrú síos sa ghearrthéarma +- Tá spás blobaí fós teoranta, mar sin má tá blobaí laistigh de bhloc sáithithe/lán, d’fhéadfadh go mbeadh gá le rollú suas a gcuid sonraí a phostáil mar shonraí buana idir an dá linn, rud a ardódh praghsanna gáis L1 agus L2 + +## An laghdóidh sé seo táillí ar bhlocshlabhraí ciseal 1 EVM eile? {#alt-l1-fee-impact} + +Ní féidir. Baineann buntáistí Proto-Danksharding go sonrach le rollaí ciseal 2 Ethereum a stórálann a gcuid cruthúnais ar chiseal 1 (Mainnet). + +Ní chiallaíonn a chomhoiriúnacht le Meaisín Fíorúil Ethereum (EVM) go bhfaighidh líonra aon tairbhe as an uasghrádú seo. Ní stórálann líonraí a oibríonn go neamhspleách ar Ethereum (cibé acu comhoiriúnach le EVM nó nach gan a bheith) a gcuid sonraí ar Ethereum agus ní bhainfidh siad aon tairbhe as an uasghrádú seo. + +[Tuilleadh faoi rolluithe suas ciseal 2](/ciseal-2/) + +## An bhfuil tú níos mó d’fhoghlaimeoir amhairc? {#visual-learner} + + + +_Díghlasáil scálú Ethereum, EIP-4844 - Finematics _ + + + +_Blobspace 101 le Domothy — Gan Bainc_ + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP4844.com](https://www.eip4844.com/) +- [EIP-4844: Idirbhearta blobaí Shard (Proto-Danksharding)](https://eips.ethereum.org/EIPS/eip-4844) +- [Fógra Dencun Mainnet](https://blog.ethereum.org/2024/02/27/dencun-mainnet-announcement) - _Blog FoundationEthereum_ +- [Treoir an tSíobaire ar Ethereum: Proto-Danksharding](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum/#proto-danksharding-eip-4844) - _Jon Charbonneau_ +- [Ceisteanna Coitianta Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) - _Vitalik Buterin_ +- [Míniú domhain ar EIP-4844: Croílár Uasghrádú Cancun](https://medium.com/@ebunker.io/an-in-depth-explanation-of-eip-4844-the-core-of-the-cancun-upgrade-de7b13761d2c) - _Ebunker_ +- [Nuashonrú AllCoreDevs 016](https://tim.mirror.xyz/HzH5MpK1dnw7qhBSmzCfdCIxpwpD6DpwlfxtaAwEfro) - _Tim Beiko_ diff --git a/public/content/translations/ga/roadmap/future-proofing/index.md b/public/content/translations/ga/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..325d3e3f463 --- /dev/null +++ b/public/content/translations/ga/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Todhchaí Ethereum a rathú +description: Stroighníonn na huasghráduithe seo Ethereum mar bhunchiseal athléimneach, díláraithe don todhchaí, is cuma cad é. +lang: ga +image: /images/roadmap/roadmap-future.png +alt: "Treochlár Ethereum" +template: roadmap +--- + +Ní gá go mbeadh codanna áirithe den treochlár ag teastáil chun Ethereum a roinnt nó a dhaingniú sa ghearrthéarma, ach Ethereum a shocrú le haghaidh cobhsaíochta agus iontaofachta i bhfad amach anseo. + +## Friotaíocht chandamach {#quantum-resistance} + +Déanfar cuid den [cripteagrafaíocht](/glossary/#cryptography) a dhaingníonn Ethereum an lae inniu a chur i mbaol nuair a thiocfaidh an ríomhaireacht chandamach i gcrích. Cé gur dócha go bhfuil ríomhairí chandamach fiche nó tríocha bliain ar shiúl ó bheith ina bhagairt fíor do cripteagrafaíocht nua-aimseartha, tá Ethereum á thógáil chun a bheith slán ar feadh na gcéadta bliain amach romhainn. Ciallaíonn sé seo [Ethereum frithchandamach](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) a dhéanamh chomh luath agus is féidir. + +Is é an dúshlán atá roimh fhorbróirí Ethereum ná go mbraitheann an prótacal reatha [cruthúnas-gheallta](/glossary/#pos) ar scéim sínithe an-éifeachtach ar a dtugtar BLS chun vótaí a chomhiomlánú ar [bhloic bhailí](/glossary/#block). Tá an scéim sínithe seo briste ag ríomhairí chandamacha, ach níl na roghanna frithsheasmhacha chandamach chomh héifeachtach. + +Is eol go bhfuil na scéimeanna gealltanais [“KZG”](/roadmap/danksharding/#what-is-kzg) a úsáidtear in áiteanna éagsúla ar fud Ethereum chun rúin cripteagrafacha a ghiniúint candamach-leochaileach. Faoi láthair, déantar é seo a shárú trí úsáid a bhaint as “socruithe iontaofa” ina ngineann go leor úsáideoirí randamacht nach féidir le ríomhaire chandamach a aisiompú. Mar sin féin, is é an réiteach idéalach ná cripteagrafaíocht chandamach sábháilte a ionchorprú ina ionad. Tá dhá chur chuige cheannródaíocha ann a d’fhéadfadh a bheith ina n-ionadaí éifeachtacha don scéim BLS: [STARK-bhunaithe](https://hackmd.io/@vbuterin/stark_aggregation) agus [laitíse-bhunaithe](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) ag síniú. **Tá taighde agus fréamhshamhlú á ndéanamh orthu seo fós**. + + Léigh faoi KZG agus socruithe iontaofa + +## Ethereum níos simplí agus níos éifeachtaí {#simpler-more-efficient-ethereum} + +Cruthaíonn castacht deiseanna le haghaidh fabhtanna nó leochaileachtaí ar féidir le hionsaitheoirí leas a bhaint astu. Mar sin, is cuid den treochlár Ethereum a shimpliú agus fáil réidh leis an gcód a d'fhan thart trí uasghráduithe éagsúla ach nach bhfuil ag teastáil a thuilleadh nó ar féidir é a fheabhsú anois. Is fusa d'fhorbróirí bunchód níos barainní, níos simplí a choimeád agus réasúnú a dhéanamh faoi. + +Tá roinnt nuashonruithe a dhéanfar ar an [Meaisín Fíorúil Ethereum (EVM)](/developers/docs/evm) chun é a dhéanamh níos simplí agus níos éifeachtaí. Ina measc seo tá [ódchód SELFDESTRUCT a bhaint](https://hackmd.io/@vbuterin/selfdestruct) - ordú is annamh a úsáidtear nach bhfuil ag teastáil a thuilleadh agus a d’fhéadfadh a bheith contúirteach le húsáid i gcásanna áirithe, go háirithe nuair a bheidh sé in éineacht le huasghráduithe eile sa todhchaí ar mhúnla stórála Ethereum. Tacaíonn [cliaint Ethereum](/glossary/#consensus-client) freisin le roinnt seanchineálacha idirbheart is féidir a bhaint go hiomlán anois. Is féidir an bealach a ríomhtar [gas](/glossary/#gas) a fheabhsú freisin agus is féidir modhanna níos éifeachtaí a thabhairt isteach don uimhríocht atá mar bhonn agus mar thaca ag roinnt oibríochtaí cripteagrafacha. + +Mar an gcéanna, tá nuashonruithe ann is féidir a dhéanamh le codanna eile de chliaint Ethereum an lae inniu. Sampla amháin is ea go n-úsáideann cliaint reatha forghníomhaithe agus comhdhearcadh cineál difriúil comhbhrú sonraí. Beidh sé i bhfad níos éasca agus níos iomasaí sonraí a roinnt idir na cliaint nuair a bheidh an scéim chomhbhrúite aontaithe ar fud an ghréasáin ar fad. + +## Dul chun cinn reatha {#current-progress} + +Tá an chuid is mó de na huasghráduithe a theastaíonn chun Ethereum a chosaint amach anseo ** fós sa chéim taighde agus d'fhéadfadh go mbeadh siad roinnt blianta fada ar shiúl** go dtí go gcuirfear i bhfeidhm iad. Is dócha go dtiocfaidh uasghráduithe ar nós SELFDESTRUCT a bhaint agus comhchuibhiú na scéime comhbhrúite a úsáidtear sa fhorghníomhú agus cliaint chomhthoil níos luaithe ná cripteagrafaíocht chandamach frithsheasmhach. + +**Tuilleadh léitheoireachta** + +- [Gás](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Struchtúir sonraí](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/ga/roadmap/index.md b/public/content/translations/ga/roadmap/index.md new file mode 100644 index 00000000000..4ee44167604 --- /dev/null +++ b/public/content/translations/ga/roadmap/index.md @@ -0,0 +1,120 @@ +--- +title: Treochlár Ethereum +description: An cosán chuig níos mó inscálaitheachta, slándála agus inbhuanaitheachta do Ethereum. +lang: ga +template: roadmap +image: /images/heroes/roadmap-hub-hero.jpg +alt: "Treochlár Ethereum" +summaryPoints: +buttons: + - + content: Uasghráduithe breise + toId: na-athruithe-atá ag teacht + - + content: Uasghráduithe san am atá caite + href: /history/ + variant: outline +--- + +Tá Ethereum cheana féin ina ardán cumhachtach le haghaidh comhordú domhanda, ach tá sé fós á fheabhsú. Déanfaidh sraith feabhsuithe uaillmhianach Ethereum a uasghrádú óna fhoirm reatha go ardán lánscála, a bheidh an-athléimneach go hiomlán. Tá na huasghráduithe seo leagtha amach sa treochlár Ethereum. + +**Chun eolas a fháil ar uasghráduithe roimhe seo ar Ethereum, tabhair cuairt ar ár leathanach [Stair](/history/)** + +## Cad iad na hathruithe atá ag teacht ar Ethereum? {#what-changes-are-coming} + +Imlíníonn an treochlár Ethereum na feabhsuithe sonracha a dhéanfar ar an bprótacal amach anseo. Tríd is tríd, tabharfaidh an treochlár na buntáistí seo a leanas d’úsáideoirí Ethereum: + + + + + + + + +## Cén fáth a bhfuil treochlár ag teastáil ó Ethereum? {#why-does-ethereum-need-a-roadmap} + +Faigheann Ethereum uasghrádú rialta a fheabhsaíonn a scalability, slándáil, nó inbhuanaitheacht. Ceann de phríomhláidreachtaí Ethereum is ea oiriúnú de réir mar a thagann smaointe nua chun cinn ó thaighde agus forbairt. Tugann inoiriúnaitheacht an tsolúbthacht do Ethereum chun dul i ngleic le dúshláin atá ag teacht chun cinn agus coinneáil suas leis na cinn teicneolaíochta is airde chun cinn. + + + +Tá an treochlár mar thoradh den chuid is mó ar bhlianta oibre ag taighdeoirí agus forbróirí - toisc go bhfuil an prótacal an-teicniúil - ach is féidir le haon duine spreagtha a bheith rannpháirteach. Tosaíonn smaointe de ghnáth mar phlé ar fhóram mar [ethresear.ch](https://ethresear.ch/), [Ethereum Magicians](https://ethereum-magicians.org/) nó ar fhreastalaí easaontais Eth R&D. D’fhéadfadh gur freagairtí iad ar leochaileachtaí nua a aimsítear, moltaí ó eagraíochtaí atá ag obair sa chiseal feidhmchlár (amhail [dapps](/glossary/#dapp) agus malartuithe) nó ó fhrithchuimilte aitheanta d’úsáideoirí deiridh (cosúil le costais nó luasanna idirbhirt). Nuair a aibíonn na smaointe seo, is féidir iad a mholadh mar [Moltaí Feabhsúcháin Ethereum](https://eips.ethereum.org/). Déantar é seo ar fad go poiblí ionas gur féidir le duine ar bith ón bpobal páirt a ghlacadh ag am ar bith. + +[Tuilleadh faoi rialachas Ethereum](/rialachas/) + + + + +

              Cad ab ea ETH2?

              + +

              Baineadh úsáid go coitianta as an téarma 'Eth2' chun cur síos a dhéanamh ar thodhchaí Ethereum roimh an aistriú go cruthúnas-gheallta ach cuireadh deireadh leis i bhfabhar téarmaíocht níos cruinne. Úsáideadh é ar dtús chun idirdhealú a dhéanamh ar líonra Ethereum roimh an aistriú go cruthúnais-gheallta agus an líonra tar éis sin, nó uaireanta chun tagairt a dhéanamh do na cliaint Ethereum éagsúla (cuireadh cliaint fhorghníomhaithe orthu uaireanta mar chliaint ETH1 agus tagraíodh do chliaint chomhaontaithe uaireanta mar chliaint ETH2).

              + +
              + +## An athróidh treochlár Ethereum le himeacht ama? {#will-ethereums-roadmap-change-over-time} + +**Tá - beagnach cinnte**. Is é an treochlár an plean reatha chun Ethereum a uasghrádú, a chlúdaíonn pleananna gar-théarma agus pleananna don todhchaí. Táimid ag súil go n-athróidh an treochlár de réir mar a bheidh faisnéis agus teicneolaíocht nua ar fáil. + +Smaoinigh ar threoirleabhar Ethereum mar thacar rún chun Ethereum a fheabhsú; is é hipitéis lárnach na dtaighdeoirí agus na forbróirí é maidir leis an mbealach chun cinn is fearr is féidir le Ethereum. + +## Cathain a bheidh an treochlár críochnaithe? {#when-will-the-roadmap-be-finished} + +Tá tosaíocht níos ísle ag baint le roinnt uasghráduithe agus is dócha nach gcuirfear i bhfeidhm iad go ceann 5-10 mbliana (m.sh. friotaíocht chandamach). **Tá sé casta uainiú beacht gach uasghrádaithe a thabhairt** mar go n-oibrítear ar go leor míreanna treochlár go comhthreomhar agus go bhforbraítear iad ar luasanna éagsúla. Is féidir leis an bpráinn a bhaineann le huasghrádú a athrú freisin le himeacht ama ag brath ar fhachtóirí seachtracha (m.sh. d’fhéadfadh go mbeadh níos práinní cripteagrafaíocht chandamach-resistant de bharr léim tobann i bhfeidhmíocht agus infhaighteacht ríomhairí chandamach). + +Bealach amháin chun smaoineamh ar fhorbairt Ethereum ná de réir analaí leis an éabhlóid bhitheolaíoch. Is mó an seans go n-éireoidh le líonra atá in ann dul in oiriúint do dhúshláin nua agus folláine a choinneáil ná le ceann atá in aghaidh athraithe, cé go mbeidh gá le níos lú athruithe ar an bprótacal de réir mar a éiríonn an líonra níos feidhmiúla agus níos inscálaithe. + +## An gcaithfidh mé aon rud a dhéanamh nuair atá uasghrádú ann? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Is gnách nach mbíonn tionchar ag uasghráduithe ar úsáideoirí deiridh ach amháin trí thaithí úsáideora níos fearr agus prótacal níos sláine a sholáthar agus b’fhéidir níos mó roghanna maidir le conas idirghníomhú le Ethereum. **Ní cheanglaítear ar úsáideoirí rialta páirt ghníomhach a ghlacadh in uasghrádú, agus ní gá dóibh aon rud a dhéanamh** chun a gcuid sócmhainní a dhaingniú. Beidh ar oibritheoirí [Node](/glossary/#node) a gcuid cliant a nuashonrú chun ullmhú le haghaidh uasghrádú. D'fhéadfadh athruithe a bheith mar thoradh ar roinnt uasghráduithe d'fhorbróirí feidhmchlár. Mar shampla, d'fhéadfadh sé go gcuirfeadh uasghráduithe éaga staire ar fhorbróirí feidhmchlár sonraí stairiúla a fháil ó fhoinsí nua. + +## Cad mar gheall ar The Verge, The Splurge, srl? {#what-about-the-verge-splurge-etc} + +[ Mhol Vitalik Buterin fís don treochlár Ethereum](https://twitter.com/VitalikButerin/status/1741190491578810445) a eagraíodh i roinnt catagóirí a bhí nasctha ag a n-iarmhairtí ar ailtireacht Ethereum. Áiríodh leis: + +- **An Cumasc**: uasghráduithe a bhaineann leis an athrú ó [cruthúna oibre](/glossary/#pow) go [cruthúnas-gheallta](/glossary/#pos) +- **An Borradh**: uasghráduithe a bhaineann le hinscálaitheacht trí [rolluithe](/glossary/#rollups) agus sciartha sonraí +- **The Scourge**: uasghráduithe a bhaineann le frithsheasmhacht cinsireachta, díláraithe agus rioscaí prótacail ó [MEV](/glossary/#mev) +- **The Verge**: uasghráduithe a bhaineann le fíorú [bloic](/glossary/#block) níos éasca +- **An Purge**: uasghráduithe a bhaineann le costais ríomhaireachta na nóid reatha a laghdú agus an prótacal a shimpliú +- **The Splurge**: uasghráduithe eile nach n-oireann go maith do na catagóirí roimhe seo. + +Shocraigh muid gan an téarmaíocht seo a úsáid mar theastaigh uainn múnla níos simplí agus níos úsáideoir-lárnach a úsáid. Cé go n-úsáidimid teanga atá dírithe ar an úsáideoir, fanann an fhís mar an gcéanna leis an bhfís a mhol Vitalik. + +## Cad mar gheall ar sciartha? {#what-about-sharding} + +Is ionann sciartha agus an blocshlabhra Ethereum a roinnt ionas nach mbeidh fo-thacair de [bhailitheoirí](/glossary/#validator) freagrach ach as codán de na sonraí iomlána. Bhí sé i gceist ar dtús gurb é seo an bealach le Ethereum. a scáláil. Mar sin féin, d'fhorbair rolluithe[lciseal 2](/glossary/#layer-2) i bhfad níos tapúla ná mar a bhíothas ag súil leis agus tá go leor scálaithe curtha ar fáil acu cheana féin, agus cuirfidh siad i bhfad níos mó ar fáil tar éis Proto-Danksharding a chur i bhfeidhm. Ciallaíonn sé seo nach bhfuil gá le "slabhraí sciartha" a thuilleadh agus gur baineadh den treochlár iad. + +## Ag lorg uasghráduithe teicniúla ar leith? {#looking-for-specific-technical-upgrades} + +- [Pectra](/roadmap/pectra) - Prague/Electra hardfork that brings new approach to account abstraction, improves scalability and more. +- [Danksharding](/roadmap/danksharding) - Déanann Danksharding rolluithe ciseal 2 i bhfad níos saoire d'úsáideoirí trí “blobaí” sonraí a chur le bloic Ethereum. +- [Aistarraingtí geallta](/staking/backals) - Chuir uasghrádú Shanghai/Capella ar chumas aistarraingtí geallta ar Ethereum, rud a chuir ar chumas daoine a ETH geallta a dhíghlasáil. +- [Críochnaitheacht sliotán aonair](/roadmap/single-slot-finality) - In ionad fanacht cúig nóiméad déag, d'fhéadfaí bloic a mholadh agus a thabhairt chun críche sa sliotán céanna. Tá sé seo níos áisiúla do aipeanna agus i bhfad níos deacra a ionsaí. +- [Deighilt idir an tairgeoir agus an tógálaí](/roadmap/pbs) - Trí na tascanna blocthógála agus blocthograí a roinnt ar bhailitheoirí ar leith cruthaítear bealach níos cothroime, níos frithdhíobhálach don chinsireacht agus níos éifeachtaí do Ethereum teacht ar chomhdhearcadh. +- [Toghchán ceannaire rúnda](/roadmap/secret-leader-election) - Is féidir cripteagrafaíocht chliste a úsáid lena chinntiú nach ndéantar céannacht mholtóir an bhloic reatha a phoibliú, á chosaint ar chineálacha áirithe ionsaí. +- [Astarraingt cuntais](/roadmap/account-abstraction) - Is éard is astarraingt cuntais ann aicme uasghrádaithe a thacaíonn le sparán cliste conartha ó dhúchas ar Ethereum, seachas a bheith ag baint úsáide as meánearraí casta. +- [Crainn Verkle](/roadmap/verkle-trees) - Is struchtúr sonraí iad crainn Verkle is féidir a úsáid chun cliaint gan stát ar Ethereum a chumasú. Beidh méid beag spáis stórála ag teastáil ó na cliaint “gan stát” seo ach beidh siad fós in ann bloic nua a fhíorú. +- [Easpa stáit](/roadmap/statelessness) - Beidh cliaint gan stát in ann bloic nua a fhíorú gan a bheith orthu méid mór sonraí a stóráil. Soláthróidh sé seo na buntáistí go léir a bhaineann le nód a reáchtáil gan ach codán beag de chostais an lae inniu. diff --git a/public/content/translations/ga/roadmap/merge/index.md b/public/content/translations/ga/roadmap/merge/index.md new file mode 100644 index 00000000000..c77a9b3fbe4 --- /dev/null +++ b/public/content/translations/ga/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: An Comhoiriúnú +description: Foghlaim faoi An Cumasc - nuair a ghlac Mainnet Ethereum cruthúnas-gheallta. +lang: ga +template: upgrade +image: /images/upgrades/merge.png +alt: +summaryPoint1: Úsáideann Ethereum Mainnet cruthúnas-gheallta, ach ní raibh sé seo amhlaidh i gcónaí. +summaryPoint2: An Cumasc a tugadh ar an uasghrádú ón mbunmheicníocht cruthúnais oibre go cruthúnais-gheallta. +summaryPoint3: Tagraíonn an Cumasc do chumasc Ethereum Mainnet bunaidh le blocshlabhra cruthúnas-de-geallta ar leith ar a dtugtar an Slabhra Beacon, atá ann anois mar slabhra amháin. +summaryPoint4: Laghdaigh an Cumasc tomhaltas fuinnimh Ethereum faoi ~99.95%. +--- + + + Cuireadh an Cumasc as feidhm an 15, Meán Fómhair 2022. Chríochnaigh sé seo aistriú Ethereum go comhdhearcadh cruthúnais-gheallta, ag laghdú go hoifigiúil ar chruthúnas oibre agus ag laghdú tomhaltas fuinnimh de ~99.95%. + + +## Cad a bhí i gceist leis An Cumasc? {#what-is-the-merge} + +Ba é an Cumasc an ciseal forghníomhaithe bunaidh de Ethereum (an Mainnet atá ann ó [genesis](/history/#frontier)) lena ciseal comhaontaithe cruthúnais-gheallta nua, an Slabhra Beacon. Chuir sé deireadh leis an ngá atá le mianadóireacht dhian ar fhuinneamh agus ina ionad sin chuir sé ar chumas an líonra a dhaingniú le ETH geallta. Ba chéim fíor-spreagúil é chun fís Ethereum a fhíorú - níos mó roinnte, slándála agus inbhuanaitheachta. + + + +Ar dtús, scaradh an [Slabhra Beacon](/roadmap/beacon-chain/)ó [Mainnet](/glossary/#mainnet). Leanadh le Ethereum Mainnet - lena chuntais go léir, a iarmhéideanna, a chonarthaí cliste agus a staid blocshlabhra - a dhaingniú le [cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow/), fiú agus an Slabhra Beacon ar siúl ag an am céanna ag baint úsáide as [cruthanas-gheallta](/developers/docs/consensus-mechanisms/pos/). Ba é an Cumasc nuair a tháinig an dá chóras seo le chéile ar deireadh, agus cuireadh cruthúnas-oibre i gceist in ionad cruthúnas-gheallta go buan. + +Samhlaigh gur spásárthach é Ethereum a sheol sula raibh sé réidh go leor le haghaidh turas idir-réaltach. Leis an Slabhra Beacon, thóg an pobal inneall nua agus cabhlach cruaite. Tar éis tástáil shuntasach, bhí sé in am an t-inneall nua a mhalartú go te don sean-cheann lár-eitilte. Chumasc sé seo an t-inneall nua, níos éifeachtaí leis an long a bhí ann cheana féin, rud a chuir ar a chumas roinnt solasbhlianta tromchúiseacha a chur isteach agus dul i mbun thaisteal na cruinne. + +## Cumasc le Mainnet {#merging-with-mainnet} + +Dhaingnigh cruthúnas-oibre Ethereum Mainnet ón ngéineas go dtí An Cumasc. Chumasaigh sé seo an blocshlabhra Ethereum a bhfuilimid go léir cleachaithe leis chun teacht ar an saol i mí Iúil 2015 leis na seanghnéithe go léir - idirbhearta, conarthaí cliste, cuntais, etc. + +Le linn stair Ethereum, d'ullmhaigh na forbróirí d'aistriú sa deireadh ó chruthúnas oibre go cruthúnas-gheallta. Ar 1 Nollaig, 2020, cruthaíodh an Slabhra Beacon mar bhlocshlabhra ar leith go Mainnet, ag rith go comhthreomhar. + +Ní raibh an Slabhra Beacon ag próiseáil idirbhearta Mainnet ar dtús. Ina áit sin, bhí sé ag teacht ar chomhdhearcadh maidir lena stát féin trí chomhaontú ar bhailitheoirí gníomhacha agus a n-iarmhéideanna cuntas. Tar éis tástáil fhairsing, tháinig sé in am don Slabhra Beacon teacht ar chomhdhearcadh ar shonraí an domhain fíor. Tar éis An Cumasc, ba é an Slabhra Beacon an t-inneall comhdhearcadh do na sonraí líonra go léir, lena n-áirítear idirbhearta ciseal forghníomhaithe agus iarmhéideanna cuntais. + +B'ionann an Cumasc agus an t-athrú oifigiúil go dtí an Slabhra Beacon a úsáid mar inneall táirgeadh bloc. Níl an mhianadóireacht mar mhodh chun bloic bhailí a tháirgeadh a thuilleadh. Ina áit sin, tá an ról seo glactha ag na bailíochtaithe cruthúnais-gheallta agus tá siad freagrach anois as bailíocht gach idirbhirt a phróiseáil agus as bloic a mholadh. + +Níor cailleadh aon stair in An Cumasc. De réir mar a chumasc Mainnet leis an Slabhra Beacon, chomhcheangail sé stair idirbheartaíochta iomlán Ethereum freisin. + + +D'athraigh an t-aistriú seo go dtí cruthúnas-gheallta n bealach a eisítear éitear. Foghlaim tuilleadh faoi eisiúint éitear roimh An Cumasc agus ina dhiaidh. + + +### Úsáideoirí agus sealbhóirí {#users-holders} + +**Níor athraigh an Cumasc aon rud do shealbhóirí/úsáideoirí.** + +_Ní mór é seo a athrá_: Mar úsáideoir nó sealbhóir ETH nó aon sócmhainn dhigiteach eile ar Ethereum, chomh maith le geallsealbhóirí neamh-nód-oibriúcháin, **ní gá duit aon rud a dhéanamh le do chistí nó sparán chun cuntas a thabhairt ar The Merge.** Níl in ETH ach ETH. Níl a leithéid de rud ann agus "sean-ETH"/"ETH nua" nó "ETH1"/"ETH2" agus oibríonn na sparán díreach mar an gcéanna i ndiaidh The Merge agus a rinne siad roimhe seo - is dócha gur scamóirí iad daoine a insíonn a mhalairt duit. + +In ainneoin cruthúnais oibre a mhalartú, d'fhan stair iomlán Ethereum ó genesis slán agus gan athrú mar gheall ar an aistriú go dtí cruthúnas-gheallta. Tá aon chistí a choinnítear i do sparán roimh The Merge fós inrochtana tar éis An Cumasc. **Ní gá aon ghníomh a dhéanamh chun do chuid a uasghrádú.** + +[Tuilleadh faoi shlándáil Ethereum](/security/#eth2-token-scam) + +### Oibreoirí nód agus forbróirí dapp {#node-operators-dapp-developers} + + + +I measc na bpríomh-mhíreanna gníomhaíochta tá: + +1. Rith _both_ cliant comhdhearcadh agus cliant forghníomhaithe; níl críochphointí tríú páirtí chun sonraí forghníomhaithe a fháil ag obair a thuilleadh ó The Merge. +2. Fíordheimhnigh do chliaint forghníomhaithe agus comhdhearcadh le rún JWT roinnte ionas gur féidir leo cumarsáid a dhéanamh go sábháilte. +3. Socraigh seoladh `faighteoir táille` chun do leideanna táillí idirbhirt tuillte/MEV a fháil. + +Mura gcomhlánaíonn tú an chéad dá mhír thuas, féachfar ar do nód mar "as líne" go dtí go ndéanfar an dá shraith a shioncronú agus a fhíordheimhniú. + +Mura socraítear `faighteoir táille` ligfidh sé do do bhailitheoir é féin a iompar mar is gnách, ach caillfidh tú amach leideanna táillí gan dóite agus aon MEV a bheadh ​​tuillte agat ar shlí eile sna bloic a mholann do bhailitheoir. + + + + +Suas go dtí An Cumasc, ba leor cliant forghníomhaithe (amhail Geth, Erigon, Besu nó Nethermind) chun bloic,. a bhí mar ábhar cúlchainte ar an idirlíon, a fháil, iad a bhailíochtú mar is ceart agus a scaipeadh. _Tar éis An Cumasc_, braitheann bailíocht na n-idirbheart atá laistigh de phálasta forghníomhaithe anois freisin ar bhailíocht an "bhloic chomhthoil" ina bhfuil sé cuimsithe. + +Mar thoradh air sin, éilíonn nód Ethereum iomlán anois cliant forghníomhaithe agus cliant comhdhearcadh araon. Oibríonn an dá chliaint seo le chéile ag baint úsáide as Inneall API nua. Éilíonn an Inneall API fíordheimhniú ag baint úsáide as rún JWT, a chuirtear ar fáil don dá chliaint a cheadaíonn cumarsáid shlán. + +I measc na bpríomh-mhíreanna gníomhaíochta tá: + +- Suiteáil cliant comhdhearcadh chomh maith le cliant forghníomhaithe +- Fíordheimhnigh do chliaint forghníomhaithe agus comhdhearcadh le rún JWT roinnte ionas gur féidir leo cumarsáid a dhéanamh go sábháilte lena chéile. + +Mura gcomhlánaíonn tú na míreanna thuas beidh an chuma ar do nód a bheith "as líne" go dtí go ndéanfar an dá shraith a shioncronú agus a fhíordheimhniú. + + + + + +Tháinig an Cumasc le hathruithe ar chomhdhearcadh, lena n-áirítear freisin athruithe a bhaineann le: + +
                +
              • struchtúr bloc
              • +
              • uainiú sliotán/bloc
              • +
              • athruithe opcode
              • +
              • sources of onchain randomness
              • +
              • coincheap ceann sábháilte agus bloic chríochnaithe
              • +
              + +Le haghaidh tuilleadh eolais, féach ar an bhlagphost seo le Tim Beiko ar Conas a imríonn an Cumasc Tionchar ar Chiseal Feidhmchlár Ethereum. + +
              + +## An Cumasc agus tomhaltas fuinnimh {#merge-and-energy} + +Chuir an Cumasc deireadh le cruthúnais oibre do Ethereum agus chuir sé tús le ré Ethereum éiceabhach níos inbhuanaithe. Thit tomhaltas fuinnimh Ethereum thart ar 99.95%, rud a fhágann gur blocshlabhra glas é Ethereum. Foghlaim tuilleadh faoi [Tomhaltas fuinnimh Ethereum](/energy-consumption/). + +## An Cumasc agus scálú {#merge-and-scaling} + +Shocraigh an Cumasc freisin an chéim le haghaidh tuilleadh uasghrádaithe inscálaithe nach bhféadfaí a dhéanamh faoi chruthúnas oibre, rud a thugann Ethereum céim níos gaire don scála iomlán, don tslándáil agus don inbhuanaitheacht a bhfuil cuntas orthu ina [fís Ethereum a bhaint amach.](/roadmap/vision/). + +## Míthuiscintí faoi An Cumasc {#misconceptions} + + + +Tá dhá chineál nóid Ethereum ann: nóid ar féidir leo bloic a mholadh agus nóid nach molann. + +Níl na nóid a mholann bloic ach líon beag de na nóid iomlána ar Ethereum. Áirítear leis an gcatagóir seo nóid mhianadóireachta faoi chruthúnas oibre (PoW) agus nóid bhailíochtaithe faoi chruthúnas-gheallta (PoS). Éilíonn an chatagóir seo acmhainní eacnamaíocha a thiomnú (cosúil le cumhacht hash GPU mar chruthúnas oibre nó ETH geallta mar chruthúnas-gheallta) mar mhalairt ar an gcumas an chéad bhloc eile a mholadh ó am go chéile agus luach saothair prótacail a thuilleamh. + +Ní cheanglaítear ar na nóid eile ar an líonra (i.e. an tromlach) aon acmhainní eacnamaíocha a thiomnú thar ríomhaire de ghrád tomhaltóra a bhfuil 1-2 TB de stóráil ar fáil agus nasc idirlín aige. Ní mholann na nóid seo bloic, ach tá ról ríthábhachtach acu fós chun an líonra a dhaingniú trí gach tairgeoir bloc a choinneáil cuntasach trí éisteacht le haghaidh bloic nua agus trína mbailíocht a fhíorú ar theacht dóibh de réir rialacha comhdhearcadh an líonra. Má tá an bloc bailí, leanann an nód ar aghaidh ag iomadú tríd an líonra. Má tá an bloc neamhbhailí ar chúis ar bith, déanfaidh na bogearraí nód neamhaird air mar neamhbhailí agus stopfaidh sé a iomadú. + +Is féidir le duine ar bith faoi cheachtar meicníocht chomhthoil (cruthúnas oibre nó cruthúnas-gheallta) nód neamh-bhloctháirgthe a rith; seo rud a mholtar go láidir do gach úsáideoir má tá na hacmhainní acu. Tá sé thar a bheith luachmhar do Ethereum nód a rith agus tugann sé buntáistí breise d'aon duine a ritheann ceann, mar shlándáil fheabhsaithe, príobháideacht agus friotaíocht cinsireachta. + +Is ríthábhachtach an cumas do dhuine ar bith a bheith in ann a nód féin a reáchtáil chun cosaint a dhéanamh ar dhílárú líonra Ethereum. + +Tuilleadh faoi do nód féin a rith + + + + + +Is táirge ar éileamh líonra iad táillí gáis i gcoibhneas le hacmhainn an ghréasáin. Níor cháin an Cumasc úsáid cruthúnais oibre, ag aistriú go cruthúnais-gheallta i leith comhdhearcadh, ach níor athraigh sé go suntasach aon pharaiméadair a mbíonn tionchar díreach aige ar acmhainn nó ar thréchur an líonra. + +Le treochlár rollú-lárnach, tá iarrachtaí á ndíriú ar ghníomhaíocht úsáideoirí a scálaiú ag ciseal 2, agus ciseal 1 Mainnet á chumasú mar chiseal socraíochta díláraithe slán optamaithe le haghaidh stóráil sonraí rollta chun cabhrú le hidirbhearta rollta suas a dhéanamh go heaspónantúil níos saoire. Is réamhtheachtaí ríthábhachtach é an t-aistriú go cruthúnais i leith é seo a bhaint amach. Tuilleadh faoi ghás agus táillí. + + + + +Is féidir "luas" idirbhirt a thomhas ar chúpla bealach, lena n-áirítear am le cur san áireamh i mbloc agus am le tabhairt chun críche. Athraíonn an dá cheann seo beagán, ach ní ar bhealach a thabharfaidh úsáideoirí faoi deara. + +Go stairiúil, ar chruthúnas oibre, ba é an sprioc a bhí ann bloc nua a bheith ann gach ~13.3 soicind. Faoi chruthúnas-gheallta, tarlaíonn sliotáin go beacht gach 12 soicind, agus tugann gach ceann díobh deis do bhailitheoir bloc a fhoilsiú. Bíonn bloic ag formhór na sliotán, ach ní gá go mbeadh bloc ag gach sliotán (i.e. tá bailíochtóir as líne). I gcás cruthúnais-gheallta, déantar bloic ~10% níos minice ná mar a dhéantar ar chruthúnas oibre. Ba athrú measartha neamhshuntasach é seo agus ní dócha go dtabharfaidh úsáideoirí faoi deara é. + +Thug cruthúnas-gheallta coincheap críochnaitheacht an idirbhirt nach raibh ann roimhe seo. Le linn cruthúnais oibre, éiríonn an cumas bloc a aisiompú thar a bheith níos deacra nuair a dhéantar gach bloc pasála a bhaintear de bhreis ar idirbheart, ach ní shroicheann sé nialas riamh. Faoi chruthúnas i gceist, déantar bloic a chuachadh ina dtréimhsí (réisí ama 6.4 nóiméad ina bhfuil 32 seans ar bhloic) a vótálann bailíochtaithe orthu. Nuair a thagann deireadh le ré, vótálann bailíochtaithe ar cheart an ré a mheas 'go bhfuil údar maith leis'. Má aontaíonn bailíochtaithe údar a thabhairt do ré, tabharfar chun críche é sa chéad tréimhse eile. Tá sé neamh-inmharthana go heacnamaíoch idirbhearta críochnaithe a chealú mar go mbeadh gá le breis agus trian den ETH iomlán atá i ngeall air a fháil agus a dhó. + + + + + +Ar dtús tar éis An Cumasc, ní fhéadfadh geallsealbhóirí rochtain a fháil ach ar leideanna táillí agus MEV a thuilltear mar thoradh ar thograí bloc. Cuirtear na luaíochtaí seo chun sochair do chuntas neamhgheallta arna rialú ag an bhailitheoir (ar a dtugtar faighteoir na táille), agus tá siad ar fáil láithreach. Tá na luach saothair seo ar leithligh ó luaíochtaí prótacail as dualgais bhailíochtóra a chomhlíonadh. + +Ó uasghrádú líonra Shanghai/Capella, is féidir le geallsealbhóirí seoladh aistarraingthe a ainmniú anois chun tús a chur le híocaíochtaí uathoibríocha a fháil ar aon iarmhéid gealltanais barrachais (ETH os cionn 32 ó luaíochtaí prótacail). Chuir an t-uasghrádú seo ar chumas an bhailitheoir, freisin, a iarmhéid iomlán a dhíghlasáil agus a éileamh ar ais ón líonra. + +Tuilleadh maidir le haistarraingtí geallta + + + + +Ós rud é gur chumasaigh uasghrádú Shanghai/Capella aistarraingtí, spreagtar bailíochtaithe a n-iarmhéid geallta a tharraingt siar os cionn 32 ETH, toisc nach gcuireann na cistí seo leis an toradh agus go bhfuil siad faoi ghlas ar bhealach eile. Ag brath ar an APR (arna chinneadh ag an ETH iomlán geallta), féadfar iad a dhreasú chun a bhailíochtóir(í) a fhágáil chun a n-iarmhéid iomlán a fháil ar ais nó a d’fhéadfadh a bheith i gceist níos mó fós a ghealladh ag baint úsáide as a luaíochtaí chun tuilleadh toraidh a thuilleamh. + +Is caveat tábhachtach anseo, go bhfuil bealaí éalaithe bailíochtaithe iomlán teoranta ag an bprótacal, agus ní fhéadfaidh ach an oiread sin bailíochtaithe imeacht in aghaidh na tréimhse (gach 6.4 nóiméad). Athraíonn an teorainn seo ag brath ar líon na mbailitheoirí gníomhacha, ach tagann sé amach go dtí thart ar 0.33% den ETH iomlán atá i gceist agus is féidir é a fhágáil as an líonra in aon lá amháin. + +Cuireann sé seo cosc ​​​​ar oll-imeacht cistí geallta. Ina theannta sin, cuireann sé cosc ​​ar ionsaitheoir ionchasach a bhfuil rochtain aige ar chuid mhór den ETH iomlán ó chion insslagtha a dhéanamh agus na hiarmhéideanna bailíochtaithe ciontaithe go léir a bhaint/a tharraingt siar sa ré céanna sula bhféadfaidh an prótacal an pionós slais a fhorghníomhú. + +Tá an APR dinimiciúil d’aon ghnó freisin, rud a ligeann do mhargadh geallsealbhóirí cothromaíocht a fháil maidir leis an méid atá siad toilteanach a ghlacadh mar íocaíocht chun cabhrú leis an líonra a dhaingniú. Má tá an ráta ró-íseal, scoirfidh bailíochtaithe ag ráta atá teoranta ag an bprótacal. De réir a chéile ardóidh sé seo an APR do gach duine a fhanann, ag mealladh geallsealbhóirí nua nó iad siúd atá ag filleadh arís. + + +## Cad a tharla do 'Eth2'? {#eth2} + +Tá an téarma ‘Eth2’ imithe i léig. Tar éis ‘Eth1’ agus ‘Eth2’ a chumasc i slabhra amháin, ní gá a thuilleadh idirdhealú a dhéanamh idir dhá líonra Ethereum; níl ann ach Ethereum. + +Chun mearbhall a theorannú, tá na téarmaí seo nuashonraithe ag an bpobal: + +- Is é 'Eth1' an 'ciseal forghníomhaithe' anois, a láimhseálann idirbhearta agus cur i gcrích. +- Is é 'Eth2' an 'ciseal comhthola' anois, a láimhseálann comhdhearcadh cruthúnais-gheallta. + +Ní athraíonn na nuashonruithe téarmaíochta seo ach coinbhinsiúin ainmniúcháin; ní athraíonn sé seo spriocanna nó treochlár Ethereum. + +[Faigh tuilleadh eolais faoin athainmniú ‘Eth2’](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Gaol idir uasghrádú {#relationship-between-upgrades} + +Tá na huasghráduithe Ethereum go léir idirghaolmhar. Mar sin déanaimis achoimre ar an gcaoi a mbaineann An Cumasc leis na huasghráduithe eile. + +### An Cumasc agus an Slabhra Beacon {#merge-and-beacon-chain} + +Is ionann an Cumasc agus glacadh foirmiúil an Slabhra Beacon mar an ciseal nua comhthoil leis an gciseal forghníomhaithe Mainnet bunaidh. Tar éis An Cumaisc, sanntar bailíochtaithe chun Ethereum Mainnet a dhaingniú, agus ní modh bailí tairgeadh bloc é mianadóireacht ar [chruthúnas oibre](/developers/docs/consensus-mechanisms/pow/) a thuilleadh. + +Ina ionad sin, moltar bloic trí nóid a bhfuil ETH geallta acu a bhailíochtú mar mhalairt ar an gceart chun páirt a ghlacadh i gcomhthoil. Socraíonn na huasghráduithe seo an chéim le haghaidh uasghráduithe inscálaithe amach anseo, lena n-áirítear roinnt. + + + An Slabhra Beacon + + +### An Cumasc agus an uasghrádú Shanghai {#merge-and-shanghai} + +D'fhonn fócas a shimpliú agus a uasmhéadú ar aistriú rathúil go cruthúnais, níor chuimsigh an t-uasghrádú Cumasc gnéithe áirithe a raibh súil leo ar nós an cumas ETH geallta a tharraingt siar. Cumasaíodh an fheidhmiúlacht seo ar leithligh le huasghrádú Shanghai/Capella. + +Dóibh siúd atá fiosrach, foghlaim tuilleadh faoi [Cad a Tharlaíonn Tar éis an Chumaisc](https://youtu.be/7ggwLccuN5s?t=101), arna chur i láthair ag Vitalik ag imeacht Aibreán 2021 ETHGlobal. + +### An Cumasc agus roinnt {#merge-and-data-sharding} + +Ar dtús, ba é an plean a bhí ann oibriú ar sharding roimh An Cumasc chun aghaidh a thabhairt ar scalability. Mar sin féin, le borradh [réiteach scálaithe ciseal 2](/layer-2/), aistríodh an tosaíocht chun cruthúnas oibre a mhalartú go cruthúnas ar an gceist ar dtús. + +Tá na pleananna sciartha ag athrú go tapa, ach i bhfianaise ardú agus rathúlacht theicneolaíochtaí ciseal 2 chun feidhmiú idirbheart a scála, tá na pleananna sciartha aistrithe chuig an mbealach is fearr a aimsiú chun an t-ualach a bhaineann le sonraí glaonna comhbhrúite a stóráil ó chonarthaí rollta suas a dháileadh, rud a cheadaíonn fás easpónantúil in acmhainn an líonra. Ní bheadh ​​sé seo indéanta gan aistriú chuig cruthúnais-gheallta ar dtús. + + + Roinnt + + +## Tuilleadh léitheoireachta {#further-reading} + + + + diff --git a/public/content/translations/ga/roadmap/merge/issuance/index.md b/public/content/translations/ga/roadmap/merge/issuance/index.md new file mode 100644 index 00000000000..1c270f12025 --- /dev/null +++ b/public/content/translations/ga/roadmap/merge/issuance/index.md @@ -0,0 +1,134 @@ +--- +title: Conas a chuaigh an Cumasc i bhfeidhm ar sholáthar ETH +description: Miondealú ar an tionchar a bhí ag an Cumasc ar sholáthar ETH +lang: ga +--- + +# Conas a chuaigh an Cumasc i bhfeidhm ar sholáthar ETH {#how-the-merge-impacts-ETH-supply} + +Ba ionann an Cumasc agus aistriú líonra Ethereum ó chruthúnas oibre go cruthúnas-gheallta a tharla i Meán Fómhair 2022. Rinneadh athruithe ar an mbealach ar eisíodh ETH tráth an aistrithe sin. Roimhe seo, eisíodh ETH nua ó dhá fhoinse: an ciseal forghníomhaithe (i.e. Mainnet) agus an ciseal comhthola (i.e. Slabhra Beacon). Ó tharla an Cumasc, tá eisiúint ar an gciseal fhorghníomhú anois náid. Déanaimis é seo a bhriseadh síos. + +## Comhpháirteanna eisiúint ETH {#components-of-eth-issuance} + +Is féidir linn soláthar ETH a bhriseadh ina dhá phríomhfhórsa: eisiúint agus dó. + +Is é **eisiúint** ETH an próiseas chun ETH a chruthú nach raibh ann roimhe seo. Is é **dó críochniúl** ETH nuair a scriostar ETH atá ann cheana féin, rud a bhaintear as cúrsaíocht é. Ríomhtar an ráta eisithe agus dó ar roinnt paraiméadair, agus cinneann an t-iarmhéid eatarthu an ráta boilscithe/díbhoilscithe éitear mar thoradh air. + + + +- Sula n-aistríodh go cruthúnas-gheallta, eisíodh thart ar 13,000 ETH in aghaidh an lae do na mianadóirí +- Eisítear thart ar 1,700 ETH in aghaidh an lae do na geallsealbhóirí, bunaithe ar thart ar 14 milliún ETH iomlán atá i gceist +- Athraíonn an eisiúint ghealltóireachta beacht bunaithe ar an méid iomlán ETH atá i gceist +- **Ón gCumasc, níl fágtha ach ~1,700 ETH/lá, rud a fhágann ~88% ar eisiúint iomlán nua ETH** +- An dó: Athraíonn sé seo de réir éileamh an líonra. _Má_ breathnaítear meánphraghas gáis de 16 gwei ar a laghad in aon lá áirithe, fritháiríonn sé seo go héifeachtach an ~1,700 ETH a eisítear do bhailitheoirí agus tugann sé glanbhoilsciú ETH go nialas nó níos lú don lá sin. + + + +## Roimh an gCumasc (stairiúil) {#pre-merge} + +### Eisiúint ciseal fhorghníomhaithe {#el-issuance-pre-merge} + +Faoi chruthúnas-oibre, ní raibh idirghníomhú ag mianadóirí ach leis an gciseal forghníomhaithe agus tugadh luach saothair bloc dóibh dá mba iad an chéad mhianadóir a réitigh an chéad bhloc eile. Ós rud é [uasghrádú Constantinople](/history/#constantinople) in 2019 ba é an luach saothair seo ná 2 ETH in aghaidh an bhloc. Bronnadh luach saothair ar na mianadóirí freisin as bloic [ommer](/glossary/#ommer) a fhoilsiú, ar bhloic bhailí iad nach raibh sa slabhra canónach is faide. Mhéadaigh na luach saothair seo ag 1.75 ETH in aghaidh an ómra, agus b'ionann iad _i dteannta_ an luach saothair a eisíodh ón mbloc canónach. Gníomhaíocht dhian eacnamaíoch a bhí sa phróiseas mianadóireachta, rud a d'éiligh leibhéil arda eisiúint ETH go stairiúil chun í a choineáil ag gabháil. + +### Eisiúint ciseal comhdhearcadh {#cl-issuance-pre-merge} + +Chuaigh an [Slabhra Beacon](/history/#beacon-chain-genesis) beo sa bhliain 2020. In ionad mianadóirí, tá sé urraithe ag bailíochtaithe ag baint úsáide as cruthúnas-gheallta. Bhí an slabhra seo tosaithe ag úsáideoirí Ethereum ag taisceadh ETH aon-bhealach isteach i gconradh cliste ar Mainnet (an ciseal forghníomhaithe), a éisteann an Beacon Chain leis, ag creidiúnú don úsáideoir méid comhionann ETH ar an slabhra nua. Go dtí gur tharla The Merge, ní raibh bailíochtaitheoirí Slabhra Beacon ag próiseáil idirbhearta agus go bunúsach bhí siad ag teacht ar chomhdhearcadh maidir le staid an chomhthiomsaithe bailíochtaithe féin. + +Tugtar luach saothair ETH do bhailitheoirí ar an Slabhra Beacon as staid an tslabhra a fhianú agus as bloic a mholadh. Déantar luach saothair (nó pionóis) a ríomh agus a dháileadh ag gach tréimhse (gach 6.4 nóiméad) bunaithe ar fheidhmíocht an bhailitheoir. Tá luach saothair bhailitheoir **go suntasach** níos lú ná na luach saothair mhianadóireachta a eisíodh roimhe seo faoi chruthúnas oibre (2 ETH gach ~13.5 soicind), toisc nach bhfuil feidhmiú nód bailíochtaithe chomh dian ó thaobh na heacnamaíochta de agus mar sin ní éilíonn nó ní údaraíonn sé luach saothair chomh hard. + +### Díbhroinnt shonraithe roimh an Cumasc {#pre-merge-issuance-breakdown} + +Soláthar iomlán ETH: **~120,520,000 ETH** (ag am The Merge i Meán Fómhair 2022) + +**Eisiúint ciseal forghníomhaithe:** + +- Measadh gur 2.08 ETH in aghaidh an 13.3 soicind \*: **~4,930,000** ETH eisithe i gceann bliana +- Bhí ráta boilscithe **thart ar 4.09%** (4.93M in aghaidh na bliana / 120.5M san iomlán) mar thoradh air +- \* Áirítear leis seo an 2 ETH in aghaidh an bhloic chanónach, móide 0.08 ETH ar an meán le himeacht ama ó bhloic ommer. Úsáideann sé 13.3 soicind freisin, an sprioc ama bloc bhonnlíne gan aon tionchar ó [buama deacrachta](/glossary/#difficulty-buama). ([Féach an fhoinse](https://bitinfocharts.com/ethereum/)) + +**Eisiúint ciseal comhdhearcadh:** + +- Ag baint úsáide as 14,000,000 ETH iomlán atá i gceist, tá an ráta eisithe ETH thart ar 1700 ETH/lá ([Féach an fhoinse](https://ultrasound.money/)) +- Eisíodh torthaí i **~620,500** ETH thar tréimhse bliana +- Bhí ráta boilscithe **thart ar 0.52%** mar thoradh air (620.5K in aghaidh na bliana / 119.3M san iomlán) + + +Ráta eisiúna bliantúil iomlán (réamhchumasc): ~4.61% (4.09% + 0.52%)

              +Bhí ~88.7% den eisiúint ag dul chuig mianadóirí ar an gciseal forghníomhaithe (4.09 / 4.61 * 100)

              +Bhí ~11.3% á eisiúint chuig geallsealbhóirí ar an tsraith chomhthoil (0.52 / 4.61 * 100) +
              + +## Iar-chumascadh (an lá inniu) {#post-merge} + +### Eisiúint ciseal fhorghníomhaithe {#el-issuance-post-merge} + +Eisiúint ciseal fhorghníomhú tar éis an Chumaisc - nialas. Ní modh bailí chun bloctháirgthe a thuilleadh é cruthúnas-oibre faoi na rialacha uasghrádaithe comhaontaithe. Déantar gníomhaíocht uile na sraitheanna forghníomhaithe a phacáistiú i "bhloic beacon", a fhoilsíonn agus a fhianaíonn bailíochtaithe cruthúnais-gheallta. Tugtar cuntas ar leithligh ar luach saothair as bloic beacon a fhianú agus a fhoilsiú ar an tsraith chomhthoil. + +### Eisiúint ciseal comhdhearcadh {#cl-issuance-post-merge} + +Leanann eisiúint ciseal comhdhearcadh ar aghaidh inniu mar a rinneadh roimhe an Cumasc, le luach saothair beag do bhailitheoirí a fhianaíonn agus a mholann bloic. Leanann luaíochtaí bailíochtaithe ag fabhrú go _iarmhéideanna bailíochtaithe_ a bhainistítear laistigh den tsraith chomhthoil. Murab ionann agus na cuntais reatha (cuntais "forghníomhaithe") ar féidir idirbhearta a dhéanamh ar Mainnet, is cuntais Ethereum ar leithligh iad seo nach féidir idirbheartaíocht a dhéanamh go saor le cuntais Ethereum eile. Ní féidir cistí sna cuntais seo a tharraingt siar ach go dtí seoladh forghníomhaithe sonraithe amháin. + +Ó uasghrádú Shanghai/Capella a rinneadh i mí Aibreáin 2023, tá na tarraingtí siar seo cumasaithe do gheallsealbhóirí. Spreagtar geallsealbhóirí a _tuilleamh/luach saothair (iarmhéid os cionn 32 ETH)_ a bhaint toisc nach bhfuil na cistí seo ag cur lena meáchan geallta (ar 32 ar a mhéad). + +Féadfaidh geallsealbhóirí a roghnú freisin éirí as agus a n-iarmhéid bailíochtaithe iomlán a tharraingt siar. Chun a chinntiú go bhfuil Ethereum seasmhach, cuirtear teorainn ar líon na mbailitheoirí a fhágann go comhuaineach. + +Féadfaidh thart ar 0.33% de chomhaireamh iomlán an bhailíochtóra imeacht in aon lá ar leith. De réir réamhshocraithe, féadfaidh ceathrar (4) bhailitheoir imeacht in aghaidh na tréimhse (gach 6.4 nóiméad, nó 900 in aghaidh an lae). Ceadaítear do bhailíochtóir breise (1) imeacht as gach 65,536 (216) bhailitheoir breise os cionn 262,144 (218). Mar shampla, le breis agus 327,680 bailíochtaithe, féadfaidh cúigear (5) imeacht in aghaidh na tréimhse (1,125 in aghaidh an lae). Ceadófar seisear (6) le líon iomlán bailíochtóra gníomhach os cionn 393,216, agus mar sin de. + +De réir mar a imíonn níos mó bailíochtóirí siar, laghdófar de réir a chéile an t-uaslíon bailíochtóirí atá ag imeacht go ceithre cinn ar a laghad chun cosc ​​a chur d’aon ghnó ar mhéideanna móra díchobhsaithe ETH atá geallta a tharraingt siar i gcomhthráth. + +### Miondealú boilscithe tar éis an chumaisc {#post-merge-inflation-breakdown} + +- Soláthar iomlán ETH: **~120,520,000 ETH** (ag am The Merge i Meán Fómhair 2022) +- Eisiúint ciseal feidhmithe: **0** +- Eisiúint ciseal comhdhearcadh: Mar an gcéanna leis an méid thuas, **~0.52%** ráta eisiúna bliantúil (le 14 milliún ETH iomlán i gceist) + + +Ráta eisiúna bliantúil iomlán: ~0.52%

              +Glanlaghdú ar eisiúint bhliantúil ETH: ~88.7% ((4.61% - 0.52%) / 4.61% * 100) +
              + +##  an Dóchán {#the-burn} + +Is é an fórsa contrártha le heisiúint ETH an ráta ag a dhóitear ETH. Chun idirbheart a fhorghníomhú ar Ethereum, ní mór táille íosta (ar a dtugtar "bonn-táille") a íoc, a luainíonn go leanúnach (bloc-go-bloc) ag brath ar ghníomhaíocht líonra. Íoctar an táille in ETH agus _éilítear_ chun go measfar an t-idirbheart a bheith bailí. Déantar _an táille seo a dhó_ le linn an phróisis idirbhirt, rud a bhaintear as cúrsaíocht í. + + +Chuaigh dó táillí beo le uasghrádú Londain i mí Lúnasa 2021, agus níl aon athrú air ó The Merge. + + +Anuas ar an dó táillí arna chur i bhfeidhm ag uasghrádú Londain, is féidir le bailíochtaithe pionóis a thabhú as a bheith as líne, nó níos measa fós, is féidir iad a ghearradh as rialacha sonracha a sháraíonn slándáil líonra a bhagairt. Is é an toradh a bhíonn ar na pionóis seo ná laghdú ETH ó iarmhéid an bhailíochtóra sin, nach dtugtar luach saothair díreach dó chuig aon chuntas eile, rud a dhónn é/a bhaineann as cúrsaíocht é. + +### Meánphraghas gáis le haghaidh díbhoilscithe a ríomh {#calculating-average-gas-price-for-deflation} + +Mar a pléadh thuas, braitheann an méid ETH a eisítear in aon lá ar leith ar an ETH iomlán atá i gceist. Agus é seo á scríobh, tá sé seo thart ar 1700 ETH in aghaidh an lae. + +Chun an meánphraghas gáis a theastaíonn chun an eisiúint seo a fhritháireamh go hiomlán i dtréimhse 24 uair an chloig ar leith a chinneadh, cuirfimid tús le líon iomlán na mbloc in aon lá amháin a ríomh, nuair a chuirtear bloc-ama de 12 soicind san áireamh: + +- `(1 bhloc / 12 soicind) * (60 soicind/nóiméad) = 5 bhloc/nóiméad` +- `(5 bhloc/nóiméad) * (60 nóiméad/uair) = 300 bloc/uair an chloig` +- `(300 bloc / uair) * (24 uair / lá) = 7200 bloc / lá` + +Díríonn gach bloc ar `15x10^6 gás/bloc` ([tuilleadh ar ghás](/developers/docs/gas/)). Agus é seo á úsáid, is féidir linn réiteach a fháil ar an meánphraghas gáis (in aonaid gwei/gáis) a theastaíonn chun eisiúint a fhritháireamh, nuair a thugtar eisiúint laethúil ETH iomlán de 1700 ETH: + +- `7200 bloc/lá * 15x10^6 gás/bloc *`**`Y gwei/gas`**`* 1 ETH / 10^9 gwei = 1700 ETH/lá` + +Ag réiteach do `Y`: + +- `Y = (1700(10^9))/(7200 * 15(10^6)) = (17x10^3)/(72 * 15) = 16 gwei` (gan slánú go dtí dhá dhigit shuntasacha amháin) + +Bealach eile leis an gcéim dheireanach seo a atheagrú is ea athróg `X` a ionadú `1700` a sheasann don eisiúint laethúil ETH, agus an chuid eile a shimpliú chun: + +- `Y = (X(10^3)/(7200 * 15)) = X/108` + +Is féidir linn é seo a shimpliú agus a scríobh mar fheidhm de `X`: + +- `f(X) = X/108` nuair is eisiúint laethúil ETH é `X`, agus seasann `f(X)` an praghas gwei/gáis atá riachtanach chun é a fhritháireamh gach ceann de na ETH nua-eisithe. + +Mar sin, mar shampla, dá n-ardódh `X` (eisiúint laethúil ETH) go 1800 bunaithe ar an ETH iomlán atá i gceist, bheadh ​​`f(X)` (gwei riachtanach chun an t-eisiúint ar fad a fhritháireamh) ansin `17 gwei` (ag úsáid 2 dhigit shuntasacha) + +## Tuilleadh léitheoireachta {#further-reading} + +- [An Comhoiriúnú](/roadmap/merge/) +- [Ultrasound.money](https://ultrasound.money/) - _Daischláir ar fáil chun eisiúint ETH a shamhlú agus a dhó i bhfíor-am_ +- [ Eisiúint Ethereum á Rianú](https://www.attestant.io/posts/charting-ethereum-issuance/) - _Jim McDonald 2020_ diff --git a/public/content/translations/ga/roadmap/pbs/index.md b/public/content/translations/ga/roadmap/pbs/index.md new file mode 100644 index 00000000000..3ba20d78457 --- /dev/null +++ b/public/content/translations/ga/roadmap/pbs/index.md @@ -0,0 +1,51 @@ +--- +title: Scaradh tairgeoir-tógálaí +description: Foghlaim conas agus cén fáth a mbeidh a gcuid freagrachtaí blocthógála agus blocchraolacháin á scoilteadh ag bailíochtóirí Ethereum. +lang: ga +--- + +# Scaradh tairgeoir-tógálaí {#proposer-builder-separation} + +Cruthaíonn bailíochtóirí Ethereum an lae inniu bloic _agus_ craolann siad iad. Déanann siad idirbhearta ar chuala siad fúthu tríd an líonra biadáin a chur le chéile agus a phacáistiú i mbloc a sheoltar amach chuig piaraí ar líonra Ethereum. Roinneann **deighilt tairgeoir-tógálaí (PBS)** na tascanna seo thar bhailíochtóirí iolracha. Éiríonn tógálaithe bloc freagrach as bloic a chruthú agus iad a thairiscint don mholtóir bloc i ngach sliotán. Ní féidir leis an moltóir bloc inneachar an bhloic a fheiceáil, ní roghnaíonn siad ach an ceann is brabúsaí, ag íoc táille leis an tógálaí bloc sula seolann siad an bloc chuig a bpiaraí. + +Is uasghrádú tábhachtach é seo ar chúiseanna éagsúla. Ar an gcéad dul síos, cruthaíonn sé deiseanna chun cinsireacht idirbhearta a chosc ar leibhéal an phrótacail. Ar an dara dul síos, cuireann sé cosc ​​ar bhailitheoirí caitheamh aimsire a bheith sáraithe ag imreoirí institiúideacha ar féidir leo brabúsacht a gcuid blocthógála a bharrfheabhsú. Sa tríú háit, cabhraíonn sé le Ethereum a scálú trí uasghrádú Danksharding a chumasú. + +## PBS agus friotaíocht chinsireachta {#pbs-and-censorship-resistance} + +Má scartar tógálaithe bloc agus moltóirí bloc óna chéile tá sé i bhfad níos deacra do thógálaithe bloc idirbhearta cinsireachta a dhéanamh. Is é an fáth atá leis seo ná gur féidir critéir chuimsithe sách casta a chur leis a chinntíonn nach ndearnadh aon chinsireacht sula moltar an bloc. Toisc gur aonán ar leith é an moltóir bloc ón tógálaí bloc, is féidir leis ról an chosantóra a ghlacadh i gcoinne tógálaithe bloc cinsireachta. + +Mar shampla, is féidir liostaí cuimsithe a thabhairt isteach ionas gur féidir le bailíochtaithe iad a fhorchur mar nithe riachtanacha sa chéad bhloc eile nuair a bhíonn a fhios ag bailíochtaithe faoi idirbhearta ach nach bhfeiceann siad iad i mbloic. Gintear an liosta cuimsitheachta ó mhempool áitiúil na moltóirí bloc (liosta na n-idirbheart a bhfuil sé ar an eolas faoi) agus seoltar é chuig a bpiaraí díreach sula moltar bloc. Má tá aon cheann de na hidirbhearta ón liosta cuimsithe in easnamh, d’fhéadfadh an moltóir an bloc a dhiúltú, na hidirbhearta atá ar iarraidh a chur leis roimh é a mholadh, nó é a mholadh agus ligean do bhailíochtóirí eile é a dhiúltú nuair a fhaigheann siad é. Tá leagan a d'fhéadfadh a bheith níos éifeachtaí den smaoineamh seo ann freisin a dhearbhaíonn go gcaithfidh tógálaithe úsáid iomlán a bhaint as an spás bloc atá ar fáil agus mura ndéanann siad é sin cuirtear idirbhearta ó liosta cuimsitheachta an mholtóra leis. Is réimse taighde gníomhach é seo fós agus níl an chumraíocht is fearr do na liostaí cuimsithe socraithe go fóill. + +Le [mempools criptithe](https://www.youtube.com/watch?v=fHDjgFcha0M&list=PLpktWkixc1gUqkyc1-iE6TT0RWQTBJELe&index=3) d'fhéadfadh sé a bheith dodhéanta freisin do thógálaithe agus do mholtóirí a bheith eolach faoi na hidirbhearta atá á áireamh i mbloc acu go dtí go mbíonn an bloc craolta cheana féin. + + + +Is féidir le heagraíochtaí cumhachtacha brú a chur ar bhailitheoirí cinsireacht a dhéanamh ar idirbhearta chuig seoltaí áirithe nó uathu. Comhlíonann bailíochtóirí an brú seo trí sheoltaí ar an liosta dubh a bhrath ina linn idirbhearta agus iad a fhágáil ar lár ó na bloic atá beartaithe acu. Tar éis PBS ní bheidh sé seo indéanta a thuilleadh mar ní bheidh a fhios ag tairgeoirí bloc cad iad na hidirbhearta atá á gcraoladh acu ina mbloic. D’fhéadfadh sé a bheith tábhachtach go gcloífeadh daoine aonair nó aipeanna áirithe le rialacha cinsireachta, mar shampla nuair a dhéantar dlí díobh ina réigiún féin. Sna cásanna seo, tarlaíonn comhlíonadh ag leibhéal an fheidhmchláir, agus fanann an prótacal gan chead agus saor ó chinsireacht. + + + +## PBS agus MEV {#pbs-and-mev} + +Tagraíonn **Uasluach in-eastósctha (MEV)** do bhailíochtóirí a uasmhéadaíonn a mbrabúsacht trí idirbhearta a ordú go fabhrach. I measc na samplaí coitianta tá babhtálacha eadrána ar mhalartuithe díláraithe (m.sh. díolachán nó ceannach mór a chur chun tosaigh) nó deiseanna a aithint chun seasaimh DeFi a leachtú. Chun MEV a uasmhéadú, teastaíonn fios gnó teicniúil sofaisticiúil agus bogearraí saincheaptha atá i gceangal le gnáthbhailíochtóiríí, rud a fhágann go bhfuil sé i bhfad níos dóchúla go n-éireoidh le hoibreoirí institiúideacha níos fearr ná daoine aonair agus bailíochtóirí caitheamh aimsire ag eastóscadh MEV. Ciallaíonn sé seo gur dócha go mbeidh fáltais geall níos airde le hoibreoirí láraithe, rud a chruthóidh fórsa láraithe a dhídhreasaíonn geallta baile. + +Réitíonn PBS an fhadhb seo trí eacnamaíocht MEV a athchumrú. In ionad an moltóir bloc a chuardach MEV féin a dhéanamh, ní roghnaíonn siad ach bloc ó go leor a thairgeann tógálaithe bloc dóibh. B'fhéidir go ndearna na tógálaithe bloc eastóscadh MEV sofaisticiúla, ach téann a luach saothair chuig an moltóir bloc. Ciallaíonn sé seo, fiú má tá líon beag de na tógálaithe bloc speisialaithe i gceannas ar eastóscadh MEV, d'fhéadfadh a luach saothair dul chuig aon bhailíochtóir ar an líonra, lena n-áirítear geallsealbhóirí aonair baile. + + + +D’fhéadfaí daoine aonair a dhreasú chun dul i ngeall le linnte seachas leo féin mar gheall ar an luach saothair feabhsaithe a chuireann straitéisí sofaisticiúla MEV ar fáil. Má dhéantar an blocthógáil a scaradh ón moladh bloc, déanfar an MEV a bhaintear a dháileadh thar níos mó bailíochtaithe seachas é a lárú leis an gcuardaitheoir MEV is éifeachtaí. Ag an am céanna, nuair a cheadaítear do thógálaithe bloc speisialaithe a bheith ann baintear an t-ualach a bhaineann le bloc-thógáil ó dhaoine aonair, agus cuireann sé cosc ​​​​ar dhaoine aonair MEV a ghoid dóibh féin, agus déantar líon na mbailitheoirí aonair, neamhspleácha ar féidir leo a sheiceáil go bhfuil na bloic macánta a uasmhéadú. Is é an coincheap tábhachtach ná "neamhshiméadracht cruthaitheoir-fhíoraitheora" a thagraíonn don smaoineamh go bhfuil táirgeadh bloc láraithe go breá chomh fada agus go bhfuil líonra bailíochtóirí láidir agus díláraithe uasta in ann a chruthú go bhfuil na bloic macánta. Is acmhainn é an dílárú, ní sprioc deiridh - is iad na bloic macánta atá uainn. + + +## PBS agus Danksharding {#pbs-and-danksharding} + +Is é Danksharding an bealach a dhéanfaidh Ethereum scála go >100,000 idirbheart in aghaidh an tsoicind agus táillí a íoslaghdú d'úsáideoirí rollta suas. Braitheann sé ar PBS toisc go gcuireann sé leis an ualach oibre do thógálaithe bloc, a mbeidh orthu cruthúnais a ríomh ar feadh suas le 64 MB de shonraí rollta i níos lú ná 1 soicind. Is dócha go mbeidh gá le tógálaithe speisialaithe a bheidh in ann crua-earraí sách substaintiúil a thiomnú don tasc. Mar sin féin, sa staid reatha d'fhéadfadh blocthógáil a bheith níos láraithe ar oibreoirí níos sofaisticiúla agus níos cumhachtaí ar aon nós mar gheall ar eastóscadh MEV. Is bealach é deighilt idir tograí agus tógálaí chun glacadh leis an réaltacht seo agus cosc ​​a chur air fórsa láraithe a chur i bhfeidhm ar bhailíochtú bloc (an chuid thábhachtach) nó ar dháileadh luach saothair geallta. Is buntáiste mór é go bhfuil na tógálaithe bloc speisialaithe toilteanach agus in ann na cruthúnais sonraí is gá le haghaidh Danksharding a ríomh. + +## Dul chun cinn reatha {#current-progress} + +Tá PBS i gcéim ard taighde, ach tá roinnt ceisteanna dearaidh tábhachtacha fós ann a chaithfear a réiteach sular féidir é a fhréamhshamhlú i gcliant Ethereum. Níl aon sonraíocht tugtha chun críche fós. Ciallaíonn sé seo gur dócha go mbeidh PBS bliain ar shiúl nó níos mó. Seiceáil an [staid an taighde](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) is déanaí. + +## Further Reading {#further-reading} + +- [Staid an taighde: friotaíocht cinsireachta faoi PBS](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) +- [Dearaí margaidh táillí atá neamhdhíobhálach don PBS](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) +- [PBS agus friotaíocht chinsireachta](https://notes.ethereum.org/@fradamt/H1TsYRfJc#Secondary-auctions) +- [Liostaí cuimsithe](https://notes.ethereum.org/@fradamt/H1ZqdtrBF) diff --git a/public/content/translations/ga/roadmap/scaling/index.md b/public/content/translations/ga/roadmap/scaling/index.md new file mode 100644 index 00000000000..908ac2711dd --- /dev/null +++ b/public/content/translations/ga/roadmap/scaling/index.md @@ -0,0 +1,51 @@ +--- +title: Scálú Ethereum +description: Rollups batch transactions together offchain, reducing costs for the user. Mar sin féin, tá an chaoi a n-úsáideann rolladh sonraí faoi láthair ró-chostasach, rud a chuireann srian le cé chomh saor agus is féidir idirbhearta a bheith. Réitíonn Proto-Danksharding é seo. +lang: ga +image: /images/roadmap/roadmap-transactions.png +alt: "Treochlár Ethereum" +template: roadmap +--- + +Déantar Ethereum a scála ag baint úsáide as [ciseal 2s](/layer-2/#rollups) (ar a dtugtar rollups freisin), a dhéanann idirbhearta a bhaisc le chéile agus a sheolann an t-aschur chuig Ethereum. Cé go bhfuil rolladh suas le hocht n-uaire níos saoire ná Ethereum Mainnet, is féidir rolladh suas a bharrfheabhsú tuilleadh chun costais a laghdú d'úsáideoirí deiridh. Braitheann Rollups freisin ar roinnt comhpháirteanna láraithe gur féidir le forbróirí a bhaint de réir mar a aibíonn na rollóirí. + + +
                +
              • Tá rolladh an lae inniu ~5-20x níos saoire ná ciseal 1 Ethereum
              • +
              • Is gearr go laghdóidh ZK-rollups táillí faoi ~40-100x
              • +
              • Soláthróidh athruithe atá le teacht ar Ethereum ~100-1000x eile de scálaithe
              • +
              • Ba cheart go mbainfeadh úsáideoirí leas as idirbhearta a chosnaíonn níos lú ná $0.001
              • +
              +
              + +## Sonraí a dhéanamh níos saoire {#making-data-cheaper} + +Bailíonn Rollups líon mór na n-idirbheart, déanann siad iad a fhorghníomhú agus na torthaí a chur faoi bhráid Ethereum. Gineann sé seo go leor sonraí nach mór a bheith ar fáil go hoscailte ionas gur féidir le duine ar bith na hidirbhearta a fhorghníomhú dóibh féin agus a fhíorú go raibh an t-oibreoir rolladh macánta. Má aimsíonn duine neamhréireacht, féadfaidh siad ceist a ardú. + +### Proto-Danksharding {#proto-danksharding} + +Go stairiúil, stóráiltear sonraí Rollup ar Ethereum go buan, rud atá costasach. Tá níos mó ná 90% den chostas idirbhirt a íocann úsáideoirí ar rolladh dlite mar gheall ar an stóráil sonraí seo. Chun costais idirbhirt a laghdú, is féidir linn na sonraí a aistriú isteach i stóras sealadach nua 'blob'. Tá Blobaí níos saoire toisc nach bhfuil siad buan; scriostar iad ó Ethereum nuair nach mbíonn gá leo a thuilleadh. Tagann sé mar fhreagracht ar na daoine a dteastaíonn sé uathu sonraí rollta a stóráil go fadtéarmach, mar oibreoirí rolladh suas, malartuithe, seirbhísí innéacsaithe etc. Is cuid d'uasghrádú ar a dtugtar "Proto-Danksharding" é idirbhearta blob a chur le Ethereum. + +Le Proto-Danksharding, is féidir go leor blobaí a chur le bloic Ethereum. Cumasaíonn sé seo scála suntasach eile (>100x) suas le tréchur Ethereum agus laghdú ar chostais idirbheartaíochta. + +### Danksharding {#danksharding} + +Tá an dara céim de leathnú sonraí blob casta toisc go bhfuil modhanna nua ag teastáil chun sonraí rollta suas a sheiceáil ar fáil ar an líonra agus braitheann sé ar [bhailíochtóirí](/glossary/#validator) a [bloc](/glossary/#block) bhfreagrachtaí tograí tógála agus blocála a scaradh óna chéile. Éilíonn sé freisin bealach chun a chruthú ar bhealach cripteagrafach go bhfuil fo-thacairí beaga de shonraí blob fíoraithe ag bailíochtaithe. + +Tugtar ["Danksharding"](/roadmap/danksharding/) ar an dara céim seo. **Is dócha nach gcuirfear i bhfeidhm go hiomlán é go ceann na mblianta**. Tá Danksharding ag brath ar fhorbairtí eile mar [blocthógáil agus blocthograí a scaradh](/roadmap/pbs) agus dearaí líonra nua a chuireann ar chumas an líonra a dhearbhú go héifeachtach go bhfuil sonraí ar fáil trí shampláil randamach a dhéanamh ar chúpla cilibheart ag an am céanna, ar a dtugtar [sampláil infhaighteachta sonraí (DAS)](/developers/docs/data-availability). + +Tuilleadh faoi Danksharding + +## Rollups a dhílárú {#decentralizing-rollups} + +Tá [Rolluithe](/layer-2) ag scáláil Ethereum cheana féin. Cuireann [éiceachóras saibhir de thionscadail rollta suas](https://l2beat.com/scaling/tvl) ar chumas úsáideoirí idirbheartaíocht a dhéanamh go tapa agus go saor, le raon ráthaíochtaí slándála. Mar sin féin, cuireadh tús le rolluithe ag baint úsáide as seicheamhóirí láraithe (ríomhairí a dhéanann próiseáil agus comhiomlánú an idirbhirt go léir sula gcuirtear faoi bhráid Ethereum iad). Tá sé seo i mbaol cinsireachta, toisc gur féidir na hoibreoirí seicheamháin a cheadú, a bhreabú nó a chur i gcontúirt ar bhealach eile. Ag an am céanna, [tá difríochtaí idir rolluithe](https://l2beat.com) maidir leis an mbealach a bhailíochtaíonn siad na sonraí a thagann isteach. Is é an bealach is fearr le "cruthaitheoirí" [cruthúnais calaoise](/glossary/#fraud-proof) nó cruthúnais bhailíochta a chur isteach, ach níl gach rolladh suas ann fós. Úsáideann fiú na rollups sin a úsáideann cruthúnais bailíochta/calaoise líon beag de na cruthaitheoirí aitheanta. Dá bhrí sin, is é an chéad chéim ríthábhachtach eile maidir le scálú Ethereum ná freagracht as seicheamhóirí agus cruthaitheoirí a reáchtáil chun dáileadh ar níos mó daoine. + +Tuilleadh faoi rolluithe + +## Dul chun cinn reatha {#current-progress} + +Ba é Proto-Danksharding an chéad cheann de na míreanna treochláir seo a cuireadh i bhfeidhm mar chuid d’uasghrádú líonra Cancun-Deneb ("Dencun") i mí an Mhárta 2024. **Is dócha nach mbeidh Full Danksharding i bhfeidhm go ceann roinnt blianta**, mar go mbraitheann sé ar go leor míreanna eile den treochlár a bheith críochnaithe ar dtús. Is dócha gur próiseas céimnitheach a bheidh ann an bonneagar rollta a dhílárú - tá go leor rolladh éagsúla ann atá ag tógáil córais atá beagán difriúil agus díláróidh siad go hiomlán ag rátaí éagsúla. + +[Tuilleadh faoi uasghrádú líonra Dencun](/roadmap/dencun/) + + diff --git a/public/content/translations/ga/roadmap/secret-leader-election/index.md b/public/content/translations/ga/roadmap/secret-leader-election/index.md new file mode 100644 index 00000000000..4855c73c57a --- /dev/null +++ b/public/content/translations/ga/roadmap/secret-leader-election/index.md @@ -0,0 +1,44 @@ +--- +title: Toghchán rúnda ceannaire +description: Míniú ar conas is féidir le toghchán rúnda ceannaire cabhrú le bailíochtóirí a chosaint ar ionsaithe +lang: ga +summaryPoints: + - Is féidir seoladh IP na moltóirí bloc a bheith ar eolas roimh ré, rud a fhágann iad i mbaol ó ionsaithe + - Cuireann toghchán rúnda ceannaire céannacht na mbailitheoirí i bhfolach ionas nach mbíonn siad ar an eolas roimh ré + - Is síneadh ar an smaoineamh seo roghnú randamach a dhéanamh ar bailíochtóirí i ngach sliotán. +--- + +# Toghchán rúnda ceannaire {#single-secret-leader-election} + +Sa mheicníocht chomhaontaithe atá bunaithe ar [cruthúnas gill](/developers/docs/consensus-mechanisms/pos) an lae inniu, tá liosta na moltóirí bloc atá le teacht poiblí agus is féidir a seoltaí IP a mhapáil. Ciallaíonn sé seo go bhféadfadh ionsaitheoirí a aithint cé na bailíochtóirí atá ar tí bloc a mholadh agus díriú orthu le hionsaí diúltaithe seirbhíse (DOS) a fhágann nach féidir leo a mbloc a mholadh in am. + +D’fhéadfadh sé seo deiseanna a chruthú d’ionsaitheoir le brabús a dhéanamh. Mar shampla d'fhéadfadh moltóir bloc atá roghnaithe do shliot án `n+1` ionsaí  DOS a dhéanamh ar an moltóir i sliotán `n` ionas go gcaillfidh siad an deis chun bloc a mholadh. Cheadódh sé seo don mholtóir bloc atá ag ionsaí MEV an dá shliotán a bhaint as, nó na hidirbhearta go léir ar chóir a bheith roinnte thar dhá bhloc a ghabháil agus ina ionad sin iad go léir a áireamh i gceann amháin, agus na táillí gaolmhara go léir a ghnóthú. Is dócha go gcuirfidh sé seo isteach ar bhailíochtóirí baile níos mó ná ar bhailíochtóirí institiúideacha sofaisticiúla ar féidir leo modhanna níos forbartha a úsáid chun iad féin a chosaint ar ionsaithe DOS, agus d'fhéadfadh sé a bheith ina fhórsa láraithe mar sin. + +Tá réitigh éagsúla ar an bhfadhb seo. Ceann acu is ea [Teicneolaíocht Dáilte Bailíochtóra](https://github.com/ethereum/distributed-validator-specs) a bhfuil sé mar aidhm aige na tascanna éagsúla a bhaineann le bailíochtóir a rith thar ilinnill, le hiomarcaíocht, a scaipeadh. ionas go mbeidh sé i bhfad níos deacra d'ionsaitheoir bloc a chosc ó bheith molta i sliotán ar leith. Is é an réiteach is láidre, áfach, ná **Toghchán Rúnda Ceannaire Aonair (SSLE)**. + +## Toghchán ceannaire rúnda aonair {#secret-leader-election} + +In SSLE, baintear úsáid as cripteagrafaíocht chliste le cinntiú nach bhfuil a fhios ach ag an mbailíochtóir roghnaithe go bhfuil siad roghnaithe. Oibríonn sé seo trí iarraidh ar gach bailíochtóir tiomantas a thabhairt do rún atá comhroinnte acu go léir. Déantar na tiomantais a athrú agus a athchumrú ionas nach féidir le duine ar bith tiomantais a mhapáil do bhailíochtóirí ach go mbíonn a fhios ag gach bailíochtóir cén tiomantas a bhaineann leo. Ansin, roghnaítear tiomantas amháin go randamach. Má bhraitheann bailíochtóir gur roghnaíodh a thiomantas, tá a fhios aige gurb é a sheal é bloc a mholadh. + +Tugtar [Whisk](https://ethresear.ch/t/whisk-a-practical-shuffle-based-ssle-protocol-for-ethereum/11763) ar phríomhfheidhmiú an smaoinimh seo. A oibríonn mar seo a leanas: + +1. Bíonn bailíochtaithe tiomanta do rún comhroinnte. Tá an scéim tiomantais deartha ionas gur féidir í a cheangal le haitheantas bailíochtóra ach tá sí randamach freisin ionas nach mbeidh aon tríú páirtí in ann an ceangaltán a fhreaschur agus tiomantas sonrach a nascadh le bailíochtóir ar leith. +2. Ag tús aga, roghnaítear tacar randamach bailíochtaithe chun tiomantais ó 16,384 bailíochtóir a shamplú, ag baint úsáide as RANDAO. +3. Maidir leis na 8182 sliotán eile (1 lá), déanann na moltóirí bloc a shuaitheadh agus randamú ar fho-thacar de na tiomantais ag baint úsáide as a n-eantrópacht phríobháideach féin. +4. Tar éis don suaitheadh a bheith críochnaithe, úsáidtear RANDAO chun liosta ordaithe de na tiomantais a chruthú. Tá an liosta seo mapáilte ar shliotáin Ethereum. +5. Feiceann bailíochtóirí go bhfuil a dtiomantas ceangailte le sliotán ar leith, agus nuair a thagann an sliotán sin molann siad bloc. +6. Déan na céimeanna seo arís ionas go mbeidh sannadh na dtiomantas do shliotáin i bhfad chun tosaigh i gcónaí ar an sliotán reatha. + +Cuireann sé seo cosc ​​ar ionsaitheoirí a bheith ar an eolas roimh ré cén bailíochtóir ar leith a mholfaidh an chéad bhloc eile, rud a chuireann cosc ​​ar chumas ionsaithe DOS. + +## Toghchán rúnda ceannaire neamh-singil (SnSLE) {#secret-non-single-leader-election} + +Tá togra ar leith ann freisin a bhfuil sé mar aidhm aige cás a chruthú ina mbeidh seans randamach ag gach bailíochtóir bloc a mholadh i ngach sliotán, ar an gcaoi chéanna leis an gcaoi a socraíodh bloc-togra faoi chruthúnas oibre, ar a dtugtar **toghchán rúnda neamh-aonair do cheannaire (SnSLE)**. Bealach simplí amháin chun é seo a dhéanamh ná úsáid a bhaint as an bhfeidhm RANDAO a úsáidtear chun bailíochtóirí a roghnú go randamach i bprótacal an lae inniu. Is é an smaoineamh le RANDAO ná go ngintear uimhir randamach go leor trí haiseanna a chuireann go leor bailíochtóirí neamhspleácha isteach a mheascadh. In SnSLE, d’fhéadfaí na haiseanna seo a úsáid chun an chéad mholtóir bloc eile a roghnú, mar shampla tríd an haiseanna den luach is ísle a roghnú. D'fhéadfaí srian a chur ar raon na haiseanna bailí chun an dóchúlacht go roghnófaí bailíochtóirí aonair i ngach sliotán a choigeartú. Má dhearbhaítear go gcaithfidh an hais a bheith níos lú ná `2^256 * 5 / N` áit a bhfuil `N` = líon na mbailíochtóirí gníomhacha, bheadh ​​seans ann go roghnófaí aon bhailíochtóir aonair i ngach sliotán cothrom le `5/N`. Sa sampla seo, bheadh ​​seans 99.3% ann go nginfeadh tairgeoir amháin ar a laghad hais bailí i ngach sliotán. + +## Dul chun cinn reatha {#current-progress} + +Tá SSLE agus SnSLE araon sa chéim taighde. Níl aon sonraíocht críochnaithe le haghaidh ceachtar den dá smaoineamh go fóill. Is tograí iomaíocha iad SSLE agus SnSLE agus ní féidir an dá cheann a chur i bhfeidhm. Sula gcuirtear ar aghaidh iad, teastaíonn níos mó taighde agus forbartha uathu, mar aon le fréamhshamhaltú agus cur chun feidhme ar líonraí tástála poiblí. + +## Tuilleadh léitheoireachta {#further-reading} + +- [SnSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/public/content/translations/ga/roadmap/security/index.md b/public/content/translations/ga/roadmap/security/index.md new file mode 100644 index 00000000000..53f684c3612 --- /dev/null +++ b/public/content/translations/ga/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Ethereum níos sláine +description: Is é Ethereum an t-ardán conartha cliste is sláine agus díláraithe atá ann. Mar sin féin, tá feabhsuithe fós ar féidir a dhéanamh ionas go bhfanfaidh Ethereum athléimneach d'aon leibhéal ionsaí i bhfad amach anseo. +lang: ga +image: /images/roadmap/roadmap-security.png +alt: "Treochlár Ethereum" +template: roadmap +--- + +Is ardán [cliste-chonradh](/glossary/#smart-contract) é **Ethereum cheana féin** slán, díláraithe. Mar sin féin, tá feabhsuithe fós ar féidir a dhéanamh ionas go bhfanann Ethereum athléimneach do gach cineál ionsaí i bhfad amach anseo. Ina measc seo tá mionathruithe ar an mbealach a ndéileálann [cliaint Ethereum](/glossary/#consensus-client) le [bloic](/glossary/#block) san iomaíocht, chomh maith. mar a mhéadaíonn an luas a mheasann an líonra a bheith ["críochnaithe"](/developers/docs/consensus-mechanisms/pos/#finality) (rud a chiallaíonn nach féidir iad a athrú gan fíor-eacnamaíocht caillteanas do ionsaitheoir). + +Tá feabhsuithe ann freisin a fhágann go bhfuil idirbhearta cinsireachta i bhfad níos deacra trí mholtóirí bloc a dhéanamh dall ar ábhar iarbhír a gcuid bloic, agus bealaí nua chun a aithint nuair a bhíonn cliant ag cinsireacht. Le chéile déanfar na feabhsuithe seo a uasghrádú ar an bprótacal [cruthúnas-gheallta](/glossary/#pos) ionas go mbeidh muinín láithreach ag úsáideoirí - ó dhaoine aonair go corparáidí - ina gcuid apps, sonraí agus sócmhainní ar Ethereum. + +## Aistarraingtí geallchuir {#staking-withdrawals} + +Thosaigh an t-uasghrádú ó [cruthúnas-oibre](/glossary/#pow) go cruthúnais-gheallta le ceannródaithe Ethereum ag “geall” a ETH i gconradh taisce. Úsáidtear an ETH sin chun an líonra a chosaint. Rinneadh an dara nuashonrú an 12 Aibreán 2023 chun an ETH geallta a tharraingt siar. Ó shin i leith is féidir le bailíochtaithe ETH a ghlacadh nó a tharraingt siar faoi shaoirse. + +Léigh faoi aistarraingtí + +## Ag cosaint in aghaidh ionsaithe {#defending-against-attacks} + +Tá feabhsuithe ar féidir a dhéanamh ar phrótacal cruthúnais-gheallta Ethereum. Tugtar [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) ar cheann amháin - rud níos sláine [forc](/glossary/#fork) -rogha algartaim a dhéanann cineálacha áirithe ionsaithe níos deacra. + +Dá laghdófaí an t-am a thógann Ethereum chun bloic a [a thabhairt chun críche](/glossary/#finality) chuirfí eispéireas úsáideora níos fearr ar fáil agus chuirfeadh sé cosc ​​ar ionsaithe “atheagrúcháin” sofaisticiúla nuair a dhéanann ionsaitheoirí iarracht bloic nua a athshuíomh chun brabús nó cinsireacht a bhaint as. idirbhearta áirithe. [**Críochacht sliotán aonair (SSF)**](/roadmap/single-slot-finality/) is **bealaí chun an mhoill ar chríochnú a laghdú**. Faoi láthair tá luach 15 nóiméad de bhlocanna ann a bhféadfadh ionsaitheoir a chur ina luí go teoiriciúil ar bhailitheoirí eile athchumrú a dhéanamh. Le SSF, tá 0 ann. Baineann úsáideoirí, ó dhaoine aonair go aipeanna agus malartuithe, leas as dearbhú tapa nach gcuirfear a n-idirbheart ar ais, agus baineann an líonra tairbhe as trí rang iomlán ionsaithe a dhúnadh. + +Léigh faoi críochnaitheacht sliotán amháin + +## Ag cosaint in aghaidh na cinsireachta {#defending-against-censorship} + +Cuireann dílárú cosc ​​ar dhaoine aonair nó grúpaí beaga [bhailíochtóirí](/glossary/#validator) barraíocht tionchair a bheith acu. Is féidir le teicneolaíochtaí nua geallta cabhrú lena chinntiú go bhfanann bailíochtaithe Ethereum chomh díláraithe agus is féidir agus iad á gcosaint freisin i gcoinne teipeanna crua-earraí, bogearraí agus líonra. Áirítear leis seo bogearraí a roinneann freagrachtaí bailíochtaithe thar roinnt [nóid](/glossary/#node). **teicneolaíocht bhailíochtaithe dáilte (DVT)** a thugtar air seo. Spreagtar [Comhthiomsuithe Geallta](/glossary/#staking-pool) chun DVT a úsáid toisc go ligeann sé do ríomhairí iolracha a bheith rannpháirteach i gcomhbhailíochtú, ag cur iomarcaíochta agus lamháltais lochtanna leis. Roinneann sé eochracha bailíochtaithe freisin thar roinnt córas, seachas oibreoirí aonair a bheith ag rith il-bhailíochtóirí. Déanann sé seo níos deacra é d’oibreoirí mímhacánta ionsaithe ar Ethereum a chomhordú. Ar an iomlán, is é an smaoineamh atá ann buntáistí slándála a fháil trí bhailitheoirí a rith mar _pobail_ seachas mar dhaoine aonair. + +Léigh faoi theicneolaíocht bhailitheoir dáilte + +Cuirfidh cur i bhfeidhm **deighilt tairgeoir-tógálaí (PBS)** feabhas mór ar chosaintí ionsuite Ethereum in aghaidh na cinsireachta. Ceadaíonn PBS bailíochtóir amháin bloc a chruthú agus ceann eile chun é a chraoladh ar fud líonra Ethereum. Cinntíonn sé seo go roinntear na gnóthachain ó halgartaim tógála blocála gairmiúla a uasmhéadaítear ar bhrabús ar bhealach níos cothroime ar fud an líonra, **cosc a chur ar pháirtithe leasmhara díriú** leis na geallsealbhóirí institiúideacha is fearr le himeacht ama. Faigheann an moltóir bloc an bloc is brabúsaí a thairgeann margadh tógálaithe bloc dóibh a roghnú. Chun cinsireacht a dhéanamh, is minic a bheadh ​​ar mholtóir bloc a roghnú bloc níos lú brabúsaí, rud a bheadh ​​**neamhréasúnach ó thaobh na heacnamaíochta de agus a bheadh ​​soiléir don chuid eile de na bailíochtaithe** ar an líonra. + +Tá breiseáin ionchasacha ann do PBS, cosúil le hidirbhearta criptithe agus liostaí cuimsithe, a d'fhéadfadh feabhas breise a chur ar fhriotaíocht chinsireachta Ethereum. Déanann siad seo an tógálaí bloc agus an moltóir dall ar na hidirbhearta iarbhír atá san áireamh ina mbloic. + +Léigh faoi scaradh idir moltóirí agus tógálaí + +## Comhbhailitheoirí a chosaint {#protecting-validators} + +Is féidir go bhféadfadh ionsaitheoir sofaisticiúla bailíochtaithe atá le teacht a aithint agus iad a spamáil chun cosc ​​​​a chur orthu bloic a mholadh; tugtar ionsaí **séanadh seirbhíse (DoS)** air seo. Cosnóidh cur i bhfeidhm [**toghchán rúnda ceannaire (SLE)**](/roadmap/secret-leader-election) ar ionsaí den chineál seo trí bhloc a chosc moltóirí ó bheith eolach roimh ré. Feidhmíonn sé seo trí shraith gealltanas cripteagrafach a ionadaíonn bloc-thogróirí a shuffadh go leanúnach agus a n-ord a úsáid chun a chinneadh cé acu bailíochtóir a roghnaítear sa chaoi is nach bhfuil a n-ordú ar eolas ag na bailíochtóirí ach amháin roimh ré. + +Léigh faoi thoghchán ceannaire rúnda + +## Dul chun cinn reatha {#current-progress} + +**Tá uasghráduithe slándála ar an treochlár i gcéimeanna ardtaighde**, ach ní mheastar go gcuirfear i bhfeidhm iad go ceann tamaill. Is iad na chéad chéimeanna eile maidir le cumasc radhairc, PBS, SSF agus SLE ná sonraíocht a thabhairt chun críche agus tús a chur le tógáil fréamhshamhlacha. diff --git a/public/content/translations/ga/roadmap/single-slot-finality/index.md b/public/content/translations/ga/roadmap/single-slot-finality/index.md new file mode 100644 index 00000000000..75373dfff34 --- /dev/null +++ b/public/content/translations/ga/roadmap/single-slot-finality/index.md @@ -0,0 +1,66 @@ +--- +title: Críochnaitheacht sliotán aonair +description: Míniú ar chríochnúlacht sliotán aonair +lang: ga +--- + +# Críochnaitheacht sliotán aonair {#single-slot-finality} + +Tógann sé thart ar 15 nóiméad bloc Ethereum a thabhairt chun críche. Mar sin féin, is féidir linn meicníocht chomhthola Ethereum a dhéanamh chun bloic a bhailíochtú ar bhealach níos éifeachtaí agus laghdú suntasach a dhéanamh ar am go deireadh. In ionad fanacht cúig nóiméad déag, d'fhéadfaí na bloic a mholadh agus a thabhairt chun críche sa sliotán céanna. **críochnaitheacht sliotán aonair (SSF)** a thugtar ar an gcoincheap seo. + +## Cad is críochnúlacht? {#what-is-finality} + +I meicníocht chomhthola bunaithe ar chruthúnas Ethereum, tagraíonn críochnaitheacht don ráthaíocht nach féidir bloc a athrú nó a bhaint as an mblocshlabhra gan ar a laghad 33% den ETH iomlán atá i gceist a dhó. Is slándáil ‘cripti-eacnamaíoch’ é seo toisc go dtagann muinín as an gcostas fíor-ard a bhaineann le hordú nó ábhar an tslabhra a athrú a chuirfeadh cosc ​​ar aon ghníomhaí eacnamaíoch réasúnach triail a bhaint as. + +## Cén fáth díriú ar chríochnúlacht níos tapúla? {#why-aim-for-quicker-finality} + +Tarlaíonn sé go bhfuil an t-am reatha chun deiridh ró-fhada. Ní mian leis an chuid is mó d’úsáideoirí fanacht 15 nóiméad le haghaidh críochnaitheacht, agus tá sé míchaoithiúil go mbeadh ar aipeanna agus malartuithe a mbeadh tréchur ard idirbhearta uathu fanacht chomh fada sin le bheith cinnte go bhfuil a n-idirbhearta buan. Nuair a bhíonn moill idir moladh agus bailchríoch bloic cruthaítear deis freisin d'atheagruithe gearra a d’fhéadfadh ionsaitheoir a úsáid chun bloic áirithe a chinsireacht nó MEV a bhaint. Tá an mheicníocht a dhéileálann le bloic a uasghrádú i gcéimeanna freisin casta go leor agus tá paisteáil déanta uirthi arís agus arís eile chun leochaileachtaí slándála a dhúnadh, rud a fhágann go bhfuil sí ar cheann de na codanna den bhunchód Ethereum ina bhfuil seans níos mó go dtiocfaidh fabhtanna fíneáilte chun cinn. D'fhéadfaí deireadh a chur leis na fadhbanna seo go léir tríd an t-am go críochnaitheacht a laghdú go sliotán amháin. + +## An chomhbhabhtáil díláraithe / ama / forchostais {#the-decentralization-time-overhead-tradeoff} + +Ní tréith láithreach de bhloc nua é an ráthaíocht críochnaitheachta; tógann sé am bloc nua a thabhairt chun críche. Is é an chúis atá leis seo ná go gcaithfidh bailíochtóirí a dhéanann ionadaíocht ar 2/3 ar a laghad den ETH iomlán atá i ngeall ar an líonra vótáil ar son an bhloic ("fianaise") chun go measfar é a bheith críochnaithe. Ní mór do gach nód bailíochtaithe ar an líonra fianuithe ó nóid eile a phróiseáil ionas go mbeidh a fhios aige go bhfuil, nó nach bhfuil, an tairseach 2/3 bainte amach ag bloc. + +Dá ghiorra an t-am a cheadaítear le críochnú a bhaint amach, is gá níos mó cumhachta ríomhaireachta a bheith ag gach nód mar go gcaithfear an próiseáil fianaithe a dhéanamh níos tapúla. Chomh maith leis sin, dá mhéid nóid bhailíochtaithe atá ar an líonra, is ea is mó fianuithe a chaithfidh gach bloc a phróiseáil, ag cur leis an gcumhacht próiseála atá ag teastáil freisin. Dá mhéad cumhacht próiseála a theastaíonn, is lú is féidir le daoine a bheith rannpháirteach toisc go bhfuil gá le crua-earraí níos costasaí chun gach nód bailíochtaithe a rith. Má mhéadaítear an t-am idir bloic laghdaítear an chumhacht ríomhaireachta atá ag teastáil ag gach nód ach méadaítear an t-am go críoch freisin, toisc go ndéantar fianuithe a phróiseáil níos moille. + +Mar sin, tá comhbhabhtáil idir an forchostas (cumhacht ríomhaireachta), an dílárú (líon na nód ar féidir leo a bheith rannpháirteach i mbailíochtú an tslabhra) agus an t-am go dtí an chríochnaitheacht. Déanann an córas idéalach íoschumhacht ríomhaireachta, dílárú uasta agus íosmhéid ama chun deiridh a chothromú. + +Rinne meicníocht chomhdhearcadh reatha Ethereum na trí pharaiméadar seo a chothromú trí: + +- **An t-íosmhéid geall a shocrú go 32 ETH**. Socraíonn sé seo uasteorainn ar líon fhianuithe na mbailíochtóirí a chaithfidh nóid aonair a phróiseáil, agus mar sin uasteorainn do na ceanglais ríomha do gach nód. +- **An t-am chun críochnaitheachta a shocrú ag ~15 nóiméad**. Tugann sé seo dóthain ama do bhailitheoirí a ritheann ar ghnáthríomhairí baile chun fianuithe do gach bloc a phróiseáil go sábháilte. + +Leis an dearadh meicníochta atá ann faoi láthair, chun an t-am chun críochnaitheachta a laghdú, is gá líon na mbailíochtóirí ar an líonra a laghdú nó na tiomantais crua-earraí do gach nód a mhéadú. Mar sin féin, tá feabhsuithe ar féidir a dhéanamh ar an mbealach a phróiseáiltear fianuithe a cheadaíonn tuilleadh fianuithe a chomhaireamh gan cur leis an bhforchostas ag gach nód. Le próiseáil níos éifeachtaí beifear in ann críochnaitheacht a chinneadh laistigh d’aon sliotán amháin, seachas thar dhá aga. + +## Bealaí chuig SSF {#routes-to-ssf} + + + +Comhcheanglaíonn an mheicníocht chomhthola reatha fianuithe ó bhailíochtóirí iolracha, ar a dtugtar coistí, chun líon na dteachtaireachtaí a chaithfidh gach bailíochtóir a phróiseáil chun bloc a bhailíochtú a laghdú. Bíonn deis ag gach bailíochtóir fianú a dhéanamh i ngach tréimhse (32 sliotán) ach i ngach sliotán, níl ach fo-thacar de bhailitheoirí, ar a dtugtar fianú 'coiste'. Déanann siad é sin trí fho-líonraí a roinnt ina roghnaítear roinnt bailíochtóirí le bheith ina 'gcomhbhailíochtóirí'. Comhcheanglaíonn na comhbhailíochtóiirí sin na sínithe go léir a fheiceann siad ó bhailíochtóirí eile ina bhfo-líon isteach i síniú comhiomlán amháin. Déanann an comhbhailíochtóir a áiríonn an líon is mó ranníocaíochtaí aonair a síniú comhiomlán a chur ar aghaidh chuig an moltóir bloc, a áiríonn sa bhloc mar aon leis an síniú comhiomlán ó na coistí eile. + +Soláthraíonn an próiseas seo dóthain acmhainne do gach bailíochtóir vótáil i ngach aga, mar go bhfuil `32 sliotán * 64 coiste * 256 bailíochtóir in aghaidh an choiste = 524,288 bailíochtaithe in aghaidh na tréimhse `. Agus é seo á scríobh (Feabhra 2023) tá ~513,000 bailíochtóir gníomhach. + +Sa scéim seo, ní féidir le gach bailíochtóir vóta a chaitheamh ar bhloc ach trína bhfianuithe a dháileadh thar an tréimhse iomlán. Mar sin féin, tá bealaí féideartha ann chun an mheicníocht a fheabhsú ionas go mbeidh deis ag gach bailíochtóir fianú i ngach sliotán_. + + +Ó dearadh meicníocht chomhthola Ethereum, fuarthas amach go bhfuil an scéim chomhiomlánaithe sínithe (BLS) i bhfad níos inscálaithe ná mar a ceapadh ar dtús, agus tá feabhas tagtha freisin ar chumas na gcliant sínithe a phróiseáil agus a fhíorú. Tarlaíonn sé go bhfuil sé indéanta fianuithe a phróiseáil ó líon mór bailíochtaithe laistigh d'aon sliotán amháin. Mar shampla, le milliún bailíochtóir an ceann ag vótáil faoi dhó i ngach sliotán, agus amanna sliotán arna gcoigeartú go 16 soicind, bheadh ​​gá le nóid sínithe a fhíorú ag íosráta 125,000 comhiomlán in aghaidh an tsoicind chun gach 1 milliún fianú laistigh den sliotán a phróiseáil. I ndáiríre, tógann sé thart ar 500 nanashoicind ar ghnáthríomhaire fíorú sínithe amháin a dhéanamh, rud a chiallaíonn gur féidir 125,000 a dhéanamh i ~62.5 ms - i bhfad faoi bhun na tairsí soicind amháin. + +D’fhéadfaí tuilleadh gnóthachain éifeachtachta a bhaint amach trí shárchoistí a chruthú de m.sh. 125,000 bailíochtóir roghnaithe go randamach in aghaidh na sliotán. Ní fhaigheann ach na bailíochtóirí sin vóta ar bhloc agus mar sin ní chinneann ach an fo-thacar seo de bhailíochtóirí an dtabharfar bloc go críochnaitheacht. Cé acu an smaoineamh maith é seo nó nach ea, braitheann sé ar cé chomh costasach is fearr leis an bpobal ionsaí rathúil ar Ethereum a bheith. Tá sé seo amhlaidh toisc go bhféadfadh ionsaitheoir bloc mímhacánta a thabhairt go críochnaitheacht ina mbeadh 2/3 den éitear cruachta _san sárchoiste sin_ in ionad 2/3 den éitear iomlán a bheith ag teastáil. Is réimse gníomhach taighde é seo go fóill, ach tá dealramh leis go mbeidh costas an-ard ar ionsaí ar cheann de na fochoistí sin i gcás tacar bailíochtaithe atá sách mór chun go mbeadh ollchoistí uathu (m.sh. bheadh ​​costas an ionsaí ainmnithe ag ETH. `2/3 * 125,000 * 32 = ~2.6 milliún ETH`). Is féidir costas an ionsaithe a choigeartú trí mhéid an tacair bhailíochtóra a mhéadú (m.sh. méid an bhailíochtóra a oiriúnú ionas go mbeidh costas an ionsaithe comhionann le 1 milliún éitear, 4 mhilliún éitear, 10 milliún éitear, srl). Is cosúil go dtugann [Réamh pobalbhreith](https://youtu.be/ojBgyFl6-v4?t=755) an phobail le fios gur costas inghlactha ionsaí é 1-2 mhilliún éitear, rud a chiallaíonn ~ 65,536 - 97,152 bailíochtóir in aghaidh an ollchoiste. + +Mar sin féin, ní hé an fíorú an bac fíor - is é an comhiomlánú sínithe an dúshlán is mó do na nóid bhailíochtóirí. Chun comhiomlánú sínithe a scálú is dócha go mbeidh gá le méadú ar líon na bhailitheoirí i ngach folíonra, ag méadú líon na bhfo-líonraí, nó ag cur sraitheanna breise comhiomlánaithe (i.e. coistí coistí forfheidhmithe). D'fhéadfadh go gceadódh cuid den réiteach comhbhailitheoirí speisialaithe - cosúil leis an gcaoi a ndéanfar blocthógáil agus tiomantais a ghiniúint le haghaidh sonraí rollta suas a fhoinsiú allamuigh chuig tógálaithe bloc speisialaithe faoi scaradh moltóir-tógálaí (PBS) agus Danksharding. + +## Cén ról atá ag an riail forc-rogha san SSF? {#role-of-the-fork-choice-rule} + +Tá an meicníocht chomhoiriúnachta atá ann inniu ag brath ar nasc dlúth idir an uirlis chríochnaitheachta (an algartam a chinneann an bhfuil 2/3 de na bailitheoirí tar éis aontú le slabhra áirithe) agus rialáil rogha gabhail (an algartam a shocraíonn cén slabhra atá ceart nuair atá roghanna iomadúla ann). Ní bhreithnítear san algartam rogha forc ach na bloic _ó_ an bloc críochnaitheach deiridh. Faoin SSF ní bheadh ​​bloc ar bith le breithniú ag an riail maidir le rogha na ngabhal, toisc go dtarlaíonn críochnaitheacht sa sliotán céanna leis an mbloc atá molta. Ciallaíonn sé seo, faoi SSF _ceachtar_ go mbeadh an t-algartam rogha gabhail _ nó_ an ghiuirléid críochnaitheachta gníomhach ag am ar bith. Dhéanfadh an ghiuirléid críochnaitheachta bloic a thabhairt chun críche ina mbeadh 2/3 de bhailiíochtóirí ar líne agus ag fianú go hionraic. Mura bhfuil bloc in ann an tairseach 2/3 a shárú, chuirfí tús leis an riail maidir le rogha an fhoirc chun a chinneadh cén slabhra ba cheart a leanúint. Cruthaíonn sé seo deis freisin an mheicníocht sceite neamhghníomhaíochta a chothabháil a aisghabhann slabhra ina dtéann bailíochtóirí >1/3 as líne, cé go bhfuil roinnt miondifríochtaí breise i gceist. + +## Saincheisteanna gan réiteach {#outstanding-issues} + +Is í an fhadhb a bhaineann le comhiomlánú scálaithe trí líon na mbailíochtórí in aghaidh an fho-líonra a mhéadú ná go mbíonn ualach níos mó ar an líonra piara le piara mar thoradh air. Is í an fhadhb a bhaineann le sraitheanna comhiomlána a chur leis ná go mbaineann innealtóireacht measartha casta leis agus go gcuireann sé aga folaigh leis (i.e. d’fhéadfadh níos mó ama a bheith de dhíth ar an mholtóir an bhloic cloisteáil ó na comhbhailitheoirí folíonra go léir). Níl sé soiléir freisin conas déileáil leis an gcás go bhfuil níos mó bailíochtóirí gníomhacha ar an líonra ná mar is féidir a phróiseáil i ngach sliotán, fiú le comhiomlánú sínithe BLS. Réiteach amháin is ea, toisc go mbíonn gach bailíochtóir ag fianú i ngach sliotán agus nach bhfuil aon choistí faoi SSF, go bhféadfaí an teorainn 32 ETH ar an gcothromaíocht éifeachtach a bhaint go hiomlán, agus bheadh oibreoirí a bhainistíonn bailíochtóiirí iolracha a ngeall a chomhdhlúthú agus níos lú a reáchtáil, rud a laghdódh an líon teachtaireachtaí a bhíonn le proiseáil ag nóid bhailíochtaithe chun cuntas a thabhairt ar an tacar bailíochtaithe ar fad. Braitheann sé seo ar chomhaontú a bheith idir geallsealbhóírí móra a gcuid bailíochtaithe a chomhdhlúthú. Is féidir freisin teorainn sheasta a fhorchur ar líon na mbailíochtóirí nó ar an méid ETH atá i gceist tráth ar bith. Éilíonn sé seo meicníocht éigin le cinneadh cé na bailíochtóirí a cheadaítear a bheith rannpháirteach agus cé nach bhfuil, áfach, agus d'fhéadfaí éifeachtaí tánaisteacha nach dteastaíonn a chruthú dá bharr. + +## Dul chun cinn reatha {#current-progress} + +Tá SSF sa chéim taighde. Níltear ag súil go seolfar é go ceann roinnt blianta, is dócha tar éis uasghráduithe suntasacha eile ar nós [crann Verkle](/roadmap/verkle-trees/) agus [ Danksharding](/roadmap/danksharding/). + +## Tuilleadh léitheoireachta {#further-reading} + +- [Vitalik ar SSF ag EDCON 2022](https://www.youtube.com/watch?v=nPgUKNPWXNI) +- [Nótaí Vitalik: Cosáin chuig críochnaitheacht sliotán aonair](https://notes.ethereum.org/@vbuterin/single_slot_finality) diff --git a/public/content/translations/ga/roadmap/statelessness/index.md b/public/content/translations/ga/roadmap/statelessness/index.md new file mode 100644 index 00000000000..b66fab23edf --- /dev/null +++ b/public/content/translations/ga/roadmap/statelessness/index.md @@ -0,0 +1,103 @@ +--- +title: Neamhstáit, dul in éag stáit agus dul in éag staire +description: Míniú ar dhul in éag staire agus Ethereum gan stát +lang: ga +--- + +# Neamhstáit, dul in éag stáit agus dul in éag staire {#statelessness} + +Tá an cumas nóid Ethereum a rith ar chrua-earraí measartha ríthábhachtach don fíordhílárú. Tá sé seo amhlaidh mar go dtugann reáchtáil nód an cumas d'úsáideoirí faisnéis a fhíorú trí sheiceálacha cripteagrafacha a dhéanamh go neamhspleách seachas muinín a chur i dtríú páirtí chun sonraí a sholáthar dóibh. Trí nód a rith ligeann d’úsáideoirí idirbhearta a chur isteach go díreach chuig líonra piara-go-piara Ethereum seachas a bheith i muinín idirghabhálaí. Ní féidir dílárú mura bhfuil na buntáistí seo ar fáil ach d’úsáideoirí a bhfuil crua-earraí costasacha acu. Ina áit sin, ba cheart go mbeadh nóid in ann rith le riachtanais phróiseála agus chuimhne an-bheag ionas gur féidir leo rith ar fhóin phóca, ar mhicriríomhairí nó ar ríomhaire baile go formhothaithe. + +Sa lá atá inniu ann, is é riachtanais spáis diosca ard an príomh-bhacainn a chuireann cosc ​​​​ar rochtain uilíoch ar nóid. Tá sé seo go príomha mar gheall ar an ngá atá le giotaí móra de shonraí stáit Ethereum a stóráil. Tá faisnéis ríthábhachtach sna sonraí stáit seo a theastaíonn chun bloic agus idirbhearta nua a phróiseáil i gceart. Agus é seo á scríobh, moltar SSD tapa 2TB chun nód iomlán Ethereum a rith. I gcás nód nach ndéanann aon sonraí níos sine a bhearradh, fásann an riachtanas stórála ag thart ar 14GB sa tseachtain, agus tá nóid chartlainne a stórálann na sonraí go léir ón mbunus ag druidim le 12 TB (ag am scríofa, i mí Feabhra 2023). + +Is féidir tiomántáin chrua níos saoire a úsáid chun sonraí níos sine a stóráil ach tá siad sin ró-mhall chun coimeád suas leis na bloic isteach. Níl i gcoinneáil na samhlacha stórála reatha do chliaint agus stóráil sonraí á dhéanamh níos saoire agus níos éasca le stóráil ach réiteach sealadach agus páirteach ar an bhfadhb toisc go bhfuil fás stáit Ethereum 'gan teorainn', rud a chiallaíonn go mbeidh riachtanais stórála ag síormhéadú, agus beidh gá le feabhsuithe teicneolaíochta i gcónaí le coinneáil suas le fás stáit leanúnach. Ina áit sin, ní mór do chliaint bealaí nua a aimsiú chun bloic agus idirbhearta a fhíorú nach bhfuil ag brath ar shonraí a chuardach ó bhunachair shonraí áitiúla. + +## Stóráil nóid a laghdú {#reducing-storage-for-nodes} + +Tá bealaí éagsúla ann chun an méid sonraí a chaithfidh gach nód a stóráil a laghdú, agus éilíonn gach ceann acu croíphrótacal Ethereum a nuashonrú go pointe difriúil: + +- **Stair éaga**: cumasaigh nóid sonraí stáit atá níos sine ná bloic X a chaitheamh amach, ach ní athraíonn sé an chaoi a láimhseálann cliant Ethereum sonraí stáit. +- **Stáit in éag**: lig do shonraí stáit nach n-úsáidtear go minic a bheith neamhghníomhach. Is féidir le cliaint neamhaird a dhéanamh ar shonraí neamhghníomhacha go dtí go ndéantar iad a aiséirí. +- **Gan stát lag**: ní theastaíonn rochtain ar shonraí stáit iomlána ach ó tháirgeoirí bloc, is féidir le nóid eile bloic a fhíorú gan bhunachar sonraí stáit áitiúil. +- **Gan stát láidir**: ní gá rochtain a bheith ag nóid ar bith ar na sonraí stáit iomlána. + +## Sonraí in éag {#data-expiry} + +### Stair in éag {#history-expiry} + +Tagraíonn éag staire do chliaint ag baint sonraí níos sine nach dócha go mbeidh gá leo, ionas nach stórálann siad ach méid bheag sonraí stairiúla, ag ligean uaidh sonraí níos sine nuair a thagann sonraí nua isteach. Tá dhá chúis ann go dteastaíonn sonraí stairiúla ó chliaint: sioncronú agus freastal ar iarratais ar shonraí. Ar dtús, bhí ar chliaint sioncronú a dhéanamh ón mbloc bunúsas, ag deimhniú go raibh gach bloc seicheamhach i gceart an bealach ar fad go dtí ceann an tslabhra. Sa lá atá inniu ann, úsáideann cliaint "seicphointí suibiachtúlachta lag" chun a mbealach a bhrú go dtí ceann an tslabhra. Is pointí tosaithe iontaofa iad na seicphointí seo, cosúil le bloc bunúsach a bheith gar don lá atá inniu ann seachas do thús Ethereum. Ciallaíonn sé seo gur féidir le cliaint an fhaisnéis go léir a scaoileadh chuig an seicphointe suibiachtúlachta lag is déanaí gan an cumas sioncronaithe le ceann an tslabhra a chailleadh. Freastalaíonn cliaint ar iarratais faoi láthair (a thagann trí JSON-RPC) ar shonraí stairiúla trí iad a ghabháil óna mbunachair shonraí áitiúla. Mar sin féin, agus an stair imithe in éag ní bheidh sé seo indéanta má tá na sonraí iarrtha bearrtha. Is gá roinnt réitigh nuálacha le freastal ar na sonraí stairiúla seo. + +Rogha amháin is ea go n-iarrann cliaint sonraí stairiúla ó chomhghleacaithe a úsáideann réiteach ar nós an Líonra Tairseach. Is líonra piara-le-piara atá i mbun forbartha ar an Líonra Tairsigh chun freastal ar shonraí stairiúla ina stórálann gach nód píosa beag de stair Ethereum ionas go bhfuil an stair iomlán scaipthe ar fud an líonra. Déantar iarratais a sheirbheáil trí phiaraí a stórálann na sonraí ábhartha agus iad a iarraidh uathu. Mar mhalairt air sin, ós rud é go ginearálta gur aipeanna a éilíonn rochtain ar shonraí stairiúla, is féidir leo a bheith freagrach as iad a stóráil. D'fhéadfadh go mbeadh go leor gníomhaithe soilíosacha sa spás Ethereum a bheadh ​​sásta cartlanna stairiúla a choinneáil. D'fhéadfadh sé a bheith ina DAO a chastar suas chun stóráil sonraí stairiúla a bhainistiú, nó go hidéalach beidh sé ina mheascán de na roghanna seo go léir. D'fhéadfadh na soláthraithe seo na sonraí a sheirbheáil ar go leor bealaí, mar shampla ar torrent, FTP, Filecoin nó IPFS. + +Tá éag staire beagán conspóideach mar go dtí seo tá infhaighteacht aon sonraí stairiúla ráthaithe go hintuigthe i gcónaí ag Ethereum. Bhí sioncronú iomlán ó genesis indéanta i gcónaí mar chaighdeán, fiú má bhraitheann sé ar roinnt sonraí níos sine a atógáil ó roghabhlúirí. Bogann éag staire an fhreagracht as an ráthaíocht seo a sholáthar lasmuigh de chroíphrótacal Ethereum. D’fhéadfadh rioscaí cinsireachta nua a thabhairt isteach dá bharr sin más eagraíochtaí láraithe iad a rachaidh i ngleic le sonraí stairiúla a sholáthar. + +Níl EIP-4444 réidh le seoladh fós, ach tá sé faoi chaibidil go gníomhach. Is díol spéise é nach dúshláin theicniúla is mó a bhaineann le EIP-4444, ach bainistíocht phobail. Chun é seo a sheoladh, tá tacaíocht an phobail ag teastáil agus beidh tiomantais chomh maith le comhaontú de dhíth chun sonraí stairiúla a stóráil agus sonraí stairiúla a sheirbheáil ón aonáin iontaofa. + +Ní dhéantar aon athrú bunúsach ar an chaoi a láimhseálann nóid Ethereum sonraí stáit, ní athraíonn sé ach an dóigh a dhéantar rochtain ar shonraí stairiúla. + +### Éag stáit {#state-expiry} + +Tagraíonn éag stáit do stát a bhaint de nóid aonair mura bhfuarthas rochtain air le déanaí. Tá go leor bealaí ann chun é seo a chur i bhfeidhm, lena n-áirítear: + +- **Éag le cíos**: "cíos" a ghearradh ar chuntais agus iad a chur in éag nuair a shroicheann a gcíos náid +- **Éag le ham**: cuntais a dhéanamh neamhghníomhach mura bhfuil léamh/scríobh ar bith chuig an gcuntas sin le tamall anuas + +D’fhéadfadh éag trí chíos a bheith ina chíos díreach a ghearrtar ar chuntais chun iad a choinneáil sa bhunachar sonraí stáit gníomhach. D’fhéadfadh éag de réir ama a tarlú trí chomhaireamh síos ón idirghníomhaíocht cuntais dheireanach, nó d’fhéadfadh éag tréimhsiúil gach cuntas a bheith a bheith i gceist. D’fhéadfadh meicníochtaí a bheith ann freisin a chomhcheanglaíonn gnéithe de na samhlacha bunaithe ar am agus ar chíos araon, mar shampla go bhfanann cuntais aonair sa stát gníomhach má íocann siad táille bheag éigin roimh éag ambhunaithe. Le héag stáit tá sé tábhachtach a thabhairt faoi deara nach bhfuil an staid neamhghníomhach ** scriosta**, ní dhéantar é a stóráil ach ar leithligh ón stát gníomhach. Is féidir an stát neamhghníomhach a aiséirí isteach sa stát gníomhach. + +Is dócha gurb é an bealach a n-oibreodh sé seo ná crann stáit a bheith ann ar feadh tréimhsí ama ar leith (b'fhéidir ~1 bhliain). Aon uair a thosaíonn tréimhse nua, tosaítear crann staide úr iomlán. Ní féidir ach an crann staide reatha a mhodhnú, tá gach ceann eile do-athraithe. Níltear ag súil ach go gcoimeádfaidh nóid Ethereum an crann staide reatha agus an chéad cheann eile is déanaí. Éilíonn sé seo bealach chun seoladh a stampáil leis an tréimhse ina bhfuil sé. Tá [roinnt bealaí féideartha](https://ethereum-magicians.org/t/types-of-resurrection-metadata-in-state-expiry/6607) chun é seo a dhéanamh, ach éilíonn na príomhbhealaí an rogha [seoltaí a fhadú](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485) chun freastal ar an bhfaisnéis bhreise agus an buntáiste breise a bheith leis go bhfuil seoltaí níos faide i bhfad níos sláine. Tugtar [síneadh spáis seoltaí ar an mír treochlár a dhéanann é seo.](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485). + +Mar an gcéanna le héag na staire, faoi éag stáit baintear an fhreagracht as seanshonraí stáit a stóráil ó úsáideoirí aonair agus brú ar aonáin eile ar nós soláthraithe láraithe, baill soilíosacha den phobal nó réitigh díláraithe níos todhchaíochta amhail an Líonra Tairsigh. + +Tá éag stáit fós sa chéim taighde agus níl sé réidh le seoladh fós. D’fhéadfadh éag stáit tarlú níos déanaí ná cliaint gan stát agus éag staire mar go mbíonn mórmhéid na stát inbhainistithe go héasca ag formhór na mbailiíochtóirí de bharr na n-uasghráduithe sin. + +## Gan stát {#statelessness} + +Ní ainm oiriúnach e easpa staide mar ní chiallaíonn sé go gcuirtear deireadh leis an gcoincheap "staid", ach baineann sé le hathruithe ar an gcaoi a láimhseálann nóid Ethereum sonraí stáit. Tá dhá leagan den easpa staide ann: easpa staide agus easpa staide láidir. Cuireann easpa staide lag ar chumas an chuid is mó de na nóid dul go heaspa staide trí fhreagracht as stóráil stáit a chur ar roinnt bheag acu. Cuireann easpa staide láidir deireadh go hiomlán leis an ngá atá le nód ar bith chun sonraí iomlána an stáit a stóráil. Tugann easpa staide lag agus láidir araon na buntáistí seo a leanas do ghnáthbhailíochtóirí: + +- sioncronú beagnach láithreach +- cumas chun bloic as-ord a bhailíochtú +- nóid in ann rith le riachtanais chrua-earraí an-íseal (m.sh. ar ghutháin) +- is féidir le nóid rith ar bharr tiomántáin chrua saora toisc nach bhfuil léamh/scríobh diosca ag teastáil +- comhoiriúnach le huasghráduithe sa todhchaí ar cripteagrafaíocht Ethereum + +### Easpa Staide Lag {#weak-statelessness} + +Is éard atá i gceist le heaspa staide lag athruithe ar an mbealach a fhíoraíonn nóid Ethereum athruithe staide, ach ní dhíbríonn sé an gá atá le stóráil staide i ngach nóid ar an líonra go hiomlán. Ina áit sin, cuireann easpa staide lag an fhreagracht as stóráil staide ar mholtóirí bloic, agus fíoraíonn gach nóid eile ar an líonra bloic gan na sonraí staide iomlána a stóráil. + +**I gcás easpa staide lag, teastaíonn rochtain ar shonraí staide iomlána chun bloic a mholadh ach ní gá aon sonraí staide chun bloic a fhíorú** + +Chun go dtarlódh sé seo, ní mór [Crainn Verkle](/roadmap/verkle-trees/) a bheith curtha i bhfeidhm cheana féin i gcliant Ethereum. Is struchtúr sonraí athsholáthair iad crainn Verkle chun sonraí staide Ethereum a stóráil a cheadaíonn "finnéithe" beaga le méid sheasta ar na sonraí a chur ar aghaidh idir piaraí agus a úsáidtear chun bloic a fhíorú in ionad bloic a fhíorú i gcoinne bunachair shonraí áitiúla. Teastaíonn [deighilt idir na tógálaí agus an moltóir](/roadmap/pbs/) freisin toisc go gceadaíonn sé seo do thógálaithe bloc a bheith ina nóid speisialaithe le crua-earraí níos cumhachtaí, agus is iad sin na cinn a dteastaíonn rochtain uathu ar shonraí iomlána na staide. + + + +Braitheann easpa staide ar thógálaithe bloc a bheith ag cothabháíl cóip de na sonraí staide iomlána ionas gur féidir leo finnéithe a ghiniúint chun an bloc a fhíorú. Ní gá rochtain a bheith ag nóid eile ar shonraí na staide, tá an fhaisnéis go léir is gá chun an bloc a fhíorú ar fáil san fhinné. Cruthaíonn sé seo cás ina bhfuil sé costasach bloc a mholadh, ach go bhfuil fíorú an bhloic saor, rud a thugann le tuiscint go reáchtálfaidh níos lú oibreoirí nód molta bloc. Mar sin féin, níl dílárú na moltóirí bloc ríthábhachtach chomh fada agus is féidir leis an oiread rannpháirtithe agus is féidir a fhíorú go neamhspleách go bhfuil na bloic atá molta acu bailí. + +Léigh tuilleadh ar nótaí Dankrad + + +Úsáideann moltóirí bloc na sonraí staide chun "finnéithe" a chruthú - an tacar íosta sonraí a chruthaíonn luachanna na staide atá á hathrú ag idirbhearta bloc. Ní shealbhaíonn bailíochtóií eile an staid, ní stórálann siad ach fréamh na staide (hais den staid iomlán). Faigheann siad bloc agus finné agus úsáideann siad iad chun a fhréamh staide a nuashonrú. Déanann sé seo nód bailíochtaithe thar a bheith éadrom. + +Tá an easpa staide ag dul chun cinn sa taighde, ach braitheann sé ar scaradh idir moltóirí agus tógálaithe agus Crainn Verkle a bheith curtha i bhfeidhm ionas gur féidir finnéithe beaga a chur ar aghaidh idir piaraí. Ciallaíonn sé seo gur dócha go bhfuil easpa staide lag cúpla bliain ar shiúl ó Ethereum Mainnet. + +### Easpa staide láidir {#strong-statelessness} + +Cuireann easpa staide láidir deireadh leis an ngá atá le nód ar bith chun sonraí staide a stóráil. Ina áit sin, seoltar idirbhearta le finnéithe ar féidir le táirgeoirí bloc a chomhiomlánú. Tá na táirgeoirí bloc freagrach ansin as an staid sin amháin a stóráil a theastaíonn chun finnéithe a ghiniúint le haghaidh cuntas ábhartha. Aistrítear an fhreagracht stáit beagnach go hiomlán chuig úsáideoirí, mar go seolann siad finnéithe agus 'liostaí rochtana' le dearbhú cé na cuntais agus na heochracha stórála a bhfuil siad ag idirghníomhú leo. Cumasaíonn sé seo nóid thar a bheith éadrom, ach tá comhbhabhtáil ann lena n-áirítear go mbíonn sé níos deacra idirbhearta a dhéanamh le conarthaí cliste. + +Tá easpa staide láidir imscrúdaithe ag taighdeoirí ach níltear ag súil faoi láthair go mbeidh sé mar chuid de threochlár Ethereum - is dóichí gur leor easpa staide lag do riachtanais scálaithe Ethereum. + +## Dul chun cinn reatha {#current-progress} + +Tá easpa stáit lag, éag staire agus éag stáit ar fad ag an gcéim taighde agus táthar ag súil go gcuirfear i gcrích iad i gceann roinnt blianta. Níl aon ráthaíocht ann go gcuirfear na moltaí seo ar fad i bhfeidhm, mar shampla, má chuirtear éag stáit i bhfeidhm ar dtús b’fhéidir nach mbeidh gá le héag staire a chur i bhfeidhm freisin. Tá míreanna treochláir eile ann freisin, mar [Verkle Trees](/roadmap/verkle-trees) agus [deighilt idir an tairgeoir agus an moltóir](/roadmap/pbs) nach mór a chríochnú ar dtús. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Easpa staide Vitalik AMA](https://www.reddit.com/r/ethereum/comments/o9s15i/impromptu_technical_ama_on_statelessness_and/) +- [Teoiric ar bhainistíochta méid staide](https://hackmd.io/@vbuterin/state_size_management) +- [Aiséirí-coimhlint-teorainn stáit íoslaghdaithe](https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739) +- [Cosáin chuig easpa staide agus éag staide](https://hackmd.io/@vbuterin/state_expiry_paths) +- [Sonraíocht EIP-4444](https://eips.ethereum.org/EIPS/eip-4444) +- [Alex Stokes ar EIP-4444](https://youtu.be/SfDC_qUZaos) +- [Cén fáth go bhfuil sé chomh tábhachtach dul go heaspa staide](https://dankradfeist.de/ethereum/2021/02/14/why-stateless.html) +- [Nótaí coincheap bunaidh an chliaint le heaspa staide](https://ethresear.ch/t/the-stateless-client-concept/172) +- [Tuilleadh faoi dhul in éag stáit](https://hackmd.io/@vbuterin/state_size_management#A-more-moderate-solution-state-expiry) +- [Níos mó fós faoi éag stáit](https://hackmd.io/@vbuterin/state_expiry_paths#Option-2-per-epoch-state-expiry) diff --git a/public/content/translations/ga/roadmap/user-experience/index.md b/public/content/translations/ga/roadmap/user-experience/index.md new file mode 100644 index 00000000000..bfb1f861541 --- /dev/null +++ b/public/content/translations/ga/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Taithí úsáideora a fheabhsú +description: Tá sé fós ró-chasta Ethereum a úsáid don chuid is mó daoine. Chun oll-uchtú a spreagadh, ní mór do Ethereum na bacainní ar iontráil a laghdú go suntasach - ní mór d'úsáideoirí na buntáistí a bhaineann le rochtain dhíláraithe, gan chead agus frithchinsireacht a fháil ar Ethereum ach caithfidh sé a bheith chomh neamhshrianta le feidhmchlár traidisiúnta Web2 a úsáid. +lang: ga +image: /images/roadmap/roadmap-ux.png +alt: "Treochlár Ethereum" +template: roadmap +--- + +**Ní mór úsáid Ethereum a shimpliú**; ó bhainistiú [eochracha](/glossary/#key) agus [sparán](/glossary/#wallet) go dtí tús a chur le hidirbhearta. Chun oll-uchtú a éascú, ní mór do Ethereum éascaíocht úsáide a mhéadú go suntasach, rud a ligeann d'úsáideoirí rochtain gan chead agus frithchinsireacht a fháil ar Ethereum le taithí gan srian ar úsáid a bhaint as aipeanna [Web2](/glossary/#web2). + +## Thar frásaí síolta {#no-more-seed-phrases} + +Tá cuntais Ethereum cosanta ag péire eochracha a úsáidtear chun cuntais a aithint (eochair phoiblí) agus teachtaireachtaí a shíniú (eochair phríobháideach). Tá eochair phríobháideach cosúil le máistirfhocal faire; ceadaíonn sé rochtain iomlán ar chuntas Ethereum. Is bealach eile oibríochta é seo do dhaoine atá níos eolaí ar bhainc agus ar aipeanna Web2 a bhainistíonn cuntais thar ceann úsáideora. Chun gur féidir le Ethereum olluchtú a bhaint amach gan a bheith ag brath ar thríú páirtithe láraithe, ní mór go mbeadh bealach simplí, gan srian ag úsáideoir coimeád a gcuid sócmhainní agus smacht a choinneáil ar a gcuid sonraí gan a bheith ag tuiscint eochairchriptagrafaíocht phoiblí-phríobháideach agus príomhbhainistíocht. + +Is é an réiteach air seo ná sparán [conradh cliste](/glossary/#smart-contract) a úsáid chun idirghníomhú le Ethereum. Cruthaíonn sparán conartha cliste bealaí chun cuntais a chosaint má chailltear nó má ghoidtear na heochracha, deiseanna chun calaois a bhrath agus a chosaint níos fearr, agus ligeann siad do sparán feidhmiúlacht nua a fháil. Cé go bhfuil sparán conartha cliste ann inniu, tá siad deacair a thógáil mar go gcaithfidh prótacal Ethereum tacú leo níos fearr. Astarraingt cuntais a thugtar ar an tacaíocht bhreise seo. + +Tuilleadh faoi astarraingt cuntais + +## Nóid do gach duine + +Ní gá d'úsáideoirí atá ag rith [nóid](/glossary/#node) muinín a bheith acu as tríú páirtithe chun sonraí a sholáthar dóibh, agus is féidir leo idirghníomhú go tapa, go príobháideach agus gan cead leis an Ethereum [blocshlabhra](/glossary/#blockchain). Mar sin féin, teastaíonn eolas teicniúil agus spás diosca substaintiúil chun nód a rith faoi láthair, rud a chiallaíonn go gcaithfidh go leor daoine muinín a bheith acu as idirghabhálaithe ina n-ionad sin. + +Tá roinnt uasghráduithe ann a fhágfaidh go mbeidh sé i bhfad níos éasca nóid a rith agus nach mbeidh siad chomh dian ar acmhainní. Athrófar an bealach a stórálfar sonraí chun struchtúr níos éifeachtúla ó thaobh spáis a úsáid ar a dtugtar ** Verkle Tree**. Chomh maith leis sin, le [easpa stát](/roadmap/statelessness) nó [dul in éag sonraí](/roadmap/statelessness/#data-expiry), ní bheidh gá le nóid Ethereum a stóráil cóip de shonraí stáit Ethereum ar fad, ag laghdú go mór riachtanais spáis diosca crua. Tabharfaidh [Nóid éadroma](/developers/docs/nodes-and-clients/light-clients/) go leor buntáistí as nód iomlán a rith ach is féidir é a rith go héasca ar fhóin phóca nó laistigh d’aipeanna simplí brabhsálaí. + +Léigh faoi chrainn Verkle + +Leis na huasghráduithe seo, laghdaítear na bacainní ar nód a rith go nialas go héifeachtach. Bainfidh úsáideoirí leas as rochtain shlán gan chead ar Ethereum gan spás diosca nó CPU suntasach a íobairt ar a ríomhaire nó ar a bhfón póca, agus ní bheidh orthu brath ar thríú páirtithe le haghaidh rochtain sonraí nó líonra nuair a úsáideann siad aipeanna. + +## Dul chun cinn reatha {#current-progress} + +Tá sparáin chonartha cliste ar fáil cheana féin, ach tá gá le tuilleadh uasghráduithe chun iad a dhéanamh chomh díláraithe agus gan chead agus is féidir. Is togra aibí é EIP-4337 nach dteastaíonn aon athruithe ar phrótacal Ethereum. Ba é an príomhchonradh cliste a theastaíonn le haghaidh EIP-4337 ná **imscaradh i Márta 2023**. + +**Tá easpa stáit fós sa chéim taighde** agus is dócha nach bhfuil sé curtha i bhfeidhm go ceann roinnt blianta. Tá roinnt garspriocanna ar an mbóthar chuig easpa státseirbhíse, lena n-áirítear dul in éag sonraí, a d’fhéadfaí a chur i bhfeidhm níos luaithe. Is gá go mbeadh míreanna eile treochláir, mar [Verkle Trees](/roadmap/verkle-trees/) agus [caithfear deighilt idir na tógálaí agus na tairgeoirí](/roadmap/pbs/) a thabhairt chun críche ar dtús. + +Tá neadacha tástála crann Verkle ar bun cheana féin, agus is é an chéad chéim eile ag rith cliaint cumasaithe crann Verkle ar neadacha tástála príobháideacha, agus ansin poiblí. Is féidir leat cabhrú le dul chun cinn a luathú trí chonarthaí a imscaradh chuig na líonraí tástála nó trí líonraí cliaint a rith. diff --git a/public/content/translations/ga/roadmap/verkle-trees/index.md b/public/content/translations/ga/roadmap/verkle-trees/index.md new file mode 100644 index 00000000000..58161e8637e --- /dev/null +++ b/public/content/translations/ga/roadmap/verkle-trees/index.md @@ -0,0 +1,68 @@ +--- +title: Crainn Verkle +description: Cur síos ardleibhéil ar chrainn Verkle agus conas a úsáidfear iad chun Ethereum a uasghrádú +lang: ga +summaryPoints: + - Faigh amach cad iad na crainn Verkle + - Léigh cén fáth go bhfuil uasghrádú Crainn Verkle úsáideach do Ethereum +--- + +# Crainn Verkle {#verkle-trees} + +Is struchtúr sonraí iad crainn Verkle (portmanta de "Tiomantas Veicteoir" agus "Crainn Merkle") is féidir a úsáid chun nóid Ethereum a uasghrádú ionas gur féidir leo stop a chur le suimeanna móra sonraí stáit a stóráil gan an cumas chun bloic a bhailíochtú a chailliúint. + +## Gan stát {#statelessness} + +Is céim ríthábhachtach iad crainn Verkle ar an gcosán do chliaint Ethereum gan stát. Is cliaint gan stát iad na cliaint nach gcaithfidh bunachar sonraí iomlán an stáit a stóráil chun bloic isteach a bhailíochtú. In ionad a gcóip áitiúil féin de stát Ethereum a úsáid chun bloic a fhíorú, úsáideann cliaint gan stát "finné" do na sonraí stáit a thagann leis an mbloc. Is ionann finné agus bailiúchán de phíosaí aonair de shonraí an stáit a theastaíonn chun sraith áirithe idirbhearta a fhorghníomhú, agus cruthúnas cripteagrafach go bhfuil an finné i ndáiríre mar chuid de na sonraí iomlána. Úsáidtear _an finné in áit_in áit bunachar sonraí an stáit. Chun go n-oibreoidh sé seo, ní mór do na finnéithe a bheith an-bheag, ionas gur féidir iad a chraoladh go sábháilte ar fud an líonra ionas go mbeidh na bailíochtóirí ábalta iad a phróiseáil laistigh de shliotán 12 soicind. Níl an struchtúr sonraí stáit reatha oiriúnach toisc go bhfuil finnéithe ró-mhór. Réitíonn crainn Verkle an fhadhb seo trí fhinnéithe beaga a chumasú, ag fáil réidh le ceann de na príomhbhacainní ar chliaint gan stát. + + + +Úsáideann cliaint Ethereum struchtúr sonraí ar a dtugtar Patricia Merkle Trie faoi láthair chun a sonraí stáit a stóráil. Stóráiltear faisnéis faoi chuntais aonair mar dhuilleoga ar an trie agus déantar péirí duilleoga a haiseáil arís agus arís eile go dtí nach bhfanann ach hais amháin. Tugtar an "fréamh" ar an hais deiridh seo. Chun bloic a fhíorú, déanann cliaint Ethereum na hidirbhearta go léir a fhorghníomhú i mbloc agus a gcuid trie stáit áitiúil a nuashonrú. Meastar go bhfuil an bloc bailí má tá fréamh an chrainn áitiúil comhionann leis an gceann a sholáthraíonn an moltóir bloic, toisc go mbeadh aon difríochtaí sa ríomh a dhéanann an moltóir bloic agus an nód bailíochtaithe ina chúis le hais an fhréamh a bheith go hiomlán difriúil. Is í an fhadhb atá leis seo ná go n-éilíonn fíorú an bhlocshlabhra ar gach cliant stát iomlán an trie a stóráil don bhloc cinn agus roinnt bloc stairiúla (is é an réamhshocrú i Geth sonraí stáit a choinneáil le haghaidh 128 bloc taobh thiar den cheann). Éilíonn sé seo go mbeadh rochtain ag cliaint ar líon mór spás diosca, rud atá ina bhac ar nóid iomlána a rith ar chrua-earraí saor, ísealchumhachta. Is réiteach amháin air seo trie an stát a uasdátú go struchtúr níos éifeachtaí (crann Verkle) ar féidir é a achoimriú le "finné" beag ar na sonraí is féidir a roinnt in ionad sonraí iomlána an stáit. Is slí é sonraí an stáit a athchóiriú ina chrann Verkle chun aistriú chuig cliaint gan stát. + + + +## Cad is finné ann agus cén fáth a bhfuil gá againn leo? {#what-is-a-witness} + +Ciallaíonn fíorú bloic na hidirbhearta atá sa bhloc a ath-fhorghníomhú, na hathruithe a chur i bhfeidhm ar trie stáit Ethereum, agus an hais fréimhe nua a ríomh. Is ionann bloc fíoraithe agus ceann a bhfuil hais fréimhe stáit ríofa mar an gcéanna leis an gceann a cuireadh ar fáil leis an mbloc (toisc go bhfuil an ríomh a deir siad a bheith déanta, déanta i ndáiríre). I gcliant Ethereum an lae inniu, éilíonn nuashonrú an stáit rochtain ar an trie stáit ar fad, ar struchtúr sonraí mór é a chaithfear a stóráil go háitiúil. Ní bhíonn ag finné ach na blúirí de na sonraí stáit a theastaíonn chun na hidirbhearta sa bhloc a fhorghníomhú. Ní féidir le bailíochtóir ansin ach na blúirí sin a úsáid chun a fhíorú go ndearna an moltóir bloic na hidirbhearta bloic agus go ndearna sé uasdátú ceart ar an stát. Ciallaíonn sé seo áfach gur gá an finné a aistriú idir piaraí ar líonra Ethereum atá tapa go leor chun a bheith faighte agus próiseáilte ag gach nód go sábháilte laistigh de shliotán 12 soicind. Má tá an finné rómhór, d'fhéadfadh sé go dtógfadh sé an iomarca ama ar nóid é a íoslódáil agus coinneáil suas leis an slabhra. Is fórsa láraithe é seo toisc go gciallaíonn sé nach féidir ach le nóid a bhfuil naisc thapa idirlín acu páirt a ghlacadh i mbloic bhailíochtaithe. Le crainn Verkle ní gá an stát a stóráil ar do dhiosca crua; tá _gach rud_ atá uait le bloc a fhíorú laistigh den bhloc féin. Ar an drochuair, tá na finnéithe is féidir a tháirgeadh ó thriail Merkle ró-mhór chun tacú le cliaint gan stát. + +## Cén fáth go gcumasaíonn crainn Verkle finnéithe níos lú? {#why-do-verkle-trees-enable-smaller-witnesses} + +Mar gheall ar struchtúr Merkle Trie tá méideanna finnéithe an-mhór - ró-mhór le craoladh go sábháilte idir piaraí laistigh de shliotán 12 soicind. Tá sé seo amhlaidh toisc gur cosán é an finné a nascann na sonraí, a choinnítear i nduilleoga, leis an hais fréimhe. Chun na sonraí a fhíorú is gá a bheith ní hamháin na haiseanna idirmheánacha go léir a cheanglaíonn gach duilleog leis an bhfréamh, ach freisin gach nóid "siblín". Tá siblín ag gach nód sa chruthúnas a bhfuil hais leis chun an chéad haiseanna eile a chruthú suas an trie. Is mór an méid sonraí é seo. Laghdaíonn crainn verkle méid an fhinné tríd an fad idir duilleoga an chrainn agus a fhréamh a ghiorrú agus freisin deireadh a chur leis an ngá atá le nóid siblíní a sholáthar chun an hais fréimhe a fhíorú. Is féidir éifeachtacht spáis níos mó a ghnóthú trí scéim thiomantais iltéarmach chumhachtach a úsáid in ionad an ghealltanais veicteora i stíl hais. Ceadaíonn an tiomantas iltéarmach méid seasta a bheith ag an bhfinné beag beann ar líon na duilleoga a chruthaíonn sé. + +Faoin scéim tiomantais iltéarmaigh, tá méideanna soláimhsithe ag na finnéithe ar féidir iad a aistriú go héasca ar an líonra piara go piara. Ceadaíonn sé seo do chliaint athruithe stáit a fhíorú i ngach bloc le híosmhéid sonraí. + + + +Athraíonn méid na bhfinnéithe ag brath ar líon na duilleoga a chuimsítear ann. Ag glacadh leis go gclúdaíonn an finné 1000 duilleog, bheadh ​​finné le haghaidh trie Merkle thart ar 3.5MB (ag glacadh le 7 leibhéal sa trie). Bheadh ​​finné do na sonraí céanna i gcrann Verkle (ag glacadh leis go bhfuil 4 leibhéal sa chrann) thart ar 150 kB - **thart ar 23x níos lú**. Fágfaidh an laghdú seo ar mhéid na bhfinnéithe gur féidir le finnéithe cliaint gan stát a bheith inghlactha beag. Is ionann finnéithe iltéarmacha 0.128 -1 kB ag brath ar an tiomantas iltéarmach sonrach a úsáidtear. + + + +## Cad é struchtúr crann Verkle? {#what-is-the-structure-of-a-verkle-tree} + +Is péirí `(eochair, luach)` iad crainn verkle ina bhfuil na heochracha ina n-eilimintí 32 beart comhdhéanta de 31 beart _gas_ agus beart amháin _iarmhír_. Eagraítear na heochracha seo ina nóid _síneadh_ agus ina nóid _inmheánach_. Is ionann nóid shínte agus gas amháin do 256 leanbh a bhfuil iarmhíreanna éagsúla acu. Tá 256 leanbh ag nóid istigh freisin, ach is féidir leo a bheith ina nóid síneadh eile. Is é an príomhdhifríocht idir an crann Verkle agus struchtúr crann Merkle ná go bhfuil an crann Verkle i bhfad níos leibhéalta, rud a chiallaíonn go bhfuil níos lú nóid idirmheánacha ag nascadh duilleog leis an bhfréamh, agus mar sin níos lú sonraí ag teastáil chun cruthúnas a ghiniúint. + +![](./verkle.png) + +[Léigh tuilleadh faoi struchtúr na gcrann Verkle](https://blog.ethereum.org/2021/12/02/verkle-tree-structure) + +## Dul chun cinn reatha {#current-progress} + +Tá testnets crann Verkle ar bun cheana féin, ach tá nuashonruithe suntasacha fós le déanamh do chliaint a theastaíonn chun tacú le crainn Verkle. Is féidir leat cabhrú le dul chun cinn a luathú trí chonarthaí a imscaradh chuig na líonraí tástála nó trí líonraí cliaint a rith. + +[Déan iniúchadh ar líonra tástála Verkle Gen Devnet 6](https://verkle-gen-devnet-6.ethpandaops.io/) + +[Féach ar Guillaume Ballet ag míniú an tástáil líonra Condrieu Verkle](https://www.youtube.com/watch?v=cPLHFBeC0Vg) (tabhair faoi deara gur cruthúnas-oibre a bhí i ngréasán tástála Condrieu agus go bhfuil testnet Verkle Gen Devnet 6) ina áit anois. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Verkle Trees le haghaidh Neamhstáit](https://verkle.info/) +- [Míníonn Dankrad Feist crainn Verkle ar PEEPanEIP](https://www.youtube.com/watch?v=RGJOQHzg3UQ) +- [Verkle Trees For The Rest Of Us](https://research.2077.xyz/verkle-trees) +- [Anatomy of A Verkle Proof](https://ihagopian.com/posts/anatomy-of-a-verkle-proof) +- [Míníonn Guillaume Ballet crainn Verkle ag ETHGlobal](https://www.youtube.com/watch?v=f7bEtX3Z57o) +- ["Conas a dhéanann crainn Verkle Ethereum caol agus dána" ag Guillaume Ballet ag Devcon 6](https://www.youtube.com/watch?v=Q7rStTKwuYs) +- [Piper Merriam ar chliaint gan stát ó ETHDenver 2020](https://www.youtube.com/watch?v=0yiZJNciIJ4) +- [Míníonn Dankrad Fiest crainn Verkle agus gan stát ar phodchraoladh Zero Knowledge](https://zeroknowledge.fm/episode-202-stateless-ethereum-verkle-tries-with-dankrad-feist/) +- [Vitalik Buterin ar na crainn Verkle](https://vitalik.eth.limo/general/2021/06/18/verkle.html) +- [Dankrad Feist ar chrainn Verkle](https://dankradfeist.de/ethereum/2021/06/18/verkle-trie-for-eth1.html) +- [Doiciméadú EIP crann Verkle](https://notes.ethereum.org/@vbuterin/verkle_tree_eip#Illustration) diff --git a/public/content/translations/ga/security/index.md b/public/content/translations/ga/security/index.md new file mode 100644 index 00000000000..ef92843a2ed --- /dev/null +++ b/public/content/translations/ga/security/index.md @@ -0,0 +1,295 @@ +--- +title: Slándáil Ethereum agus cosc ​​sceamála +description: Fanacht sábháilte ar Ethereum +lang: ga +--- + +# Slándáil Ethereum agus cosc ​​sceamála {#introduction} + +Cruthaíonn an t-ús méadaitheach i gcriptea-airgeadraí baol méadaithe ó chaimiléirí agus haiceálaithe. Leagann an t-alt seo amach roinnt dea-chleachtais chun na rioscaí seo a mhaolú. + +**Cuimhnigh: Ní dhéanfaidh aon duine ó ethereum.org teagmháil leat go deo. Ná freagair ríomhphoist ag rá gur ó thacaíocht oifigiúil Ethereum iad.** + + + +## Slándáil criptithe 101 {#crypto-security} + +### Feabhsaigh do chuid eolais {#level-up-your-knowledge} + +Is féidir botúin chostasacha a bheith mar thoradh ar mhíthuiscintí faoi conas a oibríonn crypto. Mar shampla, má ligeann duine air féin gur gníomhaire seirbhíse custaiméara é atá in ann ETH caillte a thabhairt ar ais mar mhalairt ar d’eochracha príobháideacha, tá siad i mbun dúshaothrú a dhéanamh ar dhaoine nach dtuigeann gur líonra díláraithe é Ethereum nach bhfuil an cineál seo feidhmiúlachta aige. Is infheistíocht fhiúntach é oideachas a chur ort féin ar conas a oibríonn Ethereum. + + + Cad é Ethereum? + + + + Cad é éitear? + + + +## Slándáil sparáin {#wallet-security} + +### Ná tabhair amach do chuid eochracha príobháideacha {#protect-private-keys} + +**Ná roinn do chuid eochracha príobháideacha riamh, ar chúis ar bith!** + +Is é an eochair phríobháideach do do sparán pasfhocal chuig do sparán Ethereum. Is é an t-aon rud a stopann duine a bhfuil aithne aige ar do sheoladh sparáin ó do chuntas a shócmhainní go léir a dhraenáil! + + + Cad atá i sparán Ethereum? + + +#### Ná tóg seatanna scáileáin de do chuid frásaí síl/eochracha príobháideacha {#screenshot-private-keys} + +Má dhéantar seatanna scáileáin ar do chuid frásaí síl nó d’eochracha príobháideacha, d’fhéadfaí iad a shioncronú le soláthraí néil sonraí, rud a d’fhéadfadh rochtain a bheith ag haiceálaithe air. Is veicteoir coitianta ionsaithe é eochracha príobháideacha a fháil ón néal do haiceálaithe. + +### Bain úsáid as sparán crua-earraí {#use-hardware-wallet} + +Soláthraíonn sparán crua-earraí stóráil as líne d'eochracha príobháideacha. Meastar gurb iad an rogha sparán is sláine chun d’eochracha príobháideacha a stóráil: ní théann d’eochair phríobháideach i dteagmháil leis an idirlíon agus fanann sí go hiomlán áitiúil ar do ghléas. + +Má choinnítear eochracha príobháideacha as líne laghdaítear go mór an baol go ndéanfaí haiceáil ort, fiú má fhaigheann haiceálaí smacht ar do ríomhaire. + +#### Bain triail as sparán crua-earraí: {#try-hardware-wallet} + +- [Mórleabhar](https://www.ledger.com/) +- [Trezor](https://trezor.io/) + +### Seiceáil faoi dhó idirbhearta roimh sheoladh {#double-check-transactions} + +Is botún coitianta é crypto a sheoladh go timpisteach chuig an seoladh mícheart sparán. **Tá idirbheart a sheoltar ar Ethereum do-aisiompaithe.** Mura bhfuil aithne agat ar úinéir an tseolta agus gur féidir leis a chur ina luí orthu do chiste a sheoladh ar ais chugat, ní bheidh tú in ann do chistí a fháil ar ais. + +Déan cinnte i gcónaí go bhfuil an seoladh a seolann tú idirbheart chuige díreach mar an gcéanna le seoladh an fhaighteora inmhianaithe sula seolann tú é. Is dea-chleachtas é agus tú ag idirghníomhú le conradh cliste an teachtaireacht idirbhirt a léamh sula sínítear é. + +### Socraigh teorainneacha caiteachais conarthaí cliste {#spend-limits} + +Agus tú ag idirghníomhú le conarthaí cliste, ná ceadaigh teorainneacha caiteachais gan teorainn. D'fhéadfadh caitheamh gan teorainn a chur ar chumas an chonartha cliste do sparán a dhraenáil. Ina áit sin, socraigh teorainneacha caiteachais don mhéid is gá don idirbheart amháin. + +Tugann go leor sparán Ethereum cosaint teorainneacha chun cosaint a dhéanamh ar chuntais a bheith á ndraenáil. + +[Conas rochtain chonartha cliste ar do chistí crypto a chúlghairm](/guides/how-to-revoke-token-access/) + + + +## Camscéimeanna coitianta {#common-scams} + +Tá sé dodhéanta stop a chur le caimiléirí go hiomlán, ach is féidir linn é a dhéanamh níos deacra trí bheith ar an eolas faoi na teicnící is mó a úsáidtear. Tá go leor éagsúlachtaí ar na camscéimeanna seo, ach go ginearálta leanann siad na patrúin ardleibhéil céanna. Mura rud ar bith eile, cuimhnigh: + +- a bheith amhrasach i gcónaí +- níl aon duine chun ETH saor in aisce nó lascainithe a thabhairt duit +- ní gá d'eochracha príobháideacha ná d'fhaisnéis phearsanta a bheith ag aon duine + +### Fógraíocht Twitter {#ad-phishing} + +![Nasc fioscaireachta Twitter](./twitterPhishingScam.png) + +Tá modh ann chun cumarsáid faoi bhréagriocht a dhéanamh (spúfáil) de ghné réamhamharc nasc Twitter (ar a dtugtar X freisin) chun úsáideoirí a d'fhéadfadh a bheith meallta ag smaoineamh go bhfuil siad ag tabhairt cuairte ar shuíomh Gréasáin dlisteanach. Baineann an teicníocht seo leas as meicníocht Twitter chun réamhamhairc a chruthú ar URLanna a roinntear i dtvuíteanna, agus taispeánann sé _ó ethereum.org_ mar shampla (a fheictear thuas), agus iad á atreorú chuig a suíomh mailíseach. + +Seiceáil i gcónaí go bhfuil tú ar an bhfearann ​​​​ceart, go háirithe tar éis duit nasc a chliceáil. + +[Tuilleadh eolais anseo](https://harrydenley.com/faking-twitter-unfurling). + +### Scam bronntanais {#giveaway} + +Is é ceann de na sceamálacha is coitianta i gcriptea-airgeadraí an sceamáil bhronntanais. Is iomaí cruth atá ar chamscéimeanna tabhartais in aisce, ach is é an smaoineamh ginearálta ná má sheolann tú ETH chuig an seoladh sparán a chuirtear ar fáil, gheobhaidh tú do chuid ETH ar ais ach é dúbailte. *Ar an gcúis seo, tugtar an scam 2-for-1 air freisin.* + +Is gnách go n-ordaíonn na camscéimeanna seo am teoranta deiseanna chun an bronntanas a éileamh chun braistint bhréagach phráinne a chruthú. + +### Cleasanna meán sóisialta {#social-media-hacks} + +Tharla leagan ardphróifíle de seo i mí Iúil 2020, nuair a hackáladh cuntais Twitter daoine cáiliúla agus eagraíochtaí. Rinne an hacker postáil ag an am céanna bronntanas Bitcoin ar na cuntais hacked. Cé gur tugadh faoi deara agus scriosadh na tweets mealltacha go tapa, d'éirigh leis na hackers fós éalú le 11 bitcoin (nó $ 500,000 ó Mheán Fómhair 2021). + +![Sceamáil ar Twitter](./appleTwitterScam.png) + +### Bronntanas ó dhaoine cáiliúla {#celebrity-giveaway} + +Is foirm choitianta eile é an bronntanas do dhaoine cáiliúla a thógann an scam bronntanais. Glacfaidh na scammers agallamh físe taifeadta nó caint comhdhála nuair a thugtar duine cáiliúil dóibh agus déanfaidh siad é a shruthú beo ar YouTube - rud a fhágann go mbeidh an chuma air go raibh an duine cáiliúil ag tabhairt agallamh físe beo a fhormhuiníonn bronntanas cryptocurrency. + +Úsáidtear Vitalik Buterin go minic sa chamscéim seo, ach úsáidtear go leor daoine suntasacha eile a bhfuil baint acu le crypto freisin (m.sh. Elon Musk nó Charles Hoskinson). Nuair a chuirtear duine aitheanta san áireamh, tugann sé seo tuiscint ar dhlisteanacht do na caimiléirí (tá cuma fíoraisteach air seo, ach tá baint ag Vitalik leis, mar sin caithfidh sé a bheith ceart go leor!). + +**Is camscéimeanna iad bronntanais i gcónaí. Má sheolann tú do chuid cistí chuig na cuntais seo, caillfidh tú iad go deo.** + +![Camscéim ar YouTube](./youtubeScam.png) + +### Tacaíocht camscéimeanna {#support-scams} + +Is teicneolaíocht réasúnta óg agus ar minic nach dtuigtear iad criptea-airgeadraí. Camscéim choitianta a bhaineann leas as seo is ea an chamscéim tacaíochta, áit a ndéanfaidh caimiléirí aithris ar phearsanra tacaíochta do sparián, malartáin nó blocshlabhra a bhfuil tóir orthu. + +Tarlaíonn go leor den phlé faoi Ethereum ar Discord. Is gnách go bhfaighidh scammers tacaíochta a sprioc trí cheisteanna tacaíochta a chuardach ar bhealaí easaontais poiblí agus ansin teachtaireacht phríobháideach a sheoladh chuig an bhfiosraitheoir ag tairiscint tacaíochta. Trí mhuinín a chothú, déanann caimiléirí tacaíochta iarracht tú a mhealladh chun d'eochracha príobháideacha a nochtadh nó do chistí a sheoladh chuig a gcuid sparán. + +![Camscéim tacaíochta ar Discord](./discordScam.png) + +Mar riail ghinearálta, ní bheidh an fhoireann i dteagmháil leat trí bhealaí príobháideacha neamhoifigiúla. Roinnt rudaí simplí le cuimhneamh agus tú ag déileáil le tacaíocht: + +- Ná roinn do chuid eochracha príobháideacha, frásaí síl ná pasfhocail riamh +- Ná lig d’aon duine cianrochtain isteach ar do ríomhaire +- Ná déan cumarsáid riamh lasmuigh de bhealaí ainmnithe eagraíochta + + +
              + Tabhair faoi deara: cé go dtarlaíonn camscéimeanna ar stíl tacaíochta go coitianta ar Discord, is féidir leo a bheith coitianta freisin ar aon fheidhmchláir chomhrá ina dtarlaíonn plé crypto, lena n-áirítear ríomhphost. +
              +
              + +### Scam chomhartha 'Eth2' {#eth2-token-scam} + +Sa tréimhse roimh [an gCumasc](/roadmap/merge/), bhain caimiléirí leas as an mearbhall a bhain leis an téarma 'Eth2' chun iarracht a dhéanamh ar úsáideoirí a ETH a fhuascailt le haghaidh comhartha 'ETH2'. Níl aon 'ETH2' ann, agus níor tugadh isteach aon chomhartha dlisteanach eile leis an gCumasc. Is é an ETH a bhí agat roimh an gCumasc an ETH céanna atá ann anois. Níl **aon ghá aon bheart a dhéanamh a bhaineann le do ETH chun cuntas a thabhairt ar an aistriú ó chruthúnas oibre go cruthúnas-geallta**. + +Féadfaidh caimiléirí iad féin a chur in aithne duit mar phearsanra "tacaíochta", ag insint duit má thaisceann tú do ETH, gheobhaidh tú 'ETH2' ar ais. Níl aon [tacaíocht oifigiúil Ethereum ann](/community/support/), agus níl aon chomhartha nua ann. Ná roinn frása síolta do sparán le haon duine. + +_Nóta: Tá comharthaí díorthacha/tickers ann a d'fhéadfadh ionadaíocht a dhéanamh ar ETH geallta (ie. rETH ó Rocket Pool, stETH ó Lido, ETH2 ó Coinbase), ach ní gá iad seo a "aistriú chucu."_ + +### Camscéimeanna fioscaireachta {#phishing-scams} + +Tá camscéimeanna fioscaireachta ag éirí níos coitianta agus caimiléirí ag baint leasa astu chun iarracht a dhéanamh cistí do sparáin a ghoid. + +Iarrann roinnt ríomhphoist fioscaireachta ar úsáideoirí cliceáil ar naisc a athdhíreoidh iad chuig láithreáin ghréasáin bhréige, ag iarraidh orthu a bhfrása síl a chur isteach, a bpasfhocal a athshocrú nó ETH a sheoladh. Féadfaidh daoine eile iarraidh ort malware a shuiteáil i ngan fhios dóibh chun do ríomhaire a ionfhabhtú agus rochtain a thabhairt do scammers ar chomhaid do ríomhaire. + +Má fhaigheann tú ríomhphost ó sheoltóir anaithnid, cuimhnigh: + +- Ná hoscail nasc nó ceangaltán riamh ó sheoltaí ríomhphoist nach n-aithníonn tú +- Ná nocht do chuid faisnéise pearsanta nó pasfhocail d’aon duine riamh +- Scrios ríomhphoist ó sheoltóirí anaithnide + +[Tuilleadh faoi chamscéimeanna fioscaireachta a sheachaint](https://support.mycrypto.com/staying-safe/mycrypto-protips-how-not-to-get-scammed-during-ico) + +### Camscéimeanna bróicéara trádála crypto {#broker-scams} + +Maíonn bróicéirí trádála crypto camscéime gur bróicéirí speisialtóireachta criptea-airgeadra iad a thairgfidh do chuid airgid a thógáil agus infheistíocht a dhéanamh ar do shon. Tar éis don chaimiléir do chistí a fháil, féadfaidh siad tú a threorú, ag iarraidh ort níos mó cistí a sheoladh, ionas nach gcaillfidh tú tuilleadh gnóthachain infheistíochta, nó d'fhéadfadh siad imithe ar fad. + +Is minic a aimsíonn na calaoiseoirí seo spriocanna trí úsáid a bhaint as cuntais bhréige ar YouTube chun tús a chur le comhráite a bhfuil cuma nádúrtha orthu faoin ‘bhróicéir’. Is minic go mbíonn an chuma air go bhfuil an-tacaíocht vótaí ag tacú leis na postálacha seo chun dlisteanacht a mhéadú, ach is ó chuntais róbait a thagann na huasvótaí go léir. + +**Ná cuir muinín i strainséirí idirlín chun infheistíocht a dhéanamh ar do shon. Caillfidh tú do crypto.** + +![Sceamáil bróicéir trádála ar YouTube](./brokerScam.png) + +### Camscéimeanna linn mianadóireachta crypto {#mining-pool-scams} + +Ó Mheán Fómhair 2022, ní féidir mianadóireacht ar Ethereum a thuilleadh. Mar sin féin, tá camscéimeanna linne mianadóireachta fós ann. Is éard atá i gceist le camscéimeanna linne mianadóireachta ná daoine ag dul i dteagmháil leat gan iarraidh agus ag éileamh gur féidir leat tuairisceáin mhóra a dhéanamh trí dhul isteach i linn mhianadóireachta Ethereum. Déanfaidh an cimiléir éilimh agus fanfaidh sé i dteagmháil leat chomh fada agus a thógann sé. Go bunúsach, déanfaidh an caimiléir iarracht a chur ina luí ort, nuair a théann tú isteach i linn mhianadóireachta Ethereum, go n-úsáidfear do chuid chriptea-airgeadra chun ETH a chruthú agus go n-íocfar díbhinní ETH leat. Feicfidh tú ansin go bhfuil do chuid chriptea-airgeadra ag déanamh tuairisceáin bheaga. Is é atá i gceist leis seo ach tú a mhealladh chun níos mó infheistíochta a dhéanamh. Faoi dheireadh, seolfar do chistí go léir chuig seoladh anaithnid, agus imeoidh an caimiléir nó i gcásanna áirithe leanfaidh sé de bheith i dteagmháil mar a tharla i gcás le déanaí. + +Bunlíne: bí ar an airdeall faoi dhaoine a dhéanann teagmháil leat ar na meáin shóisialta ag iarraidh ort a bheith mar chuid de chomhthiomsú mianadóireachta. Nuair a chailleann tú do crypto, tá sé imithe. + +Roinnt rudaí le cuimhneamh: + +- Bí aireach ar aon duine a dhéanann teagmháil leat faoi bhealaí chun airgead a bhaint as do chuid crypto +- Déan do chuid taighde maidir le geallchur, linnte leachtachta, nó bealaí eile chun do crypto a infheistiú +- Is annamh, más riamh, a bhíonn scéimeanna den sórt sin dlisteanach. Más rud é go raibh siad, is dócha go mbeadh siad i mbéal an phobail agus beidh tú tar éis cloisteáil fúthu. + +[Cailleann fear $200k i camscéim linn snámha mianadóireachta](https://www.reddit.com/r/CoinBase/comments/r0qe0e/scam_or_possible_incredible_payout/) + +### Camscéimeanna Airdrop {#airdrop-scams} + +Is éard atá i gceist le camscéimeanna Airdrop ná tionscadal camscéime a sheolann sócmhainn (NFT, comhartha) isteach i do sparán agus a sheolann tú chuig suíomh Gréasáin sceamála chun an tsócmhainn Airdrop a éileamh. Tabharfar leid duit síniú isteach le do sparán Ethereum agus idirbheart a "cheadú" agus tú ag iarraidh éileamh a dhéanamh. Déanann an t-idirbheart seo dochar do do chuntas trí d’eochracha poiblí agus príobháideacha a sheoladh chuig an scamálaí. D’fhéadfadh foirm eile den chamscéim seo idirbheart a dhearbhú a sheolann cistí chuig cuntas an chaimiléara. + +[Tuilleadh faoi chamscéimeanna airdrop](https://www.youtube.com/watch?v=LLL_nQp1lGk) + + + +## Slándála gréasáin 101 {#web-security} + +### Bain úsáid as pasfhocail láidre {#use-strong-passwords} + +[Is toradh iad níos mó ná 80% de na haiceanna cuntais de phasfhocail laga nó ghoidte](https://cloudnine.com/ediscoverydaily/electronic-discovery/80-percent-hacking-related-breaches-related-password-issues-cybersecurity-trends/). Cabhróidh meascán fada de charachtair, uimhreacha agus siombailí le do chuntais a choinneáil slán. + +Botún coitianta is ea meascán de chúpla focal gaolmhar coitianta a úsáid. Tá pasfhocail mar seo neamhchinnte toisc go bhfuil siad tugtha do theicníc haiceála ar a dtugtar ionsaí foclóir. + +```md +Sampla de phasfhocal lag: CuteFluffyKittens! + +Sampla de phasfhocal láidir: ymv\*azu.EAC8eyp8umf +``` + +Botún coitianta eile is ea pasfhocail a úsáid ar féidir iad a thomhas nó a aimsiú go héasca trí [innealtóireacht shóisialta](https://wikipedia.org/wiki/Social_engineering_(security)). Méadófar an baol go déanfar haiceáil ort má úsáideann tú sloinne do mháthar roimh phósadh di, ainmneacha do leanaí nó do pheataí, nó dátaí breithe i do phasfhocal. + +#### Dea-chleachtais pasfhocail: {#good-password-practices} + +- Déan pasfhocail chomh fada agus a cheadaíonn do ghineadóir pasfhocal nó an fhoirm atá á líonadh agat +- Úsáid meascán de chásanna uachtair, litreacha beaga, uimhreacha agus siombailí +- Ná húsáid sonraí pearsanta, mar ainmneacha teaghlaigh, i do phasfhocal +- Seachain focail choitianta + +[Tuilleadh faoi phasfhocail láidre a chruthú](https://terranovasecurity.com/how-to-create-a-strong-password-in-7-easy-steps/) + +### Bain úsáid as pasfhocail uathúla do gach rud {#use-unique-passwords} + +Ní focal faire láidir a thuilleadh é pasfhocal láidir a nochtaíodh i sárú sonraí. Ligeann an suíomh Gréasáin [Have I Been Pwned](https://haveibeenpwned.com) duit seiceáil an raibh baint ag do chuntais le haon sárú sonraí poiblí. Má tá, **athraigh na pasfhocail sin láithreach**. Má úsáideann tú pasfhocail uathúla do gach cuntas laghdaítear an baol go bhfaighidh caimiléirí rochtain ar do chuntais go léir má tá ceann de do phasfhocail i mbaol. + +### Bain úsáid as bainisteoir phasfhocal {#use-password-manager} + + +
              + Trí úsáid a bhaint as bainisteoir phasfhocail déantar cúram de phasfhocail láidre, uathúla a chruthú agus de chuimhneamh orthu! Molaimid go láidir ceann a úsáid, agus tá an chuid is mó acu saor in aisce! +
              +
              + +Ní rud iontach é pasfhocail láidre uathúla a mheabhrú do gach cuntas atá agat. Tairgeann bainisteoir pasfhocail stór slán, criptithe do gach pasfhocal ar féidir leat rochtain a fháil air trí mháistirfhocal láidir amháin. Molann siad freisin pasfhocail láidre agus tú ag clárú le haghaidh seirbhís nua, mar sin ní gá duit do chuid féin a chruthú. Inseoidh go leor bainisteoirí pasfhocal duit freisin má bhí baint agat le sárú sonraí, rud a ligeann duit na pasfhocail a athrú roimh aon ionsaithe mailíseach. + +![Sampla de bhainisteoir pasfhocail a úsáid](./passwordManager.png) + +#### Bain triail as bainisteoir phasfhocal: {#try-password-manager} + +- [Bitwarden](https://bitwarden.com/) +- [KeePass](https://keepass.info/) +- [1Password](https://1password.com/) +- Nó féach ar [bhainisteoirí pasfhocail molta](https://www.privacytools.io/secure-password-manager) + +### Úsáid Fíordheimhniú Dhá-Fachtóir {#two-factor-authentication} + +Ar uairibh iarrtar ort d’aitheantas a fhíordheimhniú trí chruthúnas uathúil. Tugtar **fachtóirí** orthu seo. Is iad na trí phríomhfhachtóir: + +- Rud éigin atá ar eolas agat (cosúil le pasfhocal nó ceist slándála) +- Rud atá ionat (cosúil le méarlorg nó scanóir inteachán/aghaidhe) +- Rud ar leatsa é (eochair shlándála nó aip fíordheimhnithe ar do ghuthán) + +Má úsáidtear **Fíordheimhniú Dhá Fhachtóir (2FA)** soláthraítear *fachtóir slándála* breise do do chuntais ar líne. Cinntíonn 2FA nach leor do phasfhocal a bheith agat chun rochtain a fháil ar chuntas. Go coitianta, is é an dara fachtóir cód randamach 6-dhigit, ar a dtugtar **focal faire aonuaire (TOTP) ama-bhunaithe**, ar féidir leat rochtain a fháil air trí aip fíordheimhnitheora mar Google Authenticator nó Authy. Feidhmíonn siad seo mar fhachtóir "rud éigin leat" toisc go bhfuil an síol a ghineann an cód uainithe stóráilte ar do ghléas. + + +
              + Nóta: Trí 2FA atá SMS-bhunaithe a úsáid beidh tú leochailleach roimh ionsaithe Jacking SIM agus níl sé slán. Ar mhaithe leis an tslándáil is fearr, úsáid seirbhís amhail Google AuthenticatorAuthy. +
              +
              + +#### Eochracha slándála {#security-keys} + +Is cineál 2FA níos forbartha agus níos sláine í eochair shlándála. Is gléasanna fíordheimhnithe crua-earraí fisiceacha iad eochracha slándála a oibríonn mar aipeanna fíordheimhnitheora. Is é úsáid eochair shlándála é an bealach is sláine chuig 2FA. Úsáideann go leor de na heochracha seo an caighdeán FIDO 2ú Fachtóir Uilíoch (U2F). [Foghlaim tuilleadh faoi FIDO U2F](https://www.yubico.com/authentication-standards/fido-u2f/). + +Féach níos mó ar 2FA: + + + +### Díshuiteáil síntí brabhsálaí {#uninstall-browser-extensions} + +Is féidir le síntí brabhsálaí, cosúil le síntí Chrome nó Breiseáin le haghaidh Firefox, feidhmiúlacht an bhrabhsálaí a fheabhsú ach tagann rioscaí leo freisin. De réir réamhshocraithe, iarrann formhór na síntí brabhsálaí rochtain ar ‘sonraí suímh a léamh agus a athrú’, rud a ligeann dóibh beagnach aon rud a dhéanamh le do shonraí. Déantar síntí Chrome a nuashonrú go huathoibríoch i gcónaí, mar sin is féidir síneadh a bhí sábháilte roimhe seo a nuashonrú níos déanaí chun cód mailíseach a chur san áireamh. Níl an chuid is mó de na síntí brabhsálaí ag iarraidh do shonraí a ghoid, ach ba chóir duit a bheith ar an eolas gur féidir leo. + +#### Bígí slán: {#browser-extension-safety} + +- Ná suiteáil síntí brabhsálaí ach ó fhoinsí iontaofa +- Ag baint síntí brabhsálaí nach bhfuil in úsáid +- Suiteáil síntí Chrome go háitiúil chun uath-nuashonrú (forásach) a stopadh + +[Tuilleadh faoi na rioscaí a bhaineann le síntí brabhsálaí](https://www.kaspersky.co.uk/blog/browser-extensions-security/12750/) + + + +## Tuilleadh léitheoireachta {#further-reading} + +### Slándáil ghréasáin {#reading-web-security} + +- [Tá suas le 3 mhilliún gléas ionfhabhtaithe ag breiseáin Chrome agus Edge a bhfuil bogearraí mailíseacha greamaithe leo](https://arstechnica.com/information-technology/2020/12/up-to-3-million-devices-infected-by-malware-laced-chrome-and-edge-add-ons/) - _Dan Goodin_ +- [Conas Pasfhocal Láidir a Chruthú - Nach nDéanfaidh Tú Dearmaid Air](https://www.avg.com/en/signal/how-to-create-a-strong-password-that-you-wont-forget) - _AVG_ +- [Cad is eochair shlándála ann?](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ + +### Slándáil crypto {#reading-crypto-security} + +- [Tú Féin agus do Chistí a Chosaint](https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds) - _ MyCrypto_ +- [Saincheisteanna slándála i mbogearraí cumarsáide coitianta crypto](https://docs.salusec.io/untitled/web3-penetration-test/risks-in-social-media) - _Salus_ +- [Treoir Slándála Do Pleotaí agus do Dhaoine Cliste](https://medium.com/mycrypto/mycryptos-security-guide-for-dummies-and-smart-people-too-ab178299c82e) - _MyCrypto_ +- [Slándáil Crypto: Pasfhocail agus Fíordheimhniú](https://www.youtube.com/watch?v=m8jlnZuV1i4) - _Andreas M. Antonopoulos_ + +### Oideachas sceamála {#reading-scam-education} + +- [Treoir: Conas comharthaí sceamála a aithint](/guides/how-to-id-scam-tokens/) +- [Fan Sábháilte: Camscéimeanna Coitianta](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ +- [Camscéimeanna a Sheachaint](https://bitcoin.org/en/scams) - _Bitcoin.org_ +- [Snáithe Twitter ar ríomhphoist agus teachtaireachtaí coitianta fioscaireachta criptithe](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ + + diff --git a/public/content/translations/ga/smart-contracts/index.md b/public/content/translations/ga/smart-contracts/index.md new file mode 100644 index 00000000000..012ed83248f --- /dev/null +++ b/public/content/translations/ga/smart-contracts/index.md @@ -0,0 +1,86 @@ +--- +title: Conarthaí cliste +metaTitle: "Conarthaí cliste: Cad atá iontú agus céard iad na buntáistí" +description: Réamhrá neamhtheicniúil ar chonarthaí cliste +lang: ga +--- + +# Inteoir maidir le conarthaí cliste {#introduction-to-smart-contracts} + +
              + +
              + +Is iad conarthaí cliste na bloic tógála bhunúsacha de chiseal fheidhmchláir Ethereum. Is ríomhchláir iad atá stóráilte ar an [mblocshlabhra](/glossary/#blockchain) a leanann an loighic "más fíor sin, déan seo" agus ráthaítear go bhforghníomhóidh siad de réir na rialacha atá sainithe ina gcód, rud nach féidir a athrú i ndiaidh a chruthaithe. + +Chum Nick Szabo an téarma "conradh cliste". I 1994, scríobh sé [réamhrá ar an gcoincheap](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), agus i 1996 scríobh sé [iniúchadh ar cad is féidir le conarthaí cliste a dhéanamh](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Shamhlaigh Szabo margadh digiteach ina gcuireann próisis uathoibríocha, [slán go cripteagrafach](/glossary/#cryptography) ar chumas idirbhearta agus feidhmeanna gnó tarlú gan idirghabhálaithe iontaofa. Chuir conarthaí cliste ar Ethereum an fhís seo i bhfeidhm. + +Míníonn Watch Finematics conarthaí cliste: + + + +## Iontaobhas i gconarthaí traidisiúnta {#trust-and-contracts} + +Ceann de na fadhbanna is mó a bhaineann le conradh traidisiúnta ná an gá atá le daoine aonair a gcuireann daoine eile muinín iontu leanúint ar aghaidh le torthaí an chonartha. + +Seo sampla: + +Tá rás rothar ar siúl ag Alice agus Bob. Deirimis go ngeallann Alice $10 do Bob go mbeidh an bua aici sa rás. Tá Bob muiníneach gurb é féin a bheidh mar bhuaiteoir agus aontaíonn sé leis an ngeall. Sa deireadh, críochnaíonn Alice an rás go maith chun tosaigh ar Bob agus níl aon amhras ach gurb ise an buaiteoir. Ach diúltaíonn Bob a íoc as an ngeall, agus deir sé go ndearna Alice caimiléireacht air. + +Léiríonn an sampla amaideach seo an fhadhb le haon chomhaontú neamhchliste. Fiú má shásaítear coinníollacha an chomhaontaithe (i.e. is tusa buaiteoir an rása), ní mór duit muinín a bheith agat as duine eile fós chun an comhaontú a chomhlíonadh (i.e. íocaíocht a dhéanamh ar an ngeall). + +## Meaisín díola digiteach {#vending-machine} + +Meafar simplí do chonradh cliste is ea meaisín díola, a oibríonn beagán cosúil le conradh cliste - tá aschuir réamhchinnte mar thoradh ar ionchuir shonracha. + +- Roghnaíonn tú táirge +- Taispeánann an meaisín díola an praghas +- Íocann tú an praghas +- Fíoraíonn an meaisín díola gur íoc tú an méid ceart +- Tugann an meaisín díola d'earra duit + +Ní dhéanfaidh an meaisín díola an táirge atá uait a dháileadh ach amháin tar éis na ceanglais go léir a chomhlíonadh. Mura roghnaíonn tú táirge nó mura gcuireann tú isteach go leor airgid, ní thabharfaidh an meaisín díola amach do tháirge. + +## Forghníomhú uathoibríoch {#automation} + +Is é an príomhbhuntáiste a bhaineann le conradh cliste ná go ndéanann sé cód gan athbhrí a fhorghníomhú go cinntitheach nuair a chomhlíontar coinníollacha áirithe. Ní gá fanacht leis an duine an toradh a léirmhíniú nó a idirbheartú. Cuireann sé sin deireadh leis an ngá atá le hidirghabhálaithe iontaofa. + +Mar shampla, d'fhéadfá conradh cliste a scríobh a shealbhaíonn cistí in Escrow do leanbh, rud a ligeann dóibh cistí a aistarraingt tar éis dáta ar leith. Má dhéanann siad iarracht tarraingt siar roimh an dáta sin, ní fhorghníomhófar an conradh cliste. Nó d’fhéadfá conradh a scríobh a thugann leagan digiteach de theideal an chairr duit go huathoibríoch nuair a íocann tú an déileálaí. + +## Torthaí intuartha {#predictability} + +Tá conarthaí traidisiúnta débhríoch toisc go mbraitheann siad ar dhaoine chun iad a léirmhíniú agus a chur i bhfeidhm. Mar shampla, d’fhéadfadh beirt bhreithiúna léirmhíniú difriúil a dhéanamh ar chonradh, rud a d’fhéadfadh cinntí neamh‑chomhsheasmhacha agus torthaí éagothroma a bheith mar thoradh air. Cuireann conarthaí cliste deireadh leis an bhféidearthacht sin. Ina áit sin, déantar conarthaí cliste a fhorghníomhú go beacht bunaithe ar na coinníollacha atá scríofa laistigh de chód an chonartha. Ciallaíonn an cruinneas seo, i bhfianaise na gcúinsí céanna, go mbeidh an toradh céanna ag an gconradh cliste. + +## Taifead poiblí {#public-record} + +Tá conarthaí cliste úsáideach le haghaidh iniúchtaí agus rianaithe. Ós rud é go bhfuil conarthaí cliste Ethereum ar bhlocshlabhra poiblí, is féidir le duine ar bith aistrithe sócmhainní agus faisnéis ghaolmhar eile a rianú láithreach. Mar shampla, is féidir leat seiceáil le feiceáil gur sheol duine éigin airgead chuig do sheoladh. + +## Cosaint phríobháideachta {#privacy-protection} + +Le conarthaí cliste tugtar cosaint do do phríobháideachas freisin. Ós rud é gur líonra a bhfuil ainm cleite aige é Ethereum (tá d’idirbhearta ceangailte go poiblí le seoladh cripteagrafach uathúil, ní le do chéannacht), is féidir leat do phríobháideachas a chosaint ó bhreathnóirí. + +## Téarmaí infheicthe {#visible-terms} + +Ar deireadh, cosúil le conarthaí traidisiúnta, is féidir leat a sheiceáil cad atá i gconradh cliste sula síníonn tú é (nó idirghníomhú leis ar shlí eile). Cinntíonn trédhearcacht chonartha chliste gur féidir le duine ar bith grinnscrúdú a dhéanamh air. + +## I gconartha cliste úsáidtear cásanna {#use-cases} + +Go bunúsach is féidir le conarthaí cliste aon rud is féidir le cláir ríomhaire a dhéanamh. + +Is féidir leo ríomhanna a dhéanamh, airgeadra a chruthú, sonraí a stóráil, [NFTanna](/glossary/#nft) a bhualadh, cumarsáid a sheoladh agus fiú grafaic a ghiniúint. Seo a leanas roinnt samplaí fíor-choitianta den saol: + +- [Stablecoins](/stablecoins/) +- [Sócmhainní digiteacha uathúla a chruthú agus a dháileadh](/nft/) +- [Malartán airgeadra oscailte uathoibríoch](/get-eth/#dex) +- [Cluichíocht dhíláraithe](/dapps/?category=gaming#explore) +- [Polasaí árachais a íocann amach go huathoibríoch](https://etherisc.com/) +- [Caighdeán a ligeann do dhaoine airgeadraí saincheaptha, idir-inoibritheacha a chruthú](/developers/docs/standards/tokens/) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Conas a Athróidh Conarthaí Cliste an Domhan](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Conarthaí cliste le haghaidh forbróirí](/developers/docs/smart-contracts/) +- [Foghlaim conas conarthaí cliste a scríobh](/developers/learning-tools/) +- [Ardscileanna Ethereum - Cad is Conradh Cliste ann?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/ga/social-networks/index.md b/public/content/translations/ga/social-networks/index.md new file mode 100644 index 00000000000..39d27f1ae65 --- /dev/null +++ b/public/content/translations/ga/social-networks/index.md @@ -0,0 +1,106 @@ +--- +title: Líonraí sóisialta díláraithe +description: Forbhreathnú ar líonraí sóisialta díláraithe ar Ethereum +lang: ga +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /images/ethereum-learn.png +summaryPoint1: Ardáin atá bunaithe ar bhlocshlabhra le haghaidh idirghníomhú sóisialta agus cruthú agus dáileadh ábhar. +summaryPoint2: Le líonraí meán sóisialta díláraithe tugtar cosaint do phríobháideachas an úsáideora agus cuirtear le slándáil sonraí. +summaryPoint3: Cruthaíonn comharthaí agus NFTanna bealaí nua chun airgead a dhéanamh ar ábhar. +--- + +Tá ról ollmhór ag líonraí sóisialta inár gcumarsáid agus inár n-idirghníomhaíochtaí laethúla. Mar sin féin, tríd an rialú láraithe ar na hardáin sin cruthaíodh go leor fadhbanna: is iad sáruithe sonraí, bristeacha freastalaí, dí-ardánú, cinsireacht, agus sáruithe príobháideachta cuid de na comhbhabhtálacha a dhéanann na meáin shóisialta go minic. Chun aghaidh a thabhairt ar na saincheisteanna seo, tá forbróirí ag tógáil líonraí sóisialta ar Ethereum. Le líonraí sóisialta díláraithe is féidir go leor de na fadhbanna a bhaineann le hardáin líonraithe sóisialta traidisiúnta a réiteach agus eispéireas foriomlán na n-úsáideoirí a fheabhsú. + +## Cad is líonraí sóisialta díláraithe ann? {#what-are-decentralized-social-networks} + +Is ardáin [blocshlabhra-bhunaithe](/glossary/#blockchain) iad líonraí sóisialta díláraithe a ligeann d’úsáideoirí faisnéis a mhalartú chomh maith le hábhar a fhoilsiú agus a dháileadh ar lucht féachana. Toisc go ritheann na feidhmchláir seo ar an mblocshlabhra, tá siad in ann bheith díláraithe agus frithsheasmhach in éadan na cinsireachta agus an rialaithe mhíchuí. + +Tá go leor líonraí sóisialta díláraithe ann mar roghanna eile seachas seirbhísí seanbhunaithe meán sóisialta, mar Facebook, LinkedIn, Twitter, agus Medium. Ach tá roinnt gnéithe ag líonraí sóisialta atá faoi thiomáint an bhlocshlabhra a chuireann chun tosaigh iad ar ardáin shóisialta thraidisiúnta. + + + +### Conas a oibríonn líonraí sóisialta díláraithe? {#decentralized-social-networks-overview} + +Is éard atá i líonraí sóisialta díláraithe ná aicme [feidhmchlár díláraithe (daipeanna nó dapps)](/dapps/) — feidhmchláir arna gcumhachtú ag [conarthaí cliste](/glossary/#smart-contract) in úsáid ar an mblocshlabhra. Feidhmíonn an cód conartha mar a bheadh inneall ann do na haipeanna seo agus sainmhíníonn sé a loighic ghnó. + +Bíonn ardáin meán sóisialta traidisiúnta ag brath ar bhunachair sonraí chun faisnéis úsáideora, cód cláir agus cineálacha eile sonraí a stóráil. Ach leis sin cruthaítear pointí aonair teipe agus tugtar isteach riosca suntasach. Mar shampla, d'imigh freastalaithe Facebook go mícháiliúil [as líne ar feadh uaireanta an chloig](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) i mí Dheireadh Fómhair 2021, agus le linn an ama sin gearradh ceangal na n-úsáideoirí ón ardán. + +Tá líonraí sóisialta díláraithe ann ar [líonra piara-go-piara](/glossary/#peer-to-peer-network) a chuimsíonn na mílte nóid ar fud na cruinne. Fiú má theipeann ar roinnt nóid, rithfidh an líonra gan bhriseadh, rud a fhágann go mbeidh feidhmchláir frithsheasmhach in aghaidh teipeanna agus bristeacha. + +Trí úsáid a bhaint as córais stórála díláraithe amhail [an Córas Comhad Idirphláinéid (IPFS)](https://ipfs.io/), is féidir le líonraí sóisialta atá bunaithe ar Ethereum faisnéis úsáideoirí a chosaint ó dhúshaothrú agus ó úsáid mhailíseach. Ní dhíolfaidh aon duine do chuid faisnéise pearsanta le fógróirí, agus ní bheidh haicéirí in ann do shonraí rúnda a ghoid. + +Tá comharthaí dúchasacha ag go leor ardán sóisialta atá bunaithe ar bhlocshlabhra a thugann cumhacht d'airgeadú in éagmais ioncam fógraíochta. Is féidir le húsáideoirí na comharthaí seo a cheannach chun rochtain a fháil ar ghnéithe áirithe, ceannacháin in-aip a chomhlánú, nó na cruthaitheoirí ábhair is fearr leo a mholadh. + +## Buntáistí a bhaineann le líonraí sóisialta díláraithe {#benefits} + +1. Tá líonraí sóisialta díláraithe in aghaidh na cinsireachta agus oscailte do chách. Ciallaíonn sé sin nach féidir **úsáideoirí a chosc**, a dhíchlárú nó a shrianadh go treallach. + +2. Tá líonraí sóisialta díláraithe **tógtha ar idéil foinse oscailte** agus cuireann siad cód foinse le haghaidh feidhmchlár ar fáil le go scrúdóidh an pobal iad. Trí dheireadh a chur le cur i bhfeidhm na n-algartam teimhneach atá coitianta sna meáin shóisialta thraidisiúnta, is féidir le líonraí sóisialta blocshlabhra-bhunaithe leasanna úsáideoirí agus cruthaitheoirí ardáin a chomhshamhlú. + +3. Cuireann líonraí sóisialta díláraithe deireadh leis an "meáncheannaí". Tá **úinéireacht dhíreach ag cruthaitheoirí ábhair ar a n-ábhar**, agus téann siad i mbun idirghníomhaíochta go díreach lena lucht leanúna, lucht tacaíochta, ceannaitheoirí, agus páirtithe eile, gan aon ní eile ach conradh cliste eatarthu. + +4. Mar dhaipeanna atá ag rith ar líonra Ethereum, a chothaítear trí líonra domhanda nóid, piara-le-piara, ní bhíonn líonraí sóisialta díláraithe ** chomh so-ghabhálach i leith aga neamhfhónaimh an fhreastalaí** agus bristeacha. + +5. Tairgeann ardáin shóisialta díláraithe creat um **airgeadú feabhsaithe** do chruthaitheoirí ábhair trí [chomharthaí neamh-idirmhalartacha (NFTanna)](/glossary/#nft), íocaíochtaí criptithe in-aip, agus níos mó. + +6. Tugann líonraí sóisialta díláraithe **ardleibhéal príobháideachta agus anaithnideachta** d'úsáideoirí. Mar shampla, is féidir le duine síniú isteach ar líonra sóisialta bunaithe ar Ethereum trí úsáid a bhaint as próifíl [ENS](/glossary/#ens) nó [sparán](/glossary/#wallet)—gan faisnéis inaitheanta phearsanta (PII) a roinnt, amhail ainmneacha, seoltaí ríomhphoist, etc. + +7. Braitheann líonraí sóisialta díláraithe ar stóráil dhíláraithe, ní ar bhunachair shonraí láraithe, atá i bhfad níos fearr chun sonraí úsáideoirí a chosaint. + +## Líonraí sóisialta díláraithe ar Ethereum {#ethereum-social-networks} + +Tá líonra Ethereum anois mar an uirlis is fearr le forbróirí a chruthaíonn meáin shóisialta díláraithe mar gheall ar an éileamh atá ar a chuid comharthaí agus a mbonn úsáideoirí ollmhór. Seo roinnt samplaí de líonraí sóisialta bunaithe ar Ethereum: + +### Mirror {#mirror} + +Is ardán scríbhneoireachta 3-chumasaithe é [Scáthán](https://mirror.xyz/) a bhfuil sé mar aidhm aige a bheith díláraithe agus faoi úinéireacht úsáideoirí. Is féidir le húsáideoirí léamh agus scríobh saor in aisce ar Scáthán ach a gcuid sparán a nascadh. Is féidir le húsáideoirí scríbhneoireacht a bhailiú freisin agus liostáil leis na scríbhneoirí is fearr leo. + +Stóráiltear postálacha a fhoilsítear ar Mirror go buan ar Arweave, ardán stórála díláraithe, agus is féidir iad a bhualadh mar [chomharthaí neamh-idirmhalartacha (NFTanna)](/nft/) ar a dtugtar Writing NFTs. Tá Writing NFTs go hiomlán saor in aisce le haghaidh scríbhneoirí chun cruthaithe, agus déantar bailiúchán ar Ethereum [L2](/glossary/#layer-2) — rud a fhágann go bhfuil idirbhearta saor, tapa agus neamhdhíobhálach don chomhshaol. + +### MINDS {#minds} + +Tá [MINDS](https://www.minds.com/) ar cheann de na líonraí sóisialta díláraithe is mó a úsáidtear. Oibríonn sé cosúil le Facebook agus tá ar na milliúin úsáideoirí aige cheana féin. + +Úsáideann úsáideoirí an comhartha dúchais [ERC-20](/glossary/#erc-20) $MIND chun íoc as earraí. Is féidir le húsáideoirí comharthaí $MIND a thuilleamh freisin trí ábhar móréilimh a fhoilsiú, cur leis an éiceachóras agus daoine eile a tharchur chuig an ardán. + +## Úsáid líonraí sóisialta díláraithe {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Tá Status ina aip shlán teachtaireachtaí a úsáideann prótacal foinse oscailte, piara le piara, agus criptiú ceann go ceann chun do chuid teachtaireachtaí a chosaint ó thríú páirtithe._ +- **[Scáthán.xyz](https://mirror.xyz/)** - _Is ardán foilsitheoireachta díláraithe é Mirror, faoi úinéireacht úsáideoirí, tógtha ar Ethereum chun gur féidir le húsáideoirí smaointe a shlua-chistiú, airgead a dhéanamh ar ábhar agus pobail ardluacha a thógáil._ +- **[Prótacal Lionsa](https://lens.xyz/)** - _Is é atá sa Phrótacal Lionsa graf sóisialta in-chomhdhéanta agus díláraithe ag cabhrú le cruthaitheoirí úinéireacht a ghlacadh ar a n‑ábhar cibé áit a dtéann siad i ngairdín digiteach an idirlín díláraithe._ +- **[Farcaster](https://farcaster.xyz/)** - _Líonra sóisialta sách díláraithe is ea Farcaster. Is prótacal oscailte é a thacaíonn le go leor cliant, díreach cosúil le ríomhphost._ + +## Web2 líonraí sóisialta ar Ethereum {#web2-social-networks-and-ethereum} + +Ní hiad [Web3](/glossary/#web3) ardáin shóisialta dhúchasacha iad na cinn amháin atá ag iarraidh teicneolaíocht bhlocshlabhra a ionchorprú sna meáin shóisialta. Tá go leor ardán láraithe ag pleanáil chun Ethereum a chomhtháthú ina mbonneagar: + +### Reddit {#reddit} + +Tá [Pointí Pobail molta ag Reddit](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), is iad sin comharthaí ERC-20 ar féidir le húsáideoirí a thuilleamh trí ábhar ardchaighdeáin a phostáil agus cur le pobail ar líne (subreddits). Is féidir leat na comharthaí seo a fhuascailt laistigh de subreddit chun pribhléidí agus buntáistí eisiacha a fháil. Don tionscadal seo, tá Reddit ag obair le hArbitrum, líonra [chiseal 2](/glossary/#layer-2) atá deartha chun idirbhearta Ethereum a scálú. + +Tá an clár beo cheana féin, agus subreddit dar teideal r/CryptoCurrency [ag rith a leagain de Community Points ar a dtugtar "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). De réir na tuairisce oifigiúla, cúitíonn Moons "lucht scríofa postálacha, tráchtairí agus modhnóirí as a gcuid rannchuidithe don subreddit." Toisc go bhfuil na comharthaí seo ar an mblocshlabhra (faigheann úsáideoirí iad i sparáin), tá siad neamhspleách ar Reddit agus ní féidir iad a bhaint. + +Chomh maith le Pointí Pobail a úsáid chun gnéithe speisialta a dhíghlasáil, is féidir le húsáideoirí iad a thrádáil freisin le haghaidh fiat ar mhalartáin. Chomh maith leis sin, mar thoradh ar an méid Pointí Comhphobail atá ar úinéireacht ag úsáideoir cinntear a dtionchar ar an bpróiseas cinnteoireachta laistigh den phobal. + +## Tuilleadh léitheoireachta {#further-reading} + +### Ailt {#articles} + +- [ Na meáin shóisialta a dhílárú: treoir do chruach sóisialta Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Is iad Líonraí Sóisialta an Chéad Deis Díláraithe Mór Eile](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Tá geallúint ag Web3 maidir le líonraí díláraithe sóisialta faoi thiomáint phobail](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Forbhreathnú ar Thírdhreach Blocshlabhra sna Meáin Shóisialta](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Conas is Féidir le Blocshlabhra Príobháideacht a Réiteach sna Meáin Shóisialta](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _Prableen Bajpai_ +- [Dílárú Dóthanach do Líonraí Sóisialta](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Físeáin {#videos} + +- [Meáin Shóisialta Díláraithe arna Míniú](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Tá DeSo Blockchain ag iarraidh na Meáin Shóisialta a Dhílárú](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Teicneolaíocht Bloomberg_ +- [Todhchaí na Meán Sóisialta Díláraithe w/ Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — *ETHGlobal* + +### Pobail {#communities} + +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/public/content/translations/ga/staking/dvt/index.md b/public/content/translations/ga/staking/dvt/index.md new file mode 100644 index 00000000000..7e6d2abb4f5 --- /dev/null +++ b/public/content/translations/ga/staking/dvt/index.md @@ -0,0 +1,91 @@ +--- +title: Teicneolaíocht bhailíochtóra dáilte +description: Cumasaíonn teicneolaíocht bhailíochtóra dáilte ilpháirtithe le hoibriú dáilte a dhéanamh ar bhailíochtóir Ethereum. +lang: ga +--- + +# Teicneolaíocht bhailíochtóra dáilte {#distributed-validator-technology} + +Is cur chuige é teicneolaíocht bhailíochtóra dáilte (DVT) i leith slándáil bhailíochtóra a leathnaíonn na príomhchúraimí bainistíochta agus sínithe amach thar pháirtithe éagsúla, chun pointí aonair teipe a laghdú, agus chun athléimneacht an bhailíochtóra a mhéadú. + +Déanann sé é seo trí **an eochair phríobháideach a roinnt** a úsáidtear chun bailíochtóir **a dhaingniú thar go leor ríomhairí** eagraithe i "mbraisle". Is é an buntáiste a bhaineann leis seo ná go ndéanann sé an-deacair d’ionsaitheoirí rochtain a fháil ar an eochair, toisc nach bhfuil sé stóráilte go hiomlán ar aon mheaisín amháin. Ligeann sé freisin do roinnt nóid dul as líne, mar is féidir an síniú riachtanach a dhéanamh le fo-thacar de na meaisíní i ngach braisle. Laghdaíonn sé seo pointí aonair teipe ón líonra agus déanann sé an tacar bailíochtóra iomlán níos láidre. + +![Léaráid a thaispeánann conas a roinntear eochair bhailíochtaithe aonair ina heochairscaireanna le dáileadh ar nóid iolracha le comhpháirteanna éagsúla.](./dvt-cluster.png) + +## Cén fáth a bhfuil DVT ag teastáil uainn? {#why-do-we-need-dvt} + +### Slándáil {#security} + +Gineann bailíochtóirí dhá phéire eochair phoiblí-phríobháideacha: eochracha bailíochtóra chun páirt a ghlacadh i gcomhthoil agus eochracha aistarraingthe chun rochtain a fháil ar chistí. Cé gur féidir le bailíochtóirí eochracha aistarraingthe a fháil sa stór fuar, ní mór d’eochracha príobháideacha bailíochtóra a bheith ar líne 24/7. Má sháraítear eochair phríobháideach bhailíochtóra is féidir le hionsaitheoir an bailíochtóir a rialú, rud a d'fhéadfadh a bheith ina chúis le gearradh nó le cailliúint ETH an ghealltóra. Is féidir le DVT cabhrú leis an riosca seo a mhaolú. Mar seo: + +Trí úsáid a bhaint as DVT, is féidir le geallsealbhóirí páirt a ghlacadh i ngealltóireacht agus eochair phríobháideach an bhaiíochtóra a choinneáil sa fuarstóráil. Baintear é seo amach tríd an bhun-eochair bhailíochtóra iomlán a chriptiú agus ansin é a roinnt ina phríomhscaireanna. Bíonn aa príomhscaireanna beo ar lína agus déantar iad a dháileadh ar nóid iolracha a chumasaíonn oibriú dáilte an bhailíochtóra. Tá sé seo indéanta toisc go n-úsáideann bailíochtóirí Ethereum sínithe BLS atá mar bhreiseán, rud a chiallaíonn gur féidir an eochair iomlán a athchruthú trína gcomhpháirteanna a achoimriú. Ligeann sé seo don ghealltóir an eochair bhailíochtóra bhunaidh 'máistir' iomlán a choinneáil slán as líne. + +### Gan aon phointe teipe aonair {#no-single-point-of-failure} + +Nuair a bhíonn bailíochtóir roinnte idir oibreoirí iolracha agus il-innill, féadann sé teipeanna crua-earraí agus bogearraí aonair a sheasamh gan dul as líne. Is féidir an riosca teipeanna a laghdú freisin trí úsáid a bhaint as cumraíochtaí éagsúla crua-earraí agus bogearraí trasna na nóid i mbraisle. Níl an athléimneacht seo ar fáil do chumraíochtaí bailíochtóra aon-nóid - tagann sé ón gciseal DVT. + +Má théann ceann de na comhpháirteanna meaisín i mbraisle síos (mar shampla, má tá ceithre oibreoir i mbraisle bailíochtóra agus go n-úsáideann duine cliant ar leith a bhfuil fabht ann), cinntíonn na cinn eile go leanann an bailíochtóir ag rith. + +### Dílárú {#decentralization} + +Is é an cás idéalach do Ethereum ná an oiread bailíochtóirí agus is féidir a oibriú go neamhspleách. Mar sin féin, tá an-tóir ar roinnt soláthraithe geallta agus is iad is cúis le cuid mhór den ETH iomlán atá i ngeall ar an líonra. Is féidir le DVT ligean do na hoibreoirí seo a bheith ann agus dílárú na ngeall a chaomhnú. Is é an fáth atá leis seo ná go ndáiltear na heochracha do gach bailíochtóir ar go leor meaisíní agus go dtógfadh sé i bhfad níos mó claonpháirteachais do bhailíochtóir iompú go mailíseach. + +Gan DVT, tá sé níos fusa do sholáthróirí gealltanais gan ach ceann amháin nó dhá chumraíocht cliant a thacú dá mbailíochtóirí uile, rud a mhéadaíonn tionchar fabht cliaint. Is féidir DVT a úsáid chun an riosca a scaipeadh ar fud cumraíochtaí iolracha cliant agus crua-earraí éagsúla, rud a chruthaíonn athléimneacht trí éagsúlacht. + +**Cuireann DVT na buntáistí seo a leanas ar fáil do Ethereum:** + +1. **Dílárú** ar chomhdthoil cruthúnais Ethereum +2. Cinntíonn sé **beocht** an líonra +3. Cruthaíonn bailíochtóir **lamháltas lochtanna** +4. ** Muinín íoslaghdaithe** oibríocht bailíochtaithe +5. ** Riosca gearrtha** agus aga neamhfhónaimh íoslaghdaithe +6. **Feabhsaítear éagsúlacht** (cliant, ionad sonraí, suíomh, rialachán, srl.) +7. **Slándáil fheabhsaithe** bainistíochta eochrach bailíochtóra + +## Conas a oibríonn DVT? {#how-does-dvt-work} + +Tá na comhpháirteanna seo a leanas i réiteach DVT: + +- **[Roinnt rúnda Shamir](https://medium.com/@keylesstech/a-beginners-guide-to-shamir-s-secret-sharing-e864efbf3648)** - Úsáideann bailíochóirí [eochracha BLS](https://en.wikipedia.org/wiki/BLS_digital_signature). Is féidir "eochairscaireanna" aonair BLS ("príomhscaireanna") a chomhcheangal in eochair chomhiomlán amháin (síniú). In DVT, is ionann eochair phríobháideach do bhailíochtóir agus síniú BLS comhcheangailte gach oibreora sa bhraisle. +- **[Scéim sínithe tairsí](https://medium.com/nethermind-eth/threshold-signature-schemes-36f40bc42aca)** - Cinneann sé líon na bpríomhscaireanna aonair a theastaíonn le haghaidh dualgais sínithe, m.sh., 3 as 4. +- **[Giniúint eochrach dáilte (DKG)](https://medium.com/toruslabs/what-distributed-key-generation-is-866adc79620)** - Próiseas cripteagrafach a ghineann na príomhscaireanna agus a úsáidtear chun scaireanna eochair bhailíochtóra reatha nó nua a dháileadh ar na nóid i mbraisle. +- **[Ríomh ilpháirtí (MPC)](https://messari.io/report/applying-multiparty-computation-to-the-world-of-blockchains)** - Gintear an eochair bhailíochtóra iomlán faoi rún ag baint úsáide as ríomhaireacht ilpháirtí. Ní bhíonn an eochair iomlán ar eolas ag aon oibreoir aonair – ní bhíonn ar eolas acu ach a gcuid féin di (a “scair”). +- **Prótacal comhtholal** - Roghnaíonn an prótacal comhthola nód amháin le bheith mar mholtóir an bhloic. Roinneann siad an bloc leis na nóid eile sa bhraisle, a chuireann a gcuid eochairscaireanna leis an síniú comhiomlán. Nuair a bheidh go leor príomhscaireanna comhiomlánaithe, moltar an bloc ar Ethereum. + +Tá lamháltas lochtanna ionsuite ag bailíochtóirí dáilte agus is féidir leo leanúint ar aghaidh fiú má théann cuid de na nóid aonair as líne. Ciallaíonn sé seo go bhfuil an braisle athléimneach fiú má tharlaíonn sé go bhfuil cuid de na nóid laistigh de mailíseach nó leisciúil. + +## Cásanna úsáide DVT {#dvt-use-cases} + +Tá impleachtaí suntasacha ag DVT don tionscal geallta níos leithne: + +### Geallta aonair {#solo-stakers} + +Cumasaíonn DVT coinneáil neamh-chumhdaigh freisin trí ligean duit d’eochair bhailíochtóra a dháileadh thar nóid chianda agus an eochair iomlán a choinneáil go hiomlán as líne. Ciallaíonn sé seo nach gá go gcaithfeadh geallsealbhóirí baile eisíocaíocht a dhéanamh ar chrua-earraí, agus d’fhéadfadh dáileadh na bpríomhscaireanna cabhrú leo iad a neartú i gcoinne haiceanna féideartha. + +### Glacadh mar sheirbhís (SaaS) {#saas} + +Is féidir le hoibreoirí (cosúil le linnte geallta agus geallsealbhóirí institiúideacha) a bhainistíonn go leor bailíochóirí DVT a úsáid chun a riosca a laghdú. Tríd a mbonneagar a dháileadh, féadfaidh siad iomarcaíocht a chur lena n-oibríochtaí agus na cineálacha crua-earraí a úsáideann siad a éagsúlú. + +Roinneann DVT freagracht as príomhbhainistíocht thar nóid iolracha, rud a chiallaíonn gur féidir roinnt costas oibriúcháin a roinnt freisin. Is féidir le DVT riosca oibriúcháin agus costais árachais do sholáthraithe geallta a laghdú freisin. + +### Linnte geallála {#staking-pools} + +De bharr socruithe caighdeánacha bailíochtóra, tá sé d’iallach ar sholáthraithe gealltanais agus ar sholáthróirí gealltanais leachta leibhéil éagsúla iontaoibhe a bheith acu ó oibritheoir aonair ós rud é go ndéantar gnóthachain agus caillteanais a shóisialú ar fud na linne. Bíonn siad ag brath freisin ar oibreoirí chun eochracha sínithe a chosaint mar, go dtí seo, ní raibh aon rogha eile ann dóibh. + +Cé go ndéantar iarrachtaí go traidisiúnta riosca a scaipeadh trí gheallanna a dháileadh ar oibreoirí iolracha, bíonn geall suntasach á bhainisiú go neamhspleách ag gach oibreoir. Tá rioscaí ollmhóra ag baint le bheith ag brath ar oibreoir aonair má dhéanann siad tearcfheidhmíocht, má bhíonn aga neamhfhónaimh acu, má chuirtear isteach orthu nó má ghníomhaíonn siad go mailíseach. + +Trí DVT a ghiaráil, laghdaítear an mhuinín a theastaíonn ó oibreoirí go suntasach. **Is féidir le linnte cur ar chumas oibritheoirí geallta a choinneáil gan eochracha bailíochóra a bheith de dhíth orthu** (toisc nach n-úsáidtear ach príomhscaireanna). Ligeann sé freisin gealltanais bhainistithe a dháileadh ar níos mó oibreoirí (m.sh., in ionad oibreoir aonair a bheith ag bainistiú 1000 bailíochtóir, cuireann DVT ar chumas na mbaliíochtóirí sin a bheith á reáchtáil le chéile ag oibreoirí iolracha). Cinnteoidh cumraíochtaí oibreoirí éagsúla go mbeidh na cinn eile fós in ann ianú má théann oibreoir amháin síos. Bíonn iomarcaíocht agus éagsúlú mar thoradh air seo as a dtagann feidhmíocht agus athléimneacht níos fearr, agus luach saothair á uasmhéadú ag an am céanna. + +Buntáiste eile a bhaineann le muinín oibritheora aonair a íoslaghdú is ea gur féidir le linnte gealltanais rannpháirtíocht oibreoirí níos oscailte agus gan chead a cheadú. Trí seo a dhéanamh, is féidir le seirbhísí a riosca a laghdú agus tacú le dílárú Ethereum trí úsáid a bhaint as tacair oibreoirí coimeádta agus gan chead, mar shampla, trí pháirtithe leasmhara baile nó níos lú a chur le chéile le cinn níos mó. + +## Míbhuntáistí féideartha a bhaineann le DVT a úsáid {#potential-drawbacks-of-using-dvt} + +- **Comhpháirt bhreise** - má thugtar nód DVT isteach cuirfear páirt eile leis a d’fhéadfadh a bheith lochtach nó leochaileach. Bealach chun é seo a mhaolú ná saothrú le haghaidh ilfheidhmithe nód DVT, rud a chiallaíonn go bhfuil cliaint iolracha DVT (mar atá cliaint iolracha ann do na sraitheanna comhaontaithe agus forghníomhaithe). +- **Costais oibriúcháin** - toisc go ndéanann DVT an bailíochtóir a dháileadh idir páirtithe iolracha, tá gá le níos mó nóid chun oibriú in ionad nód amháin, rud a mhéadaíonn costais oibriúcháin. +- **Aga folaithe méadaithe féideartha** - ós rud é go n-úsáideann DVT prótacal comhthola chun comhthoil a bhaint amach idir na nóid iolracha a oibríonn bailíochtóir, d’fhéadfadh sé aga folaithe méadaithe a chruthú. + +## Further Reading {#further-reading} + +- [Sonraíochtaí bailíochtóra dáilte Ethereum (ardleibhéal)](https://github.com/ethereum/distributed-validator-specs) +- [Sonraíochtaí teicniúla dáilte bailíochtóra Ethereum](https://github.com/ethereum/distributed-validator-specs/tree/dev/src/dvspec) +- [Aip taispeána comhroinnte rúnda Shamir](https://iancoleman.io/shamir/) diff --git a/public/content/translations/ga/staking/pools/index.md b/public/content/translations/ga/staking/pools/index.md new file mode 100644 index 00000000000..67ced518881 --- /dev/null +++ b/public/content/translations/ga/staking/pools/index.md @@ -0,0 +1,86 @@ +--- +title: Geallta comhthiomsaithe +description: Forbhreathnú ar conas tosú le geallta comhthiomsaithe ETH +lang: ga +template: staking +emoji: ":money_with_wings:" +image: /images/staking/leslie-pool.png +alt: Leslie an srónbheannach ag snámh sa linn snámha. +sidebarDepth: 2 +summaryPoints: + - Cuir geall agus tuill luaíochtaí le haon mhéid ETH trí dhul i gcomhar le daoine eile + - Léim thar an chuid chrua agus cuir oibríocht bailíochtóra ar iontaoibh chuig tríú páirtí + - Coinnigh comharthaí greamaithe i do sparán féin +--- + +## Cad is linnte geallcuir ann? {#what-are-staking-pools} + +Is cur chuige comhoibríoch é linnte cruachta a ligeann do mhórán a bhfuil méideanna níos lú ETH acu an 32 ETH a fháil a theastaíonn chun sraith eochracha bailíochtóra a ghníomhachtú. Ní thacaítear go dúchasach le feidhmiúlacht chomhthiomsaithe laistigh den phrótacal, mar sin tógadh réitigh ar leithligh le freastal ar an riachtanas seo. + +Feidhmíonn roinnt linnte le conarthaí cliste, áit ar féidir cistí a thaisceadh le conradh, a bhainistíonn agus a rianaíonn do ghealltanais go hiontaofa, agus a eisíonn comhartha duit a léiríonn an luach seo. Other pools may not involve smart contracts and are instead mediated offchain. + +## Cén fáth geall a dhéanamh le linn? {#why-stake-with-a-pool} + +Chomh maith leis na buntáistí a leagamar amach inár [réamhrá ar gheall](/staking/), tá roinnt buntáistí sainiúla ag baint le geall le linn. + + + + + + + + + +## Cad atá le meas {#what-to-consider} + +Ní thacaíonn prótacal Ethereum le geallchur comhthiomsaithe nó tarmligthe ó dhúchas, ach mar gheall ar an éileamh atá ar úsáideoirí níos lú ná 32 ETH a ghlacadh, tá líon méadaitheach réitigh tógtha amach chun freastal ar an éileamh seo. + +Tá gach linn agus na huirlisí nó na conarthaí cliste a úsáideann siad tógtha ag foirne éagsúla, agus tagann buntáistí agus rioscaí le gach ceann acu. Cuireann linnte ar chumas úsáideoirí a ETH a mhalartú le haghaidh comhartha a léiríonn ETH geallta. Tá an comhartha úsáideach toisc go gceadaíonn sé d’úsáideoirí aon mhéid ETH a mhalartú go dtí méid comhionann de chomhartha toraidh a ghineann toradh ó na luaíochtaí geallta a chuirtear i bhfeidhm ar an ETH bunaidh atá geallta (agus a mhalairt) ar mhalartuithe díláraithe fiú amháin. Fanann ETH geallchurtha ar an gciseal comhthola. Ciallaíonn sé seo babhtálacha anonn is anall ó tháirge cruachta-ETH ar a bhfuil toradh agus go bhfuil "amh ETH" tapa, éasca agus nach bhfuil sé ar fáil ach in iolraí de 32 ETH. + +Mar sin féin, is gnách go gcruthaíonn na comharthaí geallta-ETH seo iompraíochtaí cosúil le cairtéil nuair a thagann cuid mhór den ETH atá i gceist faoi smacht roinnt eagraíochtaí láraithe seachas a bheith scaipthe thar go leor daoine neamhspleácha. Cruthaíonn sé seo coinníollacha maidir le cinsireacht nó asbhaint luacha. Ba cheart go mbeadh an caighdeán óir le haghaidh geallta i gcónaí ag daoine aonair ag rith bailíochtóirí ar a gcuid crua-earraí féin nuair is féidir. + +[Tuilleadh eolais maidir leis na rioscaí a bhaineann le geallchur comharthaí](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Úsáidtear táscairí tréithe thíos chun láidreachtaí nó laigí suntasacha a d’fhéadfadh a bheith ag linn geallchuir liostaithe a chur in iúl. Bain úsáid as an rannán seo mar thagairt don chaoi a ndéanaimid na tréithe seo a shainiú agus tú ag roghnú linne. + + + +## Déan iniúchadh ar linnte geallchuir {#explore-staking-pools} + +Tá roghanna éagsúla ar fáil chun cabhrú leat le do shocrú. Úsáid na táscairí thuas mar chabhair agus mar threoir do na huirlisí thíos. + + + + + +Tabhair faoi deara a thábhachtaí atá sé seirbhís a roghnú atá dáiríre faoi [éagsúlacht cliant](/developers/docs/nodes-and-clients/client-diversity/), toisc go bhfeabhsaíonn sé slándáil an líonra, agus go gcuireann teorainneacha ar riosca. Léirítear seirbhísí a bhfuil fianaise acu ar úsáid thromlach na gcliant a theorannú le "éagsúlacht cliant reatha" agus "éagsúlacht cliant comhthola." + +An bhfuil moladh agat maidir le huirlis gheallchuir nár thugamar faoi deara? Breathnaigh ar ár [bpolasaí liostála táirgí](/contributing/adding-staking-products/) le fáil amach an n-oireann sé go maith, agus chun é a chur isteach le haghaidh athbhreithniú. + +## Ceisteanna coitianta {#faq} + + +De ghnáth eisítear comharthaí gill ERC-20 chuig geallsealbhóirí agus is ionann iad agus luach a luaíochtaí ETH móide. Meabhraigh go ndéanfaidh linnte éagsúla luach saothair geallchuir a dháileadh ar a n-úsáideoirí trí mhodhanna atá beagán difriúil, ach is é seo an téama coitianta. + + + +Anois direach! Rinneadh uasghrádú líonra Shanghai/Capella i mí Aibreáin 2023, agus tugadh isteach aistarraingtí geallta. Tá sé de chumas anois ag cuntais bhailíochta a thacaíonn le linnte geallchuir imeacht astu agus ETH a aistarraingt chuig a seoladh aistarraingthe ainmnithe. Ligeann sé seo duit do chuid den sciar a fhuascailt don ETH bhunúsach. Seiceáil le do sholáthraí féachaint conas a thacaíonn siad leis an bhfeidhmiúlacht seo. + +De rogha air sin, cuireann linnte a úsáideann chomhartha geallchuir ERC-20 ar chumas úsáideoirí an chomhartha seo a thrádáil ar an margadh oscailte, rud a ligeann duit do sheasamh gealltchuir a dhíol, go héifeachtach "aistarraingt" gan ETH a bhaint as an gconradh geallchuir. + +Tuilleadh faoi aistarraingtí geallchuir + + + +Tá go leor cosúlachtaí idir na roghanna geallchuir comhthiomsaithe seo agus malartáin láraithe, amhail an cumas méideanna beaga ETH a chur i ngeall agus iad a bheith cuachta le chéile chun bailíochtóirí a ghníomhachtú. + +Murab ionann agus malartáin láraithe, úsáideann go leor roghanna comhthiomsaithe eile conarthaí cliste agus/nó comharthaí geallchuir, ar comharthaí ERC-20 iad de ghnáth is féidir a choinneáil i do sparán féin, agus a cheannaítear nó a dhíoltar díreach cosúíl le haon chomhartha eile. Cuireann sé seo sraith ceannasachta agus slándála ar fáil trí smacht a thabhairt duit ar do chuid comharthaí, ach fós ní thugann sé smacht díreach duit ar an gcliant bailíochtóra atá ag fianú ar do shon sa chúlra. + +Tá roinnt roghanna comhthiomsaithe níos díláraithe ná cinn eile maidir leis na nóid a thacaíonn leo. Chun sláinte agus dílárú an líonra a chur chun cinn, spreagtar geallsealbhóirí i gcónaí seirbhís chomhthiomsaithe a roghnú a chumasaíonn sraith oibreoirí nód díláraithe gan chead. + + +## Tuilleadh léitheoireachta {#further-reading} + +- [ Eolaire Geallchuir Ethereum](https://www.staking.directory/) - _Eridian agus Spacesider_ +- [Geallchur le Linn Roicéid - Forbhreathnú Geallchuir](https://docs.rocketpool.net/guides/staking/overview.html) - _Doiciméid RocketPool_ +- [Ethereum á gheallchur le Lido](https://help.lido.fi/ga/collections/2947324-staking-ethereum-with-lido) - _Lido doiciméid cabhrach_ diff --git a/public/content/translations/ga/staking/saas/index.md b/public/content/translations/ga/staking/saas/index.md new file mode 100644 index 00000000000..c891f361118 --- /dev/null +++ b/public/content/translations/ga/staking/saas/index.md @@ -0,0 +1,95 @@ +--- +title: Geallchur mar sheirbhís +description: Forbhreathnú ar conas tosú le geallta comhthiomsaithe ETH +lang: ga +template: staking +emoji: ":money_with_wings:" +image: /images/staking/leslie-saas.png +alt: Leslie an srónbheannach ar snámh sna scamaill. +sidebarDepth: 2 +summaryPoints: + - Láimhseálann oibreoirí nód tríú páirtí an t-oibriú do do chliaint bailíochtóra + - Rogha iontach do dhuine ar bith a bhfuil 32 ETH acu agus nach bhfuil compordach ag déileáil leis an gcastacht theicniúil a bhaineann le nód a rith + - Laghdaigh muinín, agus coinnigh cumhdach d'eochracha aistarraingthe +--- + +## Cad is geallchur mar sheirbhís ann? {#what-is-staking-as-a-service} + +Is ionann geallchur mar sheirbhís (“SaaS”) agus catagóir de sheirbhísí geallchuir ina dtaisceann tú do 32 ETH féin ar son bailíochtóra, ach tarmligeann tú oibríochtaí nóid chuig oibreoir tríú páirtí. De ghnáth is éard atá i gceist leis an bpróiseas seo ná a bheith treoraithe tríd an socrú tosaigh, lena n-áirítear giniúint eochracha agus taisce, ansin d'eochracha sínithe a uaslódáil chuig an oibreoir. Ligeann sé seo don tseirbhís do bhaiíochtóir a oibriú ar do shon, ar tháille mhíosúil de ghnáth. + +## Cén fáth geall a chur le seirbhís? {#why-stake-with-a-service} + +Ní thacaíonn prótacal Ethereum ó dhúchas le tarmligean geallta, agus mar sin tá na seirbhísí seo tógtha amach chun an t-éileamh seo a líonadh. Má tá 32 ETH agat, ach nach mothaíonn tú ar do chompord ag déileáil le crua-earraí, ceadaíonn seirbhísí SaaS duit an chuid chrua a tharmligean agus tú ag tuilleamh luach saothair bloc dúchais. + + + + + + + + + +## Cad atá le meas {#what-to-consider} + +Tá méadú ag teacht ar líon na soláthróirí SaaS a chabhróidh leat do ETH a chur i ngeall, ach tá a gcuid buntáistí agus rioscaí féin acu go léir. Teastaíonn toimhdí breise iontaobhais i gcomparáid le geallchur baile ó gach rogha SaaS. D'fhéadfadh go mbeadh cód breise ag roghanna Saas ag clúdach na gcliant Ethereum nach bhfuil oscailte nó in-iniúchta. Tá tionchar díobhálach ag SaaS ar dhílárú líonra freisin. Ag brath ar an socrú, ní fhéadfaidh tú do bhailíochtóir a rialú - d'fhéadfadh an t-oibreoir gníomhú go mímhacánta ag baint úsáide as do ETH. + +Úsáidtear táscairí tréithe thíos chun láidreachtaí nó laigí suntasacha a d’fhéadfadh a bheith ag soláthraí SaaS liostaithe a chur in iúl. Bain úsáid as an rannán seo mar thagairt don chaoi a ndéanaimid na tréithe seo a shainiú agus tú ag roghnú seirbhíse chun cabhrú le do thuras geallchuir. + + + +## Déan iniúchadh ar sholáthraithe seirbhíse geallchuir {#saas-providers} + +Seo thíos roinnt soláthraithe SaaS atá ar fáil. Bain úsáid as na táscairí thuas chun cabhrú le tú a threorú tríd na seirbhísí seo + + + +### Soláthraithe SaaS + + + +Tabhair faoi deara a thábhachtaí atá sé tacaíocht a thabhairt do [éagsúlacht cliant](/developers/docs/nodes-and-clients/client-diversity/) mar go bhfeabhsaítear slándáil an líonra agus go gcuireann sé teorainn le do riosca. Léirítear seirbhísí a bhfuil fianaise acu ar úsáid thromlach na gcliant a theorannú le "éagsúlacht cliant reatha" agus "éagsúlacht cliant comhthola." + +### Gineadóirí Eochracha + + + +An bhfuil moladh agat maidir le soláthraí seirbhíse gealltanais nár thugamar faoi deara? Breathnaigh ar ár [bpolasaí liostála táirgí](/contributing/adding-staking-products/) le fáil amach an n-oireann sé go maith, agus chun é a chur isteach le haghaidh athbhreithniú. + +## Ceisteanna coitianta {#faq} + + +Beidh na socruithe difriúil ó sholáthraí go soláthraí, ach de ghnáth treorófar tú trí aon eochracha sínithe a theastaíonn uait a shocrú (ceann amháin in aghaidh 32 ETH), agus iad seo a uaslódáil chuig do sholáthraí chun ligean dóibh bailíochtú ar do shon. Ní thugann na heochracha sínithe leo féin aon chumas duit cistí anaistarraingt, a aistriú nó a chaitheamh. Mar sin féin, cuireann siad ar fáil an cumas chun vótaí a chaitheamh i dtreo chomhthola, agus mura ndéantar iad i gceart d'fhéadfadh pionóis nó slaiseáil as líne a bheith mar thoradh orthu. + + + +Tá. Tá gach cuntas comhdhéanta den dá eochair shínithe BLS, agus eochracha aistarraingthe BLS. Ionas gur féidir le bailíochtóir staid an tslabhra a fhianú, páirt a ghlacadh i gcoistí sioncronaithe agus bloic a mholadh, ní mór go mbeadh rochtain éasca ag cliant bailíochtóra ar na heochracha sínithe. Ní mór iad seo a nascadh leis an idirlíon i bhfoirm éigin, agus mar sin meastar go bunúsach gur eochracha "teo" iad. Is ceanglas é seo ar do bhailíochtóir a bheith in ann fianú, agus mar sin déantar na heochracha a úsáidtear chun cistí a aistriú nó a aistarraingt a dheighilt ar chúiseanna slándála. + +Úsáidtear na heochracha aistarraingthe BLS chun teachtaireacht aonuaire a shíniú ina ndearbhaítear cén ciseal reatha ar cheart do luaíochtaí gealltanais agus cistí éalaithe dul chuici. Nuair a bheidh an teachtaireacht seo craolta, ní bheidh na heochracha aistarraingt BLS ag teastáil a thuilleadh. Ina áit sin, déantar rialú ar chistí aistarraingthe a tharmligean go buan chuig an seoladh a chuir tú ar fáil. Ligeann sé seo duit seoladh aistarraingthe a shocrú arna urrú trí do stór fuar féin, rud a íoslaghdaíonn an riosca do do chistí bailíochtóra, fiú má rialaíonn duine éigin eile d’eochracha sínithe bailíochtaithe. + +Is céim riachtanach é dintiúir aistarraingthe a nuashonrú chun aistarraingtí a chumasú\*. Is éard atá i gceist leis an bpróiseas seo ná na heochracha aistarraingthe a ghiniúint ag baint úsáide as d'fhrása síl cuimhneacháin. + +Déan cinnte cúltaca sábháilte a dhéanamh don frása síl seo nó ní bheidh tú in ann d'eochracha aistarraingthe a ghiniúint nuair a thiocfaidh an t-am. + +\*Ní gá do gheallsealbhóirí a thug seoladh aistarraingthe le héarlais tosaigh é seo a shocrú. Seiceáil le do sholáthraí SaaS le haghaidh tacaíochta maidir le conas do bhailíochtóir a ullmhú. + + + +Cuireadh aistarraingtí geallta i bhfeidhm in uasghrádú Shanghai/Capella i mí Aibreáin 2023. Ní mór do gheallsealbhóirí seoladh aistarraingthe a sholáthar (mura gcuirtear ar fáil é ar thaisce tosaigh), agus tosófar ar íocaíochtaí luaíochta a dháileadh go huathoibríoch ar bhonn tréimhsiúil gach cúpla lá. + +Is féidir le bailíochtóirí imeachtamach go hiomlán mar bhailíochtóirí freisin, rud a dhíghlasálfaidh a n-iarmhéid ETH atá fágtha le haistarraingt. Gheobhaidh na cuntais a sholáthair seoladh aistarraingthe reatha agus a chríochnaigh an próiseas imeachta a n-iarmhéid iomlán chuig an seoladh aistarraingthe a soláthraíodh le linn an chéad scuabadh bailíochtóra eile. + +Tuilleadh faoi aistarraingtí geallchuir + + + +Trí úsáid a bhaint as soláthraí SaaS, tá oibriú do nóid á chur ar iontaoibh agat do dhuine éigin eile. Baineann an baol leis seo go mbeidh drochfheidhmíocht nód ann, rud nach bhfuil faoi do smacht. Sa chás go ndéantar slaiseáil ar do bhailíochtóir, gearrfar pionós ar d’iarmhéid bailíochtaithe agus bainfear é go héigeantach as an gcomhthiomsú bailíochtóra. + +Ar chríochnú an phróisis slaiseála/scoir, aistreofar na cistí sin chuig an seoladh aistarraingthe a shanntar don bhailitheoir. Éilíonn sé seo seoladh aistarraingthe a sholáthar chun é a chumasú. Seans gur soláthraíodh é seo ar an éarlais tosaigh. Mura soláthraíodh, beidh gá na heochracha aistarraingthe bailíochtóra a úsáid chun teachtaireacht a shíniú ag dearbhú seoladh aistarraingthe. Mura gcuirtear seoladh aistarraingthe ar fáil, fanfaidh cistí faoi ghlas go dtí go gcuirfear ar fáil é. + +Déan teagmháil le soláthraí aonair SaaS le haghaidh tuilleadh sonraí ar aon ráthaíochtaí nó roghanna árachais, agus le haghaidh treoracha ar conas seoladh aistarraingthe a sholáthar. Más fearr leat smacht iomlán a bheith agat ar do shocrú bailíochtóra, foghlaim tuilleadh faoi conas geall aonair a dhéanamh ar do ETH . + + +## Tuilleadh léitheoireachta {#further-reading} + +- [ Eolaire Geallchuir Ethereum](https://www.staking.directory/) - _Eridian agus Spacesider_ +- [Ag Measúnú Seirbhísí Geallchuir](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/ga/staking/solo/index.md b/public/content/translations/ga/staking/solo/index.md new file mode 100644 index 00000000000..30fb0fec9ae --- /dev/null +++ b/public/content/translations/ga/staking/solo/index.md @@ -0,0 +1,206 @@ +--- +title: Geallchur baile do ETH +description: Forbhreathnú ar conas tosú sa bhaile le geallchur ldo ETH +lang: ga +template: staking +emoji: ":money_with_wings:" +image: /images/staking/leslie-solo.png +alt: Leslie an srónbheannach ar a slis ríomhaire féin. +sidebarDepth: 2 +summaryPoints: + - Faigh luaíocht uasta díreach ón bprótacal chun do bhailíochtóir a choinneáil ag feidhmiú i gceart agus ar líne + - Rith crua-earraí baile agus cuir go pearsanta le slándáil agus dílárú líonra Ethereum + - Bain amach muinín, agus ná géill an smacht ar eochracha do chistí riamh +--- + +## Cad is geallchur baile ann? {#what-is-solo-staking} + +Is éard atá i gceist le geallchur baile an gníomh [nód Ethereum a rith](/run-a-node/) atá nasctha leis an idirlíon agus 32 ETH a thaisceadh chun [bailíochtóir a ghníomhachtú](#faq), rud a thugann an cumas duit a bheith rannpháirteach go díreach i gcomhthoil líonra. + +** Méadaíonn geallchur baile dílárú líonra Ethereum**, rud a fhágann go bhfuil Ethereum níos frithsheasmhaí do chinsireacht agus níos láidre in aghaidh ionsaithe. D'fhéadfadh nach gcabhródh modhanna geallchuir eile leis an líonra ar na bealaí céanna. Is é an geallchur baile an rogha geallchuir is fearr chun Ethereum a dhaingniú. + +Tá nód Ethereum comhdhéanta de chliant ciseal reatha (EL), chomh maith le cliant ciseal comhthola (CL). Is bogearraí iad na cliaint seo a oibríonn le chéile, mar aon le sraith bhailí eochracha sínithe, chun idirbhearta agus bloic a fhíorú, chun ceann ceart an tslabhra a fhianú, fianuithe comhiomlána, agus bloic a mholadh. + +Is iad na gealltóirí baile atá freagrach as an trealamh atá ag teastáil chun na cliaint seo a reáchtáil. Moltar go mór meaisín tiomnaithe a úsáid chuige seo a oibríonn tú ón mbaile - tá sé seo thar a bheith tairbheach do shláinte an líonra. + +Faigheann gealltóir baile luach saothair díreach ón bprótacal as a bhailíochtóir a choinneáil ag feidhmiú i gceart agus ar líne. + +## Cén fáth geallchur a dhéanamh ón mbaile? {#why-stake-solo} + +Baineann níos mó freagrachta le geallchur baile ach tugann sé an smacht is mó duit ar do chistí agus ar shocrú an gheallchuir. + + + + + + + +## Nithe le cur san áireamh sula ndéantar geallchur baile {#considerations-before-staking-solo} + +A oiread agus is mian linn go mbeadh geallchur baile inrochtana agus saor ó riosca do chách, ní mar sin a bhíonn. Tá roinnt machnamh praiticiúil agus tromchúiseach le déanamh sular roghnaíonn tú geallchur baile do do ETH. + + + +Agus do nód féin á oibriú agat ba chóir duit roinnt ama a chaitheamh ag foghlaim conas na bogearraí atá roghnaithe agat a úsáid. Is éard atá i gceist leis seo ná na doiciméid ábhartha a léamh agus a bheith i dtiúin le bealaí cumarsáide na bhfoirne forbartha sin. + +Dá mhéad a thuigeann tú faoi na bogearraí atá á rith agat agus an chaoi a n-oibríonn cruthúnas-geallta, is lú an baol a bheidh ann mar ghealltóir, agus is amhlaidh is fusa a bheidh sé aon fhadhb a d’fhéadfadh teacht chun cinn mar oibreoir nód a réiteach. + + + +Teastaíonn leibhéal réasúnta compoird le socrú nód agus tú ag obair le ríomhairí, cé go bhfuil uirlisí nua á éascú seo le himeacht ama. Is cabhair í an tuiscint ar chomhéadan na n-orduithe, ach níl sé ag teastáil go géar a thuilleadh. + +Éilíonn sé freisin socrú crua-earraí an-bhunúsach, agus roinnt tuisceana ar na sonraí íosta molta. + + + +Díreach mar a shlánaíonn eochracha príobháideacha do sheoladh Ethereum, beidh ort eochracha a ghiniúint go sonrach le haghaidh do bhailíochtóir. Caithfidh tú a thuiscint conas aon frásaí síl nó eochracha príobháideacha a choinneáil slán sábháilte.{' '} + +Slándáil Ethereum agus cosc ​​ar chamscéimeanna + + + +Teipeann ar chrua-earraí ó am go chéile, déantar earráid maidir le naisc líonra, agus bíonn gá le bogearraí cliaint a uasghrádú ó am go chéile. Tá cothabháil nód dosheachanta agus beidh d'aird ag teastáil ó am go chéile. Beidh tú ag iarraidh a bheith cinnte go bhfanfaidh tú ar an eolas faoi aon uasghráduithe líonra a bhfuiltear ag súil leo, nó uasghrádú ríthábhachtach eile ar chliaint. + + + +Tá do luaíochtaí i gcomhréir leis an am a bhfuil do bhailíochtóir ar líne agus á fhianú i gceart. Tabhaíonn aga neamhfhónaimh pionóis atá i gcomhréir le líon na mbailíochtóirí eile atá as líne ag an am céanna, ach ní dhéantar slaiseáil é mar thoradh ar . Tá tábhacht ag baint le bandaleithead freisin, toisc go laghdaítear luach saothair i leith fianuithe nach bhfaightear in am. Athróidh riachtanais, ach moltar íosmhéid 10 Mb/s suas agus síos. + + + +Neamhchosúil le neamhghníomhaíochta as bheith as líne, is pionós i bhfad níos tromchúisí é slaiseáil a fhorchoimeádtar i leith cionta mailíseacha. Trí chliant mionlaigh a rith agus d’eochracha á lódáil ar mheaisín amháin ag an am, íoslaghdaítear an baol go ndéanfar slaiseáil ort. É sin ráite, caithfidh gach gealltóir a bheith eolach faoi na rioscaí a bhaineann le slaiseáil. + + Tuilleadh faoi shaolré slaiseála agus bailíochtóra + + + + + +## Conas a oibríonn sé {#how-it-works} + + + +Agus tú gníomhach gheobhaidh tú luaíochtaí ETH, a thaiscfear go tréimhsiúil isteach i do sheoladh aistarraingthe. + +Más mian leat riamh, is féidir leat imeacht mar bhailíochtóir, rud a chuireann deireadh leis an gceanglas a bheith ar líne, agus a stopann aon luaíocht eile. Aistarraingeofar d’iarmhéid atá fágtha ansin chuig an seoladh aistarraingthe a ainmníonn tú le linn an tsocraithe. + +[Tuilleadh faoi aistarraingtí geallchuir](/staking/withdrawals/) + +## Tosaigh ar an gCeap Lainseála Geallchuir {#get-started-on-the-staking-launchpad} + +Is feidhmchlár foinse oscailte é an Ceap Lainseála Geallciuir a chabhróidh leat a bheith i do gealltóir. Treoróidh sé thú trí roghnú do chliaint, giniúint do eochracha agus taisceáil do ETH sa chonradh taisce geallchuir. Cuirtear seicliosta ar fáil lena chinntiú go bhfuil gach rud clúdaithe agat chun do bhailíochtóir a shocrú go sábháilte. + + + +## Cad ba cheart a chur san áireamh le huirlisí socraithe nód agus cliant {#node-tool-considerations} + +Tá méadú ag teacht ar líon na n-uirlisí agus seirbhísí a chabhróidh leat do geallchur baile do ETH, ach tagann rioscaí agus buntáistí éagsúla le gach ceann díobh. + +Úsáidtear táscairí tréithe thíos chun láidreachtaí nó laigí suntasacha uirlis geallchuir liostaithe a chur in iúl. Bain úsáid as an rannán seo mar thagairt don chaoi a ndéanaimid na tréithe seo a shainiú agus tú ag roghnú uirlisí a chabhróidh leat le do thuras geallchuir. + + + +## Déan iniúchadh ar uirlisí socraithe nód agus cliant {#node-and-client-tools} + +Tá roghanna éagsúla ar fáil chun cabhrú leat le do shocrú. Úsáid na táscairí thuas mar chabhair agus mar threoir do na huirlisí thíos. + + + +### Uirlisí nód + + + +Tabhair faoi deara le do thoil an tábhacht a bhaineann le [cliant mionlaigh](/developers/docs/nodes-and-clients/client-diversity/) a roghnú toisc go bhfeabhsaítear slándáil an líonra, agus cuireann sé teorainn le do riosca. Sainítear uirlisí a ligeann duit cliant mionlaigh a shocrú mar "il-chliant." + +### Gineadóirí Eochracha + +Is féidir na huirlisí seo a úsáid mar mhalairt ar an [ CLI Taisce Geallchuir](https://github.com/ethereum/staking-deposit-cli/) chun cabhrú le giniúint eochrach. + + + +An bhfuil moladh agat maidir le huirlis gheallchuir nár thugamar faoi deara? Breathnaigh ar ár [bpolasaí liostála táirgí](/contributing/adding-staking-products/) le fáil amach an n-oireann sé go maith, agus chun é a chur isteach le haghaidh athbhreithniú. + +## Déan iniúchadh ar na treoracha maidir le geallchur baile {#staking-guides} + + + +## Ceisteanna coitianta {#faq} + +Seo roinnt de na ceisteanna is coitianta faoi gheallchur ar fiú fios a bheith agat orthu. + + + +Is aonán fíorúil é bailíochtóir a chónaíonn ar Ethereum agus a ghlacann páirt i gcomhthoil phrótacal Ethereum. Déanann iarmhéid, eochair phoiblí agus airíonna eile ionadaíocht ar bhailíochtórí. Is ionann is cliant bailíochtóra agus na bogearraí a ghníomhaíonn thar ceann an bhailíochtóra trína eochair phríobháideach a shealbhú agus a úsáid. Is féidir le cliant bailíochtóraaonair go leor péirí eochair a shealbhú, ag rialú go leor bailíochtóirí. + + + + +Teastaíonn 32 ETH go díreach le gach péire eochrach a bhaineann le bailíochtóir a ghníomhachtú. Nuair a chuirtear níor mó ETH i dtaisce le sraith amháin eochracha ní mhéadaíonn sé an cumas luaíochta, toisc go bhfuil gach bailíochtóir teoranta do éifeachtach iarmhéid 32 ETH. Ciallaíonn sé seo go ndéantar an tslat tomhais in incrimintí 32 ETH, agus a sraith eochracha agus cothromaíocht féin ag gach ceann acu. + +Ná cuir níos mó ná 32 ETH i dtaisce le haghaidh bailíochtóir amháin. Ní mhéadóidh sé do luaíocht. Má tá seoladh aistarraingthe socraithe don bhailíochtóir, déanfar cistí barrachais os cionn 32 ETH a aistarraingt go huathoibríoch chuig an seoladh seo le linn an chéad scuabadh bailíochtóra. + +Má tá cuma ró-éilitheach ort ar an ngeallchur baile, smaoinigh ar sholáthraí geall-mar-sheirbhís a úsáid, nó má tá tú ag obair le níos lú ná 32 ETH, seiceáil amach na linnte geallchuir. + + + +Má théann tú as líne agus an líonra á thabhairt chun críche i gceart NÍ laghdófar é. Tabhaítear pionóis neamhghníomhaíochta bheaga mura bhfuil do bhailíochtóir ar fáil le fianú ar feadh tréimhse áirithe (6.4 nóiméad ar fad), ach tá sé seo an-difriúil le slaiseáil. Tá na pionóis seo beagán níos lú ná an luach saothair a bheadh ​​tuillte agat dá mbeadh an bailíochtóir ar fáil lena fhianú, agus is féidir caillteanais a thuilleamh ar ais le thart ar an méid céanna ama ar ais ar líne arís. + +Tabhair faoi deara go bhfuil na pionóis as neamhghníomhaíocht i gcomhréir le cé mhéad bailíochtóir atá as líne ag an am céanna. I gcásanna ina bhfuil cuid mhór den líonra ar fad as líne ag an am céanna, beidh na pionóis do gach ceann de na bailíochtaithe sin níos mó ná nuair nach bhfuil bailíochtóir aonair ar fáil. + +I gcásanna tromchúiseacha má stopann an líonra de bheith ag críochnú mar thoradh ar níos mó ná an tríú cuid de na bailíochtóirí a bheith as líne, beidh na húsáideoirí seo thíos leis an rud ar a dtugtar sceitheadh ​​neamhghníomhaíochta cearnógach, atá ina dhraenáil easpónantúil de ETH ó cuntais bhailíochtóirí as líne. Ligeann sé seo don líonra é féin a leigheas ar deireadh trí ETH na mbailíochtóirí neamhghníomhacha a dhó go dtí go sroicheann a n-iarmhéid 16 ETH, agus ag an bpointe sin déanfar iad a dhíbirt go huathoibríoch as an linn bailíochtóirí. Cuimseoidh na bailíochtóirí ar líne atá fágtha breis agus 2/3 den líonra arís, rud a shásóidh an t-ollmhóramh atá riachtanach chun an slabhra a thabhairt chun críche arís. + + + +I mbeagán focal, ní féidir é seo a ráthú go hiomlán, ach má ghníomhaíonn tú de mheon macánta, má reáchtálann tú cliant mionlaigh agus mura gcoimeádann tú d’eochracha sínithe ach ar mheaisín amháin ag an am, tá an baol slaiseála beagnach ag náid duit. + +Níl ach roinnt bealaí sainiúla ann a bhféadfaí slaiseáil a dhéanamh ar bhailíochtóir agus e a dhíbirt as an líonra mar thoradh air. Agus é seo á scríobh, ba tháirge de shuiteálacha crua-earraí iomarcacha iad na slaiseanna a tharla, áit a bhfuil eochracha sínithe stóráilte ar dhá mheaisín ar leith ag an am céanna. D’fhéadfadh vóta dúbailte neamhbheartaithe a bheith mar thoradh air seo ó d’eochracha, ar cion inslaiste é. + +Tá baol slaiseála ann chomh maith má bhíonn cliant sárthromlach (cliant ar bith a úsáideann níos mó ná 2/3 den líonra) á rith má bhíonn fabht ag an gcliant seo as a spreagann slabhra foirc. Féadfaidh forc lochtach a bheith mar thoradh air seo a thugtar chun críche. Chun ceartú ar ais go dtí an slabhra atá beartaithe, bheadh ​​gá le vóta timpeall a chur isteach trí iarracht a dhéanamh bloc críochnaithe a chealú. Is cion inslaiste é seo freisin agus is féidir é a sheachaint go simplí trí chliant mionlaigh a reáchtáil ina ionad. + +Ní thabharfadh fabhtanna coibhéiseacha i chliant mionlaigh chun críche choíche agus mar sin ní bheadh vóta timpeall orthu choíche, agus bheadh pionóis neamhghníomhaíochta mar thoradh orthu, gan slaiseáil. + + + + + +D’fhéadfadh go mbeadh éagsúlacht bheag ag baint le cliaint aonair ó thaobh feidhmíochta agus comhéadan úsáideora de, toisc go bhforbraítear gach ceann díobh ag foirne éagsúla ag baint úsáide as éagsúlacht teangacha ríomhchlárúcháin. É sin ráite, níl aon cheann "is fearr" ann. Is píosaí bogearraí den scoth iad na cliaint táirgeachta go léir, a chomhlíonann na feidhmeanna lárnacha céanna chun sioncrónú agus idirghníomhú leis an mblocshlabhra. + +Ós rud é go soláthraíonn gach cliant táirgeachta an fheidhmiúlacht bhunúsach chéanna, tá sé fíorthábhachtach go roghnaíonn tú cliant mionlaigh, rud a chiallaíonn aon chliant NACH bhfuil á úsáid faoi láthair ag tromlach na mbailitheoirí ar an líonra. D'fhéadfadh sé seo a bheith frithiomasach, ach má ritheann tú cliant tromlaigh nó sár-mhóraimh beidh tú i mbaol méadaithe slaiseála i gcás fabht sa chliant sin. Cuireann reáchtáil cliant mionlaigh teorainn mhór leis na rioscaí seo. + +Foghlaim tuilleadh faoin bhfáth a bhfuil éagsúlacht cliant ríthábhachtach + + + +Cé gur féidir freastalaí príobháideach fíorúil (VPS) a úsáid mar ionadach ar chrua-earraí baile, tá rochtain fhisiciúil agus suíomh do chliant bailíochtóra tábhachtach. Ceadaíonn réitigh lárnaithe scamall ar nós Amazon Web Services nó Digital Ocean an áisiúlacht gan crua-earraí a fháil agus a oibriú, ar chostas lárú an líonra. + +Dá mhéad cliant bailíochtóra a bheidh ag rith ar réiteach stórála scamaill láraithe amháin, is amhlaidh is contúirtí a bheidh sé do na húsáideoirí seo. Má tharlaíonn aon teagmhas a thugann na soláthraithe seo as líne, cibé acu trí ionsaí, éilimh rialála, nó díreach bristeacha cumhachta/idirlíon, beidh gach cliant bailíochtóra atá ag brath ar an bhfreastalaí seo as líne ag an am céanna. + +Tá pionóis as líne comhréireach leis an líon eile atá as líne ag an am céanna. Má úsáidtear VPS méadaítear go mór an baol go mbeidh pionóis as líne níos déine, agus méadaíonn sé do riosca sceitheadh ​​cearnach nó slaiseála sa chás go bhfuil an briseadh mór go leor. Chun do riosca féin, agus an riosca don líonra a laghdú, moltar go láidir d'úsáideoirí a gcuid crua-earraí féin a fháil agus a oibriú. + + + + +Éilíonn aistarraingtí de chineál ar bith ón Slabhra Beacon go socrófar dintiúir aistarraingthe. + +Socraíonn gealltóirí nua é seo tráth giniúna eochrach agus taisce. Is féidir le gealltóirí reatha nár shocraigh é seo cheana a n-eochracha a uasghrádú chun tacú leis an bhfeidhmiúlacht seo. + +Nuair a bheidh dintiúir aistarraingthe socraithe, déanfar íocaíochtaí luaíochta (ETH carntha thar an 32 tosaigh) a dháileadh go tréimhsiúil chuig an seoladh aistarraingthe go huathoibríoch. + +Chun d'iarmhéid iomlán a dhíghlasáil agus a fháil ar ais ní mór duit an próiseas scoir a chur i gcrích freisin. + +Tuilleadh faoi aistarraingtí geallchuir + + +## Tuilleadh léitheoireachta {#further-reading} + +- [ Eolaire Geallchuir Ethereum](https://www.staking.directory/) - _Eridian agus Spacesider_ +- [Fadhb Éagsúlachta Cliant Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [ Ag Cabhrú le hÉagsúlacht Cliant](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Éagsúlacht cliant ar chiseal chomhthola Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [Conas: Déan siopadóireacht le haghaidh Crua-earraí Bailíochtóra Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Céim ar Chéim: Conas dul isteach i Testnet Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _ Butta_ +- [Eth2 Leideanna um Chosc ar Shlaiseáil](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020 _ + + diff --git a/public/content/translations/ga/staking/withdrawals/index.md b/public/content/translations/ga/staking/withdrawals/index.md new file mode 100644 index 00000000000..fbd50874c90 --- /dev/null +++ b/public/content/translations/ga/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Aistarraingtí geallchuir +description: Leathanach ag achoimriú cad is aistarraingtí brú geallchuir ann, conas a oibríonn siad, agus cad is gá do gheallsealbhóirí a dhéanamh chun a luaíochtaí a fháil +lang: ga +template: staking +image: /images/staking/leslie-withdrawal.png +alt: Leslie an srónbheannach lena luaíocht gheallchuir +sidebarDepth: 2 +summaryPoints: + - Chumasaigh uasghrádú Shanghai/Capella aistarraingtí geallchuir ar Ethereum + - Ní mór d’oibreoirí bailíochtóra seoladh aistarraingthe a sholáthar chun é a chumasú + - Déantar luaíocht a dháileadh go huathoibríoch gach cúpla lá + - Gheobhaidh bailíochtóirí a fhágann an geallchur go hiomlán an t-iarmhéid atá fágtha acu +--- + + +Cumasaíodh aistarraingtí geallchuir le huasghrádú Shanghai/Capella a tharla an 12 Aibreán 2023. Tuilleadh faoi Shanghai/Capella + + +Tagraíonn **aistarraingtí geallchuir** d'aistrithe ETH ó chuntas bailíochtóra ar chiseal comhthola Ethereum (an Slabhra Beacon), chuig an gciseal reatha inar féidir é a dhéanamh. + +**Déanfar íocaíochtaí luaíochta barrachais** thar 32 ETH a sheoladh go huathoibríoch agus go rialta chuig seoladh aistarraingthe atá nasctha le gach bailíochtóir, a luaithe a sholáthraíonn an t-úsáideoir é. Is féidir le húsáideoirí **an geallchur a scor go hiomlán** freisin, ag díghlasáil a n-iarmhéid bailíochtaithe iomlán. + +## Díolaíocht geallchuir {#staking-rewards} + +Déantar íocaíochtaí luaíochta a phróiseáil go huathoibríoch do chuntais bhailíochtóra ghníomhaigh le hiarmhéid éifeachtach uasta de 32 ETH. + +Ní chuireann aon iarmhéid os cionn 32 ETH a thuilltear trí luaíocht leis an bpríomhshuim, ná ní mhéadaíonn sé meáchain an bhailíochtóra seo ar an líonra, agus mar sin tarraingítear siar go huathoibríoch é mar íocaíocht luaíochta gach cúpla lá. Seachas seoladh aistarraingthe a sholáthar uair amháin, níl aon ghníomhaíocht de dhíth ón oibreoir bailíochtóra do na luaíochtaí seo. Déantar é seo go léir a thionscnamh ar an gciseal comhthola, dá bhrí sin ní gá aon ghás (táille idirbhirt) ag aon chéim. + +### Conas a shroicheamar an pointe seo? {#how-did-we-get-here} + +Le cúpla bliain anuas tá Ethereum tar éis dul faoi roinnt uasghráduithe líonra ag aistriú go líonra atá urraithe ag ETH féin, in ionad mianadóireacht atá dian ar fhuinneamh mar a bhí tráth. Tugtar 'geallchur' ar an rannpháirtíocht i gcomhthoil Ethereum anois, mar go bhfuil ETH glasáilte ag na rannpháirtithe, á chur "i ngeall" don chumas a bheith rannpháirteach sa líonra. Tabharfar luaíiocht d’úsáideoirí a leanann na rialacha, agus féadfar pionós a ghearradh ar iarrachtaí calaoise. + +Ó seoladh an conradh taisce geallchuir i mí na Samhna 2020, tá roinnt ceannródaithe cróga Ethereum tar éis cistí a ghlasáil go deonach chun "bailíiochtóirí" a ghníomhachtú, cuntais speisialta a bhfuil an ceart acu bloic a fhianú go foirmiúil agus a mholadh, de réir rialacha líonra. + +Roimh uasghrádú Shanghai/Capella, ní raibh tú in ann do ETH geallta a úsáid ná a rochtain. Ach anois, is féidir leat liostáil d'fhonn do luaíochtaí a fháil go huathoibríoch isteach i gcuntas roghnaithe, agus is féidir leat do ETH geallta a aistarraingt aon uair is mian leat. + +### Conas a ullmhaím? {#how-do-i-prepare} + + + +### Fógraí tábhachtacha {#important-notices} + +Is céim riachtanach é seoladh aistarraingthe a sholáthar d’aon chuntas bailíochtóra sula mbeidh sé incháilithe ETH a aistarraingt óna iarmhéid. + + + Ní féidir ach seoladh aistarraingthe amháin a shannadh do gach cuntas bailíochtóra, uair amháin. Nuair a roghnaítear seoladh agus a chuirtear isteach sa tsraith chomhthola é, ní féidir é seo a chealú nó a athrú arís. Déan seiceáil faoi dhó ar úinéireacht agus ar chruinneas an tseolta a cuireadh ar fáil sula gcuirtear isteach é. + + +Níl bagairt ar do chistí idir an dá linn mura soláthraitear é seo, ag glacadh leis go bhfuil d'fhrása cuimhneacháin/síolta fós slán as líne, agus nach bhfuil sé curtha i mbaol ar bhealach ar bith. Mura gcuirtear dintiúir aistarraingthe leis, fágfar an ETH faoi ghlas sa chuntas bailíochtóra mar a bhí sé go dtí go gcuirtear seoladh aistarraingthe ar fáil. + +## Ag éirí as an ngeallchur go hiomlán {#exiting-staking-entirely} + +Is gá seoladh aistarraingthe a sholáthar sular féidir _aon chistí_ a aistriú amach as iarmhéid cuntais bhailíochtóra. + +Ní mór d'úsáideoirí atá ag iarraidh éirí as an ngeallchurgo hiomlán agus a n-iarmhéid iomlán a aistarraingt, teachtaireacht "imeacht dheonach" a shíniú agus a chraoladh freisin le heochracha bailíochtaithe a chuirfidh tús leis an bpróiseas chun éirí as an ngeallchur. Déantar é seo le do chliant bailíochtóra agus cuirtear faoi bhráid nód comhdhearcadh é, agus níl gá le gás. + +Tógann an próiseas a bhaineann le bailíochtóir éirí as an ngeallchur tréimhsí athraitheacha, ag brath ar cé mhéad daoine eile atá ag imeacht ag an am céanna. Nuair a bheidh an cuntas seo críochnaithe, ní bheidh an cuntas seo freagrach a thuilleadh as dualgais líonra bailíochtóra a chomhlíonadh, ní bheidh sé incháilithe le haghaidh luaíochtaí a thuilleadh, agus níl a ETH "i gceist" a thuilleadh. Ag an am seo déanfar an cuntas a mharcáil mar chuntas iomlán “in-aistarraingthe”. + +Chomh luath agus a bheidh cuntas "in-aistarraingthe", agus dintiúir aistarraingthe curtha ar fáil, níl aon rud eile le déanamh ag úsáideoir ach fanacht. Scuabtar cuntais go huathoibríoch agus go leanúnach ag moltóirí bloic do chistí éagtha incháilithe, agus aistreofar iarmhéid do chuntais ina iomláine (ar a dtugtar freisin “aistarraingt iomlán”) le linn an chéad scuabadh. + +## Cathain a chumasaítear aistarraingtí geallchuir? {#when} + +Tá aistarraingtí geallchuir beo! Cumasaíodh feidhmiúlacht aistarraingthe mar chuid d’uasghrádú Shanghai/Capella ar an 12 Aibreán 2023. + +Mar gheall ar uasghrádú Shanghai/Capella bhíothas in ann ETH a bhí i ngeall roimhe seo a fháil ar ais i gcuntais rialta Ethereum. Dhún sé seo an lúb ar leachtacht geallchuir, agus thug sé Ethereum céim níos gaire dá thuras i dtreo éiceachóras díláraithe inbhuanaithe, inscálaithe, slán a thógáil. + +- [Tuilleadh faoi stair Ethereum](/history/) +- [Tuilleadh ar an treochlár Ethereum](/roadmap/) + +## Conas a oibríonn íocaíochtaí aistarraingthe? {#how-do-withdrawals-work} + +Is é staid chuntas an bhailíochtóra féin a chinneann an bhfuil bailíochtóir áirithe incháilithe le haghaidh aistarraingthe nó nach bhfuil. Níl aon ionchur úsáideora ag teastáil ag aon am ar leith le cinneadh cé acu ar cheart nó nár cheart go dtionscnófaí aistarraingt cuntais – déantar an próiseas iomlán go huathoibríoch trí chiseal comhthola ar lúb leanúnach. + +### An bhfuil tú níos mó d’fhoghlaimeoir amhairc? {#visual-learner} + +Breathnaigh ar an míniú seo ar aistarraingtí geallchuir Ethereum ag Finematics: + + + +### "Scuabadh" Bailíochtóra {#validator-sweeping} + +Nuair atá bailíochtóir sceidealta chun an chéad bhloc eile a mholadh, ní mór dó scuaine aistarraingthe a thógáil, de suas le 16 aistarraingt incháilithe. Déantar é seo trí thosú ar dtús le hinnéacs bailíochtóra 0, ag cinneadh an bhfuil aistarraingt incháilithe don chuntas seo de réir rialacha an phrótacail, agus é a chur leis an scuaine má tá. Tógfaidh an bailíochtóir atá socraithe chun an bloc seo a leanas a mholadh an áit atá fágtha ag an gceann deireanach, ag dul ar aghaidh in ord ar feadh tréimhse éiginnte. + + +Smaoinigh ar chlog analógach. Díríonn an lámh ar an gclog go dtí an uair, téann sí ar aghaidh i dtreo amháin, ní scipeann sí uaireanta ar bith, agus sa deireadh filleann sí ar ais go dtí an tús arís tar éis an uimhir dheireanach a shroicheadh.

              +Anois in ionad 1 go 12, samhlaigh go bhfuil 0 trí N ag an gclog (líon iomlán na gcuntas bailíochtóra a cláraíodh riamh ar an tsraith chomhthola, níos mó ná 500,000 ó Eanáir 2023).

              +Díríonn an lámh ar an gclog chuig an gcéad bhailíochtóir eile nach mór a sheiceáil le haghaidh aistarraingtí incháilithe. Tosaíonn sé ag 0, agus téann sé chun cinn an bealach ar fad gan aon chuntais a scipeáil. Nuair a shroichtear an bailíochtóir deiridh, leanann an timthriall ar ais ag an tús. +
              + +#### Cuntas á sheiceáil le haghaidh aistarraingtí {#checking-an-account-for-withdrawals} + +Cé go bhfuil moltóir ag scuabadh trí bhailíochtóirí maidir le haistarraingtí féideartha, déantar gach bailíochtóir atá á sheiceáil a mheas i gcoinne sraith ghearr ceisteanna chun a chinneadh ar cheart tarraingt siar a spreagadh, agus má tá, cé mhéad ETH ba cheart a aistarraingt. + +1. **Ar cuireadh seoladh aistarraingthe ar fáil?** Murar soláthraíodh seoladh aistarraingthe, ní dhéantar an cuntas a scipeáil agus ní thionscnófar aon aistarraingt. +2. **An bhfuil an bailíochtóir scortha agus in-aistarraingthe?** Má tá an bailíochtóir imithe go hiomlán, agus an tréimhse sroichte againn ina meastar a chuntas a bheith "in-aistarraingthe", déanfar aistarraingt iomlán. a phróiseáil. Aistreoidh sé seo an t-iarmhéid iomlán atá fágtha chuig an seoladh aistarraingthe. +3. **An bhfuil an iarmhéid éifeachtach uasmhéadaithe ag 32?** Má tá dintiúir aistarraingthe ag an gcuntas, mura bhfuil sé imithe go hiomlán, agus má tá luach saothair os cionn 32 ag fanacht, déanfar aistarraingt pháirteach a phróiseáil anach n-aistreoidh ach na luaíocht os cionn 32 chuig seoladh aistarraingthe an úsáideora. + +Níl ach dhá ghníomh a dhéanann oibreoirí bailíochtóra le linn shaolré an bhailíochtóra a mbíonn tionchar díreach acu ar an sreabhadh seo: + +- Cuir dintiúir aistarraingthe ar fáil chun aon chineál aistarraingthe a chumasú +- Scoir ón líonra, rud a spreagfaidh aistarraingt iomlán + +### Saor ó ghás {#gas-free} + +Seachnaíonn an cur chuige seo maidir le haistarraingtí geallchuir a cheangal ar ghealltóirí idirbheart a chur isteach de láimh ag iarraidh go ndéanfaí méid áirithe ETH a aistarraingt. Ciallaíonn sé seo nach bhfuil **aon ghás (táille idirbhirt) ag teastáil**, agus freisin nach mbíonn aistarraingtí in iomaíocht le haghaidh spás blocála sraitheanna reatha. + +### Cé chomh minic is a gheobhaidh mé mo luaíochtaí geallchuir? {#how-soon} + +Is féidir uasmhéid de 16 aistarraingt a phróiseáil in aon bhloc amháin. Ag an ráta sin, is féidir 115,200 aistarraingt bhailíochtóra a phróiseáil in aghaidh an lae (ag glacadh leis nach gcailltear aon sliotán). Mar a luadh thuas, déanfar bailíochtóirí gan aistarraingtí incháilithe a scipeáil, rud a laghdóidh an t-am chun an scuabadh a chríochnú. + +Agus an ríomh seo á leathnú againn, is féidir linn an t-am a thógfaidh sé chun líon áirithe aistarraingtí a phróiseáil a mheas: + + + +|Líon aistarraingtí | Am le críochnú | +| :-------------------: | :--------------: | +| 400,000 | 3.5 lá | +| 500,000 | 4.3 lá | +| 600,000 | 5.2 lá | +| 700,000 | 6.1 lá | +| 800,000 | 7.0 lá | + + + +Mar a fheiceann tú moillíonn sé seo de réir mar a bhíonn níos mó bailíochtóirí ar an líonra. D'fhéadfadh méadú ar na sliotáin a chailltear é seo a mhoilliú go comhréireach, ach de ghnáth is é seo an taobh is moille de thorthaí féideartha. + +## Ceisteanna coitianta {#faq} + + +Ní féidir, is próiseas aonuaire é an próiseas chun dintiúir aistarraingthe a sholáthar, agus ní féidir é a athrú tar éis é a chur isteach. + + + +Trí sheoladh aistarraingthe ciseal forghníomhaithe a shocrú athraíodh na dintiúir aistarraingthe don bhailíochtóir sin go buan. Ciallaíonn sé seo nach n-oibreoidh na seandintiúir a thuilleadh, agus treoraíonn na dintiúir nua díreach chuig cuntas sraithe reatha. + +Féadfaidh seoltaí aistarraingthe a bheith ina gconradh cliste (arna rialú ag a chód), nó ina gcuntas faoi úinéireacht sheachtrach (EOA, arna rialú ag a eochair phríobháideach). Faoi láthair níl aon bhealach ag na cuntais seo teachtaireacht a chur ar ais go dtí an ciseal comhthola a chomharthódh athrú ar dhintiúir an bhailíochtóra, agus chuirfeadh cur leis an bhfeidhmiúlacht seo castacht neamhriachtanach leis an bprótacal. + +Mar mhalairt ar an seoladh aistarraingthe do bhailíochtóir leith a athrú, féadfaidh úsáideoirí rogha a dhéanamh conradh cliste a shocrú mar a seoladh aistarraingthe a bheadh ábalta láimhseáil eochair-uainíochta a dhéanamh, ar nós Taisceadáin. Is féidir le húsáideoirí a shocraíonn a gcuid cistí dá EOA féin slí amach iomlán a dhéanamh chun a gcistí geallta go léir a aistarraingt, agus ansin ath-gheall a dhéanamh ag baint úsáide as dintiúir nua. + + + + +Má tá tú mar chuid de linn geallchuir nó má tá comharthaí geallta agat, ba cheart duit seiceáil le do sholáthraí le haghaidh tuilleadh sonraí faoin gcaoi a láimhseáiltear aistarraingtí geallchuir, toisc go n-oibríonn gach seirbhís ar bhealach difriúil. + +Go ginearálta, ba cheart go mbeadh cead ag úsáideoirí a ETH bunaidh atá geallta a éileamh ar ais, nó an soláthraí geallchuir a úsáideann siad a athrú. Má tá comhthiomsú ar leith ag dul i méid ró-mhór, is féidir cistí a fhágáil, a fhuascailt agus a chur i ngeall arís le soláthraí níos lú. Nó, má tá go leor ETH carntha agat d’fhéadfá geallchur a dhéanamh ón mbaile. + + + + +Tarlaíonn a fhad is go bhfuil seoladh aistarraingte tugtha ag do bhailíochtóir. Ní mór é seo a sholáthar uair amháin chun aon aistarraingtí a chumasú ar dtús, ansin cuirfear tús le híocaíochtaí luaíochta go huathoibríoch gach cúpla lá le gach scuabadh bailíochtaóirí. + + + + +Ní tharlaíonn, má tá do bhailíochtóir fós gníomhach ar an líonra, ní dhéanfar aistarraingt iomlán go huathoibríoch. Éilíonn sé seo imeacht dheonach a thionscnamh de láimh. + +Nuair a bheidh an próiseas scoir curtha i gcrích ag bailíochtóir, agus ag glacadh leis go bhfuil dintiúir aistarraingthe ag an gcuntas, ansin aistarraingeofar an fuílleach le linn an chéad scuabadh bhailíochtóraeile. + + + + +Tá aistarraingtí deartha chun iad a bhrú go huathoibríoch, ag aistriú aon ETH nach bhfuil ag cur go gníomhach leis an ngeall. Áirítear leis seo iarmhéideanna iomlána do chuntais a bhfuil an próiseas reatha críochnaithe acu. + +Ní féidir méideanna sonracha ETH a aistarraingt a iarraidh de láimh. + + + + +Moltar d’oibreoirí bailíochtóra cuairt a thabhairt ar an leathanach Ceap Láinseála Aistarraingtí áit a bhfaighidh tú tuilleadh sonraí faoi conas do bhailíochtóir a ullmhú le haghaidh aistarraingtí, faoi uainiú na n-imeachtaí, agus tuilleadh sonraí faoin gcaoi a bhfeidhmíonn aistarraingtí. + +Chun triail a bhaint as do shocrú ar testnet ar dtús, tabhair cuairt ar Holesky Testnet Staking Launchpad chun tús a chur leis. + + + + +Ní féidir. A luaithe a bheidh bailíochtóir imithe agus a iarmhéid iomlán aistarraingthe, aistreofar go huathoibríoch aon chistí breise a thaiscfear don bhailíochtóir sin chuig an seoladh aistarraingthe le linn an chéad scuabadh bailíochtóra eile. Chun ETH a athbheartú, ní mór bailíochtóir nua a chur i ngníomh. + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Aistarraingtí ón gCeap Lainseála Geallchuir](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: aistarraingtí brú slabhra beacon mar oibríochtaí](https://eips.ethereum.org/EIPS/eip-4895) +- [Tréadaithe Cat Ethereum - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Aistarraingt ETH Geallta (Tástáil) le Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: aistarraingtí brú slabhra Beacon mar oibríochtaí le Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Iarmhéid Éifeachtach an Bhailíochtóra a Thuiscint](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/public/content/translations/ga/web3/index.md b/public/content/translations/ga/web3/index.md new file mode 100644 index 00000000000..b945eda2980 --- /dev/null +++ b/public/content/translations/ga/web3/index.md @@ -0,0 +1,161 @@ +--- +title: Cad é Web3 agus cén fáth a bhfuil sé tábhachtach? +description: Réamheolas ar Web3 - an chéad éabhlóid eile den Ghréasán Domhanda - agus cad chuige a bhfuil tábhacht leis. +lang: ga +--- + +# Réamhrá don Ghréasán3 {#introduction} + +
              + +
              + +Mar thoradh ar lárnú cuireadh fáilte roimh na billiúin daoine ar bord chuig an nGréasán Domhanda agus cruthaíodh an bonneagar cobhsaí, láidir ar a maireann sé. Ag an am céanna, tá dornán eintiteas láraithe ina dhaingean ar réimsí móra den Ghréasán Domhanda, agus bíonn siad ag déanamh cinntí go haontaobhach maidir le cad ba cheart agus nár cheart a cheadú. + +Is é Web3 an freagra ar an aincheist seo. In ionad mhonaplacht an Ghréasáin ag cuideachtaí móra teicneolaíochta, cuimsíonn Web3 dílárú agus is iad a chuid úsáideoirí a thógann é, a fheidhmíonn é agus is leis na leosan é. Le Web3 cuirtear cumhacht i lámha daoine aonair seachas corparáidí. Sula ndéanaimid labhairt faoi Web3, déanaimis iniúchadh ar conas a shroicheamar an áit seo. + + + +## An Gréasán luath {#early-internet} + +Smaoiníonn formhór na ndaoine ar an nGréasán mar cholún leanúnach den saol nua-aimseartha - ceapadh é agus tá sé ann ó shin. Mar sin féin, is mór an difear idir an Gréasán mar is eol dúinn anois é agus mar a samhlaíodh ar dtús é. Chun é seo a thuiscint níos fearr, tá sé ina chuidiú stair ghairid an Ghréasáin a bhriseadh ina thréimhsí scaoilte - Web 1.0 agus Web 2.0. + +### Gréasán 1.0: Inléite Amháin (1990-2004) {#web1} + +I 1989, ag CERN, sa Ghinéiv, bhí Tim Berners-Lee gnóthach ag forbairt na bprótacal as a ndéanfaí an Gréasán Domhanda. Cén smaoineamh a bhí aige? Chun prótacail oscailte, díláraithe a chruthú a cheadaigh faisnéis a roinnt ó áit ar bith ar domhan. + +Ba go garbh idir 1990 agus 2004 a cruthaíodh an chéad samhail de chuid Berners-Lee, ar a dtugtar 'Gréasán 1.0' anois. Ba shuímh Ghréasáin statacha faoi úinéireacht cuideachtaí go príomha a bhí i nGréasán 1.0, agus ba ar éigean a bhí idirghníomhaíocht ar bith ann idir úsáideoirí - b'annamh a tháirg daoine aonair ábhar - rud a d'fhág gur tugadh an gréasán inléite amháin air. + +![Ailtireacht cliant-freastalaí, a ionadaíonn Web 1.0](./web1.png) + +### Gréasán 2.0: Léigh-Scríobh (2004-anois) {#web2} + +Cuireadh tús le tréimhse Web 2.0 in 2004 le teacht chun cinn ardáin meán sóisialta. In ionad léigh-amháin, tháinig an gréasán chun cinn le bheith inléite. In ionad cuideachtaí a bheith ag soláthar ábhair d’úsáideoirí, thosaigh siad freisin ag cur ardáin ar fáil chun ábhar a ghintear ó úsáideoirí a roinnt agus chun dul i mbun idirghníomhaíochtaí idir úsáideoirí. De réir mar a tháinig níos mó daoine ar líne, thosaigh dornán de na cuideachtaí is fearr ag rialú méid díréireach den trácht agus den luach a ghintear ar an ngréasán. Chuir Web 2.0 tús leis an tsamhail ioncaim a bhí tiomáinte ag an bhfógraíocht freisin. Cé go bhféadfadh úsáideoirí inneachar a chruthú, ní raibh siad ina n-úinéirí air nó ag baint leasa as airgeadú. + +![Ailtireacht cliant-freastalaí, a ionadaíonn Web 2.0](./web2.png) + + + +## Gréasán 3.0: Léigh-Scríobh-Amháin {#web3} + +Ba é Gavin Wood comhbhunaitheoir [Ethereum](/what-is-ethereum/), a bhunaigh ‘Web 3.0’ go gairid tar éis sheoladh Ethereum in 2014. Shoiléirigh Gavin réiteach ar fhadhb a bhraith go leor úsáideoirí cripte: bhí an iomarca muiníne ag teastáil ón nGréasán. Is é sin, braitheann an chuid is mó den Ghréasán a bhfuil aithne ag daoine air agus a úsáideann daoine inniu ar mhuinín a bheith ag dornán cuideachtaí príobháideacha chun gníomhú ar mhaithe le leas an phobail. + +![Ailtireacht nód díláraithe, a ionadaíonn Web3](./web3.png) + +### Cad é Web3? {#what-is-web3} + +Is téarma uileghabhálach é Web3 don fhís d’idirlíon nua níos fearr. Ag a chroílár, úsáideann Web3 blocshlabhraí, criptea-airgeadraí, agus NFTanna chun cumhacht a thabhairt ar ais do na húsáideoirí i bhfoirm úinéireachta. [Dúirt postáil 2020 ar Twitter](https://twitter.com/himgajria/status/1266415636789334016) is fearr é: Bhí Web1 inléite amháin, tá Web2 léite-scríobh, beidh Web3 inléite-scríobh-úinéireacht. + +#### Smaointe lárnacha Web3 {#core-ideas} + +Cé go bhfuil sé dúshlánach sainmhíniú docht a sholáthar ar cad is Web3 ann, tá cúpla bunphrionsabal ann atá mar threoir dá chruthú. + +- **Tá Web3 díláraithe:** in ionad achair mhóra den idirlíon arna rialú agus faoi úinéireacht aonáin láraithe, déantar úinéireacht a dháileadh i measc a chuid tógálaithe agus úsáideoirí. +- **Tá Web3 gan cead:** tá rochtain chothrom ag gach duine chun páirt a ghlacadh in Web3, agus ní chuirtear aon duine as an áireamh. +- **Tá íocaíochtaí dúchasacha ag Web3:** úsáidtear criptea-airgeadra chun airgead a chaitheamh agus a sheoladh ar líne in ionad a bheith ag brath ar bhonneagar bainc agus próiseálaithe íocaíochta as dáta. +- **Tá Web3 neamhiontaofa:** feidhmíonn sé trí úsáid a bhaint as dreasachtaí agus meicníochtaí eacnamaíocha in ionad a bheith ag brath ar thríú páirtithe iontaofa. + +### Cén fáth a bhfuil Web3 tábhachtach? {#why-is-web3-important} + +Cé nach bhfuil gnéithe marfacha Web3 scoite amach agus nach n-oireann siad do chatagóirí néata, ar mhaithe le simplíocht rinneamar iarracht iad a scaradh chun iad a dhéanamh níos éasca le tuiscint. + +#### Úinéireacht {#ownership} + +Tugann Web3 úinéireacht duit ar do shócmhainní digiteacha ar bhealach nach bhfacthas riamh roimhe. Mar shampla, abair go bhfuil tú ag imirt cluiche web2. Má cheannaíonn tú earra ion-chluiche, beidh sé ceangailte go díreach le do chuntas. Má scriosann cruthaitheoirí an chluiche do chuntas, caillfidh tú na míreanna seo. Nó, má stopann tú ag imirt an chluiche, caillfidh tú an luach a d'infheistigh tú i do chuid míreanna ion-chluiche. + +Ligeann Web3 d’úinéireacht dhíreach trí [chomharthaí neamh‑idirmhalartacha (NFTanna)](/glossary/#nft). Níl an cumhacht ag aon duine, ní fiú ag cruthaitheoirí an chluiche, d'úinéireacht a bhaint. Agus, má stopann tú an imirt, is féidir leat do chuid earraí ion-chluiche a dhíol nó a thrádáil ar mhargaí oscailte agus a luach a fháil ar ais. + + +
              Foghlaim tuilleadh faoi NFTanna
              + + Tuilleadh faoi NFTanna + +
              + +#### Friotaíocht chinsireachta {#censorship-resistance} + +Tá an dinimic cumhachta idir ardáin agus cruthaitheoirí ábhar an-éagothrom. + +Is suíomh inneachair aosach a ghineann úsáideoirí é OnlyFans la, tá breis agus 1 mhilliún cruthaitheoir ábhair aige agus úsáideann go leor acu an t-ardán mar phríomhfhoinse ioncaim. I mí Lúnasa 2021, d’fhógair OnlyFans pleananna chun ábhar gnéasach sainráite a thoirmeasc. B'údar feirge é an fógra i measc cruthaitheoirí ar an ardán, a bhraith go rabhthas ag robáil a n-ioncaim ar ardán a chabhraigh leo bheith ag cruthú. Tar éis an aischuir, aisiompaíodh an cinneadh go tapa. In ainneoin gur bhuaigh na cruthaitheoirí an cath sin, leagann sé béim ar fhadhb do dhaoine cruthaitheacha ar Web 2.0: caillfidh tú an cháil agus tar éis duit a bheith fabhraithe má fhágann tú ardán. + +Ar Web3, tá do shonraí ina gcónaí ar an mblocshlabhra. Nuair a shocraíonn tú ardán a fhágáil, is féidir leat do chlú a thabhairt leat, é a cheangal isteach le comhéadan eile atá ag teacht níos fearr le do luachanna. + +Éilíonn Web 2.0 go mbíonn muinín ag cruthaitheoirí ábhair as ardáin gan na rialacha a athrú, ach is gné dhúchasach d’ardán Web3 í an fhriotaíocht chinsireachta. + +#### Eagraíochtaí uathrialaitheacha díláraithe (DAO) {#daos} + +Chomh maith le bheith i d'úinéir ar do shonraí in Web3, is féidir leat comhúinéireacht a bheith agat ar an ardán, trí úsáid a bhaint as comharthaí a fheidhmíonn mar scaireanna i gcuideachta. Ligeann DAOnna duit úinéireacht dhíláraithe ardáin a chomhordú agus cinntí a dhéanamh faoina thodhchaí. + +Sainmhínítear DAOnna go teicniúil mar [chonarthaí cliste](/glossary/#smart-contract) a dhéanann cinnteoireacht dhíláraithe a uathoibriú thar líon acmhainní (comharthaí). Vótálann úsáideoirí le comharthaí ar an gcaoi a gcaitear acmhainní, agus feidhmíonn an cód toradh na vótála go huathoibríoch. + +Mar sin féin, sainíonn daoine go leor pobail Web3 mar DAOnna. Tá leibhéil dhifriúla díláraithe agus uathoibrithe de réir cód ag na pobail seo go léir. Faoi láthair, táimid ag fiosrú cad is DAOnna ann agus conas a d’fhéadfaidís éabhlóid a dhéanamh amach anseo. + + +
              Foghlaim tuilleadh faoi DAOanna
              + + Tuilleadh faoi DAO + +
              + +### Céannacht {#identity} + +Go traidisiúnta, chruthaítí cuntas ar gach ardán a bhíodh in úsáid agat. Mar shampla, b’fhéidir go mbeadh cuntas Twitter, cuntas YouTube agus cuntas Reddit agat. Agus dá mbeadh fonn ort d'ainm taispeána nó do phictiúr próifíle a athrú? Bheadh ort tú é a dhéanamh thar gach cuntas. Is féidir leat síniú isteach sóisialta a úsáid i gcásanna áirithe, ach cruthaíonn sé seo fadhb aithnidiúil - an chinsireacht. I gcliceáil amháin, is féidir leis na hardáin seo tú a ghlasáil amach as do shaol ar líne ar fad. Níos measa fós, éilíonn go leor ardán go bhfuil tú ag cur muinín iontu le faisnéis inaitheanta phearsanta chun cuntas a chruthú. + +Réitíonn Web3 na fadhbanna seo trí ligean duit d’aitheantas digiteach a rialú le seoladh Ethereum agus le próifíl [Ethereum Name Service (ENS)](/glossary/#ens). Trí úsáid a bhaint as seoladh Ethereum soláthraítear logáil isteach amháin thar ardáin atá slán, cinsireacht-díonach agus gan ainm. + +### Íocaíochtaí dúchasacha {#native-payments} + +Braitheann bonneagar íocaíochta Web2 ar bhainc agus ar phróiseálaithe íocaíochta, gan daoine gan cuntais bhainc nó daoine a tharlaíonn dóibh a bheith ina gcónaí laistigh de theorainneacha na tíre míchirte a áireamh. Úsáideann Web3 comharthaí mar [ETH](/glossary/#ether) chun airgead a sheoladh go díreach sa bhrabhsálaí agus níl aon tríú páirtí iontaofa ag teastáil uaidh. + + + Tuilleadh faoi ETH + + +## Teorainneacha Web3 {#web3-limitations} + +In ainneoin na mbuntáistí iomadúla a bhaineann le Web3 mar atá sé faoi láthair, tá go leor teorainneacha ann fós nach mór don éiceachóras aghaidh a thabhairt orthu le go mbeidh rath air. + +### Inrochtaineacht {#accessibility} + +Tá gnéithe tábhachtacha Web3, cosúil le síniú isteach le hEthereum, ar fáil cheana féin d'aon duine le húsáid ar chostas nialasach. Ach, tá costas coibhneasta na n-idirbheart fós coscach ar lear mór daoine. Is lú an seans go n-úsáidfear Web3 i náisiúin i mbéal forbartha nach bhfuil chomh saibhir sin de bharr táillí arda idirbhirt. Ar Ethereum, tá na dúshláin seo á réiteach tríd an [an treochlár](/roadmap/) agus [réiteach scálaithe chiseal 2](/glossary/#layer-2). Tá an teicneolaíocht réidh, ach tá leibhéil uchtaithe níos airde ag teastáil uainn ar chiseal 2 le go mbeidh Web3 inrochtana do chách. + +### Taithí úsáideora {#user-experience} + +Tá an bac teicniúil ar iontráil ó úsáid Web3 ró-ard faoi láthair. Ní mór d'úsáideoirí imní slándála a thuiscint, doiciméadú teicniúil casta a thuiscint, agus comhéadain úsáideora neamhthuigthe a nascleanúint. Tá [soláthróirí sparáin](/wallets/find-wallet/), go háirithe, ag obair chun é sin a réiteach, ach tá gá le tuilleadh dul chun cinn sula nglactar le Web3 en masse. + +### Oideachas {#education} + +Tugann Web3 isteach paraidímí nua lena n-éilítear foghlaim samhlacha meabhracha éagsúla ná na cinn a úsáidtear i Web2.0. Tharla feachtas oideachais den chineál céanna agus Web1.0 ag éirí níos coitianta ag deireadh na 1990í; d’úsáid lucht molta an ghréasáin dhomhanda raon de theicnící oideachais chun oideachas a chur ar an bpobal ó mheafair shimplí (an mórbhealach faisnéise, brabhsálaithe, scimeáil ar an ngréasán) go [craoltaí teilifíse](https://www.youtube.com/watch?v=SzQLI7BxfYI). Níl Web3 deacair, ach tá sé difriúil. Tá tionscnaimh oideachais a chuireann úsáideoirí Web2 ar an eolas faoi na paraidímí Web3 seo ríthábhachtach dá rath. + +Cuireann Ethereum.org le hoideachas Web3 trínár [gClár Aistriúcháin](/contributing/translation-program/), a bhfuil sé mar aidhm aige ábhar tábhachtach Ethereum a aistriú go dtí an oiread teangacha agus is féidir. + +### Bonneagar láraithe {#centralized-infrastructure} + +Tá éiceachóras Web3 óg agus ag forbairt go tapa. Mar thoradh air sin, braitheann sé go príomha ar bhonneagar láraithe (GitHub, Twitter, Discord, srl.). Tá go leor cuideachtaí Web3 ag déanamh deifir chun na bearnaí seo a líonadh, ach tógann sé am chun bonneagar iontaofa ardchaighdeáin a thógáil. + +## Todhchaí dhíláraithe {#decentralized-future} + +Is éiceachóras óg é Web3 atá ag forbairt. Gavin Wood a chum an téarma in 2014, ach is le déanaí a tháinig go leor de na smaointe sin i gcrích. Le bliain anuas amháin, tá méadú suntasach tagtha ar an spéis i gcriptea-airgeadraí, feabhsuithe ar réitigh scálaithe chiseal 2, turgnaimh ollmhóra le cineálacha nua rialachais, agus réabhlóidí sa chéannacht dhigiteach. + +Nílimid ach ag an tús le Gréasán níos fearr a chruthú le Web3, ach de réir mar a leanaimid ag feabhsú an bhonneagair a thacóidh leis, tá cuma gheal ar thodhchaí an Ghréasáin. + +## Conas is féidir liom a bheith páirteach {#get-involved} + +- [Faigh sparán](/wallets/) +- [Aimsigh pobal](/community/) +- [Foghlaim faoi fheidhmchláir Web3](/dapps/) +- [Glac páirt in DAO](/dao/) +- [Tógáil ar Web3](/developers/) + +## Tuilleadh léitheoireachta {#further-reading} + +Níl Web3 sainmhínithe go docht. Tá dearcthaí éagsúla ag rannpháirtithe pobail éagsúla air. Seo cúpla ceann acu: + +- [Cad é Web3? Idirlíon Díláraithe na Todhchaí arna Mhíniú](https://www.freecodecamp.org/news/what-is-web3/) – _Nader Dabit_ +- [Tuiscint ar Ghréasán 3](https://medium.com/l4-media/making-sense-of-web-3-c1a9e74dcae) – _ Josh Stark_ +- [Why Web3 Matters](https://future.a16z.com/why-web3-matters/) — _Chris Dixon_ +- [Why decentralization Matters](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) - _Chris Dixon_ +- [Tírdhreach Web3](https://a16z.com/wp-content/uploads/2021/10/The-web3-Readlng-List.pdf) – *a16z* +- [Díospóireacht Web3](https://www.notboring.co/p/the-web3-debate?s=r) – _Packy McCormick_ + + diff --git a/public/content/translations/ga/zero-knowledge-proofs/index.md b/public/content/translations/ga/zero-knowledge-proofs/index.md new file mode 100644 index 00000000000..a864667bccc --- /dev/null +++ b/public/content/translations/ga/zero-knowledge-proofs/index.md @@ -0,0 +1,214 @@ +--- +title: Cruthúnais nialais-eolais +description: Réamhrá neamhtheicniúil ar chruthúnas nialas-eolais do thosaitheoirí. +lang: ga +--- + +# Cad iad cruthúnais nial-eolais? {#what-are-zk-proofs} + +Is bealach é cruthúnas nial-eolais chun bailíocht ráitis a chruthú gan an ráiteas féin a nochtadh. Is é an promhadóir (nó ‘prover’) an páirtí atá ag iarraidh éileamh a chruthú, agus is é an ‘fíoraitheoir’ atá freagrach as an éileamh a bhailíochtú. + +Léiríodh cruthúnais nial-eolais ar dtús i bpáipéar 1985, “[Castacht an eolais i gcórais cruthúnais idirghníomhacha](http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf)” ina sholáthraítear sainmhíniú ar cruthúnais nial-eolais a úsáidtear go forleathan inniu: + +> Is modh é prótacal nial-eolais trína bhféadfaidh páirtí amháin (an promhadóir) **a chruthú** do pháirtí eile (an fíoraitheoir) **go bhfuil rud éigin fíor, gan aon fhaisnéis a nochtadh** seachas go bhfuil an ráiteas sonrach seo fíor. + +Tá feabhas tagtha ar na cruthúnais nial-eolais thar na blianta agus tá siad á n-úsáid anois i roinnt feidhmeanna fíordhomhain. + + + +## Cén fáth a bhfuil cruthúnais nial-eolais de dhíth orainn? {#why-zero-knowledge-proofs-are-important} + +Bhí cruthúnais nial-eolais chun cinn sa chripteagrafaíocht fheidhmeach, mar gheall go bhfeabhsódh siad slándáil faisnéise do dhaoine aonair. Smaoinigh ar conas a d’fhéadfá éileamh a chruthú (m.sh., “Is saoránach de thír X mé”) chuig páirtí eile (m.sh., soláthraí seirbhíse). Bheadh ​​ort “fianaise” a sholáthar chun d’éileamh a thacú, amhail pas náisiúnta nó ceadúnas tiomána. + +Ach tá fadhbanna leis an gcur chuige seo, go háirithe an easpa phríobháideachta. Stóráiltear Faisnéis Inaitheanta Pearsanta (PII) a roinntear le seirbhísí tríú páirtí i mbunachair sonraí lárnacha, atá i mbaol haiceála. Agus goid céannachta ag éirí ina ceist ríthábhachtach, tá cuid daoine ag éileamh modhanna cosanta príobháideachais chun faisnéis íogair a roinnt. + +Réitíonn cruthúnais nial-eolais an fhadhb seo trí **dheireadh a chur leis an ngá atá le faisnéis a nochtadh chun bailíocht éilimh a chruthú**. Úsáideann an prótacal nial-eolais an ráiteas (ar a dtugtar ‘finné’) mar ionchur chun cruthúnas gonta ar a bhailíocht a chruthú. Tugann an cruthúnas seo ráthaíochtaí láidre go bhfuil ráiteas fíor gan an fhaisnéis a úsáideadh chun é a chruthú a nochtadh. + +Ag dul ar ais chuig ár sampla níos luaithe, is é an t-aon fhianaise atá uait chun d’éileamh saoránachta a chruthú ná cruthúnas nial-eolais. Ní gá don fhíoraitheoir ach seiceáil an bhfuil airíonna áirithe an chruthúnais fíor chun a bheith cinnte go bhfuil an bunráiteas fíor freisin. + +## Cásanna úsáide le haghaidh cruthúnais nial-eolais {#use-cases-for-zero-knowledge-proofs} + +### Íocaíochtaí gan ainm {#anonymous-payments} + +Is minic a bhíonn íocaíochtaí le cárta creidmheasa le feiceáil ag an iomad páirtí, lena n-áirítear an soláthraí íocaíochtaí, bainc agus páirtithe leasmhara eile (m.sh., údaráis rialtais). Cé go bhfuil buntáistí ag faireachas airgeadais chun gníomhaíocht mhídhleathach a shainaithint, baineann sé an bonn de phríobháideachas na ngnáthshaoránach freisin. + +Bhí sé mar aidhm ag cripte-airgeadraí bealach a sholáthar d'úsáideoirí chun idirbhearta príobháideacha, piaraí le piaraí a dhéanamh. Ach tá formhór na n-idirbheart criptea-airgeadraí le feiceáil go hoscailte ar bhlocshlabhra poiblí. User identities are often pseudonymous and either wilfully linked to real-world identities (e.g. by including ETH addresses on Twitter or GitHub profiles) or can be associated with real-world identities using basic on and offchain data analysis. + +Tá “boinn phríobháideachais” ar leith ann atá deartha le haghaidh idirbhearta go hiomlán gan ainm. Trí bhlocshlabhraí atá dírithe ar phríobháideacht, mar shampla Zcash agus Monero, tugtar cosaint do shonraí idirbhirt, lena n-áirítear seoltaí seoltóra/glacadóir, cineál sócmhainne, cainníocht agus amlíne an idirbhirt. + +Tríd an teicneolaíocht nial-eolais a bhácáil isteach sa phrótacal, ceadaíonn líonraí [blocshlabhra](/glossary/#blockchain) atá dírithe ar phríobháideachas [nóid](/glossary/#node) chun idirbhearta a bhailíochtú gan gá rochtain a fháil ar shonraí idirbhirt. [EIP-7503](https://eips.ethereum.org/EIPS/eip-7503) is an example of a proposed design that will enable native private transfers of value on the Ethereum blockchain. Such proposals are, however, difficult to implement due to a mixture of security, regulatory, and UX concerns. + +**Tá cruthúnais nial-eolais á gcur i bhfeidhm freisin maidir le hidirbhearta ar bhlocshlabhraí poiblí a anaithnidiú**. Sampla is ea Tornado Cash, seirbhís dhíláraithe, neamhchoinneálach trína ligtear d’úsáideoirí idirbhearta príobháideacha a dhéanamh ar Ethereum. Úsáideann Tornado Cash cruthúnais nial-eolais chun sonraí idirbhirt a cheilt agus chun príobháideacht airgeadais a ráthú. Ar an drochuair, toisc gur uirlisí príobháideachais “diúltaithe” iad seo tá baint acu le gníomhaíocht aindleathach. Chun é seo a shárú, caithfidh príobháideacht a bheith ina réamhshocrú ar bhlocshlabhra poiblí ar deireadh. + +### Cosaint aitheantais {#identity-protection} + +Le córais reatha bhainistíochta céannachta cuirtear faisnéis phearsanta i mbaol. Is féidir le cruthúnais nial-eolais cabhrú le daoine aonair céannacht a bhailíochtú agus sonraí íogaire a chosaint. + +Tá cruthúnais nial-eolais an-úsáideach i gcomhthéacs [céannacht díláraithe](/decentralized-identity/). Tugann céannacht dhíláraithe (a dtugtar ‘féiniúlacht fhéincheannasach’ uirthi freisin) an cumas don duine rochtain ar aitheantóirí pearsanta a rialú. Is sampla maith é do shaoránacht a chruthú gan do chéannacht cánach nó do shonraí pas a nochtadh den chaoi a gcumasaíonn teicneolaíocht nial-eolais céannacht dhíláraithe. + +### Fíordheimhniú {#authentication} + +Ní mór do chéannacht agus do cheart chun rochtain a fháil ar na hardáin sin a chruthú chun seirbhísí ar líne a úsáid. Éilíonn sé seo go minic faisnéis phearsanta a sholáthar, amhail ainmneacha, seoltaí ríomhphoist, dátaí breithe, agus mar sin de. Seans go mbeidh ort pasfhocail fhada a chur de ghlanmheabhair nó go gcaillfidh tú rochtain. + +Is féidir le cruthúnais nial-eolais, áfach, fíordheimhniú a shimpliú d’ardáin agus d’úsáideoirí araon. Nuair a bheidh cruthúnas ZK ginte trí úsáid a bhaint as ionchuir phoiblí (m.sh., sonraí a fhianaíonn ballraíocht an úsáideora ar an ardán) agus ionchuir phríobháideacha (m.sh., sonraí an úsáideora), is féidir leis an úsáideoir é a chur i láthair go simplí chun a chéannacht a fhíordheimhniú nuair is gá dóibh rochtain a fháil ar an tseirbhís. Feabhsaíonn sé sin an taithí d’úsáideoirí agus saorann sé eagraíochtaí ón ngá atá le méideanna ollmhóra faisnéise úsáideoirí a stóráil. + +### Ríomh infhíoraithe {#verifiable-computation} + +Feidhm eile de theicneolaíocht nial-eolais is ea ríomh infhíoraithe chun dearaí blocshlabhra a fheabhsú. Ligeann ríomhaireacht infhíoraithe dúinn ríomh a sheachfhoinsiú chuig aonán eile agus torthaí infhíoraithe á gcoinneáil againn. Cuireann an t-eintiteas an toradh isteach mar aon le cruthúnas a fhíoraíonn gur cuireadh an clár i gcrích i gceart. + +Tá ríomh infhíoraithe **ríthábhachtach chun luasanna próiseála ar bhlocshlabhraí a fheabhsú** gan slándáil a laghdú. Chun é seo a thuiscint ní mór fios a bheith agat faoi na difríochtaí i réitigh mholta le haghaidh scálú Ethereum. + +[Onchain scaling solutions](/developers/docs/scaling/#onchain-scaling), such as sharding, require extensive modification of the blockchain’s base layer. Mar sin féin, tá an cur chuige seo an-chasta agus is féidir le hearráidí sa chur i bhfeidhm an bonn a bhaint de mhúnla slándála Ethereum. + +[Offchain scaling solutions](/developers/docs/scaling/#offchain-scaling) don’t require redesigning the core Ethereum protocol. Ina áit sin bíonn siad ag brath ar mhúnla ríomha seachfhoinsithe chun tréchur a fheabhsú ar bhunchiseal Ethereum. + +Seo mar a oibríonn sé sin go praiticiúil: + +- In ionad gach idirbheart a phróiseáil, díluchtaíonn Ethereum an forghníomhú go slabhra ar leith. + +- Tar éis idirbhearta a phróiseáil, cuireann an slabhra eile na torthaí ar ais le cur i bhfeidhm ar staid Ethereum. + +Is é an buntáiste atá leis seo ná nach gcaithfidh Ethereum aon fhorghníomhú a dhéanamh agus ní gá dó ach torthaí ó ríomh foinsithe allamuigh a chur i bhfeidhm ar a stát. This reduces network congestion and also improves transaction speeds (offchain protocols optimize for faster execution). + +The chain needs a way to validate offchain transactions without re-executing them, or else the value of offchain execution is lost. + +Seo an áit a dtagann ríomh infhíoraithe i bhfeidhm. When a node executes a transaction outside of Ethereum, it submits a zero-knowledge proof to prove the correctness of offchain execution. Cinntíonn an cruthúnas seo (ar a dtugtar [cruthúnas bailíochta](/glossary/#validity-proof)) go bhfuil idirbheart bailí, rud a ligeann d'Ethereum an toradh a chur i bhfeidhm ina stát - gan fanacht le haon duine a dhíospóid. + +[Zero-knowledge rollups](/developers/docs/scaling/zk-rollups) and [validiums](/developers/docs/scaling/validium/) are two offchain scaling solutions that use validity proofs to provide secure scalability. These protocols execute thousands of transactions offchain and submit proofs for verification on Ethereum. Is féidir na torthaí sin a chur i bhfeidhm láithreach tar éis an cruthúnas a fhíorú, rud a ligeann d'Ethereum níos mó idirbheart a phróiseáil gan ríomh a mhéadú ar an mbonnchiseal. + +### Reducing bribery and collusion in onchain voting {#secure-blockchain-voting} + +Tá go leor tréithe fabhracha ag scéimeanna vótála blocshlabhra: tá siad in-iniúchta go hiomlán, slán i gcoinne ionsaithe, frithsheasmhach do chinsireacht, agus saor ó shrianta geografacha. But even onchain voting schemes aren't immune to the problem of **collusion**. + +Agus é sainmhínithe mar “comhordú chun iomaíocht oscailte a theorannú trí mheabhlaireacht, calaois a dhéanamh agus daoine eile a chur amú,” d’fhéadfadh claonpháirteachas a bheith i bhfoirm gníomhaí mailíseach a imríonn tionchar ar vótáil trí bhreabanna a thairiscint. Mar shampla, seans go bhfaighidh Alice breab ó Bob chun vótáil ar son `rogha B` ar bhallóid fiú más fearr léi `rogha A`. + +Cuireann breabaireacht agus claonpháirteachas teorainn le héifeachtacht aon phróisis a úsáideann vótáil mar mheicníocht chomharthaíochta (go háirithe nuair is féidir le húsáideoirí a chruthú conas a vótáil siad). D’fhéadfaí go mbeadh iarmhairtí suntasacha ag baint leis sin, go háirithe i gcás ina bhfuil leithdháileadh na n-acmhainní ganna ag brath ar na vótaí. + +Mar shampla, braitheann [meicníochtaí cuardratacha cistiúcháin](https://www.radicalxchange.org/concepts/plural-funding/) ar thabhartais chun tosaíocht a thomhas do roghanna áirithe i measc tionscadal leasa phoiblí éagsúla. Áirítear gach deonachán mar "vóta" do thionscadal ar leith, agus is iad na tionscadail a fhaigheann níos mó vótaí a thugtar níos mó cistí dóibh ón linn meaitseála. + +Using onchain voting makes quadratic funding susceptible to collusion: blockchain transactions are public, so bribers can inspect a bribee’s onchain activity to see how they “voted”. Ar an mbealach seo cuirtear stop le maoiniú cuadratach a bheith ina mhodh éifeachtach chun cistí a leithdháileadh bunaithe ar roghanna comhiomlánaithe an phobail. + +Fortunately, newer solutions such as MACI (Minimum Anti-Collusion Infrastructure) are using zero-knowledge proofs to make onchain voting (eg., quadratic funding mechanisms) resistant to bribery and collusion. Is sraith de chonarthaí cliste agus scripteanna é MACI a ligeann do riarthóir lárnach (ar a dtugtar "comhordaitheoir") vótaí agus torthaí a chomhiomlánú _gan_ sonraí a nochtadh faoin gcaoi ar vótáil gach duine. Mar sin féin, is féidir a fhíorú go fóill gur comhairíodh na vótaí i gceart, nó a dheimhniú gur ghlac duine ar leith páirt sa bhabhta vótála. + +#### Conas a oibríonn MACI le cruthúnais nial-eolais? {#how-maci-works-with-zk-proofs} + +Ag an tús, úsáideann ​​an comhordaitheoir an conradh MACI ar Ethereum, agus ina dhiaidh sin is féidir le húsáideoirí clárú le haghaidh vótála (trína eochair phoiblí a chlárú sa chonradh cliste). Chaith úsáideoirí vótaí trí theachtaireachtaí criptithe lena n-eochair phoiblí a sheoladh chuig an gconradh cliste (ní mór vóta bailí a shíniú leis an eochair phoiblí is déanaí a bhaineann le céannacht an úsáideora, i measc critéar eile). Afterward, the coordinator processes all messages once the voting period ends, tallies the votes, and verifies the results onchain. + +In MACI, baintear úsáid as cruthúnais nial-eolais chun beachtas na ríomha a chinntiú trína dhéanamh dodhéanta don chomhordaitheoir vótaí agus torthaí scóir a phróiseáil go mícheart. Baintear é seo amach trína cheangal ar an gcomhordaitheoir cruthúnais ZK-SNARK a ghiniúint lena bhfíorófar a) gur próiseáladh gach teachtaireacht i gceart b) go gcomhfhreagraíonn an toradh deiridh do shuim na vótaí _bailí_ go léir. + +Mar sin, fiú gan miondealú ar na vótaí in aghaidh an úsáideora a roinnt (mar a bhíonn de ghnáth), ráthaíonn MACI sláine na dtorthaí a ríomhtar le linn an phróisis scóir. Tá an ghné seo úsáideach chun éifeachtacht na scéimeanna bunúsacha claonpháirteacha a laghdú. Is féidir linn an fhéidearthacht seo a iniúchadh trí úsáid a bhaint as an sampla roimhe seo de Bob ag breabadh ar Alice chun vótáil ar son rogha: + +- Cláraíonn Alice chun vótáil trína n-eochair phoiblí a sheoladh chuig conradh cliste. +- Aontaíonn Alice vótáil ar son `rogha B` mar mhalairt ar bhreab ó Bob. +- Vótáil Alice ar son `rogha B`. +- Seolann Alice go rúnda idirbheart criptithe chun an eochair phoiblí a bhaineann lena haitheantas a athrú. +- Seolann Alice teachtaireacht eile (criptithe) chuig an gconradh cliste ag vótáil do `rogha A` ag baint úsáide as an eochair phoiblí nua. +- Taispeánann Alice idirbheart do Bob a thaispeánann gur vótáil sí ar son `rogha B` (atá neamhbhailí toisc nach bhfuil baint ag an eochair phoiblí le céannacht Alice sa chóras a thuilleadh) +- Agus teachtaireachtaí á bpróiseáil aige, ní dhéanann an comhordaitheoir vóta Alice ar son `rogha B` agus ní chomhaireamh ach an vóta do `rogha A`. Hence, Bob's attempt to collude with Alice and manipulate the onchain vote fails. + +Éilíonn úsáid MACI _muinín_ a bheith agat sa chomhordaitheoir nach gcomhoibreoidh sé le daoine a thugann luachmhaireacht nó nach ndéanfaidh sé féin iarracht lucht vótála a bhréagnú. Is féidir leis an gcomhordaitheoir teachtaireachtaí úsáideora a dhíchriptiú (riachtanach chun an cruthúnas a chruthú), ionas gur féidir leo a fhíorú go cruinn conas a vótáil gach duine. + +But in cases where the coordinator remains honest, MACI represents a powerful tool for guaranteeing the sanctity of onchain voting. Míníonn sé seo an tóir atá air i measc feidhmchlár ar mhaoiniú cuadratach (m.sh., [clr.fund](https://clr.fund/#/about/maci)) a bhíonn ag brath go mór ar ionracas roghanna vótála gach duine. + +[Foghlaim tuilleadh faoi MACI](https://privacy-scaling-explorations.github.io/maci/). + +## Conas a oibríonn cruthúnais nial-eolais? {#how-do-zero-knowledge-proofs-work} + +Ligeann cruthúnas nialas-eolais duit fírinne ráitis a chruthú gan ábhar an ráitis a roinnt nó conas a fuair tú amach an fhírinne a nochtadh. Chun é seo a dhéanamh, bíonn prótacail nial-eolais ag brath ar algartaim a ghlacann roinnt sonraí mar ionchur agus a chuireann ‘fíor’ nó ‘bréagach’ ar ais mar aschur. + +Caithfidh prótacal nial-eolais na critéir seo a leanas a shásamh: + +1. ** Iomláine**: Má tá an t-ionchur bailí, filleann an prótacal nial-eolais 'fíor' i gcónaí. Mar sin, má tá an bunráiteas fíor, agus má ghníomhaíonn an cruthaitheoir agus an fíoraitheoir go hionraic, is féidir glacadh leis an gcruthúnas. + +2. **Iontaofacht**: Má tá an t-ionchur neamhbhailí, tá sé dodhéanta go teoiriciúil bob a chur ar an bprótacal nial-eolais chun ‘fíor’ a thabhairt ar ais. Mar sin, ní féidir le promhadóir bréaga a mhealladh ar fhíoraitheoir macánta le go gcreidfidh sé uaidh go bhfuil ráiteas neamhbhailí bailí (ach amháin le dornán bheag dóchúlachta). + +3. **Nial-eolas**: Ní fhoghlaimíonn an fíoraitheoir rud ar bith faoi ráiteas a théann thar a bhailíocht nó a bhréagacht (níl "eolas ar bith acu" ar an ráiteas). Cuireann an ceanglas seo cosc ​​freisin ar an bhfíoraitheoir an t-ionchur bunaidh (ábhar an ráitis) a dhíorthú ón gcruthúnas. + +I bhfoirm bhunúsach, tá trí ghné i gcruthúnas nial-eolais: **finné**, **dúshlán** agus **freagra**. + +- **Finné**: Le cruthúnas nial-eolais, tá an cruthaitheoir ag iarraidh eolas ar roinnt faisnéise folaithe a chruthú. Is í an fhaisnéis rúnda “finné” an chruthúnais, agus bunaíonn eolas toimhdithe an fhíoraí ar an bhfinné sraith ceisteanna nach féidir a fhreagairt ach ag páirtí a bhfuil eolas aige ar an bhfaisnéis. Mar sin, cuireann an promhadóir tús leis an bpróiseas cruthaithe trí cheist a roghnú go randamach, an freagra a ríomh, agus é a sheoladh chuig an bhfíoraitheoir. + +- **Dúshlán**: Roghnaíonn an fíoraitheoir ceist eile go randamach as an tacar agus iarrann sé ar an bpromhadóir í a fhreagairt. + +- **Freagra**: Glacann an promhadóir leis an gceist, ríomhann sé an freagra agus cuireann sé ar ais chuig an bhfíoraitheoir í. Ligeann freagra an phomhadóir don fhíoraitheoir seiceáil an bhfuil rochtain ag an gcéad duine ar an bhfinné i ndáiríre. Chun a chinntiú nach bhfuil an promhadóir ag buille faoi thuairim i nganfhios agus ag fáil na bhfreagraí cearta de sheans, roghnaíonn an fíoraitheoir tuilleadh ceisteanna le cur air. Tríd an idirghníomhaíocht seo a athdhéanamh arís agus arís eile, laghdaítear go mór an fhéidearthacht go bhfuil an t-eolas cruthaithe ag an bhfinné sásta go dtí go mbíonn an fíoraitheoir sásta. + +Déanann an méid thuas cur síos ar struchtúr ‘cruthúnas eolais nialais idirghníomhach’. Bhain luathphrótacail nial-eolais úsáid as cruthú idirghníomhach, nuair a theastaigh cumarsáid anonn is anall idir na cruthaitheoirí agus na fíoraitheoirí chun bailíocht ráitis a fhíorú. + +Sampla maith a léiríonn an chaoi a n-oibríonn cruthúnais idirghníomhacha ná [scéal uaimh Ali Baba](https://en.wikipedia.org/wiki/Zero-knowledge_proof#The_Ali_Baba_cave), saothar cáiliúil de chuid Jean-Jacques Quisqater. Sa scéal, tá Peigí (an promhadóir) ag iarraidh a chruthú do Victor (an fíoraitheoir) go bhfuil an frása rúnda ar eolas aici chun doras draíochta a oscailt gan an frása a nochtadh. + +### Cruthuithe neamh-idirghníomhacha nial-eolais {#non-interactive-zero-knowledge-proofs} + +Cé go raibh an cruthú réabhlóideach, bhí an promhú idirghníomhach teoranta ó thaobh úsáidí de toisc go raibh gá leis an dá pháirtí a bheith ar fáil agus idirghníomhú arís agus arís eile. Fiú dá mbeadh fíoraitheoir cinnte faoi ionracas an phromhadóra, ní bheadh ​​an cruthúnas ar fáil le haghaidh fíorú neamhspleách (chun cruthúnais nua a ríomh bhí gá le sraith nua teachtaireachtaí idir an promhadóir agus an fíoraitheoir). + +Chun an fhadhb seo a réiteach, mhol Manuel Blum, Paul Feldman, agus Silvio Micali na chéad [cruthúnais nial-eolais neamh-idirghníomhach](https://dl.acm.org/doi/10.1145/62212.62222) áit a bhfuil eochair roinnte ag an seanfhocal agus ag an bhfíoraitheoir. Ligeann sé seo don chruthaitheoir a gcuid eolais ar roinnt faisnéise a léiriú (i.e. finné) gan an fhaisnéis féin a sholáthar. + +Murab ionann agus cruthúnais idirghníomhacha, níor theastaigh ach babhta cumarsáide amháin idir rannpháirtithe (promhadóir agus fíoraitheoir) le cruthúnais neamh-idirghníomhacha. Cuireann an promhadóir an fhaisnéis rúnda ar aghaidh chuig algartam speisialta chun cruthúnas nial-eolais a ríomh. Seoltar an cruthúnas seo chuig an bhfíoraitheoir, a sheiceálann go bhfuil an fhaisnéis rúnda ar eolas ag an bpromhadóir trí úsáid a bhaint as algartam eile. + +Laghdaíonn cruthú neamh-idirghníomhach cumarsáid idir promhadóir agus fíoraitheoir, rud a fhágann go bhfuil cruthúnais ZK níos éifeachtaí. Ina theannta sin, a luaithe a ghintear cruthúnas, tá sé ar fáil d'aon duine eile (le rochtain ar an eochair roinnte agus algartam fíorúcháin) lena fhíorú. + +Bhí cruthúnais neamh-idirghníomhacha ina ndul chun cinn don teicneolaíocht nial-eolais agus spreag siad forbairt na gcóras cruthaithe a úsáidtear inniu. Déanaimid plé ar na cineálacha cruthúnais seo thíos: + +### Cineálacha cruthúnais nial-eolais {#types-of-zero-knowledge-proofs} + +#### ZK-SNARcanna {#zk-snarks} + +Is acrainm é ZK-SNARK le haghaidh **Argóint Faisnéise Gonta Neamh-Idirghníomhaí**. Tá na cáilíochtaí seo a leanas ag prótacal ZK-SNARK: + +- **Nial-eolais**: Is féidir le fíoraitheoir sláine ráitis a bhailíochtú gan aon rud eile a bheith ar an eolas faoin ráiteas. Is é an t-aon eolas atá ag an bhfíoraitheoir ar an ráiteas ná an bhfuil sé fíor nó bréagach. + +- **Gonta**: Tá an cruthúnas nial-eolais níos lú ná an finné agus is féidir é a fhíorú go tapa. + +- **Neamh-idirghníomhach**: Tá an cruthúnas ‘neamh-idirghníomhach’ toisc nach n-idirghníomhaíonn an promhadóir agus an fíoraitheoir ach aon uair amháin, murab ionann agus cruthúnais idirghníomhacha a éilíonn go leor babhtaí cumarsáide. + +- **Argóint**: Sásaíonn an cruthúnas an ceanglas maidir le hiontaofacht, agus mar sin ní dócha go ndéanfar caimiléireacht. + +- **(As) Eolas**: Ní féidir an cruthúnas nial-eolais a chruthú gan rochtain ar an bhfaisnéis rúnda (finné). Is deacair, mura dodhéanta, do chruthaí nach bhfuil an finné aige cruthúnas bailí nial-eolais a ríomh. + +Tagraíonn an ‘eochair chomhroinnte’ a luadh níos luaithe do pharaiméadair phoiblí a chomhaontaíonn an promhadóir agus an fíoraitheoir a úsáid chun cruthúnais a ghiniúint agus a fhíorú. Is oibríocht íogair é na paraiméadair phoiblí a ghiniúint (ar a dtugtar an Teaghrán Coiteann Tagartha (CRS) le chéile) mar gheall ar a thábhachtaí atá sé i slándáil an phrótacail. Má théann an eantrópachta (randamacht) a úsáidtear chun an CRS a ghiniúint isteach i lámha cruthaitheoir mímhacánta, féadfaidh siad cruthúnais bhréagacha a ríomh. + +Is bealach é [Ríomh Ilpháirtí (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation) chun na rioscaí a laghdú a bhaineann le paraiméadair phoiblí a ghiniúint. Glacann páirtithe iomadúla páirt i [searmanas socraithe iontaofa](https://zkproof.org/2021/06/30/setup-ceremonies/amp/), áit a gcuireann gach duine roinnt luachanna randamacha leis chun an CRS a ghiniúint. Chomh fada agus a scriosann páirtí macánta amháin a gcuid den eantrópacht, coimeádann prótacal ZK-SNARK iontaofacht ríomhaireachtúil. + +Éilíonn socruithe iontaofa ar úsáideoirí muinín a bheith acu as na rannpháirtithe i nginiúint pharaiméadair. Mar sin féin, chuir forbairt ZK-STARKs ar chumas prótacail a chruthú a oibríonn le socrú neamhiontaofa. + +#### ZK-STARKanna {#zk-starks} + +Is acrainm é ZK-STARK le haghaidh **Argóint Trédhearcach Eolais Inscálaithe Nial-Eolais**. Tá ZK-STARKs cosúil le ZK-SNARKs, ach amháin go bhfuil siad: + +- **Inscálaithe**: Tá ZK-STARK níos tapúla ná ZK-SNARK maidir le cruthúnais a ghiniúint agus a fhíorú nuair is mó méid an fhinné. Le cruthúnais STARK, ní mhéadaíonn amanna cruthaitheachta agus fíoraithe ach beagán de réir mar a fhásann an finné (méadaíonn amanna cruthaitheoir agus fíoraitheora SNARK go líneach de réir mhéid an fhinné). + +- **Trédhearcach**: Braitheann ZK-STARK ar randamacht infhíoraithe go poiblí chun paraiméadair phoiblí a ghiniúint chun cruthú agus fíorú a dhéanamh in ionad socrú iontaofa. Mar sin, tá siad níos trédhearcaí i gcomparáid le ZK-SNARKs. + +Táirgeann ZK-STARKanna cruthúnais níos mó ná ZK-SNARKanna, rud a chiallaíonn go mbíonn forchostais fíoraithe níos airde acu de ghnáth. Mar sin féin, tá cásanna ann (cosúil le tacair shonraí móra a chruthú) ina bhféadfadh ZK-STARKs a bheith níos cost-éifeachtaí ná ZK-SNARKs. + +## Míbhuntáistí a bhaineann le cruthúnais nial-eolais a úsáid {#drawbacks-of-using-zero-knowledge-proofs} + +### Costais crua-earraí {#hardware-costs} + +Is éard atá i gceist le cruthúnais náid-eolais ná ríomhanna an-chasta a dhéantar ar mheaisíní speisialaithe. Toisc go bhfuil na meaisíní seo costasach, is minic nach mbíonn gnáthdhaoine in ann iad a úsáid. Ina theannta sin, ní mór d’fheidhmchláir atá ag iarraidh teicneolaíocht nial-eolais a úsáid costais chrua-earraí a chur san áireamh – rud a d’fhéadfadh costais a mhéadú d’úsáideoirí deiridh. + +### Costais fíoraithe cruthúnais {#proof-verification-costs} + +Teastaíonn ríomh casta freisin chun cruthúnais a fhíorú agus méadaítear na costais a bhaineann le teicneolaíocht nial-eolais a chur i bhfeidhm i bhfeidhmchláir. Tá an costas seo ábhartha go háirithe i gcomhthéacs ríomh a chruthú. Mar shampla, íocann ZK-rollups ~ 500,000 gáis chun cruthúnas ZK-SNARK amháin a fhíorú ar Ethereum, agus éilíonn ZK-STARK táillí níos airde fós. + +### Toimhdí muiníne {#trust-assumptions} + +In ZK-SNARK, gintear an Teaghrán Tagartha Coiteann (paraiméadair phoiblí) uair amháin agus tá sé ar fáil lena athúsáid do pháirtithe ar mian leo páirt a ghlacadh sa phrótacal nial-eolais. Cruthaítear paraiméadair phoiblí trí shearmanas socraithe iontaofa, áit a nglactar leis go bhfuil na rannpháirtithe macánta. + +Ach i ndáiríre níl aon bhealach ag úsáideoirí macántacht na rannpháirtithe a mheas agus ní mór d'úsáideoirí focail na forbróirí chreidiúint. Tá ZK-STARKanna saor ó bhoinn tuisceana ós rud é go bhfuil an randamacht a úsáidtear chun an tsreang a ghiniúint infhíoraithe go poiblí. Idir an dá linn, tá taighdeoirí ag obair ar shocruithe neamhiontaofa do ZK-SNARKanna chun slándáil na meicníochtaí cruthaithe a mhéadú. + +### Bagairtí ríomhaireachta candamaí {#quantum-computing-threats} + +Úsáideann ZK-SNARK cripteagrafaíocht cuar éilipseach le haghaidh criptithe. Cé go nglactar leis go bhfuil fadhb logartamach scoite an chuair éilipigh do-rianta faoi láthair, d’fhéadfadh forbairt ríomhairí candamacha an tsamhail slándála seo a bhriseadh amach anseo. + +Meastar go bhfuil ZK-STARK díolmhaithe ó bhagairt na ríomhaireachta chandamach, toisc nach mbraitheann sé ach ar fheidhmeanna hash atá in aghaidh imbhuailte ar mhaithe lena shlándáil. Murab ionann agus eochairphéireálacha poiblí-príobháideacha a úsáidtear i gcripteagrafaíocht chuar éilipseach, tá sé níos deacra d'algartaim ríomhaireachta candamaí briseadh a dhéanamh ar haiseáil atá in aghaidh imbhuailte. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Forbhreathnú ar chásanna úsáide le haghaidh cruthúnais nial-eolais](https://pse.dev/projects) — _Foireann Taiscéalaíochta Príobháideachais agus Scálaithe_ +- [SNARKanna vs. STARKanna vs. SNARKanna athbhreacacha](https://www.alchemy.com/overviews/snarks-vs-starks) — _Forbhreathnuithe Alchemy_ +- [ Cruthúnas Nial-Eolais: Príobháideacht ar Bhlocshlabhra a Fheabhsú](https://www.altoros.com/blog/zero-knowledge-proof-improving-privacy-for-a-blockchain/) — _Dmitry Lavrenov_ +- [zk-SNARKs - Sampla Réalaíoch Nial-Eolais agus Tumadóireacht Dhomhan](https://medium.com/coinmonks/zk-snarks-a-realistic-zero-knowledge-example-and-deep-dive-c5e6eaa7131c) — _Adam Luciano_ +- [ZK-STARKanna — Cruthaigh Muinín Infhíoraithe, fiú i gcoinne Ríomhaireachtaí Cúantamacha](https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d) — _Adam Luciano_ +- [ Tuairim gharbh ar conas is féidir zk-SNARKanna](https://vitalik.eth.limo/general/2021/01/26/snarks.html) — _Vitalik Buterin_ +- [Cén fáth a n-athrófar céannacht féincheannasach le Cruthúnais Nial-Eolais (ZKPanna)](https://frankiefab.hashnode.dev/why-zero-knowledge-proofs-zkps-is-a-game-changer-for-self-sovereign-identity) — _Franklin Ohaegbulam_ +- [EIP-7503 Explained: Enabling Private Transfers On Ethereum With ZK Proofs](https://research.2077.xyz/eip-7503-zero-knowledge-wormholes-for-private-ethereum-transactions#introduction) — _Emmanuel Awosika_ diff --git a/public/content/translations/hi/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/hi/developers/docs/nodes-and-clients/archive-nodes/index.md index c7cff829817..13a45e46f4b 100644 --- a/public/content/translations/hi/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/hi/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ sidebarDepth: 2 क्लाइंट के प्रलेखन में किसी दिए गए मोड के लिए हार्डवेयर आवश्यकताओं को हमेशा सत्यापित करना सुनिश्चित करें। आर्काइव नोड्स के लिए सबसे बड़ी आवश्यकता डिस्क स्थान है। क्लाइंट के आधार पर, यह 3TB से 12TB तक भिन्न होता है। यहां तक कि अगर HDD को बड़ी मात्रा में डेटा के लिए बेहतर समाधान माना जा सकता है, तो इसे सिंक करने और श्रृंखला के प्रमुख को लगातार अपडेट करने के लिए SSD ड्राइव की आवश्यकता होगी। [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) ड्राइव काफी अच्छे हैं लेकिन यह एक विश्वसनीय गुणवत्ता होनी चाहिए, कम से कम [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences)। डिस्क को डेस्कटॉप कंप्यूटर या पर्याप्त स्लॉट वाले सर्वर में फिट किया जा सकता है। ऐसे समर्पित उपकरण उच्च अपटाइम नोड चलाने के लिए आदर्श हैं। इसे लैपटॉप पर चलाना पूरी तरह से संभव है लेकिन पोर्टेबिलिटी के लिए अतिरिक्त लागत आएगी। -सभी डेटा को एक वॉल्यूम में फिट करने की आवश्यकता है, इसलिए डिस्क को जोड़ना होगा, उदाहरण के लिए [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) या [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html) के साथ। यह [ZFS](https://en.wikipedia.org/wiki/ZFS) का उपयोग करने पर विचार करने के लायक भी हो सकता है क्योंकि यह "कॉपी-ऑन-राइट" का सपोर्ट करता है जो सुनिश्चित करता है कि डेटा बिना किसी निम्न स्तर की त्रुटियों के डिस्क पर सही ढंग से लिखा गया है। +सभी डेटा को एक वॉल्यूम में फिट करने की आवश्यकता है, इसलिए डिस्क को जोड़ना होगा, उदाहरण के लिए [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) या LVM के साथ। यह [ZFS](https://en.wikipedia.org/wiki/ZFS) का उपयोग करने पर विचार करने के लायक भी हो सकता है क्योंकि यह "कॉपी-ऑन-राइट" का सपोर्ट करता है जो सुनिश्चित करता है कि डेटा बिना किसी निम्न स्तर की त्रुटियों के डिस्क पर सही ढंग से लिखा गया है। अचानक डेटाबेस खराब होने को रोकने में अधिक स्थिरता और सुरक्षा के लिए, विशेष रूप से एक पेशेवर सेटअप में, [ECC मेमोरी](https://en.wikipedia.org/wiki/ECC_memory) का उपयोग करने पर विचार करें यदि आपका सिस्टम इसका समर्थन करता है। RAM का आकार आमतौर पर एक पूर्ण नोड के समान होने की सलाह दी जाती है, लेकिन अधिक RAM सिंक्रनाइज़ेशन को गति देने में मदद कर सकता है। diff --git a/public/content/translations/hi/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/hi/developers/docs/smart-contracts/formal-verification/index.md index 02ec5291ae0..c4062fff654 100644 --- a/public/content/translations/hi/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/hi/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ lang: hi ### होरे-शैली के गुण {#hoare-style-properties} -[होरे लॉजिक](https://en.wikipedia.org/wiki/Hoare_logic) स्मार्ट अनुबंधों सहित कार्यक्रमों की शुद्धता के बारे में तर्क के लिए औपचारिक नियमों का एक सेट प्रदान करता है। एक होरे-शैली की विशेषता को होरे ट्रिपल {_P_}_c_{_Q_} द्वारा दर्शाया जाता है, जहां _c_ एक प्रोग्राम है और _P_ और _Q_ _c_ (यानी, कार्यक्रम) की स्थिति पर विधेय हैं, औपचारिक रूप से क्रमशः _प्रीकंडीशंस_ और _पोस्टकंडीशन_ के रूप में वर्णित हैं। +[होरे लॉजिक](https://en.wikipedia.org/wiki/Hoare_logic) स्मार्ट अनुबंधों सहित कार्यक्रमों की शुद्धता के बारे में तर्क के लिए औपचारिक नियमों का एक सेट प्रदान करता है। एक होरे-शैली की विशेषता को होरे ट्रिपल `{P}c{Q}` द्वारा दर्शाया जाता है, जहां `c` एक प्रोग्राम है और `P` और `Q` `c` (यानी, कार्यक्रम) की स्थिति पर विधेय हैं, औपचारिक रूप से क्रमशः _प्रीकंडीशंस_ और _पोस्टकंडीशन_ के रूप में वर्णित हैं। एक पूर्व शर्त एक विधेय है जो किसी फ़ंक्शन के सही निष्पादन के लिए आवश्यक शर्तों का वर्णन करता है; अनुबंध में कॉल करने वाले उपयोगकर्ताओं को इस आवश्यकता को पूरा करना होगा। एक पोस्टकंडीशन एक विधेय है जो उस स्थिति का वर्णन करता है जिससे एक फ़ंक्शन लागू होता है अगर सही ढंग से लागू किया जाता है; उपयोगकर्ता फ़ंक्शन में कॉल करने के बाद इस स्थिति के सत्य होने की उम्मीद कर सकते हैं। होरे लॉजिक में एक _इनवेरिएंट_ एक विधेय है जिसे किसी फ़ंक्शन के निष्पादन द्वारा संरक्षित किया जाता है (यानी, यह नहीं बदलता है)। diff --git a/public/content/translations/hi/developers/docs/smart-contracts/security/index.md b/public/content/translations/hi/developers/docs/smart-contracts/security/index.md index adf59f58602..8a8f20ef8ae 100644 --- a/public/content/translations/hi/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/hi/developers/docs/smart-contracts/security/index.md @@ -115,7 +115,7 @@ contract VendingMachine { - स्मार्ट अनुबंध के परीक्षण, संकलन, परिनियोजन के लिए एक [विकास परिवेश](/developers/docs/frameworks/) का उपयोग करें -- अपने कोड को [Cyfrin Aderyn](https://github.com/Cyfrin/aderyn), Mythril और Slither जैसे बुनियादी कोड विश्लेषण उपकरणों से गुजारें। आदर्श रूप से, आपको यह हर पुल अनुरोध को मर्ज करने से पहले करना चाहिए और आउटपुट में अंतरों की तुलना करनी चाहिए +- अपने कोड को [Cyfrin Aaderyn](https://github.com/Cyfrin/aderyn), Mythril और Slither जैसे बुनियादी कोड विश्लेषण उपकरणों से गुजारें। आदर्श रूप से, आपको यह हर पुल अनुरोध को मर्ज करने से पहले करना चाहिए और आउटपुट में अंतरों की तुलना करनी चाहिए - सुनिश्चित करें कि आपका कोड बिना किसी त्रुटि के संकलित होता है, और Solidity कंपाइलर कोई चेतावनी नहीं देता diff --git a/public/content/translations/hi/roadmap/merge/index.md b/public/content/translations/hi/roadmap/merge/index.md index 13ee588afd1..0bada75b184 100644 --- a/public/content/translations/hi/roadmap/merge/index.md +++ b/public/content/translations/hi/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="डिसेंट्रलाइज़ एप्लिकेशन (dapp) contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -मर्ज, कंसेंसस में बदलाव के साथ आया, जिसमें निम्न से संबंधित परिवर्तन भी शामिल हैं:< +मर्ज, कंसेंसस में बदलाव के साथ आया, जिसमें निम्न से संबंधित परिवर्तन भी शामिल हैं:
              • संरचना ब्लॉक करना
              • diff --git a/public/content/translations/hu/contributing/translation-program/translators-guide/index.md b/public/content/translations/hu/contributing/translation-program/translators-guide/index.md index 6682ee378d9..f871cf1f7de 100644 --- a/public/content/translations/hu/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/hu/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ A hivatkozásokat másolja át egyenesen a forrásból, kattintson rájuk vagy h ![Example of link.png](./example-of-link.png) -A hivatkozások tagekkel formázva is megjelennek a forrásszövegben (vagyis <0> ). Ha a tagek fölé mozgatja a kurzort, akkor megnézheti a tartalmát - ezek sokszor hivatkozásokat tartalmaznak. +A hivatkozások tagekkel formázva is megjelennek a forrásszövegben (vagyis \<0> \). Ha a tagek fölé mozgatja a kurzort, akkor megnézheti a tartalmát - ezek sokszor hivatkozásokat tartalmaznak. A hivatkozásokat mindig másolja át a forrásból, ne változtassa meg a sorrendjüket. @@ -154,7 +154,7 @@ nonce - _Nem fordítható szöveg_ A forrás tartalmaz rövidített tagokat is, melyek csak számként jelennek meg, a tartalmuk nem egyértelmű ránézésre. Ha a kurzort fölé mozgatjuk, akkor látszik, hogy mit tartalmaznak. -Az alábbi példában látszik, hogy a kurzort odamozgatva <0> azt mutatja, hogy `` és egy kódrészletet tartalmaz, így azt nem kell lefordítani. +Az alábbi példában látszik, hogy a kurzort odamozgatva \<0> azt mutatja, hogy `` és egy kódrészletet tartalmaz, így azt nem kell lefordítani. ![Example of ambiguous tags.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/hu/developers/docs/apis/json-rpc/index.md b/public/content/translations/hu/developers/docs/apis/json-rpc/index.md index 76bab0e39aa..e0da2db6df4 100644 --- a/public/content/translations/hu/developers/docs/apis/json-rpc/index.md +++ b/public/content/translations/hu/developers/docs/apis/json-rpc/index.md @@ -386,6 +386,8 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1} A kliens coinbase-címét adja vissza. +> **Megjegyzés:** Ez a metódus a **v1.14.0** óta elavult, és már nem támogatott. Ha megpróbálja használni ezt a metódust, a „Nem támogatott metódus” hibaüzenetet kapja. + **Paraméterek** Egyik sem @@ -1649,10 +1651,10 @@ geth --http --dev console 2>>geth.log Ez elindítja a HTTP RPC interfészt a `http://localhost:8545` kódon. -A [curl](https://curl.se) segítségével a Coinbase-címet és egyenleget lekérve ellenőrizhetjük, hogy az interfész fut-e. Vegye figyelembe, hogy e példában az adatok mások, mint az Ön lokális csomópontján. Ha ki szeretné próbálni ezeket a parancsokat, akkor a lekérdezés paramétereit a második curl kérésben cserélje le az első kérésre kapott eredményekre. +A coinbase címének lekérdezésével (az első cím megszerzésével a számlák tömbjéből) és a [curl](https://curl.se) használatával ellenőrizhetjük, hogy az interfész fut-e. Vegye figyelembe, hogy e példában az adatok mások, mint az Ön lokális csomópontján. Ha ki szeretné próbálni ezeket a parancsokat, akkor a lekérdezés paramétereit a második curl kérésben cserélje le az első kérésre kapott eredményekre. ```bash -curl --data '{"jsonrpc":"2.0","method":"eth_coinbase", "id":1}' -H "Content-Type: application/json" localhost:8545 +curl --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[]", "id":1}' -H "Content-Type: application/json" localhost:8545 {"id":1,"jsonrpc":"2.0","result":["0x9b1d35635cc34752ca54713bb99d38614f63c955"]} curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0x9b1d35635cc34752ca54713bb99d38614f63c955", "latest"], "id":2}' -H "Content-Type: application/json" localhost:8545 diff --git a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md index 77c227c7940..d8fadbe143f 100644 --- a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md +++ b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -74,7 +74,7 @@ Ha ezeket a műveleteket észlelik, a validátort súlyosan megbüntetik. Ez azt ## Inaktivitási elszivárgás {#inactivity-leak} -Ha a konszenzusréteg több mint négy korszakot tölt el véglegesítés nélkül, akkor egy „inaktivitási szivárgás” vészhelyzeti protokoll aktiválódik. Az inaktivitási elszivárgás célja, hogy megteremtse a lánc véglegessé válásához szükséges feltételeket. A véglegességhez a teljes feltett ether 2/3-os többsége szükséges ahhoz, hogy a forrás- és célellenőrzési pontok megegyezzenek. Ha a validátorok több mint 1/3-a offline állapotba kerül, vagy nem küld helyes tanúsításokat, akkor nem lehetséges, hogy a 2/3-os szupertöbbség véglegesítse az ellenőrzési pontokat. Az inaktivitási elszivárgás lehetővé teszi, hogy az inaktív validátorok letétje fokozatosan elszivárogjon addig, amíg a hozzájuk tartozó letét 1/3 alá csökkent, így a megmaradt aktív validátorok véglegesíthetik a láncot. Bármilyen nagy is legyen az inaktív validátorok csoportja, a megmaradó aktív validátorok végül a letét >2/3-át birtokolják. A letét elvesztése erősen ösztönzi az inaktív érvényesítőket arra, hogy minél hamarabb újra aktiválódjanak! A Medalla teszthálózaton életbe lépett már az inaktivitási elszivárgás, amikor is az aktív validátorok <66%-a képes volt konszenzusra jutni a blokklánc aktuális fejével kapcsolatban. Az inaktivitási elszivárgás aktiválódott, és a véglegesség végül helyreállt! +Ha a konszenzusréteg több mint négy korszakot tölt el véglegesítés nélkül, akkor egy „inaktivitási szivárgás” vészhelyzeti protokoll aktiválódik. Az inaktivitási elszivárgás célja, hogy megteremtse a lánc véglegessé válásához szükséges feltételeket. A véglegességhez a teljes feltett ether 2/3-os többsége szükséges ahhoz, hogy a forrás- és célellenőrzési pontok megegyezzenek. Ha a validátorok több mint 1/3-a offline állapotba kerül, vagy nem küld helyes tanúsításokat, akkor nem lehetséges, hogy a 2/3-os szupertöbbség véglegesítse az ellenőrzési pontokat. Az inaktivitási elszivárgás lehetővé teszi, hogy az inaktív validátorok letétje fokozatosan elszivárogjon addig, amíg a hozzájuk tartozó letét 1/3 alá csökkent, így a megmaradt aktív validátorok véglegesíthetik a láncot. Bármilyen nagy is legyen az inaktív validátorok csoportja, a megmaradó aktív validátorok végül a letét >2/3-át birtokolják. A letét elvesztése erősen ösztönzi az inaktív érvényesítőket arra, hogy minél hamarabb újra aktiválódjanak! A Medalla teszthálózaton életbe lépett már az inaktivitási elszivárgás, amikor is az aktív validátorok \<66%-a képes volt konszenzusra jutni a blokklánc aktuális fejével kapcsolatban. Az inaktivitási elszivárgás aktiválódott, és a véglegesség végül helyreállt! A konszenzusmechanizmus jutalom-, büntetés- és súlyos büntetési konstrukciója arra ösztönzi a validáltorokat, hogy jóhiszeműen viselkedjenek. Ezekből a tervezési döntésekből következik, hogy a rendszer érdekében a validátoroknak egyenlően kell megoszlaniuk a kliens között, és fel kell oldani az egyklienses dominanciát. diff --git a/public/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md index e67345c31ca..b6654f87528 100644 --- a/public/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md +++ b/public/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md @@ -26,6 +26,7 @@ Először meg kellene értened az Ethereum alapvető fogalmait ahhoz, hogy érte - [EthVM](https://www.ethvm.com/) - [OKLink](https://www.oklink.com/eth) - [Rantom](https://rantom.app/) +- [Ethseer](https://ethseer.io) ## Nyílt forráskódú eszközök {#open-source-tools} diff --git a/public/content/translations/hu/developers/docs/data-and-analytics/index.md b/public/content/translations/hu/developers/docs/data-and-analytics/index.md index c043605dfd2..8bf4557dd27 100644 --- a/public/content/translations/hu/developers/docs/data-and-analytics/index.md +++ b/public/content/translations/hu/developers/docs/data-and-analytics/index.md @@ -34,7 +34,7 @@ A [kliensdiverzitás](/developers/docs/nodes-and-clients/client-diversity/) rend ## Dune-elemzések {#dune-analytics} -A [Dune-elemzések](https://dune.com/) előre feldolgozzák a blokkláncadatokat relációs adatbázistáblákba (DuneSQL), hogy a felhasználók lekérdezhessék a blokklánc adatait SQL segítségével és ennek eredményéből további kimutatásokat építhessenek. A láncon lévő adatok 4 nyerstáblába rendeződnek: `blocks` (blokkok), `transactions` (tranzakciók), `logs` (eseménynaplózás) és `traces` (meghívások nyomai). A népszerű szerződéseket és protokollokat dekódolják, és mindegyik rendelkezik a maga eseményeket és meghívásokat tartalmazó tábláival. Ezeket az esemény- és hívástáblákat tovább dolgozzák és absztrakciós táblákba szervezik a protokollok típusa szerint, mint amilyen a DEX, kölcsönzés, stabilérmék stb. +A [Dune-elemzések](https://dune.com/) előre feldolgozzák a blokkláncadatokat relációs adatbázistáblákba (DuneSQL), hogy a felhasználók lekérdezhessék a blokklánc adatait SQL segítségével és ennek eredményéből további kimutatásokat készíthessenek. A láncon lévő adatok 4 nyerstáblába rendeződnek: `blocks` (blokkok), `transactions` (tranzakciók), `logs` (eseménynaplózás) és `traces` (meghívások nyomai). A népszerű szerződéseket és protokollokat dekódolják, és mindegyik rendelkezik a maga eseményeket és meghívásokat tartalmazó tábláival. Ezeket az esemény- és hívástáblákat tovább dolgozzák és absztrakciós táblákba szervezik a protokollok típusa szerint, mint amilyen a DEX, kölcsönzés, stabilérmék stb. ## SubQuery hálózat {#subquery-network} diff --git a/public/content/translations/hu/developers/docs/frameworks/index.md b/public/content/translations/hu/developers/docs/frameworks/index.md index 9f95b054f00..ea98b199e18 100644 --- a/public/content/translations/hu/developers/docs/frameworks/index.md +++ b/public/content/translations/hu/developers/docs/frameworks/index.md @@ -132,6 +132,14 @@ Mielőtt elmerülne a keretrendszerekben, javasoljuk, hogy olvassa át a bevezet - [GitHub](https://github.com/Ackee-Blockchain/wake) - [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity) +**Veramo -** **_Egy nyílt forráskódú, moduláris és agnosztikus keretrendszer, amely megkönnyíti a decentralizált alkalmazások fejlesztői számára a decentralizált identitások és ellenőrizhető hitelesítő adatok beépítését az alkalmazásaikba._** + +- [Honlap](https://veramo.io/) +- [Dokumentáció](https://veramo.io/docs/basics/introduction) +- [GitHub](https://github.com/uport-project/veramo) +- [Discord](https://discord.com/invite/FRRBdjemHV) +- [NPM-csomag](https://www.npmjs.com/package/@veramo/core) + ## További olvasnivaló {#further-reading} _Van olyan közösségi erőforrása, amely segített Önnek? Szerkessze ezt az oldalt, és adja hozzá!_ diff --git a/public/content/translations/hu/developers/docs/ides/index.md b/public/content/translations/hu/developers/docs/ides/index.md index 85b557a6676..cc50ecb9db6 100644 --- a/public/content/translations/hu/developers/docs/ides/index.md +++ b/public/content/translations/hu/developers/docs/ides/index.md @@ -37,7 +37,6 @@ A legtöbb megalapozott IDE-nek vannak beépített pluginjai, amelyek tovább fo **Visual Studio Code -** **_Professzionális keresztplatformos IDE hivatalos Ethereum-támogatással_** - [Visual Studio Code](https://code.visualstudio.com/) -- [Azure Blockchain Workbench](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-azure-blockchain.azure-blockchain-workbench?tab=Overview) - [Kódminták](https://github.com/Azure-Samples/blockchain/blob/master/blockchain-workbench/application-and-smart-contract-samples/readme.md) - [GitHub](https://github.com/microsoft/vscode) diff --git a/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md index ef98d696462..8bd27eb3b43 100644 --- a/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ Ennek a hálózati dizájnnak az előnyei: - csökkenti a központi szolgáltatóktól való függést - csökkenti az internet sávszélességi igényt - minimális vagy nulla szinkronizálásra van szükség -- A kevés erőforrással bíró eszközök esetében is működőképes (<1 GB RAM, <100 MB merevlemez, 1 CPU) +- A kevés erőforrással bíró eszközök esetében is működőképes (\<1 GB RAM, \<100 MB merevlemez, 1 CPU) Az alábbi ábra a meglévő kliensek azon funkcióit mutatja be, amelyeket a Portal Network biztosíthat, lehetővé téve a felhasználók számára, hogy ezeket a funkciókat nagyon alacsony erőforrásigényű eszközökön is elérjék. diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md index abb713e7ba3..fc35e615c7d 100644 --- a/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ Azon túl, amit általános [javaslatként megfogalmaznak a csomópont futtatás Mindig ellenőrizze az egy adott csomópontra vonatkozó hardverigényeket a kliens dokumentációjában. Az archív csomópontok legnagyobb igénye a tárhely. A klienstől függően ez 3 és 12 TB között változhat. A HDD jobb lenne a nagymennyiségű adatok tárolásához, de a szinkronizálás és a lánc elejének állandó frissítése SSD-meghajtókat igényel. A [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) meghajtók elég jók, de abból is a megbízható minőségű javasolt, vagyis legalább a [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). A lemezek elég lemezhellyel rendelkező asztali gépbe vagy szerverbe is behelyezhetők. Ezek a dedikált eszközök ideálisak egy ilyen, szinte állandóan aktív csomópont futtatásához. Laptopon is futtatható, de a hordozhatóság több költséggel jár. -Az összes adatnak egy köteten el kell férnie, ezért a lemezeket össze kell kapcsolni, pl. a [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) vagy a [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html) által. Érdemes lehet megfontolni a [ZFS](https://en.wikipedia.org/wiki/ZFS) használatát is, mert ez támogatja az írásra másolás (copy-on-write) funkciót, amivel az adat biztosabban, alacsony szintű hiba nélkül íródik a lemezre. +Az összes adatnak egy köteten el kell férnie, ezért a lemezeket össze kell kapcsolni, pl. a [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) vagy a LVM által. Érdemes lehet megfontolni a [ZFS](https://en.wikipedia.org/wiki/ZFS) használatát is, mert ez támogatja az írásra másolás (copy-on-write) funkciót, amivel az adat biztosabban, alacsony szintű hiba nélkül íródik a lemezre. A nagyobb stabilitás érdekében és a véletlen adatbázis-meghibásodás megelőzésére, főleg a professzionális összeállításban, érdemes [ECC-memóriát](https://en.wikipedia.org/wiki/ECC_memory) használni, ha azt a rendszer is támogatja. A RAM méretének általában akkorának kell lennie, mint egy teljes csomópont esetében, de az ennél több RAM csak segíthet a szinkronizálás gyorsításában. diff --git a/public/content/translations/hu/developers/docs/programming-languages/elixir/index.md b/public/content/translations/hu/developers/docs/programming-languages/elixir/index.md new file mode 100644 index 00000000000..9539ad62edf --- /dev/null +++ b/public/content/translations/hu/developers/docs/programming-languages/elixir/index.md @@ -0,0 +1,55 @@ +--- +title: Ethereum Elixir-fejlesztők számára +description: Tanuljon meg az Ethereumra fejleszteni Elixir-alapú projektek és eszközök használatával. +lang: hu +incomplete: false +--- + +Tanuljon meg az Ethereumra fejleszteni Elixir-alapú projektek és eszközök használatával. + +Használjon Ethereumot decentralizált alkalmazások (dappok) fejlesztésére, melyek kihasználják a kriptovaluta és a blokklánc technológia nyújtotta előnyöket. Ezek a dappok nem igényelnek bizalmat a felhasználó oldaláról, ami azt jelenti, hogyha egyszer telepítették az Ethereumba, akkor mindig úgy fognak futni, ahogy programozták őket. Digitális vagyontárgyakat irányíthatnak, lehetőséget teremtve ezzel az újfajta pénzügyi alkalmazások számra. Decentralizáltak lehetnek, mely azt jelenti, hogy semmilyen entitás vagy személy nem irányítja őket és közel lehetetlen őket cenzúrázni. + +## Kezdő lépések az okosszerződésekkel és a Solidity nyelvvel {#getting-started-with-smart-contracts-and-solidity} + +**Tegye meg az első lépést, hogy integrálja a Elixirt az Ethereummal** + +Szüksége van egy kezdőknek szóló bevezetőre? Tekintse meg az [ethereum.org/learn](/learn/) vagy az [ethereum.org/developers](/developers/) oldalakat. + +- [Blokklánc magyarázata](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Okosszerződések megértése](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Írja meg első okosszerződését](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Tanulja meg a Solidity átfordítását és telepítését](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Cikkek kezdőknek {#beginner-articles} + +- [Az Ethereum számlák megértése](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) +- [Ethers — Elsőrangú Ethereum web3-könyvtár az Elixirhez](https://medium.com/@alisinabh/announcing-ethers-a-first-class-ethereum-web3-library-for-elixir-1d64e9409122) + +## Cikkek középhaladóknak {#intermediate-articles} + +- [Hogyan lehet nyers Ethereum szerződéses tranzakciót aláírni az Elixirrel](https://kohlerjp.medium.com/how-to-sign-raw-ethereum-contract-transactions-with-elixir-f8822bcc813b) +- [Ethereum okosszerződések és az Elixir](https://medium.com/agile-alpha/ethereum-smart-contracts-and-elixir-c7c4b239ddb4) + +## Elixir projektek és eszközök {#elixir-projects-and-tools} + +### Aktív {#active} + +- [block_keys](https://github.com/ExWeb3/block_keys) - _BIP32 & BIP44 implementáció Elixirben (többszámlás hierarchia a determinisztikus tárcákhoz)_ +- [ethereumex](https://github.com/mana-ethereum/ethereumex) - _Elixir JSON-RPC kliens az Ethereum blokklánchoz_ +- [ethers](https://github.com/ExWeb3/elixir_ethers) - _Egy átfogó web3 könyvtár az Ethereum-on lévő okosszerődésekkel való interakcióra az Elixirrel_ +- [ethers_kms](https://github.com/ExWeb3/elixir_ethers_kms) - _Egy KMS aláíró könyvtár az Ethers-hez (a tranzakciók aláírása AWS KMS révén)_ +- [ex_abi](https://github.com/poanetwork/ex_abi) - _Ethereum ABI értelmező/dekódoló/kódoló implementáció Elixirben_ +- [ex_keccak](https://github.com/ExWeb3/ex_keccak) - _Elixir könyvtár a Keccak SHA3-256 hash-ek kiszámolásához egy NIF által épített mini-keccak Rust tároló használatával_ +- [ex_rlp](https://github.com/mana-ethereum/ex_rlp) - _Az Ethereum RLP (Rekurzív hosszúságú prefixum) kódolásának Elixir implementációja_ + +### Archivált / a karbantartás megszűnt {#archived--no-longer-maintained} + +- [eth](https://hex.pm/packages/eth) - _Ethereum-szolgáltatások az Elixirhez_ +- [exw3](https://github.com/hswick/exw3) - _Magas szintű Ethereum RPC kliens az Elixirhez_ +- [mana](https://github.com/mana-ethereum/mana) - _Ethereum teljes csomópont implementációja Elixir nyelven írva_ + +Több anyagra lenne szüksége? Tekintse meg [Fejlesztői kezdőlapot](/developers/). + +## Elixir közösségi közreműködők {#elixir-community-contributors} + +Az [Elixir Slack #ethereum channel](https://elixir-lang.slack.com/archives/C5RPZ3RJL) egy gyorsan növekvő közösség szervezője, egy dedikált erőforrás a fenti projektek és kapcsolódó témák megvitatására. diff --git a/public/content/translations/hu/developers/docs/programming-languages/index.md b/public/content/translations/hu/developers/docs/programming-languages/index.md index fc87e678fdc..f5f16f24c7e 100644 --- a/public/content/translations/hu/developers/docs/programming-languages/index.md +++ b/public/content/translations/hu/developers/docs/programming-languages/index.md @@ -15,6 +15,7 @@ Válasszon nyelvet, hogy megtalálja a kapcsolódó projekteket, anyagokat és a - [Ethereum Dart-fejlesztők számára](/developers/docs/programming-languages/dart/) - [Ethereum Delphi fejlesztőknek](/developers/docs/programming-languages/delphi/) - [Ethereum .NET fejlesztőknek](/developers/docs/programming-languages/dot-net/) +- [Ethereum Elixir-fejlesztők számára](/developers/docs/programming-languages/elixir/) - [Ethereum Go fejlesztőknek](/developers/docs/programming-languages/golang/) - [Ethereum Java fejlesztőknek](/developers/docs/programming-languages/java/) - [Ethereum JavaScript fejlesztőknek](/developers/docs/programming-languages/javascript/) diff --git a/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md index b5593597862..fe656d69d52 100644 --- a/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Az alacsony szintű formális specifikációkat Hoare-stílusú tulajdonságokk ### Hoare-stílusú tulajdonságok {#hoare-style-properties} -A [Hoare-logika](https://en.wikipedia.org/wiki/Hoare_logic) egy sor formális szabályt biztosít a programok, köztük az okosszerződések helyességére vonatkozó érveléshez. Egy Hoare-stílusú tulajdonságot egy Hoare-hármas {_P_}_c_{_Q_} reprezentál, ahol _c_ egy program, _P_ és _Q_ állítások a _c_ státuszára (a programra) vonatkozóan, amelyeket formálisan _előfeltételekkel_ és _utófeltételekkel_ írunk le. +A [Hoare-logika](https://en.wikipedia.org/wiki/Hoare_logic) egy sor formális szabályt biztosít a programok, köztük az okosszerződések helyességére vonatkozó érveléshez. Egy Hoare-stílusú tulajdonságot egy Hoare-hármas `{P}c{Q}` reprezentál, ahol `c` egy program, `P` és `Q` állítások a `c` státuszára (a programra) vonatkozóan, amelyeket formálisan _előfeltételekkel_ és _utófeltételekkel_ írunk le. Az előfeltétel egy állítás, amely leírja a függvény helyes végrehajtásához szükséges feltételeket; a szerződést meghívó felhasználóknak meg kell felelniük ennek a követelménynek. Az utófeltétel egy állítás, amely azt a feltételt írja le, amelyet egy függvény helyesen végrehajtva állít fel; a felhasználók elvárhatják, hogy ez a feltétel igaz legyen a függvény meghívása után. A _konstans_ a Hoare-logikában olyan állítás, amely egy függvény végrehajtása során megmarad (nem változik). diff --git a/public/content/translations/hu/developers/docs/smart-contracts/security/index.md b/public/content/translations/hu/developers/docs/smart-contracts/security/index.md index 681d26f488c..997b5bc2b71 100644 --- a/public/content/translations/hu/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/hu/developers/docs/smart-contracts/security/index.md @@ -563,7 +563,7 @@ Ha Ön azt tervezi, hogy egy láncon lévő orákulumot kérdez le eszközárak - **[Smart Contract Security Verification Standard](https://github.com/securing/SCSVS)** – _Egy tizennégy részes ellenőrző lista fejlesztők, architektúrával foglalkozók, biztonság-ellenőrzők és beszállítók számára az okosszerződések biztonságának szabványosításához._ -- **[Az okosszerződések biztonságának és auditálásának elsajátítása](https://updraft.cyfrin.io/courses/security)** – _Az okosszerződések biztonságát és auditálását oktató tanfolyamot olyan fejlesztőknek hozták létre, akik a legjobb biztonsági gyakorlatok mentén szeretnének fejleszteni és biztonsági kutatókká válni._ +- **[Az okosszerződések biztonságának és auditálásának elsajátítása](https://updraft.cyfrin.io/courses/security) – _Az okosszerződések biztonságát és auditálását oktató tanfolyamot olyan fejlesztőknek hozták létre, akik a legjobb biztonsági gyakorlatok mentén szeretnének fejleszteni és biztonsági kutatókká válni._ ### Útmutatók az okosszerződés-biztonságról {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/hu/developers/docs/storage/index.md b/public/content/translations/hu/developers/docs/storage/index.md index 9d363c912ae..3baa100807c 100644 --- a/public/content/translations/hu/developers/docs/storage/index.md +++ b/public/content/translations/hu/developers/docs/storage/index.md @@ -88,7 +88,6 @@ A platformok decentralitását nem lehet könnyen mérni, de általában olyan e Decentralizált eszközök KYC nélkül: -- Züs (egy KYC nélküli kiadást implementál) - Skynet - Arweave - Filecoin @@ -147,7 +146,7 @@ Proof-of-stake-alapú: **Züs – _A Züs egy proof-of-stake dStorage platform shardinggal és blobberekkel._** -- - [zus.network](https://zus.network/) +- [zus.network](https://zus.network/) - [Dokumentáció](https://0chaindocs.gitbook.io/zus-docs) - [GitHub](https://github.com/0chain/) diff --git a/public/content/translations/hu/roadmap/index.md b/public/content/translations/hu/roadmap/index.md index 6bf75328c3b..92c54e431ab 100644 --- a/public/content/translations/hu/roadmap/index.md +++ b/public/content/translations/hu/roadmap/index.md @@ -61,7 +61,7 @@ Az Ethereumot folyamatosan fejlesztik, hogy javítsák a skálázhatóságot, a -Az ütemterv a kutatók és fejlesztők több évnyi munkájának eredménye, mivel a protokoll maga nagyon technikai, de emellett bárki, aki elég elkötelezett, részt vehet benne. Az ötletek általában beszélgetés formájában kezdődnek a fórumokon, mint amilyen az ethresear.ch (https://ethresear.ch/), az Ethereum Magicians (https://ethereum-magicians.org/) vagy az Eth R&D discord szerver. <0>A teljes hontalanság még a kutatási fázisban van, és valószínűleg több év múlva kerül végrehajtásra. Miután ezeket az ötleteket kellőképpen körüljárták, javaslatot készíthetnek belőlük: [Ethereum-fejlesztési javaslatok (EIP)](https://eips.ethereum.org/). Ez az egész folyamat nyilvános, így a közösség bármelyik tagja mérlegelheti a javaslatokat. +Az ütemterv a kutatók és fejlesztők több évnyi munkájának eredménye, mivel a protokoll maga nagyon technikai, de emellett bárki, aki elég elkötelezett, részt vehet benne. Az ötletek általában beszélgetés formájában kezdődnek a fórumokon, mint amilyen az ethresear.ch (https://ethresear.ch/), az Ethereum Magicians (https://ethereum-magicians.org/) vagy az Eth R&D discord szerver. Ezek lehetnek válaszok az újonnan feltár gyenge pontokra, az alkalmazási rétegen működő szervezetek javaslatai (mint a [dappok](/glossary/#dapp) és tőzsdék), vagy a felhasználók ismert problémái (mint a költségek vagy a tranzakciósebességek). Miután ezeket az ötleteket kellőképpen körüljárták, javaslatot készíthetnek belőlük: [Ethereum-fejlesztési javaslatok (EIP)](https://eips.ethereum.org/). Ez az egész folyamat nyilvános, így a közösség bármelyik tagja mérlegelheti a javaslatokat. [Bővebben az Ethereum irányításáról](/governance/) diff --git a/public/content/translations/hu/roadmap/merge/index.md b/public/content/translations/hu/roadmap/merge/index.md index 59c38ec9f1b..1be91ba7896 100644 --- a/public/content/translations/hu/roadmap/merge/index.md +++ b/public/content/translations/hu/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Dapp- és okosszerződés-fejlesztők" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -A Beolvadás megváltoztatta a konszenzust, amely a következőkre is hatott:< +A Beolvadás megváltoztatta a konszenzust, amely a következőkre is hatott:
                • blokkstruktúra
                • diff --git a/public/content/translations/hu/roadmap/statelessness/index.md b/public/content/translations/hu/roadmap/statelessness/index.md index 3949b9a5d33..2b8381f7a7d 100644 --- a/public/content/translations/hu/roadmap/statelessness/index.md +++ b/public/content/translations/hu/roadmap/statelessness/index.md @@ -16,7 +16,7 @@ A régebbi adatokhoz lehet olcsóbb merevlemezeket használni, de ezek túl lass Számos módon le lehet csökkenteni a csomópontban tárolt adatmennyiséget, ehhez azonban különféle mértékben, de módosítani kell az Ethereum-protokollon: -- **Az előzményadatok lejárata**: lehetővé teszi, hogy a csomópont törölje azokat a státuszadatokat, amelyek X blokknál régebbiek, de nem változtatja meg a Ethereum-kliens státuszkezelési módját +- **Az előzményadatok lejárata**: lehetővé teszi, hogy a csomópont törölje azokat a státuszadatokat, amelyek X blokknál régebbiek, de nem változtatja meg a Ethereum-kliens státuszkezelési módját. - **A státusz lejárata**: lehetővé teszi, hogy inaktívvá válhassanak azok a státuszadatok, amelyeket nem használnak rendszeresen. Az inaktív adatokkal nem kell foglalkoznia a kliensnek mindaddig, amíg az újból be nem hívják őket. - **Gyenge státusztalanság**: csak a blokk-készítőknek van szükségük a teljes státuszadatra, a többi csomópont a lokális státuszadatbázis nélkül is képes ellenőrizni a blokkokat. - **Erős státusztalanság**: semelyik csomópontnak nincs szüksége az összes státuszadatra. diff --git a/public/content/translations/id/contributing/translation-program/translators-guide/index.md b/public/content/translations/id/contributing/translation-program/translators-guide/index.md index 91103d78669..fcf5987529a 100644 --- a/public/content/translations/id/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/id/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Cara terbaik untuk menangani tautan adalah dengan menyalinnya langsung dari sumb ![Contoh tautan.png](./example-of-link.png) -Tautan juga muncul dalam teks sumber dalam bentuk tag (misalnya, <0> ). Jika Anda mengarahkan kursor ke tag, editor akan menampilkan konten lengkapnya-terkadang tag ini mewakili tautan. +Tautan juga muncul dalam teks sumber dalam bentuk tag (misalnya, \<0> \). Jika Anda mengarahkan kursor ke tag, editor akan menampilkan konten lengkapnya-terkadang tag ini mewakili tautan. Sangat penting untuk menyalin tautan dari sumbernya dan tidak mengubah urutannya. @@ -154,7 +154,7 @@ nonce - _Teks yang tidak dapat diterjemahkan_ Teks sumber juga berisi tag singkat, yang hanya berisi angka, artinya fungsinya tidak langsung terlihat. Anda dapat mengarahkan kursor ke tag ini untuk melihat dengan tepat fungsi mana yang mereka layani. -Pada contoh di bawah, Anda dapat mengarahkan kursor ke tag <0> yang menunjukkan bahwa ia mewakili `` dan berisi cuplikan kode. Oleh karena itu, konten di dalam tag ini tidak boleh diterjemahkan. +Pada contoh di bawah, Anda dapat mengarahkan kursor ke tag \<0> yang menunjukkan bahwa ia mewakili `` dan berisi cuplikan kode. Oleh karena itu, konten di dalam tag ini tidak boleh diterjemahkan. ![Contoh yang membingungkan tags.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/id/dao/index.md b/public/content/translations/id/dao/index.md index 8c7a795673e..eaa36980656 100644 --- a/public/content/translations/id/dao/index.md +++ b/public/content/translations/id/dao/index.md @@ -1,5 +1,6 @@ --- -title: Organisasi otonom terdesentralisasi (DAO) +title: Apa itu DAO? +metaTitle: Apa itu DAO? | Organisasi Otonom Terdesentralisasi description: Gambaran umum tentang DAO di Ethereum lang: id template: use-cases @@ -14,11 +15,11 @@ summaryPoint3: Tempat yang aman untuk menyuntikkan dana untuk tujuan tertentu. ## Apa itu DAO? {#what-are-daos} -DAO adalah organisasi yang dimiliki bersama, dikelola dengan rantai blok yang bertujuan untuk berbagi misi. +DAO merupakan sebuah organisasi yang dimiliki bersama, bekerja untuk mencapai tujuan yang sama. DAO memungkinkan kita bekerja dengan orang-orang yang sepemikiran dari seluruh dunia tanpa harus mempercayai seorang pemimpin untuk mengelola dana atau menjalankan operasinya. Tidak ada seorang CEO yang bisa menghabiskan dana sembarangan atau CFO yang memanipulasi pembukuan. Selain itu, peraturan berbasis rantai blok dibuat dalam kode yang menunjukkan bagaimana organisasi bekerja dan bagaimana dananya digunakan. -Mereka memiliki perbendaharaan bawaan yang tidak dapat diakses oleh siapa pun tanpa persetujuan grup. Keputusan diputuskan dengan proposal dan voting untuk meyakinkan semua orang di organisasi ini punya hak suara dan semua terjadi secara transparan di dalam rantai. +Mereka memiliki perbendaharaan bawaan yang tidak dapat diakses oleh siapa pun tanpa persetujuan grup. Keputusan diatur melalui proposal dan pemungutan suara guna memastikan setiap anggota organisasi memiliki suara, dan semua proses berlangsung secara transparan di atas rantai blok [on-chain](/glossary/#on-chain). ## Mengapa kita membutuhkan DAO? {#why-dao} @@ -40,25 +41,23 @@ Ini membuka banyak peluang baru untuk kolaborasi dan koordinasi global. Untuk membantu memahaminya, berikut adalah beberapa contoh cara menggunakan DAO: -- Amal - Anda dapat menerima donasi dari siapapun di dunia atau memilih isu apa yang mau Anda danai. -- Kepemilikan bersama - Anda bisa memmbeli barang digital atau fisik para dan anggotabisa menentukan bagaimana menggunakan barang tersebut. -- Perusahaan patungan dan hibah – Anda dapat membuat dana patungan yang memasukkan dana modal dalam pool dan mengambil suara untuk menarik dananya. Uang yang dibayarkan kembali dapat dibagikan kembali nantinya di antara para anggota DAO. +- **Amal** – Anda dapat menerima donasi dari siapa pun di seluruh dunia dan ikut serta dalam pemungutan suara untuk memilih projek mana yang akan didanai. +- **Kepemilikan bersama** – Anda dapat membeli aset digital atau fisik dan para anggota dapat memilih bagaimana aset tersebut akan digunakan. +- **Perusahaan patungan dan hibah** – Anda dapat membuat dana patungan yang memasukkan dana modal dalam pool dan mengambil suara untuk menarik dananya. Uang yang dibayarkan kembali dapat dibagikan kembali nantinya di antara para anggota DAO. + + ## Bagaimana cara kerja DAO? {#how-daos-work} -Penyokong utama DAO adalah kontrak pintar, yang menentukan aturan organisasi dan pengelolaan dana bersama. Setelah kontrak dijalankan di Ethereum, tidak ada seorang pun yang dapat mengubah aturannya kecuali melalui pengambilan suara. Jika siapa pun mencoba melakukan sesuatu yang tidak tercakup dalam aturan dan logika kode, ini akan gagal. Dan karena perbendaharaan ditentukan oleh kontrak pintar juga, itu berarti tidak seorang pun dapat memakai uang kas tanpa persetujuan grup. Ini berarti DAO tidak memerlukan otoritas terpusat. Selain itu, keputusan kelompok ditentukan secara bersama, dan pembayaran otomatis disahkan ketika para pemilik suara sudah menentukan. +Inti dari DAO adalah [kontrak pintar](/glossary/#smart-contract), yang menetapkan aturan organisasi dan pengelolaan dana bersama. Setelah kontrak dijalankan di Ethereum, tidak ada seorang pun yang dapat mengubah aturannya kecuali melalui pengambilan suara. Jika siapa pun mencoba melakukan sesuatu yang tidak tercakup dalam aturan dan logika kode, ini akan gagal. Dan karena perbendaharaan ditentukan oleh kontrak pintar juga, itu berarti tidak seorang pun dapat memakai uang kas tanpa persetujuan grup. Ini berarti DAO tidak memerlukan otoritas terpusat. Selain itu, keputusan kelompok ditentukan secara bersama, dan pembayaran otomatis disahkan ketika para pemilik suara sudah menentukan. Ini mungkin terjadi karena kontrak pintar bersifat tahan perubahan setelah dijalankan di Ethereum. Anda tidak bisa hanya mengedit kode (aturan DAO) tanpa diketahui orang-orang karena semua hal terbuka untuk publik. - - Lebih lanjut tentang kontrak pintar - - ## Ethereum dan DAO {#ethereum-and-daos} Ethereum adalah fondasi sempurna untuk DAO dikarenakan beberapa alasan: -- Konsensus yang dimiliki Ethereum terdistribusi dan cukup mapan jaringannya untuk dipercaya oleh organisasi. +- Kesepakatan Ethereum sendiri bersifat terdesentralisasi dan cukup mapan sehingga organisasi dapat memercayai jaringan tersebut. - Kode kontrak pintar tidak dapat diubah setelah dijalankan, sekalipun oleh pemiliknya. Ini memungkinkan DAO dijalankan sesuai aturan yang dirpogram dengannya. - Kontrak pintar dapat mengirim/menerima dana. Tanpa ini, Anda akan memerlukan perantara terpercaya untuk mengelola dana grup. - Komunitas Ethereum telah terbukti lebih kolaboratif daripada kompetitif, yang memungkinkan praktik terbaik dan sistem dukungan dengan cepat berkembang. @@ -81,15 +80,15 @@ Dalam beberapa DAO, transaksi akan terjadi secara otomatis jika para anggota sec #### Contoh yang terkenal {#governance-example} -[Nouns](https://nouns.wtf) – Dalam DAO Nouns, transaksi otomatis terjadi jika pemilik suara secara quorum memilih dan secara mayoritas menyepakati, selama pilihan itu tidak diveto oleh pada pendiri. +[Nouns](https://nouns.wtf) – Dalam DAO Nouns, transaksi akan dieksekusi secara otomatis jika kuorum suara terpenuhi dan mayoritas memberikan suara positif, selama tidak diveto oleh para pendiri. ### Pengelolaan Multisig {#governance-example} -DAO bisa memiliki anggota hingga ribuan suara, dananya bisa disimpan dalam dompet yang kelola bersama oleh 5-20 anggota komunitas yang aktif, terpecaya, dan biasanya dikenal (identitas mereka diketahui publik). Setelah dipilih, penanda multisig melaksanakan amanat komunitas. +Meskipun DAO mungkin memiliki ribuan anggota pemilih, dana dapat disimpan dalam sebuah [dompet](/glossary/#wallet) yang dikelola bersama 5-20 anggota komunitas yang aktif, tepercaya dan biasanya telah dikenal (identitas mereka diketahui publik). Setelah dipilih, penanda [multisig](/glossary/#multisig) melaksanakan amanat dari komunitas. ## Hukum DAO {#dao-laws} -Pada tahun 1977, negara bagian Wyoming menemukan LLC, bentuk usaha yang melindungi pengusaha dan membatasi tanggung jawab mereka. Belum lama ini, mereka mempelopori hukum DAO yang mengakui legalitas hukum bagi DAO. Kini, Wyoming, Vermont dan Virgin Islands punya hukum DAO dalam beberapa bentuk. +Pada tahun 1977, negara bagian Wyoming menemukan LLC, bentuk usaha yang melindungi pengusaha dan membatasi tanggung jawab mereka. Belum lama ini, mereka memelopori hukum DAO yang mengakui legalitas hukum bagi DAO. Kini, Wyoming, Vermont, dan Virgin Islands punya hukum DAO dalam beberapa bentuk. ### Contoh yang terkenal {#law-example} @@ -97,11 +96,11 @@ Pada tahun 1977, negara bagian Wyoming menemukan LLC, bentuk usaha yang melindun ## Keanggotaan DAO {#dao-membership} -Ada berbagai model untuk keanggotaan DAO. Keanggotaan dapat menentukan cara kerja pengambilan suara dan bagian utamai DAO lainnya. +Ada berbagai model untuk keanggotaan DAO. Keanggotaan dapat menentukan cara kerja pengambilan suara dan bagian utama DAO lainnya. ### Keanggotaan berbasis token {#token-based-membership} -Biasanya sepenuhnya tanpa izin, tergantung pada token yang digunakan. Biasanya, token pengelola ini bisa diperdagangkan tanpa izin di bursa terdesentralisasi. Pihak lain, bisa mendapatkan token ini dengan menyediakan likuiditas dana atau melakukan 'bukti kerja'. Dengan cara mana pun, cukup dengan memiliki token ini memberikan akses untuk mengambil suara. +Biasanya sepenuhnya [tanpa izin](/glossary/#permissionless), tergantung pada token yang digunakan. Sebagian besar token tata kelola ini dapat diperdagangkan tanpa izin di [bursa terdesentralisasi](/glossary/#dex). Pihak lain, bisa mendapatkan token ini dengan menyediakan likuiditas dana atau melakukan 'bukti kerja'. Dengan cara mana pun, cukup dengan memiliki token ini memberikan akses untuk mengambil suara. _Umumnya dipakai untuk mengatur protokol terdesentralisasi yang luas dan/atau token itu sendiri._ @@ -119,19 +118,19 @@ _Biasanya digunakan untuk organisasi yang interaksinya lebih erat dan berfokus p [MolochDAO](http://molochdao.com/) – MolochDAO berfokus pada pendanaan proyek Ethereum. Mereka membutuhkan proposal untuk keanggotaan, sehingga grup dapat menilai apakah Anda memiliki keahlian dan modal yang diperlukan untuk membuat penilaian yang tepat tentang calon penerima hibah. Anda tidak bisa membeli saja akses ke DAO ini di pasar terbuka. -### Keanggotaan Berbasis Reputasi {#reputation-based-membership} +### Keanggotaan berbasis reputasi {#reputation-based-membership} -Reputasi menunjukkan bukti partisipasi dan diganjar dengan hak suara dalam DAO. Tidak seperti token atau keanggotaan berbasis saham, DAO berbasis reputasi tidak bisa dipindahtangankan kepemilikannya kepada kontributor. Reputasi tak bisa dibeli, dipindahtangankan atau didelegasikan; anggota DAO harus memperolehnya dengan berpartisipasi. Pemungutan suara di dalam rantai itu tak perlu izin dan calon anggota bebas mengajukan usulan untuk bergabung ke dalam DAO dan mendapatkan reputasi dan token sebagai imbalan atas kontribusi mereka. +Reputasi menunjukkan bukti partisipasi dan diberi imbalan berupa hak suara dalam DAO. Tidak seperti token atau keanggotaan berbasis saham, DAO berbasis reputasi tidak bisa dipindahtangankan kepemilikannya kepada kontributor. Reputasi tak bisa dibeli, dipindahtangankan atau didelegasikan; anggota DAO harus memperolehnya dengan berpartisipasi. Pemungutan suara di dalam rantai itu tak perlu izin dan calon anggota bebas mengajukan usulan untuk bergabung ke dalam DAO dan mendapatkan reputasi dan token sebagai imbalan atas kontribusi mereka. -_Umumnya digunakan untuk pengembangan dan pengelolaan protokol yang terdesentralisasi serta dapps, juga cocok untuk beragam organisasi seperti badan amal, kolektif pekerja, grup investasi dll._ +_Umumnya digunakan untuk pengembangan dan pengembangan tata kelola protokol yang terdesentralisasi serta [dapps](/glossary/#dapp), namun juga sangat cocok untuk berbagai jenis organisasi seperti badan amal, kolektif pekerja, klub investasi, dan lain-lain._ #### Contoh yang terkenal {#reputation-example} -[DXdao](https://DXdao.eth.link) – DXdao adalah protokol dan aplikasi terdesentralisasi yang berdaulat untuk kelompok pembuat dan pengelolaan sejak 2019. Aplikasi terdesentralisasi ini memanfaatkan pengelolaan berbasis reputasi dan konsensus holografik untuk mengoordinasi dan mengelola dana, artinya tak ada yang memengaruhi pilihan mereka di masa datang. +[DXdao](https://DXdao.eth.limo) – DXdao adalah sebuah kolektif kedaulatan global yang telah membangun dan mengelola protokol serta aplikasi terdesentralisasi sejak tahun 2019. Itu menggunakan sistem pemerintahan berbasis reputasi dan [konsensus holografik](/glossary/#holographic-consensus) untuk mengatur dan mengelola dana, yang berarti tidak ada yang bisa memengaruhi pilihan mereka di masa mendatang. ## Bergabung / Mulai Buat DAO {#join-start-a-dao} -### Bergabung dengan DAO {#join-a-dao} +### Bergabunglah dengan DAO {#join-a-dao} - [DAO komunitas Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) - [Daftar DAO DAOHaus](https://app.daohaus.club/explore) @@ -150,7 +149,6 @@ _Umumnya digunakan untuk pengembangan dan pengelolaan protokol yang terdesentral ### Artikel tentang DAO {#dao-articles} - [Apa itu DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Buku Pedoman DAO](https://daohandbook.xyz) - [Rumah DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) - [Apa itu DAO dan apa kegunaannya?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) - [Cara Memulai Komunitas Digital yang Didukung oleh DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) @@ -163,3 +161,7 @@ _Umumnya digunakan untuk pengembangan dan pengelolaan protokol yang terdesentral - [Apa itu DAO dalam kripto?](https://youtu.be/KHm0uUPqmVE) - [Bisakah DAO dipakai membangun sebuah kota?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) + + + + diff --git a/public/content/translations/id/defi/index.md b/public/content/translations/id/defi/index.md index d306df3d8fa..db2c112420d 100644 --- a/public/content/translations/id/defi/index.md +++ b/public/content/translations/id/defi/index.md @@ -1,5 +1,6 @@ --- title: Keuangan terdesentralisasi (DeFi) +metaTitle: Apa yang dimaksud dengan DeFi? | Manfaat dan Kegunaan Keuangan Terdesentralisasi description: Gambaran umum tentang DeFi di Ethereum lang: id template: use-cases @@ -168,7 +169,7 @@ Jika pasokan bursa B menurun secara tiba-tiba dan pengguna tidak dapat membeli d Agar dapat melakukan contoh di atas dalam dunia keuangan tradisional, Anda akan membutuhkan jumlah yang sangat besar. Strategi penghasil uang ini hanya dapat dijangkau oleh mereka yang memiliki kekayaan. Pinjaman flash adalah sebuah contoh dari masa depan di mana kepemilikan sejumlah uang tidak harus merupakan prasyarat untuk menghasilkan uang. - + Lebih lanjut tentang pinjaman flash @@ -324,7 +325,7 @@ Anda dapat membayangkan tentang DeFi dalam lapisan: 3. Protokol – [kontrak pintar](/glossary/#smart-contract) yang menyediakan fungsionalitas, misalnya, layanan yang memungkinkan pemberian pinjaman aset yang terdesentralisasi. 4. [Aplikasi](/dapps/) – produk yang kita gunakan untuk mengelola dan mengakses protokol. -Catatan: sebagian besar DeFi menggunakan [standar ERC-20](/glossary/#erc-20). Aplikasi di DeFi menggunakan pembungkus untuk ETH yang disebut Wrapped Ether (WETH). [Pelajari lebih lanjut tentang wrapped ether](/wrapped-eth). +Catatan: sebagian besar DeFi menggunakan [standar ERC-20](/glossary/#erc-20). Aplikasi di DeFi menggunakan pembungkus ETH yang disebut Wrapped ether (WETH). [Pelajari lebih lanjut tentang wrapped ether](/wrapped-eth). ## Bangun DeFi {#build-defi} @@ -358,4 +359,4 @@ DeFi adalah gerakan sumber terbuka. Anda bisa memeriksa, melakukan fork, dan ber - \ No newline at end of file + diff --git a/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md index ef6f4b10a5a..0609ecad20b 100644 --- a/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ Siapa pun yang diizinkan untuk mentransfer sebuah token diizinkan untuk membakar Berlawanan dengan Solidity, Vyper tidak memiliki warisan. Ini adalah pilihan rancangan yang disengaja untuk membuat kode lebih jelas dan karena itu lebih mudah untuk diamankan. Jadi, untuk membuat kontrak ERC-721 Vyper Anda, Anda mengambil [kontrak ini](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) dan memodifikasinya untuk mengimplementasikan logika bisnis yang Anda inginkan. -# Kesimpulan {#conclusion} +## Kesimpulan {#conclusion} Sebagai tinjauan, berikut adalah beberapa dari pokok pikiran terpenting dalam kontrak ini: diff --git a/public/content/translations/id/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/id/developers/tutorials/erc20-annotated-code/index.md index 74614ec548b..0b54c1a5db4 100644 --- a/public/content/translations/id/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/id/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ Fungsi `a.add(b)` aman untuk ditambahkan. Dalam kasus yang jarang terjadi bahwa Keempat fungsi ini melakukan pekerjaan sebenarnya: `_transfer`, `_mint`, `_burn`, dan `_approve`. -#### Fungsi \_transfer {#\_transfer} +#### Fungsi \_transfer {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ Baris-baris ini benar-benar melakukan transfer. Perhatikan bahwa **tidak terjadi Akhirnya, pancarkan aksi `Transfer`. Aksi tidak dapat diakses oleh kontrak pintar, tetapi kode yang beroperasi di luar rantai blok dapat mendengarkan aksi dan bereaksi terhadapnya. Contohnya, dompet dapat menelusuri waktu pemilik mendapatkan lebih banyak token. -#### Fungsi \_mint dan \_burn {#\_mint-and-\_burn} +#### Fungsi \_mint dan \_burn {#_mint-and-_burn} Kedua fungsi (`_mint` dan `_burn`) ini memodifikasi total persediaan token. Kedua fungsi tersebut bersifat internal dan tidak memiliki fungsi yang memanggil kedua fungsi tersebut dalam kontrak ini, sehingga kedua fungsi tersebut hanya berguna jika Anda mewariskannya dari kontrak dan menambahkan logika Anda sendiri untuk menentukan dalam kondisi apa untuk mencetak token baru atau membakar token yang sudah ada. @@ -706,7 +706,7 @@ Pastikan memperbarui `_totalSupply` ketika total jumlah token berubah. Fungsi `_burn` hampir sama dengan `_mint`, kecuali bergerak ke arah yang lain. -#### Fungsi \_approve {#\_approve} +#### Fungsi \_approve {#_approve} Fungsi ini benar-benar menentukan tunjangan. Perhatikan bahwa fungsi tersebut membuat pemilik menentukan tunjangan yang lebih tinggi dari saldo pemilik saat ini. Ini OKE karena saldo diperiksa pada waktu transfer terjadi, ketika saldonya dapat berbeda dari saldo saat tunjangan dibuat. @@ -784,7 +784,7 @@ Fungsi ini memodifikasi variabel `_decimals` yang digunakan untuk memberitahu an Fungsi kaitan ini yang akan dipanggil selama transfer. It is empty here, but if you need it to do something you just override it. -# Kesimpulan {#conclusion} +## Kesimpulan {#conclusion} Sebagai tinjauan ulang, berikut adalah beberapa pemikiran paling penting dalam kontrak ini (menurut pendapat saya, kepunyaan Anda mungkin bisa saja berbeda): diff --git a/public/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md index 90a95143326..236aa32d24e 100644 --- a/public/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md +++ b/public/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md @@ -15,7 +15,7 @@ published: 2021-04-22 [Beeple](https://www.nytimes.com/2021/03/11/arts/design/nft-auction-christies-beeple.html): $69 Juta [3LAU](https://www.forbes.com/sites/abrambrown/2021/03/03/3lau-nft-nonfungible-tokens-justin-blau/?sh=5f72ef64643b): $11 Juta [Grimes](https://www.theguardian.com/music/2021/mar/02/grimes-sells-digital-art-collection-non-fungible-tokens): $6 Juta -Semuanya mencetak NFT mereka menggunakan API efektif Alchemy. Dalam tutorial ini, kami akan mengajarkan Anda cara melakukan hal yang sama dalam waktu <10 menit. +Semuanya mencetak NFT mereka menggunakan API efektif Alchemy. Dalam tutorial ini, kami akan mengajarkan Anda cara melakukan hal yang sama dalam waktu \<10 menit. "Mencetak NFT" adalah tindakan mempublikasikan instance unik dari token ERC-721 Anda di rantai blok. Dengan menggunakan kontrak pintar kita dari [Bagian 1 seri tutorial NFT ini](/developers/tutorials/how-to-write-and-deploy-an-nft/), mari gunakan kemampuan web3 kita dan cetak NFT. Pada akhir tutorial ini, Anda akan dapat mencetak sebanyak mungkin NFT sesuai keinginan (dan dompet) Anda! diff --git a/public/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 9e53a664ef3..f7b11aac6b5 100644 --- a/public/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -77,7 +77,7 @@ Sekarang karena kita ada di dalam folder proyek kita, kita akan menggunakan npm npm init Tidak jadi masalah bagaimana cara Anda menjawab pertanyaan instalasinya, berikut adalah cara kami melakukannya sebagai referensi: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -100,7 +100,7 @@ Tidak jadi masalah bagaimana cara Anda menjawab pertanyaan instalasinya, berikut "author": "", "license": "ISC" } - +``` Setujui package.json, dan kita siap untuk beraksi! ## Langkah 7: Instal [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} @@ -262,6 +262,7 @@ Kita sejauh ini telah menambahkan beberapa dependensi dan plugin, kini kita perl Perbarui hardhat.config.js Anda agar terlihat seperti ini: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -279,6 +280,7 @@ Perbarui hardhat.config.js Anda agar terlihat seperti ini: } }, } +``` ## Langkah 14: Mengkompilasi kontrak kita {#compile-contract} diff --git a/public/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md index be07d1f0381..55441fcb3ce 100644 --- a/public/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md +++ b/public/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md @@ -45,6 +45,7 @@ Itu akan tampak seperti ini:
                  package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Itu akan tampak seperti ini: "typescript": "^3.8.3" } } +```
                  tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Itu akan tampak seperti ini: "target": "ES2018" } } +```
                  @@ -104,6 +108,7 @@ Itu akan tampak seperti ini:
                  .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Itu akan tampak seperti ini: } ] } +```
                  @@ -709,6 +715,7 @@ Anda akan melihat bahwa Waffle mengompilasi kontrak Anda dan menempatkan output
                  BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Anda akan melihat bahwa Waffle mengompilasi kontrak Anda dan menempatkan output "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                  ## Langkah #4: Uji kontrak pintar Anda [Tautkan ke dokumen](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md index be07d1f0381..55441fcb3ce 100644 --- a/public/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md +++ b/public/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md @@ -45,6 +45,7 @@ Itu akan tampak seperti ini:
                  package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Itu akan tampak seperti ini: "typescript": "^3.8.3" } } +```
                  tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Itu akan tampak seperti ini: "target": "ES2018" } } +```
                  @@ -104,6 +108,7 @@ Itu akan tampak seperti ini:
                  .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Itu akan tampak seperti ini: } ] } +```
                  @@ -709,6 +715,7 @@ Anda akan melihat bahwa Waffle mengompilasi kontrak Anda dan menempatkan output
                  BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Anda akan melihat bahwa Waffle mengompilasi kontrak Anda dan menempatkan output "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                  ## Langkah #4: Uji kontrak pintar Anda [Tautkan ke dokumen](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/id/nft/index.md b/public/content/translations/id/nft/index.md index 6a352761c5e..1a7b956f8e2 100644 --- a/public/content/translations/id/nft/index.md +++ b/public/content/translations/id/nft/index.md @@ -1,5 +1,6 @@ --- title: Token yang tidak dapat dipertukarkan (NFT) +metaTitle: Apa itu NFT? | Manfaat dan kegunaannya description: Gambaran umum tentang NFT di Ethereum lang: id template: use-cases diff --git a/public/content/translations/id/roadmap/merge/index.md b/public/content/translations/id/roadmap/merge/index.md index 35dca2d64d4..75c5e27af3c 100644 --- a/public/content/translations/id/roadmap/merge/index.md +++ b/public/content/translations/id/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Dapp dan pengembang kontrak pintar" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -Penggabungan disertai dengan perubahan konsensus, yang juga mencakup perubahan yang terkait dengan:< +Penggabungan disertai dengan perubahan konsensus, yang juga mencakup perubahan yang terkait dengan:
                  • struktur blok
                  • diff --git a/public/content/translations/id/smart-contracts/index.md b/public/content/translations/id/smart-contracts/index.md index 5b72531c8db..6127bb8c597 100644 --- a/public/content/translations/id/smart-contracts/index.md +++ b/public/content/translations/id/smart-contracts/index.md @@ -1,5 +1,6 @@ --- title: Kontrak pintar +metaTitle: "Kontrak pintar: Kegunaan dan manfaatnya" description: Pengantar non-teknis untuk kontrak pintar lang: id --- @@ -76,7 +77,6 @@ Mereka dapat melakukan komputasi, membuat mata uang, menyimpan data, mencetak [N ## Bacaan lebih lanjut {#further-reading} - [Bagaimana Kontrak Pintar Akan Mengubah Dunia](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Kontrak Pintar: Teknologi Rantai Blok Yang Akan Menggantikan Pengacara](https://blockgeeks.com/guides/smart-contracts/) - [Kontrak pintar untuk pengembang](/developers/docs/smart-contracts/) - [Belajar cara menulis kontrak pintar](/developers/learning-tools/) - [Penguasaan Ethereum - Apa itu Kontrak Pintar?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/it/community/research/index.md b/public/content/translations/it/community/research/index.md index bf52abdf11d..963e8894d0e 100644 --- a/public/content/translations/it/community/research/index.md +++ b/public/content/translations/it/community/research/index.md @@ -111,7 +111,7 @@ Attualmente esistono diversi protocolli di Livello 2 che ridimensionano Ethereum #### Ricerca recente {#recent-research-2} - [Ordinamento equo di Arbitrum per i sequenziatori](https://eprint.iacr.org/2021/1465) -- [Livello 2 su ethresear.ch](https://ethresear.ch/c/layer-2/32) +- [Ethresear.ch Livello 2](https://ethresear.ch/c/layer-2/32) - [Tabella di marcia incentrata sui rollup](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) - [L2Beat](https://l2beat.com/) @@ -189,7 +189,7 @@ I portafogli di Ethereum possono essere estensioni del browser, applicazioni des - [Introduzione ai portafogli elettronici](/wallets/) - [Introduzione alla sicurezza dei portafogli](/security/) -- [Sicurezza su ethresear.ch](https://ethresear.ch/tag/security) +- [Ethresear.ch Sicurezza](https://ethresear.ch/tag/security) - [Astrazione del conto EIP-2938](https://eips.ethereum.org/EIPS/eip-2938) - [Astrazione del conto EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) @@ -364,7 +364,7 @@ Gli oracoli importano dati off-chain sulla blockchain in modo decentralizzato e - [Introduzione agli oracoli](/developers/docs/oracles/) -#### Ricerca recente {#recent-research-18} +#### Ricerche recenti {#recent-research-18} - [Sondaggio sugli oracoli delle blockchain](https://arxiv.org/pdf/2004.07140.pdf) - [White paper di Chainlink](https://chain.link/whitepaper) @@ -377,11 +377,11 @@ Gli attacchi su Ethereum generalmente sfruttano le vulnerabilità di singole app - [Rapporto sull'exploit "wormhole"](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) - [Elenco degli hack post-mortem dei contratti Ethereum](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191) -- [Ultime notizie su Rekt](https://twitter.com/RektHQ?s=20\&t=3otjYQdM9Bqk8k3n1a1Adg) +- [Ultime notizie su Rekt](https://twitter.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg) #### Ricerca recente {#recent-research-19} -- [Applicazioni su ethresear.ch](https://ethresear.ch/c/applications/18) +- [Ethresear.ch Applicazioni](https://ethresear.ch/c/applications/18) ### Stack tecnologico {#technology-stack} diff --git a/public/content/translations/it/contributing/index.md b/public/content/translations/it/contributing/index.md index 665dc55ee3d..7a4e2e79925 100644 --- a/public/content/translations/it/contributing/index.md +++ b/public/content/translations/it/contributing/index.md @@ -19,7 +19,7 @@ Siamo un'accogliente community che ti aiuterà a crescere e a istruirti nell'eco - [Lavora a un ticket aperto](https://github.com/ethereum/ethereum-org-website/issues): attività che abbiamo identificato come necessarie **Progettazione** -- [Aiuta a progettare il sito web](/contributing/design/): i progettisti di tutti i livelli possono contribuire a migliorare il sito web +- [Aiuta a progettare il sito web](/contributing/design/) - Possono contribuire a migliorare il sito i designer di qualsiasi livello **Contenuto** - [Crea/modifica i contenuti](/contributing/#how-to-update-content): suggerisci nuove pagine o apporta modifiche a ciò che esiste già @@ -94,7 +94,7 @@ Se il tuo contributo viene aggiunto a ethereum.org, avrai una possibilità di ri ### Come reclamare 1. Unisciti al nostro [server Discord](https://discord.gg/ethereum-org). -2. Incolla un collegamento ai tuoi contributi nel canale `#🥇 | proof-of-contribution` +2. Incolla un link ai tuoi contributi nel canale `#🥇 | proof-of-contribution`. 3. Attendi che un membro del nostro team ti invii un collegamento al tuo OAT. 4. Rivendica il tuo OAT! diff --git a/public/content/translations/it/contributing/translation-program/translators-guide/index.md b/public/content/translations/it/contributing/translation-program/translators-guide/index.md index 86ab65ec7d8..b9a7c3d0bf5 100644 --- a/public/content/translations/it/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/it/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Il modo migliore per gestire i collegamenti è copiarli direttamente dal testo d ![Esempio di link.png](./example-of-link.png) -I link appaiono nel testo di partenza anche sotto forma di tag (cioè <0> ). Se passi sul tag, l'editor ne mostrerà il contenuto completo; talvolta questi tag rappresentano dei link. +I link appaiono nel testo di partenza anche sotto forma di tag (cioè `<0> `). Se passi sul tag, l'editor ne mostrerà il contenuto completo; talvolta questi tag rappresentano dei link. È molto importante copiare i link dal testo di partenza senza modificarne l'ordine. @@ -154,7 +154,7 @@ nonce - _Testo non traducibile_ Il testo di partenza contiene anche tag abbreviati, contenenti solo numeri, il che significa che la loro funzione non è immediatamente ovvia. Puoi passare su questi tag per vedere esattamente quale scopo assolvono. -Nell'esempio seguente, passando con il mouse sul <0> tag puoi vedere che rappresenta `` e contiene un frammento di codice, quindi il contenuto non va tradotto. +Nell'esempio seguente, passando con il mouse sul `<0>` tag puoi vedere che rappresenta `` e contiene un frammento di codice, quindi il contenuto non va tradotto. ![Esempio di tag ambigui.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/it/dao/index.md b/public/content/translations/it/dao/index.md index 767eeabd5eb..16cc556a9df 100644 --- a/public/content/translations/it/dao/index.md +++ b/public/content/translations/it/dao/index.md @@ -1,5 +1,6 @@ --- -title: Organizzazioni autonome decentralizzate (DAO) +title: Cos'è una DAO? +metaTitle: Cos'è una DAO? | Organizzazione autonoma decentralizzata description: Una panoramica delle DAO su Ethereum lang: it template: use-cases diff --git a/public/content/translations/it/defi/index.md b/public/content/translations/it/defi/index.md index 8fbd2e9279c..c75b2736b44 100644 --- a/public/content/translations/it/defi/index.md +++ b/public/content/translations/it/defi/index.md @@ -1,5 +1,6 @@ --- title: Finanza decentralizzata (DeFi) +metaTitle: Cos'è la DeFi? | Benefici e utilizzi della finanza decentralizzata description: Una panoramica sulla DeFi su Ethereum lang: it template: use-cases @@ -168,7 +169,7 @@ Se l'offerta sulla piattaforma di scambio B cala improvvisamente, e l'utente non Per applicare l'esempio precedente nel mondo finanziario tradizionale, necessiteresti di un ingente importo di denaro. Queste strategie di guadagno sono accessibili soltanto a persone già ricche. I prestiti istantanei sono l'esempio ddi un futuro in cui possedere denaro non è necessariamente un prerequisito per guadagnare. - + Di più sui prestiti istantanei @@ -324,7 +325,7 @@ Puoi pensare alla DeFi in termini di strati: 3. I protocolli: [contratti intelligenti](/glossary/#smart-contract) che forniscono la funzionalità, ad esempio, un servizio che consente il prestito decentralizzato delle risorse. 4. [Le applicazioni](/dapps/): i prodotti che utilizziamo per gestire e accedere ai protocolli. -Nota: la DeFi usa in buona parte lo [standard ERC-20](/glossary/#erc-20). Le applicazioni in DeFi usano un wrapper per ETH chiamato Wrapped Ether (WETH). [Scopri di più sul wrapped ether](/wrapped-eth). +Nota: la DeFi usa in buona parte lo [standard ERC-20](/glossary/#erc-20). Le applicazioni nella DeFi utilizzano la versione "wrapped" di ETH, chiamata Wrapped Ether (WETH). [Scopri di più sul wrapped ether](/wrapped-eth). ## Creare DeFi {#build-defi} @@ -358,4 +359,4 @@ La DeFi è un movimento open source. I protocolli e le applicazioni della DeFi s - \ No newline at end of file + diff --git a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md index b197f7c9521..410fe8e3f78 100644 --- a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md +++ b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md @@ -1,141 +1,144 @@ --- -title: Attacco e difesa del proof-of-stake di Ethereum -description: Scopri di più sui vettori di attacco noti sul proof-of-stake di Ethereum e come sono difesi. +title: "Proof-of-stake Ethereum: attacchi e meccanismi di difesa" +description: Scopri di più sui vettori di attacco noti sul proof-of-stake di Ethereum e come è possibile difendersi da essi. lang: it --- -Ladri e sabotatori sono costantemente alla ricerca di opportunità per attaccare i software dei client di Ethereum. Questa pagina delinea i vettori di attacco noti sul livello di consenso di Ethereum, definendo come possono essere difesi. Le informazioni su questa pagina sono adattate da una [versione più lunga](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). +Ladri e sabotatori sono costantemente alla ricerca di opportunità per attaccare i software client di Ethereum. Questa pagina illustra i vettori di attacco noti sul livello del consenso di Ethereum e come è possibile difendersi da tali attacchi. Il contenuto di questa pagina è adattato da una [versione più lunga](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). ## Prerequisiti {#prerequisites} -È necessario avere delle conoscenze di base del [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Inoltre, sarebbe utile avere una comprensione di base del [livello d'incentivazione](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) di Ethereum e dell'algoritmo di scelta della diramazione, [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). +Sono necessarie conoscenze minime sul [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Sarà inoltre utile possedere una comprensione basilare del [livello di incentivo](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) di Ethereum, nonché dell'algoritmo di scelta della biforcazione, [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). ## Cosa vogliono gli utenti malevoli? {#what-do-attackers-want} -Spesso si crede erroneamente che un utente malevolo di successo possa generare altro ether, o drenarlo da conti arbitrari. Nessuna delle due cose è possibile, poiché tutte le transazioni sono eseguite da tutti i client di esecuzione sulla rete. Devono soddisfare delle condizioni di validità di base (es. le transazioni sono firmate dalla chiave privata del mittente, il mittente ha un saldo sufficiente, ecc.), altrimenti sono semplicemente annullate. Esistono tre classi di risultati che un utente malevolo potrebbe realisticamente ottenere: riorganizzazioni, doppia finalità o ritardo della finalità. +Spesso si crede erroneamente che, in caso di successo, un utente malevolo possa generare nuovo ether o drenarlo da qualsiasi conto desideri. Nessuna delle due cose è possibile, poiché tutte le transazioni sono eseguite da tutti i client di esecuzione sulla rete. Se non soddisfano le condizioni di validità di base (es. sono firmate dalla chiave privata del mittente, il mittente ha un saldo sufficiente ecc.) vengono semplicemente annullate. Esistono tre classi di risultati a cui un utente malevolo può realisticamente mirare: riorganizzazioni, doppia finalità o ritardo di finalità. -Una **"riorganizzazione"** è un rimescolamento dei blocchi in un nuovo ordine, magari con l'aggiunta o la sottrazione di blocchi nella catena canonica. Una riorganizzazione malevola potrebbe assicurare l'inclusione o esclusione di blocchi specifici, consentendo la doppia spesa o l'estrazione di valore da transazioni di front-running e back-running (MEV). Le riorganizzazioni, inoltre, potrebbero essere utilizzate per impedire l'inclusione di certe transazioni nella catena canonica: una forma di censura. La forma più estrema di riorganizzazione è detta "inversione di finalità", che rimuove o sostituisce dei blocchi precedentemente finalizzati. Questa è possibile soltanto se più di ⅓ dell'ether in staking totale è distrutto dall'utente malevolo; questa garanzia è nota come "finalità economica" – maggiori informazioni al riguardo sono riportate in seguito. +Una **"riorganizzazione"** è un rimescolamento dei blocchi in un nuovo ordine, a volte con l'aggiunta o sottrazione di blocchi nella catena canonica. Una riorganizzazione malevola può portare all'inclusione o esclusione di blocchi specifici, consentendo una doppia spesa o l'estrazione di valore da transazioni di front-running e back-running (MEV). Le riorganizzazioni, inoltre, possono essere utilizzate per impedire l'inclusione di determinate transazioni nella catena canonica: una forma di censura. La forma più estrema di riorganizzazione è detta "inversione di finalità", che rimuove o sostituisce dei blocchi precedentemente finalizzati. Essa è possibile soltanto se più di ⅓ dell'ether totale in staking è distrutto dall'utente malevolo; questa garanzia è detta "finalità economica" (argomento che affronteremo in maggior dettaglio più avanti). -La **doppia finalità** è l'improbabile ma grave condizione in cui due diramazioni riescono a finalizzarsi simultaneamente, creando uno scisma permanente nella catena. Ciò è teoricamente possibile per un utente malevolo disposto a rischiare il 34% dell'ether in staking totale. La community sarebbe obbligata a coordinarsi all'esterno della catena e accordarsi su quale catena seguire, il che richiederebbe forza al livello sociale. +La **doppia finalità** è l'improbabile ma grave situazione in cui due biforcazioni riescano a finalizzarsi simultaneamente, creando uno scisma permanente nella catena. Ciò è teoricamente possibile per un utente malevolo disposto a rischiare il 34% dell'ether totale in staking. La community sarebbe costretta a coordinarsi fuori dalla catena e ad accordarsi su quale catena seguire, il che richiederebbe forza al livello sociale. -Un attacco di **ritardo di finalità** impedisce alla rete di raggiungere le condizioni necessarie per finalizzare le sezioni della catena. Senza finalità, è difficile fidarsi delle applicazioni finanziarie basate su Ethereum. L'obiettivo di un attacco di ritardo di finalità è, probabilmente, semplicemente quello di interrompere Ethereum piuttosto che di trarne direttamente profitto, a meno che l'utente malevolo non abbia qualche posizione breve strategica. +Un attacco di **ritardo di finalità** impedisce alla rete di raggiungere le condizioni necessarie per finalizzare le sezioni della catena. Senza finalità è difficile fidarsi delle applicazioni finanziarie basate su Ethereum. L'obiettivo di un attacco di ritardo di finalità è in genere semplicemente quello di compromettere il corretto funzionamento di Ethereum piuttosto che di trarne direttamente profitto, a meno che l'utente malevolo non detenga qualche posizione corta strategica. -Un attacco al livello sociale potrebbe mirare a minare la fiducia pubblica in Ethereum, svalutare l'ether, ridurne l'adozione o indebolire la community di Ethereum per complicare la coordinazione fuori banda. +Un attacco al livello sociale potrebbe mirare a minare la fiducia pubblica in Ethereum, svalutare l'ether, ridurne l'adozione o indebolire la community di Ethereum per rendere più difficile il coordinamento fuori banda. -Avendo stabilito perché un avversario potrebbe attaccare Ethereum, le seguenti sezioni esaminano _come_ potrebbe farlo. +Abbiamo dunque visto perché un utente malevolo potrebbe attaccare Ethereum; le sezioni seguenti esaminano _come_ potrebbero farlo. ## Metodi di attacco {#methods-of-attack} ### Attacchi al livello 0 {#layer-0} -Prima di tutto, gli individui che non partecipano attivamente a Ethereum (eseguendo un software del client), possono attaccarlo prendendo di mira il livello sociale (Livello 0). Il Livello 0 è la base su cui è costruito Ethereum e, come tale, rappresenta una potenziale superficie per gli attacchi, con conseguenze che si propagano sul resto dello stack. Alcuni esempi potrebbero includere: +Innanzitutto chi non partecipa attivamente a Ethereum (eseguendo un software client) può attaccarlo prendendo di mira il livello sociale (livello 0). Il livello 0 è la base su cui è costruito Ethereum e, come tale, rappresenta una potenziale superficie per gli attacchi, con conseguenze che si propagano sul resto dello stack. Alcuni esempi potrebbero includere: + +- Una campagna di disinformazione in grado di erodere la fiducia della community nella tabella di marcia di Ethereum, nei team di sviluppatori, nelle app ecc. Questo potrebbe ridurre il numero di persone desiderose di partecipare alla protezione della rete, peggiorando sia la decentralizzazione che la sicurezza cripto-economica. -- Una campagna di disinformazione potrebbe erodere la fiducia della community nella tabella di marcia di Ethereum, nei team di sviluppatori, nelle app, ecc. Questo potrebbe quindi ridurre il numero di persone desiderose di partecipare alla protezione della rete, penalizzando sia la decentralizzazione che la sicurezza cripto-economica. - Attacchi mirati e/o intimidazioni dirette alla community degli sviluppatori. Questo potrebbe indurre all'uscita volontaria degli sviluppatori e rallentare il progresso di Ethereum. -- Anche una regolamentazione troppo zelante potrebbe essere considerata un attacco al Livello 0, poiché potrebbe disincentivare rapidamente la partecipazione e l'adozione. -- L'infiltrazione di utenti esperti ma malevoli nella community di sviluppatori il cui obiettivo è rallentare il progresso con discussioni futili, ritardare le decisioni fondamentali, creare spam, ecc. +- Anche una regolamentazione troppo rigida può essere considerata un attacco al livello 0, dal momento che potrebbe disincentivare rapidamente la partecipazione e l'adozione. + +- L'infiltrazione di utenti esperti ma malevoli nella community di sviluppatori il cui obiettivo è rallentare il progresso con discussioni futili, ritardare le decisioni fondamentali, creare spam ecc. + - Tangenti agli attori principali nell'ecosistema di Ethereum per influenzare il processo decisionale. -Ciò che rende particolarmente pericolosi questi attacchi è che in molti casi è necessario disporre di pochissimo capitale o conoscenze tecniche. Un attacco al Livello 0 potrebbe essere un moltiplicatore di un attacco cripto-economico. Ad esempio, se la censura o l'inversione della finalità fossero ottenute da uno stakeholder attivo di maggioranza, minare il livello sociale potrebbe complicare la coordinazione di una risposta fuori banda della community. +Ciò che rende particolarmente pericolosi questi attacchi è che in molti casi è necessario disporre di pochissimo capitale o conoscenze tecniche. Un attacco al livello 0 potrebbe essere un moltiplicatore di un attacco cripto-economico. Ad esempio, se la censura o l'inversione di finalità fossero ottenute da uno stakeholder di maggioranza malevolo, minare il livello sociale potrebbe rendere più difficile il coordinamento di una risposta fuori banda da parte della community. -Difendersi dagli attacchi di Livello 0 probabilmente non è semplice, ma possono essere stabiliti dei principi fondamentali. Uno di questi è mantenere un rapporto complessivamente elevato tra segnale e rumore per le informazioni pubbliche su Ethereum, create e diffuse da membri onesti della community tramite blog, server Discord, specifiche annotate, libri, podcast e YouTube. Qui su ethereum.org cerchiamo di mantenere informazioni accurate e di tradurle in quante più lingue possibili. Inondare uno spazio di informazioni di alta qualità e meme è una difesa efficiente contro la disinformazione. +Difendersi dagli attacchi al livello 0 probabilmente non è semplice, ma possono essere stabiliti dei principi fondamentali. Uno di questi è mantenere un rapporto complessivamente elevato tra segnale e rumore per le informazioni pubbliche su Ethereum, create e diffuse da membri onesti della community tramite blog, server Discord, specifiche annotate, libri, podcast e YouTube. Qui su ethereum.org ci impegniamo a fondo per far sì che le informazioni restino accurate e per tradurle in quante più lingue possibili. Inondare uno spazio di informazioni e meme di alta qualità è un modo efficace per difendersi dalla disinformazione. -Un'altra fortificazione importante contro gli attacchi al livello sociale è una chiara dichiarazione di missione e un chiaro protocollo di governance. Ethereum si è posizionato come il campione di decentralizzazione e sicurezza tra i livelli 1 dei contratti intelligenti, dando anche un elevato valore a scalabilità e sostenibilità. A prescindere dall'insorgere di divergenze nella community di Ethereum, questi principi essenziali sono minimamente compromessi. Valutare una narrativa basata su tali principi essenziali ed esaminarli tramite tranche successive di revisioni nel processo di EIP (proposta di miglioramento di Ethereum) potrebbe aiutare la community a distinguere gli utenti buoni da quelli "cattivi" e a limitare l'ambito di influenza degli utenti malevoli nella direzione futura di Ethereum. +Un'altra protezione importante contro gli attacchi al livello sociale è rappresentata da una chiara espressione della propria mission e da un chiaro protocollo di governance. Ethereum si è posizionato come il campione di decentralizzazione e sicurezza tra i livelli 1 dei contratti intelligenti, attribuendo anche un elevato valore a scalabilità e sostenibilità. A prescindere dall'insorgere di divergenze nella community di Ethereum, questi principi essenziali restano sostanzialmente integri. Elaborare una narrativa basata su tali principi fondamentali ed esaminarli tramite round successivi di revisioni nel processo di EIP (Ethereum Improvement Proposal, proposta di miglioramento di Ethereum) può aiutare la community a distinguere gli utenti buoni da quelli "cattivi" e a limitare i margini di influenza di utenti malevoli nella direzione futura di Ethereum. -Infine, è fondamentale che la community di Ethereum resti aperta e accogliente per tutti i partecipanti. Una community con guardiani ed esclusività è una community specialmente vulnerabile agli attacchi sociali, poiché è facile costruire narrative "noi e loro". Il tribalismo e il massimalismo tossico feriscono la community ed erodono la sicurezza del Livello 0. Gli utenti di Ethereum con un interesse acquisito nella sicurezza della rete dovrebbero vedere la propria condotta online e nel mondo reale come un contributo diretto alla sicurezza del Livello 0 di Ethereum. +Infine è fondamentale che la community di Ethereum resti aperta e accogliente per tutti i partecipanti. Una community con al suo interno dei "gatekeeper" ed esclusiva è una community particolarmente vulnerabile ad attacchi sociali data la facilità di sviluppare narrative del tipo "noi contro loro". Il tribalismo e il massimalismo tossico fanno male alla community ed erodono la sicurezza del livello 0. Gli utenti di Ethereum interessati personalmente dalla sicurezza della rete dovrebbero vedere la propria condotta online e nel mondo reale come un contributo diretto alla sicurezza del livello 0 di Ethereum. -### Attaccare il protocollo {#attacking-the-protocol} +### Attacco del protocollo {#attacking-the-protocol} -Chiunque può eseguire un software del client di Ethereum. Per aggiungere un validatore a un client, un utente deve mettere 32 ether in staking nel contratto di deposito. Un validatore consente a un utente di partecipare attivamente alla sicurezza della rete di Ethereum proponendo e attestando nuovi blocchi. Il validatore ora ha una voce che può usare per influenzare i contenuti futuri della blockchain; può farlo onestamente, accrescendo i propri ether tramite le ricompense, o può provare a manipolare il processo a proprio vantaggio, rischiando il proprio stake. Un metodo per generare un attacco è accumulare una quota maggiore dello stake totale e utilizzarla per superare i voti dei validatori onesti. Maggiore è la quota dello stake controllata dall'utente malevolo, maggiore è il suo potere di voto, specialmente in determinati traguardi economici che esploreremo in seguito. Tuttavia, gran parte degli utenti malevoli non riuscirà ad accumulare abbastanza ether per attaccare in questo modo, quindi dovrà invece utilizzare delle tecniche per manipolare la maggioranza onesta perché agisca in un certo modo. +Chiunque può eseguire un software client di Ethereum. Per aggiungere un validatore a un client, un utente deve mettere 32 ether in staking nel contratto di deposito. Un validatore consente a un utente di partecipare attivamente alla sicurezza della rete di Ethereum proponendo e attestando nuovi blocchi. In tal modo il validatore ha una voce che può usare per influenzare i contenuti futuri della blockchain; può farlo onestamente, accrescendo i propri ether tramite le ricompense, o può provare a manipolare il processo a proprio vantaggio, rischiando il proprio stake. Un metodo per intraprendere un attacco è accumulare una quota maggiore dello stake totale e utilizzarla per superare i voti dei validatori onesti. Maggiore è la quota dello stake controllata dall'utente malevolo, maggiore è il suo potere di voto, specialmente a determinate soglie in termini economici che vedremo più avanti. Tuttavia gran parte degli utenti malevoli non riuscirà ad accumulare abbastanza ether da riuscire ad intraprendere un tale attacco, quindi dovrà utilizzare delle tecniche subdole per manipolare la maggioranza onesta perché agisca in un certo modo. -Fondamentalmente, tutti gli attacchi con pochi ether in staking sono lievi variazioni di due tipi di comportamenti scorretti dei validatori: ipoattività (mancata attivazione/proposta o farlo in ritardo) o iperattività (proporre/attestare troppe volte in uno slot). Nelle loro forme più basilari, queste azioni sono gestite facilmente dall'algoritmo di scelta della diramazione e dal livello d'incentivazione, ma esistono metodi più intelligenti per imbrogliare il sistema a vantaggio dell'utente malevolo. +Fondamentalmente tutti gli attacchi con pochi ether in staking sono lievi variazioni di due tipi di comportamenti scorretti dei validatori: ipoattività (mancata o ritardata attestazione/proposta) o iperattività (attestazioni/proposte eccessive in uno slot). Nelle loro forme più basilari, queste azioni sono gestite facilmente dall'algoritmo di scelta della biforcazione e dal livello d'incentivazione, ma esistono metodi più intelligenti per imbrogliare il sistema a proprio vantaggio. -### Attacchi con piccoli importi di ETH {#attacks-by-small-stakeholders} +### Attacchi che consumano pochi ETH {#attacks-by-small-stakeholders} -#### riorganizzazioni {#reorgs} +#### Riorganizzazioni {#reorgs} -Svariati documenti hanno spiegato gli attacchi a Ethereum che ottengono riorganizzazioni o ritardi di finalità con soltanto una piccola quota dell'ether in staking totale. Questi, generalmente, si affidano al fatto che l'utente malevolo trattenga alcune informazioni da altri validatori per poi rilasciarle in modo sfumato e/o in un momento opportuno. Solitamente mirano a spostare alcuni blocchi onesti dalla catena canonica. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf), hanno mostrato come un validatore malevolo possa creare e attestare un blocco (`B`) per uno slot specifico `n+1` ma evitare di propagarlo ad altri nodi sulla rete. Invece, si attiene a quel blocco attestato fino allo slot successivo `n+2`. Un validatore onesto propone un blocco (`C`) per lo slot `n+2`. Quasi simultaneamente, l'utente malevolo può rilasciare il proprio blocco trattenuto (`B`) e le attestazioni trattenute per esso, oltre ad attestare `B` come testa della catena con i propri voti per lo slot `n+2`, negando di fatto l'esistenza del blocco onesto `C`. Quando il blocco onesto `D` viene rilasciato, l'algoritmo di scelta della diramazione vede la costruzione di `D` in cima a `B` come più pesante della costruzione di `D` in cima a `C`. L'utente malevolo, dunque, è riuscito a rimuovere il blocco onesto `C` nello slot `n+2` dalla catena canonica utilizzando una riorganizzazione a priori di 1 blocco. [Un utente malevolo con il 34%](https://www.youtube.com/watch?v=6vzXwwk12ZE) dello stake ha ottime probabilità di riuscire nel suo attacco, come spiegato [in questa nota](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). In teoria, però, questo attacco potrebbe essere tentato con stake inferiori. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) hanno descritto che questo attacco funziona con uno stake del 30%, ma è stato in seguito dimostrato come fattibile con il [2% dello stake totale](https://arxiv.org/pdf/2009.04987.pdf) e poi, ancora, per un [singolo validatore](https://arxiv.org/abs/2110.10086#) che utilizza le tecniche di bilanciamento che esamineremo nella prossima sezione. +Svariati articoli hanno illustrato attacchi a Ethereum che hanno ottenuto riorganizzazioni o ritardi di finalità con soltanto una piccola quota dell'ether in staking totale. Questi, generalmente, prevedono che l'utente malevolo si rifiuti di fornire determinate informazioni ad altri validatori per poi fornirle in modo vago e/o al momento opportuno. Solitamente mirano a spostare alcuni blocchi onesti dalla catena canonica. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) ha dimostrato come un validatore malevolo possa creare e attestare un blocco ("B") per uno specifico slot "n+1" impedendogli però di propagarsi ad altri nodi sulla rete e trattenendolo fino allo slot successivo ("n+2"). Un validatore onesto propone un blocco ("C") per lo slot "n+2". Quasi simultaneamente, l'utente malevolo può rilasciare il proprio blocco trattenuto ("B") e le relative attestazioni, nonché attestare "B" come la testa della catena con i propri voti per lo slot "n+2", negando a tutti gli effetti l'esistenza del blocco onesto ("C"). Al rilascio del blocco onesto "D", l'algoritmo di scelta della biforcazione vede la costruzione di "D" su "B" come di maggiore rilevanza rispetto a "D" su "C". L'utente malevolo è dunque riuscito a rimuovere il blocco onesto "C" nello slot "n+2" dalla catena canonica tramite la riorganizzazione ex ante di un blocco. [Un utente malevolo con il 34%](https://www.youtube.com/watch?v=6vzXwwk12ZE) dello stake ha un'alta probabilità di successo tramite questo attacco, come spiegato [in questa nota](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). In teoria, però, questo attacco potrebbe essere tentato anche con stake inferiori. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) ha descritto il funzionamento di questo attacco con uno stake del 30%, sebbene sia stato poi dimostrato che sia fattibile con il [2% dello stake totale](https://arxiv.org/pdf/2009.04987.pdf) e in seguito per un [solo validatore](https://arxiv.org/abs/2110.10086#) utilizzando tecniche di bilanciamento che esamineremo nella sezione successiva. -![riorganizzazione a priori](reorg-schematic.png) +![riorganizzazione ex ante](reorg-schematic.png) Un diagramma concettuale dell'attacco di riorganizzazione di un blocco descritto sopra (adattato da https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) -Un attacco più sofisticato può dividere l'insieme di validatori onesti in gruppi discreti aventi visioni diverse della testa della catena. Ciò è noto come **attacco di bilanciamento**. L'utente malevolo attende la propria possibilità di proporre un blocco e, quando arriva, tergiversa e ne propone due. Invia un blocco a metà dell'insieme dei validatori onesti e l'altro blocco all'altra metà. L'equivoco sarebbe rilevato dall'algoritmo di scelta della diramazione e il propositore di blocchi riceverebbe un taglio e sarebbe espulso dalla rete, ma i due blocchi continuerebbero a esistere e avrebbe circa metà dell'insieme dei validatori ad attestarlo per ogni diramazione. Nel mentre, i validatori malevoli rimanenti trattengono le proprie attestazioni. Quindi, rilasciando selettivamente le attestazioni a favore dell'una o dell'altra diramazione al numero sufficiente di validatori, proprio come eseguito dall'algoritmo di scelta della diramazione, portano il peso accumulato delle attestazioni a favore di una o dell'altra diramazione. Questo può continuare per sempre, con i validatori malevoli che mantengono una divisione equa dei validatori tra le due diramazioni. Poiché nessuna biforcazione può attrarre una supermaggioranza dei 2/3, la rete non finalizzerà. +Un attacco più sofisticato può consistere nel dividere l'insieme di validatori onesti in gruppi discreti aventi visioni diverse della testa della catena. Questo è noto come un **attacco di bilanciamento**. L'utente malevolo attende la propria chance di proporre un blocco e, quando arriva, fa finta di niente e ne propone due, inviando un blocco a metà dell'insieme dei validatori onesti e l'altro blocco all'altra metà. L'equivoco sarebbe rilevato dall'algoritmo di scelta della diramazione e il responsabile della proposta verrebbe sottoposto a slashing ed espulso dalla rete, ma i due blocchi continuerebbero a esistere e sarebbero attestati da circa metà dell'insieme dei validatori per ogni biforcazione. Nel frattempo i validatori malevoli rimanenti si rifiuterebbero di fornire le proprie attestazioni. Quindi, rilasciando selettivamente attestazioni a favore dell'una o dell'altra biforcazione al numero sufficiente di validatori man mano che viene eseguito l'algoritmo di scelta della biforcazione, tali validatori portano il peso accumulato delle attestazioni a favore di una o dell'altra biforcazione. Questo processo può proseguire indefinitamente, con i validatori malevoli che mantengono una divisione equa dei validatori tra le due biforcazioni. Poiché nessuna biforcazione è in grado di ottenere una supermaggioranza dei 2/3 del totale, la rete non viene finalizzata. -Gli **attacchi di rimbalzo** sono simili. Anche in questo caso i voti sono trattenuti dai validatori malevoli. Invece di rilasciarli per mantenere una divisione equa tra le due diramazioni, utilizzano i propri voti nei momenti opportuni per giustificare punti di controllo che si alternano tra la diramazione A e la diramazione B. Questo tira e molla di giustificazioni tra le due diramazioni impedisce la presenza di coppie di punti di controllo di origine e di destinazione giustificati finalizzabili su una delle due catene, interrompendo la finalità. +Gli **attacchi di rimbalzo** sono simili. Anche in questo caso i voti sono trattenuti dai validatori malevoli. Invece di rilasciarli per mantenere una divisione equa tra le due biforcazioni, questi utilizzano i propri voti al momento opportuno per giustificare punti di controllo che si alternano tra la biforcazione A e la biforcazione B. Questo tira e molla di giustificazioni tra le due biforcazioni impedisce che si arrivi a coppie di punti di controllo di origine e di destinazione giustificati finalizzabili su una delle due catene, interrompendo la finalità. -Sia gli attacchi di rimbalzo che quelli di bilanciamento si basano sul fatto che l'utente malevolo abbia un controllo molto preciso sulle tempistiche dei messaggi attraverso la rete, il che è improbabile. Tuttavia, le difese sono integrate nel protocollo sotto forma di ponderazione aggiuntiva data ai messaggi immediati rispetto a quelli lenti. Ciò è noto come [incremento del peso del propositore](https://github.com/ethereum/consensus-specs/pull/2730). Per difendersi dagli attacchi di rimbalzo, l'algoritmo di scelta della diramazione è stato aggiornato così che l'ultimo punto di controllo giustificato possa passare a quello di una catena alternativa soltanto durante il [primo 1/3 degli slot in ogni epoca](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Questa condizione impedisce all'utente malevolo di risparmiare voti da distribuire in seguito: l'algoritmo di scelta della diramazione, semplicemente, resta leale al punto di controllo che ha scelto nel primo 1/3 dell'epoca in cui avrebbero votato i validatori più onesti. +Sia gli attacchi di rimbalzo che quelli di bilanciamento si basano sul fatto che l'utente malevolo abbia un controllo molto preciso sulle tempistiche dei messaggi attraverso la rete, il che è improbabile. Il protocollo incorpora tuttavia alcune difese sotto forma di ponderazione aggiuntiva attribuita ai messaggi immediati rispetto a quelli lenti. Ciò è noto come [potenziamento del peso del propositore](https://github.com/ethereum/consensus-specs/pull/2730). Per difendersi dagli attacchi di rimbalzo, l'algoritmo di scelta della biforcazione è stato aggiornato affinché l'ultimo punto di controllo giustificato possa passare a quello di una catena alternativa solamente durante il [primo terzo degli slot in ogni epoca](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Questa condizione impedisce all'utente malevolo di risparmiare voti da utilizzare in seguito: l'algoritmo di scelta della biforcazione, semplicemente, resta leale al punto di controllo che ha scelto nel primo terzo dell'epoca in cui avrebbero votato i validatori più onesti. -Combinate, queste misure creano uno scenario in cui un propositore di blocchi onesto emette il proprio blocco molto rapidamente dopo l'inizio dello slot, poi c'è un periodo di circa 1/3 di slot (4 secondi) in cui quel nuovo blocco potrebbe causare il passaggio dell'algoritmo di scelta della diramazione a un'altra catena. Dopo quella stessa scadenza, le attestazioni che arrivano dai validatori lenti sono deponderate rispetto a quelle arrivate prima. Ciò favorisce fortemente i propositori e validatori rapidi nel determinare la testa della catena, riducendo sostanzialmente la probabilità di riuscita di un attacco di bilanciamento o di rimbalzo. +Nel loro insieme queste misure creano uno scenario in cui un propositore di blocchi onesto emette il proprio blocco molto rapidamente dopo l'inizio dello slot e poi c'è un periodo di circa 1/3 di slot (4 secondi) in cui quel nuovo blocco potrebbe causare il passaggio dell'algoritmo di scelta della biforcazione a un'altra catena. Dopo quello stesso termine le attestazioni provenienti dai validatori lenti sono deponderate rispetto a quelle arrivate prima. Ciò favorisce fortemente i propositori e validatori rapidi nel determinare la testa della catena, riducendo significativamente la probabilità di riuscita di un attacco di bilanciamento o di rimbalzo. -Vale la pena notare che il solo potenziamento del propositore difende solo dalle "riorganizzazioni convenienti", cioè quelle tentate da un utente malevolo con uno stake ridotto. Difatti, lo stesso potenziamento del propositore è raggirabile dai detentori di stake maggiori. Gli autori di [questo post](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) descrivono come un utente malevolo con il 7% dello stake possa distribuire i propri voti strategicamente per indurre i validatori onesti a costruire sulla sua diramazione, riorganizzando un blocco onesto. Questo attacco è stato concepito supponendo condizioni di latenza ideali, che sono molto improbabili. Le probabilità sono ancora fortemente a sfavore dell'utente malevolo, e lo stake maggiore comporta anche un maggiore capitale a rischio e un disincentivo economico persino più forte. +Vale la pena notare che il solo potenziamento del propositore difende solamente dalle "riorganizzazioni a basso costo", cioè quelle tentate da un utente malevolo con uno stake ridotto. Di fatto il potenziamento del propositore è raggirabile da detentori di stake maggiori. Gli autori di [questo post](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) descrivono come un utente malevolo avente il 7% dello stake possa utilizzare i propri voti strategicamente per convincere i validatori onesti a proseguire la sua biforcazione, riorganizzando un blocco onesto. Questo attacco è stato concepito supponendo condizioni di latenza ideali, che sono molto improbabili. Le probabilità sono comunque fortemente a sfavore dell'utente malevolo, e uno stake più elevato comporta anche un maggiore capitale a rischio e un disincentivo economico più forte. -È stato proposto anche un [attacco di bilanciamento specificamente mirato alla regola LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853), suggerito come fattibile nonostante il potenziamento del propositore. Un utente malevolo configura due catene in competizione, equivocando la proposta di blocchi e propagando ogni blocco a circa metà della rete, configurando un saldo approssimativo tra le due diramazioni. Quindi, i validatori complici equivocano i propri voti, fissando tempistiche tali che metà della rete riceva prima i loro voti per la diramazione `A` e l'altra metà riceva prima i loro voti per la diramazione `B`. Poiché la regola LMD scarta la seconda attestazione e mantiene soltanto la prima per ogni validatore, metà della rete visualizza i voti per `A` e nessun voto per `B`, l'altra metà vede i voti per `B` e nessun voto per `A`. Gli autori descrivono la regola LMD come dare all'avversario "notevole potere" per effettuare un attacco di bilanciamento. +È stato proposto anche un [attacco di bilanciamento specificamente indirizzato alla regola LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853), ritenuto praticabile a prescindere dal potenziamento del propositore. Un utente malevolo configura due catene in competizione equivocando la proposta di blocchi e propagando ogni blocco a circa metà della rete, creando così un bilanciamento approssimativo tra le due biforcazioni. Poi i validatori collusi equivocano i propri voti facendo sì che soltanto metà della rete li riceva prima per la biforcazione "A" mentre l'altra metà riceve prima i loro voti per la biforcazione "B". Poiché la regola LMD scarta la seconda attestazione e mantiene soltanto la prima per ogni validatore, metà della rete visualizza i voti per "A" e nessun voto per "B"; viceversa per l'altra metà della rete. Secondo gli autori la regola LMD fornisce all'avversario un "notevole potere" di effettuare un attacco di bilanciamento. -Questo vettore di attacco LMD è stato chiuso [aggiornando l'algoritmo di scelta della diramazione](https://github.com/ethereum/consensus-specs/pull/2845) in modo che scarti del tutto i validatori equivoci dalla considerazione della scelta della diramazione. L'algoritmo di scelta della diramazione, inoltre, ignorerà l'influenza futura dei validatori equivoci. Ciò impedisce l'attacco di bilanciamento delineato sopra, mantenendo la resilienza contro attacchi valanga. +Questo vettore d'attacco LMD è stato chiuso [aggiornando l'algoritmo di scelta della biforcazione](https://github.com/ethereum/consensus-specs/pull/2845) così che escluda completamente i validatori equivocanti dalla partecipazione alla scelta della biforcazione. L'algoritmo di scelta della biforcazione, inoltre, ignorerà l'influenza futura dei validatori equivocanti. Ciò impedisce l'attacco di bilanciamento delineato sopra mantenendo allo stesso tempo la resilienza contro gli attacchi a valanga. -Un'altra classe di attacchi, detta [**attacchi valanga**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3), è stata descritta in un [documento di marzo 2022](https://arxiv.org/pdf/2203.01315.pdf). Per causarlo, l'utente malevolo deve controllare diversi propositori di blocchi consecutivi. In ognuno degli slot di proposta del blocco, l'utente malevolo trattiene il proprio blocco, raccogliendoli finché la catena onesta non raggiunge un peso dell'albero secondario equivalente ai blocchi trattenuti. Poi, i blocchi trattenuti vengono rilasciati così che equivochino al massimo. Gli autori suggeriscono che il potenziamento del propositore – la prima difesa contro gli attacchi di bilanciamento e di rimbalzo – non protegge da alcune varianti dell'attacco valanga. Tuttavia, gli autori hanno anche dimostrato l'attacco soltanto su una versione altamente idealizzata dell'algoritmo di scelta della diramazione (hanno utilizzato GHOST senza LMD). +Un'altra classe di attacchi, quella degli [**attacchi a valanga**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3) è stata descritta in un [articolo di marzo 2022](https://arxiv.org/pdf/2203.01315.pdf). Per intraprendere quest'attacco l'utente malevolo deve controllare diversi propositori di blocchi consecutivi. In ognuno degli slot di proposta dei blocchi, l'utente malevolo trattiene il proprio blocco, raccogliendo blocchi finché la catena onesta non raggiunge un peso dell'albero secondario equivalente ai blocchi trattenuti. Poi i blocchi trattenuti vengono rilasciati per il massimo effetto equivoco possibile. Gli autori suggeriscono che il potenziamento del propositore (la prima difesa contro gli attacchi di bilanciamento e di rimbalzo) non protegga da alcune varianti dell'attacco valanga. Tuttavia gli autori hanno anche dimostrato l'attacco soltanto su una versione altamente idealizzata dell'algoritmo di scelta della biforcazione di Ethereum (utilizzando GHOST senza LMD). -L'attacco valanga è mitigato dalla porzione LMD dell'algoritmo di scelta della diramazione LMD-GHOST. LMD sta per "guidato dall'ultimo messaggio" e si riferisce a una tabella tenuta da ogni validatore, contenente l'ultimo messaggio ricevuto dagli altri validatori. Quel campo viene aggiornato soltanto se il nuovo messaggio proviene da uno slot successivo a quello già nella tabella per uno specifico validatore. In pratica, ciò significa che in ogni slot, il primo messaggio ricevuto è quello che ha accettato e qualsiasi altro messaggio è un equivoco da ignorare. In altre parole, i client di consenso non contano gli equivoci – utilizzano il primo messaggio in arrivo da ogni validatore e gli equivoci sono semplicemente scartati, impedendo gli attacchi valanga. +L'attacco a valanga è mitigato dalla porzione LMD dell'algoritmo di scelta della biforcazione LMD-GHOST. LMD sta per "latest-message-driven" ("guidato dall'ultimo messaggio") e si riferisce a una tabella tenuta da ogni validatore contenente l'ultimo messaggio ricevuto da altri validatori. Tale campo viene aggiornato soltanto se il nuovo messaggio proviene da uno slot successivo a quello già nella tabella per uno specifico validatore. In pratica, ciò significa che in ogni slot, il primo messaggio ricevuto è quello che ha accettato e qualsiasi altro messaggio è un equivoco da ignorare. In altre parole i client di consenso non contano gli equivoci, bensì utilizzano il primo messaggio in arrivo da ogni validatore e gli equivoci sono semplicemente scartati, impedendo gli attacchi a valanga. -Esistono diversi altri potenziali aggiornamenti futuri alla regola di scelta della diramazione che potrebbero sommarsi alla sicurezza fornita dal potenziamento del propositore. Uno è [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), dove gli attestatori congelano la propria vista della scelta della diramazione `n` secondi prima dell'inizio di uno slot e il propositore di blocchi quindi aiuta a sincronizzare la vista della catena nella rete. Un altro aggiornamento potenziale è la [finalità del singolo slot](https://notes.ethereum.org/@vbuterin/single_slot_finality), che protegge dagli attacchi basati sulla tempistica del messaggio finalizzando la catena dopo un solo slot. +Esistono diversi altri potenziali aggiornamenti futuri alla regola di scelta della biforcazione in grado di rafforzare la sicurezza fornita dal potenziamento del propositore. Uno di essi, detto [visualizzazione-fusione](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), prevede che gli attestatori congelino il proprio punto di vista sulla scelta della biforcazione "n" secondi prima dell'inizio di uno slot, dopo di che il propositore aiuta a sincronizzare il punto di vista sulla catena in tutta la rete. Un altro possibile aggiornamento è la [finalità a slot singolo](https://notes.ethereum.org/@vbuterin/single_slot_finality), che protegge dagli attacchi basati sulle tempistiche dei messaggi, finalizzando la catena dopo solo uno slot. -#### Ritardo della finalità {#finality-delay} +#### Ritardo di finalità {#finality-delay} -[Lo stesso documento](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) che prima descriveva l'attacco di riorganizzazione del blocco singolo a basso costo, descriveva anche un attacco di ritardo di finalità (anche noto come "perdita di vitalità"), che si basa sul fatto che 'utente malevolo proponga il blocco per un blocco di confine dell'epoca. Questo è fondamentale perché questi blocchi di confine dell'epoca diventano i punti di controllo che Casper FFG utilizza per finalizzare porzioni della catena. L'utente malevolo, semplicemente, trattiene il blocco finché abbastanza validatori onesti non utilizzano i propri voti FFC a favore del precedente blocco di confine dell'epoca come destinazione di finalizzazione corrente. Quindi, rilasciano il blocco trattenuto. Attestano al proprio blocco, così come i validatori onesti rimanenti, creando diramazioni con punti di controllo di destinazione differenti. Se hanno tempistiche corrette, impediranno la finalità perché non ci sarà una supermaggioranza dei 2/3 che attesti a entrambe le diramazioni. Minore è lo stake, più precisa deve essere la tempistica, poiché l'utente malevolo controlla meno attestazioni direttamente, e minori sono le probabilità che l'utente malevolo controlli il validatore che propone un dato di confine dell'epoca. +[Lo stesso articolo](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) che ha descritto per primo l'attacco di riorganizzazione di un singolo blocco a basso costo, descrive anche un attacco di ritardo di finalità (anche noto come "guasto della liveness") che prevede che l'utente malevolo proponga il blocco al confine di un'epoca. Questo è fondamentale perché questi blocchi di confine dell'epoca diventano i punti di controllo che Casper FFG utilizza per finalizzare porzioni della catena. L'utente malevolo, semplicemente, trattiene il blocco finché abbastanza validatori onesti non utilizzano i propri voti FFC a favore del precedente blocco di confine dell'epoca come target di finalizzazione attuale. Quindi rilascia il blocco trattenuto, attestando il proprio blocco così come i validatori onesti rimanenti e creando biforcazioni con punti di controllo target differenti. Se le tempistiche sono corrette l'utente malevolo impedirà la finalità perché non ci sarà una supermaggioranza dei 2/3 che attesti entrambe le biforcazioni. Minore è lo stake, più precisa deve essere la tempistica, poiché l'utente malevolo controlla meno attestazioni direttamente, e minori sono le probabilità che l'utente malevolo controlli il validatore che propone un dato blocco di confine dell'epoca. -#### Attacchi a lungo raggio {#long-range-attacks} +#### Attacchi a lunga portata {#long-range-attacks} -Esiste inoltre una classe di attacco specifica delle blockchain di proof-of-stake che comporta che un validatore che ha partecipato al blocco di genesi mantenga una diramazione separata della blockchain insieme a quella onesta, convincendo infine l'insieme di validatori onesti a passare ad essa in un dato momento opportuno molto successivo. Questo tipo di attacco non è possibile su Ethereum per via del dispositivo di finalità che assicura che tutti i validatori concordino sullo stato della catena onesta a intervalli regolari ("punti di controllo"). Questo semplice meccanismo neutralizza gli attacchi a lungo raggio, poiché i client di Ethereum semplicemente non riorganizzeranno i blocchi finalizzati. I nuovi nodi che si uniscono alla rete lo fanno trovando un hash di stato recente fidato (un "[punto di controllo a soggettività debole](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)") e utilizzandolo come un blocco di pseudo-genesi su cui costruire. Questo crea una 'porta di fiducia' per un nuovo nodo che accede alla rete prima che possa iniziare a verificare le informazioni da solo. +Esiste inoltre una classe di attacchi specifica delle blockchain proof-of-stake che prevede che un validatore che ha partecipato al blocco di genesi mantenga una biforcazione separata della blockchain insieme a quella onesta, convincendo alla fine il gruppo di validatori onesti a passare ad essa in un dato momento opportuno molto successivo. Questo tipo di attacco non è possibile su Ethereum per via del dispositivo di finalità che assicura che tutti i validatori concordino sullo stato della catena onesta a intervalli regolari ("punti di controllo"). Questo semplice meccanismo neutralizza gli attacchi a lungo raggio poiché i client di Ethereum semplicemente non riorganizzeranno i blocchi finalizzati. I nuovi nodi che si uniscono alla rete lo fanno trovando uno hash dello stato recente affidabile (un "punto di controllo della [soggettività debole](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)"), utilizzandolo come un blocco di pseudo-genesi per costruire su di esso. Questo crea un "gateway di fiducia" per un nuovo nodo che accede alla rete prima che possa iniziare a verificare le informazioni da solo. -#### Denial of Service {#denial-of-service} +#### Negazione del servizio {#denial-of-service} -Il meccanismo di PoS di Ethereum seleziona un unico validatore dall'insieme di validatori totali perché sia un propositore di blocchi in ogni slot. Questo è calcolabile utilizzando una funzione pubblicamente nota ed è possibile, per un avversario, identificare il propositore di blocco successivo lievemente in anticipo rispetto alla sua proposta del blocco. Poi, l'utente malevolo può spammare il propositore del blocco per impedirgli di scambiare le informazioni con i suoi pari. Al resto della rete sembrerà che il propositore del blocco sia offline e lo slot resterà semplicemente vuoto. Questo potrebbe essere una forma di censura contro validatori specifici, che impedisce loro di aggiungere informazioni alla blockchain. L'implementazione di elezioni segrete di un singolo capo (SSLE) o di elezioni segrete di un capo non singolo mitigheranno i rischi di DoS, poiché soltanto il propositore del blocco potrà sapere di essere stato selezionato e la selezione non è nota in anticipo. Ciò non è ancora implementato, ma è un'area attiva di [ricerca e sviluppo](https://ethresear.ch/t/secret-non-single-leader-election/11789). +Il meccanismo di PoS di Ethereum seleziona un unico validatore dall'insieme di validatori totali perché sia un propositore di blocchi in ogni slot. Questo è calcolabile utilizzando una funzione pubblicamente nota ed è possibile, per un avversario, identificare il propositore di blocco successivo lievemente in anticipo rispetto alla sua proposta di blocco. In seguito l'utente malevolo può spammare il propositore del blocco per impedirgli di scambiare informazioni con i suoi pari. Al resto della rete sembrerà che il propositore del blocco sia offline e lo slot resterà semplicemente vuoto. Questa potrebbe essere una forma di censura contro specifici validatori, impedendo loro di aggiungere informazioni alla blockchain. L'implementazione di elezioni segrete di un singolo capo (single secret leader elections, SSLE) o di elezioni segrete di un capo non singolo mitigheranno il rischi di attacchi di negazione del servizio poiché soltanto il propositore del blocco potrà sapere di essere stato selezionato e la selezione non è nota in anticipo. Questo meccanismo non è stato ancora implementato, ma è un'area attiva di [ricerca e sviluppo](https://ethresear.ch/t/secret-non-single-leader-election/11789). -Tutto questo punta al fatto che sia davvero difficile attaccare Ethereum con successo con uno stake ridotto. Gli attacchi fattibili qui descritti richiedono un algoritmo di scelta della diramazione idealizzato, condizioni di rete improbabili, oppure i vettori d'attacco sono già stati chiusi con correzioni relativamente minori al software del client. Questo, ovviamente, non esclude la possibilità che si verifichino zero day, ma dimostra la barra estremamente elevata di capacità tecnica, conoscenza del livello di consenso e fortuna necessaria perché un utente malevolo con uno stake di minoranza sia efficace. Dalla prospettiva di un utente malevolo, la cosa migliore dare sarebbe accumulare quanto più ether possibile e tornare armato di una maggiore quota dello stake totale. +Tutto ciò indica come sia davvero difficile attaccare Ethereum con successo con uno stake ridotto. Gli attacchi praticabili qui descritti richiedono un algoritmo di scelta della biforcazione idealizzato, condizioni di rete improbabili, oppure che i vettori d'attacco siano già stati chiusi con correzioni di entità relativamente lieve al software client. Questo, ovviamente, non esclude la possibilità che si verifichino zero day, ma dimostra l'asticella estremamente elevata dal punto di vista di capacità tecniche, conoscenza del livello di consenso e fortuna necessaria perché un utente malevolo con uno stake di minoranza abbia successo. Dalla prospettiva di un utente malevolo, la cosa migliore da fare sarebbe accumulare quanto più ether possibile e tornare armato di una maggiore quota dello stake totale. -### Utenti malevoli che utilizzano il >= 33% dello stake totale {#attackers-with-33-stake} +### Utenti malevoli che utilizzano una quota dello stake totale pari o superiore al 33% {#attackers-with-33-stake} -Tutti gli attacchi menzionati precedentemente in questo articolo raggiungono una maggiore probabilità di riuscita quando l'utente malevolo ha più ether in staking con cui votare, e più validatori che potrebbero essere scelti per proporre i blocchi in ogni slot. Un validatore malevolo potrebbe dunque mirare a controllare quanto più ether possibile. +Tutti gli attacchi menzionati precedentemente in questo articolo raggiungono una maggiore probabilità di riuscita quando l'utente malevolo dispone di più ether in staking con cui votare e di più validatori che potrebbero essere scelti per proporre i blocchi in ogni slot. Un validatore malevolo potrebbe dunque mirare a controllare quanto più ether in staking possibile. -Il 33% dell'ether in staking è un punto di riferimento per un utente malevolo poiché, con un qualsiasi importo maggiore, può impedire la finalizzazione della catena senza dover controllare finemente le azioni degli altri validatori. Possono semplicemente scomparire insieme. Se 1/3 o più dell'ether in staking attesta malevolmente o non riesce ad attestare, allora non può esistere una supermaggioranza dei 2/3 e la catena non può finalizzare. La difesa in questo caso è la perdita per inattività. La perdita per inattività identifica quei validatori che non attestano o che attestano il contrario della maggioranza. L'ether in staking posseduto da tali validatori non attestanti è gradualmente disperso finché non rappresenteranno collettivamente meno di 1/3 del totale, così che la catena possa nuovamente finalizzare. +Il 33% dell'ether in staking rappresenta una soglia di riferimento per un utente malevolo poiché, superando tale soglia, può impedire la finalizzazione della catena senza dover controllare in maniera precisa le azioni di altri validatori. Una volta portato a termine l'attacco l'utente malevolo può semplicemente dileguarsi. Se 1/3 o più dell'ether in staking attesta malevolmente o non riesce ad attestare, allora non può esistere una supermaggioranza dei 2/3 e la catena non può essere finalizzata. La difesa in questo caso è detta "fuoriuscita per inattività". La fuoriuscita per inattività identifica quei validatori che non attestano o che attestano diversamente dalla maggioranza. L'ether in staking posseduto da tali validatori non attestanti è gradualmente disperso finché non rappresenterà complessivamente meno di 1/3 del totale, così che la catena possa nuovamente essere finalizzata. -Lo scopo della perdita per inattività è far nuovamente finalizzare la catena. Tuttavia, l'utente malevolo perde anche una porzione del proprio ether in staking. L'inattività persistente tra validatori che rappresentano il 33% dell'ether in staking totale è molto costosa anche se i validatori non ricevono un taglio. +Lo scopo della fuoriuscita per inattività è consentire nuovamente la finalizzazione della catena. Tuttavia l'utente malevolo perde anche una porzione del proprio ether in staking. L'inattività persistente tra validatori che rappresentano il 33% dell'ether in staking totale è molto costosa anche se i validatori non vengono sottoposti a slashing. -Supponendo che la rete di Ethereum sia asincrona (cioè, ci siano ritardi tra i messaggi inviati e ricevuti), un utente malevolo che controlla il 34% dello stake totale potrebbe causare una doppia finalità. Ciò è dovuto al fatto che l'utente malevolo può equivocare quando è scelto come propositore di blocchi, poi votare due volte con tutti i suoi validatori. Questo crea una situazione in cui esiste una diramazione della blockchain, ciascuna votata dal 34% dell'ether in staking. Ogni diramazione richiede soltanto il 50% dei voti dei validatori rimanenti per entrambe le diramazioni per essere supportata da una supermaggioranza, nel qual caso entrambe le catene possono finalizzarsi (poiché il 34% dei validatori malevoli + metà dei rimanenti 66% = 67% su ogni diramazione). Ogni blocco concorrente dovrebbe essere ricevuto all'incirca dal 50% dei validatori onesti, quindi questo attacco è fattibile soltanto quando l'utente malevolo ha un certo grado di controllo sulla tempistica dei messaggi che si propagano per la rete così da poter ingannare metà dei validatori onesti su ogni catena. L'utente malevolo dovrebbe necessariamente distruggere integralmente il proprio stake (34% di circa 10 milioni di ether con l'insieme odierno di validatori) per ottenere tale doppia finalità, poiché il 34% dei validatori voterebbe due volte simultaneamente – un'infrazione punibile con la sanzione di correlazione massima. La difesa contro questo attacco è il costo molto elevato della distruzione del 34% dell'ether in staking totale. Riprendersi da tale attacco richiederebbe alla community di Ethereum di coordinarsi "fuori banda" e di accordarsi sul seguire una delle due diramazioni ignorando l'altra. +Supponendo che la rete di Ethereum sia asincrona (ovvero che ci siano ritardi tra i messaggi inviati e ricevuti), un utente malevolo che controlli il 34% dello stake totale potrebbe causare una doppia finalità. Ciò è dovuto al fatto che l'utente malevolo può equivocare quando è scelto come propositore di blocchi per poi votare due volte con tutti i suoi validatori. Questo crea una situazione in cui esiste una biforcazione della blockchain, ciascuna votata dal 34% dell'ether in staking. Ogni biforcazione richiede soltanto il 50% dei voti dei validatori rimanenti affinché entrambe le biforcazioni siano sostenute da una supermaggioranza, nel qual caso entrambe le catene possono essere finalizzate (poiché il 34% dei validatori malevoli + metà dei rimanenti 66% = 67% su ogni biforcazione). Ogni blocco concorrente dovrebbe essere ricevuto all'incirca dal 50% dei validatori onesti, quindi questo attacco è praticabile soltanto quando l'utente malevolo ha un certo grado di controllo sulla tempistica dei messaggi che si propagano nella rete così da poter convincere metà dei validatori onesti a proseguire su ogni catena. L'utente malevolo dovrebbe necessariamente distruggere tutto il proprio stake (34% di circa 10 milioni di ether in base all'attuale insieme di validatori) per ottenere tale doppia finalità, poiché il 34% dei validatori voterebbe due volte simultaneamente; un'infrazione punibile con la sanzione di correlazione massima. La difesa contro questo attacco è il costo molto elevato della distruzione del 34% dell'ether in staking totale. Riprendersi da tale attacco richiederebbe alla community di Ethereum di coordinarsi "fuori banda" e di accordarsi sul seguire una delle due biforcazioni ignorando l'altra. -### Utenti malevoli che utilizzano circa il 50% dello stake totale {#attackers-with-50-stake} +### Utenti malevoli che utilizzano approssimativamente il 50% dello stake totale {#attackers-with-50-stake} -Al 50% dell'ether in staking, un gruppo malevolo di validatori potrebbe teoricamente dividere la catena in due diramazioni di pari dimensioni e quindi semplicemente utilizzare tutto il proprio 50% dello stake per votare contrariamente all'insieme di validatori onesti, mantenendo così le due diramazioni e impedendo la finalità. La perdita per inattività su entrambe le diramazioni condurrebbe infine alla finalizzazione di entrambe le catene. A questo punto, l'unica opzione è fare affidamento su un recupero sociale. +Al 50% dell'ether in staking, un gruppo malevolo di validatori potrebbe teoricamente dividere la catena in due biforcazioni di pari dimensioni e quindi semplicemente utilizzare tutto il proprio 50% dello stake per votare diversamente dal gruppo di validatori onesti, mantenendo così le due biforcazioni e impedendo la finalità. La fuoriuscita per inattività su entrambe le biforcazioni condurrebbe infine alla finalizzazione di entrambe le catene. A questo punto l'unica opzione sarebbe fare affidamento su un recupero sociale. -È molto improbabile che un gruppo avversario di validatori possa controllare coerentemente e precisamente il 50% dello stake totale, dato il livello di flusso di numeri di validatori onesti, la latenza di rete, ecc.; il costo elevato di effettuare un simile attacco, insieme alla bassa probabilità di successo, sembra essere un forte disincentivo per un utente malevolo razionale, specialmente se un piccolo investimento aggiuntivo per ottenere _oltre il_ 50% sblocca molto più potere. +È molto improbabile che un gruppo malevolo di validatori possa controllare sistematicamente e con precisione il 50% dello stake totale, grazie al flusso di validatori onesti, alla latenza della rete ecc.; il costo enorme di organizzare un simile attacco, insieme alla sua bassa probabilità di successo, sembrano essere forti deterrenti per un utente malevolo razionale, specialmente quando un piccolo investimento aggiuntivo per ottenere _oltre il_ 50% consentirebbe di ottenere molto più potere. -Al >50% dello stake totale, l'utente malevolo potrebbe dominare l'algoritmo di scelta della diramazione. In questo caso sarebbe in grado di attestare con il voto di maggioranza, ottenendo controllo sufficiente per effettuare brevi riorganizzazioni senza dover ingannare i client onesti. I validatori onesti farebbero lo stesso perché anche il loro algoritmo di scelta della diramazione vederebbe la catena preferita dall'utente malevolo come la più pesante, quindi la catena potrebbe finalizzarsi. Ciò consente all'utente malevolo di censurare certe transazioni, apportare riorganizzazioni a breve raggio ed estrarre il MEV massimo riordinando i blocchi a proprio favore. La difesa contro tale attacco è l'enorme costo di uno stake di maggioranza (attualmente di poco inferiore a 19 miliardi di USD) messo a rischio da un utente malevolo, poiché il livello sociale potrebbe intervenire e adottare una diramazione di minoranza onesta svalutando drasticamente lo stake dell'utente malevolo. +Con più del 50% dello stake totale l'utente malevolo potrebbe dominare l'algoritmo di scelta della biforcazione. In questo caso sarebbe in grado di attestare con il voto di maggioranza, ottenendo controllo sufficiente per effettuare brevi riorganizzazioni senza dover ingannare i client onesti. I validatori onesti farebbero lo stesso perché anche il loro algoritmo di scelta della biforcazione vedrebbe la catena preferita dall'utente malevolo come la più pesante, quindi la catena potrebbe essere finalizzata. Ciò consentirebbe all'utente malevolo di censurare certe transazioni, apportare riorganizzazioni a breve raggio ed estrarre il MEV massimo riordinando i blocchi a proprio favore. La difesa contro tale attacco è l'enorme costo di uno stake di maggioranza (attualmente di poco inferiore a 19 miliardi di USD) messo a rischio da un utente malevolo, poiché il livello sociale potrebbe intervenire e creare una biforcazione di minoranza onesta svalutando drasticamente lo stake dell'utente malevolo. -### Utenti malevoli che utilizzano il >=66% dello stake totale {#attackers-with-66-stake} +### Utenti malevoli che utilizzano una quota dello stake totale pari o superiore al 66% {#attackers-with-66-stake} -Un utente malevolo con il 66% o più dell'ether in staking totale può finalizzare la propria catena preferita senza dover forzare alcun validatore onesto. L'utente può semplicemente votare la propria diramazione preferita per poi finalizzarla, semplicemente perché può votare con una supermaggioranza disonesta. Come detentore della supermaggioranza, controllerebbe sempre i contenuti dei blocchi finalizzati, con il potere di spendere, riavvolgere e rispendere, censurare certe transazioni e riorganizzare a piacimento la catena. Acquistando ulteriore ether per controllare il 66% invece del 51%, l'utente malevolo acquisisce di fatto l'abilità di effettuare riorganizzazioni a posteriori e inversioni di finalità (cioè, modificare il passato e controllare il futuro). Le sole vere difese sono il costo enorme del 66% dell'ether in staking totale e l'opzione di fare affidamento sul livello sociale per coordinare l'adozione di una diramazione alternativa. Possiamo affrontarlo in maggiore dettaglio nella sezione seguente. +Un utente malevolo con il 66% o più dell'ether in staking totale potrebbe finalizzare la propria catena preferita senza dover costringere alcun validatore onesto. L'utente potrebbe semplicemente votare la propria biforcazione preferita per poi finalizzarla, per il semplice fatto che sarebbe in grado di votare con una supermaggioranza disonesta. Come detentore della supermaggioranza, l'utente malevolo controllerebbe sempre i contenuti dei blocchi finalizzati, con il potere di spendere, riavvolgere e rispendere, censurare certe transazioni e riorganizzare a proprio piacimento la catena. Acquistando ulteriore ether per controllarne il 66% invece del 51%, l'utente malevolo acquisisce di fatto l'abilità di effettuare riorganizzazioni a posteriori e inversioni di finalità (cioè modificare il passato e allo stesso tempo controllare il futuro). Le sole vere difese sono il costo enorme del 66% dell'ether in staking totale e la possibilità di fare affidamento sul livello sociale per coordinare l'adozione di una biforcazione alternativa. Affronteremo quest'argomento in maggior dettaglio nella prossima sezione. -## Persone: l'ultima linea di difesa {#people-the-last-line-of-defense} +## L'ultima linea di difesa: le persone {#people-the-last-line-of-defense} -Se i validatori disonesti riescono a finalizzare la propria versione preferita della catena, la community di Ethereum è messa in una situazione difficile. La catena canonica include una sezione disonesta fusa nel suo storico, mentre i validatori onesti possono ritrovarsi puniti per aver attestato una catena (onesta) alternativa. Si noti che una catena finalizzata ma errata potrebbe sorgere anche da un bug in un client di maggioranza. Infine, il ripiego finale è affidarsi al livello sociale, al Livello 0, per risolvere la situazione. +Se i validatori disonesti riuscissero a finalizzare la propria versione preferita della catena, la community di Ethereum si ritroverebbe in una situazione difficile. La catena canonica includerebbe una sezione disonesta fusa nel suo storico, mentre i validatori onesti potrebbero ritrovarsi puniti per aver attestato una catena (onesta) alternativa. Si noti che una catena finalizzata ma errata potrebbe sorgere anche da un bug in un client di maggioranza. In ultima analisi il rimedio è affidarsi al livello sociale, ovvero il livello 0. -Uno dei punti di forza del consenso di PoS di Ethereum è che esistono [svariate strategie difensive](https://youtu.be/1m12zgJ42dI?t=1712) impiegabili dalla community di fronte a un attacco. Una risposta minima potrebbe essere l'uscita forzata dei validatori malevoli dalla rete senza alcuna sanzione aggiuntiva. Per rientrare nella rete, l'utente malevolo dovrebbe unirsi a una coda di attivazione che assicura all'insieme di validatori di crescere gradualmente. Ad esempio, aggiungere abbastanza validatori da raddoppiare la quantità di ether in staking richiede circa 200 giorni, acquisendo effettivamente i validatori onesti con 200 giorni d'anticipo prima che l'utente malevolo possa tentare un altro attacco del 51%. Tuttavia, la community potrebbe anche decidere di penalizzare l'utente malevolo più duramente, revocando le ricompense passate o bruciando una certa porzione (fino al 100%) del suo capitale in staking. +Uno dei punti di forza del consenso del PoS di Ethereum è che esistono [numerose strategie difensive](https://youtu.be/1m12zgJ42dI?t=1712) che la community può adoperare di fronte a un attacco. Una risposta minima potrebbe essere l'uscita forzata dei validatori malevoli dalla rete senza alcuna sanzione aggiuntiva. Per rientrare nella rete, l'utente malevolo dovrebbe unirsi a una coda di attivazione che assicuri una crescita graduale dell'insieme di validatori. Ad esempio per aggiungere abbastanza validatori da raddoppiare la quantità di ether in staking occorrono circa 200 giorni, dando a tutti i validatori onesti 200 giorni di anticipo prima che l'utente malevolo possa tentare un altro attacco con il 51% dello stake. Tuttavia la community potrebbe anche decidere di penalizzare l'utente malevolo più duramente, revocando le ricompense passate o bruciando una certa porzione (fino al 100%) del suo capitale in staking. -Qualsiasi sia la sanzione imposta all'utente malevolo, la community deve anche decidere se la catena disonesta, sebbene sia quella preferita dall'algoritmo di scelta della diramazione codificato nei client di Ethereum, sia di fatto non valida e se la community dovrebbe costruire, invece, sulla catena onesta. I validatori onesti potrebbero concordare collettivamente di costruire una diramazione accettata dalla community della blockchain di Ethereum che potrebbe, ad esempio, essersi separata dalla catena canonica prima dell'inizio dell'attacco o far rimuovere forzatamente i validatori malevoli. I validatori onesti sarebbero incentivati a costruire su questa catena, evitando le sanzioni loro applicate per la mancata attestazione (giustamente) della catena dell'utente malevolo. Le borse, on-ramp e applicazioni basate su Ethereum preferirebbero presumibilmente rimanere sulla catena onesta e seguirebbero i validatori onesti nella blockchain onesta. +Qualsiasi sia la sanzione imposta all'utente malevolo, la community dovrebbe anche decidere se la catena disonesta, pur essendo quella preferita dall'algoritmo di scelta della biforcazione codificato nei client di Ethereum, è di fatto non valida e se proseguire al suo posto la catena onesta. I validatori onesti potrebbero decidere collettivamente di proseguire una biforcazione accettata dalla community della blockchain di Ethereum che potrebbe, ad esempio, essersi separata dalla catena canonica prima dell'inizio dell'attacco o far rimuovere forzatamente i validatori malevoli. I validatori onesti sarebbero incentivati a proseguire tale catena evitando le sanzioni loro applicate per non aver attestato (giustamente) la catena dell'utente malevolo. Le borse, on-ramp e applicazioni basate su Ethereum preferirebbero presumibilmente rimanere sulla catena onesta e seguirebbero i validatori onesti nella blockchain onesta. -Tuttavia, questa sarebbe una sostanziale sfida di governance. Alcuni utenti e validatori andrebbero senza dubbio in perdita come conseguenza del ritorno alla catena onesta, le transazioni nei blocchi convalidati dopo l'attacco potrebbero essere potenzialmente ripristinate, disturbando il livello d'applicazione e, semplicemente, minando l'etica di alcuni utenti che tendono a credere che "il codice sia legge". Le borse e le applicazioni avrebbero molto probabilmente azioni esterne alla catena collegate alle transazioni sulla catena che ora potrebbero essere ripristinate, creando una cascata di ritrattazioni e revisioni che sarebbero difficili da disfare correttamente, specialmente se mischiate con guadagni disonesti, depositati nella DeFi o altri derivati con effetti secondari per gli utenti onesti. Indubbiamente alcuni utenti, forse persino istituzionali, avrebbero già beneficiato dalla catena disonesta, per scaltrezza o fortuna, e potrebbero opporsi a una diramazione per proteggere i propri guadagni. Ci sono state richieste di provare la risposta della community agli attacchi >51% così che una ragionevole mitigazione coordinata sia eseguibile rapidamente. Alcune utili osservazioni di Vitalik sono riportate su ethresear.ch [qui](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) e [qui](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363) e su Twitter, [qui](https://twitter.com/skylar_eth/status/1551798684727508992?s=20&t=oHZ1xv8QZdOgAXhxZKtHEw). L'obiettivo di una risposta sociale coordinata dovrebbe essere molto mirato e specifico sulla punizione dell'utente malevolo e sulla minimizzazione degli effetti per gli altri utenti. +Si tratterebbe tuttavia di una situazione decisamente complessa dal punto di vista della governance. A causa del ritorno alla catena onesta alcuni utenti e validatori andrebbero senza dubbio in perdita, le transazioni nei blocchi convalidati dopo l'attacco potrebbero essere potenzialmente annullate, disturbando il livello d'applicazione, e, semplicemente, l'etica di alcuni utenti che tendono a credere che "il codice è legge" ne risulterebbe minata. Le borse e le applicazioni avrebbero molto probabilmente azioni esterne alla catena collegate alle transazioni sulla catena che ora potrebbero essere ripristinate, creando una cascata di ritrattazioni e revisioni che sarebbero difficili da disfare correttamente, specialmente se mischiate con guadagni disonesti, depositati nella DeFi o altri derivati con effetti secondari per gli utenti onesti. Indubbiamente alcuni utenti, forse persino istituzionali, potrebbero aver già beneficiato dalla catena disonesta, per scaltrezza o fortuna, e opporsi a una biforcazione per proteggere i propri guadagni. La possibilità di simulare la risposta della community a un attacco basato su uno stake superiore al 51% per una mitigazione coordinata, precisa e rapida è già stata proposta in passato. Esistono delle discussioni utili di Vitalik su ethresear.ch [qui](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) e [qui](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363), nonché su X.com qui. L'obiettivo di una risposta sociale coordinata dovrebbe essere molto mirato e concentrarsi sulla punizione dell'utente malevolo e sulla minimizzazione degli effetti per gli altri utenti. -La governance è già un argomento complicato. Gestire la risposta d'emergenza di un livello 0 a una catena di finalizzazione disonesta sarebbe senza dubbio difficoltoso per la comunità di Ethereum, ma [è successo](/history/#dao-fork-summary), [due volte](/history/#tangerine-whistle), nella storia di Ethereum. +La governance è di per sé un argomento complicato. Gestire una risposta d'emergenza di livello 0 a una catena in finalizzazione disonesta sarebbe indubbiamente difficoltoso per la community di Ethereum, ma questo scenario [si è già verificato](/history/#dao-fork-summary) ([due volte](/history/#tangerine-whistle)) nella storia di Ethereum. -Tuttavia, c'è qualcosa di abbastanza soddisfacente nel ripiego finale nel mondo reale. In definitiva, anche con questo fenomenale stack tecnologico sopra di noi, se il peggio dovesse verificarsi le persone in carne ed ossa dovrebbero coordinarsi per uscirne. +Tuttavia c'è qualcosa di piuttosto soddisfacente nel fatto che il rimedio finale a un tale attacco chiama in causa il mondo reale. In definitiva, anche con questo fenomenale stack tecnologico sopra di noi, se il peggio dovesse verificarsi le persone in carne ed ossa dovrebbero coordinarsi per uscirne. ## Riepilogo {#summary} -Questa pagina ha esplorato alcuni dei metodi in cui gli utenti malevoli potrebbero tentare di sfruttare il protocollo di consenso del proof-of-stake di Ethereum. Le riorganizzazioni e i ritardi di finalità sono stati esaminati per gli utenti malevoli con quote crescenti dell'ether in staking totale. In generale, un utente malevolo più ricco ha maggiori possibilità di successo perché il suo stake si traduce in potere di voto che può utilizzare per influenzare i contenuti dei blocchi futuri. A certi importi di soglia di ether in staking, il potere dell'utente malevolo aumenta: +In questa pagina abbiamo esplorato alcuni dei metodi con cui gli utenti malevoli potrebbero tentare di sfruttare il protocollo di consenso proof-of-stake di Ethereum. Abbiamo esaminato le riorganizzazioni e i ritardi di finalità ipotizzando che gli utenti malevoli dispongano di una quota crescente dell'ether in staking totale. In generale un utente malevolo più ricco ha maggiori possibilità di successo perché il suo stake si traduce in potere di voto che può utilizzare per influenzare i contenuti dei blocchi futuri. A certi importi soglia di ether in staking il potere dell'utente malevolo aumenta: 33%: ritardo di finalità @@ -143,21 +146,21 @@ Questa pagina ha esplorato alcuni dei metodi in cui gli utenti malevoli potrebbe 51%: ritardo di finalità, doppia finalità, censura, controllo sul futuro della blockchain -66%: ritardo di finalità, doppia finalità, censura, controllo sul futuro e il passato della blockchain +66%: ritardo di finalità, doppia finalità, censura, controllo sul futuro e sul passato della blockchain -Esiste anche una serie di attacchi più sofisticati che richiedono piccoli importi di ether in staking ma si affidano ad attacchi molto sofisticati con il pieno controllo sulla tempistica dei messaggi per influenzare l'insieme di validatori a proprio favore. +Esiste anche una serie di attacchi più sofisticati che richiedono piccoli importi di ether in staking ma che si basano sul fatto che l'utente malevolo sia molto sofisticato e abbia pieno controllo sulla tempistica dei messaggi per influenzare l'insieme di validatori a proprio favore. -In generale, nonostante questi potenziali vettori d'attacco, il rischio di un attacco di successo è basso, certamente inferiore degli equivalenti del proof-of-work. Questo perché l'elevato costo dell'ether in staking è messo a rischio da un utente malevolo che mira a sopraffare i validatori onesti con il loro potere di voto. Il livello di incentivazione integrato del "bastone e carota" protegge contro gran parte dei malfattori, specialmente con stake minori. Anche i più subdoli attacchi di rimbalzo e di bilanciamento hanno poca probabilità di successo poiché le vere condizioni di rete rendono molto difficile ottenere il pieno controllo della consegna del messaggio a sottoinsiemi specifici di validatori, e i team dei client hanno rapidamente chiuso i vettori degli attacchi di rimbalzo, bilanciamento e valanga con semplici correzioni. +In generale, nonostante questi potenziali vettori d'attacco, il rischio che un attacco abbia successo è basso, certamente inferiore a equivalenti proof-of-work. Questo perché l'elevato costo dell'ether in staking è messo a rischio da un utente malevolo che mira a sopraffare i validatori onesti con il proprio potere di voto. Il livello di incentivazione integrato basato sul concetto di "bastone e carota" protegge contro gran parte degli abusi, specialmente qualora gli utenti malevoli dispongano di uno stake ridotto. Anche i più subdoli attacchi di rimbalzo e di bilanciamento hanno poca probabilità di successo poiché le vere condizioni di rete rendono molto difficile ottenere il pieno controllo della consegna dei messaggi a sottoinsiemi specifici di validatori, e i team dei client hanno rapidamente eliminato i vettori degli attacchi di rimbalzo, bilanciamento e valanga con semplici patch. -Gli attacchi del 34%, 51% o 66% richiederebbero un coordinamento fuori banda per essere risolti. Mentre ciò sarebbe probabilmente doloroso per la community, la sua capacità di rispondere fuori banda è un forte disincentivo per un utente malevolo. Il livello sociale di Ethereum è l'ultima rete di protezione: un attacco tecnicamente riuscito potrebbe ancora essere neutralizzato dalla community che si accorda per accettare una diramazione onesta. Ci sarebbe una gara tra l'utente malevolo e la community di Ethereum: i miliardi di dollari spesi su un attacco del 66% sarebbero probabilmente annientati da un attacco di coordinamento sociale con esito positivo se fosse realizzato abbastanza rapidamente, lasciando l'utente malevolo con pesanti sacchi di ether in staking illiquidi su una catena notoriamente disonesta ignorata dalla community di Ethereum. La probabilità che ciò finisca per essere redditizio per l'utente è sufficientemente bassa da essere un deterrente efficace. Per questo l'investimento nel mantenere un livello sociale coeso con valori strettamente allineati è così importante. +La risoluzione degli attacchi basati sul 34%, 51% o 66% dello stake richiederebbe verosimilmente un coordinamento fuori banda. Benché ciò sarebbe probabilmente doloroso per la community, la capacità di quest'ultima di rispondere fuori banda rappresenta un forte disincentivo per un utente malevolo. Il livello sociale di Ethereum è l'ultima rete di protezione: un attacco tecnicamente riuscito potrebbe comunque essere neutralizzato dalla community accordandosi per adottare una biforcazione onesta. Quella che si verificherebbe è una gara tra l'utente malevolo e la community di Ethereum: i miliardi di dollari spesi per un attacco basato sul 66% dello stake sarebbero probabilmente annientati da un attacco di coordinamento sociale con esito positivo rapido a sufficienza, lasciando all'utente malevolo ingenti importi di ether in staking illiquido su una catena notoriamente disonesta ignorata dalla community di Ethereum. La probabilità che un tale attacco risulti redditizio per l'utente malevolo è sufficientemente bassa da far sì che questo sia un deterrente efficace. Per questo l'investimento nel mantenere un livello sociale coeso con valori strettamente allineati è così importante. -## Letture consigliate {#further-reading} +## Ulteriori letture {#further-reading} - [Versione più dettagliata di questa pagina](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) -- [Vitalik sulla finalità dell'accordo](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) -- [Documento LMD GHOST](https://arxiv.org/abs/2003.03052) +- [Vitalik sul carattere definitivo del regolamento](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) +- [Documentazione su LMD GHOST](https://arxiv.org/abs/2003.03052) - [Documento Casper-FFG](https://arxiv.org/abs/1710.09437) -- [Documento Gasper](https://arxiv.org/pdf/2003.03052.pdf) -- [Specifiche del consenso di incremento del peso del propositore](https://github.com/ethereum/consensus-specs/pull/2730) +- [Articolo su Gasper](https://arxiv.org/pdf/2003.03052.pdf) +- [Specifiche del consenso basato sul potenziamento del peso del propositore](https://github.com/ethereum/consensus-specs/pull/2730) - [Attacchi di rimbalzo su ethresear.ch](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) -- [Ricerca sul SSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) +- [Articolo sulla SSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md index 43a6e206252..b74b05c7acf 100644 --- a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md +++ b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md @@ -1,6 +1,6 @@ --- title: Proof-of-stake (PoS) -description: Spiegazione del protocollo di consenso Proof-of-stake e del suo ruolo in Ethereum. +description: Spiegazione del protocollo di consenso proof-of-stake e del suo ruolo in Ethereum. lang: it --- diff --git a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md index a493391c5eb..1899d384e07 100644 --- a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md +++ b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md @@ -20,7 +20,7 @@ Attaccare la rete può significare impedire alla catena di finalizzarsi, o assic Il costo minimo di attacco è il >33% dello stake totale. Un utente malevolo che possiede il >33% dello stake totale può causare un ritardo di finalità semplicemente andando offline. Questo è un problema relativamente minore per la rete, esistendo un meccanismo, noto come "perdita d'inattività", che fa trapelare lo stake dai validatori offline finché la maggioranza online non rappresenta il 66% dello stake e può nuovamente finalizzare la catena. Inoltre, è teoricamente possibile, per un utente malevolo, causare la doppia finalità con poco più del 33% dello stake totale, creando due blocchi invece di uno, quando gli viene chiesto di essere produttore di blocchi e quindi di votare due volte con tutti i validatori. Ogni biforcazione richiede che soltanto il 50% dei validatori onesti rimanenti visualizzi ogni blocco per primo, quindi, se riescono a sincronizzare i propri messaggi nel modo giusto, potrebbero riuscire a finalizzare entrambe le biforcazioni. Ciò ha una bassa probabilità di successo, ma se un utente malevolo è riuscito a causare una doppia finalità, la comunità di Ethereum dovrebbe decidere di seguire una biforcazione, nel qual caso i validatori dell'utente malevolo verrebbero necessariamente frammentati nell'altra. -Con il >33% dello stake totale, un utente malevolo ha una possibilità di avere un effetto minore (ritardo della finalità) o più grave (doppia finalità) sulla rete di Ethereum. Con più di 14.000.000 ETH in staking sulla rete e un prezzo rappresentativo di $1000/ETH, il costo minimo per eseguire questi attacchi è di `1000 x 14.000.000 x 0,33 = $4.620.000.000`. L'utente malevolo perderebbe tale denaro tramite il frazionamento e verrebbe espulso dalla rete. Per ripetere l'attacco, dovrebbe accumulare il >33% dello stake (nuovamente) e bruciarlo (di nuovo). Ogni tentativo di attaccare la rete costerebbe >$4,6 miliardi (a $1000/ETH e 14M di ETH in staking). L'utente malevolo, inoltre, viene espulso dalla rete quando è frazionato e dovrà aggiungersi alla coda d'attivazione per unirsi nuovamente. Ciò significa che il tasso di un attacco ripetuto è limitato non soltanto alla velocità a cui l'utente malevolo può accumulare il >33% dello stake totale, ma anche al tempo necessario per far accedere tutti i validatori alla rete. Ogni volta che l'utente malevolo attacca diventa molto più povero e il resto della comunità si arricchisce grazie allo shock di approvvigionamento risultante. +Con il >33% dello stake totale, un utente malevolo ha una possibilità di avere un effetto minore (ritardo di finalità) o più grave (doppia finalità) sulla rete di Ethereum. Con più di 14.000.000 ETH in staking sulla rete e un prezzo rappresentativo di $1000/ETH, il costo minimo per eseguire questi attacchi è di `1000 x 14.000.000 x 0,33 = $4.620.000.000`. L'utente malevolo perderebbe tale denaro tramite il frazionamento e verrebbe espulso dalla rete. Per ripetere l'attacco, dovrebbe accumulare il >33% dello stake (nuovamente) e bruciarlo (di nuovo). Ogni tentativo di attaccare la rete costerebbe >$4,6 miliardi (a $1000/ETH e 14M di ETH in staking). L'utente malevolo, inoltre, viene espulso dalla rete quando è frazionato e dovrà aggiungersi alla coda d'attivazione per unirsi nuovamente. Ciò significa che il tasso di un attacco ripetuto è limitato non soltanto alla velocità a cui l'utente malevolo può accumulare il >33% dello stake totale, ma anche al tempo necessario per far accedere tutti i validatori alla rete. Ogni volta che l'utente malevolo attacca diventa molto più povero e il resto della comunità si arricchisce grazie allo shock di approvvigionamento risultante. Altri attacchi, come gli attacchi al 51% o l'inversione di finalità con il 66% dello stake totale, richiedono sostanzialmente più ETH e sono molto più costosi per l'utente malevolo. diff --git a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md index 97d49cb69a2..f4bac577534 100644 --- a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md +++ b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -74,7 +74,7 @@ Se queste azioni sono rilevate, il validatore viene tagliato. Ciò significa che ## Perdita per inattività {#inactivity-leak} -Se il livello del consenso ha superato più di quattro epoche senza finalizzare, un protocollo di emergenza detto "perdita di inattività" viene attivato. Lo scopo ultimo della perdita per inattività è creare le condizioni necessarie perché la catena recuperi la finalità. Come spiegato sopra, la finalità richiede una maggioranza dei 2/3 dell'ether in staking totale per accordarsi sui punti di controllo di origine e di destinazione. Se validatori che rappresentano oltre 1/3 dei validatori totali vanno offline o non riescono a inviare le attestazioni corrette, non è possibile che una supermaggioranza dei 2/3 finalizzi i punti di controllo. La perdita per inattività consente allo stake appartenente ai validatori inattivi di disperdersi gradualmente finché non controllano meno di 1/3 dello stake totale, consentendo ai validatori attivi rimanenti di finalizzare la catena. Indipendentemente da quanto sia grande il gruppo di validatori inattivi, i rimanenti validatori attivi alla fine controlleranno più di 2/3 dello stake. La perdita di stake è un forte incentivo per i validatori inattivi a riattivarsi appena possibile! Uno scenario di perdita per inattività è stato riscontrato sulla rete di prova Medalla quando <66% di validatori attivi è riuscito ad arrivare al consenso sulla testa corrente della blockchain. La perdita per inattività è stata attivata e la finalità è stata infine recuperata! +Se il livello del consenso ha superato più di quattro epoche senza finalizzare, un protocollo di emergenza detto "perdita di inattività" viene attivato. Lo scopo ultimo della perdita per inattività è creare le condizioni necessarie perché la catena recuperi la finalità. Come spiegato sopra, la finalità richiede una maggioranza dei 2/3 dell'ether in staking totale per accordarsi sui punti di controllo di origine e di destinazione. Se validatori che rappresentano oltre 1/3 dei validatori totali vanno offline o non riescono a inviare le attestazioni corrette, non è possibile che una supermaggioranza dei 2/3 finalizzi i punti di controllo. La perdita per inattività consente allo stake appartenente ai validatori inattivi di disperdersi gradualmente finché non controllano meno di 1/3 dello stake totale, consentendo ai validatori attivi rimanenti di finalizzare la catena. Indipendentemente da quanto sia grande il gruppo di validatori inattivi, i rimanenti validatori attivi alla fine controlleranno più di 2/3 dello stake. La perdita di stake è un forte incentivo per i validatori inattivi a riattivarsi appena possibile! Uno scenario di perdita per inattività è stato riscontrato sulla rete di prova Medalla quando \<66% di validatori attivi è riuscito ad arrivare al consenso sulla testa corrente della blockchain. La perdita per inattività è stata attivata e la finalità è stata infine recuperata! Il design di ricompense, sanzioni e frazionamenti del meccanismo di consenso incoraggia i singoli validatori a comportarsi correttamente. Tuttavia, da tali scelte di progettazione emerge un sistema che incentiva fortemente la distribuzione equa dei validatori tra i vari client e dovrebbe disincentivare fortemente il dominio di un singolo client. diff --git a/public/content/translations/it/developers/docs/gas/index.md b/public/content/translations/it/developers/docs/gas/index.md index 62056441a2e..0e96a77e0e9 100644 --- a/public/content/translations/it/developers/docs/gas/index.md +++ b/public/content/translations/it/developers/docs/gas/index.md @@ -1,5 +1,6 @@ --- title: Gas e commissioni +metaTitle: "Gas e commissioni Ethereum: panoramica tecnica" description: lang: it --- diff --git a/public/content/translations/it/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/it/developers/docs/networking-layer/network-addresses/index.md index f681c1c7f35..c04977e5c00 100644 --- a/public/content/translations/it/developers/docs/networking-layer/network-addresses/index.md +++ b/public/content/translations/it/developers/docs/networking-layer/network-addresses/index.md @@ -23,7 +23,7 @@ Per un nodo di Ethereum, il multiaddr contiene l'ID del nodo (un hash della sua ## Enode {#enode} -L’enode è un modo per identificare un nodo di Ethereum usando un formato come indirizzo URL. L'ID del nodo esadecimale è codificato nella porzione del nome utente dell'URL, separato dall'host con il simbolo @. Il nome dell'host può essere dato solo come indirizzo IP; non sono consentiti i nomi DNS. La porta nella sezione del nome del host è la porta d'ascolto TCP. Se le porte TCP e UDP (scoperta) sono differenti, la porta UDP è specificata come parametro di interrogazione "discport" +L’enode è un modo per identificare un nodo di Ethereum usando un formato come indirizzo URL. L'ID del nodo esadecimale è codificato nella porzione del nome utente dell'URL, separato dall'host con il simbolo @. Il nome dell'host può essere dato solo come indirizzo IP; non sono consentiti i nomi DNS. La porta nella sezione del nome del host è la porta d'ascolto TCP. Se le porte TCP e UDP (scoperta) sono differenti, la porta UDP è specificata come parametro di query "discport". Nel seguente esempio, l'URL del nodo descrive un nodo con indirizzo IP `10.3.58.6`, porta TCP `30303` e porta di scoperta UDP `30301`. @@ -35,4 +35,6 @@ Ethereum Node Records (ENR) è un formato standardizzato per gli indirizzi di re ## Letture consigliate {#further-reading} -[EIP-778: Ethereum Node Records (ENR)](https://eips.ethereum.org/EIPS/eip-778) [Indirizzi di rete su Ethereum](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) +- [EIP-778: i registri dei nodi di Ethereum (Ethereum Node Records, ENR)](https://eips.ethereum.org/EIPS/eip-778) +- [Gli indirizzi di rete in Ethereum](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) +- [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/public/content/translations/it/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/it/developers/docs/networking-layer/portal-network/index.md index 3597ad0b455..114400531ff 100644 --- a/public/content/translations/it/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/it/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ I vantaggi di questa progettazione della rete sono: - Ridurre la dipendenza da fornitori centralizzati - Ridurre l'utilizzo della larghezza di banda di Internet - Sincronizzazione ridotta o nulla -- Accessibile a dispositivi con risorse limitate (<1 GB di RAM, <100 MB di spazio su disco, 1 CPU) +- Accessibile a dispositivi con risorse limitate (\<1 GB di RAM, \<100 MB di spazio su disco, 1 CPU) Il diagramma seguente mostra le funzioni dei client esistenti che possono essere fornite dalla Rete Portal, consentendo agli utenti di accedere a tali funzioni su dispositivi con risorse molto limitate. diff --git a/public/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md index 952204e83ba..03beb264b1e 100644 --- a/public/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -56,13 +56,13 @@ Prima di avviare il tuo nodo archivio, scopri le differenze tra i client e, in p ## Pratiche consigliate -Oltre ai [consigli generali per eseguire un nodo](/developers/docs/nodes-and-clients/run-a-node/), un nodo archivio potrebbe avere requisiti maggiori in termini di hardware e manutenzione. Considerando le [funzionalità chiave](https://github.com/ledgerwatch/erigon#key-features) di Erigon, l'approccio più pratico è utilizzare l'implementazione del client di [Erigon](/developers/docs/nodes-and-clients/#erigon). +Oltre ai [consigli generali per eseguire un nodo](developers/docs/nodes-and-clients/run-a-node/), un nodo archivio potrebbe avere requisiti maggiori in termini di hardware e manutenzione. Considerando le [funzionalità chiave](https://github.com/ledgerwatch/erigon#key-features) di Erigon, l'approccio più pratico è utilizzare l'implementazione del client di [Erigon](/developers/docs/nodes-and-clients/#erigon). ### Hardware Assicurati sempre di verificare i requisiti hardware per una data modalità nella documentazione di un client. Il principale requisito per i nodi archivio è lo spazio su disco. A seconda del client, varia da 3TB a 12TB. Anche se gli HDD potrebbero essere considerati la migliore soluzione per grandi quantità di dati, sincronizzare e aggiornare costantemente la testa della catena richiederà dischi SSD. I dischi [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) sono abbastanza buoni ma dovrebbero essere di una qualità affidabile, almeno [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). I dischi possono esser montati in un computer fisso o un server dotato di un numero sufficiente di slot. Tali dispositivi dedicati sono ideali per eseguire nodi con tempi di disponibilità elevati. È assolutamente possibile eseguirli su un laptop, ma la portabilità comporterà un costo aggiuntivo. -Tutti i dati devono entrare in un volume, dunque i dischi devono essere uniti, ad esempio con [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) o [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html). Inoltre, potrebbe valere la pena di considerare l'utilizzo di [ZFS](https://en.wikipedia.org/wiki/ZFS) poiché supporta la "Copy-on-write", che assicura che i dati siano scritti correttamente senza alcun errore di basso livello. +Tutti i dati devono entrare in un volume, dunque i dischi devono essere uniti, ad esempio con [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) o LVM. Inoltre, potrebbe valere la pena di considerare l'utilizzo di [ZFS](https://en.wikipedia.org/wiki/ZFS) poiché supporta la "Copy-on-write", che assicura che i dati siano scritti correttamente senza alcun errore di basso livello. Per una maggiore stabilità e sicurezza nel prevenire la corruzione accidentale del database, specialmente in una configurazione professionale, prendi in considerazione di utilizzare la [memoria ECC](https://en.wikipedia.org/wiki/ECC_memory), se il tuo sistema la supporta. Generalmente si consiglia che le dimensioni della RAM siano le stesse richieste per un nodo completo, ma maggiori quantità di RAM possono aiutare a velocizzare la sincronizzazione. diff --git a/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md index 2fa6c0f4692..b4caecc0e52 100644 --- a/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md @@ -79,6 +79,8 @@ Per "indirizzare" la diversità dei client non basta che i singoli utenti scelga [Prysm](https://docs.prylabs.network/docs/getting-started) +[Grandine](https://docs.grandine.io/) + Gli utenti tecnici possono aiutare ad accelerare questo processo scrivendo più tutorial e documentazioni per i client di minoranza e incoraggiando i propri peer che eseguono dei nodi a migrare dai client dominanti. Le guide per passare a un client di consenso di minoranza sono disponibili su [clientdiversity.org](https://clientdiversity.org/). ## Pannelli di controllo sulla diversità dei client {#client-diversity-dashboards} diff --git a/public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md index 86c163b0f3e..ff2faedebfb 100644 --- a/public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md +++ b/public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md @@ -141,7 +141,7 @@ Come spiegato prima, configurare il tuo nodo di Ethereum richiederà l'esecuzion #### Ottenere il software del client {#getting-the-client} -Prima di tutto devi ottenere il software dei tuoi [client di esecuzione](/developers/docs/nodes-and-clients/#execution-clients) e [client di consenso](/developers/docs/nodes-and-clients/#consensus-clients) preferiti. +Prima di tutto devi ottenere il software dei tuoi [client di esecuzione](/developers/docs/nodes-and-clients/#execution-clients) e [client di consenso](developers/docs/nodes-and-clients/#consensus-clients) preferiti. Puoi semplicemente scaricare un'applicazione eseguibile o pacchetto d'installazione più adatto al tuo sistema operativo e alla tua architettura. Verifica sempre le firme e le checksum dei pacchetti scaricati. Alcuni client offrono anche repository o immagini Docker per facilitare l’installazione e gli aggiornamenti. Tutti i client sono open source, quindi puoi anche compilarli da sorgente. Questo è un metodo più avanzato ma, in alcuni casi, potrebbe esser richiesto. @@ -311,7 +311,7 @@ reth node \ --authrpc.port 8551 ``` -Si veda [Configurare Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) per ulteriori informazioni sulle directory di dati predefinite. La [documentazione di Reth](https://reth.rs/run/mainnet.html) contiene opzioni aggiuntive e dettagli di configurazione. +Visita [Configurare Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) per scoprire di più sulle directory di dati predefinite. La [documentazione di Reth](https://reth.rs/run/mainnet.html) contiene opzioni aggiuntive e dettagli di configurazione. #### Avviare il client di consenso {#starting-the-consensus-client} diff --git a/public/content/translations/it/developers/docs/programming-languages/javascript/index.md b/public/content/translations/it/developers/docs/programming-languages/javascript/index.md index 81a821658c4..e6e69f0248c 100644 --- a/public/content/translations/it/developers/docs/programming-languages/javascript/index.md +++ b/public/content/translations/it/developers/docs/programming-languages/javascript/index.md @@ -32,7 +32,7 @@ Di più sui [contratti intelligenti](/developers/docs/smart-contracts/). ### La macchina virtuale Ethereum {#the-ethereum-virtual-machine} -Esiste un'implementazione JavaScript della [macchina virtuale di Ethereum](/developers/docs/evm/), che supporta le regole più recenti relative alle diramazioni della rete. Le regole relative alle diramazioni si riferiscono alle modifiche apportate alla macchina virtuale di Ethereum (EVM) a seguito di upgrade pianificati. +Esiste un'implementazione JavaScript della [macchina virtuale di Ethereum](/en/developers/docs/evm/), che supporta le regole più recenti relative alle diramazioni della rete. Le regole relative alle diramazioni si riferiscono alle modifiche apportate alla macchina virtuale di Ethereum (EVM) a seguito di upgrade pianificati. È suddivisa in vari pacchetti JavaScript che puoi leggere per comprendere meglio: diff --git a/public/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md index 2329ead4cd1..98898c96b87 100644 --- a/public/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Le specifiche formali di basso livello possono essere date come proprietà in st ### Proprietà in stile Hoare {#hoare-style-properties} -La [logica di Hoare](https://en.wikipedia.org/wiki/Hoare_logic) fornisce una serie di regole formali per ragionare sulla correttezza dei programmi, contratti intelligenti inclusi. Una proprietà in stile Hoare è rappresentata da una tripletta di Hoare {_P_}_c_{_Q_}, dove _c_ è un programma e _P_ e _Q_ sono predicati sullo stato della _c_ (cioè, il programma), formalmente descritte rispettivamente come _precondizioni_ e _postcondizioni_. +La [logica di Hoare](https://en.wikipedia.org/wiki/Hoare_logic) fornisce una serie di regole formali per ragionare sulla correttezza dei programmi, contratti intelligenti inclusi. Una proprietà in stile Hoare è rappresentata da una tripletta di Hoare `{P}c{Q}`, dove `c` è un programma e `P` e `Q` sono predicati sullo stato della `c` (cioè, il programma), formalmente descritte rispettivamente come _precondizioni_ e _postcondizioni_. Una precondizione è un predicato che descrive le condizioni richieste per l'esecuzione corretta di una funzione; gli utenti che chiamano il contratto devono soddisfare tale requisito. Una postcondizione è un predicato che descrive la condizione che una funzione stabilisce se eseguita correttamente; gli utenti possono prevedere che questa condizione sia vera dopo aver chiamato la funzione. Un'_invariante_ nella logica di Hoare è un predicato che è preservato dall'esecuzione di una funzione (cioè, non cambia). diff --git a/public/content/translations/it/developers/docs/smart-contracts/security/index.md b/public/content/translations/it/developers/docs/smart-contracts/security/index.md index b4736159842..efba6ee7d12 100644 --- a/public/content/translations/it/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/it/developers/docs/smart-contracts/security/index.md @@ -563,7 +563,7 @@ Se prevedi di interrogare un oracolo sulla catena per conoscere i prezzi dei ben - **[Standard di verifica della sicurezza dei contratti intelligenti](https://github.com/securing/SCSVS)**: _lista di controllo in quattordici parti, creata per standardizzare la sicurezza dei contratti intelligenti per sviluppatori, architetti, revisori di sicurezza e fornitori._ -- **[Impara sulla sicurezza e il controllo dei contratti intelligenti](https://updraft.cyfrin.io/courses/security)**: _corso definitivo sulla sicurezza e il controllo dei contratti intelligenti, creato per gli sviluppatori di contratti intelligenti che desiderano migliorare le proprie migliori pratiche di sicurezza e diventare ricercatori della sicurezza._ +- **[Impara sulla sicurezza e il controllo dei contratti intelligenti](https://updraft.cyfrin.io/courses/security): _corso definitivo sulla sicurezza e il controllo dei contratti intelligenti, creato per gli sviluppatori di contratti intelligenti che desiderano migliorare le proprie migliori pratiche di sicurezza e diventare ricercatori della sicurezza._ ### Tutorial sulla sicurezza dei contratti intelligenti {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/it/developers/docs/smart-contracts/testing/index.md b/public/content/translations/it/developers/docs/smart-contracts/testing/index.md index a3dbddf8e4b..c086238ef85 100644 --- a/public/content/translations/it/developers/docs/smart-contracts/testing/index.md +++ b/public/content/translations/it/developers/docs/smart-contracts/testing/index.md @@ -130,7 +130,7 @@ Molti quadri di test unitari ti consentono di creare asserzioni – semplici dic ##### 3. Misurare la copertura del codice -La [copertura del codice](https://en.m.wikipedia.org/wiki/Code_coverage) è un parametro di prova che traccia il numero di rami, righe e dichiarazioni nel tuo codice eseguiti durante i test. I test dovrebbero avere una buona copertura del codice, altrimenti potresti ottenere dei "falsi negativi", che si verificano quando un contratto supera tutti i test ma continuano a esistere vulnerabilità nel codice. Registrare un'elevata copertura del codice, tuttavia, garantisce che tutte le dichiarazioni/funzioni di un contratto intelligente siano state testate sufficientemente per verificarne la correttezza. +La [copertura del codice](https://en.m.wikipedia.org/wiki/Code_coverage) è un parametro di prova che traccia il numero di rami, righe e dichiarazioni nel tuo codice eseguiti durante i test. I test dovrebbero avere una buona code coverage per ridurre al minimo il rischio di vulnerabilità non testate. Senza una code coverage sufficiente potresti dare erroneamente per scontato che il tuo contratto sia sicuro; pur superando tutti i test, infatti, potrebbero comunque esistere vulnerabilità in percorsi di codice non testati. Registrare un'elevata copertura del codice, tuttavia, garantisce che tutte le dichiarazioni/funzioni di un contratto intelligente siano state testate sufficientemente per verificarne la correttezza. ##### 4. Utilizzare quadri di test ben sviluppati @@ -213,7 +213,7 @@ Eseguire i contratti su una blockchain locale potrebbe essere utile come forma d ### Testare i contratti sulle reti di prova {#testing-contracts-on-testnets} -Una rete di prova funziona esattamente come la Rete principale di Ethereum, tranne nel fatto che utilizza ether (ETH) privi di valore reale. Distribuire il proprio contratto su una [rete di prova](/developers/docs/networks/#ethereum-testnets) significa che chiunque può interagirvi (es. tramite il frontend della dapp) senza mettere a rischio dei fondi. +Una rete di prova funziona esattamente come la Rete Principale di Ethereum, tranne per il fatto che utilizza degli ether (ETH) privi di valore reale. Distribuire il proprio contratto su una [rete di prova](/developers/docs/networks/#ethereum-testnets) significa che chiunque può interagirvi (es. tramite il frontend della dapp) senza mettere a rischio dei fondi. Questa forma di test manuale è utile per valutare il flusso end-to-end della tua applicazione dal punto di vista di un utente. Inoltre, qui i beta tester possono eseguire prove e segnalare qualsiasi problema con la logica aziendale del contratto e le sue funzionalità complessive. diff --git a/public/content/translations/it/developers/docs/transactions/index.md b/public/content/translations/it/developers/docs/transactions/index.md index f0e931c48e2..cb9303316b7 100644 --- a/public/content/translations/it/developers/docs/transactions/index.md +++ b/public/content/translations/it/developers/docs/transactions/index.md @@ -22,7 +22,7 @@ Le transazioni richiedono una commissione e devono essere incluse in un blocco v Una transazione inviata contiene le seguenti informazioni: -- `from` – indirizzo del mittente che firmerà la transazione. Questo sarà un conto posseduto esternamente, in quanto i conti di contratti non possono inviare transazioni. +- `from` – indirizzo del mittente che firmerà la transazione. Questo sarà un conto posseduto esternamente, in quanto i conti contratto non possono inviare transazioni - `to`: l'indirizzo del destinatario (se è un conto posseduto esternamente, la transazione trasferirà il valore. Se è un conto di contratto, la transazione eseguirà il codice del contratto) - `signature` – l'identificativo del mittente. Viene generata quando la chiave privata del mittente firma la transazione e conferma che il mittente ha autorizzato la transazione - `nonce` – un contatore con incremento sequenziale, che indica il numero della transazione dal conto @@ -162,7 +162,7 @@ Il gas non utilizzato, viene rimborsato al conto dell'utente. Il gas è necessario per qualsiasi transazione riguardi un contratto intelligente. -Inoltre, i contratti intelligenti possono contenere delle funzioni note come [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) o [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions), che non alterano lo stato del contratto. Per questo, chiamare tali funzioni da un EOA non richiederà alcun gas. La chiamata RPC sottostante per questo scenario è [`eth_call`](/developers/docs/apis/json-rpc#eth_call) +Inoltre, i contratti intelligenti possono contenere delle funzioni note come [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) o [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions), che non alterano lo stato del contratto. Per questo, chiamare tali funzioni da un EOA non richiederà alcun gas. La chiamata RPC sottostante per questo scenario è [`eth_call`](/developers/docs/apis/json-rpc#eth_call). A differenza di quando si accede utilizzando `eth_call`, queste funzioni `view` o `pure` sono comunemente chiamate anche internamente (cioè dal contratto stesso o da un altro contratto) e questo costa gas. @@ -198,7 +198,7 @@ Dove i campi sono definiti come: - `TransactionType` - un numero tra 0 e 0x7f, per un totale di 128 tipi di transazione possibili. - `TransactionPayload` - un insieme arbitrario di byte definito dal tipo di transazione. -A seconda del valore di `TransactionType`, una transazione è classificabile come +A seconda del valore del campo `TransactionType`, una transazione è classificabile come: 1. **Transazioni di Tipo 0 (Ereditarie):** Il formato della transazione originale utilizzato dal lancio di Ethereum. Non includono le funzionalità dall'[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), come il calcolo dinamico delle commissioni sul gas o gli elenchi di accesso per i contratti intelligenti. Le transazioni ereditarie mancano di un prefisso specifico che ne indichi il tipo nella loro forma serializzata, che parte dal byte `0xf8` utilizzando la codifica a [Prefisso di Lunghezza Ricorsiva (RLP)](/developers/docs/data-structures-and-encoding/rlp). Il valore TransactionType per queste transazioni è `0x0`. diff --git a/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md index ea9a7fa3076..fe5495cd10a 100644 --- a/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ Chiunque è autorizzato a trasferire un token, può bruciarlo. Anche se bruciare A differenza di Solidity, Vyper non ha un ereditarietà. Si tratta di una scelta progettuale deliberata per rendere il codice più chiaro e quindi più facile da proteggere. Quindi, per creare il tuo contratto ERC-721 in Vyper, prendi [questo contratto](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) e lo modifichi per implementare la logica di business che desideri. -# Conclusione {#conclusion} +## Conclusione {#conclusion} Per ripasso presentiamo alcune delle idee più importanti in questo contratto: diff --git a/public/content/translations/it/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/it/developers/tutorials/erc20-annotated-code/index.md index ff194b924c1..4c2720016b4 100644 --- a/public/content/translations/it/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/it/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ La funzione `a.add(b)` è un'aggiunta sicura. Nell'improbabile caso in cui `a`+` Queste sono le quattro funzioni che effettuano il lavoro effettivo: `_transfer`, `_mint`, `_burn` e `_approve`. -#### La funzione \_transfer {#\_transfer} +#### La funzione \_transfer {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ Queste sono le righe che effettuano concretamente il trasferimento. Nota che non Infine, emetti un evento `Transfer`. Gli eventi non sono accessibili agli smart contract, ma il codice eseguito al di fuori della blockchain può ascoltarli e reagire a essi. Ad esempio, un portafoglio può tracciare la ricezione di altri token da parte del proprietario. -#### Le funzioni \_mint e \_burn {#\_mint-and-\_burn} +#### Le funzioni \_mint e \_burn {#_mint-and-_burn} Queste due funzioni (`_mint` e `_burn`) modificano la fornitura totale di token. Sono interne e non esiste alcuna funzione che le chiami in questo contratto, quindi sono utili solo se erediti dal contratto e aggiungi la tua logica per decidere a quali condizioni coniare nuovi token o bruciare quelli esistenti. @@ -706,7 +706,7 @@ Assicurati di aggiornare `_totalSupply` quando il numero totale di token cambia. La funzione `_burn` è quasi identica a `_mint`, con la differenza che va in senso opposto. -#### La funzione \_approve {#\_approve} +#### La funzione \_approve {#_approve} Questa è la funzione che specifica concretamente i margini di tolleranza. Nota che consente a un proprietario di specificare una tolleranza superiore al saldo corrente del proprietario. Questo non è un problema, poiché il saldo è controllato al momento del trasferimento, quando potrebbe differire dal saldo alla creazione del margine di tolleranza. @@ -784,7 +784,7 @@ Questa funzione modifica la variabile `_decimals`, usata per indicare alle inter Questa è la funzione hook da chiamare durante i trasferimenti. Qui è vuota, ma se hai bisogno di fare qualcosa, basta sovrascriverla. -# Conclusioni {#conclusion} +## Conclusioni {#conclusion} A titolo di ripasso, ecco alcune delle idee più importanti in questo contrato (a mio parere, probabilmente il tuo sarà diverso): diff --git a/public/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md index 45d2efb5925..af4da98b19b 100644 --- a/public/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -260,7 +260,7 @@ Nella cartella del tuo progetto digita: npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" ``` -### Fase 13: aggiorna hardhat.config.js {#step-13-update-hardhat.configjs} +### Fase 13: aggiorna hardhat.config.js {#step-13-update-hardhat-configjs} Finora abbiamo aggiunto diverse dipendenze e plugin, ora dobbiamo aggiornare `hardhat.config.js` in modo che il nostro progetto li riconosca tutti. diff --git a/public/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md index 34569067c38..c9b3a494aea 100644 --- a/public/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md +++ b/public/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md @@ -29,7 +29,7 @@ Una volta sulla rete di Sepolia, seleziona la scheda "Collezionabili" sulla dest ![Come trovare l'hash della tua transazione e l'ID del token ERC-721](./findNFTEtherscan.png) -È possibile che tu debba ricaricare un paio di volte per vedere il tuo NFT — ma ci sarà ! +È possibile che tu debba ricaricare un paio di volte per vedere il tuo NFT — ma ci sarà ! ![Come caricare il tuo NFT su MetaMask](./findNFTMetamask.gif) diff --git a/public/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index fbe6c7961c3..41983306c28 100644 --- a/public/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -76,7 +76,7 @@ Ora che siamo nella cartella del nostro progetto, useremo npm init per inizializ npm init Non è importante come rispondi alle domande d'installazione; a titolo di esempio, ecco le nostre risposte: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -99,7 +99,7 @@ Non è importante come rispondi alle domande d'installazione; a titolo di esempi "author": "", "license": "ISC" } - +``` Approva il package.json, e siamo pronti! ## Fase 7: installa [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} @@ -259,6 +259,7 @@ Finora abbiamo aggiunto diverse dipendenze e plugin, ora dobbiamo aggiornare har Aggiorna il tuo hardhat.config.js affinché appaia così: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -276,6 +277,7 @@ Aggiorna il tuo hardhat.config.js affinché appaia così: } }, } +``` ## Fase 14: compila il contratto {#compile-contract} diff --git a/public/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md index 9cec3174503..6a5a70a12c9 100644 --- a/public/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md @@ -53,8 +53,8 @@ I contratti sono sempre eseguiti dal primo byte. Questa è la parte iniziale del | 4 | MSTORE | Vuoto | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | Vuoto | Questo codice fa due cose: @@ -119,8 +119,8 @@ Il `NOT` opera su singoli bit, quindi annulla il valore di ogni bit nel valore d | ------:| ------------ | ------------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | | Saltiamo se `Value*` è inferiore o pari a 2^256-CALLVALUE-1. Questa sembra una logica per prevenire l'overflow. E in effetti vediamo che dopo alcune operazioni senza senso (la scrittura sulla memoria sta per essere eliminata, ad esempio), all'offset 0x01DE il contratto si annulla se viene rilevato l'overflow, il che è comportamento normale. @@ -431,7 +431,7 @@ Il codice negli offset 0x138-0x143 è identico a quello che abbiamo visto in 0x1 | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -471,8 +471,8 @@ Vediamo cosa succede se la funzione _ottiene_ i dati della chiamata che necessit | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Qualcosa del genere: "typescript": "^3.8.3" } } +```
                    tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Qualcosa del genere: "target": "ES2018" } } +```
                    @@ -104,6 +108,7 @@ Qualcosa del genere:
                    .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Qualcosa del genere: } ] } +```
                    @@ -709,6 +715,7 @@ Dovresti vedere che Waffle ha compilato il tuo contratto e posizionato l'output
                    BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Dovresti vedere che Waffle ha compilato il tuo contratto e posizionato l'output "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                    ## Fase #4: Testa il tuo contratto intelligente [Link alla documentazione](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md index 191ec42be65..c22e5c12f05 100644 --- a/public/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md +++ b/public/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md @@ -45,6 +45,7 @@ Qualcosa del genere:
                    package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Qualcosa del genere: "typescript": "^3.8.3" } } +```
                    tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Qualcosa del genere: "target": "ES2018" } } +```
                    @@ -104,6 +108,7 @@ Qualcosa del genere:
                    .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Qualcosa del genere: } ] } +```
                    @@ -709,6 +715,7 @@ Dovresti vedere che Waffle ha compilato il tuo contratto e posizionato l'output
                    BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Dovresti vedere che Waffle ha compilato il tuo contratto e posizionato l'output "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                    ## Fase #4: Testa il tuo smart contract [Link alla documentazione](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/it/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/it/developers/tutorials/yellow-paper-evm/index.md index 8e773cab8ce..190e4bec8f8 100644 --- a/public/content/translations/it/developers/tutorials/yellow-paper-evm/index.md +++ b/public/content/translations/it/developers/tutorials/yellow-paper-evm/index.md @@ -169,7 +169,7 @@ Abbiamo un arresto eccezionale se una di queste condizioni è True: La funzione _W(w,μ)_ è definita successivamente nell'equazione 150. _W(w,μ)_ è True se una di queste condizioni è True: - - **_w ∈ {CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Questi opcode modificano lo stato, creando un nuovo contratto, memorizzando un valore o distruggendo il contratto attuale. + - **_w ∈ \{CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Questi opcode modificano lo stato, creando un nuovo contratto, memorizzando un valore o distruggendo il contratto attuale. - **_LOG0≤w ∧ w≤LOG4_** Se siamo chiamati staticamente, non possiamo emettere voci di registro. Gli opcode del registro sono tutti compresi nell'intervallo tra [`LOG0` (A0)](https://www.evm.codes/#a0) e [`LOG4` (A4)](https://www.evm.codes/#a4). Il numero dopo l'opcode del registro specifica quanti argomenti contiene la voce del registro. @@ -231,7 +231,7 @@ L'indirizzo di cui dobbiamo trovare il saldo è _μs[0] mod 2160 Se _σ[μs[0] mod 2160] ≠ ∅_, significa che esistono informazioni su questo indirizzo. In questo caso, _σ[μs[0] mod 2160]b_ è il saldo per quell'indirizzo. Se _σ[μs[0] mod 2160] = ∅_, significa che questo indirizzo non è inizializzato e il saldo è zero. L'elenco dei campi informativi del conto è riportato nella sezione 4.1 a pag. 4. -La seconda equazione, _A'a ≡ Aa ∪ {μs[0] mod 2160}_, è relativa alla differenza di costo tra l'accesso all'archiviazione calda (archiviazione a cui si è acceduto di recente e che probabilmente è memorizzata nella cache) e all'archiviazione fredda (archiviazione a cui non si è acceduto e che probabilmente si trova in un'archiviazione più lenta e più costosa da recuperare). _Aa_ è l'elenco degli indirizzi precedentemente consultati dalla transazione, che quindi dovrebbero essere meno costosi da raggiungere, come definito nella sezione 6.1 a pag. 8. Per ulteriori informazioni su questo argomento, puoi consultare [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). +La seconda equazione, _A'a ≡ Aa ∪ \{μs[0] mod 2160}_, è relativa alla differenza di costo tra l'accesso all'archiviazione calda (archiviazione a cui si è acceduto di recente e che probabilmente è memorizzata nella cache) e all'archiviazione fredda (archiviazione a cui non si è acceduto e che probabilmente si trova in un'archiviazione più lenta e più costosa da recuperare). _Aa_ è l'elenco degli indirizzi precedentemente consultati dalla transazione, che quindi dovrebbero essere meno costosi da raggiungere, come definito nella sezione 6.1 a pag. 8. Per ulteriori informazioni su questo argomento, puoi consultare [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). | Valore | Mnemonica | δ | α | Descrizione | | -----: | --------- | --- | --- | --------------------------------------- | diff --git a/public/content/translations/it/glossary/index.md b/public/content/translations/it/glossary/index.md index 8bfbb69f159..819bb779648 100644 --- a/public/content/translations/it/glossary/index.md +++ b/public/content/translations/it/glossary/index.md @@ -20,8 +20,12 @@ lang: it + + + + @@ -60,6 +64,8 @@ lang: it + + @@ -92,6 +98,8 @@ lang: it + + @@ -158,6 +166,12 @@ lang: it + + + + + + @@ -214,6 +228,8 @@ lang: it + + @@ -226,7 +242,7 @@ lang: it - + @@ -236,6 +252,8 @@ lang: it + + @@ -244,12 +262,18 @@ lang: it ## L {#section-l} + + + + + + @@ -258,18 +282,26 @@ lang: it + + + + + + + + ## N {#section-n} @@ -288,8 +320,12 @@ lang: it ## O {#section-o} + + + + @@ -302,16 +338,24 @@ lang: it + + + + + + + + @@ -336,6 +380,10 @@ lang: it + + + + @@ -374,6 +422,8 @@ lang: it + + @@ -394,6 +444,8 @@ lang: it + + @@ -436,12 +488,12 @@ lang: it ## Fonti {#sources} -_Fornito in parte da [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook) di [Andreas M. Antonopoulos, Gavin Wood](https://ethereumbook.info) con CC-BY-SA_ +_Fornito in parte da [Padroneggiare Ethereum](https://github.com/ethereumbook/ethereumbook) di [Andreas M. Antonopoulos, Gavin Wood](https://ethereumbook.info), sotto CC-BY-SA_ ## Contribuisci a questa pagina {#contribute-to-this-page} -Manca qualcosa? Hai trovato qualcosa di sbagliato? Aiutaci a migliorare contribuendo a questo glossario su GitHub! +Ci siamo dimenticati qualcosa? Hai trovato errori? Aiutaci a migliorare contribuendo a questo glossario su GitHub! -[Scopri di più su come contribuire](/contributing/adding-glossary-terms) +[Maggiori informazioni su come contribuire](/contributing/adding-glossary-terms) diff --git a/public/content/translations/it/guides/how-to-use-a-bridge/index.md b/public/content/translations/it/guides/how-to-use-a-bridge/index.md index 8cf50ebe20f..ac36ae1068e 100644 --- a/public/content/translations/it/guides/how-to-use-a-bridge/index.md +++ b/public/content/translations/it/guides/how-to-use-a-bridge/index.md @@ -10,7 +10,7 @@ Se c'è molto traffico su Ethereum, può diventare costoso. Una soluzione è cre **Prerequisiti:** -- avere un portafoglio di criptovalute, puoi seguire questo tutorial: [Come "registrare" un conto di Ethereum](/guides/how-to-register-an-ethereum-account/) +- possedere un portafoglio di criptovalute; a tale scopo puoi seguire questo tutorial: [Come creare un conto di Ethereum](/guides/how-to-create-an-ethereum-account/) - aggiungere fondi al tuo portafoglio ## 1. Determina quale rete di livello 2 desideri utilizzare diff --git a/public/content/translations/it/guides/how-to-use-a-wallet/index.md b/public/content/translations/it/guides/how-to-use-a-wallet/index.md index 35bdf938fab..80c24a08783 100644 --- a/public/content/translations/it/guides/how-to-use-a-wallet/index.md +++ b/public/content/translations/it/guides/how-to-use-a-wallet/index.md @@ -1,5 +1,6 @@ --- title: Come utilizzare un portafoglio +metaTitle: Come utilizzare i portafogli di Ethereum | Passo dopo passo description: Una guida che spiega come inviare, ricevere token e connettersi a progetti web3. lang: it --- diff --git a/public/content/translations/it/history/index.md b/public/content/translations/it/history/index.md index 39aba74cbbd..fd73602d65f 100644 --- a/public/content/translations/it/history/index.md +++ b/public/content/translations/it/history/index.md @@ -19,12 +19,110 @@ Queste modifiche alle regole potrebbero creare una divisione temporanea nella re + + +Il software sottostante a Ethereum si compone di due parti uguali, note come il [livello di esecuzione](/glossary/#execution-layer) e il [livello di consenso](/glossary/#consensus-layer). + +**Nomenclatura degli aggiornamenti del livello di esecuzione** + +Dal 2021, gli aggiornamenti del **livello di esecuzione** prendono il nome delle città in cui si sono svolti i [sedi dei precedenti Devcon](https://devcon.org/en/past-events/) in ordine cronologico: + +| Nome dell'aggiornamento | Anno del Devcon | Numero del Devcon | Data di aggiornamento | +| ------------ | ----------- | ------------- | ------------ | +| Berlino | 2015 | 0 | 15 Apr. 2021 | +| Londra | 2016 | I | 5 Ago. 2021 | +| Shanghai | 2017 | II | 12 Apr. 2023 | +| **Cancun** | 2018 | III | 13 Mar. 2024 | +| _Praga_ | 2019 | IV | TBD | +| _Osaka_ | 2020 | V | TBD | +| _Bogotà_ | 2022 | VI | TBD | +| _Bangkok_ | 2024 | VII | TBD | + +**Nomenclatura degli aggiornamenti del livello di consenso** + +Dal lancio della [Beacon Chain](/glossary/#beacon-chain), gli aggiornamenti al **livello di consenso** prendono il nome degli astri celesti in ordine alfabetico: + +| Nome dell'aggiornamento | Data dell'aggiornamento | +| ----------------------------------------------------------- | ------------ | +| Genesi della Beacon Chain | 1 Dic. 2020 | +| [Altair](https://en.wikipedia.org/wiki/Altair) | 27 Ott. 2021 | +| [Bellatrix](https://en.wikipedia.org/wiki/Bellatrix) | 6 Set. 2022 | +| [Capella](https://en.wikipedia.org/wiki/Capella) | 12 Apr. 2023 | +| [**Deneb**](https://en.wikipedia.org/wiki/Deneb) | 13 Mar. 2024 | +| [_Electra_]() | TBD | + +**Nomenclatura combinata** + +Gli aggiornamenti dei livelli di esecuzione e di consenso erano inizialmente distribuiti in momenti differenti, ma successivamente a [La Fusione](/roadmap/merge/), nel 2022, sono stati distribuiti simultaneamente. Pertanto, sono emersi dei termini colloquiali per semplificare i riferimenti a questi aggiornamenti che utilizzano un singolo termine congiunto. Ciò è iniziato con l'aggiornamento _Shanghai-Capella_, comunemente noto come "**Shapella**", ed è continuato con l'aggiornamento _Cancun-Deneb_, noto come "**Dencun**". + +| Aggiornamento del livello di esecuzione | Aggiornamento del livello di consenso | Abbreviazione | +| ----------------- | ----------------- | ---------- | +| Shanghai | Capella | "Shapella" | +| Cancun | Deneb | "Dencun" | + + + Salta direttamente alle informazioni su alcuni degli ultimi aggiornamenti particolarmente importanti: [La Beacon Chain](/roadmap/beacon-chain/); [La Fusione](/roadmap/merge/) ed [EIP-1559](#london) Stai cercando i prossimi aggiornamenti di protocollo? [Scopri di più sui prossimi aggiornamenti, nella roadmap di Ethereum](/roadmap/). +## 2024 {#2024} + +### Cancun-Deneb ("Dencun") {#dencun} + + + +#### Riepilogo di Cancun {#cancun-summary} + +L'aggiornamento di Cancun contiene una serie di miglioramenti all'_esecuzione_ di Ethereum, mirati a migliorarne la scalabilità, in tandem con gli aggiornamenti al consenso di Deneb. + +Notevolmente, include l'EIP-4844, nota come **Proto-Danksharding**, che riduce significativamente il costo di archiviazione dei dati per i rollup di livello 2. Ciò è possibile tramite l'introduzione dei "blob" di dati, che consentono ai rollup di pubblicare i dati sulla Rete Principale per un breve periodo di tempo. Questo risulta in commissioni di transazione significativamente inferiori per gli utenti dei rollup di livello 2. + + + +
                      +
                    • EIP-1153: Codici operativi di archiviazione transienti
                    • +
                    • EIP-4788: Radice del blocco della beacon nell'EVM
                    • +
                    • EIP-4844: Transazioni a blob di frammenti (Proto-Danksharding)
                    • +
                    • EIP-5656: MCOPY - Istruzione di copia della memoria
                    • +
                    • EIP-6780: SELFDESTRUCT soltanto nella stessa transazione
                    • +
                    • EIP-7516: Codice operativo BLOBBASEFEE
                    • +
                    + +
                    + +- [Rollup del Livello 2](/layer-2/) +- [Proto-Danksharding](/roadmap/scaling/#proto-danksharding) +- [Danksharding](/roadmap/danksharding/) +- [Leggi le specifiche dell'aggiornamento di Cancun](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md) + +#### Riepilogo di Deneb {#deneb-summary} + +L'aggiornamento di Deneb contiene una serie di miglioramenti al _consenso_ di Ethereum, mirati a migliorarne la scalabilità. Questo aggiornamento è in tandem con gli aggiornamenti del livello di esecuzione Cancun per consentire il Proto-Danksharding (EIP-4844), insieme ad altri miglioramenti alla Beacon Chain. + +I "messaggi di uscita volontaria" firmati e pregenerati non scadono più, dando maggiore controllo agli utenti che mettono i propri fondi in staking con un operatore del nodo di terze parti. Con questo messaggio di uscita firmato, gli staker possono delegare l'operazione del nodo mantenendo l'ablità di uscire in sicurezza e prelevare i propri fondi in qualsiasi momento, senza dover chiedere il permesso a nessuno. + +EIP-7514 comporta un rafforzamento dell'emissione di ETH, limitando il tasso di "churn", per cui i validatori possono unirsi alla rete fino a otto (8) per epoca. Poiché l'emissione di ETH è proporzionale agli ETH totali in staking, limitare il numero di validatori che aderiscono limita il _tasso di aumento_ degli ETH emessi di recente, riducendo inoltre i requisiti hardware per gli operatori del nodo, favorendo la decentralizzazione. + + + +
                      +
                    • EIP-4788: Radice del blocco della beacon nell'EVM
                    • +
                    • EIP-4844: Transazioni a blob di frammenti
                    • +
                    • EIP-7044: Uscite volontarie firmate perpetuamente valide
                    • +
                    • EIP-7045: Aumento degli slot massimi di inclusione dell'attestazione
                    • +
                    • EIP-7514: Aggiunta del limite massimo di churn per epoca
                    • +
                    + +
                    + +- [Leggi le specifiche dell'aggiornamento di Deneb](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/) +- [Domande frequenti su Cancun-Deneb ("Dencun")](/roadmap/dencun/) + + + ## 2023 {#2023} ### Shanghai-Capella ("Shapella") {#shapella} @@ -150,7 +248,7 @@ L'aggiornamento Altair è stato il primo aggiornamento pianificato per la [Beaco - [Leggi le specifiche dell'aggiornamento di Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Curiosità! {#altair-fun-fact} +#### Curiosità! {#altair-fun-fact} Altair è stato il primo importante aggiornamento di rete che ha avuto un tempo di rollout esatto. Tutti gli aggiornamenti precedenti erano basati su un numero di blocco dichiarato su una catena proof-of-work, dove i tempi del blocco variavano. La Beacon Chain non richiede la risoluzione del proof-of-work e funziona invece su un sistema di epoche basato sul tempo che consiste in 32 "slot" di dodici secondi in cui i validatori possono proporre dei blocchi. Questo è il motivo per cui sapevamo esattamente quando avremmo raggiunto l'epoca 74.240 e Altair sarebbe diventato operativo! @@ -166,6 +264,20 @@ Altair è stato il primo importante aggiornamento di rete che ha avuto un tempo L'aggiornamento London ha introdotto l'[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), che ha riformato il mercato delle commissioni sulle transazioni, oltre a modificare come sono gestiti i rimborsi di carburante e la pianificazione di [Ice Age](/glossary/#ice-age). +#### Cos'è l'Aggiornamento di Londra / EIP-1559? {#eip-1559} + +Prima dell'Aggiornamento di Londra, Ethereum disponeva di blocchi di dimensioni fisse. Nei momenti di elevata domanda di rete, questi blocchi operavano a piena capacità. Di conseguenza, gli utenti devono spesso attendere che la domanda si riduca per essere inclusi in un blocco, il che ha portato a una scadente esperienza degli utenti. L'Aggiornamento di Londra ha introdotto blocchi di dimensioni variabili a Ethereum. + +Le modalità di calcolo delle commissioni sulle transazioni sulla rete di Ethereum sono state modificate dall'[Aggiornamento di Londra](/history/#london) di Agosto 2021. Prima dell'aggiornamento di Londra, le commissioni erano calcolate senza separare le commissioni di `base` e `priority`, come segue: + +Diciamo che Alice debba pagare 1 ETH a Bob. Nella transazione, il limite di gas è di 21.000 unità, e il prezzo del gas è di 200 gwei. + +La commissione totale sarebbe stata: `Unità di gas (limite) * Prezzo unitario del gas`, cioè `21.000 * 200 = 4.200.000 gwei` o 0,0042 ETH + +L'implementazione dell'[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) nell'Aggiornamento di Londra ha reso più complesso il meccanismo delle commissioni sulle transazioni, rendendo più prevedibili le commissioni sul gas, e risultando in un mercato delle commissioni sulle transazioni più efficace. Gli utenti possono inviare le transazioni con una `maxFeePerGas` corrispondente a quanto desiderano pagare perché la loro transazione sia eseguita, sapendo che non pagheranno più del prezzo di mercato per il gas (`baseFeePerGas`), ed essere rimborsati di qualsiasi extra, mancia esclusa. + +Questo video spiega l'EIP-1559 e i benefici che comporta: [EIP-1559 Explained](https://www.youtube.com/watch?v=MGemhK9t44Q) + - [Sei uno sviluppatore di dapp? Assicurati di aggiornare le tue librerie e i tuoi strumenti.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) - [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) - [Leggi la spiegazione del Cat Herder di Ethereum](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) @@ -316,7 +428,7 @@ La diramazione Constantinople:
                    • EIP-145ottimizza i costi di certe azioni su catena.
                    • EIP-1014consente di interagire con gli indirizzi che devono ancora essere creati.
                    • -
                    • EIP-1052ottimizza i costi di certe azioni su catena.
                    • +
                    • EIP-1052: Introduce l'istruzione EXTCODEHASH per recuperare l'hash del codice di un altro contratto.
                    • EIP-1234assicura che la blockchain non si congeli prima del proof-of-stake e riduce la ricompensa per blocco da 3 a 2 ETH.
                    diff --git a/public/content/translations/it/nft/index.md b/public/content/translations/it/nft/index.md index 577bdcf4490..8c4c3571012 100644 --- a/public/content/translations/it/nft/index.md +++ b/public/content/translations/it/nft/index.md @@ -1,5 +1,6 @@ --- title: Token non fungibili (NFT) +metaTitle: Cosa sono i NFT? | Benefici e utilizzi description: Una panoramica dei NFT su Ethereum lang: it template: use-cases diff --git a/public/content/translations/it/roadmap/merge/index.md b/public/content/translations/it/roadmap/merge/index.md index a4e944b8fdb..66700f86eb6 100644 --- a/public/content/translations/it/roadmap/merge/index.md +++ b/public/content/translations/it/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Sviluppatori di dapp e contratti intelligenti" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -La Fusione è stata accompagnata da modifiche al consenso, incluse anche modifiche relative a:< +La Fusione è stata accompagnata da modifiche al consenso, incluse anche modifiche relative a:
                    • struttura del blocco
                    • diff --git a/public/content/translations/it/roadmap/statelessness/index.md b/public/content/translations/it/roadmap/statelessness/index.md index 5eb292d0989..f53aba916d2 100644 --- a/public/content/translations/it/roadmap/statelessness/index.md +++ b/public/content/translations/it/roadmap/statelessness/index.md @@ -16,7 +16,7 @@ Dischi rigidi più economici sono utilizzabili per memorizzare i dati più vecch Esistono diversi modi per ridurre la quantità di dati che ciascun nodo deve archiviare, ciascuno dei quali richiede che il protocollo principale di Ethereum venga aggiornato in misura diversa: -- **Scadenza dello storico**: consente ai nodi di scartare i dati di stato precedenti a X blocchi, senza modificare la gestione dei dati di stato del client di Ethereum +- **Scadenza dello storico**: consente ai nodi di scartare i dati di stato più vecchi di X blocchi, senza tuttavia modificare la gestione dei dati di stato da parte del client di Ethereum. - **Scadenza di stato**: consente ai dati di staato non utilizzati di frequente di divenire inattivi. I dati inattivi sono ignorabili dai client, finché non sono "resuscitati". - **Assenza di stato debole**: solo i produttori di blocchi necessitano dell'accesso ai dati di stato completi, altri nodi possono verificare i blocchi senza un database di stato locale. - **Assenza di stato forte**: nessun nodo necessita dell'accesso ai dati di stato completi. diff --git a/public/content/translations/it/smart-contracts/index.md b/public/content/translations/it/smart-contracts/index.md index 0d9deb852c0..2ae22eb21e3 100644 --- a/public/content/translations/it/smart-contracts/index.md +++ b/public/content/translations/it/smart-contracts/index.md @@ -1,5 +1,6 @@ --- title: Contratti intelligenti +metaTitle: "Contratti intelligenti: cosa sono e quali sono i loro vantaggi" description: Un'introduzione semplificata ai contratti intelligenti lang: it --- @@ -76,7 +77,6 @@ Possono eseguire calcoli, creare valuta, memorizzare dati, coniare [NFT](/glossa ## Letture consigliate {#further-reading} - [In che modo i contratti intelligenti cambieranno il mondo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contratti Intelligenti: La Tecnologia della Blockchain Che Sostituirà gli Avvocati](https://blockgeeks.com/guides/smart-contracts/) - [Contratti intelligenti per sviluppatori](/developers/docs/smart-contracts/) - [Impara a scrivere i contratti intelligenti](/developers/learning-tools/) - [Padroneggiare Ethereum: Cos'è un Contratto Intelligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/it/staking/solo/index.md b/public/content/translations/it/staking/solo/index.md index 14e0e9fa15a..d2270beaa0b 100644 --- a/public/content/translations/it/staking/solo/index.md +++ b/public/content/translations/it/staking/solo/index.md @@ -25,7 +25,7 @@ Gli staker domestici sono responsabili di utilizzare l'hardware necessario a ese Uno staker domestico riceve ricompense direttamente dal protocollo per mantenere il proprio validatore correttamente in funzione e online. -## Perché fare staking domestico? {#why-stake-solo} +## Perché fare staking da casa? {#why-stake-solo} Lo staking domestico richiede maggiori responsabilità, ma fornisce il massimo controllo sui propri fondi e sulla propria configurazione di staking. diff --git a/public/content/translations/it/whitepaper/index.md b/public/content/translations/it/whitepaper/index.md index 56da4fbb457..b34a603a867 100644 --- a/public/content/translations/it/whitepaper/index.md +++ b/public/content/translations/it/whitepaper/index.md @@ -383,7 +383,7 @@ Tuttavia, nella realtà, ci sono diverse differenze importanti da queste ipotesi 3. Nella pratica la distribuzione di potenza di mining può risultare per nulla equa. 4. Sono presenti speculatori, avversari politici e squilibrati la cui funzione di utilità include il causare danni alla rete, che possono abilmente configurare contratti con costo molto inferiore rispetto al costo pagato da altri nodi di verifica. -(1) favorisce una tendenza per il miner a includere meno transazioni e (2) aumenta `NC`; di conseguenza, questi due effetti si annullano a vicenda almeno parzialmente.[Come?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) e (4) sono i problemi principali; per risolverli, stabiliamo semplicemente un limite fluttuante: nessun blocco può avere un numero di operazioni superiore a `BLK_LIMIT_FACTOR` volte la media mobile esponenziale a lungo termine. Nello specifico: +(1) favorisce una tendenza per il miner a includere meno transazioni e (2) aumenta `NC`; di conseguenza, questi due effetti si annullano a vicenda almeno parzialmente.[Come?](https://github. om/ethereum/wiki/issues/447#issuecomment-316972260) (3) e (4) sono i problemi principali; per risolverli, stabiliamo semplicemente un limite fluttuante: nessun blocco può avere un numero di operazioni superiore a `BLK_LIMIT_FACTOR` volte la media mobile esponenziale a lungo termine. Nello specifico: ```js blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + diff --git a/public/content/translations/ja/contributing/translation-program/translators-guide/index.md b/public/content/translations/ja/contributing/translation-program/translators-guide/index.md index 6cb7d4cd633..750d214ed35 100644 --- a/public/content/translations/ja/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/ja/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ ethereum.orgまたは他のウェブサイトのページへのフルリンク ![リンクの例link.png](./example-of-link.png) -また、リンクはタグ形式でソーステキストにも表示されます(例: <0> ). タグにカーソルを合わせると、エディタにはフルコンテンツが表示されます。これらのタグはリンクを指定している場合があります。 +また、リンクはタグ形式でソーステキストにも表示されます(例: \<0> \). タグにカーソルを合わせると、エディタにはフルコンテンツが表示されます。これらのタグはリンクを指定している場合があります。 ソースからリンクをコピーして、タグの順序を変更しないことが非常に重要です。 @@ -154,7 +154,7 @@ nonce - _翻訳しないテキスト_ ソーステキストに数値のみの短縮タグも含まれている場合があり、そのタグの意味がすぐには分からない場合があります。 これらのタグにカーソルを合わせると、タグの意味や機能を確認できます。 -以下の例では、 <0> タグにカーソルを合わせると、 ``が表示され、コードスニペットであることが分かります。そのため、これらのタグ内のテキストは翻訳しないでください。 +以下の例では、 \<0> タグにカーソルを合わせると、 ``が表示され、コードスニペットであることが分かります。そのため、これらのタグ内のテキストは翻訳しないでください。 ![不明なタグの例tags.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/ja/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/ja/developers/docs/nodes-and-clients/archive-nodes/index.md index c850d1e148b..ba53667d96f 100644 --- a/public/content/translations/ja/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/ja/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ sidebarDepth: 2 クライアントのドキュメントで、所定のモードの要件を必ず確認するようにしてください。 アーカイブノードでは、ディスクスペースが最大の要件となります。 クライアントにもよりますが、3TBから12TBが必要になります。 HDDは、大容量データの保存には適しているかもしれませんが、同期して常にチェーンの先頭を更新するには、SSDドライブが必要です。 [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html)ドライブでも十分ですが、最低でも [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences)以上の品質のものを選びましょう。 ディスクは、十分なスロットがあるデスクトップコンピュータまたはサーバーが適しています。 このような専用デバイスは、稼働時間の長いノードに最適です。 ノートパソコンで実行しても全く問題ありませんが、移植性の面で追加コストがかかります。 -全データを1つのボリュームに収めるため、複数のディスクを [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0)や[LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html)を使って結合する必要があります。 [ZFS](https://en.wikipedia.org/wiki/ZFS)では、低レベルのエラーの影響を受けずに正しいデータを確実に書き込む「コピーオンライト」をサポートしているため、検討する価値があるかもしれません。 +全データを1つのボリュームに収めるため、複数のディスクを [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0)やLVMを使って結合する必要があります。 [ZFS](https://en.wikipedia.org/wiki/ZFS)では、低レベルのエラーの影響を受けずに正しいデータを確実に書き込む「コピーオンライト」をサポートしているため、検討する価値があるかもしれません。 特に専門的なセットアップにおいては、さらなる安定性とセキュリティのために、偶発的なデータベースの破損を防ぐ[ECCメモリ](https://en.wikipedia.org/wiki/ECC_memory)の使用を検討してください。 RAMのサイズは通常、フルノードと同等のサイズにすることが推奨されますが、RAMのサイズが大きいほど、同期の速度は向上します。 diff --git a/public/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md index 23c4f8ced9d..c5e372848f2 100644 --- a/public/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ lang: ja ### ホーア型のプロパティ {#hoare-style-properties} -[ホーア論理](https://en.wikipedia.org/wiki/Hoare_logic)は、スマートコントラクトなどのプログラムの正当性を論証するための形式規則を提供します。 ホーア型のプロパティは、ホーアトリプルと呼ばれる{_P_}_c_{_Q_}という形の式で与えられます。_c_はプログラムで、_P_と_Q_はそれぞれ正式には_事前条件_、_事後条件_と呼ばれる、cの状態についての述語です。 +[ホーア論理](https://en.wikipedia.org/wiki/Hoare_logic)は、スマートコントラクトなどのプログラムの正当性を論証するための形式規則を提供します。 ホーア型のプロパティは、ホーアトリプルと呼ばれる`{P}c{Q}`という形の式で与えられます。`c`はプログラムで、`P`と`Q`はそれぞれ正式には_事前条件_、_事後条件_と呼ばれる、cの状態についての述語です。 事前条件は関数を正しく実行するために求められる条件を表しています。スマートコントラクトを呼び出す際には、この事前条件が満たされている必要があります。 事後条件は、関数が正しく実行された場合に成立する条件を表しています。関数呼び出しの後はこの事後条件が真となることが期待されます。 ホーア論理の_不変条件_は、関数の実行中は常に維持されます(すなわち、変化しません)。 diff --git a/public/content/translations/ja/developers/docs/smart-contracts/security/index.md b/public/content/translations/ja/developers/docs/smart-contracts/security/index.md index 2770009d89a..d040f838e97 100644 --- a/public/content/translations/ja/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/ja/developers/docs/smart-contracts/security/index.md @@ -561,7 +561,7 @@ DEXの価格は正確であることが多く、これは市場の均衡を取 - **[スマートコントラクトセキュリティ検証スタンダード](https://github.com/securing/SCSVS)** - _デベロッパー、アーキテクト、セキュリティ評価者、ベンダー向けにスマートコントラクトのセキュリティを標準化するために作成された14部構成のチェックリスト。_ -- **[スマートコントラクトセキュリティと監査の学習](https://updraft.cyfrin.io/courses/security)** - _究極のスマート コントラクトセキュリティと監査コース。セキュリティのベストプラクティスのレベルアップおよびセキュリティ研究者になりたいと考えているスマートコントラクトデベロッパー向け。_ +- **[スマートコントラクトセキュリティと監査の学習](https://updraft.cyfrin.io/courses/security) - _究極のスマート コントラクトセキュリティと監査コース。セキュリティのベストプラクティスのレベルアップおよびセキュリティ研究者になりたいと考えているスマートコントラクトデベロッパー向け。_ ### スマートコントラクトのセキュリティに関するチュートリアル {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md index d06bfdcbae6..9e6bbd25911 100644 --- a/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ def burn(_tokenId: uint256): Solidityとは異なり、Viperは相続機能を提供しません。 これは、コードをより明確にし、セキュリティを確保しやすくするための意図的な設計上の選択によるものです。 このため、あなた自身がVyperでERC-721コントラクトを作成する際は、[このコントラクト](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy)を用いて修正し、必要なビジネスロジックを実装してください。 -# まとめ {#conclusion} +## まとめ {#conclusion} このコントラクトにつき、最も重要なポイントを以下にまとめました: diff --git a/public/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md index afad73cf909..a4d3b011fc9 100644 --- a/public/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ B: 次の4つの関数(`_transfer`、`_mint`、`_burn`、`_approve`)は、実際の処理を行います。 -#### \_transfer関数 {#\_transfer} +#### \_transfer関数 {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ OpenZeppelin ERC-20のコードはすでに監査を受けており、安全で 最後に、`Transfer`イベントを発行します。 イベントは、スマートコントラクトからアクセスできません。しかし、ブロックチェーンの外で実行されているコードは、イベントをリッスンして対応することができます。 例えば、ウォレットで所有者がより多くのトークンを得た時期を追跡できます。 -#### \_mint関数と\_burn関数 {#\_mint-and-\_burn} +#### \_mint関数と\_burn関数 {#_mint-and-_burn} この2つの関数(`_mint`と`_burn`)は、トークンの総供給量を変更します。 これらはinternalであり、このコントラクト内にこれらを呼び出す関数はありません。そのため、コントラクトを継承し、新しいトークンのミントや既存のトークンのバーンを実行する条件を決定する独自のロジックを追加する場合にのみ役立ちます。 @@ -706,7 +706,7 @@ OpenZeppelin ERC-20のコードはすでに監査を受けており、安全で `_burn`関数は、方向が逆であることを除き`_mint`とほぼ同じです。 -#### \_approve関数 {#\_approve} +#### \_approve関数 {#_approve} これは、実際の割当量(allowance)を指定する関数です。 所有者は自身の現在の残高よりも高い割当量を指定できることに注意してください。 残高は転送時にチェックされるため、割当量の作成時の残高と異なっていても問題ありません。 @@ -784,7 +784,7 @@ OpenZeppelin ERC-20のコードはすでに監査を受けており、安全で このフック関数は、転送中に呼び出されます。 空になっていますが、何かを実行するのにこの関数が必要な場合は、オーバーライドしてください。 -# まとめ {#conclusion} +## まとめ {#conclusion} 確認のため、このコントラクトの最も重要な点を以下にまとめています(個人的な意見のため、他者にとって重要な点とは異なる場合があります) 。 diff --git a/public/content/translations/ja/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/ja/developers/tutorials/hello-world-smart-contract-fullstack/index.md index 3be7dc73466..518f4c10ac4 100644 --- a/public/content/translations/ja/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/translations/ja/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -260,7 +260,7 @@ Hardhatを使用すると、追加のツールと拡張機能のための[プラ npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" ``` -### ステップ13: hardhat.config.jsをアップデートする {#step-13-update-hardhat.configjs} +### ステップ13: hardhat.config.jsをアップデートする {#step-13-update-hardhat-configjs} ここまでで、いくつかの依存関係とプラグインを追加しました。次に、`hardhat.config.js`を更新して、プロジェクトがそれらすべてについて認識できるようにする必要があります。 diff --git a/public/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md index d1c9a062095..ef610e4373a 100644 --- a/public/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md +++ b/public/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md @@ -14,7 +14,7 @@ published: 2021-04-22 [Beeple](https://www.nytimes.com/2021/03/11/arts/design/nft-auction-christies-beeple.html): $69,000,000 [3LAU](https://www.forbes.com/sites/abrambrown/2021/03/03/3lau-nft-nonfungible-tokens-justin-blau/?sh=5f72ef64643b): $11,000,000 [Grimes](https://www.theguardian.com/music/2021/mar/02/grimes-sells-digital-art-collection-non-fungible-tokens): $6,000,000 -いずれもAlchemyの強力なAPIを使ってNFTをミントしています。 このチュートリアルでは、<10分以内でNFTをミントする方法を説明します。 +いずれもAlchemyの強力なAPIを使ってNFTをミントしています。 このチュートリアルでは、\<10分以内でNFTをミントする方法を説明します。 「NFTのミント」とは、ブロックチェーン上にERC-721トークンのユニークなインスタンスを公開することです。 [NFTチュートリアルシリーズのパート1](/developers/tutorials/how-to-write-and-deploy-an-nft/)で作成したスマートコントラクトを使って、Web3のスキルを駆使し、NFTをミントしてみましょう。 このチュートリアルが終わるころには、あなた(とウォレット) の望むがままにNFTをミントできるようになります。 diff --git a/public/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index dd960cde570..8ba5a2da64d 100644 --- a/public/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -76,7 +76,7 @@ Metamaskのアカウントは[こちら](https://metamask.io/download.html)か npm init インストール時の質問に対する回答方法は自由です。参考までに過去の回答方法は次のとおりです。 - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -99,7 +99,7 @@ Metamaskのアカウントは[こちら](https://metamask.io/download.html)か "author": "", "license": "ISC" } - +``` 「package.json」を承認してください。これで準備が完了しました。 ## ステップ7: [Hardhat](https://hardhat.org/getting-started/#overview)をインストールする {#install-hardhat} @@ -259,6 +259,7 @@ Hardhatは、追加のツールと拡張機能のための[プラグイン](http 「hardhat.config.js」を以下のように更新してください: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -276,6 +277,7 @@ Hardhatは、追加のツールと拡張機能のための[プラグイン](http } }, } +``` ## ステップ14: コントラクトをコンパイルする {#compile-contract} diff --git a/public/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md index 66a13e99b02..4f12f48142c 100644 --- a/public/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md @@ -53,8 +53,8 @@ Etherscanにアクセスするとコントラクトのオペコードを入手 | 4 | MSTORE | なし | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | なし | このコードは、次の2つのことをしています。 @@ -119,8 +119,8 @@ Etherscanにアクセスするとコントラクトのオペコードを入手 | -----:| ------------ | ------------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | | `Value*`の値が、2^256-CALLVALUE-1以下の場合にジャンプ(JUMP)します。 これは、オーバーフローを防ぐためのロジックに見えます。 実際に、オフセット0X01DEでいくつかの無意味な操作(例: 削除される寸前にメモリへの書き込み)をした後、オーバーフローが検出されると、標準の動作としてコントラクトが元に戻されます。 @@ -431,7 +431,7 @@ Etherscanでは、`1C`が未知のオペコードとなっていますが、こ | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -471,8 +471,8 @@ Etherscanでは、`1C`が未知のオペコードとなっていますが、こ | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ published: 2020-10-16 "typescript": "^3.8.3" } } +```
                      tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ published: 2020-10-16 "target": "ES2018" } } +```
                      @@ -104,6 +108,7 @@ published: 2020-10-16
                      .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ published: 2020-10-16 } ] } +```
                      @@ -709,6 +715,7 @@ Waffleがコントラクトをコンパイルし、JSONの出力結果を`build`
                      BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Waffleがコントラクトをコンパイルし、JSONの出力結果を`build` "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                      ## ステップ4:スマートコントラクトをテストする([ドキュメントのリンク](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md index 05af8a3d730..8d07a69140f 100644 --- a/public/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md +++ b/public/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md @@ -45,6 +45,7 @@ published: 2020-10-16
                      package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ published: 2020-10-16 "typescript": "^3.8.3" } } +```
                      tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ published: 2020-10-16 "target": "ES2018" } } +```
                      @@ -104,6 +108,7 @@ published: 2020-10-16
                      .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ published: 2020-10-16 } ] } +```
                      @@ -709,6 +715,7 @@ Waffle がコントラクトをコンパイルしたので、JSON の出力結
                      BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Waffle がコントラクトをコンパイルしたので、JSON の出力結 "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                      ## ステップ 4:スマートコントラクトをテストする([ドキュメントのリンク](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/ja/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/ja/developers/tutorials/yellow-paper-evm/index.md index 1ff87d49abb..b715247d540 100644 --- a/public/content/translations/ja/developers/tutorials/yellow-paper-evm/index.md +++ b/public/content/translations/ja/developers/tutorials/yellow-paper-evm/index.md @@ -167,7 +167,7 @@ EVMには、システム状態の一部として保持される独自の不揮 関数_W(w,μ)_は、この後に式150にて定義されています。 次の条件が真の場合、_W(w,μ)_が真になります。 - - **_w ∈ {CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** これらのオペコードは、新しいコントラクトの作成、値の保存、現在のコントラクトの破棄によって状態を変更します。 + - **_w ∈ \{CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** これらのオペコードは、新しいコントラクトの作成、値の保存、現在のコントラクトの破棄によって状態を変更します。 - **_LOG0≤w ∧ w≤LOG4_** 静的に呼び出した場合、ログエントリは出力されません。 [`LOG0` (A0)](https://www.evm.codes/#a0)から[`LOG4` (A4)](https://www.evm.codes/#a4)の間における範囲内に全てのログオペコードがあります。 ログオペコードの後にある数字は、ログエントリに含まれるトピックの数を規定しています。 - **_w=CALL ∧ μs[2]≠0_** 静的な場合、他のコントラクトは呼び出せますが、ETHの送金はできません。 @@ -228,7 +228,7 @@ _α_は、プッシュバックする値の個数です。 この場合は、合 _σ[μs[0] mod 2160] ≠ ∅_の場合、このアドレスに関する情報が存在します。 その場合、_σ[μs[0] mod 2160]b_は、そのアドレスの残高です。 _σ[μs[0] mod 2160] = ∅_ の場合、このアドレスは初期化されておらず、残高はゼロです。 アカウント情報フィールドのリストは、4ページ目のセクション4.1に記載されています。 -2つ目の数式、_A'a ≡ Aa ∪ {μs[0] mod 2160}_は、ウォームストレージ(最近アクセスされ、キャッシュされる可能性が高いストレージ)とコールドストレージ(アクセスされておらず、取得コストが高く低速な可能性が高いストレージ)とのアクセスのコストの差に関連しています。 _Aa_は、トランザクションによって以前アクセスされたアドレスのリストです。このリストは、8ページ目のセクション6.1に定義されているように、アクセスするコストが安くなっています。 この件についての詳細は、[EIP-2929](https://eips.ethereum.org/EIPS/eip-2929)をご覧ください。 +2つ目の数式、_A'a ≡ Aa ∪ \{μs[0] mod 2160}_は、ウォームストレージ(最近アクセスされ、キャッシュされる可能性が高いストレージ)とコールドストレージ(アクセスされておらず、取得コストが高く低速な可能性が高いストレージ)とのアクセスのコストの差に関連しています。 _Aa_は、トランザクションによって以前アクセスされたアドレスのリストです。このリストは、8ページ目のセクション6.1に定義されているように、アクセスするコストが安くなっています。 この件についての詳細は、[EIP-2929](https://eips.ethereum.org/EIPS/eip-2929)をご覧ください。 | 値 | Mnemonic | δ | α | 説明 | | ----:| -------- | -- | -- | --------------------------------------- | diff --git a/public/content/translations/ja/history/index.md b/public/content/translations/ja/history/index.md index aec43a252cf..5b95448d1fb 100644 --- a/public/content/translations/ja/history/index.md +++ b/public/content/translations/ja/history/index.md @@ -30,8 +30,6 @@ sidebarDepth: 1 タイムスタンプ: Apr-12-2023 22:27:35 +UTC
                      ブロック番号: TBD
                      ETH 価格: TBD
                      - - #### 要約 {#shanghai-summary} 上海アップグレードにより、実行レイヤーへのステーキングの引き出しが可能になります。 カペラのアップグレードと並行して、ブロックは引き出し操作を受け付けられるようになり、ステーカーはビーコンチェーンから実行レイヤーに ETH を引き出せるようになります。 @@ -54,8 +52,6 @@ sidebarDepth: 1 タイムスタンプ: Apr-12-2023 22:27:35 +UTC
                      エポック番号: 194048(スロット 6209536)
                      ETH 価格: TBD
                      - - #### 要約 {#capella-summary} カペラのアップグレードは、コンセンサスレイヤー(ビーコンチェーン)に対する 3 番目の主要なアップグレードであり、ステーキングの引き出しが可能になります。 カペラは、実行レイヤーで行われる上海のアップグレードと同時に行われ、お互いに同期して引き出し機能を有効にします。 diff --git a/public/content/translations/ja/roadmap/dencun/index.md b/public/content/translations/ja/roadmap/dencun/index.md index d37eda48e35..6fdbb125a4e 100644 --- a/public/content/translations/ja/roadmap/dencun/index.md +++ b/public/content/translations/ja/roadmap/dencun/index.md @@ -18,14 +18,14 @@ lang: ja - ArbitrumやOptimismなどの主要なロールアッププロバイダーは、アップグレード後すぐにブロブがサポートされることを表明しています。 - 個々のロールアップのサポートタイムラインは、各プロバイダーが新しいブロブスペースを活用するためにシステムを更新する必要があるため、異なる可能性があります。 -## ハードフォーク後にETHはどのように変換されるのでしょうか? {#scam-alert} {#scam-alert} +## ハードフォーク後にETHはどのように変換されるのでしょうか? {#scam-alert} - ETHに必要なアクションはありません: イーサリアムのデンクンアップグレード後、ETHを変換またはアップグレードする必要はありません。 あなたのアカウント残高は同じままで、現在保有しているETHはハードフォーク後も既存の形式でアクセス可能です。 - 詐欺に注意してください! ETHを「アップグレード」するよう指示する人は、詐欺を試みています。このアップグレードに関して、あなたがする必要のあることは何もありません。 あなたの資産は完全に影響を受けません。 詐欺から身を守る最善の方法は、情報を得ておくことです。 [詐欺の認識と回避についての詳細](/security/) -## デンクンネットワークアップグレードはどのような問題を解決しているのでしょうか? {#network-impact} {#network-impact} +## デンクンネットワークアップグレードはどのような問題を解決しているのでしょうか? {#network-impact} デンクンは主に、ネットワークの分散性を維持しながら、手頃な手数料でスケーラビリティ(より多くのユーザーとより多くのトランザクションの処理) に対応しています。 @@ -37,7 +37,7 @@ lang: ja [イーサリアムのスケーリングについての詳細](/roadmap/scaling/) -## 古いブロブデータにはどうアクセスするのでしょうか? {#historical-access} {#historical-access} +## 古いブロブデータにはどうアクセスするのでしょうか? {#historical-access} 通常のイーサリアムノードは常にネットワークの現在の状態を保持しますが、古いブロブデータは導入後約18日で破棄される可能性があります。 このデータを破棄する前に、イーサリアムはすべてのネットワーク参加者がそれを利用できるようにし、以下のための時間を確保します: diff --git a/public/content/translations/ja/roadmap/future-proofing/index.md b/public/content/translations/ja/roadmap/future-proofing/index.md index 5157102b0f7..ac75e66c791 100644 --- a/public/content/translations/ja/roadmap/future-proofing/index.md +++ b/public/content/translations/ja/roadmap/future-proofing/index.md @@ -15,7 +15,7 @@ template: roadmap イーサリアムのデベロッパーが直面している課題は、現在の[プルーフ・オブ・ステーク](/glossary/#pos)のプロトコルが、有効な[ブロック](/glossary/#block)の投票を集約するために、非常に効率的な署名スキームであるBLSに依存していることです。 この署名スキームは、量子コンピューターによって破られてしまう可能性があります。一方、量子耐性のある代替手段は、計算効率がそれほど良くありません。 -イーサリアムでは、暗号秘密を生成するために[「KZG」コミットメントスキーム](/roadmap/danksharding/#what-is-kzg)が広く使われています。しかし、このスキームは量子コンピュータによって破られる可能性があります。 現在は、多くのユーザーが生成したランダム性を使用して「信頼できるセットアップ」として回避されており、量子コンピューターによるリバースエンジニアリングができないようになっています。 しかし、理想的には、量子安全暗号を組み込むことで、脆弱性を根本的に解決することが望まれます。 BLSスキームの効率的な代替となる可能性のある2つの主要なアプローチとして、[STARKベース](https://hackmd.io/@vbuterin/stark_aggregation)と[ラティスベース](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)の署名スキームがあります。 **これらについては現在、研究および試作中です**。 +イーサリアムでは、暗号秘密を生成するために[「KZG」コミットメントスキーム](/roadmap/danksharding/#what-is-kzg)が広く使われています。しかし、このスキームは量子コンピュータによって破られる可能性があります。 現在は、多くのユーザーが生成したランダム性を使用して「信頼できるセットアップ」として回避されており、量子コンピューターによるリバースエンジニアリングができないようになっています。 しかし、理想的には、量子安全暗号を組み込むことで、脆弱性を根本的に解決することが望まれます。 BLSスキームの効率的な代替となる可能性のある2つの主要なアプローチとして、[STARKベース](https://hackmd.io/@vbuterin/stark_aggregation)と[ラティスベース](https:/ /medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)の署名スキームがあります。 **これらについては現在、研究および試作中です**。 KZGと信頼できるセットアップについての詳細 diff --git a/public/content/translations/ja/roadmap/merge/index.md b/public/content/translations/ja/roadmap/merge/index.md index 8912644253b..efa8ed27240 100644 --- a/public/content/translations/ja/roadmap/merge/index.md +++ b/public/content/translations/ja/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="分散型アプリ(Dapp)とスマートコントラクトのデベロッ contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -マージにはコンセンサスに関連する変更も含まれており、下記に関連する変更も含まれています。< +マージにはコンセンサスに関連する変更も含まれており、下記に関連する変更も含まれています。
                      • ブロック構造
                      • diff --git a/public/content/translations/ko/whitepaper/index.md b/public/content/translations/ko/whitepaper/index.md index f697ccb53f0..ddf2242cf9a 100644 --- a/public/content/translations/ko/whitepaper/index.md +++ b/public/content/translations/ko/whitepaper/index.md @@ -355,7 +355,7 @@ DAO를 코드화 하는 대략적인 방법은 다음과 같다. 가장 단순 - 하나의 블록은 반드시 1개의 부모 블록 및 0개 이상의 삼촌 블록을 가리켜야 한다. - 블록 B의 삼촌 블록은 반드시 아래 특성을 만족해야 한다. - - B의 k세대 조상의 직계 자식이어야 하며, 반면 2 <= k <= 7 이다. + - B의 k세대 조상의 직계 자식이어야 하며, 반면 `2 <= k <= 7` 이다. - B의 조상이 아니다. - 삼촌 블록은 반드시 유효한 블록 헤더여야 하지만, 앞서 검증을 받았거나 혹은 유효한 블록일 필요는 없다. - 삼촌 블록은 이전 블록들에 포함된 모든 삼촌 블록 및 같은 블록에 포함된 모든 다른 삼촌 블록과 달라야한다. (비 이중 포함) diff --git a/public/content/translations/ms/bridges/index.md b/public/content/translations/ms/bridges/index.md index 646a7b1e587..ff611e676c4 100644 --- a/public/content/translations/ms/bridges/index.md +++ b/public/content/translations/ms/bridges/index.md @@ -77,7 +77,7 @@ Jambatan mempunyai pelbagai jenis reka bentuk dan kerumitan. Secara umumnya, jam Secara ringkasnya, kita boleh mengatakan bahawa jambatan yang dipercayai mempunyai andaian kepercayaan, sedangkan jambatan tanpa kepercayaan mempunyai kepercayaan yang minimum dan tidak membuat andaian kepercayaan baru di luar domain asas. Berikut ialah cara istilah-istilah ini boleh diterangkan: -- **Tanpa kepercayaan**: mempunyai keselamatan yang setara dengan domain asas. Seperti yang diterangkan oleh [Arjun Bhuptani dalam artikel ini.](https://medium.com/connext/the-interoperability-trilemma-657c2cf69f17) +- **Tanpa kepercayaan**: mempunyai keselamatan yang setara dengan domain asas. Seperti yang diterangkan oleh [Arjun Bhuptani dalam artikel ini. ](https://medium.com/connext/the-interoperability-trilemma-657c2cf69f17) - **Andaian kepercayaan:**bergerak jauh daripada keselamatan domain asas dengan menambah pengesahan luaran dalam sistem, dengan itu menjadikannya satu kripto ekonomi yang kurang selamat. Untuk mengembangkan pemahaman yang lebih baik tentang perbezaan utama antara dua pendekatan tersebut, mari kita ambil satu contoh: diff --git a/public/content/translations/ms/energy-consumption/index.md b/public/content/translations/ms/energy-consumption/index.md index eb659ad1a07..d5d84d79550 100644 --- a/public/content/translations/ms/energy-consumption/index.md +++ b/public/content/translations/ms/energy-consumption/index.md @@ -71,8 +71,8 @@ Platform pembiayaan barangan awam asli Web3 seperti [Gitcoin](https://gitcoin.co - [Laporan Rumah Putih mengenai blok rantai bukti kerja](https://www.whitehouse.gov/wp-content/uploads/2022/09/09-2022-Crypto-Assets-and-Climate-Report.pdf) - [Pelepasan Ethereum: Anggaran Dari Bawah Ke Atas](https://kylemcdonald.github.io/ethereum-emissions/) - _Kyle McDonald_ - [Indeks Penggunaan Tenaga Ethereum](https://digiconomist.net/ethereum-energy-consumption/) - _Digiconomist_ -- [ETHMerge.com](https://ethmerge.com/) - _[@DalamSim](https://twitter.com/InsideTheSim)_ -- [The Merge - Implikasi pada Penggunaan Elektrik dan Jejak Karbon daripada Rangkaian Ethereum](https://carbon-ratings.com/eth-report-2022) - _CCRI_ +- [ ETHMerge.com ](https://ethmerge.com/) - _[@DalamSim](https://twitter.com/InsideTheSim)_ +- [The Merge - Implikasi pada Penggunaan Elektrik dan Jejak Karbon daripada Rangkaian Ethereum ](https://carbon-ratings.com/eth-report-2022) - _CCRI_ - [Penggunaan tenaga Ethereum](https://mirror.xyz/jmcook.eth/ODpCLtO4Kq7SCVFbU4He8o8kXs418ZZDTj0lpYlZkR8) ## Topik berkaitan {#related-topics} diff --git a/public/content/translations/ms/governance/index.md b/public/content/translations/ms/governance/index.md index 9ef8264b0bd..4534bbac4b1 100644 --- a/public/content/translations/ms/governance/index.md +++ b/public/content/translations/ms/governance/index.md @@ -175,8 +175,8 @@ Apabila Rantai Beacon bergabung dengan lapisan pelaksanaan Ethereum pada 15 Sept Tadbir urus di Ethereum tidak ditakrifkan secara tegar. Pelbagai peserta komuniti mempunyai perspektif yang pelbagai tentangnya. Berikut adalah antaranya: - [Nota tentang Blok Rantai Tadbir Urus](https://vitalik.eth.limo/general/2017/12/17/voting.html) - _Vitalik Buterin_ -- [Bagaimanakah Tadbir Urus Ethereum berfungsi?](https://cryptotesters.com/blog/ethereum-governance) – _Cryptotesters_ +- [Bagaimanakah Tadbir Urus Ethereum berfungsi? ](https://cryptotesters.com/blog/ethereum-governance) – _Cryptotesters_ - [Bagaimanakah tadbir urus Ethereum berfungsi](https://medium.com/coinmonks/how-ethereum-governance-works-71856426b63a) - _Micah Zoltu_ -- [Apakah yang merupakan pemaju teras Ethereum?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) - _Hudson Jameson_ +- [Apakah yang merupakan pemaju teras Ethereum? ](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) - _Hudson Jameson_ - [Tadbir Urus, Bahagian 2: Plutokrasi Masih Teruk](https://vitalik.eth.limo/general/2018/03/28/plutocracy.html) - _Vitalik Buterin_ -- [Melepasi tadbir urus pengundian syiling](https://vitalik.eth.limo/general/2021/08/16/voting3.html) - _Vitalik Buterin_ +- [Melepasi tadbir urus pengundian syiling ](https://vitalik.eth.limo/general/2021/08/16/voting3.html) - _Vitalik Buterin_ diff --git a/public/content/translations/ms/security/index.md b/public/content/translations/ms/security/index.md index be0716b030c..f0a7c12c605 100644 --- a/public/content/translations/ms/security/index.md +++ b/public/content/translations/ms/security/index.md @@ -276,7 +276,7 @@ Sambungan pelayar, seperti sambungan Chrome atau Tambahan untuk Firefox, boleh m - [ Sehingga 3 juta peranti dijangkiti oleh tambahan Chrome dan Edge yang disertakan dengan perisian hasad](https://arstechnica.com/information-technology/2020/12/up-to-3-million-devices-infected-by-malware-laced-chrome-and-edge-add-ons/) - _ Dan Goodin_ - [Cara Mencipta Kata Laluan yang Kukuh — Yang Tidak Akan Anda Lupa](https://www.avg.com/en/signal/how-to-create-a-strong-password-that-you-wont-forget) - _AVG_ -- [Apakah kunci keselamatan?](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ +- [Apakah kunci keselamatan? ](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ ### Keselamatan Kripto {#reading-crypto-security} diff --git a/public/content/translations/ms/whitepaper/index.md b/public/content/translations/ms/whitepaper/index.md index f50d1f68d41..f71445f9f60 100644 --- a/public/content/translations/ms/whitepaper/index.md +++ b/public/content/translations/ms/whitepaper/index.md @@ -355,7 +355,7 @@ Ethereum melaksanakan versi mudah GHOST yang hanya turun tujuh tahap. Khususnya, - Blok mesti menyatakan ibu bapa, dan ia mesti menyatakan 0 atau lebih bapa saudara - Seorang bapa saudara termasuk dalam blok B mesti mempunyai sifat-sifat berikut: - - Ia mesti merupakan anak langsung daripada nenek moyang generasi ke-k, iaitu 2 <= k <= 7. + - Ia mesti merupakan anak langsung daripada nenek moyang generasi ke-k, iaitu `2 <= k <= 7`. - Ia tidak boleh menjadi nenek moyang B - Pakcik mesti merupakan pengepala blok yang sah, tetapi tidak perlu menjadi blok yang disahkan atau bahkan sah sebelum ini - Seorang bapa saudara mesti berbeza daripada semua bapa saudara yang termasuk dalam blok sebelumnya dan semua bapa saudara lain termasuk dalam blok yang sama (tidak termasuk dua kali ganda) diff --git a/public/content/translations/nl/roadmap/merge/index.md b/public/content/translations/nl/roadmap/merge/index.md index 59e2c658213..43c38353766 100644 --- a/public/content/translations/nl/roadmap/merge/index.md +++ b/public/content/translations/nl/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Ontwikkelaars van dapp en smart contracts" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -De samenvoeging ging gepaard met wijzigingen in de consensus, waaronder ook wijzigingen met betrekking tot:< +De samenvoeging ging gepaard met wijzigingen in de consensus, waaronder ook wijzigingen met betrekking tot:
                        • blockstructuur
                        • diff --git a/public/content/translations/nl/roadmap/statelessness/index.md b/public/content/translations/nl/roadmap/statelessness/index.md index 6bd5b420b68..0c34881b36f 100644 --- a/public/content/translations/nl/roadmap/statelessness/index.md +++ b/public/content/translations/nl/roadmap/statelessness/index.md @@ -16,7 +16,7 @@ Goedkopere harde schijven kunnen worden gebruikt om oudere gegevens op te slaan, Er zijn verschillende manieren om de hoeveelheid gegevens die elke node moet opslaan te verminderen, waarbij voor elke manier het kernprotocol van Ethereum in verschillende mate moet worden bijgewerkt: -- **Vervallen van de geschiedenis**: stelt nodes in staat om statusgegevens ouder dan X blocks te verwerpen, maar verandert niet hoe Ethereum-clients statusgegevens verwerken +- **Geschiedenisverval**: stelt nodes in staat om statusgegevens ouder dan X blokken te verwerpen, maar verandert niet hoe Ethereum-clients statusgegevens verwerken. - **Vervallen van de status**: staat toe dat statusgegevens die niet vaak gebruikt worden inactief worden. Inactieve gegevens kunnen door clients worden genegeerd totdat ze weer worden geactiveerd. - **Zwakke statusloosheid**: alleen blockproducenten hebben toegang nodig tot volledige statusgegevens, andere nodes kunnen blocks verifiëren zonder een lokale statusdatabase. - **Sterke statusloosheid**: geen nodes hebben toegang nodig tot de volledige statusgegevens. diff --git a/public/content/translations/pl/roadmap/merge/index.md b/public/content/translations/pl/roadmap/merge/index.md index 9e17010a064..1f9015d3330 100644 --- a/public/content/translations/pl/roadmap/merge/index.md +++ b/public/content/translations/pl/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Deweloperzy dapp i inteligentnych kontraktów" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -Połączenie nastąpiło wraz ze zmianami w konsensusie, które obejmują również zmiany związane z:< +Połączenie nastąpiło wraz ze zmianami w konsensusie, które obejmują również zmiany związane z:
                          • struktura bloków
                          • diff --git a/public/content/translations/pl/whitepaper/index.md b/public/content/translations/pl/whitepaper/index.md index 4d7d3b46c95..2fa1f6251d8 100644 --- a/public/content/translations/pl/whitepaper/index.md +++ b/public/content/translations/pl/whitepaper/index.md @@ -31,15 +31,21 @@ Oto wpis na blogu od Vitalika Buterina, założyciela Ethereum, na temat [prehis Z technicznego punktu widzenia księga kryptowalut takich jak Bitcoin może być uważana za system transformacji stanu, gdzie jest "stan" składający się ze statusu własności wszystkich istniejących bitcoinów i "funkcja transformacji stanu", która przyjmuje stan i transakcję oraz wygeneruje nowy stan, który jest rezultatem. Przykładowo w standardowym systemie bankowym stan jest bilansem, transakcja jest prośbą o przeniesienie $X z A do B, a funkcja przejścia stanu zmniejsza wartość na koncie A o $X i zwiększa wartość na koncie B o $X. Jeśli konto A ma w pierwszej kolejności mniej niż X Usd, to stan funkcja przejścia zwraca błąd. Można zatem formalnie zdefiniować: +``` ZASTOSUJ(S,TX) —>> S' lub BŁĄD +``` W systemie bankowym zdefiniowanym powyżej: +``` Zastosuj ({ Alice: $50, Bob: $50 },"wyślij $20 z Alice do Bob") = { Alice: $30, Bob: $70 } +``` Ale: +``` ZASTOSUJ({ Alice: $50, Bob: $50 }:,"wyślij 70 USD od Alicji do Roberta") = BŁĄD +``` "Stan" w Bitcoinach to kolekcja wszystkich monet (technicznie, "niewykorzystane wyniki transakcji" lub UTXO, które zostały wydobyte i jeszcze nie zostały wydane, z każdym UTXO o nazwie i właścicielu (określonym przez 20-bajtowy adres, który zasadniczo jest publicznym kluczem kryptograficznym[fn. 1](#notes)). Transakcja zawiera jedno lub więcej danych wejściowych, przy każdym wejściu zawierającym odniesienie do istniejącego UTXO i podpisu kryptograficznego wygenerowanego przez prywatny klucz powiązany z adresem właściciela, i jedno lub więcej wyjść z każdym wyjściem zawierającym nowe UTXO dodawane do stanu. diff --git a/public/content/translations/pt-br/contributing/translation-program/translators-guide/index.md b/public/content/translations/pt-br/contributing/translation-program/translators-guide/index.md index 47037d304bf..fea6275d313 100644 --- a/public/content/translations/pt-br/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/pt-br/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ A melhor maneira de lidar com links é copiá-los diretamente da fonte, clicando ![Exemplo de link.png](./example-of-link.png) -Links também aparecem no texto fonte na forma de tags (ou seja, <0> ). Se você passar o mouse por cima da tag, o editor exibirá seu conteúdo completo. Às vezes, essas tags representarão links. +Links também aparecem no texto fonte na forma de tags (ou seja, \<0> \). Se você passar o mouse por cima da tag, o editor exibirá seu conteúdo completo. Às vezes, essas tags representarão links. É muito importante copiar os links da origem e não mudar a sua ordem. @@ -154,7 +154,7 @@ nonce — _Texto não traduzível_ O texto original também contém tags abreviadas, que contêm apenas números, o que significa que sua função não é imediatamente óbvia. Você pode passar o mouse sobre essas tags para ver exatamente para qual função elas servem. -No exemplo abaixo, ao passar o mouse sobre a <0> tag mostra que ela representa `` e contém um trecho de código. Portanto, o conteúdo dentro dessas tags não deve ser traduzido. +No exemplo abaixo, ao passar o mouse sobre a \<0> tag mostra que ela representa `` e contém um trecho de código. Portanto, o conteúdo dentro dessas tags não deve ser traduzido. ![Exemplo de tags.png ambíguas](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/pt-br/developers/docs/apis/backend/index.md b/public/content/translations/pt-br/developers/docs/apis/backend/index.md index e497cff3ae9..d661c247dec 100644 --- a/public/content/translations/pt-br/developers/docs/apis/backend/index.md +++ b/public/content/translations/pt-br/developers/docs/apis/backend/index.md @@ -6,7 +6,7 @@ lang: pt-br Para um aplicativo de software interagir com a blockchain Ethereum (ou seja, leia os dados da blockchain e/ou envie transações para a rede), ele deve se conectar a um nó do Ethereum. -Para isso, cada cliente Ethereum implementa a especificação [JSON-RPC](/developers/docs/apis/json-rpc/), portanto, há um conjunto uniforme de [métodos](/developers/docs/apis/json-rpc/#json-rpc-methods) com os quais as aplicações podem contar. +Para este propósito, todos os clientes do Ethereum implementam a especificação [JSON-RPC](/developers/docs/apis/json-rpc/), para que haja um conjunto uniforme de [métodos](/developers/docs/apis/json-rpc/#json-rpc-methods) nos quais os aplicativos podem confiar. Se você quiser usar uma linguagem de programação específica para se conectar com um nó Ethereum, existem várias bibliotecas de conveniência dentro do ecossistema que tornam isso muito mais fácil. Com essas bibliotecas, os desenvolvedores podem escrever intuitivamente métodos on-line para iniciar requisições JSON RPC (por debaixo dos panos) que interajam com a Ethereum. @@ -20,83 +20,67 @@ Essas bibliotecas abstraem muito da complexidade de interagir diretamente com um ## Bibliotecas disponíveis {#available-libraries} +### Serviços de nós e infraestrutura {#infrastructure-and-node-services} + **Alchemy -** **_Plataforma de Desenvolvimento Ethereum._** - [alchemy.com](https://www.alchemy.com/) -- [Documentação](https://docs.alchemyapi.io/) +- [Documentação](https://docs.alchemy.com/) - [GitHub](https://github.com/alchemyplatform) -- [Discord](https://discord.com/invite/A39JVCM) +- [Discord](https://discord.com/invite/alchemyplatform) -**BlockCypher -** **_APIs Web Ethereum._** +**All That Node - ** **_Nós-como-um-serviço._** -- [blockcypher.com](https://www.blockcypher.com/) -- [Documentação](https://www.blockcypher.com/dev/ethereum/) +- [All That Node.com](https://www.allthatnode.com/) +- [Documentação](https://docs.allthatnode.com) +- [Discord](https://discord.gg/GmcdVEUbJM) -**Blast, da Bware Labs -\*\***_ APIs descentralizadas para a Ethereum Mainnet ant Testnets._\*\* +**Blast, da Bware Labs -****_ APIs descentralizadas para a Ethereum Mainnet ant Testnets._** - [blastapi.io](https://blastapi.io/) - [Documentação](https://docs.blastapi.io) -- [Discord](https://discord.com/invite/VPkWESgtvV) +- [Discord](https://discord.gg/bwarelabs) -**Infura -** **_A API da Ethereum como serviço._** +**BlockPi -** **_Fornece serviços RPC mais eficientes e mais rápidos_** -- [infura.io](https://infura.io) -- [Documentação](https://infura.io/docs) -- [GitHub](https://github.com/INFURA) +- [blockpi.io](https://blockpi.io/) +- [Documentação](https://docs.blockpi.io/) +- [GitHub](https://github.com/BlockPILabs) +- [Discord](https://discord.com/invite/xTvGVrGVZv) **Gateway Cloudflare de Ethereum.** -- [cloudflare-eth.com](https://cloudflare-eth.com) +- [cloudflare-eth.com](https://www.cloudflare.com/application-services/products/web3/) -**Nó da Nuvem da Coinbase -** **_API de infraestrutura Blockchain._** - -- [Nó da Nuvem da Coinbase](https://www.coinbase.com/cloud/products/node) -- [Documentação](https://docs.cloud.coinbase.com/node/reference/welcome-to-node) - -**DataHub por Figment -** **_Serviços de API Web3 API com rede principal Ethereum e rede de testes._** - -- [DataHub](https://www.figment.io/datahub) -- [Documentação](https://docs.figment.io/introduction/what-is-datahub) +**Etherscan - Explorador de blocos e APIs de transações** +- [Documentação](https://docs.etherscan.io/) -**NFTPort -** **_Dados Ethereum e APIs Mint._** +**GetBlock-** **_Blockchain-as-a-service para desenvolvimento Web3_** -- [nftport.xyz](https://www.nftport.xyz/) -- [Documentação](https://docs.nftport.xyz/) -- [GitHub](https://github.com/nftport/) -- [Discord](https://discord.com/invite/K8nNrEgqhE) +- [GetBlock.io](https://getblock.io/) +- [Documentação](https://getblock.io/docs/) -**Nodesmith -** **_Acesso por API JSON-RPC a rede principal e rede de testes Ethereum._** +**Infura -** **_A API da Ethereum como serviço._** -- [nodesmith.io](https://nodesmith.io/network/ethereum/) -- [Documentação](https://nodesmith.io/docs/#/ethereum/apiRef) +- [infura.io](https://infura.io) +- [Documentação](https://docs.infura.io/api) +- [GitHub](https://github.com/INFURA) -**Ethercluster -** **_Execute o seu próprio serviço de API da Ethereum que suporta ETH e ETC._** +**Node RPC - _Provedor de EVM JSON-RPC econômico_** -- [ethercluster.com](https://www.ethercluster.com/) +- [noderpc.xyz](https://www.noderpc.xyz/) +- [Documentação](https://docs.noderpc.xyz/node-rpc) -**Chainstack -** **_Nós Ethereum compartilhados e dedicados como serviço._** +**NOWNodes - _Nós Completos e Exploradores de Blocos._** -- [chainstack.com](https://chainstack.com) -- [Documentação](https://docs.chainstack.com) -- [Referência da API Ethereum](https://docs.chainstack.com/api/ethereum/ethereum-api-reference) +- [NOWNodes.io](https://nownodes.io/) +- [Documentação](https://documenter.getpostman.com/view/13630829/TVmFkLwy#intro) **QuickNode -** **_Infraestrutura Blockchain como Serviço._** - [quicknode.com](https://quicknode.com) -- [Documentação](https://www.quicknode.com/docs) -- [Discord](https://discord.gg/NaR7TtpvJq) - -**Python Tooling -** **_Variedade de bibliotecas para interação com a Ethereum via Python._** - -- [py.ethereum.org](http://python.ethereum.org/) -- [web3.py GitHub](https://github.com/ethereum/web3.py) -- [web3.py Chat](https://gitter.im/ethereum/web3.py) - -**web3j -** **_Uma biblioteca de integração para Ethereum em Java/Android/Kotlin/Scala._** - -- [GitHub](https://github.com/web3j/web3j) -- [Documentação](https://docs.web3j.io/) -- [Gitter](https://gitter.im/web3j/web3j) +- [Documentação](https://www.quicknode.com/docs/welcome) +- [Discord](https://discord.gg/quicknode) **Rivet -** **_Ethereum e Ethereum Classic APIs como serviço, desenvolvido por software de código aberto._** @@ -104,12 +88,33 @@ Essas bibliotecas abstraem muito da complexidade de interagir diretamente com um - [Documentação](https://rivet.cloud/docs/) - [GitHub](https://github.com/openrelayxyz/ethercattle-deployment) +**Zmok -** **_Nós Ethereum orientados a velocidade como JSON-RPC/WebSockets API._** + +- [zmok.io](https://zmok.io/) +- [GitHub](https://github.com/zmok-io) +- [Documentação](https://docs.zmok.io/) +- [Discord](https://discord.gg/fAHeh3ka6s) + +### Ferramentas de desenvolvimento {#development-tools} + +**ethers-kt -** **_Biblioteca assíncrona de alto desempenho em Kotlin/Java/Android para blockchains baseadas em EVM._** + +- [GitHub](https://github.com/Kr1ptal/ethers-kt) +- [Exemplos](https://github.com/Kr1ptal/ethers-kt/tree/master/examples) +- [Discord](https://discord.gg/rx35NzQGSb) + **Nethereum -** **_Uma biblioteca de integração .NET de código aberto para blockchain._** - [GitHub](https://github.com/Nethereum/Nethereum) - [Documentação](http://docs.nethereum.com/en/latest/) - [Discord](https://discord.com/invite/jQPrR58FxX) +**Python Tooling -** **_Variedade de bibliotecas para interação com a Ethereum via Python._** + +- [py.ethereum.org](https://python.ethereum.org/) +- [web3.py GitHub](https://github.com/ethereum/web3.py) +- [web3.py Chat](https://gitter.im/ethereum/web3.py) + **QuikNode -** **_A plataforma definitiva de desenvolvimento de blockchains_** - [Tatum](https://tatum.io/) @@ -117,47 +122,86 @@ Essas bibliotecas abstraem muito da complexidade de interagir diretamente com um - [Documentação](https://docs.tatum.io/) - [Discord](https://discord.gg/EDmW3kjTC9) -**Watchdata -** **_Fornecer acesso API simples e confiável à blockchain Ethereum._** +**web3j -** **_Uma biblioteca de integração para Ethereum em Java/Android/Kotlin/Scala._** -- [Watchdata](https://watchdata.io/) -- [Documentação](https://docs.watchdata.io/) -- [Discord](https://discord.com/invite/TZRJbZ6bdn) +- [GitHub](https://github.com/web3j/web3j) +- [Documentação](https://docs.web3j.io/) +- [Gitter](https://gitter.im/web3j/web3j) -**Zmok -** **_Nós Ethereum orientados a velocidade como JSON-RPC/WebSockets API._** +### Serviços blockchain {#blockchain-services} -- [zmok.io](https://zmok.io/) -- [GitHub](https://github.com/zmok-io) -- [Documentação](https://docs.zmok.io/) -- [Discord](https://discord.gg/fAHeh3ka6s) +**BlockCypher -** **_APIs Web Ethereum._** -**NOWNodes - _Nós Completos e Exploradores de Blocos._** +- [blockcypher.com](https://www.blockcypher.com/) +- [Documentação](https://www.blockcypher.com/dev/ethereum/) -- [NOWNodes.io](https://nownodes.io/) -- [Documentação](https://documenter.getpostman.com/view/13630829/TVmFkLwy#intro) +**Chainbase -** **_Infraestrutura de dados web3 tudo-em-um para Ethereum._** + +- [chainbase.com](https://chainbase.com/) +- [Documentação](https://docs.chainbase.com/) +- [Discord](https://discord.gg/Wx6qpqz4AF) + +**Chainstack -** **_Nós Ethereum compartilhados e dedicados como serviço._** + +- [chainstack.com](https://chainstack.com) +- [Documentação](https://docs.chainbase.com/docs) +- [Referência da API Ethereum](https://docs.chainstack.com/reference/ethereum-getting-started) + +**Nó da Nuvem da Coinbase -** **_API de infraestrutura Blockchain._** + +- [Nó da Nuvem da Coinbase](https://www.coinbase.com/cloud) +- [Documentação](https://docs.cloud.coinbase.com/) + +**DataHub por Figment -** **_Serviços de API Web3 API com rede principal Ethereum e rede de testes._** + +- [DataHub](https://www.figment.io/) +- [Documentação](https://docs.figment.io/) **Moralis -** **_Provedor de API para EVM para uso corporativo._** -- [moralis.io](http://moralis.io) +- [moralis.io](https://moralis.io) - [Documentação](https://docs.moralis.io/) - [GitHub](https://github.com/MoralisWeb3) -- [Discord](https://discord.com/invite/KYswaxwEtg) +- [Discord](https://moralis.io/joindiscord/) - [Fórum](https://forum.moralis.io/) -\*_GetBlock- Blockchain como serviço para desenvolvimento Web3_ +**NFTPort -** **_Dados Ethereum e APIs Mint._** + +- [nftport.xyz](https://www.nftport.xyz/) +- [Documentação](https://docs.nftport.xyz/) +- [GitHub](https://github.com/nftport/) +- [Discord](https://discord.com/invite/K8nNrEgqhE) + +**Tokenview -** **_A plataforma geral de APIs blockchain multi-cripto._** + +- [services.tokenview.io](https://services.tokenview.io/) +- [Documentação](https://services.tokenview.io/docs?type=api) +- [GitHub](https://github.com/Tokenview) + +**Watchdata -** **_Fornecer acesso API simples e confiável à blockchain Ethereum._** + +- [Watchdata](https://watchdata.io/) +- [Documentação](https://docs.watchdata.io/) +- [Discord](https://discord.com/invite/TZRJbZ6bdn) + +**Covalent -** **_APIs de blockchain enriquecidas para mais de 200 redes._** + +- [covalenthq.com](https://www.covalenthq.com/) +- [Documentação](https://www.covalenthq.com/docs/api/) +- [GitHub](https://github.com/covalenthq) +- [Discord](https://www.covalenthq.com/discord/) -- [GetBlock.io](https://getblock.io/) -- [Documentação](https://getblock.io/docs/) ## Leitura adicional {#further-reading} -_Conhece algum recurso da comunidade que o ajudou? Edite essa página e adicione!_ +_Conhece um recurso da comunidade que te ajudou? Edite essa página e adicione!_ ## Tópicos relacionados {#related-topics} -- [Nós e clientes](/developers/docs/nodes-and-clients/) +- [ Nós e clientes](/developers/docs/nodes-and-clients/) - [Estruturas de desenvolvimento](/developers/docs/frameworks/) ## Tutoriais relacionados {#related-tutorials} -- [Configure o Web3js para usar a blockchain Ethereum em JavaScript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/) _– Instruções para configurar o web3.js em seu projeto._ -- [Chamando um contrato inteligente do JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/) _– Usando o token do DAI, veja como os contratos de chamadas funcionam usando JavaScript._ +- [Configure Web3js para usar a blockchain Ethereum em Javascript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/) _ – Instruções para configurar web3.js no seu projeto._ +- [Chamando um contrato inteligente do JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/) _ – Usando o token do DAI, veja como os contratos de chamadas funcionam usando JavaScript._ diff --git a/public/content/translations/pt-br/developers/docs/apis/javascript/index.md b/public/content/translations/pt-br/developers/docs/apis/javascript/index.md index 6e7de042142..aa7ef7ce580 100644 --- a/public/content/translations/pt-br/developers/docs/apis/javascript/index.md +++ b/public/content/translations/pt-br/developers/docs/apis/javascript/index.md @@ -6,9 +6,9 @@ lang: pt-br Para que um aplicativo web interaja com a cadeia de blocos Ethereum (ou seja, leia os dados da blockchain e/ou envie transações para a rede), ele deve se conectar a um nó Ethereum. -Para esse propósito, cada cliente Ethereum implementa a especificação [JSON-RPC](/developers/docs/apis/json-rpc/), então há um conjunto uniforme de [métodos](/developers/docs/apis/json-rpc/#json-rpc-methods) com os quais os aplicativos podem conta. +Para esse propósito, cada cliente Ethereum implementa a especificação [JSON-RPC](/developers/docs/apis/json-rpc/), para que haja um conjunto uniforme de [métodos](/developers/docs/apis/json-rpc/#json-rpc-methods) com os quais os aplicativos podem conta. -Se você quiser usar JavaScript para se conectar a um nó Ethereum, é possível usar o JavaScript vanilla, mas existem várias bibliotecas convenientes dentro do ecossistema que tornam isso muito mais fácil. Com essas bibliotecas, desenvolvedores podem escrever métodos intuitivos, one-line para inicializar solicitações JSON RPC (sob o capô) que interagem com Ethereum. +Se você quiser usar JavaScript para se conectar a um nó Ethereum, é possível usar o JavaScript vanilla, mas existem várias bibliotecas convenientes dentro do ecossistema que tornam isso muito mais fácil. Com essas bibliotecas, os desenvolvedores podem escrever intuitivamente métodos on-line para iniciar requisições JSON RPC (por debaixo dos panos) que interajam com a Ethereum. Observe que, desde [A Fusão](/roadmap/merge/) (The Merge), duas partes conectadas do software Ethereum — um cliente de execução e um cliente de consenso — são necessárias para executar um nó. Certifique-se de que seu nó inclui tanto o cliente de execução quanto o consensual. Se o seu nó não estiver na sua máquina local (por exemplo, seu nó está sendo executado em uma instância da AWS) atualize os endereços IP no tutorial adequadamente. Para obter mais informações, veja nossa página no [executando um nó](/developers/docs/nodes-and-clients/run-a-node/). @@ -29,12 +29,12 @@ Usando provedores, essas bibliotecas permitem que você se conecte à Ethereum e **Exemplo de Ethers** ```js -// A Web3Provider wraps a standard Web3 provider, which is -// what MetaMask injects as window.ethereum into each page -const provider = new ethers.providers.Web3Provider(window.ethereum) +// Um BrowserProvider envolve um provedor Web3 padrão, que é +// o que o MetaMask injeta como window.ethereum em cada página +const provider = new ethers.BrowserProvider(window.ethereum) -// The MetaMask plugin also allows signing transactions to -// send ether and pay to change state within the blockchain. +// O plugin MetaMask também permite assinar transações para +// enviar ether e pagar para alterar o estado dentro da blockchain. // Para isso, precisamos do signatário da conta... const signer = provider.getSigner() ``` @@ -47,7 +47,7 @@ var web3 = new Web3("http://localhost:8545") var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")) // mudar provedor -web3.etProvider("ws://localhost:8546") +web3. etProvider("ws://localhost:8546") // ou web3.setProvider(new Web3.providers.WebsocketProvider("ws://localhost:8546")) @@ -80,29 +80,29 @@ Veja alguns exemplos de Ethers // Cria uma instância de carteira de um mnemonic... mnemonic = "announce room limb pattern dry unit scale effort smooth jazz weasel alcohol" -walletMnemonic = Wallet.fromMnemonic(mnemonic) +walletMnemonic = Wallet.fromPhrase(mnemonic) -// ...ou de uma chave privada +// ...ou a partir de uma chave privada walletPrivateKey = new Wallet(walletMnemonic.privateKey) walletMnemonic.address === walletPrivateKey.address // true -// Endereço como uma Promise para Signer API +// O endereço como uma Promise conforme a API Signer walletMnemonic.getAddress() // { Promise: '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' } -// Um endereço da carteira também está disponível de forma síncrona +// O endereço de uma Wallet também está disponível de forma síncrona walletMnemonic.address // '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' -// Componentes internos criptográficos +// Os componentes criptográficos internos walletMnemonic.privateKey // '0x1da6847600b0ee25e9ad9a52abbd786dd2502fa4005dd5af9310b7cc7a3b25db' walletMnemonic.publicKey // '0x04b9e72dfd423bcf95b3801ac93f4392be5ff22143f9980eb78b3a860c4843bfd04829ae61cdba4b3b1978ac5fc64f5cc2f4350e35a108a9c9a92a81200a60cd64' -// O mnemônico da carteira +// A frase mnemônica da wallet walletMnemonic.mnemonic // { // locale: 'en', @@ -110,8 +110,8 @@ walletMnemonic.mnemonic // phrase: 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol' // } -// Nota: Uma carteira criada com chave privada não possui -// um mnemônico (a derivação previne isso) +// Nota: Uma wallet criada com uma chave privada não +// possui uma frase mnemônica (a derivação a impede) walletPrivateKey.mnemonic // null @@ -128,7 +128,8 @@ tx = { walletMnemonic.signTransaction(tx) // { Promise: '0xf865808080948ba1f109551bd432803012645ac136ddd64dba72880de0b6b3a7640000801ca0918e294306d177ab7bd664f5e141436563854ebe0a3e523b9690b4922bbb52b8a01181612cec9c431c4257a79b8c9f0c980a2c49bb5a0e6ac52949163eeb565dfc' } -// O método connect retorna uma nova instância da carteira conectada a um provedor +// O método connect retorna uma nova instância da +// Wallet conectada a um provedor wallet = walletMnemonic.connect(provider) // Consultando a rede @@ -280,11 +281,11 @@ ethers.utils.formatEther(balance) ## Leitura adicional {#further-reading} -_Conhece algum recurso da comunidade que o ajudou? Edite essa página e adicione!_ +_Conhece um recurso da comunidade que te ajudou? Edite essa página e adicione!_ ## Tópicos relacionados {#related-topics} -- [Nós e clientes](/developers/docs/nodes-and-clients/) +- [ Nós e clientes](/developers/docs/nodes-and-clients/) - [Estruturas de desenvolvimento](/developers/docs/frameworks/) ## Tutoriais relacionados {#related-tutorials} diff --git a/public/content/translations/pt-br/developers/docs/apis/json-rpc/index.md b/public/content/translations/pt-br/developers/docs/apis/json-rpc/index.md index d9b5bf1c5a7..e8d0c41ee4a 100644 --- a/public/content/translations/pt-br/developers/docs/apis/json-rpc/index.md +++ b/public/content/translations/pt-br/developers/docs/apis/json-rpc/index.md @@ -22,11 +22,11 @@ Embora você possa optar por interagir diretamente com clientes da Ethereum usan Esta página trata principalmente da API JSON-RPC usada pelos clientes de execução Ethereum. No entanto, os clientes de consenso também têm uma API RPC que permite aos usuários consultar informações sobre o nó, solicitar blocos Beacon, estado do Beacon, e outras informações relacionadas ao consenso diretamente de um nó. Essa API está documentada na [página da Web da API Beacon](https://ethereum.github.io/beacon-APIs/#/). -Uma API interna também é usada para comunicação entre clientes dentro de um nó - ou seja, permite que o cliente de consenso e o cliente de execução troquem dados. Ela é chamada de “API Engine” e suas especificações estão disponíveis no [GitHub](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). +Uma API interna também é usada para comunicação entre clientes dentro de um nó - ou seja, permite que o cliente de consenso e o cliente de execução troquem dados. Ela é chamada de “API Engine” e suas especificações estão disponíveis no [Github](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). ## Especificação do cliente de execução {#spec} -[Leia a especificação completa da API JSON-RPC no GitHub](https://github.com/ethereum/execution-apis). +[Leia a especificação completa da API JSON-RPC no GitHub](https://github.com/ethereum/execution-apis). Esta API está documentada na [página da Web da API de execução](https://ethereum.github.io/execution-apis/api-documentation/) e inclui um Inspetor para testar todos os métodos disponíveis. ## Convenções {#conventions} @@ -53,7 +53,7 @@ Ao codificar dados não formatados (arrays de bytes, endereços de contas, hashe Aqui estão alguns exemplos: - 0x41 (tamanho 1, "A") -- 0x004200 (tamanho 3, "\0B\0") +- 0x004200 (tamanho 3, "0B0") - 0x (tamanho 0, "") - ERRADO: 0xf0f0f (deve ser um número par de dígitos) - ERRADO: 004200 (deve ser prefixado 0x) @@ -74,7 +74,7 @@ As seguintes opções são possíveis para o parâmetro defaultBlock: - `String HEX` - um número de bloco inteiro - `String "earliest"` para o bloco mais antigo/de início -- `String "latest"` - para o bloco minerado mais recente +- `String "latest"` - para o último bloco proposto - `String "safe"` – para o último bloco de cabeçalho seguro - `String "finalized"` – para o último bloco finalizado - `String "pendente"` – para o estado/transações pendentes @@ -132,6 +132,10 @@ Alguns dos métodos JSON-RPC principais exigem dados da rede Ethereum, se enquad - [eth_getUncleByBlockHashAndIndex](#eth_getunclebyblockhashandindex) - [eth_getUncleByBlockNumberAndIndex](#eth_getunclebyblocknumberandindex) +## Playground da API JSON-RPC + +Você pode usar a [ferramenta de playground](https://ethereum-json-rpc.com) para descobrir e testar os métodos da API. Ele também mostra quais métodos e redes são suportados por vários provedores de nós. + ## Métodos de API JSON-RPC {#json-rpc-methods} ### web3_clientVersion {#web3_clientversion} @@ -142,20 +146,20 @@ Retorna a versão atual do cliente. Nenhum -**Retorna** +**Returnos** `String` - A versão atual do cliente **Exemplo** ```js -// Request +// Solicitação curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' -// Result +// Resultado { "id":67, "jsonrpc":"2.0", - "result": "Mist/v0.9.3/darwin/go1.4.1" + "result": "Geth/v1.12.1-stable/linux-amd64/go1.19.1" } ``` @@ -165,7 +169,7 @@ Retorna Keccak-256 (_não_ o SHA3-256 padronizado) dos dados fornecidos. **Parâmetros** -1. `DATA` - Os dados para converter em um hash SHA3 +1. `DATA` - Os dados a serem convertidos em um hash SHA3 ```js params: ["0x68656c6c6f20776f726c64"] @@ -304,12 +308,57 @@ Nenhum **Retorna** -`Object|Boolean`, um objeto com dados de status da sincronização ou `FALSE`, quando não sincronizado: +Os dados de retorno precisos variam entre as implementações do cliente. Todos os clientes retornam `False` quando o nó não está sincronizando, e todos os clientes retornam os seguintes campos. + +`Object|Boolean`, um objeto com dados de status da sincronização ou `FALSE`, quando não está sincronizando: - `startingBlock`: `QUANTITY` — O bloco no qual a importação começou (só será reiniciado após a sincronização atingir seu cabeçalho) - `currentBlock`: `QUANTITY` — O bloco atual, o mesmo que eth_blockNumber - `highestBlock`: `QUANTITY` — O bloco mais alto estimado +No entanto, os clientes individuais também podem fornecer dados adicionais. Por exemplo, Geth retorna o seguinte: + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "currentBlock": "0x3cf522", + "healedBytecodeBytes": "0x0", + "healedBytecodes": "0x0", + "healedTrienodes": "0x0", + "healingBytecode": "0x0", + "healingTrienodes": "0x0", + "highestBlock": "0x3e0e41", + "startingBlock": "0x3cbed5", + "syncedAccountBytes": "0x0", + "syncedAccounts": "0x0", + "syncedBytecodeBytes": "0x0", + "syncedBytecodes": "0x0", + "syncedStorage": "0x0", + "syncedStorageBytes": "0x0" + } +} +``` + +Enquanto Besu retorna: + +```json +{ + "jsonrpc": "2.0", + "id": 51, + "result": { + "startingBlock": "0x0", + "currentBlock": "0x1518", + "highestBlock": "0x9567a3", + "pulledStates": "0x203ca", + "knownStates": "0x200636" + } +} +``` + +Consulte a documentação do seu cliente específico para obter mais detalhes. + **Exemplo** ```js @@ -337,11 +386,13 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1} Retorna o endereço de coinbase do cliente. +> **Nota:** Este método foi descontinuado a partir da versão **v1.14.0** e não é mais suportado. Tentar usar este método resultará em um erro de "Método não suportado". + **Parâmetros** Nenhum -**Retorna** +**Returnos** `DATA`, 20 bytes - O endereço atual da coinbase. @@ -358,7 +409,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":6 } ``` -## eth_chainId {#eth_chainId} +### eth_chainId {#eth_chainId} Retorna a ID da cadeia usada para assinar transações protegidas contra reprodução. @@ -366,7 +417,7 @@ Retorna a ID da cadeia usada para assinar transações protegidas contra reprodu Nenhum -**Retorna** +**Returnos** `chainId`, valor hexadecimal como uma cadeia de caracteres representando o inteiro da ID da cadeia atual. @@ -385,13 +436,13 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":67 ### eth_mining {#eth_mining} -Retorna `true` se o cliente estiver ativamente minerando novos blocos. +Retorna `true` se o cliente estiver minerando novos blocos de maneira ativa. Isso só pode retornar `true` para redes de prova de trabalho e pode não estar disponível em alguns clientes desde a [Fusão](/roadmap/merge/). **Parâmetros** Nenhum -**Retorna** +**Returnos** `Boolean` — retorna `true` do cliente que está minerando, caso contrário, `false`. @@ -410,13 +461,13 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":71} ### eth_hashrate {#eth_hashrate} -Retorna o número de hashes por segundo do nó que está minerando. +Retorna o número de hashes por segundo do nó que está minerando. Isso só pode retornar `true` para redes de prova de trabalho e pode não estar disponível em alguns clientes desde a [Fusão](/roadmap/merge/). **Parâmetros** Nenhum -**Retorna** +**Returnos** `QUANTITY` — número de hashes por segundo. @@ -435,13 +486,13 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":7 ### eth_gasPrice {#eth_gasprice} -Retorna o preço atual por gás em Wei. +Retorna uma estimativa do preço atual por unidade de gás em wei. Por exemplo, o cliente Besu examina os últimos 100 blocos e retorna o preço unitário médio do gás por padrão. **Parâmetros** Nenhum -**Retorna** +**Returnos** `QUANTITY` — Número inteiro do preço atual do gás em Wei. @@ -466,9 +517,9 @@ Retorna uma lista de endereços de propriedade do cliente. Nenhum -**Retorna** +**Returnos** -`Matriz de DADOS`, 20 Bytes — endereços de propriedade do cliente. +`Array of DATA`, 20 Bytes — endereços de propriedade do cliente. **Exemplo** @@ -491,7 +542,7 @@ Retorna o número do bloco mais recente. Nenhum -**Retorna** +**Returnos** `QUANTITY` — Inteiro do número do bloco atual no qual o cliente está. @@ -515,13 +566,13 @@ Retorna o saldo da conta do endereço fornecido. **Parâmetros** 1. `DATA`, 20 Bytes - Endereço para verificar o saldo. -2. `QUANTITY|TAG` – número de bloco inteiro, ou a cadeia de caracteres `"latest"`, `"earliest"` ou `"pending"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) +2. `QUANTITY|TAG` - número de bloco inteiro ou a string `"latest"`, `"earliest"`, `"pending"`, `"safe"` ou `"finalized"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) ```js params: ["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"] ``` -**Retorna** +**Returnos** `QUANTITY` — Inteiro do saldo atual em Wei. @@ -546,9 +597,9 @@ Retorna o valor de uma posição de armazenamento em um determinado endereço. 1. `DATA`, 20 Bytes - Endereço do armazenamento. 2. `QUANTITY` - Número inteiro da posição no armazenamento. -3. `QUANTITY|TAG` – número de bloco inteiro, ou a cadeia de caracteres `"latest"`, `"earliest"` ou `"pending"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) +3. `QUANTITY|TAG` - número de bloco inteiro ou a string `"latest"`, `"earliest"`, `"pending"`, `"safe"`, `"finalized"`. Veja o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) -**Retorna** +**Returnos** `DATA` — O valor nessa posição de armazenamento. @@ -578,7 +629,7 @@ Recuperar um elemento do mapa é mais difícil. A posição de um elemento no ma keccak(LeftPad32(key, 0), LeftPad32(map position, 0)) ``` -Isso significa que, para recuperar o armazenamento na pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"] precisamos calcular a posição com: +Isso significa que para recuperar o armazenamento na pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"] precisamos calcular a posição com: ```js keccak( @@ -612,7 +663,7 @@ Retorna o número de transações _enviadas_ a partir de um endereço. **Parâmetros** 1. `DATA`, 20 Bytes - Endereço. -2. `QUANTITY|TAG` – número de bloco inteiro, ou a cadeia de caracteres `"latest"`, `"earliest"` ou `"pending"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) +2. `QUANTITY|TAG` - número de bloco inteiro ou a string `"latest"`, `"earliest"`, `"pending"`, `"safe"` ou `"finalized"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) ```js params: [ @@ -621,7 +672,7 @@ params: [ ] ``` -**Retorna** +**Returnos** `QUANTITY` — Inteiro do número de transações enviadas a partir desse endereço. @@ -647,10 +698,10 @@ Retorna o número de transações em um bloco a partir de um bloco que correspon 1. `DATA`, 32 bytes - Hash de um bloco ```js -params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] +params: ["0xd03ededb7415d22ae8bac30f96b2d1de83119632693b963642318d87d1bece5b"] ``` -**Retorna** +**Returnos** `QUANTITY` — Inteiro do número de transações nesse bloco. @@ -658,12 +709,12 @@ params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] ```js // Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xd03ededb7415d22ae8bac30f96b2d1de83119632693b963642318d87d1bece5b"],"id":1}' // Result { "id":1, "jsonrpc": "2.0", - "result": "0xb" // 11 + "result": "0x8b" // 139 } ``` @@ -673,15 +724,15 @@ Retorna o número de transações em um bloco a partir de um bloco que correspon **Parâmetros** -1. `QUANTITY|TAG` – número inteiro de um bloco, ou a cadeira de caracteres `"earliest"`, `"latest"` ou `"pending"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). +1. `QUANTITY|TAG` - inteiro de um número de bloco, ou a string `"earliest"`, `"latest"`, `"pending"`, `"safe"` ou `"finalized"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). ```js params: [ - "0xe8", // 232 + "0x13738ca", // 20396234 ] ``` -**Retorna** +**Returnos** `QUANTITY` — Inteiro do número de transações nesse bloco. @@ -689,12 +740,12 @@ params: [ ```js // Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0xe8"],"id":1}' +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0x13738ca"],"id":1}' // Result { "id":1, "jsonrpc": "2.0", - "result": "0xa" // 10 + "result": "0x8b" // 139 } ``` @@ -707,10 +758,10 @@ Retorna o número de transações em um bloco a partir de um bloco que correspon 1. `DADOS`, 32 bytes - hash de um bloco ```js -params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] +params: ["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2"] ``` -**Retorna** +**Returnos** `QUANTITY` — Inteiro do número de transações nesse bloco. @@ -718,7 +769,7 @@ params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] ```js // Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2"],"id":1}' // Result { "id":1, @@ -733,7 +784,7 @@ Retorna o número de transações em um bloco a partir de um bloco que correspon **Parâmetros** -1. `QUANTITY|TAG` – número inteiro de um bloco ou a cadeia de caracteres "latest", "earliest" ou "pending". Consulte [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) +1. `QUANTITY|TAG` - inteiro de um número de bloco, ou a string `"latest"`, `"earliest"`, `"pending"`, `"safe"` ou `"finalized"`. Veja o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) ```js params: [ @@ -741,7 +792,7 @@ params: [ ] ``` -**Retorna** +**Returnos** `QUANTITY` — Inteiro do número de transações nesse bloco. @@ -754,7 +805,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockNumber", { "id":1, "jsonrpc": "2.0", - "result": "0x1" // 1 + "result": "0x0" // 0 } ``` @@ -765,16 +816,16 @@ Retorna o código em um endereço fornecido. **Parâmetros** 1. `DATA`, 20 Bytes - Endereço -2. `QUANTITY|TAG` – número de bloco inteiro, ou a cadeia de caracteres `"latest"`, `"earliest"` ou `"pending"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) +2. `QUANTITY|TAG` - número de bloco inteiro ou a string `"latest"`, `"earliest"`, `"pending"`, `"safe"` ou `"finalized"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) ```js params: [ - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "0x2", // 2 + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "0x5daf3b", // 6139707 ] ``` -**Retorna** +**Returnos** `DATA` — O código do endereço fornecido. @@ -782,12 +833,12 @@ params: [ ```js // Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x2"],"id":1}' +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "0x5daf3b"],"id":1}' // Result { "id":1, "jsonrpc": "2.0", - "result": "0x600160008035811a818181146012578301005b601b6001356025565b8060005260206000f25b600060078202905091905056" + "result": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029" } ``` @@ -804,7 +855,7 @@ Observação: o endereço de assinatura deve estar desbloqueado. 1. `DADOS`, 20 Bytes - endereço 2. `DATA`, N Bytes - Mensagem para assinar -**Retorna** +**Returnos** `DATA`: assinatura @@ -829,17 +880,18 @@ Assina uma transação que pode ser enviada à rede posteriormente usando [eth_s 1. `Objeto` - O objeto da transação -- `from`: `DATA`, 20 Bytes - O endereço de onde a transação é enviada. -- `to`: `DATA`, 20 Bytes - (opcional ao criar um novo contrato) O endereço para o qual a transação é direcionada. -- `gas`: `QUANTITY` - (opcional, padrão: 90000) Inteiro do gás fornecido para a execução da transação. Retornará o gás não utilizado. +- `type`: +- `from`: `DATA`, 20 Bytes — Endereço de onde a transação é enviada. +- `to`: `DATA`, 20 Bytes — (opcional ao criar um novo contrato) O endereço para o qual a transação é direcionada. +- `gas`: `QUANTITY` — (opcional, padrão: 90000) Inteiro do gás fornecido para a execução da transação. Retornará o gás não utilizado. - `gasPrice`: `QUANTITY` — (opcional, padrão: a ser determinado) Inteiro do gasPrice usado para cada gás pago, em Wei. - `valor`: `QUANTITY` — (opcional) Inteiro do valor enviado com esta transação, em Wei. -- `dados`: `DADOS` - O código compilado de um contrato OU o hash da assinatura do método invocado e os parâmetros codificados. -- `nonce`: `QUANTITY` - (opcional) Inteiro de um nonce. Isso permite sobrescrever suas próprias transações pendentes que usam o mesmo nonce. +- `data`: `DATA` — Código compilado de um contrato OU do hash da assinatura do método invocado e parâmetros codificados. +- `nonce`: `QUANTITY` — (opcional) Inteiro de um nonce. Isso permite substituir suas próprias transações pendentes que usam o mesmo nonce. -**Retorna** +**Returnos** -`DATA` — O objeto da transação assinada. +`DATA`: o objeto de transação codificado em RLP assinado pela conta especificada. **Exemplo** @@ -856,7 +908,7 @@ curl -X POST --data '{"id": 1,"jsonrpc": "2.0","method": "eth_signTransaction"," ### eth_sendTransaction {#eth_sendtransaction} -Cria uma nova transação de chamada de mensagem ou uma criação de contrato, se o campo de dados contiver código. +Cria uma nova transação de chamada de mensagem ou uma criação de contrato, se o campo de dados contiver código, e o assina usando a conta especificada `em`. **Parâmetros** @@ -867,7 +919,7 @@ Cria uma nova transação de chamada de mensagem ou uma criação de contrato, s - `gas`: `QUANTITY` — (opcional, padrão: 90000) Inteiro do gás fornecido para a execução da transação. Retornará o gás não utilizado. - `gasPrice`: `QUANTITY` — (opcional, padrão: a ser determinado) Inteiro do gasPrice usado para cada gás pago. - `valor`: `QUANTITY` — (opcional) Inteiro do valor enviado com esta transação. -- `data`: `DATA` — Código compilado de um contrato OU do hash da assinatura do método invocado e parâmetros codificados. +- `input`: `DATA` - O código compilado de um contrato OU o hash da assinatura do método invocado e dos parâmetros codificados. - `nonce`: `QUANTITY` — (opcional) Inteiro de um nonce. Isso permite substituir suas próprias transações pendentes que usam o mesmo nonce. ```js @@ -878,16 +930,17 @@ params: [ gas: "0x76c0", // 30400 gasPrice: "0x9184e72a000", // 10000000000000 value: "0x9184e72a", // 2441406250 - data: "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675", + input: + "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675", }, ] ``` -**Retorna** +**Returnos** -`DATA`, 32 bytes - o hash da transação ou o hash zero se a transação ainda não estiver disponível. +`DATA`, 32 Bytes — O hash da transação ou o hash zero se a transação ainda não estiver disponível. -Use [eth_getTransactionReceipt](#eth_gettransactionreceipt) para obter o endereço do contrato, após a transação ter sido minerada, quando você criou um contrato. +Use [eth_getTransactionReceipt](#eth_gettransactionreceipt) para obter o endereço do contrato, depois de a transação ter sido proposta em um bloco, quando você criou um contrato. **Exemplo** @@ -916,11 +969,11 @@ params: [ ] ``` -**Retorna** +**Returnos** `DATA`, 32 Bytes — O hash da transação ou o hash zero se a transação ainda não estiver disponível. -Use [eth_getTransactionReceipt](#eth_gettransactionreceipt) para obter o endereço do contrato, após a transação ter sido minerada, quando você criou um contrato. +Use [eth_getTransactionReceipt](#eth_gettransactionreceipt) para obter o endereço do contrato, depois de a transação ter sido proposta em um bloco, quando você criou um contrato. **Exemplo** @@ -937,7 +990,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params" ### eth_call {#eth_call} -Executa uma nova chamada de mensagem imediatamente sem criar uma transação na blockchain. +Executa uma nova chamada de mensagem imediatamente sem criar uma transação na blockchain. Frequentemente usado para executar funções de contrato inteligente somente leitura, por exemplo, o `balanceOf` para um contrato ERC-20. **Parâmetros** @@ -948,11 +1001,11 @@ Executa uma nova chamada de mensagem imediatamente sem criar uma transação na - `gas`: `QUANTITY` — (opcional) Inteiro do gás fornecido para a execução da transação. eth_call consome zero gás, mas este parâmetro pode ser necessário para algumas execuções. - `gasPrice`: `QUANTITY` — (opcional) Inteiro do gasPrice usado para cada gás pago - `valor`: `QUANTITY` — (opcional) Inteiro do valor enviado com esta transação -- `data`: `DATA` — (opcional) Hash da assinatura do método e parâmetros codificados. Para obter mais detalhes, consulte o [Contrato Ethereum ABI na documentação do Solidity](https://docs.soliditylang.org/en/latest/abi-spec.html) +- `input`: `DATA` - (opcional) Hash da assinatura do método e parâmetros codificados. Para obter mais detalhes, consulte o [Contrato Ethereum ABI na documentação do Solidity](https://docs.soliditylang.org/en/latest/abi-spec.html). -2. `QUANTITY|TAG` – número de bloco inteiro, ou a cadeia de caracteres `"latest"`, `"earliest"` ou `"pending"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) +2. `QUANTITY|TAG` - número de bloco inteiro ou a string `"latest"`, `"earliest"`, `"pending"`, `"safe"` ou `"finalized"`. Consulte o [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block) -**Retorna** +**Returnos** `DATA` — O valor de retorno do contrato executado. @@ -971,13 +1024,13 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{see above}] ### eth_estimateGas {#eth_estimategas} -Gera e retorna uma estimativa de quanto gás é necessário para permitir que a transação seja concluída. A transação não será adicionada à blockchain. Observe que a estimativa pode ser significativamente maior do que a quantidade de gás realmente usada pela transação, por vários motivos, incluindo a mecânica do EVM e o desempenho do nó. +Gera e retorna uma estimativa de quantas unidades de gás são necessárias para permitir que a transação seja concluída. A transação não será adicionada à blockchain. Observe que a estimativa pode ser significativamente maior do que a quantidade de gás realmente usada pela transação, por vários motivos, incluindo a mecânica do EVM e o desempenho do nó. **Parâmetros** -Veja os parâmetros do [eth_call](#eth_call), embora todas as propriedades sejam opcionais. Se nenhum limite de gás for especificado, o geth usa o limite de gás do bloco pendente como um limite superior. Consequentemente, a estimativa retornada poderá não ser suficiente para executar a chamada/transação quando a quantidade de gás for maior que o limite de gás do bloco pendente. +Veja os parâmetros do [eth_call](#eth_call), a menos que todas as propriedades sejam opcionais. Se nenhum limite de gás é especificado, o geth usa o limite de gás do bloco pendente como um limite superior. Consequentemente, a estimativa retornada poderá não ser suficiente para executar a chamada/transação quando a quantidade de gás for maior que o limite de gás do bloco pendente. -**Retorna** +**Returnos** `QUANTITY` — A quantidade de gás usada. @@ -1010,7 +1063,7 @@ params: [ ] ``` -**Retorna** +**Returnos** `Object` — Um objeto de bloco, ou `null` quando nenhum bloco foi encontrado: @@ -1077,7 +1130,7 @@ Retorna informações sobre um bloco por número de bloco. **Parâmetros** -1. `QUANTITY|TAG` – número inteiro de um bloco, ou a cadeira de caracteres `"earliest"`, `"latest"` ou `"pending"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). +1. `QUANTITY|TAG` - inteiro de um número de bloco, ou a string `"earliest"`, `"latest"`, `"pending"`, `"safe"` ou `"finalized"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). 2. `Boolean` - Se `true` retorna os objetos de transação completos, se `false` apenas os hashes das transações. ```js @@ -1087,7 +1140,7 @@ params: [ ] ``` -**Retorno** Consulte [eth_getBlockByHash](#eth_getblockbyhash) +**Retorna** Consulte [eth_getBlockByHash](#eth_getblockbyhash) **Exemplo** @@ -1110,7 +1163,7 @@ Retorna as informações sobre uma transação solicitada pelo hash de transaç params: ["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"] ``` -**Retorna** +**Returnos** `Object` — Um objeto de transação ou `null` quando nenhuma transação foi encontrada: @@ -1168,7 +1221,7 @@ Retorna informações sobre uma transação por hash de bloco e a posição do ```js params: [ - "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", + "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0", // 0 ] ``` @@ -1179,10 +1232,10 @@ params: [ ```js // Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x0"],"id":1}' +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0"],"id":1}' ``` -Resultado veja [eth_getTransactionByHash](#eth_gettransactionbyhash) +Resultado. Veja [eth_getTransactionByHash](#eth_gettransactionbyhash) ### eth_getTransactionByBlockNumberAndIndex {#eth_gettransactionbyblocknumberandindex} @@ -1190,7 +1243,7 @@ Retorna informações sobre uma transação pelo número do bloco e posição do **Parâmetros** -1. `QUANTITY|TAG` – um número de bloco ou a cadeia de caracteres `"earliest"`, `"latest"` ou `"pending"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). +1. `QUANTITY|TAG` - um número de bloco ou a string `"earliest"`, `"latest"`, `"pending"`, `"safe"` ou `"finalized"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). 2. `QUANTITY` - A posição do índice da transação. ```js @@ -1209,7 +1262,7 @@ params: [ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockNumberAndIndex","params":["0x9c47cf", "0x24"],"id":1}' ``` -Resultado veja [eth_getTransactionByHash](#eth_gettransactionbyhash) +Resultado. Veja [eth_getTransactionByHash](#eth_gettransactionbyhash) ### eth_getTransactionReceipt {#eth_gettransactionreceipt} @@ -1239,7 +1292,10 @@ params: ["0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5"] - `contractAddress`: `DATA`, 20 Bytes — O endereço do contrato criado, se a transação era uma criação do contrato, caso contrário `null`. - `logs`: `Array` — Matriz de objetos de log gerados por esta transação. - `logsBloom`: `DATA`, 256 Bytes — Filtro Bloom para clientes leves para recuperar rapidamente os logs relacionados. -- `type`: `QUANTITY` — Inteiro do tipo de transação, `0x0` para transações herdadas, `0x1` para tipos de lista de acesso, `0x2` para taxas dinâmicas. Ele também retorna _seja_ : +- `type`: `QUANTITY` — Inteiro do tipo de transação, `0x0` para transações herdadas, `0x1` para tipos de lista de acesso, `0x2` para taxas dinâmicas. + +Ele também retorna _seja_ : + - `root` : `DATA` 32 bytes de stateRoot pós-transação (anterior à atualização Byzantium) - `status`: `QUANTITY` seja `1` (êxito) ou `0` (falha) @@ -1286,7 +1342,7 @@ Retorna informações sobre o tio de um bloco por hash e a posição do índice ```js params: [ - "0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", + "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0", // 0 ] ``` @@ -1297,7 +1353,7 @@ params: [ ```js // Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x0"],"id":1}' +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0"],"id":1}' ``` Veja o resultado [eth_getBlockByHash](#eth_getblockbyhash) @@ -1310,7 +1366,7 @@ Retorna informações sobre um tio de um bloco por número e posição do índic **Parâmetros** -1. `QUANTITY|TAG` – um número de bloco ou a cadeia de caracteres `"earliest"`, `"latest"` ou `"pending"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). +1. `QUANTITY|TAG` - um número de bloco ou a string `"earliest"`, `"latest"`, `"pending"`, `"safe"`, `"finalized"`, como no [parâmetro de bloco padrão](/developers/docs/apis/json-rpc/#default-block). 2. `QUANTITY` - A posição do índice tio. ```js @@ -1320,7 +1376,7 @@ params: [ ] ``` -**Retorno** Consulte [eth_getBlockByHash](#eth_getblockbyhash) +**Retorna** Consulte [eth_getBlockByHash](#eth_getblockbyhash) **Observação**: um tio (bloco) não contém transações individuais. @@ -1333,142 +1389,6 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockNumberAndInde Veja o resultado [eth_getBlockByHash](#eth_getblockbyhash) -### eth_getCompilers {#eth_getcompilers} - -Retorna uma lista de compiladores disponíveis no cliente. - -**Parâmetros** Nenhum - -**Retorna** `Array` — Matriz de compiladores disponíveis. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCompilers","params":[],"id":1}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": ["solidity", "lll", "serpent"] -} -``` - -### eth_compileSolidity {#eth_compile_solidity} - -Retorna o código Solidity compilado. - -**Parâmetros** - -1. `String` - O código-fonte. - -```js -params: [ - "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }", -] -``` - -**Retorna** `DATA` — O código-fonte compilado. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSolidity","params":["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"],"id":1}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": { - "code": "0x605880600c6000396000f3006000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa114602e57005b603d6004803590602001506047565b8060005260206000f35b60006007820290506053565b91905056", - "info": { - "source": "contract test {\n function multiply(uint a) constant returns(uint d) {\n return a * 7;\n }\n}\n", - "language": "Solidity", - "languageVersion": "0", - "compilerVersion": "0.9.19", - "abiDefinition": [ - { - "constant": true, - "inputs": [ - { - "name": "a", - "type": "uint256" - } - ], - "name": "multiply", - "outputs": [ - { - "name": "d", - "type": "uint256" - } - ], - "type": "function" - } - ], - "userDoc": { - "methods": {} - }, - "developerDoc": { - "methods": {} - } - } -} -``` - -### eth_compileLLL {#eth_compileLLL} - -Retorna código LLL compilado. - -**Parâmetros** - -1. `String` - O código-fonte. - -```js -params: ["(returnlll (suicide (caller)))"] -``` - -**Retorna** `DATA` — O código-fonte compilado. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileLLL","params":["(returnlll (suicide (caller)))"],"id":1}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056" // the compiled source code -} -``` - -### eth_compileSerpent {#eth_compileserpent} - -Retorna o código Serpent compilado. - -**Parâmetros** - -1. `String` - O código fonte. - -```js -params: ["/* some serpent */"] -``` - -**Retorna** `DATA` — O código-fonte compilado. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSerpent","params":["/* some serpent */"],"id":1}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056" // the compiled source code -} -``` - ### eth_newFilter {#eth_newfilter} Cria um objeto de filtro, com base nas opções de filtro, para notificar quando o estado é alterado (logs). Para verificar se o estado mudou, chame [eth_getFilterChanges](#eth_getfilterchanges). @@ -1484,10 +1404,10 @@ Cria um objeto de filtro, com base nas opções de filtro, para notificar quando 1. `Object` - As opções de filtro: -- `fromBlock`: `QUANTITY|TAG` — (opcional, padrão: `"latest"`) Número de bloco inteiro ou `"latest"` para o último bloco minerado ou `"pending"`, `"earliest"` para as transações ainda não mineradas. -- `toBlock`: `QUANTITY|TAG` — (opcional, padrão: `"latest"`) Número do bloco inteiro ou `"latest"` para o último bloco minerado ou `"pending"`, `"earliest"` para as transações ainda não mineradas. -- `address`: `DATA|Array`, 20 Bytes — (opcional) Endereço do contrato ou uma lista de endereços dos quais os logs devem ser provenientes. -- `topics`: `Array of DATA`, — (opcional) Matriz de tópicos de `DATA` de 32 Bytes. Os tópicos são dependentes da ordem. Cada tópico também pode ser uma matriz de DADOS (array of DATA) com opções “ou”. +- `fromBlock`: `QUANTITY|TAG` - (opcional, padrão: `"latest"`) Número de bloco inteiro ou `"latest"` para o último bloco proposto, `"safe"` para o último bloco seguro, `"finalized"` para o último bloco finalizado ou `"pending"`, `"earliest"` para transações que ainda não estão em um bloco. +- `toBlock`: `QUANTITY|TAG` - (opcional, padrão: `"latest"`) Número de bloco inteiro, ou `"latest"` para o último bloco proposto, `"safe"` para o último bloco seguro, `"finalized"` para o último bloco finalizado, ou `"pending"`, `"earliest"` para transações que ainda não estão em um bloco. +- `endereço`: `DATA|Array`, 20 Bytes - (opcional) Endereço do contrato ou uma lista de endereços dos quais os logs devem se originar. +- `topics`: `Array of DATA`, - (opcional) Array de tópicos de `DATA` de 32 Bytes. Os tópicos são dependentes da ordem. Cada tópico também pode ser uma matriz de DADOS com opções "ou". ```js params: [ @@ -1566,7 +1486,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter" ### eth_uninstallFilter {#eth_uninstallfilter} -Desinstala um filtro com a ID fornecida. Deve ser sempre chamado quando o relógio não for mais necessário. Além disso, filtra o tempo limite quando não são solicitados com [eth_getFilterChanges](#eth_getfilterchanges) por um período de tempo. +Desinstala um filtro com a ID fornecida. Deve ser sempre chamado quando nenhum tipo de observação é necessária. Além disso, os filtros expiram quando não são solicitados com [eth_getFilterChanges](#eth_getfilterchanges) por um período de tempo. **Parâmetros** @@ -1595,7 +1515,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":[" ### eth_getFilterChanges {#eth_getfilterchanges} -Método de sondagem para um filtro, que retorna uma matriz de logs que ocorreram desde a última sondagem. +Método de sondagem para um filtro, que retorna uma matriz de logs produzidos desde a última sondagem. **Parâmetros** @@ -1619,7 +1539,7 @@ params: [ - `blockHash`: `DATA`, 32 Bytes — Hash do bloco onde este log estava localizado. `null` quando está pendente. `null` quando o log estiver pendente. - `blockNumber`: `QUANTITY` — O número do bloco onde este log estava localizado. `null` quando está pendente. `null` quando o log estiver pendente. - `endereço`: `DADOS`, 20 Bytes — Endereço de origem deste log. - - `data`: `DATA` — Contém um ou mais argumentos não indexados de 32 Bytes do log. + - `data`: `DATA` - contém zero ou mais argumentos não indexados de 32 bytes do log. - `topics`: `Array of DATA` — Matriz de 0 a 4 32 Bytes `DATA` de argumentos de log indexados. (No _Solidity_: O primeiro tópico é o _hash_ da assinatura do evento (por exemplo, ` Deposit(address,bytes32,uint256)`), exceto se você declarou o evento com o especificador `anonymous`.) - **Exemplo** @@ -1651,7 +1571,7 @@ Retorna uma matriz de todos os logs correspondentes ao filtro com a ID fornecida **Parâmetros** -1. `QUANTITY` - O ID do filtro. +1. `QUANTITY` - A ID do filtro. ```js params: [ @@ -1668,7 +1588,7 @@ params: [ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0x16"],"id":74}' ``` -Resultado veja [eth_getFilterChanges](#eth_getfilterchanges) +Resultado. Veja [eth_getFilterChanges](#eth_getfilterchanges) ### eth_getLogs {#eth_getlogs} @@ -1678,10 +1598,10 @@ Retorna uma matriz de todos os logs que correspondem a um determinado objeto de 1. `Object` - As opções de filtro: -- `fromBlock`: `QUANTITY|TAG` — (opcional, padrão: `"latest"`) Número de bloco inteiro ou `"latest"` para o último bloco minerado ou `"pending"`, `"earliest"` para as transações ainda não mineradas. -- `toBlock`: `QUANTITY|TAG` — (opcional, padrão: `"latest"`) Número do bloco inteiro ou `"latest"` para o último bloco minerado ou `"pending"`, `"earliest"` para as transações ainda não mineradas. -- `address`: `DATA|Array`, 20 Bytes — (opcional) Endereço do contrato ou uma lista de endereços dos quais os logs devem ser provenientes. -- `topics`: `Array of DATA`, — (opcional) Matriz de tópicos de `DATA` de 32 Bytes. Os tópicos são dependentes da ordem. Cada tópico também pode ser uma matriz de DADOS (array of DATA) com opções “ou”. +- `fromBlock`: `QUANTITY|TAG` - (opcional, padrão: `"latest"`) Número de bloco inteiro ou `"latest"` para o último bloco proposto, `"safe"` para o último bloco seguro, `"finalized"` para o último bloco finalizado ou `"pending"`, `"earliest"` para transações que ainda não estão em um bloco. +- `toBlock`: `QUANTITY|TAG` - (opcional, padrão: `"latest"`) Número de bloco inteiro, ou `"latest"` para o último bloco proposto, `"safe"` para o último bloco seguro, `"finalized"` para o último bloco finalizado, ou `"pending"`, `"earliest"` para transações que ainda não estão em um bloco. +- `endereço`: `DATA|Array`, 20 Bytes - (opcional) Endereço do contrato ou uma lista de endereços dos quais os logs devem se originar. +- `topics`: `Array of DATA`, - (opcional) Array de tópicos de `DATA` de 32 Bytes. Os tópicos são dependentes da ordem. Cada tópico também pode ser uma matriz de DADOS com opções "ou". - `blockhash`: `DATA`, 32 Bytes — (opcional, **futuro**) Com a adição do EIP-234, `blockHash` será uma nova opção de filtro, que restringe os logs retornados ao bloco único com o hash de 32 bytes `blockHash`. Usar `blockHash` é equivalente a `fromBlock` = `toBlock` = o número do bloco com hash `blockHash`. Se `blockHash` estiver presente nos critérios de filtro, nem `fromBlock`, nem `toBlock` serão permitidos. ```js @@ -1703,538 +1623,9 @@ params: [ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"topics":["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]}],"id":74}' ``` -Resultado veja [eth_getFilterChanges](#eth_getfilterchanges) - -### eth_getWork {#eth_getwork} - -Retorna o hash do bloco atual, o seedHash e a condição de limite a ser atendida (“alvo”). - -**Parâmetros** Nenhum - -**Retorna** `Array` — Matriz com as seguintes propriedades: - -1. `DATA`, 32 Bytes - Cabeçalho do bloco atual pow-hash -2. `DATA`, 32 Bytes - O hash da semente usada para o DAG. -3. `DATA`, 32 Bytes - A condição de contorno ("alvo"), 2^256 / dificuldade. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getWork","params":[],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": [ - "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", - "0x5EED00000000000000000000000000005EED0000000000000000000000000000", - "0xd1ff1c01710000000000000000000000d1ff1c01710000000000000000000000" - ] -} -``` - -### eth_submitWork {#eth_submitwork} - -Usado para enviar uma solução de prova de trabalho. - -**Parâmetros** - -1. `DATA`, 8 Bytes - O nonce encontrado (64 bits) -2. `DATA`, 32 Bytes - O pow-hash do cabeçalho (256 bits) -3. `DATA`, 32 Bytes - O mix digest (256 bits) - -```js -params: [ - "0x0000000000000001", - "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", - "0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000", -] -``` - -**Retorna** `Boolean` — retorna `true` se a solução fornecida for válida, caso contrário, `false`. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitWork", "params":["0x0000000000000001", "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0xD1GE5700000000000000000000000000D1GE5700000000000000000000000000"],"id":73}' -// Result -{ - "id":73, - "jsonrpc":"2.0", - "result": true -} -``` - -### eth_submitHashrate {#eth_submithashrate} - -Usado para enviar hashrate de mineração. - -**Parâmetros** - -1. `Hashrate`, uma representação de string hexadecimal (32 bytes) do hashrate -2. `ID`, String - Uma ID hexadecimal aleatória (32 bytes) que identifica o cliente - -```js -params: [ - "0x0000000000000000000000000000000000000000000000000000000000500000", - "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c", -] -``` - -**Retorna** `Boolean` — Retorna `true` se o envio foi realizado com sucesso e, caso contrário, `false`. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitHashrate", "params":["0x0000000000000000000000000000000000000000000000000000000000500000", "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c"],"id":73}' -// Result -{ - "id":73, - "jsonrpc":"2.0", - "result": true -} -``` - -### db_putString (deprecated) {#db_putstring} - -Armazena uma cadeia de caracteres no banco de dados local. - -**Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `String` - Nome do banco de dados. -2. `String` - Nome da chave. -3. `String` - String para armazenar. - -```js -params: ["testDB", "myKey", "myString"] -``` - -**Retorna** `Boolean` — Retorna `true` se o valor foi armazenado, caso contrário `false`. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"db_putString","params":["testDB","myKey","myString"],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": true -} -``` - -### db_getString (deprecated) {#db_getstring} - -Retorna a cadeia de caracteres do banco de dados local. **Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `String` - Nome do banco de dados. -2. `String` - Nome da chave. - -```js -params: ["testDB", "myKey"] -``` - -**Retorna** `String` — A cadeia de caracteres armazenada anteriormente. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"db_getString","params":["testDB","myKey"],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": "myString" -} -``` - -### db_putHex (deprecated) {#db_puthex} - -Armazena dados binários no banco de dados local. **Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `String` - Nome do banco de dados. -2. `String` - Nome da chave. -3. `DADOS` - Os dados a serem armazenados. - -```js -params: ["testDB", "myKey", "0x68656c6c6f20776f726c64"] -``` - -**Retorna** `Boolean` — Retorna `true` se o valor foi armazenado, caso contrário `false`. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"db_putHex","params":["testDB","myKey","0x68656c6c6f20776f726c64"],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": true -} -``` - -### db_getHex (deprecated) {#db_gethex} - -Armazena dados binários do banco de dados local. **Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `String` - Nome do banco de dados. -2. `String` - Nome da chave. - -```js -params: ["testDB", "myKey"] -``` - -**Retorna** `DATA` — Os dados previamente armazenados. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"db_getHex","params":["testDB","myKey"],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": "0x68656c6c6f20776f726c64" -} -``` - -### shh_version (deprecated) {#shh_post} - -Retorna a versão atual do protocolo Whisper. - -**Observação:** Essa função foi preterida. - -**Parâmetros** Nenhum - -**Retorna** `String` — A versão atual do protocolo Whisper - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_version","params":[],"id":67}' -// Result -{ - "id":67, - "jsonrpc": "2.0", - "result": "2" -} -``` - -### shh_post (deprecated) {#shh_version} - -Envia uma mensagem do Whisper. - -**Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `Objeto` - O objeto de postagem do Whisper: - -- `de`: `DATA`, 60 Bytes — (opcional) A identidade do remetente. -- `para`: `DATA`, 60 Bytes — (opcional) A identidade do destinatário. Quando presente, o Whisper criptografará a mensagem para que apenas o destinatário possa descriptografá-la. -- `tópicos`: `Array of DATA` — Matriz de tópicos de `DATA` para o destinatário identificar as mensagens. -- `carga`: `DATA` — O conteúdo da mensagem. -- `prioridade`: `QUANTITY` — O inteiro da prioridade em um intervalo de... (?). -- `ttl`: `QUANTITY` — Inteiro do tempo residual em segundos. - -```js -params: [ - { - from: "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", - to: "0x3e245533f97284d442460f2998cd41858798ddf04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a0d4d661997d3940272b717b1", - topics: [ - "0x776869737065722d636861742d636c69656e74", - "0x4d5a695276454c39425154466b61693532", - ], - payload: "0x7b2274797065223a226d6", - priority: "0x64", - ttl: "0x64", - }, -] -``` - -**Retorna** `Boolean` — Retorna `true` se a mensagem foi enviada, caso contrário `false`. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_post","params":[{"from":"0xc931d93e97ab07fe42d923478ba2465f2..","topics": ["0x68656c6c6f20776f726c64"],"payload":"0x68656c6c6f20776f726c64","ttl":0x64,"priority":0x64}],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": true -} -``` - -### shh_newIdentity (depreciado){#shh_newidentity} - -Cria uma nova identidade Whisper no cliente. - -**Observação:** Essa função foi preterida. - -**Parâmetros** Nenhum - -**Retorna** `DATA`, 60 Bytes — O endereço da nova identidade. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newIdentity","params":[],"id":73}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": "0xc931d93e97ab07fe42d923478ba2465f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca9007d5b68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf" -} -``` - -### shh_hasIdentity (deprecated){#shh_hasidentity} - -Verifica se o cliente mantém as chaves privadas de uma determinada identidade. - -**Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `DATA`, 60 Bytes - O endereço de identidade a ser verificado. - -```js -params: [ - "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", -] -``` - -**Retorna** `Boolean` — Retorna `true` se o cliente possui a chave privada para essa identidade, caso contrário `false`. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_hasIdentity","params":["0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"],"id":73}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": true -} -``` - -### shh_newGroup (deprecated){#shh_newgroup} - -**Observação:** Essa função foi preterida. - -**Parâmetros** Nenhum - -**Retorna** `DATA`, 60 Bytes — O endereço do novo grupo. (?) - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newGroup","params":[],"id":73}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": "0xc65f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca90931d93e97ab07fe42d923478ba2407d5b68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf" -} -``` - -### shh_addToGroup (deprecated){#shh_addtogroup} - -**Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `DATA`, 60 Bytes - O endereço de identidade para adicionar a um grupo (?). - -```js -params: [ - "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", -] -``` - -**Retorna** `Boolean` — Retorna `true` se a identidade foi adicionada com sucesso ao grupo, caso contrário `false` (?). - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_addToGroup","params":["0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"],"id":73}' -// Result -{ - "id":1, - "jsonrpc": "2.0", - "result": true -} -``` - -### shh_newFilter (deprecated){#shh_newfilter} - -Cria um filtro para notificar quando o cliente recebe a mensagem do Whisper que corresponde às opções do filtro. **Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `Object` - As opções de filtro: - -- `to`: `DATA`, 60 Bytes — (opcional) Identidade do destinatário. _Quando apresentado, ele tentará descriptografar qualquer mensagem recebida se o cliente possuir a chave privada dessa identidade._ -- `tópicos`: `Array of DATA` — Matriz de tópicos de `DATA` que devem corresponder aos tópicos das mensagens recebidas. Você pode usar as seguintes combinações: - - `[A, B] = A && B` - - `[A, [B, C]] = A && (B || C)` - - `[null, A, B] = ANYTHING && A && B` `null` funciona como um curinga - - - -```js -params: [ - { - topics: ["0x12341234bf4b564f"], - to: "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", - }, -] -``` - -**Retorna** `QUANTITY` — O filtro recém-criado. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newFilter","params":[{"topics": ['0x12341234bf4b564f'],"to": "0x2341234bf4b2341234bf4b564f..."}],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": "0x7" // 7 -} -``` - -### shh_uninstallFilter (deprecated){#shh_uninstallfilter} - -Desinstala um filtro com a ID fornecida. Deve ser sempre chamado quando o relógio não for mais necessário. Adicionalmente, filtra o tempo limite quando não são solicitados com [shh_getFilterChanges](#shh_getfilterchanges) por um determinado período. **Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `QUANTITY` - O filtro id. - -```js -params: [ - "0x7", // 7 -] -``` - -**Retorna** `Boolean` — `true` se o filtro foi desinstalado com sucesso, caso contrário `false`. - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_uninstallFilter","params":["0x7"],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": true -} -``` - -### shh_getFilterChanges (deprecated){#shh_getfilterchanges} - -Método de sondagem para filtros do Whisper. Retorna novas mensagens desde a última chamada desse método. **Observação:** chamar o método [shh_getMessages](#shh_getmessages) redefinirá o buffer desse método para que você não receba mensagens duplicadas. **Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `QUANTITY` - O filtro id. - -```js -params: [ - "0x7", // 7 -] -``` - -**Retorna** `Array` — Matriz de mensagens recebidas desde a última sondagem: - -- `hash`: `DATA`, 32 Bytes (?) — O hash da mensagem. -- `from`: `DATA`, 60 Bytes — O remetente da mensagem, se um remetente foi especificado. -- `to`: `DATA`, 60 Bytes — O destinatário da mensagem, se um destinatário foi especificado. -- `expiry`: `QUANTITY` — Inteiro do tempo em segundos quando esta mensagem deve expirar (?). -- `ttl`: `QUANTITY` — Inteiro do tempo que a mensagem deve flutuar no sistema em segundos (?). -- `sent`: `QUANTITY` — Inteiro do carimbo de data/hora unix quando a mensagem foi enviada. -- `tópicos`: `Array of DATA` — Matriz de tópicos de `DATA` contidos na mensagem. -- `carga`: `DATA` — O conteúdo da mensagem. -- `workProved`: `QUANTITY` — Inteiro do trabalho que esta mensagem exigiu antes de ser enviada (?). - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_getFilterChanges","params":["0x7"],"id":73}' -// Result -{ - "id":1, - "jsonrpc":"2.0", - "result": [{ - "hash": "0x33eb2da77bf3527e28f8bf493650b1879b08c4f2a362beae4ba2f71bafcd91f9", - "from": "0x3ec052fc33..", - "to": "0x87gdf76g8d7fgdfg...", - "expiry": "0x54caa50a", // 1422566666 - "sent": "0x54ca9ea2", // 1422565026 - "ttl": "0x64", // 100 - "topics": ["0x6578616d"], - "payload": "0x7b2274797065223a226d657373616765222c2263686...", - "workProved": "0x0" - }] -} -``` - -### shh_getMessages (deprecated) {#shh_getmessages} - -Obtenha todas as mensagens correspondentes a um filtro. Ao contrário de `shh_getFilterChanges`, isso retorna todas as mensagens. - -**Observação:** Essa função foi preterida. - -**Parâmetros** - -1. `QUANTIDADE` - O filtro id. - -```js -params: [ - "0x7", // 7 -] -``` - -**Retorna** Consulte [shh_getFilterChanges](#shh_getfilterchanges) - -**Exemplo** - -```js -// Request -curl -X POST --data '{"jsonrpc":"2.0","method":"shh_getMessages","params":["0x7" -],"id":73}' -``` - -Consulte o resultado [shh_getFilterChanges](#shh_getfilterchanges) +Resultado. Veja [eth_getFilterChanges](#eth_getfilterchanges) -## Exemplo de utilização {#usage-example} +## Exemplos de uso {#usage-example} ### Implementando um contrato usando JSON_RPC {#deploying-contract} @@ -2260,10 +1651,10 @@ geth --http --dev console 2>>geth.log Isso iniciará a interface HTTP RPC em `http://localhost:8545`. -Podemos verificar se a interface está funcionando recuperando o endereço e o saldo da Coinbase usando [curl](https://curl.se). Observe que os dados nesses exemplos serão diferentes no seu nó local. Se você quiser tentar esses comandos, substitua os parâmetros de solicitação na segunda solicitação curl pelo resultado retornado da primeira. +Podemos verificar se a interface está em execução recuperando o endereço da coinbase (obtendo o primeiro endereço da matriz de contas) e o saldo usando [curl](https://curl.se). Observe que os dados nesses exemplos serão diferentes no seu nó local. Se você quiser tentar esses comandos, substitua os parâmetros de solicitação na segunda solicitação curl pelo resultado retornado da primeira. ```bash -curl --data '{"jsonrpc":"2.0","method":"eth_coinbase", "id":1}' -H "Content-Type: application/json" localhost:8545 +curl --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[]", "id":1}' -H "Content-Type: application/json" localhost:8545 {"id":1,"jsonrpc":"2.0","result":["0x9b1d35635cc34752ca54713bb99d38614f63c955"]} curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0x9b1d35635cc34752ca54713bb99d38614f63c955", "latest"], "id":2}' -H "Content-Type: application/json" localhost:8545 @@ -2277,7 +1668,7 @@ web3.fromWei("0x1639e49bba16280000", "ether") // "410" ``` -Agora que já temos alguns ethers em nossa cadeia de desenvolvimento privada, podemos implantar o contrato. O primeiro passo é compilar o contrato Multiply7 em byte code, que pode ser enviado para a EVM. Para instalar o solc, o compilador do Solidity, confira a [documentação do Solidity](https://docs.soliditylang.org/en/latest/installing-solidity.html). (Você pode usar uma versão do `solc` mais antiga que corresponda [à versão do compilador usada em nosso exemplo](https://github.com/ethereum/solidity/releases/tag/v0.4.20).) +Agora que já temos alguns Ether em nossa cadeia de desenvolvimento privada, podemos implantar o contrato. O primeiro passo é compilar o contrato Multiply7 em byte code, que pode ser enviado para a EVM. Para instalar o solc, o compilador do Solidity, confira a [documentação do Solidity](https://docs.soliditylang.org/en/latest/installing-solidity.html). (Você pode usar uma versão do `solc` mais antiga que corresponda [à versão do compilador usada em nosso exemplo](https://github.com/ethereum/solidity/releases/tag/v0.4.20).) O próximo passo é compilar o contrato Multiply7 em byte code, que pode ser enviado para a EVM. @@ -2310,15 +1701,15 @@ curl --data '{"jsonrpc":"2.0","method": "eth_getTransactionReceipt", "params": [ {"jsonrpc":"2.0","id":7,"result":{"blockHash":"0x77b1a4f6872b9066312de3744f60020cbd8102af68b1f6512a05b7619d527a4f","blockNumber":"0x1","contractAddress":"0x4d03d617d700cf81935d7f797f4e2ae719648262","cumulativeGasUsed":"0x1c31e","from":"0x9b1d35635cc34752ca54713bb99d38614f63c955","gasUsed":"0x1c31e","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf","transactionIndex":"0x0"}} ``` -Nosso contrato foi criado em `0x4d03d617d700cf81935d7f797f4e2ae719648262`. Um resultado nulo em vez de um recibo significa que a transação ainda não foi incluída em um bloco. Aguarde um momento, verifique se o seu minerador está em execução e tente novamente. +Nosso contrato foi criado em `0x4d03d617d700cf81935d7f797f4e2ae719648262`. Um resultado nulo em vez de um recibo significa que a transação ainda não foi incluída em um bloco. Espere um momento e verifique se o termo de consentimento do cliente está ativo e tente novamente. #### Interagindo com contratos inteligentes {#interacting-with-smart-contract} Neste exemplo, enviaremos uma transação usando `eth_sendTransaction` para o método `multiply` do contrato. -`eth_sendTransaction` requer vários argumentos, especificamente `from`, `to` e `data`. `From` é o endereço público de nossa conta, e `to` é o endereço do contrato. O argumento `data` contém um conteúdo que define qual método deve ser chamado e com quais argumentos. É aqui que a [ABI (application binary interface ou interface binária do aplicativo)](https://docs.soliditylang.org/en/latest/abi-spec.html) entra em ação. A ABI é um arquivo JSON que estabelece como definir e codificar dados para a EVM. +`eth_sendTransaction` requer vários argumentos, especificamente `from`, `to` e `data`. `From` é o endereço público de nossa conta, e `to` é o endereço do contrato. O argumento `data` contém uma carga que define qual método deve ser chamado e com quais argumentos. É aqui que a [interface binária do aplicativo (ABI, na sigla em inglês)](https://docs.soliditylang.org/en/latest/abi-spec.html) entra em ação. A ABI é um arquivo JSON que estabelece como definir e codificar dados para a EVM. -Os bytes do conteúdo definem qual método no contrato é chamado. Esses são os primeiros 4 bytes do hash Keccak sobre o nome da função e seus tipos de argumento, com codificação hexadecimal. A função multiplicar aceita um uint, que é um alias de uint256. Isso nos deixa com: +Os bytes da carga definem qual método no contrato é chamado. Esses são os primeiros 4 bytes do hash Keccak sobre o nome da função e seus tipos de argumento, com codificação hexadecimal. A função multiplicar aceita um uint, que é um alias de uint256. Isso nos deixa com: ```javascript web3.sha3("multiply(uint256)").substring(0, 10) @@ -2378,5 +1769,5 @@ Esta foi apenas uma breve introdução a algumas das tarefas mais comuns, demons - [Especificações do JSON-RPC](http://www.jsonrpc.org/specification) - [ Nós e clientes](/developers/docs/nodes-and-clients/) - [APIs JavaScript](/developers/docs/apis/javascript/) -- [APIs de Backend](/developers/docs/apis/backend/) +- [APIs de back-end](/developers/docs/apis/backend/) - [Clientes de execução](/developers/docs/nodes-and-clients/#execution-clients) diff --git a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md index bec499d6c3f..25491c2f58b 100644 --- a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md +++ b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md @@ -10,7 +10,7 @@ A prova de trabalho não está mais subjacente ao mecanismo de consenso do Ether ## Pré-requisitos {#prerequisites} -Para melhor entender esta página, recomendamos que você leia primeiro [transações](/developers/docs/transactions/), [blocos](/developers/docs/blocks/) e [prova de trabalho](/developers/docs/consensus-mechanisms/pow/). +Para melhor entender esta página, recomendamos que você leia primeiro [transações](/developers/docs/transactions/), [blocos](/developers/docs/blocks/) e [prova de trabalho ](/developers/docs/consensus-mechanisms/pow/). ## O que é mineração de Ethereum? {#what-is-ethereum-mining} diff --git a/public/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md index cae3d78a4db..985faa7eeb3 100644 --- a/public/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md +++ b/public/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md @@ -5,7 +5,7 @@ lang: pt-br sidebarDepth: 3 --- -Exploradores de blocos são o seu portal para os dados do Ethereum. Você pode usá-los para ver dados em tempo real sobre blocos, transações, mineradores, contas e outras atividades em cadeia. +Exploradores de blocos são o seu portal para os dados do Ethereum. Você pode usá-los para ver dados em tempo real sobre blocos, transações, validadores, contas e outras atividades on-chain. ## Pré-requisitos {#prerequisites} @@ -14,15 +14,24 @@ Você deve entender os conceitos básicos do Ethereum; para que você possa ente ## Serviços {#services} - [Etherscan](https://etherscan.io/) -_Também disponível em chinês, coreano, russo e japonês_ +- [3xpl](https://3xpl.com/ethereum) - [Beaconcha.in](https://beaconcha.in/) - [Blockchair](https://blockchair.com/ethereum) -_ Também disponível em espanhol, francês, italiano, holandês, português, russo, chinês e persa_ - [Blockscout](https://eth.blockscout.com/) - [Chainlens](https://www.chainlens.com/) +- [Explorador de Blocos DexGuru](https://ethereum.dex.guru/) - [Etherchain](https://www.etherchain.org/) +- [Ethernow](https://www.ethernow.xyz/) - [Ethplorer](https://ethplorer.io/) -_ Também disponível em chinês, espanhol, francês, turco, russo, coreano e vietnamita_ - [EthVM](https://www.ethvm.com/) - [OKLink](https://www.oklink.com/eth) +- [Rantom](https://rantom.app/) +- [Ethseer](https://ethseer.io) + +## Ferramentas de código aberto {#open-source-tools} + - [Otterscan](https://otterscan.io/) +- [lazy-etherscan](https://github.com/woxjro/lazy-etherscan) ## Dados {#data} @@ -46,7 +55,7 @@ Novos blocos são adicionados à Ethereum a cada 12 segundos (a menos que um pro - Limite de Gás - Os limites totais de gás definidos pelas transações no bloco - Taxa base por gás - O multiplicador mínimo necessário para que uma transação seja incluída em um bloco - Taxas queimadas - Quanto ETH é queimado no bloco -- Dados extras - Quaisquer dados extras que o minerador incluiu no bloco +- Dados extras - Quaisquer dados extras que o construtor tenha incluído no bloco **Dados avançados** @@ -74,12 +83,12 @@ Os exploradores de blocos se tornaram um lugar comum para as pessoas acompanhare - Hash da transação - Um hash gerado quando a transação é enviada - Status - Uma indicação de se a transação está pendente, falhou ou foi concluída - Bloco - O bloco em que a transação foi incluída -- Carimbo de tempo - A hora em que o mineiro minerou a transação +- Carimbo de data/hora: a hora em que uma transação foi incluída em um bloco proposto por um validador - De - O endereço da conta que enviou a transação - Para - O endereço do destinatário ou o contrato inteligente com que a transação interagem - Tokens transferidos - Uma lista de tokens que foram transferidos como parte da transação - Valor - O valor total de ETH que está sendo transferido -- Taxa de transação - O valor pago ao minerador para processar a transação (calculado pelo preço do gás\*gás usado) +- Taxa de transação - O valor pago ao validador para processar a transação (calculado pelo preço do gás\*gás usado) **Dados avançados** @@ -134,7 +143,7 @@ Alguns dados do bloco estão preocupados com a funcionalidade da Ethereum de for - Transações por segundo - O número de transações processáveis em um segundo - Preço ETH - As avaliações atuais de 1 ETTH - Fornecimento total de ETH – Número de ETH em circulação – lembre-se de que o novo ETH é criado com a criação de cada bloco sob a forma de recompensas por bloco -- Capitalização de mercado - Cálculo do preço \ \* oferta +- Capitalização de mercado - Cálculo do preço \ * oferta ## Dados de camada de consenso {#consensus-layer-data} @@ -230,10 +239,13 @@ Os dados de nível superior da camada consensual incluem os seguintes: ## Exploradores de bloco {#block-explorers} - [Etherscan](https://etherscan.io/) - um explorador de bloco que você pode usar para buscar dados da rede principal Ethereum e rede de testes Goerli +- [3xpl](https://3xpl.com/ethereum) - um explorador Ethereum de código aberto e sem anúncios que permite o download de seus conjuntos de dados - [Beaconcha.in](https://beaconcha.in/) - um explorador de bloco de código aberto para Ethereum Mainnet e Goerli Testnet - [Blockchair](https://blockchair.com/ethereum) - o explorador Ethereum mais privado. Também para classificação e filtragem de dados (mempool) - [Etherchain](https://www.etherchain.org/) - um explorador de blocos para a rede principal Ethereum - [Ethplorer](https://ethplorer.io/) - um explorador de blocos com foco nos tokens da rede principal Ethereum e rede de testes Kovan +- [Rantom](https://rantom.app/) - Um DeFi amigável de código aberto & Visualizador de transação NFT para visões detalhadas +- [Ethernow](https://www.ethernow.xyz/) - um explorador de transações em tempo real que permite que você veja a camada pré-cadeia da rede principal de Ethereum ## Leitura adicional {#further-reading} diff --git a/public/content/translations/pt-br/developers/docs/data-and-analytics/index.md b/public/content/translations/pt-br/developers/docs/data-and-analytics/index.md index d913a53e93e..d5e71820bc2 100644 --- a/public/content/translations/pt-br/developers/docs/data-and-analytics/index.md +++ b/public/content/translations/pt-br/developers/docs/data-and-analytics/index.md @@ -18,7 +18,7 @@ Em termos de fundamentos arquitetônicos, entendendo o que uma [API](https://www ## Exploradores de bloco {#block-explorers} -Muitos [Exploradores de blocos](/developers/docs/data-and-analytics/block-explorers/) oferecem [RESTful](https://www.wikipedia.org/wiki/Representational_state_transfer) [API](https://www.wikipedia.org/wiki/API) gateways que fornecerão aos desenvolvedores visibilidade em dados em tempo real em blocos, transações, mineiros, contas e outras atividades on-chain. +Muitos [exploradores de bloco](/developers/docs/data-and-analytics/block-explorers/) oferecem gateways [RESTful](https://www.wikipedia.org/wiki/Representational_state_transfer) [API](https://www.wikipedia.org/wiki/API) que fornecerão aos desenvolvedores visibilidade de dados em tempo real sobre blocos, transações, validadores, contas e outras atividades on-chain. Desenvolvedores podem então processar e transformar esses dados para dar aos seus usuários percepções e interações exclusivas com a [blockchain](/glossary/#blockchain). Por exemplo, [Etherscan](https://etherscan.io) fornece dados de execução e consenso para cada slot de 12s. @@ -30,11 +30,20 @@ Usando o [GraphQL](https://graphql.org/), os desenvolvedores podem consultar qua ## Diversidade dos clientes -A [diversidade do cliente](/developers/docs/nodes-and-clients/client-diversity/) é importante para a saúde geral da rede Ethereum porque fornece resiliência a bugs e explorações. Agora existem vários painéis de diversidade do cliente, incluindo [clientdiversity.org](https://clientdiversity.org/), [rated.network](https://rated.network/), [supermajority.info](https://supermajority.info//) e [Ethernodes](https://ethernodes.org/). +A [diversidade do cliente](/developers/docs/nodes-and-clients/client-diversity/) é importante para a saúde geral da rede Ethereum porque fornece resiliência a bugs e explorações. Agora existem vários painéis de diversidade do cliente, incluindo [clientdiversity.org](https://clientdiversity.org/), [rated.network](https://www.rated.network), [supermajority.info](https://supermajority.info//) e [Ethernodes](https://ethernodes.org/). ## Dune Analytics {#dune-analytics} -O [Dune Analytics](https://dune.com/) pré-processa dados da blockchain em tabelas de banco de dados relacional (DuneSQL), que permite aos usuários consultar dados da blockchain usando SQL e criem painéis com base nos resultados da consulta. Os dados on-chain são organizados em 4 tabelas brutas: `blocos`, `transações`, (evento) `registros` e (chamada) `traços`. Contratos e protocolos populares foram decodificados e cada um tem seu próprio conjunto de tabelas de eventos e chamadas. Essas tabelas de eventos e chamadas são processadas e organizadas em abstração de tabelas por tipo de protocolo, por exemplo, dex, lending, stablecoins etc. +[Dune Analytics](https://dune.com/) pré-processa os dados de blockchain em tabelas de banco de dados relacional (DuneSQL), permitindo que os usuários consultem dados de blockchain usando SQL e criem dashboards com base nos resultados das consultas. Os dados on-chain são organizados em 4 tabelas brutas: `blocos`, `transações`, (evento) `registros` e (chamada) `traços`. Contratos e protocolos populares foram decodificados e cada um tem seu próprio conjunto de tabelas de eventos e chamadas. Essas tabelas de eventos e chamadas são processadas e organizadas em abstração de tabelas por tipo de protocolo, por exemplo, dex, lending, stablecoins etc. + +## SubQuery Network {#subquery-network} + +[SubQuery](https://subquery.network/) é um indexador de dados líder que fornece aos desenvolvedores APIs rápidas, confiáveis, descentralizadas e personalizadas para projetos web3. A SubQuery capacita desenvolvedores de mais de 165 ecossistemas (incluindo Ethereum) com dados indexados avançados para criar experiências intuitivas e imersivas para seus usuários. A SubQuery Network impulsiona seus aplicativos com uma infraestrutura resiliente e descentralizada. Utilize o kit de ferramentas para desenvolvedores de blockchain da SubQuery para construir os aplicativos web3 do futuro, sem precisar gastar tempo criando um back-end personalizado para atividades de processamento de dados. + +Para começar, acesse o [guia rápido de Ethereum](https://academy.subquery.network/quickstart/quickstart_chains/ethereum-gravatar.html) para começar a indexar dados da blockchain Ethereum em minutos em um ambiente local Docker para testes antes do lançamento em um [serviço gerenciado da SubQuery](https://managedservice.subquery.network/) ou na [rede descentralizada da SubQuery](https://app.subquery.network/dashboard). + +## Ethernow - Programa de dados Mempool {#ethernow} +[Blocknative](https://www.blocknative.com/) fornece acesso aberto ao seu [arquivo de dados de mempool](https://www.ethernow.xyz/mempool-data-archive) histórico do Ethereum. Isso permite que pesquisadores e bons projetos comunitários explorem a camada pré-chain da rede principal de Ethereum. O conjunto de dados é ativamente mantido e representa o registro histórico mais abrangente dos eventos de transações de mempool dentro do ecossistema Ethereum. Saiba mais em [Ethernow](https://www.ethernow.xyz/). ## Leitura Adicional {#further-reading} @@ -43,3 +52,4 @@ O [Dune Analytics](https://dune.com/) pré-processa dados da blockchain em tabel - [Exemplos de código de API em EtherScan](https://etherscan.io/apis#contracts) - [Explorador de Beacon Chain Beaconcha.in](https://beaconcha.in) - [Fundamentos do Dune](https://docs.dune.com/#dune-basics) +- [Guia rápido de início da SubQuery para Ethereum](https://academy.subquery.network/indexer/quickstart/quickstart_chains/ethereum-gravatar.html) diff --git a/public/content/translations/pt-br/developers/docs/development-networks/index.md b/public/content/translations/pt-br/developers/docs/development-networks/index.md index a2e043d6dfd..8d32bf051f3 100644 --- a/public/content/translations/pt-br/developers/docs/development-networks/index.md +++ b/public/content/translations/pt-br/developers/docs/development-networks/index.md @@ -45,16 +45,27 @@ Alguns clientes de consenso têm ferramentas integradas para ativar as cadeias B - [Testnet local usando Lighthouse](https://lighthouse-book.sigmaprime.io/setup.html#local-testnets) - [Testnet local usando Nimbus](https://github.com/status-im/nimbus-eth1/blob/master/fluffy/docs/local_testnet.md) -### Cadeias de teste públicas da Ethereum {#public-beacon-testchains} +### Cadeias de teste públicas do Ethereum {#public-beacon-testchains} Existem também duas implementações públicas de testes da Ethereum: Goerli e Sepolia. A rede de testes recomendada com apoio em longo prazo é Goerli, sobre a qual qualquer pessoa tem liberdade para validar. Sepolia é uma cadeia mais nova e menor que também deve ser mantida em um futuro previsível, com um conjunto de validadores autorizados (o que significa que não há acesso geral a novos validadores nesta rede de teste). Espera-se que a cadeia de Ropsten seja descontinuada no quarto trimestre de 2022, e espera-se que a cadeia de Rinkeby seja descontinuada no segundo ou terceiro trimestre de 2023. - [Plataforma de lançamento de staking Goerli](https://goerli.launchpad.ethereum.org/) - [Anúncio de descontinuação da Ropsten, Rinkeby & Kiln](https://blog.ethereum.org/2022/06/21/testnet-deprecation) +### Pacote Kurtosis do Ethereum {#kurtosis} + +Kurtosis é um sistema de construção para ambientes de teste em vários contêineres, que permite aos desenvolvedores gerar localmente instâncias reproduzíveis de redes blockchain. + +O pacote Ethereum Kurtosis pode ser usado para instanciar rapidamente uma rede de teste Ethereum parametrizável, altamente dimensionável e privada no Docker ou no Kubernetes. O pacote é compatível com todos os principais clientes da camada de execução (EL) e da camada de consenso (CL). A Kurtosis lida com todos os mapeamentos de portas locais e conexões de serviço para uma rede representativa a ser usada em fluxos de trabalho de validação e teste relacionados à infraestrutura principal do Ethereum. + +- [Pacote de rede Ethereum](https://github.com/kurtosis-tech/ethereum-package) +- [Website](https://www.kurtosis.com/) +- [GitHub](https://github.com/kurtosis-tech/kurtosis) +- [Documentação](https://docs.kurtosis.com/) + ## Leitura adicional {#further-reading} -_Conhece algum recurso da comunidade que o ajudou? Edite essa página e adicione!_ +_Conhece um recurso da comunidade que te ajudou? Edite essa página e adicione!_ ## Tópicos relacionados {#related-topics} diff --git a/public/content/translations/pt-br/developers/docs/frameworks/index.md b/public/content/translations/pt-br/developers/docs/frameworks/index.md index fea3950b472..d23cc8707e9 100644 --- a/public/content/translations/pt-br/developers/docs/frameworks/index.md +++ b/public/content/translations/pt-br/developers/docs/frameworks/index.md @@ -22,6 +22,13 @@ Antes de mergulhar em frameworks, recomendamos que você primeiro leia a nossa i ## Frameworks disponíveis {#available-frameworks} +**Foundry** - **_Foundry é um kit de ferramentas incrivelmente rápido, portátil e modular para desenvolvimento de aplicativos Ethereum_** + +- [Instalar Foundry](https://book.getfoundry.sh/) +- [Livro sobre Foundry](https://book.getfoundry.sh/) +- [Bate-papo da comunidade Foundry no Telegram](https://t.me/foundry_support) +- [Awesome Foundry](https://github.com/crisgarner/awesome-foundry) + **Hardhat -** **_Ambiente de desenvolvimento da Ethereum para profissionais._** - [hardhat.org](https://hardhat.org) @@ -32,33 +39,28 @@ Antes de mergulhar em frameworks, recomendamos que você primeiro leia a nossa i - [Documentação](https://docs.apeworx.io/ape/stable/) - [GitHub](https://github.com/ApeWorX/ape) -**Brownie -** **_Ambiente de desenvolvimento e framework de testes em Python._** - -- [Documentação](https://eth-brownie.readthedocs.io/en/latest/) -- [GitHub](https://github.com/eth-brownie/brownie) - **Web3j -** **_Uma plataforma para desenvolver aplicativos blockchain na JVM._** - [Página inicial](https://www.web3labs.com/web3j-sdk) - [Documentação](https://docs.web3j.io) - [GitHub](https://github.com/web3j/web3j) -**OpenZeppelin SDK -** **_O Ultimate Smart Contract Toolkit: Um conjunto de ferramentas para ajudar você a desenvolver, compilar, atualizar, implantar e interagir com contratos inteligentes._** +**ethers-kt -** **_Biblioteca assíncrona de alto desempenho em Kotlin/Java/Android para blockchains baseadas em EVM._** -- [OpenZeppelin SDK](https://openzeppelin.com/sdk/) -- [GitHub](https://github.com/OpenZeppelin/openzeppelin-sdk) -- [Fórum da Comunidade](https://forum.openzeppelin.com/c/support/17) +- [GitHub](https://github.com/Kr1ptal/ethers-kt) +- [Exemplos](https://github.com/Kr1ptal/ethers-kt/tree/master/examples) +- [Discord](https://discord.gg/rx35NzQGSb) -**Create Eth App -** **_Crie aplicativos com a tecnologia Ethereum com apenas um comando. Vem com uma ampla oferta de estruturas de interface do usuário e modelos DeFi para escolher._** +**Criar um app Eth-** **_Crie aplicativos com a tecnologia Ethereum com apenas um comando. Vem com uma ampla oferta de estruturas de interface do usuário e modelos DeFi para escolher._** - [GitHub](https://github.com/paulrberg/create-eth-app) - [Modelos](https://github.com/PaulRBerg/create-eth-app/tree/develop/templates) -**Scaffold-Eth -** **_Ethers.js + Hardhat + React componentes e hooks para web3: tudo o que você precisa para começar a construir aplicativos descentralizados fornecidos por contratos inteligentes._** +**Scaffold-Eth -** **_componentes e hooks Ethers.js + Hardhat + React para web3: tudo o que você precisa para começar a criar aplicativos descentralizados com tecnologia de contratos inteligentes._** - [GitHub](https://github.com/scaffold-eth/scaffold-eth-2) -**Tenderly -** **_Plataforma de desenvolvimento web3 que permite aos desenvolvedores de blockchain construir, testar, depurar, monitorar e operar contratos inteligentes e melhora a UX do dapp._** +**Tenderly -** **_Plataforma de desenvolvimento web3 que permite aos desenvolvedores de blockchain criar, testar, depurar, monitorar e operar contratos inteligentes e melhorar a UX do dapp._** - [Website](https://tenderly.co/) - [Documentação](https://docs.tenderly.co/ethereum-development-practices) @@ -72,23 +74,75 @@ Antes de mergulhar em frameworks, recomendamos que você primeiro leia a nossa i - [alchemy.com](https://www.alchemy.com/) - [GitHub](https://github.com/alchemyplatform) -- [Discord](https://discord.com/invite/A39JVCM) +- [Discord](https://discord.com/invite/alchemyplatform) -**Foundry -** **_Um conjunto de ferramentas rápido, portátil e modular para o desenvolvimento do aplicativo Ethereum, escrito em Rust._** - -- [Documentação](https://book.getfoundry.sh/) -- [GitHub](https://github.com/gakonst/foundry/) -- [Ferramentas para Foundry](https://github.com/crisgarner/awesome-foundry) - -**NodeReal -** **_Plataforma de Desenvolvimento Ethereum._** +**NodeReal -** **_Plataforma de desenvolvimento Ethereum._** - [Nodereal.io](https://nodereal.io/) - [GitHub](https://github.com/node-real) - [Discord](https://discord.gg/V5k5gsuE) +**thirdweb SDK -** **_Crie aplicativos web3 que podem interagir com seus contratos inteligentes usando nossos SDKs e CLI avançados._** + +- [Documentação](https://portal.thirdweb.com/sdk/) +- [GitHub](https://github.com/thirdweb-dev/) + +**Chainstack -** **_Plataforma de desenvolvimento Web3 (Ethereum e outros)._** + +- [chainstack.com](https://www.chainstack.com/) +- [GitHub](https://github.com/chainstack) +- [Discord](https://discord.gg/BSb5zfp9AT) + +**Crossmint-****_A plataforma web3 de desenvolvimento a nível empresarial que permite a criação de NFTs nas principais cadeias EVM (entre outras)._** + +- [Website](https://www.crossmint.com) +- [Documentação](https://docs.crossmint.com) +- [Discord](https://discord.com/invite/crossmint) + +**Brownie -** **_Ambiente de desenvolvimento e framework de testes em Python._** + +- [Documentação](https://eth-brownie.readthedocs.io/en/latest/) +- [GitHub](https://github.com/eth-brownie/brownie) +- **Brownie deixou de ser desenvolvido** + +**OpenZeppelin SDK -** **_The Ultimate Smart Contract Toolkit: um conjunto de ferramentas para ajudar você a desenvolver, compilar, atualizar, implantar e interagir com contratos inteligentes._** + +- [SDK da OpenZeppelin](https://openzeppelin.com/sdk/) +- [GitHub](https://github.com/OpenZeppelin/openzeppelin-sdk) +- [Fórum da Comunidade](https://forum.openzeppelin.com/c/support/17) +- **O desenvolvimento do SDK da OpenZeppelin foi finalizado** + +**Catapulta -** **_Ferramenta de contrato inteligente em várias cadeias que automatiza a verificação em exploradores de blocos, monitora os contratos inteligentes e compartilha relatórios de implementação desse contratos plug-n-play para projetos Foundry e Hardhat._** + +- [Website](https://catapulta.sh/) +- [Documentação](https://catapulta.sh/docs) +- [GitHub](https://github.com/catapulta-sh) + +**Covalent -** **_APIs de blockchain enriquecidas para mais de 200 redes._** + +- [covalenthq.com](https://www.covalenthq.com/) +- [Documentação](https://www.covalenthq.com/docs/api/) +- [GitHub](https://github.com/covalenthq) +- [Discord](https://www.covalenthq.com/discord/) + +**Wake -** **_Tudo em um Framework Python completo para testes de contratos, fuzzing, implantação, varredura de vulnerabilidades e navegação no código._** + +- [Página inicial](https://getwake.io/) +- [Documentação](https://ackeeblockchain.com/wake/docs/latest/) +- [GitHub](https://github.com/Ackee-Blockchain/wake) +- [Extensão VS Code](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity) + +**Veramo -** **_Framework de código aberto, modular e agnóstico que facilita para os desenvolvedores de aplicativos descentralizados a integração de identidades descentralizadas e credenciais verificáveis em suas aplicações._** + +- [Página inicial](https://veramo.io/) +- [Documentação](https://veramo.io/docs/basics/introduction) +- [GitHub](https://github.com/uport-project/veramo) +- [Discord](https://discord.com/invite/FRRBdjemHV) +- [Pacote NPM](https://www.npmjs.com/package/@veramo/core) + ## Leitura adicional {#further-reading} -_Conhece algum recurso da comunidade que o ajudou? Edite essa página e adicione!_ +_Conhece um recurso da comunidade que te ajudou? Edite essa página e adicione!_ ## Tópicos relacionados {#related-topics} diff --git a/public/content/translations/pt-br/developers/docs/ides/index.md b/public/content/translations/pt-br/developers/docs/ides/index.md index 44f34b014d7..e2ee2caa51f 100644 --- a/public/content/translations/pt-br/developers/docs/ides/index.md +++ b/public/content/translations/pt-br/developers/docs/ides/index.md @@ -37,7 +37,6 @@ A maioria dos IDEs estabelecidos possuem plugins integrados para melhorar a expe **Visual Studio Code -** **_IDE profissional multiplataforma com suporte oficial da Ethereum._** - [Visual Studio Code](https://code.visualstudio.com/) -- [Bancada de trabalho para Azure Blockchain](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-azure-blockchain.azure-blockchain-workbench?tab=Overview) - [Amostras de código](https://github.com/Azure-Samples/blockchain/blob/master/blockchain-workbench/application-and-smart-contract-samples/readme.md) - [GitHub](https://github.com/microsoft/vscode) @@ -60,4 +59,6 @@ A maioria dos IDEs estabelecidos possuem plugins integrados para melhorar a expe ## Leitura adicional {#further-reading} +- [Ethereum IDEs](https://www.alchemy.com/list-of/web3-ides-on-ethereum) _- Lista de IDEs para o Ethereum da Alchemy_ + _Conhece algum recurso da comunidade que o ajudou? Edite essa página e adicione!_ diff --git a/public/content/translations/pt-br/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/pt-br/developers/docs/networking-layer/portal-network/index.md index 1ec7f1fdaba..5223a43bb84 100644 --- a/public/content/translations/pt-br/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/pt-br/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ Os benefícios deste desenho de rede são: - reduzir a dependência em fornecedores centralizados - reduzir o uso de banda de internet - minimizar ou zerar a sincronia -- Acessível a dispositivos com recursos limitados (<1 GB de RAM, <100 MB de espaço em disco, 1 CPU) +- Acessível a dispositivos com recursos limitados (\<1 GB de RAM, \<100 MB de espaço em disco, 1 CPU) O diagrama abaixo mostra as funções dos clientes existentes que podem ser entregues pela Rede Portal, habilitando ao usuários acessar estas funções em dispositivos com muito poucos recursos. diff --git a/public/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md index b142285700f..ee85cd86aab 100644 --- a/public/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ Além das [recomendações gerais para executar um nó](/developers/docs/nodes-a Sempre verifique os requisitos de hardware para um determinado modo na documentação de um cliente. O maior requisito para nós de arquivo é o espaço em disco. Dependendo do cliente, varia de 3 TB a 12 TB. Mesmo que o HDD possa ser considerado uma solução melhor para grandes quantidades de dados, sincronizá-lo e atualizar constantemente o topo da cadeia exigirá unidades SSD. As unidades [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) são boas o suficiente, mas devem ser de qualidade confiável, pelo menos [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). Os discos podem ser inseridos em um computador ou servidor com slots suficientes. Esses dispositivos dedicados são ideais para executar um nó de alto tempo de atividade. É totalmente possível executá-lo em um laptop, mas a portabilidade virá com um custo adicional. -Todos os dados precisam se encaixar em um volume, portanto, os discos devem estar unidos, por exemplo, com [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) ou [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html). Também pode valer a pena considerar o uso de [ZFS](https://en.wikipedia.org/wiki/ZFS), pois ele suporta "Copy-on-write", que garante que os dados sejam gravados corretamente no disco sem quaisquer erros de baixo nível. +Todos os dados precisam se encaixar em um volume, portanto, os discos devem estar unidos, por exemplo, com [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) ou LVM. Também pode valer a pena considerar o uso de [ZFS](https://en.wikipedia.org/wiki/ZFS), pois ele suporta "Copy-on-write", que garante que os dados sejam gravados corretamente no disco sem quaisquer erros de baixo nível. Para obter mais estabilidade e segurança na prevenção de corrupção acidental do banco de dados, especialmente em uma configuração profissional, considere usar [memória ECC](https://en.wikipedia.org/wiki/ECC_memory) se o seu sistema a suportar. O tamanho de RAM é geralmente recomendado para ser o mesmo de um nó completo, mas mais RAM pode ajudar a acelerar a sincronização. diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/dart/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/dart/index.md index 7c6bbdbb1d2..f4b1b45db48 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/dart/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/dart/index.md @@ -13,13 +13,14 @@ incomplete: true 1. Escrevendo um contrato inteligente em [Solidity](https://soliditylang.org/) 2. Escrevendo uma interface de usuário no Dart - [Construir um dapp para dispositivos móveis com Flutter](https://medium.com/dash-community/building-a-mobile-dapp-with-flutter-be945c80315a) é muito mais curto, o que pode ser melhor -- Se você prefere aprender através de vídeos, você pode assistir [Build Your First Blockchain Flutter App](https://www.youtube.com/watch?v=3Eeh3pJ6PeA), que leva aproximadamente uma hora +- Se você preferir aprender assistindo a um vídeo, acesse [Criando seu primeiro app blockchain com Flutter](https://www.youtube.com/watch?v=3Eeh3pJ6PeA), que dura 1 hora - Se você é impaciente, talvez prefira o [Building a Blockchain Decentralized-app with Flutter and Dart on Ethereum](https://www.youtube.com/watch?v=jaMFEOCq_1s), que leva apenas vinte minutos -- [Integrating MetaMask in Flutter application](https://youtu.be/8qzVDje3IWk) - Este pequeno vídeo mostra as etapas de integração do MetaMask em seus aplicativos Flutter +- [Integrando MetaMask no aplicativo Flutter com Web3Modal da WalletConnect](https://www.youtube.com/watch?v=v_M2buHCpc4) - este vídeo curto mostra as etapas de integração do MetaMask dentro do aplicativo Flutter com a biblioteca da WalletConnect [Web3Modal](https://pub.dev/packages/web3modal_flutter) +- [Curso Bootcamp para Desenvolvedores de Blockchain Móvel com Solidity e Flutter](https://youtube.com/playlist?list=PL4V4Unlk5luhQ26ERO6hWEbcUwHDSSmVH) - playlist de cursos para desenvolvedores de blockchain móvel full stack ## Trabalhando com clientes Ethereum {#working-with-ethereum-clients} -Você pode usar Ethereum para criar aplicativos descentralizados (ou "dapps") que utilizam os benefícios da tecnologia de criptomoedas e cadeia de blocos. Existem ao menos duas bibliotecas mantidas atualmente para Dart, para usar [JSON RPC API](/developers/docs/apis/json-rpc/) para Ethereum. +Você pode usar Ethereum para criar aplicativos descentralizados (ou "dapps") que utilizam os benefícios da tecnologia de criptomoedas e cadeia de blocos. Atualmente existem pelo menos duas bibliotecas mantidas para Dart que usam a [API JSON-RPC](/developers/docs/apis/json-rpc/) para o Ethereum. 1. [Web3dart de simonbutler.eu](https://pub.dev/packages/web3dart) 1. [Ethereum 5.0.0 de darticulate.com](https://pub.dev/packages/ethereum) diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md index 271882b7b7a..70bd887d3e5 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md @@ -76,9 +76,9 @@ Procurando por mais recursos? Confira [ethereum.org/developers](/developers/). ## Colaboradores comunitários .NET {#dot-net-community-contributors} -Na Nethereum, nós geralmente nos encontramos no [Gitter](https://gitter.im/Nethereum/Nethereum) onde todos são bem vindos para fazer e responder perguntas, obter ajuda ou simplesmente relaxar. Sinta-se à vontade para fazer uma PR ou abrir uma questão no [repositório da Nethereum no GitHub](https://github.com/Nethereum), ou apenas para navegar pelos vários projetos paralelos e exemplos que temos. Você também pode nos encontrar em [Discord](https://discord.gg/jQPrR58FxX)! +Na Nethereum, nós geralmente nos encontramos no [Gitter](https://gitter.im/Nethereum/Nethereum) onde todos são bem vindos para fazer e responder perguntas, obter ajuda ou simplesmente relaxar. Sinta-se à vontade para fazer uma PR ou abrir uma questão no [repositório da Nethereum no Github](https://github.com/Nethereum), ou apenas para navegar pelos vários projetos paralelos e exemplos que temos. Você também pode nos encontrar em [Discord](https://discord.gg/jQPrR58FxX)! -Se você é novo no Nethermind e precisa de ajuda para começar, junte-se ao nosso [Discord](http://discord.gg/PaCMRFdvWT). Os nossos desenvolvedores estão prontos para responder às suas perguntas. Para PRs ou problemas, confira o [repositório do GitHub da Nethermind](https://github.com/NethermindEth/nethermind). +Se você é novo no Nethermind e precisa de ajuda para começar, junte-se ao nosso [Discord](http://discord.gg/PaCMRFdvWT). Os nossos desenvolvedores estão prontos para responder às suas perguntas. Para PRs ou problemas, confira o [repositório do Github da Nethermind](https://github.com/NethermindEth/nethermind). ## Outras listas agregadas {#other-aggregated-lists} diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/elixir/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/elixir/index.md new file mode 100644 index 00000000000..d5792e6d1d6 --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/programming-languages/elixir/index.md @@ -0,0 +1,56 @@ +--- +title: Ethereum para Desenvolvedores Elixir +description: Aprenda a desenvolver para Ethereum usando projetos e ferramentas baseadas em Elixir. +lang: pt-br +incomplete: false +--- + +Aprenda a desenvolver para Ethereum usando projetos e ferramentas baseadas em Elixir. + +Utilize Ethereum para criar aplicações descentralizadas ("dapps") que utilizam os benefícios das criptomoedas e tecnologias de cadeia de blocos. Esses dapps podem ser confiáveis, o que significa que, uma vez implantados na Ethereum, eles sempre serão executados conforme programado. Eles podem controlar ativos digitais para criar novos tipos de aplicações financeiros. Eles podem ser descentralizados, o que significa que nenhuma entidade ou pessoa os controla, sendo portanto praticamente impossíves de serem censurados. + +## Começando com contratos inteligentes e a linguagem Solidity {#getting-started-with-smart-contracts-and-solidity} + +**Dê seus primeiros passos para integrar Elixir com Ethereum** + +Precisa de uma introdução geral? +Confira [ethereum.org/learn](/learn/) ou [ethereum.org/developers](/developers/). + +- [Blockchain Explicada](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Entendendo Contratos Inteligentes](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Escreva seu Primeiro Contrato Inteligente](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Aprenda a Compilar e Implantar o Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Artigos para iniciantes {#beginner-articles} + +- [Finalmente entendendo as contas da Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) +- [Ethers — Uma biblioteca Web3 de primeira classe para Ethereum em Elixir](https://medium.com/@alisinabh/announcing-ethers-a-first-class-ethereum-web3-library-for-elixir-1d64e9409122) + +## Artigos Intermediários {#intermediate-articles} + +- [Como assinar transações brutas de contratos Ethereum com Elixir](https://kohlerjp.medium.com/how-to-sign-raw-ethereum-contract-transactions-with-elixir-f8822bcc813b) +- [Contratos Inteligentes Ethereum e Elixir](https://medium.com/agile-alpha/ethereum-smart-contracts-and-elixir-c7c4b239ddb4) + +## Projetos e Ferramentas para Elixir {#elixir-projects-and-tools} + +### Ativo {#active} + +- [block_keys](https://github.com/ExWeb3/block_keys) - _Implementação de BIP32 e BIP44 em Elixir (Hierarquia de Multi-Conta para Carteiras Determinísticas)_ +- [ethereumex](https://github.com/mana-ethereum/ethereumex) - _Cliente JSON-RPC em Elixir para a blockchain Ethereum_ +- [ethers](https://github.com/ExWeb3/elixir_ethers) - _Uma biblioteca Web3 abrangente para interagir com contratos inteligentes na Ethereum usando Elixir_ +- [ethers_kms](https://github.com/ExWeb3/elixir_ethers_kms) - _Uma biblioteca de assinatura KMS para Ethers (assine transações com AWS KMS)_ +- [ex_abi](https://github.com/poanetwork/ex_abi) - _Implementação de parser/decodificador/codificador de ABI da Ethereum em Elixir_ +- [ex_keccak](https://github.com/ExWeb3/ex_keccak) - _Biblioteca Elixir para calcular hashes Keccak SHA3-256 usando um NIF baseado na tiny-keccak Rust crate_ +- [ex_rlp](https://github.com/mana-ethereum/ex_rlp) - _Implementação em Elixir da codificação RLP (Recursive Length Prefix) da Ethereum_ + +### Arquivado / Não é mais mantido {#archived--no-longer-maintained} + +- [eth](https://hex.pm/packages/eth) - _Utilitários de Ethereum para Elixir_ +- [exw3](https://github.com/hswick/exw3) - _Cliente RPC Ethereum de alto nível para Elixir_ +- [mana](https://github.com/mana-ethereum/mana) - _Implementação de nó completo do Ethereum escrita em Elixir_ + +Procurando por mais recursos? Confira [nossa página para Desenvolvedores](/developers/). + +## Contribuidores da comunidade Elixir {#elixir-community-contributors} + +O [canal #ethereum no Slack do Elixir](https://elixir-lang.slack.com/archives/C5RPZ3RJL) é o lar de uma comunidade em rápido crescimento e o recurso dedicado para discussões sobre quaisquer dos projetos acima e tópicos relacionados. diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/golang/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/golang/index.md index e14e5475183..9a6d1a947b1 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/golang/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/golang/index.md @@ -64,6 +64,7 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [Multi Geth](https://github.com/multi-geth/multi-geth) - _Suporte para muitos tipos de redes Ethereum_ - [Geth Light Cliente](https://github.com/zsfelfoldi/go-ethereum/wiki/Geth-Light-Client) - _Implementação do Geth do Subprotocolo Light Ethereum_ - [Ethereum Golang SDK](https://github.com/everFinance/goether) - _Uma implementação simples de carteira Ethereum e utilitários em Golang_ +- [Covalent Golang SDK](https://github.com/covalenthq/covalent-api-sdk-go) - _Acesso eficiente a dados blockchain via SDK Go para mais de 200 blockchains_ Procurando por mais recursos? Confira [ethereum.org/developers](/developers/) diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/index.md index d7c56bd6858..2f2aba6889e 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/index.md @@ -15,6 +15,7 @@ Selecione a sua linguagem de programação preferida para encontrar projetos, re - [Ethereum para desenvolvedores Dart](/developers/docs/programming-languages/dart/) - [Ethereum para desenvolvedores Delphi](/developers/docs/programming-languages/delphi/) - [Ethereum para desenvolvedores .NET](/developers/docs/programming-languages/dot-net/) +- [Ethereum para desenvolvedores Elixir](/developers/docs/programming-languages/elixir/) - [Ethereum para desenvolvedores Go](/developers/docs/programming-languages/golang/) - [Ethereum para desenvolvedores Java](/developers/docs/programming-languages/java/) - [Ethereum para desenvolvedores JavaScript](/developers/docs/programming-languages/javascript/) diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/java/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/java/index.md index eb4ab8f781f..e607f84a79d 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/java/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/java/index.md @@ -20,7 +20,7 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [Escreva seu primeiro Smart Contract](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) - [Aprenda como Compilar e Implementar Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) -## Trabalhando com clientes Ethereum {#working-with-ethereum-clients} +## Trabalhando com clientes Ethereum {#working-with-ethereum-clients} Aprenda como usar [Web3J](https://github.com/web3j/web3j)e Besu Hiperregistro, dois principais clientes Java Ethereum @@ -31,22 +31,28 @@ Aprenda como usar [Web3J](https://github.com/web3j/web3j)e Besu Hiperregistro, d - [Monitorando Eventos de Smart Contracts Ethereum](https://kauri.io/article/760f495423db42f988d17b8c145b0874/listening-for-ethereum-smart-contract-events-in-java) - [Usando Besu (Pantheon), o Cliente Ethereum Java com Linux](https://kauri.io/article/276dd27f1458443295eea58403fd6965/using-pantheon-the-java-ethereum-client-with-linux) - [Executando um Nó de Hyperledger Besu (Pantheon) em testes de integração com Java](https://kauri.io/article/7dc3ecc391e54f7b8cbf4e5fa0caf780/running-a-pantheon-node-in-java-integration-tests) -- [Dicas Web3j]() +- [Dicas Web3j](https://kauri.io/web3j-cheat-sheet-(java-ethereum)/5dfa1ea941ac3d0001ce1d90/c) -## Artigos intermediários {#intermediate-articles} +Aprenda a usar [ethers-kt](https://github.com/Kr1ptal/ethers-kt), uma biblioteca Kotlin assíncrona e de alto desempenho para interagir com blockchains baseadas em EVM. Destinada às plataformas JVM e Android. +- [Transferir tokens ERC20](https://github.com/Kr1ptal/ethers-kt/blob/master/examples/src/main/kotlin/io/ethers/examples/abi/TransferERC20.kt) +- [Troca UniswapV2 com escuta de eventos](https://github.com/Kr1ptal/ethers-kt/blob/master/examples/src/main/kotlin/io/ethers/examples/tokenswapwitheventlistening/TokenSwapWithEventListening.kt) +- [Rastreador de saldo ETH / ERC20](https://github.com/Kr1ptal/ethers-kt/blob/master/examples/src/main/kotlin/io/ethers/examples/balancetracker/BalanceTracker.kt) + +## Artigos intermediários {#intermediate-articles} - [Gerenciando o armazenamento em um aplicativo Java com IPFS](https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926/managing-storage-in-a-java-application-with-ipfs) - [Gerenciando tokens ERC20 em Java com Web3j](https://kauri.io/article/d13e911bbf624108b1d5718175a5e0a0/manage-erc20-tokens-in-java-with-web3j) - [Gerentes de Transações Web3j](https://kauri.io/article/4cb780bb4d0846438d11885a25b6d7e7/web3j-transaction-managers) -## Padrões de uso avançados {#advanced-use-patterns} +## Padrões de uso avançados {#advanced-use-patterns} - [Usando o Eventeum para construir um cache de dados de Smart Contract em Java](https://kauri.io/article/fe81ee9612eb4e5a9ab72790ef24283d/using-eventeum-to-build-a-java-smart-contract-data-cache) -## Projetos e ferramentas em Java {#java-projects-and-tools} +## Projetos e ferramentas em Java {#java-projects-and-tools} - [Hyperledger Besu (Pantheon) (Cliente Ethereum)](https://docs.pantheon.pegasys.tech/en/stable/) - [Web3J (Biblioteca para Interagir com Clientes Ethereum)](https://github.com/web3j/web3j) +- [ethers-kt (Biblioteca Kotlin/Java/Android assíncrona e de alto desempenho para blockchains baseadas em EVM.)](https://github.com/Kr1ptal/ethers-kt) - [Evento (Monitorador de eventos)](https://github.com/ConsenSys/eventeum) - [Mahuta (Ferramenta de Desenvolvedor IPFS)](https://github.com/ConsenSys/mahuta) diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md index 531cd8efdd0..3fe8201fb9c 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md @@ -19,7 +19,8 @@ Você pode usar essas bibliotecas para interagir com contratos inteligentes na E **Confira** - [Web3.js](https://web3js.readthedocs.io/) -- [Ethers.js - Implementação completa de uma carteira Ethereum e utilidades em JavaScript e TypeScript.](https://docs.ethers.io/) +- [Ethers.js](https://docs.ethers.io/)_— Implementação completa de uma carteira Ethereum e utilidades em JavaScript e TypeScript._ +- [viem](https://viem.sh) – uma interface TypeScript para Ethereum que fornece primitivas sem estado de baixo nível para interagir com Ethereum. ### Smart Contracts {#smart-contracts} @@ -50,10 +51,12 @@ Se você prefere ler código, esse JavaScript poderia ser uma ótima alternativa ### Nós e clientes {#nodes-and-clients} -Há um cliente Ethereumjs no desenvolvimento. Isso permitirá que você procure em como os clientes da Ethereum trabalham em uma linguagem que você entenda. +Um cliente Ethereumjs está em desenvolvimento ativo que permite você explorar como os clientes Ethereum funcionam em um idioma que você entende; JavaScript! + +Ele costumava estar hospedado em um [`repositório`](https://github.com/ethereumjs/ethereumjs-client) autônomo, no entanto, foi posteriormente incorporado ao monorepo EthereumVM como um pacote. **Confira o monorepo** -[`ethereumjs`](https://github.com/ethereumjs/ethereumjs-client) +[`ethereumjs`](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client) ## Outros projetos {#other-projects} @@ -67,4 +70,4 @@ Explore o que mais lhe interessa no [repositório EthereumJS](https://github.com ## Leitura adicional {#further-reading} -_Conhece algum recurso da comunidade que o ajudou? Edite essa página e adicione!_ +_Conhece um recurso da comunidade que te ajudou? Edite essa página e adicione!_ diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md index 1cf6176d26b..de023899096 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md @@ -32,7 +32,7 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth ## Artigos intermediários {#intermediate-articles} -- [Devenvolvimento de Dapp para programadores Python](https://levelup.gitconnected.com/dapps-development-for-python-developers-f52b32b54f28) +- [Desenvolvimento de Dapp para programadores Python](https://levelup.gitconnected.com/dapps-development-for-python-developers-f52b32b54f28) - [Criando uma Interface Python Ethereum: Parte 1](https://hackernoon.com/creating-a-python-ethereum-interface-part-1-4d2e47ea0f4d) - [Contratos Inteligentes Ethereum em Python: um guia (mais ou menos) abrangente](https://hackernoon.com/ethereum-smart-contracts-in-python-a-comprehensive-ish-guide-771b03990988) - [Usando Brownie e Python para implantar Contratos Inteligentes](https://dev.to/patrickalphac/using-brownie-for-to-deploy-smart-contracts-1kkp) @@ -51,21 +51,22 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [Web3.py](https://github.com/ethereum/web3.py) - _Biblioteca em Python para interagir com Ethereum_ - [Vyper](https://github.com/ethereum/vyper/) - _Linguagem de Smart Contract em Python para a Máquina Virtual Ethereum_ - [Ape](https://github.com/ApeWorX/ape) - _A ferramenta de desenvolvimento de contrato inteligente (smart contract) para Pythonistas, Cientistas de Dados e Profissionais de Segurança_ -- [Brownie](https://github.com/eth-brownie/brownie) - _Framework em Python para implantar, testar e interagir com contratos inteligentes Ethereum_ - [py-evm](https://github.com/ethereum/py-evm) - _Implementação de uma Máquina Virtual Ethereum_ - [eth-tester](https://github.com/ethereum/eth-tester) - _ferramentas para testar aplicativos baseados na Ethereum_ - [eth-utils](https://github.com/ethereum/eth-utils/) - _funções de utilidade para trabalhar com bases de código relacionadas com a Ethereum_ -- [py-solc-x](https://pypi.org/project/py-solc-x/) - _wrapper em Python em cima do compilador solc solidity com suporte à versão 0.5._ -- [py-wasm](https://github.com/ethereum/py-wasm) - _implementação em Python de um intérprete de montagem web_ -- [pydevp2p](https://github.com/ethereum/pydevp2p) - _Implementação de uma pilha P2P Ethereum_ +- [py-solc-x](https://pypi.org/project/py-solc-x/) - _wrapper em Python em cima do compilador solc solidity com suporte à versão 0.5.x_ - [pymaker](https://github.com/makerdao/pymaker) - _API em Python para contratos Maker_ - [siwe](https://github.com/spruceid/siwe-py) - _Registre-se com Ethereum (siwe) para Python_ - [Web3 DeFi para integrações Ethereum](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _Um pacote Python com integrações prontas para ERC-20, Uniswap e outros projetos populares_ +- [Wake](https://getwake.io) - _Framework Python completo para teste de contratos, fuzzing, implantação, varredura de vulnerabilidades e navegação de código (servidor de linguagem - [Ferramentas para Solidez](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ ### Arquivado / Não mais mantido: {#archived--no-longer-maintained} - [Trinity](https://github.com/ethereum/trinity) - _cliente Ethereum Python_ - [Mamba](https://github.com/arjunaskykok/mamba) - _Framework para escrever, compilar e implantar contratos inteligentes escritos em linguagem Vyper_ +- [Brownie](https://github.com/eth-brownie/brownie) - _Framework em Python para implantar, testar e interagir com contratos inteligentes Ethereum_ +- [pydevp2p](https://github.com/ethereum/pydevp2p) - _Implementação de uma pilha P2P Ethereum_ +- [py-wasm](https://github.com/ethereum/py-wasm) - _implementação em Python de um intérprete de montagem web_ Procurando por mais recursos? Confira [ethereum.org/developers](/developers/). @@ -82,8 +83,8 @@ Os seguintes projetos baseados na Ethereum usam ferramentas mencionadas nesta p ## Comunidade de discussão Python {#python-community-contributors} - [Comunidade Discord Python Ethereum](https://discord.gg/9zk7snTfWe) Para discussões sobre Web3.py e outros frameworks Python -- [Vyper Discord](https://discord.gg/SdvKC79cJk) Para discussão sobre programação de contrato inteligente com Vyper +- [Vyper Discord](https://discord.gg/SdvKC79cJk) Para discussões sobre a programação de contratos inteligentes com Vyper ## Demais listas agregadas {#other-aggregated-lists} -A wiki Vyper tem uma [Lista incrível de recursos para Vyper](https://github.com/ethereum/vyper/wiki/Vyper-tools-and-resources) +A wiki Vyper tem uma [Lista incrível de recursos sobre Vyper](https://github.com/vyperlang/vyper/wiki/Vyper-tools-and-resources) \ No newline at end of file diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/rust/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/rust/index.md index a4ecf6a72dc..778eeb53457 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/rust/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/rust/index.md @@ -22,9 +22,8 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth ## Artigos para Iniciantes {#beginner-articles} -- [O cliente Rust Ethereum](https://openethereum.github.io/) /**\*Note que o OpenEthereum [foi descontinuado](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) e não está mais sendo mantido.** Use-o com cuidado e de preferência mude para outra implementação do cliente. +- [O cliente Rust Ethereum](https://openethereum.github.io/) /***Note que o OpenEthereum [foi descontinuado](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) e não está mais sendo mantido.** Use-o com cuidado e de preferência mude para outra implementação do cliente. - [Enviando uma transação para Ethereum usando Rust](https://kauri.io/#collections/A%20Hackathon%20Survival%20Guide/sending-ethereum-transactions-with-rust/) -- [Uma Introdução aos Contratos Inteligentes com o Cliente Parity Ethereum](https://wiki.parity.io/Smart-Contracts) - [Um tutorial passo a passo sobre como criar contratos em Rust Wasm para Kovan](https://github.com/paritytech/pwasm-tutorial) ## Artigos para intermediários {#intermediate-articles} @@ -35,7 +34,6 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [Construa um bate-papo descentralizado utilizando JavaScript e Rust](https://medium.com/perlin-network/build-a-decentralized-chat-using-javascript-rust-webassembly-c775f8484b52) - [Construa um aplicativo descentralizado de tarefas utilizando Vue.js & Rust](https://medium.com/@jjmace01/build-a-decentralized-todo-app-using-vue-js-rust-webassembly-5381a1895beb) -- [Uma Introdução a Contratos Secretos](https://blog.enigma.co/getting-started-with-enigma-an-intro-to-secret-contracts-cdba4fe501c2) - [Construir uma blockchain no Rust](https://blog.logrocket.com/how-to-build-a-blockchain-in-rust/) ## Projetos e ferramentas em Rust {#rust-projects-and-tools} @@ -47,11 +45,13 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [Solaris](https://github.com/paritytech/sol-rs) — _Agente de teste unitário dos contratos inteligentes no Solidity usando o EVM nativo do cliente Parity._ - [SputnikVM](https://github.com/rust-blockchain/evm) — _Implementação da Máquina Virtual do Ethereum no Rust_ - [Wavelet](https://wavelet.perlin.net/docs/smart-contracts) - _smart contract Wavelet em Rust_ -- [Foundry](https://github.com/foundry-rs/foundry) - _Conjunto de ferramentas para o desenvolvimento de aplicativos Ethereum_ -- [Alloy](https://alloy.rs) - _Bibliotecas de alto desempenho, bem testadas e documentadas para interação com Ethereum e outras cadeias baseadas em EVM._ -- [Ethers_rs](https://github.com/gakonst/ethers-rs) - _Implementação da biblioteca e da carteira Ethereum_ +- [Foundry](https://github.com/foundey-rs/foundry) — _Conjunto de ferramentas para o desenvolvimento de aplicativos Ethereum_ +- [Alloy](https://alloy.rs) - _Bibliotecas de alto desempenho, bem testadas e documentadas para interagir com Ethereum e outras cadeias baseadas em EVM._ +- [Ethers_rs](https://github.com/gakonst/ethers-rs) - _Biblioteca Ethereum e implementação de carteira_ - [SewUp](https://github.com/second-state/SewUp) — _Uma biblioteca para ajudar você a construir seu contrato Webassembly do Ethereum com o Rust e desenvolvê-lo em um back-end comum_ -- [Reth](https://github.com/paradigmxyz/reth) Reth (abreviação de Rust Ethereum, pronúncia) é uma nova implementação de nó completo do Ethereum +- [Substreams](https://github.com/streamingfast/substreams) - _Tecnologia de indexação de dados paralelizada em blockchain_ +- [Reth](https://github.com/paradigmxyz/reth) - Reth (abreviação de Rust Ethereum) é uma nova implementação de nó completo do Ethereum +- [Awesome Ethereum Rust](https://github.com/Vid201/awesome-ethereum-rust) - _Uma coleção selecionada de projetos no ecossistema Ethereum escritos em Rust_ Procurando por mais recursos? Leia [ethereum.org/developers.](/developers/) diff --git a/public/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md index 582dd49ece0..9ff72b630c0 100644 --- a/public/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Especificações formais de baixo nível podem ser fornecidas como propriedades ### Propriedades do estilo Hoare {#hoare-style-properties} -[Hore Logic](https://en.wikipedia.org/wiki/Hoare_logic) fornece um conjunto de regras formais para raciocinar sobre a correção de programas, incluindo contratos inteligentes. Uma propriedade de estilo Hoare é representada por um triplo Hoare {_P_}_c_{_Q_}, onde _c_ é um programa e _P_ e _Q_ são predicados no estado do _c_ (ou seja, o programa), formalmente descritos como _precondições_ e _pós-condições_, respectivamente. +[Hore Logic](https://en.wikipedia.org/wiki/Hoare_logic) fornece um conjunto de regras formais para raciocinar sobre a correção de programas, incluindo contratos inteligentes. Uma propriedade de estilo Hoare é representada por um triplo Hoare `{P}c{Q}`, onde `c` é um programa e `P` e `Q` são predicados no estado do `c` (ou seja, o programa), formalmente descritos como _precondições_ e _pós-condições_, respectivamente. Uma precondição é um predicado que descreve as condições necessárias para a execução correta de uma função; os usuários que chamam um contrato devem satisfazer este requisito. Uma pós-condição é um predicado que descreve a condição que uma função estabelece se executada corretamente; os usuários podem esperar que essa condição seja verdadeira após chamar a função. Uma _invariável_ na lógica Hoare é um predicado que é preservado pela execução de uma função (ou seja, não muda). diff --git a/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md index 20e32874931..b8c7e1a9947 100644 --- a/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md @@ -563,7 +563,7 @@ Se você planeja consultar um oráculo on-chain para preços de ativos, consider - **[Padrão de Verificação de Segurança de Contrato Inteligente](https://github.com/securing/SCSVS)** - _Lista de verificação de quatorze partes criadas para padronizar a segurança de contratos inteligentes para desenvolvedores, arquitetos, revisores de segurança e fornecedores._ -- **[Aprenda sobre segurança e auditoria de contratos inteligentes](https://updraft.cyfrin.io/courses/security)** - _Curso definitivo de segurança e auditoria de contratos inteligentes, criado para desenvolvedores de contratos inteligentes que desejam melhorar suas práticas recomendadas de segurança e se tornar pesquisadores de segurança._ +- **[Aprenda sobre segurança e auditoria de contratos inteligentes](https://updraft.cyfrin.io/courses/security) - _Curso definitivo de segurança e auditoria de contratos inteligentes, criado para desenvolvedores de contratos inteligentes que desejam melhorar suas práticas recomendadas de segurança e se tornar pesquisadores de segurança._ ### Tutoriais sobre segurança de contratos inteligentes {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/pt-br/developers/docs/storage/index.md b/public/content/translations/pt-br/developers/docs/storage/index.md index 48d9166097a..ca22c62ad58 100644 --- a/public/content/translations/pt-br/developers/docs/storage/index.md +++ b/public/content/translations/pt-br/developers/docs/storage/index.md @@ -61,6 +61,7 @@ IPFS é um sistema distribuído para armazenamento e acesso a arquivos, sites, a - [Verificação IPFS](https://ipfs-scan.io) _(explorador de fixação de IPFS)_ - [4EVERLAND](https://www.4everland.org/)_ (Serviço de fixação IPFS) _ - [Filebase](https://filebase.com) _(Serviço de Fixação IPFS)_ +- [Spheron Network](https://spheron.network/) _(serviço de pinning IPFS/Filecoin)_ SWARM é uma tecnologia descentralizada de armazenamento e distribuição de dados com um sistema de incentivo ao armazenamento e um oráculo de preços de aluguel de armazenamento. @@ -87,7 +88,6 @@ Não há ótimas ferramentas para medir o nível de descentralização das plata Ferramentas descentralizadas sem KYC: -- Züs (implementação de uma edição não-KYC) - Skynet - Arweave - Filecoin @@ -144,7 +144,7 @@ Baseado em prova de participação (proof-of-stake): - [Documentação](https://docs.arweave.org/info/) - [Arweave](https://github.com/ArweaveTeam/arweave/) -**Züs - _Züs é uma plataforma de prova de participação dStorage com fragmentação e blobbers._** +**Züs - _Züs é uma plataforma de dStorage baseada em prova de participação, com suporte a fragmentação e blobbers._** - [zus.network](https://zus.network/) - [Documentação](https://0chaindocs.gitbook.io/zus-docs) @@ -198,6 +198,12 @@ Baseado em prova de participação (proof-of-stake): - [Documentação](https://docs.kaleido.io/kaleido-services/ipfs/) - [GitHub](https://github.com/kaleido-io) +**Spheron Network - _Spheron é uma plataforma como serviço (PaaS) projetada para dApps que busca lançar seus aplicativos em infraestrutura descentralizada com o melhor desempenho. Oferece computação, armazenamento descentralizado, CDN e hospedagem web prontos para uso._** + +- [spheron.network](https://spheron.network/) +- [Documentação](https://docs.spheron.network/) +- [GitHub](https://github.com/spheronFdn) + ## Leitura adicional {#further-reading} - [O que é armazenamento descentralizado?](https://coinmarketcap.com/alexandria/article/what-is-decentralized-storage-a-deep-dive-by-filecoin) - _CoinMarketCap_ diff --git a/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md index fbc70bd02c3..18e42ed6009 100644 --- a/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ Qualquer pessoa autorizada a transferir um token, tem permissão para queimá-lo Ao contrário do Solidity, o Vyper não tem herança. Esta é uma escolha de design deliberada para tornar o código mais claro e, com isso, mais fácil de proteger. Portanto, para criar seu próprio contrato Vyper ERC-721, você usa [este contrato](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) e o modifica para implementar a lógica comercial que você desejar. -# Conclusão {#conclusion} +## Conclusão {#conclusion} Recapitulando, aqui estão algumas das ideias mais importantes neste contrato: diff --git a/public/content/translations/pt-br/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/pt-br/developers/tutorials/erc20-annotated-code/index.md index a1180674191..b2b5ebdf2e0 100644 --- a/public/content/translations/pt-br/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/pt-br/developers/tutorials/erc20-annotated-code/index.md @@ -586,7 +586,7 @@ A função `a.add(b)` é uma adição segura. No caso improvável de `um`+`b`>=` Essas são as quatro funções que realmente funcionam: `_transfer`, `_mint`, `_burn`, e `_appro`. -#### A função \_transfer {#\_transfer} +#### A função \_transfer {#_transfer} ```solidity /** @@ -651,7 +651,7 @@ Essas são as linhas que realmente executam a transferência. Observe que não h Essa função emite o evento `Transfer`. Os eventos não são acessíveis para contratos inteligentes, mas o código executado fora da blockchain pode ouvir os eventos e reagir a eles. Por exemplo, uma carteira pode monitorar quando o proprietário obtém mais tokens. -#### As funções \_mint e \_burn {#\_mint-and-\_burn} +#### As funções \_mint e \_burn {#_mint-and-_burn} Essas duas funções (`_mint` e `_burn`) modificam o fornecimento total de moedas. Elas são internas e não há nenhuma função que as chame nesse contrato, portanto, elas só são úteis se você herdar do contrato e adicionar sua própria lógica para decidir em que condições gerar novos tokens ou usar os tokens já existentes. @@ -705,7 +705,7 @@ Certifique-se de atualizar o `_totalSupply` quando o número total de tokens mud A função `_burn` é quase idêntica à `_mint`, exceto que ela funciona na direção inversa. -#### A função \_approve {#\_approve} +#### A função \_approve {#_approve} Essa é a função que especifica as provisões. Observe que ela permite que um proprietário especifique uma provisão superior ao saldo atual do proprietário. Isso não tem problema, pois o saldo é verificado no momento da transferência, quando ele poderia diferir do saldo no momento da criação da provisão. @@ -783,7 +783,7 @@ Essa função modifica a variável `_decimals` utilizada para dizer às ‘inter Essa é a função hook a ser chamada durante as transferências. Ela está vazia, mas se precisar dela para fazer algo, basta sobrescrevê-la. -# Conclusão {#conclusion} +## Conclusão {#conclusion} Resumindo, aqui estão algumas das ideias mais importantes neste contrato (na minha opinião, pode ser que as suas não sejam as mesmas): diff --git a/public/content/translations/pt-br/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/pt-br/developers/tutorials/hello-world-smart-contract-fullstack/index.md index 83b560c08ac..1a6e2aa9aa6 100644 --- a/public/content/translations/pt-br/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/translations/pt-br/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -260,7 +260,7 @@ No diretório do projeto, digite: npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" ``` -### Etapa 13: Atualizar hardhat.config.js {#step-13-update-hardhat.configjs} +### Etapa 13: Atualizar hardhat.config.js {#step-13-update-hardhat-configjs} Até aqui, já adicionamos diversas dependências e plugins. Agora precisamos atualizar o `hardhat.config.js` para que nosso projeto reconheça todos eles. diff --git a/public/content/translations/pt-br/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/pt-br/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md index 899dffa2ab9..3cb13dcff28 100644 --- a/public/content/translations/pt-br/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md +++ b/public/content/translations/pt-br/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md @@ -371,7 +371,7 @@ function echidna_assert_after_f() public returns (bool) { } ``` -Entretanto, existem alguns problemas: %{issues}: +Entretanto, existem alguns problemas: %\{issues}: - Ele falha se `f` é declarado como `interno` ou `externo`. - Não está claro quais argumentos devem ser usados para chamar `f`. diff --git a/public/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 1419b4d33c0..fecfa764ce4 100644 --- a/public/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -76,7 +76,7 @@ Agora que estamos dentro da pasta do nosso projeto, vamos usar npm init para ini npm init Não importa realmente como você responde às questões de instalação; aqui está o que utilizamos de referência: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -99,7 +99,7 @@ Não importa realmente como você responde às questões de instalação; aqui e "author": "", "license": "ISC" } - +``` Aprove o package.json e estamos prontos para começar! ## Etapa 7: Instalar o [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} @@ -259,6 +259,7 @@ Até aqui, já adicionamos diversas dependências e plugins. Agora precisamos at Atualize seu hardhat.config.js para ficar assim: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -276,6 +277,7 @@ Atualize seu hardhat.config.js para ficar assim: } }, } +``` ## Etapa 14: Compilar nosso contrato {#compile-contract} diff --git a/public/content/translations/pt-br/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/pt-br/developers/tutorials/reverse-engineering-a-contract/index.md index 7cd8a430e82..a3abbab0a31 100644 --- a/public/content/translations/pt-br/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/translations/pt-br/developers/tutorials/reverse-engineering-a-contract/index.md @@ -53,8 +53,8 @@ Os contratos são sempre executados a partir do primeiro byte. Essa é a parte i | 4 | MSTORE | Vazio | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | Vazio | Esse código faz duas coisas: @@ -119,8 +119,8 @@ O `NOT` é bit a bit, portanto, ele inverte o valor de cada bit no valor da cham | ------------:| ------------------ | ------------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | | Nós pulamos se `Value*` (o valor) for menor que 2^256-CALLVALUE-1 ou igual a ele. Isso parece lógico para evitar vazamento (overflow). E, de fato, vemos que depois de algumas operações sem sentido (escrever na memória que está prestes a ser excluída, por exemplo) no deslocamento 0x01DE, o contrato é revertido se o vazamento for detectado, o que é um comportamento normal. @@ -431,7 +431,7 @@ O código nos deslocamentos 0x138-0x143 é idêntico ao que vimos em 0x103-0x10E | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -471,8 +471,8 @@ Vamos ver o que acontece se a função _obtiver_ os dados de chamada necessário | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Alguma coisa como esta : "typescript": "^3.8.3" } } +```
                            tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Alguma coisa como esta : "target": "ES2018" } } +```
                            @@ -104,6 +108,7 @@ Alguma coisa como esta :
                            .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Alguma coisa como esta : } ] } +```
                            @@ -709,6 +715,7 @@ Você deve ver que Waffle compilou seu contrato e colocou a saída JSON resultan
                            BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Você deve ver que Waffle compilou seu contrato e colocou a saída JSON resultan "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                            ## Passo #4: Escreva um contrato inteligente [Link para documento](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/pt-br/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/pt-br/developers/tutorials/yellow-paper-evm/index.md index 5aced52da90..0355941cfad 100644 --- a/public/content/translations/pt-br/developers/tutorials/yellow-paper-evm/index.md +++ b/public/content/translations/pt-br/developers/tutorials/yellow-paper-evm/index.md @@ -167,7 +167,7 @@ Nós temos uma parada excepcional se qualquer destas condições for verdadeira: A função _W(w,μ)_ é definida mais tarde na equação 150. _W(w,μ)_ é verdade se uma destas condições for verdadeira: - - **_w ∈ {CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Estes opcodes mudando o estado, ou criando um novo contrato, armazenando valor, ou destruindo o contrato atual. + - **_w ∈ \{CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Estes opcodes mudando o estado, ou criando um novo contrato, armazenando valor, ou destruindo o contrato atual. - **_LOG0≤w ∧ w≤LOG4_** Se nãos formos chamados estaticamente, nós não podemos emitir entradas de log. Os opcodes de log estão todos na faixa entre [`LOG0` (A0)](https://www.evm.codes/#a0) e [`LOG4` (A4)](https://www.evm.codes/#a4). O número depois do opcode de log especifica quantos tópicos a entrada de log contém. - **_w=CALL ∧ μs[2]≠0_** Você pode chamar um outro contrato quando você está estático, mas se você o fizer, você não pode transferir ETH para ele. @@ -228,7 +228,7 @@ O endereço destes saldos que nós precisamos encontrar é _μs[0] mo Se _σ[μs[0] mod 2160] ≠ ∅_, isto significa que há informação sobre este endereço. Neste caso, _σ[μs[0] mod 2160]b_ é o saldo para aquele endereço. Se _σ[μs[0] mod 2160] = ∅_, significa que este endereço não está inicializado e que o saldo é zero. Você pode ver a lista de campos de informações de contas na seção 4.1 na página 4. -A segunda equação, _A'a ≡ Aa ∪ {μs[0] mod 2160}_, é relacionada com a diferença no custo entre acesso à warm storage (storage que foi recenteimente acessada e é provável que esteja em cache) e cold storage (storage que não tem sido acessada e provavelmente esteja em uma storage mais lenta, que é mais cara para se recuperar). _Aa_ é a lista de endereços previamente acessados pela transação, que deveria, portanto ser de acesso mais barato, como definido na seção 6.1 na página 8. Você pode ler mais sobre este assunto em [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). +A segunda equação, _A'a ≡ Aa ∪ \{μs[0] mod 2160}_, é relacionada com a diferença no custo entre acesso à warm storage (storage que foi recenteimente acessada e é provável que esteja em cache) e cold storage (storage que não tem sido acessada e provavelmente esteja em uma storage mais lenta, que é mais cara para se recuperar). _Aa_ é a lista de endereços previamente acessados pela transação, que deveria, portanto ser de acesso mais barato, como definido na seção 6.1 na página 8. Você pode ler mais sobre este assunto em [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929). | Valor | Mnemônico | δ | α | Descrição | | -----:| --------- | -- | -- | --------------------------------------- | diff --git a/public/content/translations/pt-br/roadmap/index.md b/public/content/translations/pt-br/roadmap/index.md index 653047afdf3..8f07ffe422a 100644 --- a/public/content/translations/pt-br/roadmap/index.md +++ b/public/content/translations/pt-br/roadmap/index.md @@ -94,7 +94,7 @@ As melhorias normalmente não afetam os usuários finais, exceto ao proporcionar [Vitalik Buterin propôs uma visão para o planejamento do Ethereum](https://twitter.com/VitalikButerin/status/1741190491578810445) que foi organizada em diversas categorias vinculadas pelos efeitos na arquitetura do Ethereum. Ela inclui: -- <**A Fusão**: melhorias relacionadas à mudança de [prova de trabalho](/glossary/#pow) para [prova de participação](/glossary/#pos) +- **A Fusão**: melhorias relacionadas à mudança de [prova de trabalho](/glossary/#pow) para [prova de participação](/glossary/#pos) - **The Surge**: melhorias relacionadas ao dimensionamento por meio de [rollups](/glossary/#rollups) e fragmentação de dados - **The Scourge**: melhorias relacionadas à resistência à censura, à descentralização e a riscos de protocolo do [MEV](/glossary/#mev) - **The Verge**: melhorias relacionadas à verificação de [blocos](/glossary/#block) com mais facilidade diff --git a/public/content/translations/pt-br/roadmap/merge/index.md b/public/content/translations/pt-br/roadmap/merge/index.md index b0a6d443e3b..a8abeaad360 100644 --- a/public/content/translations/pt-br/roadmap/merge/index.md +++ b/public/content/translations/pt-br/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Dapp e desenvolvedores de contratos inteligentes" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -A Fusão veio com alterações no consenso, que também inclui alterações relacionadas a:< +A Fusão veio com alterações no consenso, que também inclui alterações relacionadas a:
                            • estrutura de bloco
                            • diff --git a/public/content/translations/pt-br/zero-knowledge-proofs/index.md b/public/content/translations/pt-br/zero-knowledge-proofs/index.md index 9c6034793a5..85997bfc6e1 100644 --- a/public/content/translations/pt-br/zero-knowledge-proofs/index.md +++ b/public/content/translations/pt-br/zero-knowledge-proofs/index.md @@ -38,7 +38,7 @@ Existem "moedas de privacidade" específicas desenhadas para transações comple Ao incorporar a tecnologia de conhecimento zero ao protocolo, as redes [blockchain](/glossary/#blockchain) voltadas para a privacidade permitem que os [nós](/glossary/#node) validem as transações sem precisar acessar os dados da transação. -<0>Provas de conhecimento zero também estão sendo aplicadas para tornar anônimas transações em blockchains públicas. Um exemplo é o Tornado Cash, um serviço descentralizado e sem custódia que permite aos usuários realizar transações privadas no Ethereum. O Tornado Cash usa provas de conhecimento zero para ofuscar os detalhes das transações e garantir privacidade financeira. Infelizmente, por se tratar de ferramentas de privacidade "opt-in", elas estão associadas a atividades ilícitas. Para superar isso, a privacidade deve se tornar o padrão em blockchains públicas. +**Provas de conhecimento zero também estão sendo aplicadas para tornar anônimas transações em blockchains públicas**. Um exemplo é o Tornado Cash, um serviço descentralizado e sem custódia que permite aos usuários realizar transações privadas no Ethereum. O Tornado Cash usa provas de conhecimento zero para ofuscar os detalhes das transações e garantir privacidade financeira. Infelizmente, por se tratar de ferramentas de privacidade "opt-in", elas estão associadas a atividades ilícitas. Para superar isso, a privacidade deve se tornar o padrão em blockchains públicas. ### Proteção de identidade {#identity-protection} diff --git a/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md index ad0c545726b..d64c0889b48 100644 --- a/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ Oricine este autorizat să transfere un token este autorizat să îl și ardă. Spre deosebire de Solidity, Vyper nu are funcția de moștenire. Aceasta este o opțiune deliberată de concepție, pentru a conferi claritate codului, facilitându-i prin aceasta securizarea. Deci, pentru a vă crea propriul contract Vyper ERC-721, porniți de la [acest contract](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) și modificați-l pentru a implementa logica operațională pe care o doriți. -# Concluzie {#conclusion} +## Concluzie {#conclusion} În recapitulare, iată câteva din cele mai importante idei din acest contract: diff --git a/public/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md index d2174204ab4..4c8216eb20c 100644 --- a/public/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ Funcția `a.add(b)` este o adunare sigură („safe add”). În cazul improbabi Există patru funcții care efeectuează cu adevărat munca: `_transfer`, `_mint`, `_burn`, și `_approve`. -#### Funcția \_transfer {#\_transfer} +#### Funcția \_transfer {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ Acestea sunt liniile care execută practic transferul. Observați că nu există În cele din urmă, va emite evenimentul `Transfer`. Evenimentele nu sunt accesibile contractelor inteligente, dar codul care rulează în afara blockchain-ului poate să detecteze prin ascultare evenimente și să reacționeze la ele. De exemplu, un portofel poate monitoriza când proprietarul obține mai multe tokenuri. -#### Funcțiile \_mint și \_burn {#\_mint-and-\_burn} +#### Funcțiile \_mint și \_burn {#_mint-and-_burn} Cele două funcții (`_mint` și `_burn`) modifică numărul total de tokenuri furnizate. Deoarece acestea sunt interne, nu există nicio funcție care să le apeleze în acest contract, iar ele sunt utile numai dacă moșteniți din contract și adăugați propria logică prin care să decideți în ce condiții să emiteţi noi tokenuri sau să le ardeți pe cele existente. @@ -706,7 +706,7 @@ Aveţi grijă să actualizați `_totalSupply` atunci când se modifică numărul Funcția `_burn` este identică aproape cu `_mint`, cu excepția faptului că funcționează în sens invers. -#### Funcția \_approve {#\_approve} +#### Funcția \_approve {#_approve} Aceasta este funcția care specifică de fapt alocațiile. Rețineți că permite unui proprietar să specifice o alocație mai mare decât soldul curent al proprietarului. Acest lucru este în regulă, deoarece soldul este verificat în momentul transferului, când ar putea fi diferit de cel de la momentul în care a fost creată alocația. @@ -784,7 +784,7 @@ Această funcție modifică variabila `_decimals`, care este utilizată pentru a Aceasta este funcția „hook” care va fi apelată în timpul transferurilor. It is empty here, but if you need it to do something you just override it. -# Concluzie {#conclusion} +## Concluzie {#conclusion} În recapitulare, iată câteva dintre cele mai importante idei din acest contract (după părerea mea - părerea dvs. ar putea să fie diferită): diff --git a/public/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md index 787458bdef4..1f569ba1257 100644 --- a/public/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md +++ b/public/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md @@ -15,7 +15,7 @@ published: 2021-04-22 [Beeple](https://www.nytimes.com/2021/03/11/arts/design/nft-auction-christies-beeple.html): 69 de milioane de dolari [3LAU](https://www.forbes.com/sites/abrambrown/2021/03/03/3lau-nft-nonfungible-tokens-justin-blau/?sh=5f72ef64643b): 11 milioane de dolari [Grimes](https://www.theguardian.com/music/2021/mar/02/grimes-sells-digital-art-collection-non-fungible-tokens): 6 milioane de dolari -Toți și-au emis NFT-urile folosind puternicul API al Alchemy. În acest tutorial vă vom învăța cum să faceți același lucru în <10 minute. +Toți și-au emis NFT-urile folosind puternicul API al Alchemy. În acest tutorial vă vom învăța cum să faceți același lucru în \<10 minute. „Emiterea unui NFT” este actul de a publica o instanță unică a tokenului dvs. ERC-721 pe blockchain. Utilizând contractul nostru inteligent din [Partea 1 a acestei serii de tutoriale despre NFT-uri](/developers/tutorials/how-to-write-and-deploy-an-nft/), haideți să ne adaptăm aptitudinile pentru web3 și să emitem un NFT. La sfârșitul acestui tutorial veți fi capabili să bateți cât de multe NFT-uri vă dorește inima (și portofelul)! diff --git a/public/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 023a4fb55d8..33e2c6a5cec 100644 --- a/public/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -77,7 +77,7 @@ Odată ce suntem în dosarul proiectului nostru, vom folosi npm init pentru a in npm init Nu este prea important cum răspundeți la întrebările de instalare; iată cum am făcut-o noi, ca referință: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -100,7 +100,7 @@ Nu este prea important cum răspundeți la întrebările de instalare; iată cum "author": "", "license": "ISC" } - +``` Aprobați package.json și suntem gata să începem! ## Etapa 7: Instalarea [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} @@ -258,6 +258,7 @@ Până acum am adăugat mai multe dependențe și plugin-uri, acum trebuie să a Actualizați hardhat.config.js pentru a arăta astfel: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -275,6 +276,7 @@ Actualizați hardhat.config.js pentru a arăta astfel: } }, } +``` ## Etapa 14: Compilarea contractului nostru {#compile-contract} diff --git a/public/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md index de3be647619..cba04fd130c 100644 --- a/public/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md +++ b/public/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md @@ -45,6 +45,7 @@ Ceva de genul acesta:
                              package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Ceva de genul acesta: "typescript": "^3.8.3" } } +```
                              tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Ceva de genul acesta: "target": "ES2018" } } +```
                              @@ -104,6 +108,7 @@ Ceva de genul acesta:
                              .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Ceva de genul acesta: } ] } +```
                              @@ -709,6 +715,7 @@ Veți vedea că Waffle v-a compilat contractul și a plasat rezultatul din JSON
                              BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Veți vedea că Waffle v-a compilat contractul și a plasat rezultatul din JSON "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                              ## Etapa 4: Testați-vă contractul inteligent [Link către document](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md index 73ac6854126..5c5f33eceb5 100644 --- a/public/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md +++ b/public/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md @@ -45,6 +45,7 @@ Ceva de genul acesta:
                              package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Ceva de genul acesta: "typescript": "^3.8.3" } } +```
                              tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Ceva de genul acesta: "target": "ES2018" } } +```
                              @@ -104,6 +108,7 @@ Ceva de genul acesta:
                              .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Ceva de genul acesta: } ] } +```
                              @@ -709,6 +715,7 @@ Veți vedea că Waffle v-a compilat contractul și a plasat rezultatul din JSON
                              BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Veți vedea că Waffle v-a compilat contractul și a plasat rezultatul din JSON "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                              ## Etapa 4: Testați-vă contractul inteligent [Link către document](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/ro/whitepaper/index.md b/public/content/translations/ro/whitepaper/index.md index 17740d45b7b..811decba235 100644 --- a/public/content/translations/ro/whitepaper/index.md +++ b/public/content/translations/ro/whitepaper/index.md @@ -31,15 +31,21 @@ Iată o postare de pe blogul lui Vitalik Buterin, fondatorul Ethereum, despre [P Din punct de vedere tehnic, registrul unei criptomonede precum Bitcoin poate fi considerat un sistem de tranziție de stare, acolo unde există o „stare” constând din starea de proprietate a tuturor bitcoin-urilor existente și o „funcție de tranziție de stare” care ia o stare și o tranzacție și generează o nouă stare care este rezultatul. Într-un sistem bancar standard, de exemplu, starea este un bilanț, o tranzacție este o cerere să muți $X de la A la B, iar funcția de tranziție a stării reduce valoarea valoarea contului lui A cu $X și crește valoarea contului lui B cu $X. Când contul lui A are mai puțin de $X, în primul rând, starea funcției de tranziție returnează o eroare. Prin urmare, se pot defini formal: +``` APPLY(S,TX) -> S' sau ERROR +``` În sistemul bancar definit mai sus: +``` APPLY({ Alice: $50, Bob: $50 },"trimite $20 de la Alice la Bob") = { Alice: $30, Bob: $70 } +``` Dar: +``` APPLY({ Alice: $50, Bob: $50 },"trimite $70 de la Alice la Bob") = ERROR +``` „Starea” din Bitcoin este colecția tuturor monedelor (din punct de vedere tehnic, „ieșiri de tranzacție necheltuite” sau UTXO) care au fost exploatate dau nu au fost încă cheltuite, fiecare UTXO având o denumire și un proprietar (definit de o adresă de 20 de byți, care este în esență o cheie publică criptografică[fn. 1](#notes)). A tranzacția conține una sau mai multe intrări, fiecare intrare conținând o referință la un UTXO existent și la o semnătură criptografică produsă de cheia privată asociată cu adresa proprietarului și una sau mai multe ieșiri, fiecare ieșire conținând un nou UTXO care va fi adăugat la stare. diff --git a/public/content/translations/ru/roadmap/merge/index.md b/public/content/translations/ru/roadmap/merge/index.md index c9021ac90d4..6a3545f5ca5 100644 --- a/public/content/translations/ru/roadmap/merge/index.md +++ b/public/content/translations/ru/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Децентрализованные приложения и разраб contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -Слияние внесло изменения в консенсус, который также включает в изменения, связанные со следующим:< +Слияние внесло изменения в консенсус, который также включает в изменения, связанные со следующим:
                              • Структура блока
                              • diff --git a/public/content/translations/te/roadmap/dencun/index.md b/public/content/translations/te/roadmap/dencun/index.md index 5fdc93d84a2..2de54ecdc20 100644 --- a/public/content/translations/te/roadmap/dencun/index.md +++ b/public/content/translations/te/roadmap/dencun/index.md @@ -62,13 +62,13 @@ _Historical_ blob డేటా వివిధ కారణాల వల్ల ఈ స్కేలబిలిటీ వికేంద్రీకృత నెట్‌వర్క్‌ను కొనసాగిస్తూ, సరసమైన రుసుములు మరియు మరింత అధునాతన అప్లికేషన్‌లతో [Ethereumలో బిలియన్ల కొద్దీ వినియోగదారులకు మద్దతు ఇవ్వడానికి](/రోడ్‌మ్యాప్/స్కేలింగ్/) కీలకం. ఈ మార్పులు లేకుండా, నోడ్ ఆపరేటర్లకు హార్డ్‌వేర్ డిమాండ్‌లు పెరుగుతాయి, ఇది ఖరీదైన పరికరాల అవసరానికి దారి తీస్తుంది. ఇది చిన్న ఆపరేటర్ల ధరలను తగ్గించగలదు, దీని ఫలితంగా కొన్ని పెద్ద ఆపరేటర్లలో నెట్‌వర్క్ నియంత్రణ ఏకాగ్రత ఏర్పడుతుంది, ఇది వికేంద్రీకరణ సూత్రానికి విరుద్ధంగా ఉంటుంది. -## ఈ అప్‌గ్రేడ్ అన్ని Ethereum ఏకాభిప్రాయం మరియు వాలిడేటర్ క్లయింట్‌లను ప్రభావితం చేస్తుందా? {#క్లయింట్-ప్రభావం} +## ఈ అప్‌గ్రేడ్ అన్ని Ethereum ఏకాభిప్రాయం మరియు వాలిడేటర్ క్లయింట్‌లను ప్రభావితం చేస్తుందా? {#client-impact} అవును, ప్రోటో-డాంక్షర్డింగ్ (EIP-4844) కి ఎగ్జిక్యూషన్ క్లయింట్‌లు మరియు ఏకాభిప్రాయ క్లయింట్లు రెండింటికీ నవీకరణలు అవసరం. అన్ని ప్రధాన Ethereum క్లయింట్లు అప్‌గ్రేడ్‌కు మద్దతు ఇచ్చే సంస్కరణలను విడుదల చేశారు. Ethereum నెట్‌వర్క్ పోస్ట్-అప్‌గ్రేడ్‌తో సమకాలీకరణను నిర్వహించడానికి, నోడ్ ఆపరేటర్లు తప్పనిసరిగా మద్దతు ఉన్న క్లయింట్ వెర్షన్‌ను అమలు చేస్తున్నారని నిర్ధారించుకోవాలి. క్లయింట్ విడుదలల గురించిన సమాచారం సమయానుకూలమైనది మరియు వినియోగదారులు అత్యంత ప్రస్తుత వివరాల కోసం తాజా నవీకరణలను సూచించాలని గుర్తుంచుకోండి. మద్దతు ఉన్న క్లయింట్ విడుదలల వివరాలను చూడండి](https://blog.ethereum.org/2024/02/27/dencun-mainnet-announcement#client-releases). ఏకాభిప్రాయ క్లయింట్‌లు _Validator_ సాఫ్ట్‌వేర్‌ను నిర్వహిస్తారు, ఇది అప్‌గ్రేడ్‌కు అనుగుణంగా నవీకరించబడింది. -## కాంకున్-డెనెబ్ (డెన్‌కున్) గోర్లీ లేదా ఇతర ఎథెరియం టెస్ట్‌నెట్‌లను ఎలా ప్రభావితం చేస్తుంది? {#testnet-ఇంపాక్ట్} +## కాంకున్-డెనెబ్ (డెన్‌కున్) గోర్లీ లేదా ఇతర ఎథెరియం టెస్ట్‌నెట్‌లను ఎలా ప్రభావితం చేస్తుంది? {#testnet-impact} - Devnets, Goerli, Sepolia మరియు Holesky అన్నీ Dencun అప్‌గ్రేడ్‌కు గురయ్యాయి మరియు ప్రోటో-డాంక్షర్డింగ్ పూర్తిగా పనిచేస్తున్నాయి - రోలప్ డెవలపర్లు EIP-4844 పరీక్ష కోసం ఈ నెట్‌వర్క్‌లను ఉపయోగించవచ్చు diff --git a/public/content/translations/tr/contributing/translation-program/translators-guide/index.md b/public/content/translations/tr/contributing/translation-program/translators-guide/index.md index 61ca367e024..4b30fc949f8 100644 --- a/public/content/translations/tr/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/tr/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Bağlantılar için yapılacak en iyi şey, üzerlerine tıklayarak veya "Kayna ![Link örneği.png](./example-of-link.png) -Bağlantılar, kaynak metinde etiketler biçiminde de görünür (örn. <0> ). Etiketin üzerine geldiğinizde, düzenleyici tam içeriğini gösterir: Bazen bu etiketler bağlantıları temsil eder. +Bağlantılar, kaynak metinde etiketler biçiminde de görünür (örn. \<0> \). Etiketin üzerine geldiğinizde, düzenleyici tam içeriğini gösterir: Bazen bu etiketler bağlantıları temsil eder. Bağlantıları kaynaktan kopyalamak ve sıralarını değiştirmemek çok önemlidir. @@ -154,7 +154,7 @@ nonce - _Çevrilmemesi gereken metin_ Kaynak metin, yalnızca sayıları içeren kısaltılmış etiketler de içerir; yani, bunların fonksiyonu hemen anlaşılabilir olmayabilir. Tam olarak hangi fonksiyonu yerine getirdiklerini görmek için imleci bu etiketlerin üzerine götürebilirsiniz. -Aşağıdaki örnekte, imleç üzerine götürüldüğünde <0> etiketin `` öğesini temsil ettiğini ve bir kod parçacığı içerdiğini görebilirsiniz; bu nedenle, bu etiketlerin içindeki içerik çevrilmemelidir. +Aşağıdaki örnekte, imleç üzerine götürüldüğünde \<0> etiketin `` öğesini temsil ettiğini ve bir kod parçacığı içerdiğini görebilirsiniz; bu nedenle, bu etiketlerin içindeki içerik çevrilmemelidir. ![Belirsiz etiketlerin örneği.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/tr/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/tr/developers/docs/networking-layer/portal-network/index.md index 6a0c1d88bd9..f396c286ea4 100644 --- a/public/content/translations/tr/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/tr/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ Bu ağ tasarımının faydaları şunlardır: - merkezi sağlayıcılara olan bağımlılığı azaltmak - Internet bant genişliği kullanımını azaltmak - minimize edilmiş veya sıfır senkronizasyon -- Kaynak kısıtlaması olan cihazlara erişim (<1 GB RAM, <100 MB disk alanı, 1 CPU) +- Kaynak kısıtlaması olan cihazlara erişim (\<1 GB RAM, \<100 MB disk alanı, 1 CPU) Aşağıdaki diyagram, Portal Ağı tarafından sunulabilecek mevcut istemcilerin işlevlerini gösterir ve kullanıcıların çok düşük kaynaklı cihazlardan bu işlevlere erişmesini sağlar. diff --git a/public/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md index 53ef97d80f7..d37b9a48152 100644 --- a/public/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ Kendi arşiv düğümünüzü başlatmadan önce, istemciler arasındaki farklar Belirli bir mod için donanım gereksinimlerini müşteri dökümanlarında doğruladığınızdan her zaman emin olun. Arşiv düğümleri için en büyük gereklilik disk alanıdır. İstemciye bağlı olarak 3 TB ile 12 TB arasında değişir. Daha büyük miktardaki veriler için HDD daha iyi bir çözüm olarak düşünülse bile, senkronize etmek ve zincirin başını sürekli güncellemek SSD sürücülerini gerektirir. [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) sürücüleri yeterlidi fakat güvenilir kalitede, en az [TLC'de](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences) olmalıdırlar. Diskler yeterli yuvaya sahip bir masaüstü bilgisayara veya sunucuya yerleştirilebilir. Bunun gibi özel cihazlar, yüksek çalışma süresi gerektiren düğümleri çalıştırmak için idealdir. Bir dizüstü bilgisayarda çalıştırmak tamamıyla mümkün, ancak taşıması ek bir maliyete tabi olacaktır. -Tüm veri bir hacme sığmalıdır, bu yüzden diskler bağlı olmalıdır, örneğin [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) veya [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html) ile. Verilerin herhangi bir düşük seviyeli hata olmadan doğru bir şekilde diske yazılmasını sağlayan "Yazma sırasında kopyalama" özelliğini desteklediği için [ZFS](https://en.wikipedia.org/wiki/ZFS) kullanmayı da düşünmek faydalı olabilir. +Tüm veri bir hacme sığmalıdır, bu yüzden diskler bağlı olmalıdır, örneğin [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) veya LVM ile. Verilerin herhangi bir düşük seviyeli hata olmadan doğru bir şekilde diske yazılmasını sağlayan "Yazma sırasında kopyalama" özelliğini desteklediği için [ZFS](https://en.wikipedia.org/wiki/ZFS) kullanmayı da düşünmek faydalı olabilir. Kazara gerçekleşebilecek veritabanı bozulmalarını daha kararlı ve güvenli bir şekilde önlemek için, özellikle profesyonel kurulumlarda sisteminiz destekliyorsa [ECC memory](https://en.wikipedia.org/wiki/ECC_memory) kullanmayı düşünebilirsiniz. RAM boyutunun genellikle bir tam düğümle aynı olması tavsiye edilir, ancak daha fazla RAM senkronizasyonu hızlandırmaya yardımcı olabilir. diff --git a/public/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md index 468eb298a28..4a6a5f19f99 100644 --- a/public/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Düşük düzeyli resmi spesifikasyonlar Hoare tarzı özellikler veya yürütme ### Hoare tarzı özellikler {#hoare-style-properties} -[Hoare Mantığı](https://en.wikipedia.org/wiki/Hoare_logic), akıllı sözleşmeleri de kapsayan programların doğruluğu hakkında resmi bir gerekçelendirme kural sınıfı sağlar. Hoare-tarzı bir özellik, Hoare üçlüsü tarafından temsil edilir {_P_}_c_{_Q_}, burada _c_ bir programdır ve _P_ ile _Q_ da _c_ (yani program) durumuna yönelik ifadelerdir, resmi olarak sırayla _ön koşullar_ ve _art koşullar_ olarak tanımlanmışlardır. +[Hoare Mantığı](https://en.wikipedia.org/wiki/Hoare_logic), akıllı sözleşmeleri de kapsayan programların doğruluğu hakkında resmi bir gerekçelendirme kural sınıfı sağlar. Hoare-tarzı bir özellik, Hoare üçlüsü tarafından temsil edilir `{P}c{Q}`, burada `c` bir programdır ve `P` ile `Q` da `c` (yani program) durumuna yönelik ifadelerdir, resmi olarak sırayla _ön koşullar_ ve _art koşullar_ olarak tanımlanmışlardır. Bir ön koşul, bir fonksiyonun doğru yürütülmesi için gerekli koşulları açıklayan bir ifadedir; bu sözleşmeyi çağıran kullanıcılar bu gerekliliği karşılamak zorundadır. Bir art koşul ise doğru biçimde yürütülmesi şartıyla bir fonksiyonun tesis ettiği koşulu açıklayan bir ifadedir; kullanıcılar, fonksiyona çağrı sonrası bu koşulun doğru olmasını bekler. Hoare mantığındaki bir _değişmez_, fonksiyonun yürütülmesi ile korunan bir ifadedir (örneğin, değişmez). diff --git a/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md index debe26b7cc3..d3010de1966 100644 --- a/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ Bir token'ı transfer etmesine izin verilen herkesin onu yakmasına izin verilir Solidity'nin aksine, Vyper'ın kalıtımı yoktur. Bu, kodu daha net hâle getirmek ve dolayısıyla güvenliğini sağlamak için bilinçli bir tasarım seçimidir. Bu nedenle, kendi Vyper ERC-721 sözleşmenizi oluşturmak için [bu sözleşmeyi](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) alın ve istediğiniz iş mantığını uygulamak için değiştirin. -# Sonuç {#conclusion} +## Sonuç {#conclusion} İnceleme için, bu sözleşmedeki en önemli fikirlerden bazıları şunlardır: diff --git a/public/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md index 73daaa57716..a6ea9fbd82f 100644 --- a/public/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ B: Bunlar asıl işi yapan dört fonksiyondur: `_transfer`, `_mint`, `_burn` ve `_approve`. -#### \_transfer fonksiyonu {#\_transfer} +#### \_transfer fonksiyonu {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ Bunlar aslında aktarımı yapan hatlardır. Aralarında **hiçbir şey** olmad Son olarak, bir `Transfer` olayı yayın. Olaylara akıllı sözleşmelerle erişilemez, ancak blok zincirinin dışında çalışan kod, olayları dinleyebilir ve bunlara tepki verebilir. Örneğin bir cüzdan, sahibinin ne zaman daha fazla token aldığını takip edebilir. -#### \_mint ve \_burn fonksiyonları {#\_mint-and-\_burn} +#### \_mint ve \_burn fonksiyonları {#_mint-and-_burn} Bu iki fonksiyon (`_mint` and `_burn`) toplam token arzını düzenler. Bunlar dahilidir ve bu sözleşmede onları çağıran bir fonksiyon yoktur, bu nedenle yalnızca sözleşmeden devralırsanız ve hangi koşullar altında yeni token'lar basacağınıza veya mevcut token'ları yakacağınıza karar vermek için kendi mantığınızı eklerseniz kullanışlıdırlar. @@ -706,7 +706,7 @@ Toplam token sayısı değiştiğinde `_totalSupply`'ı güncellediğinizden emi `_burn` fonksiyonu, diğer yöne gitmesi dışında `_mint` ile hemen hemen aynıdır. -#### \_approve fonksiyonu {#\_approve} +#### \_approve fonksiyonu {#_approve} Bu aslında ödenekleri belirten fonksiyondur. Sahibin, kendi mevcut bakiyesinden daha yüksek bir ödenek belirlemesine izin verdiğini unutmayın. Bakiye, ödenek oluşturulduğundaki bakiyeden farklı olabileceği transfer sırasında kontrol edildiği için bu sorun yaratmaz. @@ -784,7 +784,7 @@ Bu fonksiyon, kullanıcı arabirimlerine miktarın nasıl yorumlanacağını sö Bu, aktarımlar sırasında çağrılacak kanca fonksiyonudur. Bu örnekte kanca fonksiyonu boş ancak ihtiyaç duyarsanız fonksiyon içeriğini doldurabilirsiniz. -# Sonuç {#conclusion} +## Sonuç {#conclusion} İnceleme için, bu sözleşmedeki en önemli fikirlerden bazıları şunlardır (bence sizinki muhtemelen değişebilir): diff --git a/public/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md index ce5420f55eb..aa406d1f885 100644 --- a/public/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -260,7 +260,7 @@ Proje klasörünüzde şunu yazın: npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" ``` -### Adım 13: hardhat.config.js'yi güncelleyin {#step-13-update-hardhat.configjs} +### Adım 13: hardhat.config.js'yi güncelleyin {#step-13-update-hardhat-configjs} Şimdiye kadar birkaç bağımlılık ve eklenti ekledik, şimdi projemizin bunların hepsini tanıması için `hardhat.config.js`'yi güncellememiz gerekiyor. diff --git a/public/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md index f08e097691f..8025ea396db 100644 --- a/public/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md +++ b/public/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md @@ -14,7 +14,7 @@ published: 2021-04-22 [Beeple](https://www.nytimes.com/2021/03/11/arts/design/nft-auction-christies-beeple.html): 69 Milyon ABD Doları[3LAU](https://www.forbes.com/sites/abrambrown/2021/03/03/3lau-nft-nonfungible-tokens-justin-blau/?sh=5f72ef64643b): 11 Milyon ABD Doları [Grimes](https://www.theguardian.com/music/2021/mar/02/grimes-sells-digital-art-collection-non-fungible-tokens): 6 Milyon ABD Doları -Hepsi, Alchemy'nin güçlü API'sini kullanarak NFT'lerini bastı. Bu öğreticide, aynısını <10 dakikada nasıl yapacağınızı size öğreteceğiz. +Hepsi, Alchemy'nin güçlü API'sini kullanarak NFT'lerini bastı. Bu öğreticide, aynısını \<10 dakikada nasıl yapacağınızı size öğreteceğiz. “NFT basımı”, blok zincirinde ERC-721 token'ınızın benzersiz bir örneğini yayınlama eylemidir. [NFT eğitim serisinin 1. Bölümündeki](/developers/tutorials/how-to-write-and-deploy-an-nft/) akıllı sözleşmemizi kullanarak Web3 becerilerimizi geliştirelim ve bir NFT basalım. Bu eğitimin sonunda, keyfinizin (ve cüzdanınızın) istediği kadar NFT basabileceksiniz! diff --git a/public/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index bc288a45700..3f2564513f7 100644 --- a/public/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -76,7 +76,7 @@ Artık proje klasörümüzün içinde olduğumuza göre, projeyi başlatmak içi npm init Kurulum sorularına nasıl cevap verdiğiniz çok önemli değil; referans olması için nasıl yaptığımızı aşağıda açıkladık: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -99,7 +99,7 @@ Kurulum sorularına nasıl cevap verdiğiniz çok önemli değil; referans olmas "author": "", "license": "ISC" } - +``` package.json'ı onaylayın ve artık hazırız! ## Adım 7: [Hardhat](https://hardhat.org/getting-started/#overview)'i kurun {#install-hardhat} @@ -259,6 +259,7 @@ Bir sonraki adımda hardhat.config.js'mizde de ether'lere ihtiyacımız olacak. Hardhat.config.js dosyanızı şöyle görünecek şekilde güncelleyin: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -276,6 +277,7 @@ Hardhat.config.js dosyanızı şöyle görünecek şekilde güncelleyin: } }, } +``` ## Adım 14: Sözleşmemizi derleyin {#compile-contract} diff --git a/public/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md index 8daed3ea1eb..39151d37ab6 100644 --- a/public/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md @@ -53,8 +53,8 @@ Sözleşmeler her zaman ilk bayttan yürütülür. Bu kodun ilk kısmıdır: | 4 | MSTORE | Boş | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | Boş | Bu kod iki şey yapar: @@ -119,8 +119,8 @@ Bu kodu sıçrama hedefinde takip etmeye devam edeceğiz. | -----: | ------------ | --------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | | Eğer `Value*`, 2^256-CALLVALUE-1'den küçük ya da ona eşitse sıçrarız. Bu, taşmayı engelleme mantığına benzer. Ve gerçekten de, 0x01DE ofsetinde birkaç anlamsız işlemden sonra (örneğin belleğe yazma silinmek üzere) normal davranış olan taşma algılanırsa sözleşmenin geri döndüğünü görüyoruz. @@ -431,7 +431,7 @@ Sıçramadan sonra ne olduğunu [çoktan anladık](#the-da-code). Yani `merkleRo | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -471,8 +471,8 @@ Eğer hiçbir çağrı verisi almazsa bu işlem gelen hiçbir veri olmadan geri | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ Her şeyden önce, yeni bir `JavaScript` veya `TypeScript` projesi oluşturun (B "typescript": "^3.8.3" } } +```
                                tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ Her şeyden önce, yeni bir `JavaScript` veya `TypeScript` projesi oluşturun (B "target": "ES2018" } } +```
                                @@ -104,6 +108,7 @@ Her şeyden önce, yeni bir `JavaScript` veya `TypeScript` projesi oluşturun (B
                                .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ Her şeyden önce, yeni bir `JavaScript` veya `TypeScript` projesi oluşturun (B } ] } +```
                                @@ -709,6 +715,7 @@ Waffle'ın sözleşmenizi derlediğini ve ortaya çıkan JSON çıktısını `bu
                                BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ Waffle'ın sözleşmenizi derlediğini ve ortaya çıkan JSON çıktısını `bu "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                                ## 4. Adım: Akıllı sözleşmenizi test edin [Belge bağlantısı](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md index 149652e8d9a..cc6007b8e30 100644 --- a/public/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md +++ b/public/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md @@ -167,7 +167,7 @@ Bu durumlardan biri doğruysa bir istisnai durma söz konusudur: _W(w,μ)_ fonksiyonu daha sonra 150.denklemde anlatılacaktır. _W(w,μ)_ aşağıdaki durumlardan biri doğruysa doğru olur: - - **_w ∈ {CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Bu işlem kodları, yeni bir söyleşme oluşturarak, bir değer depolayarak ya da güncel sözleşmeyi yok ederek durumu değiştirirler. + - **_w ∈ \{CREATE, CREATE2, SSTORE, SELFDESTRUCT}_** Bu işlem kodları, yeni bir söyleşme oluşturarak, bir değer depolayarak ya da güncel sözleşmeyi yok ederek durumu değiştirirler. - **_LOG0≤w ∧ w≤LOG4_** statik olarak çağrıldıysak günlük girdileri yayımlayamayız. Günlük işlem kodları [`LOG0` (A0)](https://www.evm.codes/#a0) ve [`LOG4` (A4)](https://www.evm.codes/#a4) arasında değişmektedir. Günlük işlem kodundan sonraki numara, günlük girdisinin kaç konu içerdiğini belirtir. - **_w=CALL ∧ μs[2]≠0_** Statikken başka bir sözleşme çağırabilirsiniz fakat ona ETH transfer edemezsiniz. @@ -228,7 +228,7 @@ Bakiyesini bulmamız gereken hesap: _μs[0] mod 2160_. Yı Eğer _σ[μs[0] mod 2160] ≠ ∅_ ise, bu adresle ilgili bilgi bulunduğu anlamına gelir. Bu durumda _σ[μs[0] mod 2160]b_, bu hesabın bakiyesidir. Eğer _σ[μs[0] mod 2160] = ∅_ ise, bu da adresin başlatılmadığını ve bakiyenin 0 olduğu anlamına gelir. Hesap bilgisi alanları listesini 4. sayfadaki 4.1. bölümünde bulabilirsiniz. -İkinci denklem olan _A'a ≡ Aa ∪ {μs[0] mod 2160}_, sıcak depolama (yakın zamanda erişilmiş ve muhtemelen önbellekte olan depolama) ile soğuk depolama (erişilmemiş ve muhtemelen daha yavaş ve alması daha pahalı olan depolama) arasındaki maliyet farkıyla alakalıdır. _Aa_, işlem tarafından önceden erişilmiş adreslerin listesidir, bu yüzden 8. sayfada 6.1. bölümde anlatıldığı üzere erişilmesi daha ucuz olmalıdır. [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929)'da bu konuyla ilgili daha fazla okuma yapabilirsiniz. +İkinci denklem olan _A'a ≡ Aa ∪ \{μs[0] mod 2160}_, sıcak depolama (yakın zamanda erişilmiş ve muhtemelen önbellekte olan depolama) ile soğuk depolama (erişilmemiş ve muhtemelen daha yavaş ve alması daha pahalı olan depolama) arasındaki maliyet farkıyla alakalıdır. _Aa_, işlem tarafından önceden erişilmiş adreslerin listesidir, bu yüzden 8. sayfada 6.1. bölümde anlatıldığı üzere erişilmesi daha ucuz olmalıdır. [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929)'da bu konuyla ilgili daha fazla okuma yapabilirsiniz. | Değer | Anımsatıcı | δ | α | Açıklama | | ----: | ---------- | --- | --- | --------------------------------------- | diff --git a/public/content/translations/tr/history/index.md b/public/content/translations/tr/history/index.md index f92e73551f0..e23fbf9582c 100644 --- a/public/content/translations/tr/history/index.md +++ b/public/content/translations/tr/history/index.md @@ -306,7 +306,7 @@ Muir Glacier çatallanması, [bomba değerine](/glossary/#difficulty-bomb) bir g Konstantinopolis çatalı: - [Hisse ispatı uygulanmadan](#beacon-chain-genesis) önce blokzincirin donmamasını sağladı. -- EVM. +- EVM deki belirli işlemlerin [gaz](/glossary/#gas) maliyetini optimize etti bir. - Henüz oluşturulmamış adreslerle etkileşim kurma yeteneğini ekledi. [Ethereum Vakfı'nın duyurusunu okuyun](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) diff --git a/public/content/translations/tr/roadmap/merge/index.md b/public/content/translations/tr/roadmap/merge/index.md index c185ecc8cf6..9bd6faf8373 100644 --- a/public/content/translations/tr/roadmap/merge/index.md +++ b/public/content/translations/tr/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Dapp ve akıllı sözleşme geliştiricileri" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -Birleşim, mutabakata değişikliklerle beraber geldi, bu değişiklikler şunlarla ilişkili olanları da içerir:< +Birleşim, mutabakata değişikliklerle beraber geldi, bu değişiklikler şunlarla ilişkili olanları da içerir:
                                • blok yapısı
                                • diff --git a/public/content/translations/tr/roadmap/merge/issuance/index.md b/public/content/translations/tr/roadmap/merge/issuance/index.md index dbb0dfbb791..178dc6a8e43 100644 --- a/public/content/translations/tr/roadmap/merge/issuance/index.md +++ b/public/content/translations/tr/roadmap/merge/issuance/index.md @@ -55,9 +55,9 @@ Toplam ETH arzı: **~120.520.000 ETH** (Birleşim gerçekleştiğinde Eylül 202 - **Yaklaşık %0.52** enflasyon oranı ile sonuçlanır (yıllık 620,5K/toplam 119,3M) -Toplam yıllık dağıtım oranı (Birleşim öncesi): ~%4,61 (%4,09 + %0,52)

                                  -Dağıtımın ~%88,7'i yürütüm katmanındaki madencilere gidiyordu (4,09/4,61 * 100)

                                  -~%11,3'i fikir birliği katmanındaki paydaşlara dağıtılıyordu (0,52/4,61 * 100) +Toplam yıllık dağıtım oranı (Birleşim öncesi): \~%4,61 (%4,09 + %0,52)

                                  +Dağıtımın \~%88,7'i yürütüm katmanındaki madencilere gidiyordu (4,09/4,61 * 100)

                                  +\~%11,3'i fikir birliği katmanındaki paydaşlara dağıtılıyordu (0,52/4,61 * 100)
                                  ## Birleşim sonrası (günümüz) {#post-merge} @@ -85,8 +85,8 @@ Daha fazla doğrulayıcı parasını çektikçe, hisselenmiş yüksek miktarda E - Fikir birliği katmanı dağıtımı: Yukardakiyle aynı şekilde %**~0,52** yıllıklaştırılmış dağıtım oranı (toplam 14 millyon hisselenmiş ETH) -Toplam yıllıklaştırılmış dağıtım oranı: ~%0,52

                                  -ETH dağıtımındaki net azalma: ~%88,7 ((%4,61 - %0,52)/%4,61 * 100) +Toplam yıllıklaştırılmış dağıtım oranı: \~%0,52

                                  +ETH dağıtımındaki net azalma: \~%88,7 ((%4,61 - %0,52)/%4,61 * 100)
                                  ## Yakma {#the-burn} diff --git a/public/content/translations/tr/roadmap/scaling/index.md b/public/content/translations/tr/roadmap/scaling/index.md index f517776d2b8..3407c96863c 100644 --- a/public/content/translations/tr/roadmap/scaling/index.md +++ b/public/content/translations/tr/roadmap/scaling/index.md @@ -44,7 +44,7 @@ Geçici blok verilerini ilerletmenin ikinci aşaması karmaşıktır çünkü to ## Güncel ilerleme {#current-progress} -Proto-Danksharding, 2024 yılının Mart ayında Cancun-Deneb ("Dencun") ağ yükseltmesi ile uygulanmaya alınacak olan bu yol haritasının ilk parçasıdır. **Tam Danksharding** ise yol haritasındaki diğer parçaların tamamlanmasına ihtiyaç duyduğundan <0>birkaç yıl daha uzaktadır. Toplama altyapısını merkeziyetsiz hale getirme işlemi muhtemelen kademeli bir süreç olacak, farklı toplamalar farklı işlemler inşa ediyor. Bu nedenle farklı hızlarda merkeziyetsizleşme gerçekleşecektir. +Proto-Danksharding, 2024 yılının Mart ayında Cancun-Deneb ("Dencun") ağ yükseltmesi ile uygulanmaya alınacak olan bu yol haritasının ilk parçasıdır. **Tam Danksharding** ise yol haritasındaki diğer parçaların tamamlanmasına ihtiyaç duyduğundan **birkaç yıl daha uzaktadır**. Toplama altyapısını merkeziyetsiz hale getirme işlemi muhtemelen kademeli bir süreç olacak, farklı toplamalar farklı işlemler inşa ediyor. Bu nedenle farklı hızlarda merkeziyetsizleşme gerçekleşecektir. [Dencun ağ yükseltmesine dair daha fazla bilgi](/roadmap/dencun/) diff --git a/public/content/translations/uk/roadmap/merge/index.md b/public/content/translations/uk/roadmap/merge/index.md index 68acc1e1438..3662c10117e 100644 --- a/public/content/translations/uk/roadmap/merge/index.md +++ b/public/content/translations/uk/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="Розробники децентралізованих програм і contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -Злиття супроводжувалося змінами у консенсусі, зокрема змінилися:< +Злиття супроводжувалося змінами у консенсусі, зокрема змінилися:
                                  • структура блоків
                                  • diff --git a/public/content/translations/yo/desci/index.md b/public/content/translations/yo/desci/index.md index ccf85f6630d..38b58838913 100644 --- a/public/content/translations/yo/desci/index.md +++ b/public/content/translations/yo/desci/index.md @@ -68,7 +68,7 @@ Awoṣe idiwon lọwọlọwọ fun imọ-ẹrọ igbeowosile ni pe awọn eniya Awọn iwadii ti fihan pe awọn panẹli atunyẹwo ifunni lowo ṣe iṣẹ ti ko dara ti yiyan awọn igbero ti o ga julọ bi awọn igbero kanna ti a fun si awọn panẹli oriṣiriṣi ni awọn abajade ti o yatọ pupọ. Bi igbeowosile ti di ohun to sowon diẹ sii, o ti di egbe kekere ti awọn oniwadi agba diẹ pẹlu awọn iṣẹ akanṣe ti ibile olọgbọn diẹ sii. Ipa naa ti ṣẹda ala-ilẹ igbeowo-ifigagbaga-giga, awọn iyanju aiṣedeede ti o nfa ati isọdọtun dina. -Web3 ni agbara lati ṣe idalọwọduro awoṣe igbeowosile fifọ yii nipa ṣiṣe idanwo pẹlu oriṣiriṣi awọn awoṣe iwuri ti o dagbasoke nipasẹ DAO ati Web3 ni gbooro. <0>Igbeowosile awọn ọja ti gbogbo eniyan pada sẹhin , <1> igbeowosile kuadiratiki, <2>DAO isejoba ati <3>tokenized ẹya imoriyajẹ diẹ ninu awọn irinṣẹ Web3 ti o le ṣe iyipada igbeowo imọ-jinlẹ. +Web3 ni agbara lati ṣe idalọwọduro awoṣe igbeowosile fifọ yii nipa ṣiṣe idanwo pẹlu oriṣiriṣi awọn awoṣe iwuri ti o dagbasoke nipasẹ DAO ati Web3 ni gbooro. \<0>Igbeowosile awọn ọja ti gbogbo eniyan pada sẹhin \, \<1> igbeowosile kuadiratiki\, \<2>DAO isejoba\ ati \<3>tokenized ẹya imoriya\jẹ diẹ ninu awọn irinṣẹ Web3 ti o le ṣe iyipada igbeowo imọ-jinlẹ. ### IP nini ati idagbasoke {#ip-ownership} diff --git a/public/content/translations/zh-tw/community/research/index.md b/public/content/translations/zh-tw/community/research/index.md index 8f95e0f1745..c2c7d8b91be 100644 --- a/public/content/translations/zh-tw/community/research/index.md +++ b/public/content/translations/zh-tw/community/research/index.md @@ -111,7 +111,7 @@ lang: zh-tw #### 近期研究 {#recent-research-2} - [排序者的 Arbitrum 公平排序](https://eprint.iacr.org/2021/1465) -- [ethresear.ch 二層網路](https://ethresear.ch/c/layer-2/32) +- [Ethresear.ch 二層網路](https://ethresear.ch/c/layer-2/32) - [以卷軸為中心的開發藍圖](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) - [L2Beat](https://l2beat.com/) @@ -189,7 +189,7 @@ lang: zh-tw - [錢包簡介](/wallets/) - [錢包安全簡介](/security/) -- [ethresear.ch 安全性](https://ethresear.ch/tag/security) +- [Ethresear.ch 安全性](https://ethresear.ch/tag/security) - [EIP-2938 帳戶抽象](https://eips.ethereum.org/EIPS/eip-2938) - [EIP-4337 帳戶抽象](https://eips.ethereum.org/EIPS/eip-4337) @@ -377,11 +377,11 @@ lang: zh-tw - [Wormhole 漏洞報告](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) - [遭駭以太坊合約事後分析列表](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191) -- [Rekt 新聞](https://twitter.com/RektHQ?s=20\&t=3otjYQdM9Bqk8k3n1a1Adg) +- [Rekt 新聞](https://twitter.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg) #### 近期研究 {#recent-research-19} -- [ethresear.ch 應用程式](https://ethresear.ch/c/applications/18) +- [Ethresear.ch 應用程式](https://ethresear.ch/c/applications/18) ### 技術堆疊 {#technology-stack} diff --git a/public/content/translations/zh-tw/community/support/index.md b/public/content/translations/zh-tw/community/support/index.md index 759a4577146..66918d4a9d7 100644 --- a/public/content/translations/zh-tw/community/support/index.md +++ b/public/content/translations/zh-tw/community/support/index.md @@ -24,7 +24,7 @@ lang: zh-tw ## 常見問題 {#faq} -### 我一直往錯的錢包傳送以太幣 {#wrong-wallet} +### 我將以太幣傳送到了錯誤的錢包 {#wrong-wallet} 在以太坊進行的傳送不可還原。 不幸的是,如你已經將以太幣傳送至錯的錢包,便無法追回這些資金。 沒有中心組織、實體或個體持有以太坊,這代表沒有人能夠逆轉交易。 因此,在傳送交易前請務必進行雙重核查。 diff --git a/public/content/translations/zh-tw/contributing/index.md b/public/content/translations/zh-tw/contributing/index.md index 05e04a5b221..b68cda7fb87 100644 --- a/public/content/translations/zh-tw/contributing/index.md +++ b/public/content/translations/zh-tw/contributing/index.md @@ -19,7 +19,7 @@ Ethereum.org 是一個開源專案,擁有超過 **12000 名**貢獻者,幫 - [處理未解決的問題](https://github.com/ethereum/ethereum-org-website/issues) – 我們確定為需要完成的工作 **設計** -- [幫助設計網站](/contributing/design/)設計師不論資歷,都可以為改進網站做出貢獻 +- [幫助設計網站](/contributing/design/) — 任何水平的設計者都可以為改進網站做出貢獻 **內容** - [建立/編輯內容](/contributing/#how-to-update-content) – 提議建立新頁面或對已有內容稍微改進 @@ -94,7 +94,7 @@ Ethereum.org 是一個開源專案,擁有超過 **12000 名**貢獻者,幫 ### 如何領取 1. 加入我們的 [Discord 伺服器](https://discord.gg/ethereum-org)。 -2. 將你貢獻內容的連結貼到 `#🥇 | proof-of-contribution` 頻道 +2. 將你貢獻內容的連結貼到 `#🥇 | proof-of-contribution` 頻道。 3. 等待我們團隊的成員向你發送前往你的鏈上成就代幣的連結。 4. 領取你的鏈上成就代幣! diff --git a/public/content/translations/zh-tw/contributing/translation-program/translators-guide/index.md b/public/content/translations/zh-tw/contributing/translation-program/translators-guide/index.md index 00c2a1f2bb6..78a31cf57c9 100644 --- a/public/content/translations/zh-tw/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/zh-tw/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Crowdin 有一個內建功能,在譯者即將出錯時發出警告。 在儲 ![link.png 的例子](./example-of-link.png) -連結也會以標籤的形式出現在源文本中(即 <0> ). 若你將滑鼠停留在標籤上,編輯器將顯示標籤的全部內容 - 有時候這些標籤將會代表連結。 +連結也會以標籤的形式出現在源文本中(即 `<0>` ``). 若你將滑鼠停留在標籤上,編輯器將顯示標籤的全部內容 - 有時候這些標籤將會代表連結。 從原文複製連結並且不要改變連結的順序是很重要的。 @@ -154,7 +154,7 @@ nonce - _不可翻譯的文字_ 原文還包含縮短的標籤,這類標籤只含有數字,這意味著標籤的功能不明顯。 你可以將滑鼠停留在這些標籤上,查看標籤的確切功能。 -在下面的例子中,可以看見滑鼠停留在標籤上時, <0> 會顯示標籤代表 ``,並且含有一個程式碼片段,因此標籤內的內容不應該翻譯。 +在下面的例子中,可以看見滑鼠停留在標籤上時, `<0>` 會顯示標籤代表 ``,並且含有一個程式碼片段,因此標籤內的內容不應該翻譯。 ![意義含糊的 tags.png 例子](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/zh-tw/dao/index.md b/public/content/translations/zh-tw/dao/index.md index 718a8a2c57c..9af3228a0f4 100644 --- a/public/content/translations/zh-tw/dao/index.md +++ b/public/content/translations/zh-tw/dao/index.md @@ -1,5 +1,6 @@ --- -title: 去中心化自治組織 (DAO) +title: 什麽是去中心化自治組織 (DAO)? +metaTitle: 什麽是去中心化自治組織 (DAO)? | 去中心化自治組織 description: 以太坊上的去中心化自治組織概要 lang: zh-tw template: use-cases diff --git a/public/content/translations/zh-tw/defi/index.md b/public/content/translations/zh-tw/defi/index.md index 53b5ab4ae2b..53e13bd1fca 100644 --- a/public/content/translations/zh-tw/defi/index.md +++ b/public/content/translations/zh-tw/defi/index.md @@ -1,5 +1,6 @@ --- title: 去中心化金融 (DeFi) +metaTitle: 甚麼是去中心化金融? | 去中心化金融的優點和作用 description: 以太坊生態系之去中心化金融概要 lang: zh-tw template: use-cases @@ -168,7 +169,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 要在傳統金融體系內完成以上操作,你需要鉅額資金。 這種財產創造策略只有已經擁有財富的人才能操作。 閃電貸的例子告訴我們,未來「有錢」不見得是「賺錢」的先決條件。 - + 深入了解閃電貸 @@ -324,7 +325,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 3. 協定:提供功能的[智慧型合約](/glossary/#smart-contract),例如實現去中心化資產借貸的服務。 4. [應用程式](/dapps/):我們用以管理及存取協定的產品。 -注意:很多去中心化金融使用 [ERC-20 標準](/glossary/#erc-20)。 去中心化金融應用程式會使用一種稱為包裝以太幣(WETH) 的以太幣包裝程式。 [了解更多關於包裝以太幣的資訊](/wrapped-eth)。 +注意:很多去中心化金融使用 [ERC-20 標準](/glossary/#erc-20)。 去中心化金融 (DeFi) 中的應用程式使用一種包裝的以太幣,稱爲包裝以太幣 (WETH)。 [了解更多關於包裝以太幣的資訊](/wrapped-eth)。 ## 建構去中心化金融 {#build-defi} @@ -358,4 +359,4 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 - \ No newline at end of file + diff --git a/public/content/translations/zh-tw/developers/docs/apis/javascript/index.md b/public/content/translations/zh-tw/developers/docs/apis/javascript/index.md index 6b991e4f4e5..4b74d4a50c2 100644 --- a/public/content/translations/zh-tw/developers/docs/apis/javascript/index.md +++ b/public/content/translations/zh-tw/developers/docs/apis/javascript/index.md @@ -14,7 +14,7 @@ lang: zh-tw ## 基本資訊 {#prerequisites} -除了瞭解 JavaScript 之外,瞭解<0>以太坊堆疊和<1>以太坊用戶端可能也會有所幫助。 +除了瞭解 JavaScript 之外,瞭解[以太坊堆疊](/developers/docs/ethereum-stack/)和[以太坊用戶端](/developers/docs/nodes-and-clients/)可能也會有所幫助。 ## 為何使用資料圖書庫 {#why-use-a-library} diff --git a/public/content/translations/zh-tw/developers/docs/apis/json-rpc/index.md b/public/content/translations/zh-tw/developers/docs/apis/json-rpc/index.md index c22d564ca1c..d0506c44f8a 100644 --- a/public/content/translations/zh-tw/developers/docs/apis/json-rpc/index.md +++ b/public/content/translations/zh-tw/developers/docs/apis/json-rpc/index.md @@ -95,7 +95,7 @@ curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","metho ## Gossip、State、History {#gossip-state-history} -少數重要的 JSON-RPC 方法需要來自以太坊網路的資料,這些資料分屬於三個種類:<0>Gossip、State 和 History。 利用這些章節中的連結移動至每個方法,或利用目錄探索完整的方法清單。 +少數重要的 JSON-RPC 方法需要來自以太坊網路的資料,這些資料分屬於三個種類:_Gossip、State 和 History_。 利用這些章節中的連結移動至每個方法,或利用目錄探索完整的方法清單。 ### Gossip 方法 {#gossip-methods} @@ -386,6 +386,8 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1} 傳回用戶端的 coinbase 地址。 +> **注意:**此方法已於 **v1.14.0** 棄用並不再支援。 嘗試採用此方法將會出現「不支援此方法」的錯誤。 + **參數** 無 @@ -1026,7 +1028,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{see above}] **參數** -請參閱 <0>eth_call 參數,但所有屬性都是可選的。 假如沒有明確說明燃料限制,Geth 將使用來自待處理區塊的區塊燃料限制作為上限。 因此,當燃料量高於待處理區塊燃料限制時,傳回的預估值可能不足以執行呼叫或交易。 +請參閱 [eth_call](#eth_call) 參數,但所有屬性都是可選的。 假如沒有明確說明燃料限制,Geth 將使用來自待處理區塊的區塊燃料限制作為上限。 因此,當燃料量高於待處理區塊燃料限制時,傳回的預估值可能不足以執行呼叫或交易。 **傳回** @@ -1649,10 +1651,10 @@ geth --http --dev console 2>>geth.log 這將在 `http://localhost:8545` 上啟動 HTTP 遠端程序呼叫介面。 -我們可以使用 [curl](https://curl.se) 擷取 Coinbase 地址和餘額來驗證介面正在執行。 請注意,這些範例中的資料與你的本地節點有所不同。 如果你想嘗試這些命令,請將第二個 curl 請求中的請求參數替換為第一個請求返回的結果。 +我們可以透過使用 [ curl](https://curl.se) 取得 Coinbase 地址(獲取帳戶陣列中的第一個地址)和餘額,驗證介面是否正在執行。 請注意,這些範例中的資料與你的本地節點有所不同。 如果你想嘗試這些命令,請將第二個 curl 請求中的請求參數替換為第一個請求返回的結果。 ```bash -curl --data '{"jsonrpc":"2.0","method":"eth_coinbase", "id":1}' -H "Content-Type: application/json" localhost:8545 +curl --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[]", "id":1}' -H "Content-Type: application/json" localhost:8545 {"id":1,"jsonrpc":"2.0","result":["0x9b1d35635cc34752ca54713bb99d38614f63c955"]} curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0x9b1d35635cc34752ca54713bb99d38614f63c955", "latest"], "id":2}' -H "Content-Type: application/json" localhost:8545 diff --git a/public/content/translations/zh-tw/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/zh-tw/developers/docs/data-and-analytics/block-explorers/index.md index f31b67ad51f..83b7a023d4c 100644 --- a/public/content/translations/zh-tw/developers/docs/data-and-analytics/block-explorers/index.md +++ b/public/content/translations/zh-tw/developers/docs/data-and-analytics/block-explorers/index.md @@ -26,6 +26,7 @@ sidebarDepth: 3 - [EthVM](https://www.ethvm.com/) - [OKLink](https://www.oklink.com/eth) - [Rantom](https://rantom.app/) +- [Ethseer](https://ethseer.io) ## 開源工具 {#open-source-tools} @@ -239,8 +240,8 @@ sidebarDepth: 3 - [Etherscan](https://etherscan.io/) - 可用於擷取以太坊主網及 Goerli 測試網資料的區塊瀏覽器 - [3xpl](https://3xpl.com/ethereum) - 一個允許下載其資料集的無廣告開源以太坊瀏覽器 -- [Beaconcha.in](https://beaconcha.in/) -用於以太坊主網及 Goerli 測試網的開源區塊瀏覽器 -- <0>Blockchair -- 最私密的以太坊瀏覽器。 也用於排序和篩選(記憶體池)資料 +- [Beaconcha.in](https://beaconcha.in/) - 用於以太坊主網及 Goerli 測試網的開源區塊瀏覽器 +- [Blockchair](https://blockchair.com/ethereum) - 最私密的以太坊瀏覽器。 也用於排序和篩選(記憶體池)資料 - [Etherchain](https://www.etherchain.org/) - 以太坊主網的區塊瀏覽器 - [Ethplorer](https://ethplorer.io/) - 專為以太坊主網及 Kovan 測試網代幣打造的區塊瀏覽器 - [Rantom](https://rantom.app/) - 方便使用的開源去中心化金融及非同質化代幣交易檢視器,可提供詳細的訊息 diff --git a/public/content/translations/zh-tw/developers/docs/data-and-analytics/index.md b/public/content/translations/zh-tw/developers/docs/data-and-analytics/index.md index ad2ae77406e..833749178ca 100644 --- a/public/content/translations/zh-tw/developers/docs/data-and-analytics/index.md +++ b/public/content/translations/zh-tw/developers/docs/data-and-analytics/index.md @@ -34,7 +34,7 @@ lang: zh-tw ## Dune Analytics {#dune-analytics} -[Dune Analytics](https://dune.com/) 將區塊鏈資料預處理成關聯資料庫(DuneSQL)表格,允許使用者使用 SQL 查詢區塊鏈資料並根據查詢結果建立儀表板。 鏈上資料組織成 4 個原始表格:`blocks`、`transactions`、(事件)`logs` 和(呼叫)`traces`。 常見的合約和協定已被解碼,而每個合約和協定都有自己的事件和呼叫表格集。 這些事件和呼叫表格被進一步處理並按協定類型組織成抽象表格,例如去中心化交易所、借貸、穩定幣等。 +[Dune Analytics](https://dune.com/) 將區塊鏈資料預處理成關聯資料庫 (DuneSQL) 表格,允許使用者使用 SQL 查詢區塊鏈資料並根據查詢結果建立儀表板。 鏈上資料組織成 4 個原始表格:`blocks`、`transactions`、(事件)`logs` 和(呼叫)`traces`。 常見的合約和協定已被解碼,而每個合約和協定都有自己的事件和呼叫表格集。 這些事件和呼叫表格被進一步處理並按協定類型組織成抽象表格,例如去中心化交易所、借貸、穩定幣等。 ## SubQuery 網路 {#subquery-network} diff --git a/public/content/translations/zh-tw/developers/docs/development-networks/index.md b/public/content/translations/zh-tw/developers/docs/development-networks/index.md index bd407faf2c9..9654603c7db 100644 --- a/public/content/translations/zh-tw/developers/docs/development-networks/index.md +++ b/public/content/translations/zh-tw/developers/docs/development-networks/index.md @@ -34,8 +34,8 @@ lang: zh-tw Hardhat 網路內建了 Hardhat,這是一個專業以太坊開發環境。 -- [官網](https://hardhat.org/) -- [GitHub](https://github.com/nomiclabs/hardhat) +- [網站](https://hardhat.org/) +- [Github](https://github.com/nomiclabs/hardhat) ### 本地信標鏈 {#local-beacon-chains} @@ -59,7 +59,7 @@ Kurtosis 是一個用於多容器測試環境的構建系統,讓開發者能 以太坊 Kurtosis 套件可用於透過 Docker 或 Kubernetes 快速具現化一個可參數化、高擴展性的私人以太坊測試網。 此套件支援所有主要的執行層 (EL) 和共識層 (CL) 用戶端。 Kurtosis 從容處理代表網路的所有本地端口映射和服務連線,以用於與以太坊核心基礎設施相關的驗證和測試工作流程。 - [以太坊網路套件](https://github.com/kurtosis-tech/ethereum-package) -- [網站](https://www.kurtosis.com/) +- [官網](https://www.kurtosis.com/) - [GitHub](https://github.com/kurtosis-tech/kurtosis) - [文件](https://docs.kurtosis.com/) diff --git a/public/content/translations/zh-tw/developers/docs/ethereum-stack/index.md b/public/content/translations/zh-tw/developers/docs/ethereum-stack/index.md index 6cd6a777150..6521b5a8681 100644 --- a/public/content/translations/zh-tw/developers/docs/ethereum-stack/index.md +++ b/public/content/translations/zh-tw/developers/docs/ethereum-stack/index.md @@ -10,7 +10,7 @@ lang: zh-tw ## 等級 1:以太坊虛擬機器 {#ethereum-virtual-machine} -[以太坊虛擬機器](/developers/docs/evm/)是以太坊上智慧型合約的執行階段環境。 以太坊區塊鏈上的所有智慧型合約和狀態變更均由<0>交易執行。 以太坊虛擬機器負責處理以太坊網路上的所有交易。 +[以太坊虛擬機器](/developers/docs/evm/)是以太坊上智慧型合約的執行階段環境。 以太坊區塊鏈上的所有智慧型合約和狀態變更均由[交易](/developers/docs/transactions/)執行。 以太坊虛擬機器負責處理以太坊網路上的所有交易。 與任何虛擬機器一樣,以太坊虛擬機器在執行程式碼和執行機器(以太坊節點)之間建立了一個抽象層。 目前,以太坊虛擬機器運行在分佈於全球的數千個節點上。 diff --git a/public/content/translations/zh-tw/developers/docs/frameworks/index.md b/public/content/translations/zh-tw/developers/docs/frameworks/index.md index c4e6a8951d6..47bdd2d0040 100644 --- a/public/content/translations/zh-tw/developers/docs/frameworks/index.md +++ b/public/content/translations/zh-tw/developers/docs/frameworks/index.md @@ -132,6 +132,14 @@ lang: zh-tw - [GitHub](https://github.com/Ackee-Blockchain/wake) - [VS Code 擴充功能](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity) +**Veramo -** **_開放原始碼、模組化且不受限的框架,讓去中心化應用程式開發者能輕鬆地將去中心化身分和可驗證憑證整合到他們的應用程式中。_** + +- [首頁](https://veramo.io/) +- [文件](https://veramo.io/docs/basics/introduction) +- [GitHub](https://github.com/uport-project/veramo) +- [Discord](https://discord.com/invite/FRRBdjemHV) +- [節點包裹管理器 (NPM) 包裹](https://www.npmjs.com/package/@veramo/core) + ## 了解更多 {#further-reading} _知道對你有幫助的社群資源嗎? 請編輯此頁面並新增資源!_ diff --git a/public/content/translations/zh-tw/developers/docs/gas/index.md b/public/content/translations/zh-tw/developers/docs/gas/index.md index 2f8605422bf..daee7b7963f 100644 --- a/public/content/translations/zh-tw/developers/docs/gas/index.md +++ b/public/content/translations/zh-tw/developers/docs/gas/index.md @@ -1,5 +1,6 @@ --- title: 燃料和費用 +metaTitle: "以太坊燃料和費用:技術概覽" description: lang: zh-tw --- diff --git a/public/content/translations/zh-tw/developers/docs/ides/index.md b/public/content/translations/zh-tw/developers/docs/ides/index.md index 7d3b74f6160..f5c0d085180 100644 --- a/public/content/translations/zh-tw/developers/docs/ides/index.md +++ b/public/content/translations/zh-tw/developers/docs/ides/index.md @@ -37,7 +37,6 @@ lang: zh-tw **Visual Studio Code -** **_專業跨平台整合開發環境,獲以太坊官方支援_** - [Visual Studio Code](https://code.visualstudio.com/) -- [Azure Blockchain Workbench](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-azure-blockchain.azure-blockchain-workbench?tab=Overview) - [程式碼範例](https://github.com/Azure-Samples/blockchain/blob/master/blockchain-workbench/application-and-smart-contract-samples/readme.md) - [GitHub](https://github.com/microsoft/vscode) diff --git a/public/content/translations/zh-tw/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/zh-tw/developers/docs/networking-layer/network-addresses/index.md index 92ee8ba94d4..bf3f5db0b50 100644 --- a/public/content/translations/zh-tw/developers/docs/networking-layer/network-addresses/index.md +++ b/public/content/translations/zh-tw/developers/docs/networking-layer/network-addresses/index.md @@ -35,6 +35,6 @@ Enode 使得以太坊節點可以用統一資源定位器地址格式識別。 ## 衍生閱讀 {#further-reading} -- [EIP-778:以太坊節點記錄 (ENR)](https://eips.ethereum.org/EIPS/eip-778) +- [EIP-778:以太坊節點紀錄 (ENR)](https://eips.ethereum.org/EIPS/eip-778) - [以太坊中的網路地址](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) -- [LibP2P:Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) +- [LibP2P:Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/public/content/translations/zh-tw/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/zh-tw/developers/docs/networking-layer/portal-network/index.md index 96f763ad26a..2e6e0a8b394 100644 --- a/public/content/translations/zh-tw/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/zh-tw/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ JSON-RPC 應用程式介面也不是輕量級用戶端資料請求的理想選 - 降低對中心化提供者的依存 - 降低網際網路頻寬的使用 - 同步處理減到最少或零 -- 可存取資源有限的裝置(<1 GB RAM,<100 MB 磁碟空間,1 個 CPU) +- 可存取資源有限的裝置(\<1 GB RAM,\<100 MB 磁碟空間,1 個 CPU) 下圖顯示可由入口網路提供的現存用戶端功能,如此讓使用者能在低資源裝置上存取這些功能。 diff --git a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/archive-nodes/index.md index 32e2fbefaa5..cf9cb2e577a 100644 --- a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ sidebarDepth: 2 永遠在用戶端文檔中確認滿足了特定模式的硬體要求。 對歸檔節點來說,最大的需求是磁碟空間。 取決於用戶端的不同,可能從 3TB 到 12TB 都有。 雖然硬碟被認為可能是儲存大量資料的更好辦法,但同步資料和不斷地更新鏈頭需要固態硬碟。 [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) 硬碟足夠好,但它要有可靠的品質,至少要 [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences)。 磁碟可以安裝在有足夠插槽的桌機或伺服器中。 這些專用設備適合需要長時間正常運行的節點。 在筆電上運行也是完全可行的,但便攜性將帶來額外的成本。 -所有的資料都需要放入一個磁碟區中,所以磁碟必須合併,如 [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) 或 [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html)。 或許 [ZFS](https://en.wikipedia.org/wiki/ZFS) 也是值得考慮的選擇,因為它支援「寫入時複製」,確保了資料正確寫入磁碟而沒有任何低階錯誤。 +所有的資料都需要放入一個磁碟區中,所以磁碟必須合併,如 [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) 或 LVM。 或許 [ZFS](https://en.wikipedia.org/wiki/ZFS) 也是值得考慮的選擇,因為它支援「寫入時複製」,確保了資料正確寫入磁碟而沒有任何低階錯誤。 關於更多避免資料庫損毀的穩定安全方法,特別是專業設定中,如果你的系統支援,可以考慮 [ECC 記憶體](https://en.wikipedia.org/wiki/ECC_memory)。 RAM 的大小一般建議和全節點一樣,但更多的 RAM 可以加速同步速度。 diff --git a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md index ac17b83df41..f9ac4637f4f 100644 --- a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md @@ -79,6 +79,8 @@ sidebarDepth: 2 [Prysm](https://docs.prylabs.network/docs/getting-started) +[Grandine](https://docs.grandine.io/) + 技術性使用者可以透過為小眾用戶端撰寫更多教學和文檔,並鼓勵其節點營運的對等節點從主導用戶端遷出,以幫助加速此流程。 [clientdiversity.org](https://clientdiversity.org/) 上有切換到小眾共識用戶端的指南。 ## 用戶端多樣性儀表板 {#client-diversity-dashboards} diff --git a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/index.md b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/index.md index 0a6f92383cb..3498a46ae4c 100644 --- a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/index.md +++ b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/index.md @@ -171,7 +171,7 @@ Nethermind 也為高級使用者提供[詳細文件](https://docs.nethermind.io) ### Reth {#reth} -Reth(Rust Ethereum 的簡稱)是以太坊全節點的實作,致力於達成使用者友善、高度模組化、快速高效等目標。 Reth 最初由 Paradigm 開發並推動,且使用了 Apache 和 MIT 授權。 +Reth(Rust Etherum 的簡稱)是以太坊全節點的實作,致力於達成使用者友善、高度模組化、快速高效等目標。 Reth 最初由 Paradigm 開發並推動,且使用了 Apache 和 MIT 授權。 Reth 是生產就緒的執行用戶端,且適用於質押或高正常運作時間的服務等重要任務上。 在一些高效能、高利潤下的使用案例中表現優秀,如遠端程序呼叫、最大可提取價值、索引、模擬和點對點活動等。 diff --git a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/run-a-node/index.md index e8f907d7bb1..786cf698e13 100644 --- a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/run-a-node/index.md +++ b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/run-a-node/index.md @@ -311,7 +311,7 @@ reth node \ --authrpc.port 8551 ``` -請參閱[設定 Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) 以瞭解有關預設資料目錄的更多資訊。 [Besu 文件](https://reth.rs/run/mainnet.html)包含了額外的選項及設定細節。 +查看[設定 Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) 以了解更多有關預設資料目錄的資訊。 [Besu 文件](https://reth.rs/run/mainnet.html)包含了額外的選項及設定細節。 #### 啟動共識用戶端 {#starting-the-consensus-client} diff --git a/public/content/translations/zh-tw/developers/docs/programming-languages/elixir/index.md b/public/content/translations/zh-tw/developers/docs/programming-languages/elixir/index.md new file mode 100644 index 00000000000..cbc77daa67a --- /dev/null +++ b/public/content/translations/zh-tw/developers/docs/programming-languages/elixir/index.md @@ -0,0 +1,55 @@ +--- +title: Elixir 開發者適用的以太坊資源 +description: 學習如何使用基於 Elixir 的專案和工具進行以太坊開發。 +lang: zh-tw +incomplete: false +--- + +學習如何使用基於 Elixir 的專案和工具進行以太坊開發。 + +使用以太坊建立去中心化應用程式(或稱「dapp」),發揮加密貨幣和區塊鏈技術的優勢。 這些去中心化應用程式是無需信任的,這意味著一旦部署到以太坊後,就會始終按程式執行。 它們可以控制數位資產來建立新型的金融應用程式。 這些應用程式是去中心化的,這意味著任何單一實體或個人都無法控制它們,並且應用程式幾乎不可能被審查。 + +## 智慧型合約及 Solidity 程式語言入門 {#getting-started-with-smart-contracts-and-solidity} + +**邁出將 Elixir 與以太坊整合的第一步** + +需要先看看更基礎的入門指南? 請查看 [ethereum.org/learn](/learn/) 或 [ethereum.org/developers](/developers/)。 + +- [詳解區塊鏈](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [了解智慧型合約](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [撰寫你的第一個智慧型合約](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [學習如何編譯及部署 Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## 初學者文章 {#beginner-articles} + +- [徹底理解以太坊帳戶](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) +- [Ethers — 適用於 Elixir 的一流以太坊 Web3 程式庫](https://medium.com/@alisinabh/announcing-ethers-a-first-class-ethereum-web3-library-for-elixir-1d64e9409122) + +## 中階文章 {#intermediate-articles} + +- [如何使用 Elixir 簽署原始以太坊合約交易](https://kohlerjp.medium.com/how-to-sign-raw-ethereum-contract-transactions-with-elixir-f8822bcc813b) +- [以太坊智能合約和 Elixir](https://medium.com/agile-alpha/ethereum-smart-contracts-and-elixir-c7c4b239ddb4) + +## Elixir 專案和工具 {#elixir-projects-and-tools} + +### 使用中 {#active} + +- [block_keys](https://github.com/ExWeb3/block_keys) - _以 Elixir 實現 BIP32 及 BIP44(多帳戶分層確定性錢包)_ +- [ethereumex](https://github.com/mana-ethereum/ethereumex) - _適用於以太坊區塊鏈的 Elixir JSON-RPC 用戶端_ +- [ethers](https://github.com/ExWeb3/elixir_ethers) - _一個完整的 Web3 函式庫,使用 Elixir 來與以太坊智能合約互動_ +- [ethers_kms](https://github.com/ExWeb3/elixir_ethers_kms) - _適用於 Ethers 的金鑰管理服務簽署者程式庫(透過 AWS 金鑰管理服務簽署交易)_ +- [ex_abi](https://github.com/poanetwork/ex_abi) - _以 Elixir 實現的以太坊應用程式二進位介面解析器/解碼器/編碼器_ +- [ex_keccak](https://github.com/ExWeb3/ex_keccak) - _一個用於計算 Keccak SHA3-256 雜湊的 Elixir 程式庫,使用 NIF 建置的 tiny-keccak Rust Crate_ +- [ex_rlp](https://github.com/mana-ethereum/ex_rlp) - _透過 Elixir 實作的以太坊 RLP(遞迴長度前置詞)編碼_ + +### 已封存/不再維護 {#archived--no-longer-maintained} + +- [eth](https://hex.pm/packages/eth) - _適用於 Elixir 的以太坊工具_ +- [exw3](https://github.com/hswick/exw3) - _適用於 Elixir 的高階以太坊遠端程序呼叫用戶端_ +- [mana](https://github.com/mana-ethereum/mana) - _以 Elixir 撰寫的以太坊全節點實作_ + +想取得更多資源? 請查看[開發者首頁](/developers/)。 + +## Elixir 社群貢獻者 {#elixir-community-contributors} + +[Elixir 在 Slack 上的 #ethereum 頻道](https://elixir-lang.slack.com/archives/C5RPZ3RJL)是一個成長快速的社群,專門討論以上任何專案和相關主題。 diff --git a/public/content/translations/zh-tw/developers/docs/programming-languages/index.md b/public/content/translations/zh-tw/developers/docs/programming-languages/index.md index a18a3d8dacd..7898868e490 100644 --- a/public/content/translations/zh-tw/developers/docs/programming-languages/index.md +++ b/public/content/translations/zh-tw/developers/docs/programming-languages/index.md @@ -15,6 +15,7 @@ lang: zh-tw - [Dart開發者適用的 Ethereum 資源](/developers/docs/programming-languages/dart/) - [Delphi 開發者適用的Ethereum 資源](/developers/docs/programming-languages/delphi/) - [.NET 開發者適用的 Ethereum 資源](/developers/docs/programming-languages/dot-net/) +- [Elixir 開發者適用的以太坊資源](/developers/docs/programming-languages/elixir/) - [Go 開發者適用的以太坊資源](/developers/docs/programming-languages/golang/) - [Java 開發者適用的 Ethereum 資源](/developers/docs/programming-languages/java/) - [JavaScript 開發者適用的 Ethereum 資源](/developers/docs/programming-languages/javascript/) diff --git a/public/content/translations/zh-tw/developers/docs/programming-languages/java/index.md b/public/content/translations/zh-tw/developers/docs/programming-languages/java/index.md index ed569f0a4b6..7ed8da743d6 100644 --- a/public/content/translations/zh-tw/developers/docs/programming-languages/java/index.md +++ b/public/content/translations/zh-tw/developers/docs/programming-languages/java/index.md @@ -46,7 +46,7 @@ incomplete: true ## 進階使用模式 {#advanced-use-patterns} -- [使用 Eventeum 建置 Java 智慧型合約資料快取](https://kauri.io/article/fe81ee9612eb4e5a9ab72790ef24283d/using-eventeum-to-build-a-java-smart-contract-data-cache) +- [使用 Eventeum 建置 Java 智慧型合約資料快取](使用 Eventeum 構建Java 智慧型合約數據緩存) ## Java 專案和工具 {#java-projects-and-tools} diff --git a/public/content/translations/zh-tw/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/zh-tw/developers/docs/smart-contracts/formal-verification/index.md index c9bcc67ea11..8ccf8da3971 100644 --- a/public/content/translations/zh-tw/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/zh-tw/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ lang: zh-tw ### 霍爾式屬性 {#hoare-style-properties} -[霍爾邏輯](https://en.wikipedia.org/wiki/Hoare_logic)提供了一套形式化規則,用於推理包括智慧型合約等程式的正確性。 霍爾式屬性使用霍爾三元組 {_P_}_c_{_Q_} 表示,其中 _c_ 是一個程式,_P_ 和 _Q_ 為_c_(即程式)的狀態述詞,正式描述分別為_前置條件_和_後置條件_。 +[霍爾邏輯](https://en.wikipedia.org/wiki/Hoare_logic)提供了一套形式化規則,用於推理包括智慧型合約等程式的正確性。 A Hoare-style property is represented by a Hoare triple \{_P_}_c_\{_Q_}, where _c_ is a program and _P_ and _Q_ are predicates on the state of the _c_ (i.e., the program), formally described as _preconditions_ and _postconditions_, respectively. 前置條件是描述正確執行函式所需條件的述詞;叫用合約的使用者必須滿足該要求。 後置條件是描述函式正確執行時所建立之條件的述詞;使用者在叫用函式後可以預計該條件為 true。 在霍爾邏輯中,_不變量_是指透過執行函式保留的述詞(即,它不會改變)。 @@ -212,16 +212,16 @@ function safe_add(uint x, uint y) returns(uint z){ ### 用於建立形式化規範的規範語言 {#specification-languages} -**Act** - _*Act 允許指定存儲更新、前置/後置條件以及合約不變量。 其工具套件還具有證明後端,可透過 Coq、SMT 求解器或 hevm 來證明許多屬性。** +**Act** - _Act 允許指定存儲更新、前置/後置條件以及合約不變量。 其工具套件還具有證明後端,可透過 Coq、SMT 求解器或 hevm 來證明許多屬性。_ - [GitHub](https://github.com/ethereum/act) - [文檔](https://ethereum.github.io/act/) -**Scribble** - _*Scribble 將以 Scribble 規範語言編寫的程式碼注解轉換爲用於檢查規範的具體斷言。** +**Scribble** - _Scribble 將以 Scribble 規範語言編寫的程式碼注解轉換爲用於檢查規範的具體斷言。_ - [文件](https://docs.scribble.codes/) -**Dafny** — _*Dafny 是一種驗證就緒的程式設計語言,仰賴高階註釋來推理和證明程式碼的正確性。** +**Dafny** — _Dafny 是一種驗證就緒的程式設計語言,仰賴高階註釋來推理和證明程式碼的正確性。_ - [GitHub](https://github.com/dafny-lang/dafny) @@ -232,15 +232,15 @@ function safe_add(uint x, uint y) returns(uint z){ - [網站](https://www.certora.com/) - [文檔](https://docs.certora.com/en/latest/index.html) -**Solidity SMTChecker** - _* Solidity 的 SMTChecker 是一個基於 SMT(可滿足性模數理論)和 Horn 求解的内置模型檢查器。 它在編譯期間確認合約的源程式碼是否符合規範,並以靜態方式檢查安全屬性的違反情況。** +**Solidity SMTChecker** - _Solidity 的 SMTChecker 是一個基於 SMT(可滿足性模數理論)和 Horn 求解的内置模型檢查器。 它在編譯期間確認合約的源程式碼是否符合規範,並以靜態方式檢查安全屬性的違反情況。_ - [GitHub](https://github.com/ethereum/solidity) -**solc-verify** - _*solc-verify 是 Solidity 編譯器的一個延伸版本,可以使用注解和模組化程式驗證在 Solidity 程式碼上執行自動形式化驗證。** +**solc-verify** - _solc-verify 是 Solidity 編譯器的一個延伸版本,可以使用注解和模組化程式驗證在 Solidity 程式碼上執行自動形式化驗證。_ - [GitHub](https://github.com/SRI-CSL/solidity) -**KEVM** - _*KEVM 是用 K 框架編寫的以太坊虛擬機 (EVM) 的形式化語義。 KEVM 是可執行的,並且可以用可達性邏輯來證明某些與屬性相關的斷言。** +**KEVM** - _KEVM 是用 K 框架編寫的以太坊虛擬機 (EVM) 的形式化語義。 KEVM 是可執行的,並且可以用可達性邏輯來證明某些與屬性相關的斷言。_ - [GitHub](https://github.com/runtimeverification/evm-semantics) - [文檔](https://jellopaper.org/) @@ -259,16 +259,16 @@ function safe_add(uint x, uint y) returns(uint z){ ### 用於偵測智慧型合約中易受攻擊模式的基於符號執行的工具 {#symbolic-execution-tools} -**Manticore** – _*一種基於符號執行的以太坊虛擬機位元組碼分析工具*。* +**Manticore** – _一種基於符號執行的以太坊虛擬機位元組碼分析工具。_ - [GitHub](https://github.com/trailofbits/manticore) - [文檔](https://github.com/trailofbits/manticore/wiki) -**hevm** - _*hevm 是用於以太坊虛擬機位元組碼的符號執行引擎和等價性檢查器。** +**hevm** - _hevm 是用於以太坊虛擬機位元組碼的符號執行引擎和等價性檢查器。_ - [GitHub](https://github.com/dapphub/dapptools/tree/master/src/hevm) -**Mythril** - _用於檢測以太坊智慧型合約漏洞的符號執行工具_ +**Mythril** - _用於檢測以太坊智慧型合約漏洞的符號執行工具。_ - [GitHub](https://github.com/ConsenSys/mythril-classic) - [文檔](https://mythril-classic.readthedocs.io/en/develop/) diff --git a/public/content/translations/zh-tw/developers/docs/smart-contracts/security/index.md b/public/content/translations/zh-tw/developers/docs/smart-contracts/security/index.md index c22b00206ef..d33c0d53574 100644 --- a/public/content/translations/zh-tw/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/zh-tw/developers/docs/smart-contracts/security/index.md @@ -563,7 +563,7 @@ contract Attack { - **[智慧型合約安全性驗證標準](https://github.com/securing/SCSVS)** - _適用於開發者、架構師、安全性審查者和廠商的標準化智慧型合約安全性 14 點檢查清單。_ -- **[學習智慧型合約安全與審核](https://updraft.cyfrin.io/courses/security)** - _出色的智慧型合約安全與審核課程,為希望提升安全最佳做法並成為安全研究人員的智慧型合約開發人員而設。_ +- **[學習智慧型合約安全與審核](https://updraft.cyfrin.io/courses/security) - _出色的智慧型合約安全與審核課程,為希望提升安全最佳做法並成為安全研究人員的智慧型合約開發人員而設。_ ### 關於智慧型合約安全性的使用教學 {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/zh-tw/developers/docs/smart-contracts/testing/index.md b/public/content/translations/zh-tw/developers/docs/smart-contracts/testing/index.md index 3fc840a8536..a355dd67def 100644 --- a/public/content/translations/zh-tw/developers/docs/smart-contracts/testing/index.md +++ b/public/content/translations/zh-tw/developers/docs/smart-contracts/testing/index.md @@ -130,7 +130,7 @@ function auctionEnd() external { ##### 3 計算程式碼覆蓋率 -[程式碼覆蓋率](https://en.m.wikipedia.org/wiki/Code_coverage)是一種測試指標,用於追蹤在測試過程中執行的程式碼分支、行和陳述式的數量。 測試應該覆蓋足夠多的程式碼,否則你可能會遭遇「漏報」,即合約通過了所有測試,但漏洞依然存在于程式碼中。 但是,透過覆蓋足夠多的程式碼,就可以確保智慧型合約中的所有陳述式/函式都經過充分的正確性測試。 +[程式碼覆蓋率](https://en.m.wikipedia.org/wiki/Code_coverage)是一種測試指標,用於追蹤在測試過程中執行的程式碼分支、行和陳述式的數量。 測試應該具有良好的程式碼覆蓋率,以最大程度地減少未經測試漏洞的風險。 如果沒有充足的程式碼覆蓋率,你可能會因爲所有測試都通過了而誤認爲你的合約是安全的,而未經測試的程式碼路徑中仍存在漏洞。 但是,透過覆蓋足夠多的程式碼,就可以確保智慧型合約中的所有陳述式/函式都經過充分的正確性測試。 ##### 4 使用精心開發的測試框架 diff --git a/public/content/translations/zh-tw/developers/docs/storage/index.md b/public/content/translations/zh-tw/developers/docs/storage/index.md index bcca43bae6c..8fc5397730a 100644 --- a/public/content/translations/zh-tw/developers/docs/storage/index.md +++ b/public/content/translations/zh-tw/developers/docs/storage/index.md @@ -88,7 +88,6 @@ SWARM 是一種去中心化的資料儲存和分發技術,具有儲存激勵 無「認識客戶」之去中心化工具: -- Züs(實作非 KYC 版本) - Skynet - Arweave - Filecoin @@ -145,7 +144,7 @@ SWARM 是一種去中心化的資料儲存和分發技術,具有儲存激勵 - [文件](https://docs.arweave.org/info/) - [Arweave](https://github.com/ArweaveTeam/arweave/) -**Züs - _Züs 是具有分片和 blobber 的權益證明去中心化存儲平台。_** +**Züs - _Züs 是具有分片和 Blobber 的權益證明去中心化存儲平台。_** - [zus.network](https://zus.network/) - [文件](https://0chaindocs.gitbook.io/zus-docs) diff --git a/public/content/translations/zh-tw/developers/docs/transactions/index.md b/public/content/translations/zh-tw/developers/docs/transactions/index.md index 9dda15f6dce..c9a0ca865e5 100644 --- a/public/content/translations/zh-tw/developers/docs/transactions/index.md +++ b/public/content/translations/zh-tw/developers/docs/transactions/index.md @@ -22,7 +22,7 @@ lang: zh-tw 提交的交易包括下列資訊: -- `from` – 發送者(簽署交易者)的地址。 這會是外部帳戶,因為合約帳戶無法發送交易。 +- `from` – 發送者(簽署交易者)的地址。 這將是一個外部擁有的帳戶,因爲合約帳戶無法傳送交易 - `to` – 接收地址(若為外部帳戶,交易將會轉移金額。 如果為合約帳戶,交易將執行合約程式碼) - `signature` – 發送者的識別碼。 當發送者以私密金鑰簽署交易並確認發送者已授權此交易时,就會產生此簽章。 - `nonce` - 用來表示帳戶中交易編號的按順序遞增計數器 @@ -162,7 +162,7 @@ Alice 的帳戶將存入 **+1.0 以太幣** 任何涉及智慧型合約的交易都需要燃料。 -智慧型合約也可以包含稱為 [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) 或 [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions) 的函數,而不會改變合約的狀態。 因此,從外部帳戶調用這些函數不需要任何燃料。 此場景的底層遠端程序調用 [`eth_call`](/developers/docs/apis/json-rpc#eth_call) +智慧型合約也可以包含稱為 [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) 或 [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions) 的函數,而不會改變合約的狀態。 因此,從外部帳戶調用這些函數不需要任何燃料。 此場景的底層遠端程序呼叫為 [`eth_call`](/developers/docs/apis/json-rpc#eth_call)。 與使用 `eth_call` 存取不同,這些 `view` 或 `pure` 函數也通常被內部調用(即從合約本身調用或從另一個合約調用),這會消耗燃料。 @@ -198,7 +198,7 @@ Alice 的帳戶將存入 **+1.0 以太幣** - `TransactionType` - 介於 0 和 0x7f 之間的數字,代表總計 128 種可能的交易類型。 - `TransactionPayload` - 由交易類型定義的任意字節位元組陣列。 -根據 `TransactionType` 值,交易可以分類為 +根據 `TransactionType` 值,交易可以分類為: 1. **類型 0(傳統)交易:**自以太坊推出以來使用的原始交易格式。 它們不包括 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) 的功能,例如動態燃料費計算或智慧型合約的存取清單。 傳統交易缺少在序列化形式中指示交易類型的特定前綴,在使用[遞迴長度前綴 (RLP)](/developers/docs/data-structures-and-encoding/rlp) 編碼時,該前綴以位元組 `0xf8` 開始。 這些交易的 TransactionType 值為 `0x0`。 diff --git a/public/content/translations/zh-tw/glossary/index.md b/public/content/translations/zh-tw/glossary/index.md new file mode 100644 index 00000000000..5f2b6f00f58 --- /dev/null +++ b/public/content/translations/zh-tw/glossary/index.md @@ -0,0 +1,499 @@ +--- +title: 以太坊詞彙表 +description: 與以太坊相關的技術和非技術術語的不完整詞彙表 +lang: zh-tw +--- + +# 詞彙表 {#ethereum-glossary} + +## \# {#section-numbers} + + + + + +## A {#section-a} + + + + + + + + + + + + + + + + + + + + + +## B {#section-b} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## C {#section-c} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## D {#section-d} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## E {#section-e} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## F {#section-f} + + + + + + + + + + + + + + + + + + + +## G {#section-g} + + + + + + + + + + + + + + + +## H {#section-h} + + + + + + + + + + + + + +## I {#section-i} + + + + + + + + + + + + + +## K {#section-k} + + + + + + + + + + + +## L {#section-l} + + + + + + + + + + + + + + + + + +## M {#section-m} + + + + + + + + + + + + + + + + + + + + + + + + + +## N {#section-n} + + + + + + + + + + + + + +## O {#section-o} + + + + + + + + + + + + + +## P {#section-p} + + + + + + + + + + + + + + + + + + + + + + + + + + + +## R {#section-r} + + + + + + + + + + + + + + + +## S {#section-s} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## T {#section-t} + + + + + + + + + + + + + + + + + + + +## V {#section-v} + + + + + + + + + + + + + +## W {#section-w} + + + + + + + + + +## Z {#section-z} + + + + + + + + + +## 來源 {#sources} + +_摘自 [Andreas M. Antonopoulos 與 Gavin Wood](https://ethereumbook.info) 所著 [《精通以太坊》](https://github.com/ethereumbook/ethereumbook)(依據 CC-BY-SA 協議)_ + + + +## 完善本頁面 {#contribute-to-this-page} + +我們是否有所遺漏? 是否存在謬誤? 請在 GitHub 上為此詞彙表貢獻力量,幫助我們改進! + +[瞭解更多關於如何貢獻的資訊](/contributing/adding-glossary-terms) diff --git a/public/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md b/public/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md index 7110955129e..418b1d9db71 100644 --- a/public/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md +++ b/public/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md @@ -10,7 +10,7 @@ lang: zh-tw **先決條件:** -- 如果擁有一個加密錢包,你可以關注以下使用教學:[如何:「註冊」以太坊帳戶](/guides/how-to-create-an-ethereum-account/) +- 擁有一個加密貨幣錢包,你可以跟隨以下使用教學:[如何建立以太坊帳戶](/guides/how-to-create-an-ethereum-account/) - 在你的錢包中添加資金 ## 1. 決定你要使用哪一個二層網路 diff --git a/public/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md b/public/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md index 049a01d5ccc..673ace2aea7 100644 --- a/public/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md +++ b/public/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md @@ -1,5 +1,6 @@ --- title: 如何使用錢包 +metaTitle: 如何使用以太坊錢包 | 逐步教學 description: 關於如何發送、接收代幣和連接到 web3 專案的指南。 lang: zh-tw --- diff --git a/public/content/translations/zh-tw/guides/index.md b/public/content/translations/zh-tw/guides/index.md index e01dc109d28..61f5104a44e 100644 --- a/public/content/translations/zh-tw/guides/index.md +++ b/public/content/translations/zh-tw/guides/index.md @@ -12,7 +12,7 @@ lang: zh-tw 1. [如何「創建」以太坊帳戶](/guides/how-to-create-an-ethereum-account/) - 任何人都可以免費創建一個錢包。 本指南會引導你從哪裡開始。 -2. [如何使用錢包](/guides/how-to-use-a-wallet/) - 各種錢包的基本功能及用法介紹。 +2. [如何使用錢包](/guides/how-to-use-a-wallet/) - 學習如何在你的錢包中發送、接收代幣,以及將錢包連接到專案。 ## 安全基礎知識 diff --git a/public/content/translations/zh-tw/history/index.md b/public/content/translations/zh-tw/history/index.md new file mode 100644 index 00000000000..8d00315bd37 --- /dev/null +++ b/public/content/translations/zh-tw/history/index.md @@ -0,0 +1,623 @@ +--- +title: 以太坊歷史及分叉 +description: 以太坊區塊鏈的歷史,包含主要里程碑、更新及分叉。 +lang: zh-tw +sidebarDepth: 1 +--- + +# 以太坊歷史 {#the-history-of-ethereum} + +關於以太坊區塊鏈的所有重要里程碑、分叉與升級的時間軸。 + + + +分叉是需要對網路進行重大技術升級或變更的時刻 – 分叉通常源自以太坊改進提案 (EIP) 並變更了以太坊協定的「規則」。 + +需要升級集中控制的傳統軟體時,公司只會為終端使用者發佈一個新版本。 而區塊鏈的運作則有所不同,因其並無所謂的集中所有權。 以太坊用戶端必須升級自己的軟體,以實作新分叉規則。 加上區塊生成者(在工作量證明世界中為礦工,在權益證明世界中為驗證者)和節點必須依據新規則生成區塊並作驗證。 關於共識機制的更多資訊 + +這些規則變更可能會在網路中建立臨時分叉。 新區塊可以依據新規則或舊規則產生。 分叉通常會提前商定,以便用戶端能夠一致採用變更,並使升級後的分叉成為主鏈。 然而,在極少數情況下,對分叉的不同意見可能導致網路永久硬分叉 – 最爲著名的是去中心化自治組織分叉產生了以太坊經典。 + + + + + +以太坊底層的軟體由兩部分組成,稱為 [執行層](/glossary/#execution-layer) 和 [共識層](/glossary/#consensus-layer)。 + +**執行層升級命名** + +自 2021 年以來,**執行層**的升級是依據 [前幾屆開發者大會舉辦地點](https://devcon.org/en/past-events/) 的城市名稱按時間順序命名的: + +| 升級名稱 | 開發者大會年份 | 開發者大會編號 | 升級日期 | +| ------------ | ----------- | ------------- | ------------ | +| Berlin | 2015 | 0 | 2021 年 4 月 15 日 | +| London | 2016 | I | 2021 年 8 月 5 日 | +| Shanghai | 2017 | II | 2023 年 4 月 12 日 | +| **Cancun** | 2018 | III | 2024 年 3 月 13 日 | +| _Prague_ | 2019 | IV | 尚未決定 | +| _Osaka_ | 2020 | V | 尚未決定 | +| _Bogota_ | 2022 | VI | 尚未決定 | +| _Bangkok_ | 2024 | VII | 尚未決定 | + +**共識升級命名** + +自 [信標鏈](/glossary/#beacon-chain) 推出以來,**共識層**的升級以天體恒星依照字母順序命名: + +| 升級名稱 | 升級日期 | +| ----------------------------------------------------------- | ------------ | +| 信標鏈創世塊 | 2020 年 12 月 1 日 | +| [Altair](https://en.wikipedia.org/wiki/Altair) | 2021 年 10 月 27 日 | +| [Bellatrix](https://en.wikipedia.org/wiki/Bellatrix) | 2022 年 9 月 6 日 | +| [Capella](https://en.wikipedia.org/wiki/Capella) | 2023 年 4 月 12 日 | +| [**Deneb**](https://en.wikipedia.org/wiki/Deneb) | 2024 年 3 月 13 日 | +| [_Electra_]() | 尚未決定 | + +**組合命名** + +執行層和共識層升級最初是在不同時間推出的,但在 2022 年的 [合併](/roadmap/merge/) 之後,這些升級已同時部署。 因此,出現了使用單一組合詞的通俗術語來簡化對這些升級的引用。 這種做法始於 _Shanghai-Capella_ 升級,通常稱為「**Shapella**」,並在 _Cancun-Deneb_ 升級時沿用了這種做法,該升級稱為「**Dencun**」。 + +| 執行層升級 | 共識層升級 | 簡短名稱 | +| ----------------- | ----------------- | ---------- | +| Shanghai | Capella | 「Shapella」 | +| Cancun | Deneb | 「Dencun」 | + + + +直接查閱一些特別重要的過往升級的資訊:[信標鏈](/roadmap/beacon-chain/);[合併](/roadmap/merge/);和 [EIP-1559](#london) + +想瞭解未來的協定升級嗎? [瞭解以太坊開發藍圖上即將進行的升級](/roadmap/)。 + + + +## 2024 年 {#2024} + +### Cancun-Deneb(「Dencun」) {#dencun} + + + +#### Cancun 升級總結 {#cancun-summary} + +Cancun 升級包含對以太坊_執行層_的一系列改進,旨在與 Deneb 共識層升級一起提高可擴展性。 + +值得注意的是,該升級包括稱為 **Proto-Danksharding** 的 EIP-4844,該提案顯著降低了二層網路卷軸的資料存儲成本。 這是透過引入資料「二進位大型物件」來實現的,二進位大型物件使卷軸能夠在短時間內將資料發佈到主網。 這顯著降低了二層網路卷軸使用者的交易費。 + + + +
                                      +
                                    • EIP-1153 - 暫態存儲操作碼
                                    • +
                                    • EIP-4788 - 以太坊虛擬機中的信標區塊根
                                    • +
                                    • EIP-4844 - 分片二進位大型物件交易 (Proto-Danksharding)
                                    • +
                                    • EIP-5656 - MCOPY - 記憶體複製指令
                                    • +
                                    • EIP-6780 - SELFDESTRUCT 只能存在於相同交易中
                                    • +
                                    • EIP-7516 - BLOBBASEFEE 操作碼
                                    • +
                                    + +
                                    + +- [二層網路卷軸](/layer-2/) +- [Proto-Danksharding](/roadmap/scaling/#proto-danksharding) +- [Danksharding](/roadmap/danksharding/) +- [閱讀 Cancun 升級規範](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md) + +#### Deneb 升級總結 {#deneb-summary} + +Deneb 升級包含一系列對以太坊_共識層_的改進,旨在提升可擴展性。 此升級與 Cancun 執行升級同步進行,以啟用 Proto-Danksharding (EIP-4844),並對信標鏈進行其他改進。 + +預先產生的已簽署「自願退出訊息」不再過期,因此可讓使用者在將資金質押到第三方節點營運商時擁有更多控制權。 透過這個已簽署的退出訊息,質押者可以委託節點運作,同時保持隨時安全退出和提取資金的能力,而不需要徵求任何人的許可。 + +EIP-7514 將驗證者加入網路的「流失」率限制在每個時期八 (8) 個,從而收緊了以太幣的發行。 由於以太幣發行量與質押的以太幣總量成正比,因此限制加入的驗證者數量會限制新發行以太幣的_成長率_,同時也降低了對節點營運商的硬體要求,有助於去中心化。 + + + +
                                      +
                                    • EIP-4788 - 以太坊虛擬機中的信標區塊根
                                    • +
                                    • EIP-4844 - 分片二進位大型物件交易
                                    • +
                                    • EIP-7044 - 永久有效的已簽署自願退出
                                    • +
                                    • EIP-7045 - 增加最大證明納入時隙
                                    • +
                                    • EIP-7514 - 加入最大時期流失限制
                                    • +
                                    + +
                                    + +- [閱讀 Deneb 升級規範](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/) +- [坎昆-Deneb(「Dencun」)升級常見問題](/roadmap/dencun/) + + + +## 2023 年 {#2023} + +### 上海-Capella(「Shapella」) {#shapella} + + + +#### 上海升級總結 {#shanghai-summary} + +上海升級為執行層引入了質押提款的功能。 隨著與 Capella 升級同步進行,區塊能夠支援提款操作,使質押者可以將他們的以太幣從信標鏈提取到執行層。 + + + + + + + +- [閱讀上海升級規範](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +#### Capella 升級總結 {#capella-summary} + +Capella 升級是共識層(信標鏈)的第三次重大升級,實現了質押提款。 Capella 升級與執行層升級「上海升級」同步進行,並實現了質押提款的功能。 + +這次共識層升級讓未提供初始存款提款憑證的質押者能夠提供提款憑證,從而實現提款。 + +此升級還提供了自動帳戶掃描功能,可持續處理驗證者帳戶的任何可用獎勵支付或全額提款。 + +- [更多關於質押提款的資訊](/staking/withdrawals/)。 +- [閱讀上海升級規範](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 年 {#2022} + +### 巴黎升級(合併) {#paris} + + + +#### 總結 {#paris-summary} + +由於工作量證明區塊鏈超過了[終端總難度](/glossary/#terminal-total-difficulty) 58750000000000000000000,因而觸發了巴黎升級。 這發生在2022年9月15日的第15537393區塊上,觸發了下一個區塊的巴黎升級。 這發生在 2022 年 9 月 15 日區塊 15537393 上,並在下一個區塊處觸發了巴黎升級。 巴黎升級就是[合併](/roadmap/merge/)過渡,以太坊的主要功能結束了[工作量證明](/developers/docs/consensus-mechanisms/pow)挖礦演算法及相關共識邏輯並啟動了[權益證明](/developers/docs/consensus-mechanisms/pos)。 巴黎升級本身是對[執行用戶端](/developers/docs/nodes-and-clients/#execution-clients)的升級(相當於共識層上的 Bellatrix 升級),讓執行用戶端能夠從與其連線的[共識用戶端](/developers/docs/nodes-and-clients/#consensus-clients)接受指令。 這需要啟動一組新的內部應用程式介面方法,統稱為[引擎應用程式介面](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)。 這次升級可以說是自[家園](#homestead)以來以太坊歷史上最重要的升級! + +- [閱讀 Paris 升級規範](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
                                      +
                                    • EIP-3675將共識層升級為權益證明
                                    • +
                                    • EIP-4399以 PREVRANDAO 取代 DIFFICULTY 操作碼
                                    • +
                                    + +
                                    + +--- + +### Bellatrix 升級 {#bellatrix} + + + +#### 總結 {#bellatrix-summary} + +Bellatrix 升級是[信標鏈](/roadmap/beacon-chain)的第二次預定升級,讓信標鏈為[合併](/roadmap/merge/)做準備。 它將驗證者因怠惰及進行了可被罰沒的行為而受到的懲罰提高到其全部價值。 Bellatrix 升級還包括對分叉選擇規則的更新,讓信標鏈為合併以及從最後一個工作量證明區塊過渡到第一個權益證明區塊做好準備。 這包括讓共識用戶端意識到[終端總難度](/glossary/#terminal-total-difficulty) 58750000000000000000000。 + +- [閱讀 Bellatrix 升級規範](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### 灰色冰川升級 {#gray-glacier} + + + +#### 總結 {#gray-glacier-summary} + +灰色冰川網路升級將[難度炸彈](/glossary/#difficulty-bomb)推遲了三個月。 這是此次升級引入的唯一變更,本質上類似於[箭形冰川](#arrow-glacier)和[繆爾冰川](#muir-glacier)升級。 [拜占庭](#byzantium)、[君士坦丁堡](#constantinople)和 [London](#london) 網路升級也做了類似的變更。 + +- [以太坊基金會部落格 - 灰色冰川升級公告](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
                                      +
                                    • EIP-5133將難度炸彈推遲至 2022 年 9 月
                                    • +
                                    + +
                                    + + + +## 2021 年 {#2021} + +### 箭形冰川升級 {#arrow-glacier} + + + +#### 總結 {#arrow-glacier-summary} + +箭形冰川網路升級將[難度炸彈](/glossary/#difficulty-bomb)推遲數月。 這是此次升級引入的唯一變更,本質上類似於[謬爾冰川](#muir-glacier)升級。 [拜占庭](#byzantium)、[君士坦丁堡](#constantinople)和[倫敦](#london)網絡升級也做了類似的更改。 + +- [以太坊基金會部落格 - 箭形冰川升級公告](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [以太坊牧貓人組織 - 以太坊箭形冰川升級](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
                                      +
                                    • EIP-4345將難度炸彈推遲至 2022 年 6 月
                                    • +
                                    + +
                                    + +--- + +### Altair 升級 {#altair} + + + +#### 總結 {#altair-summary} + +Altair 升級是對[信標鏈](/roadmap/beacon-chain)進行的第一次預定升級。 此次升級增加了對「同步委員會」的支援—支援輕量用戶端,在向合併進展的過程中,增加了對驗證者怠惰及可被罰沒行為的懲罰。 + +- [閱讀 Altair 升級規範](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### 趣聞! {#altair-fun-fact} + +Altair 升級是第一個有確切發佈時間的重大網路升級。 先前的每一次升級均基於一個已經在工作量證明鏈上申報過的區塊編號,而該鏈上的區塊時間各不相同。 信標鏈不需要解析工作量證明,而是在一個基於時間、由 32 個 12 秒「時隙」組成的時期系統上運作。在這個系統上,驗證者可以提出區塊。 這就是為什麼我們能準確知曉達到時期 74,240 以及 Altair 升級啟動的時間! + +- [區塊時間](/developers/docs/blocks/#block-time) + +--- + +### London 升級 {#london} + + + +#### 總結 {#london-summary} + +London 升級引入了 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559),對交易費市場進行了改革,同時也對燃料費的退款處理方式和[冰河期](/glossary/#ice-age)日程進行了修改。 + +#### 什麼是 London 升級/EIP-1559? {#eip-1559} + +London 升級前,以太坊的區塊為固定大小。 當網路需求高時,這些區塊會滿載運作。 因此,使用者常需要等網路需求降低時,交易才會被添加進區塊,這導致了糟糕的使用者體驗。 London 升級將可變大小的區塊引入以太坊。 + +隨著 2021 年 8 月的 [London 升級](/history/#london),以太坊網路上交易費的計算方式發生了變化。 在 London 升級之前,燃料費的計算不區分`基本費用`和`優先費`,如下: + +假設 Alice 必須向 Bob 支付 1 以太幣。 在交易中,燃料限制是 21,000 單位,燃料價格為 200 gwei。 + +總費用將為:`Gas units (limit) * Gas price per unit` i.e `21,000 * 200 = 4,200,000 gwei` 或 0.0042 以太幣 + +London 升級中的 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) 實作使交易費機制更加複雜,但也讓燃料費更加可預測,最終形成了更高效的交易費市場。 使用者可以透過 `maxFeePerGas` 提交交易,指明他們願意為要執行交易支付多少費用,並且使用者知道支付的費用不會超過燃料市價 (`baseFeePerGas`),並且會得到任何剩餘費用(扣除小費)的退款。 + +解釋 EIP-1559 及其帶來的好處之影片:[EIP-1559 解釋](https://www.youtube.com/watch?v=MGemhK9t44Q) + +- [你是去中心化應用程式開發者嗎? 記得要升級你的函式庫與工具。](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [閱讀以太坊基金會公告](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [閱讀以太坊貓牧人組織的解釋](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
                                      +
                                    • EIP-1559改善交易費市場
                                    • +
                                    • EIP-3198從區塊傳回 BASEFEE
                                    • +
                                    • EIP-3529 - 減少用於以太坊虛擬機器運作的燃料退款
                                    • +
                                    • EIP-3541 - 防止部署以 0xEF 開頭的合約
                                    • +
                                    • EIP-3554將冰河期延遲至 2021 年 12 月
                                    • +
                                    + +
                                    + +--- + +### 柏林升級 {#berlin} + + + +#### 總結 {#berlin-summary} + +柏林升級優化了某些以太坊虛擬機器動作的燃料成本,並增加了對多種交易類型的支援。 + +- [了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [了解更多關於Ethereum Cat Herder之解釋.](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
                                      +
                                    • EIP-2565降低 ModExp 燃料成本
                                    • +
                                    • EIP-2718更容易支援多種交易類型
                                    • +
                                    • EIP-2929增加狀態存取操作碼的燃料成本
                                    • +
                                    • EIP-2930新增可選存取清單
                                    • +
                                    + +
                                    + + + +## 2020 年 {#2020} + +### 信標鏈創世塊 {#beacon-chain-genesis} + + + +#### 總結 {#beacon-chain-genesis-summary} + +[信標鏈](/roadmap/beacon-chain/)需要 16384 個存了 32 個質押以太幣的帳戶,以確保安全上線。 這發生於 2020 年 11 月 27 日,意味著信標鏈在 2020 年 12 月 1 日開始產生區塊。 這是實現[以太坊願景](/roadmap/vision/)的第一步,十分重要。 + +[閱讀以太坊基金會公告](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + 信標鏈(Beacon Chain) + + +--- + +### 部署質押存款合約 {#staking-deposit-contract} + + + +#### 總結 {#deposit-contract-summary} + +質押存款合約將[質押](/glossary/#staking)引入以太坊生態系統。 雖然是一個[主網](/glossary/#mainnet)合約,但它直接影響到[信標鏈](/roadmap/beacon-chain/)的發佈時間軸,而信標鏈是[以太坊升級](/roadmap/)的重要部分。 + +[閱讀以太坊基金會公告](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + 質押 + + +--- + +### 繆爾冰川升級 {#muir-glacier} + + + +#### 總結 {#muir-glacier-summary} + +繆爾冰川分叉使[難度炸彈](/glossary/#difficulty-bomb)推遲。 增加[工作量證明](/developers/docs/consensus-mechanisms/pow/)共識機制的區塊難度可能會增加發送交易和使用去中心化應用程式的等待時間,從而降低以太坊的可用性。 + +- [了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [了解更多關於Ethereum Cat Herder之解釋.](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
                                      +
                                    • EIP-2384將難度炸彈再推遲 4,000,000 個區塊,或約 611 天。
                                    • +
                                    + +
                                    + + + +## 2019 年 {#2019} + +### 伊斯坦堡升級 {#istanbul} + + + +#### 總結 {#istanbul-summary} + +伊斯坦堡分叉: + +- 最佳化[以太坊虛擬機](/developers/docs/ethereum-stack/#ethereum-virtual-machine)中特定動作的[燃料](/glossary/#gas)成本。 +- 提高受到阻斷服務攻擊後的韌性。 +- 使基於「簡潔非互動式知識論證」與「可擴充透明知識論證」的二層網路擴容解決方案具有更佳的效能。 +- 使以太坊和 Zcash 能夠互通。 +- 讓合約能夠引入更多創意功能。 + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
                                      +
                                    • EIP-152允許以太幣與 Zcash 等受隱私保護的數位貨幣一起使用。
                                    • +
                                    • EIP-1108以更低廉的加密技術改善燃料成本。
                                    • +
                                    • EIP-1344透過新增 CHAINID 操作碼,保護以太坊免受重播攻擊。
                                    • +
                                    • EIP-1884最佳化基於消耗量的操作碼燃料價格。
                                    • +
                                    • EIP-2028降低了 CallData 的成本,從而允許更多資料放入區塊中 – 這對二層網路擴容很有幫助。
                                    • +
                                    • EIP-2200其他操作碼的燃料價格變更。
                                    • +
                                    + +
                                    + +--- + +### 君士坦丁堡升級 {#constantinople} + + + +#### 總結 {#constantinople-summary} + +君士坦丁堡分叉: + +- 將區塊[挖礦](/developers/docs/consensus-mechanisms/pow/mining/)獎勵從 3 以太幣減少至 2 以太幣。 +- 確保在[實作權益證明](#beacon-chain-genesis)之前,區塊鏈不會凍結。 +- 最佳化[以太坊虛擬機](/developers/docs/ethereum-stack/#ethereum-virtual-machine)中特定動作的[燃料](/glossary/#gas)成本。 +- 新增了與尚未建立的地址進行互動的能力。 + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
                                      +
                                    • EIP-145最佳化特定鏈上操作的成本。
                                    • +
                                    • EIP-1014讓你能夠與尚未建立的地址互動。
                                    • +
                                    • EIP-1052引入 EXTCODEHASH 指令來擷取其他合約程式碼的雜湊值。
                                    • +
                                    • EIP-1234確保在權益證明之前,區塊鏈不會凍結,並將區塊獎勵從 3 以太幣減少至 2 以太幣。
                                    • +
                                    + +
                                    + + + +## 2017 年 {#2017} + +### 拜占庭升級 {#byzantium} + + + +#### 總結 {#byzantium-summary} + +拜占庭分叉: + +- 將區塊[挖礦](/developers/docs/consensus-mechanisms/pow/mining/)獎勵從 5 以太幣減少至 3 以太幣。 +- 將[難度炸彈](/glossary/#difficulty-bomb)推遲一年。 +- 新增了呼叫其他合約而不變更狀態的能力。 +- 新增了某些加密方法,以實現[二層網路擴容](/developers/docs/scaling/#layer-2-scaling)。 + +[閱讀以太坊基金會公告](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
                                      +
                                    • EIP-140新增 REVERT 操作碼。
                                    • +
                                    • EIP-658在交易收據中新增了狀態欄位,以表示成功或失敗。
                                    • +
                                    • EIP-196為支援零知識簡潔非互動式知識論證新增橢圓曲線和純量乘法。
                                    • +
                                    • 使基於「簡潔非互動式知識論證」與「可擴容透明知識論證」的二層網路擴容解決方案具有更佳的效能。
                                    • +
                                    • EIP-198啟用 RSA 簽名驗證。
                                    • +
                                    • EIP-211新增對可變長度傳回值的支援。
                                    • +
                                    • EIP-214新增 STATICCALL 作業碼,能夠呼叫其他合約而不變更狀態。
                                    • +
                                    • EIP-100變更難度調整公式。
                                    • +
                                    • EIP-649難度炸彈延遲 1 年,並將區塊獎勵從 5 以太幣減至 3 以太幣。
                                    • +
                                    + +
                                    + + + +## 2016 年 {#2016} + +### Spurious Dragon(偽龍)升級 {#spurious-dragon} + + + +#### 總結 {#spurious-dragon-summary} + +Spurious Dragon 分叉為對阻斷服務 (DoS) 攻擊(2016 年 9 月/10 月)的第二個回應,包括: + +- 調整操作碼價格,以防網路未來再受攻擊。 +- 啟用區塊鏈狀態的「區塊鏈減重」。 +- 新增重播攻擊保護。 + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
                                      +
                                    • EIP-155防止在一條以太坊鏈上的交易被重複廣播到另一條鏈,例如測試網交易在以太坊主鏈上重播。
                                    • +
                                    • EIP-160調整 EXP 操作碼的價格 – 讓透過計算成本高昂的合約作業來降低網路速度變得更加困難。
                                    • +
                                    • EIP-161允許刪除透過阻斷服務攻擊產生的空帳戶。
                                    • +
                                    • EIP-170將區塊鏈上合約可達到的最大程式碼大小改為 24576 位元組。
                                    • +
                                    + +
                                    + +--- + +### 橘子口哨升級 {#tangerine-whistle} + + + +#### 總結 {#tangerine-whistle-summary} + +橘子口哨分叉是對網路上阻斷服務 (DoS) 攻擊(2016 年 9 月/10 月)的第一個回應,包括: + +- 解決與定價過低的操作程式碼有關的緊急網路健康問題。 + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
                                      +
                                    • EIP-150增加可用於垃圾郵件攻擊的操作碼的燃料成本
                                    • +
                                    • EIP-158透過刪除大量空帳戶來減少狀態大小,這些空帳戶由於早期版本的以太坊協定中的缺陷而以非常低的成本置於狀態中。
                                    • +
                                    + +
                                    + +--- + +### 去中心化自治組織分叉 {#dao-fork} + + + +#### 總結 {#dao-fork-summary} + +去中心化自治組織分叉是為了回應 [2016 去中心化自治組織攻擊](https://www.coindesk.com/learn/understanding-the-dao-attack/),當時一個不安全的[去中心化自治組織](/glossary/#dao)合約被駭客盜走了超過 360 萬個以太幣。 這個分叉將資金從有問題的合約轉移到一個新合約,新合約只有一個功能:提款。 任何損失了資金的人都可以在他們的錢包中提取以太幣,每 100 個去中心化自治組織代幣可以提取 1 個以太幣。 + +此行動由以太坊社群投票贊成. 所有以太幣持有者都能透過[投票平台](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/)上的交易進行投票。 此分叉決議獲得85%贊成. + +一些礦工拒絕分叉,因為那次去中心化自治組織事件並不是協定中的缺陷。 其延續原始以太坊, 而其目前稱為[以太坊經典/Ethereum Classic](https://ethereumclassic.org/). + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### 家園升級 {#homestead} + + + +#### 總結 {#homestead-summary} + +家園分叉著眼於未來。 包括若干協定修改和網路變更,使以太坊能夠進一步進行網路升級。 + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
                                      +
                                    • EIP-2對合約建立過程進行編輯。
                                    • +
                                    • EIP-7新增操作碼:DELEGATECALL
                                    • +
                                    • EIP-8引入 devp2p 正向相容性要求
                                    • +
                                    + +
                                    + + + +## 2015 年 {#2015} + +### 前沿解凍升級 {#frontier-thawing} + + + +#### 總結 {#frontier-thawing-summary} + +前沿解凍升級提高了每個[區塊](/glossary/#block) 5,000 單位[燃料](/glossary/#gas)的限制,並將預設燃料價格設為 51 [gwei](/glossary/#gwei)。 這樣便能進行交易 - 交易需要 21,000 單位燃料。 引入[難度炸彈](/glossary/#difficulty-bomb)是爲了保證未來硬分叉到[權益證明](/glossary/#pos)。 + +- [了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [閱讀以太坊協定更新 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### 前沿升級 {#frontier} + + + +#### 總結 {#frontier-summary} + +前沿升級是以太坊專案的已上線準系統實作。 該版本在奧利匹克測試階段成功完成之後推出。 它面向的是技術使用者,特別是開發者。 [區塊](/glossary/#block)有 5,000 單位的[燃料](/glossary/#gas)限制。 此「解凍」階段使礦工能夠開始作業,並使早期採用者能夠有足夠的時間來安裝用戶端。 + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 年 {#2014} + +### 以太幣銷售 {#ether-sale} + + + +以太幣正式發售 42 天。 你可以使用比特幣購買以太幣。 + +[了解更多關於以太坊基金會的公告。](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### 發佈黃皮書 {#yellowpaper} + + + +黃皮書由 Gavin Wood 博士撰寫,介紹了以太坊協議之技術定義。 + +[檢視黃皮書](https://github.com/ethereum/yellowpaper) + + + +## 2013 年 {#2013} + +### 發佈白皮書 {#whitepaper} + + + +2015 年專案啟動之前,以太坊創辦人 Vitalik Buterin 於 2013 年發表了這篇介紹白皮書。 + + + 白皮書 + diff --git a/public/content/translations/zh-tw/nft/index.md b/public/content/translations/zh-tw/nft/index.md index 2f487d78b69..6461048a8a8 100644 --- a/public/content/translations/zh-tw/nft/index.md +++ b/public/content/translations/zh-tw/nft/index.md @@ -1,5 +1,6 @@ --- title: 非同質化代幣 (NFT) +metaTitle: 什麼是非同質化代幣? | 優點和作用 description: 以太坊生態系非同質化代幣概要 lang: zh-tw template: use-cases @@ -14,7 +15,7 @@ summaryPoint3: 由建置於以太坊區塊鏈上的智慧型合約提供支援 ## 什麼是非同質化代幣? {#what-are-nfts} -非同質化代幣是一種**獨一無二**的代幣。<0> 每個非同質化代幣都有不同的屬性(非同質性),它們的稀缺性是可以驗證的。 非同質化代幣與[以太幣](/glossary/#ether)和其他基於以太坊的代幣(例如 USDC)不同,後者的每一個代幣都一樣的,具有相同的特性(「同質化」)。 你不會在乎你錢包內的其中一張鈔票(以太幣),因為它們都一樣且價值相同。 但你_確實會_在意你自己持有的特定非同質化代幣,因為它們不同於其他的資產,全都有各自的屬性(非同質化)。 +非同質化代幣是一種**獨一無二**的代幣。每個非同質化代幣都有不同的屬性(非同質性),它們的稀缺性是可以驗證的。 非同質化代幣與[以太幣](/glossary/#ether)和其他基於以太坊的代幣(例如 USDC)不同,後者的每一個代幣都一樣的,具有相同的特性(「同質化」)。 你不會在乎你錢包內的其中一張鈔票(以太幣),因為它們都一樣且價值相同。 但你_確實會_在意你自己持有的特定非同質化代幣,因為它們不同於其他的資產,全都有各自的屬性(非同質化)。 每個非同質化代幣的獨特性使藝術品、收藏品,甚至房地產等等事物能夠代幣化,即一個特定的唯一非同質化代幣對應到現實世界的一些特定且獨一無二的物品或數位物品。 資產的所有權在以太坊[區塊鏈](/glossary/#blockchain)上被公開驗證。 diff --git a/public/content/translations/zh-tw/roadmap/merge/index.md b/public/content/translations/zh-tw/roadmap/merge/index.md index 34e5f063f91..563a1069ea7 100644 --- a/public/content/translations/zh-tw/roadmap/merge/index.md +++ b/public/content/translations/zh-tw/roadmap/merge/index.md @@ -62,7 +62,7 @@ id="staking-node-operators"> 1. 同時運行共識用戶端及執行用戶端;合併之後,無法再使用取得執行資料的第三方端點。 2. 使用共用的 JWT 金鑰來驗證執行與共識用戶端,以便他們能夠安全地通訊。 -3 設定「費用接收」地址以接收賺取的交易費小費/最大可提取價值 (MEV)。 +3. 設定「費用接收」地址以接收賺取的交易費小費/最大可提取價值 (MEV)。 在完成上述兩點以前,你的節點會顯示為「離線」,直到兩個層皆同步且通過驗證為止。 @@ -92,7 +92,7 @@ title="去中心化應用程式和智慧型合約開發者" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -合併過程中共識機制亦發生變更,包括以下方面的相關變更:< +合併過程中共識機制亦發生變更,包括以下方面的相關變更:
                                    • 區塊結構
                                    • diff --git a/public/content/translations/zh-tw/roadmap/user-experience/index.md b/public/content/translations/zh-tw/roadmap/user-experience/index.md index fe338e94201..27fea1467e5 100644 --- a/public/content/translations/zh-tw/roadmap/user-experience/index.md +++ b/public/content/translations/zh-tw/roadmap/user-experience/index.md @@ -13,7 +13,7 @@ template: roadmap 以太坊帳戶由一對用於識別帳戶(公開金鑰)和簽名訊息(私密金鑰)的金鑰保護。 私密金鑰就像主密碼,允許使用者完整存取以太坊帳戶。 對於更熟悉銀行和代使用者管理帳戶之 Web2 應用程式的人來說,這是一種不同的操作方式。 若要讓以太坊在不依賴中心化第三方的情況下被大規模採用,必須為使用者提供一種簡單、直接、順暢的方式來管理資產並掌控自己的資料,而無需瞭解公開-私密金鑰加密及金鑰管理方面的知識。 -這個問題的解決辦法是使用[智慧型合約<](/glossary/#smart-contract)錢包與以太坊交互。 智慧型合約錢包確立了金鑰丟失或被盜時保護帳戶的方法,提供更好地檢測和防禦欺詐的機會,並且允許為錢包新增功能。 儘管智慧型合約錢包目前已經存在,但其建構難度還很大,因為需要以太坊協定提供更好的支援。 此額外的支援稱為帳戶抽象。 +這個問題的解決辦法是使用[智慧型合約](/glossary/#smart-contract)錢包與以太坊交互。 智慧型合約錢包確立了金鑰丟失或被盜時保護帳戶的方法,提供更好地檢測和防禦欺詐的機會,並且允許為錢包新增功能。 儘管智慧型合約錢包目前已經存在,但其建構難度還很大,因為需要以太坊協定提供更好的支援。 此額外的支援稱為帳戶抽象。 更多帳戶抽象相關資訊 diff --git a/public/content/translations/zh-tw/smart-contracts/index.md b/public/content/translations/zh-tw/smart-contracts/index.md index aa311811493..5713ed7a88e 100644 --- a/public/content/translations/zh-tw/smart-contracts/index.md +++ b/public/content/translations/zh-tw/smart-contracts/index.md @@ -1,5 +1,6 @@ --- title: 智慧型合約 +metaTitle: "智慧型合約:簡介與優點" description: 智慧型合約的非技術性簡介 lang: zh-tw --- @@ -76,7 +77,6 @@ Alice 和 Bob 進行一場自行車比賽。 Alice 和 Bob 打賭 10 美金, ## 了解更多 {#further-reading} - [智慧型合約將如何改變世界](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [智慧型合約:將取代律師的區塊鏈技術](https://blockgeeks.com/guides/smart-contracts/) - [適用於開發者的智慧型合約](/developers/docs/smart-contracts/) - [學習撰寫智慧型合約](/developers/learning-tools/) - [精通以太坊 ─ 智慧型合約是什麼?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/zh-tw/staking/solo/index.md b/public/content/translations/zh-tw/staking/solo/index.md index 1dd3465e362..76819f75a71 100644 --- a/public/content/translations/zh-tw/staking/solo/index.md +++ b/public/content/translations/zh-tw/staking/solo/index.md @@ -25,7 +25,7 @@ summaryPoints: 單獨質押者直接獲得來自協議的獎勵,負責讓驗證者持續上線且正常運作。 -## 為什麼選擇單獨質押? {#why-stake-solo} +## 爲什麽選擇單獨質押? {#why-stake-solo} 單獨質押需要承擔更多責任,但能助你最大程度上控制你的資金和質押設定。 diff --git a/public/content/translations/zh-tw/web3/index.md b/public/content/translations/zh-tw/web3/index.md index 9d07ba0aac5..bf32d584853 100644 --- a/public/content/translations/zh-tw/web3/index.md +++ b/public/content/translations/zh-tw/web3/index.md @@ -78,7 +78,7 @@ OnlyFans 是一個由使用者產生的成人內容網站,內容創作者超 Web 2.0 要求內容製作者相信平台不會更改規則,但抗審查是 Web3 平台的原生特性。 -#### 去中心化自治組織(DAOs) {#daos} +#### 去中心化自治組織 (DAO) {#daos} 除了在 Web3 中擁有個人資料外,你還能利用類似公司股票的代幣,來擁有該平台,將平台作為一個集合體。 去中心化自治組織讓你能協調平台的去中心化所有權,並對其未來做出相關決策。 diff --git a/public/content/translations/zh-tw/whitepaper/index.md b/public/content/translations/zh-tw/whitepaper/index.md index 6811024be2a..dd8f69a73a1 100644 --- a/public/content/translations/zh-tw/whitepaper/index.md +++ b/public/content/translations/zh-tw/whitepaper/index.md @@ -87,7 +87,7 @@ APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR 3. 確認區塊上的工作量證明是否有效。 4. 使 `S[0]` 為前一個區塊末端的狀態。 5. 假設 `TX` 是區塊的交易清單,其中有 `n` 個交易。 對於 `0...n-1` 中的所有 `i`,設定 `S[i+1] = APPLY(S[i],TX[i])`。如果任何應用程式傳回錯誤,則結束並傳回 false。 -6. 傳回 true,並將 <0>S[n] 註冊為該區塊末端的狀態。 +6. 傳回 true,並將 `<0>S[n]` 註冊為該區塊末端的狀態。 本質上,區塊中的每個交易都必須提供一個有效的狀態轉換,即從交易執行之前的規範狀態轉換到某個新狀態。 請注意,狀態不會以任何方式編碼在區塊中;它純粹是驗證節點要記住的抽象,並且只能透過從創世狀態開始並順序應用每個區塊中的每個交易來(安全地)計算任何區塊。 此外,請注意,礦工將交易放入區塊的順序很重要;如果一個區塊中有兩個交易 A 和 B,並且 B 花費了 A 創造的未花費的交易輸出,那麼如果 A 出現在 B 之前,則該區塊將有效,否則無效。 @@ -181,7 +181,7 @@ _右:改變默克爾樹的任何部分的任何嘗試最終都會導致鏈上 - 訊息接收者 - 與訊息一起傳輸的以太幣數量 - 一個可選擇的資料欄位 -- <0>STARTGAS 值 +- `<0>STARTGAS` 值 訊息與交易基本相似,但是訊息是由合約產生的,而不是由外部執行者產生。 當目前執行程式碼的合約執行 `CALL` 操作碼時,就會產生一則訊息,該操作碼會產生並執行一則訊息。 與交易一樣,訊息會使得接收者帳戶執行其程式碼。 因此,如同外部參與者與其他合約建立的關係一樣,合約可以與其他合約建立完全相同的關係。 diff --git a/public/content/translations/zh/contributing/translation-program/translators-guide/index.md b/public/content/translations/zh/contributing/translation-program/translators-guide/index.md index a9376f38152..c52a4bd4deb 100644 --- a/public/content/translations/zh/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/zh/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Crowdin 有一个内置功能,可以在翻译人员即将出错时发出警告 ![link.png 示例](./example-of-link.png) -链接同样以标签的形式出现在源文本中(即 <0> )。 <0> ). 如果你将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 +链接同样以标签的形式出现在源文本中(即 `<0>` ``)。如果你将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 从源复制链接而不要更改其顺序,这一点非常重要。 @@ -154,7 +154,7 @@ nonce - _不可翻译的文本_ 源文本还包含缩短的标签,这些标签只包含数字,这意味着它们的功能不是很明显。 你可以将鼠标悬停在这些标签上,以准确查看它们提供的功能。 -在下面的示例中,你可以看到,将鼠标悬停在 <0> 标签显示,它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 +在下面的示例中,你可以看到,将鼠标悬停在 `<0>` 标签显示,它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 ![模棱两可的 tags.png 的示例](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/zh/developers/docs/design-and-ux/index.md b/public/content/translations/zh/developers/docs/design-and-ux/index.md index af866c23b21..3b64438905e 100644 --- a/public/content/translations/zh/developers/docs/design-and-ux/index.md +++ b/public/content/translations/zh/developers/docs/design-and-ux/index.md @@ -23,22 +23,22 @@ lang: zh | 关注领域 | 姓名 | |:----------------------------------------------------- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 加密货币入门 | [WalletConnect Pulse 2024:加密货币消费者的情绪及使用情况](https://walletconnect.com/pulse-2024-crypto-consumer-report) | -| 加密货币入门 | [CRADL:加密货币中的用户体验](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | -| 加密货币入门 | [CRADL:加密货币入门](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | -| 加密货币入门 | [比特币用户体验报告](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | -| 加密货币入门 | [ConSensys:2023 年全球 Web3 认知度状况](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | -| 加密货币入门 | [NEAR:加速采用之路](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | -| 权益质押 | [OpenUX:Rocket Pool 节点运营商的用户体验](https://storage.googleapis.com/rocketpool/RocketPool-NodeOperator-UX-Report-Jan-2024.pdf) | -| 权益质押 | [质押:主要趋势、要点与预测 - Eth Staker](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | -| 权益质押 | [多重应用程序质押](https://github.com/threshold-network/UX-User-Research/blob/main/Multi-App%20Staking%20(MAS)/iterative-user-study/MAS%20Iterative%20User%20Study.pdf) | -| 去中心化自治组织 | [2022 年去中心化自治组织研究更新:去中心化自治组织构建者需要什么?](https://blog.aragon.org/2022-dao-research-update/) | -| 去中心化金融 | [2024 年去中心化金融状况](https://stateofdefi.org/)(调查进行中) | -| 去中心化金融 | [保险池](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | -| 去中心化金融 | [ConSensys:2022 年去中心化金融用户研究报告](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | -| 元宇宙 | [元宇宙:用户研究报告](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | -| 元宇宙 | [野外冒险:对元宇宙用户的研究](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube)(27 分钟视频) | -| Ethereum.org 用户体验数据 | [可用性与用户满意度调查仪表板 - Ethereum.org](https://lookerstudio.google.com/reporting/0a189a7c-a890-40db-a5c6-009db52c81c9) | +| 加密货币入门 | [WalletConnect Pulse 2024:加密货币消费者的情绪及使用情况](https://walletconnect.com/pulse-2024-crypto-consumer-report) | +| 加密货币入门 | [CRADL:加密货币中的用户体验](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | +| 加密货币入门 | [CRADL:加密货币入门](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | +| 加密货币入门 | [比特币用户体验报告](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | +| 加密货币入门 | [ConSensys:2023 年全球 Web3 认知度状况](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | +| 加密货币入门 | [NEAR:加速采用之路](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | +| 权益质押 | [OpenUX:Rocket Pool 节点运营商的用户体验](https://storage.googleapis.com/rocketpool/RocketPool-NodeOperator-UX-Report-Jan-2024.pdf) | +| 权益质押 | [质押:主要趋势、要点与预测 - Eth Staker](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | +| 权益质押 | [多重应用程序质押](https://github.com/threshold-network/UX-User-Research/blob/main/Multi-App%20Staking%20(MAS)/iterative-user-study/MAS%20Iterative%20User%20Study.pdf) | +| 去中心化自治组织 | [2022 年去中心化自治组织研究更新:去中心化自治组织构建者需要什么?](https://blog.aragon.org/2022-dao-research-update/) | +| 去中心化金融 | [2024 年去中心化金融状况](https://stateofdefi.org/)(调查进行中) | +| 去中心化金融 | [保险池](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | +| 去中心化金融 | [ConSensys:2022 年去中心化金融用户研究报告](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | +| 元宇宙 | [元宇宙:用户研究报告](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | +| 元宇宙 | [野外冒险:对元宇宙用户的研究](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube)(27 分钟视频) | +| Ethereum.org 用户体验数据 | [可用性与用户满意度调查仪表板 - Ethereum.org](https://lookerstudio.google.com/reporting/0a189a7c-a890-40db-a5c6-009db52c81c9) | ## Web3 相关设计 {#design-for-web3} diff --git a/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md index 140886ad45b..989182d6a05 100644 --- a/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md @@ -55,7 +55,7 @@ JSON-RPC 也不是轻客户端请求数据的理想选择,因为它必须要 - 减少对中心化提供者的依赖 - 减少网络带宽使用 - 最小化或零同步 -- 可供资源有限的设备访问(<1 GB 内存、<100 MB 磁盘、1 个 CPU) +- 可供资源有限的设备访问(\<1 GB 内存、\<100 MB 磁盘、1 个 CPU) 下表展示了门户网络可提供的现有客户端的功能,让用户可在极低资源设备上访问它们。 diff --git a/public/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md index a1bbe3abc98..4d4295bf8c3 100644 --- a/public/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ sidebarDepth: 2 始终确保满足客户端文档中给定模式的硬件要求。 归档节点的最大要求是磁盘空间。 根据不同的客户端,此项要求从 3TB 到 12TB 不等。 虽然人们可能认为机械硬盘是更适合存储大量数据的解决方案,不过,同步数据和持续地更新链头需要使用固态硬盘。 [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) 驱动器足够好,但它应该拥有可靠的质量,至少是 [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences) 类型的。 磁盘可以安装在有足够插槽的台式电脑或服务器中。 这样的专用设备是运行高正常运行时间节点的理想选择。 在笔记本上运行是完全可以实现的,代价是需要牺牲一定的便携性。 -所有数据需要存放在一个卷中,因此必须对磁盘进行合并,例如采用 [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) 方案或 [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html)。 你也可以考虑使用 [ZFS](https://en.wikipedia.org/wiki/ZFS),因为它支持“写时复制”,从而确保数据正确地写入磁盘,而不会出现任何低级错误。 +所有数据需要存放在一个卷中,因此必须对磁盘进行合并,例如采用 [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) 方案或 LVM。 你也可以考虑使用 [ZFS](https://en.wikipedia.org/wiki/ZFS),因为它支持“写时复制”,从而确保数据正确地写入磁盘,而不会出现任何低级错误。 为了提高稳定性和安全性,防止发生意外的数据库损坏,你可以在系统支持时考虑使用 [ECC 内存](https://en.wikipedia.org/wiki/ECC_memory),尤其是在专业设置中。 内存大小通常建议与全节点相同,但更大的内存可以帮助加速同步。 diff --git a/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md index 50dbd031dd0..5a2096aae15 100644 --- a/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ lang: zh ### 霍尔式属性 {#hoare-style-properties} -[霍尔逻辑](https://en.wikipedia.org/wiki/Hoare_logic)提供了一套形式化规则来推理程序(包括智能合约)的正确性。 霍尔式属性使用霍尔三元组 {_P_}_c_{_Q_} 表示,其中 _c_ 代表程序,_P_ 和 _Q_ 是 _c_(即程序)状态的谓词,它们正式描述成_前置条件_和_后置条件_。 +[霍尔逻辑](https://en.wikipedia.org/wiki/Hoare_logic)提供了一套形式化规则来推理程序(包括智能合约)的正确性。 霍尔式属性使用霍尔三元组 `{P}c{Q}` 表示,其中 `c` 代表程序,`P` 和 `Q` 是 `c`(即程序)状态的谓词,它们正式描述成_前置条件_和_后置条件_。 前置条件是描述函数正确执行所需条件的谓词;用户调用合约必须满足该要求。 后置条件是描述函数在正确执行时所达成条件的谓词;用户在调用函数后可以期待该条件为真。 在霍尔逻辑中,_不变量_是一个在函数执行时保留的谓词(即它不改变)。 diff --git a/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md index f46dd560981..ba75f08b2d5 100644 --- a/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -618,7 +618,7 @@ def burn(_tokenId: uint256): 与 Solidity 相比,Vyper 中没有继承。 这种有意而为之的设计选择,是为了使代码 更清晰,从而更容易受保护。 因此,要创建你自己的 Vyper ERC-721 合约,你可以 利用[此合约](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy),并修改 它以实现想要的业务逻辑。 -# 总结 {#conclusion} +## 总结 {#conclusion} 回顾一下,下面是此合约中最重要的几点: diff --git a/public/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md index b150447d98c..bf73e3877c1 100644 --- a/public/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md +++ b/public/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md @@ -587,7 +587,7 @@ B: 这些是完成实际工作的四个函数:`_transfer`、`_mint`、`_burn` 和 `_approve`。 -#### \_transfer 函数 {#\_transfer} +#### \_transfer 函数 {#_transfer} ```solidity /** @@ -652,7 +652,7 @@ B: 最后,激发一个 `Transfer` 事件。 智能合约无法访问事件,但区块链外运行的代码 可以监听事件并对其作出反应。 例如,钱包可以跟踪所有者获得更多代币事件。 -#### \_mint 和 \_burn 函数 {#\_mint-and-\_burn} +#### \_mint 和 \_burn 函数 {#_mint-and-_burn} 这两个函数(`_mint` 和 `_burn`)修改代币的总供应量。 它们都是内部函数,在原有合约中没有任何调用它们的函数。 因此,仅通过继承合约并添加你自己的逻辑, 来决定在什么条件下可以铸造新代币或消耗现有代币时, 它们才是有用的。 @@ -706,7 +706,7 @@ B: `_burn` 函数与 `_mint` 函数几乎完全相同,但它们的方向相反。 -#### \_approve 函数 {#\_approve} +#### \_approve 函数 {#_approve} 这是实际设定许可额度的函数。 请注意,它允许所有者指定 一个高于所有者当前余额的许可额度。 这是允许的,因为在转账时 会核查余额,届时可能不同于 创建许可额度时的金额。 @@ -784,7 +784,7 @@ B: 这是转账过程中要调用的挂钩函数。 该函数是空的,但如果你需要 它做一些事情,只需覆盖它即可。 -# 总结 {#conclusion} +## 总结 {#conclusion} 复习一下,这些是我认为此合约中最重要的概念(你们的看法可能与我不同) diff --git a/public/content/translations/zh/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/zh/developers/tutorials/hello-world-smart-contract-fullstack/index.md index 7000bbe9926..41788ec7d41 100644 --- a/public/content/translations/zh/developers/tutorials/hello-world-smart-contract-fullstack/index.md +++ b/public/content/translations/zh/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -260,7 +260,7 @@ Ethers.js 是一个程序库,通过以更加方便用户的方法打包[标准 npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" ``` -### 步骤 13:更新 hardhat.config.js {#step-13-update-hardhat.configjs} +### 步骤 13:更新 hardhat.config.js {#step-13-update-hardhat-configjs} 到目前为止,我们已经添加了几个依赖库和插件,现在我们需要更新 `hardhat.config.js`,以便项目使用所有这些新的组件。 diff --git a/public/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md index 1f4d1b87f55..5e4364e1d63 100644 --- a/public/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ b/public/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -76,7 +76,7 @@ Alchemy 非常自豪能够推动非同质化代币领域的一些巨头,包括 npm init 其实如何回答安装问题并不重要,以下提供一个回答的样例供参考: - +```json package name: (my-nft) version: (1.0.0) description: My first NFT! @@ -99,7 +99,7 @@ Alchemy 非常自豪能够推动非同质化代币领域的一些巨头,包括 "author": "", "license": "ISC" } - +``` 批准 package.json,我们就可以开始了! ## 步骤 7:安装[安全帽 (Hardhat)](https://hardhat.org/getting-started/#overview) {#install-hardhat} @@ -259,6 +259,7 @@ Ethers.js 是一个软件库,通过以更加方便用户的方法打包[标准 按如下所示更新你的 hardhat.config.js 代码: +```js /** * @type import('hardhat/config').HardhatUserConfig */ @@ -276,6 +277,7 @@ Ethers.js 是一个软件库,通过以更加方便用户的方法打包[标准 } }, } +``` ## 步骤 14:编写合约 {#compile-contract} diff --git a/public/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md index aaa965a2d4c..cd827bf93a8 100644 --- a/public/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md +++ b/public/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md @@ -55,8 +55,8 @@ _区块链上没有秘密_,发生的一切都是持续的、可验证的、公 | 4 | MSTORE | 空 | | 5 | PUSH1 0x04 | 0x04 | | 7 | CALLDATASIZE | CALLDATASIZE 0x04 | -| 8 | LT | CALLDATASIZE<4 | -| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE<4 | +| 8 | LT | CALLDATASIZE\<4 | +| 9 | PUSH2 0x005e | 0x5E CALLDATASIZE\<4 | | C | JUMPI | 空 | 这段代码执行了两项操作: @@ -121,8 +121,8 @@ _区块链上没有秘密_,发生的一切都是持续的、可验证的、公 | -----: | ------------ | --------------------------------------------------------------------------- | | 1AC | DUP3 | Value\* 2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1AD | GT | Value\*>2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AE | ISZERO | Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | -| 1AF | PUSH2 0x01df | 0x01DF Value\*<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AE | ISZERO | Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | +| 1AF | PUSH2 0x01df | 0x01DF Value\*\<=2^256-CALLVALUE-1 0x00 Value\* CALLVALUE 0x75 0 6 CALLVALUE | | 1B2 | JUMPI | | 如果 `Value*` 小于 2^256-CALLVALUE-1 或等于它,则跳转。 这看起来像是防止溢出的逻辑。 事实上,我们看到在偏移量 0x01DE 处进行了一些无意义的操作(例如,写入内存后马上删除)后,如果检测到溢出,合约将回滚,这是正常行为。 @@ -433,7 +433,7 @@ Etherscan 指出 `1C` 是一个未知操作码,因为[它是在 Etherscan 编 | 194 | DUP3 | 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 195 | DUP5 | CALLDATASIZE 0x04 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 196 | SUB | CALLDATASIZE-4 0x20 0x00 0x04 CALLDATASIZE 0x0153 0xDA | -| 197 | SLT | CALLDATASIZE-4<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | +| 197 | SLT | CALLDATASIZE-4\<32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 198 | ISZERO | CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 199 | PUSH2 0x01a0 | 0x01A0 CALLDATASIZE-4>=32 0x00 0x04 CALLDATASIZE 0x0153 0xDA | | 19C | JUMPI | 0x00 0x04 CALLDATASIZE 0x0153 0xDA | @@ -473,8 +473,8 @@ Etherscan 指出 `1C` 是一个未知操作码,因为[它是在 Etherscan 编 | 172 | DUP2 | 0x04 calldataload(4) 0x04 calldataload(4) 0xDA | | 173 | SLOAD | Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | | 174 | DUP2 | calldataload(4) Storage[4] calldataload(4) 0x04 calldataload(4) 0xDA | -| 175 | LT | calldataload(4) package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ published: 2020-10-16 "typescript": "^3.8.3" } } +```
                                      tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ published: 2020-10-16 "target": "ES2018" } } +```
                                      @@ -104,6 +108,7 @@ published: 2020-10-16
                                      .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ published: 2020-10-16 } ] } +```
                                      @@ -709,6 +715,7 @@ contract BasicToken is ERC20 {
                                      BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ contract BasicToken is ERC20 { "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                                      ## 第 4 步:测试智能合约 [文档链接](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md index ebd8f0085c6..0b062cac997 100644 --- a/public/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md +++ b/public/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md @@ -45,6 +45,7 @@ published: 2020-10-16
                                      package.json +```json { "name": "tutorial", "version": "1.0.0", @@ -68,12 +69,14 @@ published: 2020-10-16 "typescript": "^3.8.3" } } +```
                                      tsconfig.json +```json { "compilerOptions": { "declaration": true, @@ -90,6 +93,7 @@ published: 2020-10-16 "target": "ES2018" } } +```
                                      @@ -104,6 +108,7 @@ published: 2020-10-16
                                      .eslintrc.js +```js module.exports = { "env": { "es6": true @@ -638,6 +643,7 @@ published: 2020-10-16 } ] } +```
                                      @@ -709,6 +715,7 @@ contract BasicToken is ERC20 {
                                      BasicToken.json +```json { "abi": [ { @@ -1004,7 +1011,7 @@ contract BasicToken is ERC20 { "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161102660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161109760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fde6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061104e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fbb6023913960400191505060405180910390fd5b610cc3838383610fb5565b610d2e81604051806060016040528060268152602001611000602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6d9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dc1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610edf578082015181840152602081019050610ec4565b50505050905090810190601f168015610f0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081c840f087cef92feccb03fadc678b2708c331896ec5432b5d4c675f27b6d3e664736f6c63430006020033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x46C JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x586 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x5A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x243 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x325 PUSH2 0x799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x34A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x392 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x908 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x57C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x551 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x57C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x55F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59A PUSH2 0x593 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP5 DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH2 0x67C DUP5 PUSH2 0x5C7 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x677 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1026 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x62D PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x6AB PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x742 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6BC PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x831 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x806 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x831 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x814 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FE PUSH2 0x848 PUSH2 0x9AD JUMP JUMPDEST DUP5 PUSH2 0x8F9 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1097 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x872 PUSH2 0x9AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH2 0x915 PUSH2 0x9AD JUMP JUMPDEST DUP5 DUP5 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1073 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFDE PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x104E PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFBB PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCC3 DUP4 DUP4 DUP4 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1000 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE6D SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDC1 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF2D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEDF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xF0C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 SUB SWAP1 P - +```
                                      ## 第 4 步:测试智能合约 [文档链接](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) {#step-4-test-your-smart-contract} diff --git a/public/content/translations/zh/roadmap/merge/index.md b/public/content/translations/zh/roadmap/merge/index.md index 9e5acd2856a..69d942972a1 100644 --- a/public/content/translations/zh/roadmap/merge/index.md +++ b/public/content/translations/zh/roadmap/merge/index.md @@ -92,7 +92,7 @@ title="去中心化应用程序和智能合约开发者" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -合并导致共识层发生变化,其中还包括以下方面的变化:< +合并导致共识层发生变化,其中还包括以下方面的变化:
                                      • 区块结构
                                      • diff --git a/public/images/dapps/uni.png b/public/images/dapps/uni.png index eb37088b410..75eaaf8cb41 100644 Binary files a/public/images/dapps/uni.png and b/public/images/dapps/uni.png differ diff --git a/public/images/dapps/warpcast.png b/public/images/dapps/warpcast.png new file mode 100644 index 00000000000..8116e53f9b0 Binary files /dev/null and b/public/images/dapps/warpcast.png differ diff --git a/public/images/dev-tools/waffle.png b/public/images/dev-tools/waffle.png deleted file mode 100644 index 97306d35871..00000000000 Binary files a/public/images/dev-tools/waffle.png and /dev/null differ diff --git a/public/images/resources/beaconcha-in.png b/public/images/resources/beaconcha-in.png new file mode 100644 index 00000000000..58cb0f5e3cf Binary files /dev/null and b/public/images/resources/beaconcha-in.png differ diff --git a/public/images/resources/blobsguru.png b/public/images/resources/blobsguru.png new file mode 100644 index 00000000000..19ce09eb8c8 Binary files /dev/null and b/public/images/resources/blobsguru.png differ diff --git a/public/images/resources/blocknative.png b/public/images/resources/blocknative.png new file mode 100644 index 00000000000..3c91bce7722 Binary files /dev/null and b/public/images/resources/blocknative.png differ diff --git a/public/images/resources/blockscout.webp b/public/images/resources/blockscout.webp new file mode 100644 index 00000000000..2224fa970e8 Binary files /dev/null and b/public/images/resources/blockscout.webp differ diff --git a/public/images/resources/cryptowerk.png b/public/images/resources/cryptowerk.png new file mode 100644 index 00000000000..efc0405bb9a Binary files /dev/null and b/public/images/resources/cryptowerk.png differ diff --git a/public/images/resources/defi-llama.png b/public/images/resources/defi-llama.png new file mode 100644 index 00000000000..c0f44698920 Binary files /dev/null and b/public/images/resources/defi-llama.png differ diff --git a/public/images/resources/defi-market-cap.png b/public/images/resources/defi-market-cap.png new file mode 100644 index 00000000000..64371a8c8ef Binary files /dev/null and b/public/images/resources/defi-market-cap.png differ diff --git a/public/images/resources/defi-scan.png b/public/images/resources/defi-scan.png new file mode 100644 index 00000000000..c10eca423be Binary files /dev/null and b/public/images/resources/defi-scan.png differ diff --git a/public/images/resources/eas.png b/public/images/resources/eas.png new file mode 100644 index 00000000000..f6d4b65cb45 Binary files /dev/null and b/public/images/resources/eas.png differ diff --git a/public/images/resources/eigenphi.png b/public/images/resources/eigenphi.png new file mode 100644 index 00000000000..8cfa8873cff Binary files /dev/null and b/public/images/resources/eigenphi.png differ diff --git a/public/images/resources/eth-glyph-black.png b/public/images/resources/eth-glyph-black.png new file mode 100644 index 00000000000..991c4d27aa5 Binary files /dev/null and b/public/images/resources/eth-glyph-black.png differ diff --git a/public/images/resources/eth-glyph-blue-circle.png b/public/images/resources/eth-glyph-blue-circle.png new file mode 100644 index 00000000000..b811169710d Binary files /dev/null and b/public/images/resources/eth-glyph-blue-circle.png differ diff --git a/public/images/resources/eth-glyph-e-org.png b/public/images/resources/eth-glyph-e-org.png new file mode 100644 index 00000000000..dfe97a1db86 Binary files /dev/null and b/public/images/resources/eth-glyph-e-org.png differ diff --git a/public/images/resources/eth-glyph-rainbow.frame.png b/public/images/resources/eth-glyph-rainbow.frame.png new file mode 100644 index 00000000000..ff150fe28e4 Binary files /dev/null and b/public/images/resources/eth-glyph-rainbow.frame.png differ diff --git a/public/images/resources/etherealize.png b/public/images/resources/etherealize.png new file mode 100644 index 00000000000..999fc0c5c30 Binary files /dev/null and b/public/images/resources/etherealize.png differ diff --git a/public/images/resources/etherscan.png b/public/images/resources/etherscan.png new file mode 100644 index 00000000000..77cba5c68c8 Binary files /dev/null and b/public/images/resources/etherscan.png differ diff --git a/public/images/resources/ethproofs.png b/public/images/resources/ethproofs.png new file mode 100644 index 00000000000..d40c4730fff Binary files /dev/null and b/public/images/resources/ethproofs.png differ diff --git a/public/images/resources/ethstaker.png b/public/images/resources/ethstaker.png new file mode 100644 index 00000000000..ad100752a55 Binary files /dev/null and b/public/images/resources/ethstaker.png differ diff --git a/public/images/resources/farcaster.png b/public/images/resources/farcaster.png new file mode 100644 index 00000000000..e063ce20dc6 Binary files /dev/null and b/public/images/resources/farcaster.png differ diff --git a/public/images/resources/growthepie.png b/public/images/resources/growthepie.png new file mode 100644 index 00000000000..1a633a3b216 Binary files /dev/null and b/public/images/resources/growthepie.png differ diff --git a/public/images/resources/l2beat.png b/public/images/resources/l2beat.png new file mode 100644 index 00000000000..66d6a7ab17e Binary files /dev/null and b/public/images/resources/l2beat.png differ diff --git a/public/images/resources/mev-watch.png b/public/images/resources/mev-watch.png new file mode 100644 index 00000000000..ae7257c4cc0 Binary files /dev/null and b/public/images/resources/mev-watch.png differ diff --git a/public/images/resources/nftgo.png b/public/images/resources/nftgo.png new file mode 100644 index 00000000000..d2deb18179c Binary files /dev/null and b/public/images/resources/nftgo.png differ diff --git a/public/images/resources/nodewatch.png b/public/images/resources/nodewatch.png new file mode 100644 index 00000000000..3c7927d38a6 Binary files /dev/null and b/public/images/resources/nodewatch.png differ diff --git a/public/images/resources/rated-network.png b/public/images/resources/rated-network.png new file mode 100644 index 00000000000..606e084ce40 Binary files /dev/null and b/public/images/resources/rated-network.png differ diff --git a/public/images/resources/relayscan.png b/public/images/resources/relayscan.png new file mode 100644 index 00000000000..b8eb5155749 Binary files /dev/null and b/public/images/resources/relayscan.png differ diff --git a/public/images/resources/rwa.png b/public/images/resources/rwa.png new file mode 100644 index 00000000000..85d737daf0c Binary files /dev/null and b/public/images/resources/rwa.png differ diff --git a/public/images/resources/stablecoins-wtf.png b/public/images/resources/stablecoins-wtf.png new file mode 100644 index 00000000000..32c7b8e92db Binary files /dev/null and b/public/images/resources/stablecoins-wtf.png differ diff --git a/public/images/resources/supermajority.png b/public/images/resources/supermajority.png new file mode 100644 index 00000000000..dfaf8f9262d Binary files /dev/null and b/public/images/resources/supermajority.png differ diff --git a/public/images/resources/txcity.png b/public/images/resources/txcity.png new file mode 100644 index 00000000000..f317fcd0e58 Binary files /dev/null and b/public/images/resources/txcity.png differ diff --git a/public/images/resources/ultrasound-money.png b/public/images/resources/ultrasound-money.png new file mode 100644 index 00000000000..147154193b5 Binary files /dev/null and b/public/images/resources/ultrasound-money.png differ diff --git a/public/images/resources/visa-onchain-analytcs.png b/public/images/resources/visa-onchain-analytcs.png new file mode 100644 index 00000000000..06454e4fb26 Binary files /dev/null and b/public/images/resources/visa-onchain-analytcs.png differ diff --git a/public/images/start-with-ethereum/man-doge-playing.png b/public/images/start-with-ethereum/man-doge-playing.png new file mode 100644 index 00000000000..7ca906408ef Binary files /dev/null and b/public/images/start-with-ethereum/man-doge-playing.png differ diff --git a/src/components/AreaChart/index.tsx b/src/components/AreaChart/index.tsx new file mode 100644 index 00000000000..94ab25f068f --- /dev/null +++ b/src/components/AreaChart/index.tsx @@ -0,0 +1,138 @@ +"use client" + +import { FaArrowTrendUp } from "react-icons/fa6" +import { + Area, + AreaChart as RechartsAreaChart, + CartesianGrid, + XAxis, +} from "recharts" + +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card" +import { + ChartConfig, + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@/components/ui/chart" + +type AreaChartDataPoint = { xValue: string; yValue: number } + +/** + * AreaChartProps defines the properties for the AreaChart component. + * + * @property {AreaChartDataPoint[]} data - The data to be displayed in the chart. Each object should have an `xValue` and `yValue` property. + * @property {string} [title] - The title of the chart. + * @property {string} [description] - The description of the chart. + * @property {string} [footerText] - The footer text of the chart. + * @property {string} [footerSubText] - The footer subtext of the chart. + */ +type AreaChartProps = { + data: AreaChartDataPoint[] + title?: string + description?: string + footerText?: string + footerSubText?: string +} + +const defaultChartConfig = { + value: { + label: "Value", + color: "hsl(var(--accent-a))", + }, +} satisfies ChartConfig + +/** + * AreaChart component renders an area chart with the provided data and optional title, description, footer text, and footer subtext. + * + * @param {AreaChartProps} props - The properties for the AreaChart component. + * @returns {JSX.Element} The rendered AreaChart component. + */ +export function AreaChart({ + data, + title, + description, + footerText, + footerSubText, +}: AreaChartProps) { + return ( + + + {title && {title}} + {description && {description}} + + + + + + value.slice(0, 3)} + /> + } /> + + + + + + + + + + + {(footerText || footerSubText) && ( + +
                                        +
                                        + {footerText && ( +
                                        + {footerText} +
                                        + )} + {footerSubText && ( +
                                        + {footerSubText} +
                                        + )} +
                                        +
                                        +
                                        + )} +
                                        + ) +} diff --git a/src/components/Banners/BugBountyBanner/index.tsx b/src/components/Banners/BugBountyBanner/index.tsx index 863350cf30c..d589bf516c5 100644 --- a/src/components/Banners/BugBountyBanner/index.tsx +++ b/src/components/Banners/BugBountyBanner/index.tsx @@ -9,12 +9,7 @@ const BugBountyBanner = () => (

                                        - Prague code is now in scope! The Prague Audit Competition is running on{" "} - - Cantina - {" "} - during 21st of February - 21st of March, with up to $2,000,000 in - rewards! + Pectra is now in scope. After the cantina competition until mainnet activation, Pectra issues have a 2x reward multiplier!

                                        diff --git a/src/components/Banners/DismissableBanner/index.tsx b/src/components/Banners/DismissableBanner/index.tsx index cf5885a704a..32accfbdc64 100644 --- a/src/components/Banners/DismissableBanner/index.tsx +++ b/src/components/Banners/DismissableBanner/index.tsx @@ -1,3 +1,5 @@ +"use client" + import { useEffect, useState } from "react" import { MdClose } from "react-icons/md" diff --git a/src/components/BarChart/index.tsx b/src/components/BarChart/index.tsx new file mode 100644 index 00000000000..983b63f8fae --- /dev/null +++ b/src/components/BarChart/index.tsx @@ -0,0 +1,120 @@ +"use client" + +import { FaArrowTrendUp } from "react-icons/fa6" +import { + Bar, + BarChart as RechartsBarChart, + CartesianGrid, + XAxis, +} from "recharts" + +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card" +import { + ChartConfig, + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from "@/components/ui/chart" + +type BarChartDataPoint = { category: string; value: number } + +/** + * BarChartProps defines the properties for the BarChart component. + * + * @property {BarChartItem[]} data - The data to be displayed in the chart. Each object should have a `category` and `value` property. + * @property {string} [title] - The title of the chart. + * @property {string} [description] - The description of the chart. + * @property {string} [footerText] - The footer text of the chart. + * @property {string} [footerSubText] - The footer subtext of the chart. + */ +type BarChartProps = { + data: BarChartDataPoint[] + title?: string + description?: string + footerText?: string + footerSubText?: string +} + +const defaultChartConfig = { + value: { + label: "Value", + color: "hsl(var(--accent-a))", + }, +} satisfies ChartConfig + +/** + * BarChart component renders a bar chart with the provided data and optional title, description, footer text, and footer subtext. + * + * @param {BarChartProps} props - The properties for the BarChart component. + * @returns {JSX.Element} The rendered BarChart component. + */ +export function BarChart({ + data, + title, + description, + footerText, + footerSubText, +}: BarChartProps) { + return ( + + + {title && {title}} + {description && {description}} + + + + + + + } /> + + + + + {(footerText || footerSubText) && ( + +
                                        +
                                        + {footerText && ( +
                                        + {footerText} +
                                        + )} + {footerSubText && ( +
                                        + {footerSubText} +
                                        + )} +
                                        +
                                        +
                                        + )} +
                                        + ) +} diff --git a/src/components/Breadcrumbs/Breadcrumbs.stories.tsx b/src/components/Breadcrumbs/Breadcrumbs.stories.tsx index 639b4ff7a09..f0174f0b747 100644 --- a/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +++ b/src/components/Breadcrumbs/Breadcrumbs.stories.tsx @@ -14,9 +14,9 @@ export default meta export const Breadcrumbs: StoryObj = { render: () => ( - - - + + + ), } diff --git a/src/components/Breadcrumbs/index.tsx b/src/components/Breadcrumbs/index.tsx index 1cc8a998e2b..fff98de3952 100644 --- a/src/components/Breadcrumbs/index.tsx +++ b/src/components/Breadcrumbs/index.tsx @@ -4,6 +4,7 @@ import { useLocale } from "next-intl" import type { Lang } from "@/lib/types" import { isLangRightToLeft } from "@/lib/utils/translations" +import { normalizeSlug } from "@/lib/utils/url" import { Breadcrumb, @@ -16,7 +17,6 @@ import { } from "../ui/breadcrumb" import { useTranslation } from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" export type BreadcrumbsProps = BreadcrumbProps & { slug: string @@ -28,27 +28,29 @@ type Crumb = { text: string } +// TODO: update docs after removing pathname and slug logic + // Generate crumbs from slug -// e.g. "/en/eth2/proof-of-stake/" will generate: +// e.g. "/eth2/proof-of-stake/" will generate: // [ -// { fullPath: "/en/", text: "HOME" }, -// { fullPath: "/en/eth2/", text: "ETH2" }, -// { fullPath: "/en/eth2/proof-of-stake/", text: "PROOF OF STAKE" }, +// { fullPath: "/", text: "HOME" }, +// { fullPath: "/eth2/", text: "ETH2" }, +// { fullPath: "/eth2/proof-of-stake/", text: "PROOF OF STAKE" }, // ] // `startDepth` will trim breadcrumbs // e.g. startDepth=1 will generate: // [ -// { fullPath: "/en/eth2/", text: "ETH2" }, -// { fullPath: "/en/eth2/proof-of-stake/", text: "PROOF OF STAKE" }, +// { fullPath: "/eth2/", text: "ETH2" }, +// { fullPath: "/eth2/proof-of-stake/", text: "PROOF OF STAKE" }, // ] const Breadcrumbs = ({ slug, startDepth = 0, ...props }: BreadcrumbsProps) => { const { t } = useTranslation("common") const locale = useLocale() - const pathname = usePathname() const dir = isLangRightToLeft(locale! as Lang) ? "rtl" : "ltr" + const normalizedSlug = normalizeSlug(slug) - const hasHome = pathname !== "/" - const slugChunk = slug.split("/") + const hasHome = normalizedSlug !== "" + const slugChunk = normalizedSlug.split("/") const sliced = slugChunk.filter((item) => !!item) const crumbs = [ @@ -62,7 +64,7 @@ const Breadcrumbs = ({ slug, startDepth = 0, ...props }: BreadcrumbsProps) => { ] : []), ...sliced.map((path, idx) => ({ - fullPath: slugChunk.slice(0, idx + 2).join("/") + "/", + fullPath: "/" + sliced.slice(0, idx + 1).join("/"), text: t(path), })), ] @@ -73,8 +75,7 @@ const Breadcrumbs = ({ slug, startDepth = 0, ...props }: BreadcrumbsProps) => { {crumbs.map(({ fullPath, text }) => { - const normalizePath = (path) => path.replace(/\/$/, "") // Remove trailing slash - const isCurrentPage = normalizePath(slug) === normalizePath(fullPath) + const isCurrentPage = normalizedSlug === fullPath return ( diff --git a/src/components/ButtonDropdown.tsx b/src/components/ButtonDropdown.tsx index f1fe5db2b2e..c2ef53c0e75 100644 --- a/src/components/ButtonDropdown.tsx +++ b/src/components/ButtonDropdown.tsx @@ -1,3 +1,5 @@ +"use client" + import React, { useState } from "react" import { MdMenu } from "react-icons/md" diff --git a/src/components/CardList.tsx b/src/components/CardList.tsx index 2db1cdcd518..f6230250eb6 100644 --- a/src/components/CardList.tsx +++ b/src/components/CardList.tsx @@ -1,3 +1,5 @@ +"use client" + import TwImage, { type ImageProps } from "next/image" import type { ReactNode } from "react" diff --git a/src/components/Codeblock.tsx b/src/components/Codeblock.tsx index 5273fbcf4bd..f4c6989977a 100644 --- a/src/components/Codeblock.tsx +++ b/src/components/Codeblock.tsx @@ -1,3 +1,5 @@ +"use client" + import React, { useState } from "react" import Highlight, { defaultProps, diff --git a/src/components/ConnectToEthereumButton/index.tsx b/src/components/ConnectToEthereumButton/index.tsx new file mode 100644 index 00000000000..dab6f943ada --- /dev/null +++ b/src/components/ConnectToEthereumButton/index.tsx @@ -0,0 +1,34 @@ +import { ConnectButton } from "@rainbow-me/rainbowkit" + +import EthGlyphSolid from "@/components/icons/eth-glyph-solid.svg" +import { Button } from "@/components/ui/buttons/Button" + +const ConnectToEthereumButton = ({ onClick }: { onClick: () => void }) => { + return ( + + {({ account, chain, openConnectModal, mounted }) => { + const ready = mounted + if (!ready) return null + + if (account && chain) { + return + } + + return ( + + ) + }} + + ) +} + +export default ConnectToEthereumButton diff --git a/src/components/Content/ai-agents/AiAgentProductLists.tsx b/src/components/Content/ai-agents/AiAgentProductLists.tsx index 6ca7f69ac4c..35d238c2a55 100644 --- a/src/components/Content/ai-agents/AiAgentProductLists.tsx +++ b/src/components/Content/ai-agents/AiAgentProductLists.tsx @@ -89,8 +89,8 @@ const AiAgentProductLists = ({ list }: { list: string }) => { contentItems: [

                                        Botto creates art and NFTs, with the community voting on its best - work. Users formed a DAO that guides Botto’s artistic evolution while also - earning token rewards for participation. + work. Users formed a DAO that guides Botto’s artistic evolution + while also earning token rewards for participation.

                                        ,
                                        { className="m-2 max-w-[132px] transform shadow transition-transform duration-100 hover:scale-[1.02] hover:rounded hover:bg-background-highlight focus:scale-[1.02] focus:rounded" key={contributor.login} > - {contributor.name}({ } previousExpandedRef.current = expanded - }, [expanded]) + }, [expanded, matomoEventCategory, table]) useEffect(() => { if (JSON.stringify(data) !== JSON.stringify(previousDataRef.current)) { @@ -111,7 +111,7 @@ const DataTable = ({ return () => clearTimeout(timer) } - }, [data]) + }, [data, table]) return (
                                        diff --git a/src/components/DocsNav.tsx b/src/components/DocsNav.tsx index b580805ecab..90a2b91450a 100644 --- a/src/components/DocsNav.tsx +++ b/src/components/DocsNav.tsx @@ -1,3 +1,5 @@ +"use client" + import { FaChevronLeft, FaChevronRight } from "react-icons/fa" import { TranslationKey } from "@/lib/types" diff --git a/src/components/EnergyConsumptionChart/index.tsx b/src/components/EnergyConsumptionChart/index.tsx index 5e9bc1795e3..89ba0017f87 100644 --- a/src/components/EnergyConsumptionChart/index.tsx +++ b/src/components/EnergyConsumptionChart/index.tsx @@ -1,3 +1,5 @@ +"use client" + import React from "react" import { BarElement, diff --git a/src/components/EventCard.tsx b/src/components/EventCard.tsx index 3996f8d78f2..d52b4ce94ae 100644 --- a/src/components/EventCard.tsx +++ b/src/components/EventCard.tsx @@ -45,6 +45,7 @@ const EventCard: React.FC = ({
                                        {imageUrl ? ( + // eslint-disable-next-line @next/next/no-img-element {title} { + const { showFeedbackWidget } = useContext(FeedbackWidgetContext) const { t } = useTranslation("common") const { offsetBottom, @@ -27,6 +32,9 @@ const FeedbackWidget = () => { isExpanded, isOpen, } = useFeedbackWidget() + + if (!showFeedbackWidget) return null + return ( <> = { args: { - breadcrumbs: { slug: "/en/staking/solo/" }, + breadcrumbs: { slug: "/staking/solo/" }, title: "Solo stake your Eth", }, } diff --git a/src/components/History/NetworkUpgradeSummary.tsx b/src/components/History/NetworkUpgradeSummary.tsx index 410a2ead61a..84d90640be5 100644 --- a/src/components/History/NetworkUpgradeSummary.tsx +++ b/src/components/History/NetworkUpgradeSummary.tsx @@ -1,3 +1,5 @@ +"use client" + import { useEffect, useState } from "react" import { useLocale } from "next-intl" diff --git a/src/components/Homepage/useHome.ts b/src/components/Homepage/useHome.ts index 1833663d64e..a70d36f7bc4 100644 --- a/src/components/Homepage/useHome.ts +++ b/src/components/Homepage/useHome.ts @@ -28,12 +28,10 @@ import SimpleTokenContent from "!!raw-loader!@/data/SimpleToken.sol" import SimpleWalletContent from "!!raw-loader!@/data/SimpleWallet.sol" import { useRtlFlip } from "@/hooks/useRtlFlip" import useTranslation from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" export const useHome = () => { const { t } = useTranslation(["common", "page-index"]) const locale = useLocale() - const asPath = usePathname() const [isModalOpen, setModalOpen] = useState(false) const [activeCode, setActiveCode] = useState(0) @@ -214,7 +212,6 @@ export const useHome = () => { return { t, locale, - asPath, dir: direction, isModalOpen, setModalOpen, diff --git a/src/components/I18nProvider.tsx b/src/components/I18nProvider.tsx new file mode 100644 index 00000000000..fcf7e14700c --- /dev/null +++ b/src/components/I18nProvider.tsx @@ -0,0 +1,30 @@ +"use client" + +import { type AbstractIntlMessages, NextIntlClientProvider } from "next-intl" + +export default function I18nProvider({ + children, + locale, + messages, +}: { + children: React.ReactNode + locale: string + messages: AbstractIntlMessages +}) { + return ( + { + // Suppress errors by default, enable if needed to debug + // console.error(error) + }} + getMessageFallback={({ key }) => { + const keyOnly = key.split(".").pop() + return keyOnly || key + }} + > + {children} + + ) +} diff --git a/src/components/ListenToPlayer/ListenToPlayer.stories.tsx b/src/components/ListenToPlayer/ListenToPlayer.stories.tsx index 7dcd83b55eb..d5f26d30a0f 100644 --- a/src/components/ListenToPlayer/ListenToPlayer.stories.tsx +++ b/src/components/ListenToPlayer/ListenToPlayer.stories.tsx @@ -1,46 +1,42 @@ import type { Meta, StoryObj } from "@storybook/react" +import { expect } from "@storybook/test" +import { waitFor } from "@storybook/test" +import { fireEvent } from "@storybook/test" +import { within } from "@storybook/test" -import { langViewportModes } from "../../../.storybook/modes" -import { BaseLayout as BaseLayoutComponent } from "../../layouts/BaseLayout" - -import ListenToPlayer from "." +import Component from "." const meta = { - title: "Atoms / Media & Icons / ListenToPlayer / ListenToPlayer", - component: BaseLayoutComponent, - parameters: { - layout: "fullscreen", - chromatic: { - modes: { - ...langViewportModes, - }, - }, - }, - argTypes: { - children: { - table: { - disable: true, - }, - }, - lastDeployLocaleTimestamp: { - table: { - disable: true, - }, - }, + title: "Atoms / Media & Icons / ListenToPlayer", + component: Component, + args: { + slug: "/eth/", }, -} satisfies Meta +} satisfies Meta export default meta -export const BaseLayout: StoryObj = { - args: { - children: ( -
                                        - -
                                        - ), - contentIsOutdated: false, - contentNotTranslated: false, - lastDeployLocaleTimestamp: "May 14, 2021", +type Story = StoryObj + +export const PlayerButton: Story = {} + +export const PlayerWidget: Story = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement) + const canvasParent = within(canvasElement.parentElement!) + + const playerButton = canvas.getByRole("button") + await waitFor(() => { + // TODO: hacky way to wait for the sound to be loaded + expect(playerButton.textContent).not.toContain("0 min") + }) + + fireEvent.click(playerButton) + + await waitFor(async () => { + await expect( + canvasParent.getByTestId("player-widget-modal") + ).toBeVisible() + }) }, } diff --git a/src/components/ListenToPlayer/PlayerWidget/index.tsx b/src/components/ListenToPlayer/PlayerWidget/index.tsx index c2114e23c9b..38ff1995d4e 100644 --- a/src/components/ListenToPlayer/PlayerWidget/index.tsx +++ b/src/components/ListenToPlayer/PlayerWidget/index.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef, useState } from "react" +import { useCallback, useEffect, useRef, useState } from "react" import { IoClose } from "react-icons/io5" import { @@ -75,15 +75,18 @@ const PlayerWidget = ({ const [showSpeedMenu, setShowSpeedMenu] = useState(false) const speedMenuRef = useRef(null) - const calculateNewTime = (clientX: number) => { - if (!scrubBarRef.current) return 0 - const rect = scrubBarRef.current.getBoundingClientRect() - const position = Math.max( - 0, - Math.min(1, (clientX - rect.left) / rect.width) - ) - return duration * position - } + const calculateNewTime = useCallback( + (clientX: number) => { + if (!scrubBarRef.current) return 0 + const rect = scrubBarRef.current.getBoundingClientRect() + const position = Math.max( + 0, + Math.min(1, (clientX - rect.left) / rect.width) + ) + return duration * position + }, + [duration] + ) const handleMouseDown = (e: React.MouseEvent) => { setIsDragging(true) @@ -91,11 +94,14 @@ const PlayerWidget = ({ onSeek(newTime) } - const handleMouseMove = (e: MouseEvent) => { - if (!isDragging) return - const newTime = calculateNewTime(e.clientX) - onSeek(newTime) - } + const handleMouseMove = useCallback( + (e: MouseEvent) => { + if (!isDragging) return + const newTime = calculateNewTime(e.clientX) + onSeek(newTime) + }, + [isDragging, calculateNewTime, onSeek] + ) const handleMouseUp = () => { setIsDragging(false) @@ -110,7 +116,7 @@ const PlayerWidget = ({ document.removeEventListener("mousemove", handleMouseMove) document.removeEventListener("mouseup", handleMouseUp) } - }, [isDragging]) + }, [handleMouseMove, isDragging]) useEffect(() => { const handleClickOutside = (event: MouseEvent) => { diff --git a/src/components/ListenToPlayer/TopOfPagePlayer/index.tsx b/src/components/ListenToPlayer/TopOfPagePlayer/index.tsx index 02fe5b93ddc..11588393e77 100644 --- a/src/components/ListenToPlayer/TopOfPagePlayer/index.tsx +++ b/src/components/ListenToPlayer/TopOfPagePlayer/index.tsx @@ -1,4 +1,5 @@ import { PauseCircleIcon, PlayCircleIcon } from "@/components/icons/listen-to" +import { Button } from "@/components/ui/buttons/Button" import { trackCustomEvent } from "@/lib/utils/matomo" @@ -18,20 +19,21 @@ const TopOfPagePlayer = ({ handlePlayPause, }: TopOfPagePlayerProps) => { return ( -
                                        -
                                        { - if (startedPlaying) { - trackCustomEvent({ - eventCategory: "Audio", - eventAction: "click", - eventName: "start", - }) - } - handlePlayPause() - }} - > +
                                        -
                                        + ) } diff --git a/src/components/ListenToPlayer/index.tsx b/src/components/ListenToPlayer/index.tsx index 6e012ad0917..e028b688ed0 100644 --- a/src/components/ListenToPlayer/index.tsx +++ b/src/components/ListenToPlayer/index.tsx @@ -1,5 +1,8 @@ +"use client" + import { useContext, useEffect, useState } from "react" import { Howl } from "howler" +import { useLocale } from "next-intl" import { Portal } from "@radix-ui/react-portal" import PlayerWidget from "@/components/ListenToPlayer/PlayerWidget" @@ -14,6 +17,7 @@ import { FeedbackWidgetContext } from "@/contexts/FeedbackWidgetContext" import { useTranslation } from "@/hooks/useTranslation" const ListenToPlayer = ({ slug }: { slug: string }) => { + const locale = useLocale() const { setShowFeedbackWidget } = useContext(FeedbackWidgetContext) const { playlist, index } = getPlaylistBySlug(slug) @@ -84,12 +88,14 @@ const ListenToPlayer = ({ slug }: { slug: string }) => { } audioPlayer.unload() } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [currentTrackIndex]) useEffect(() => { if (sound && autoplay && isPlaying) { sound.play() } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [sound]) useEffect(() => { @@ -116,6 +122,9 @@ const ListenToPlayer = ({ slug }: { slug: string }) => { } }, [playbackSpeed, sound]) + // Only show the player if the locale is English and there is a playlist, renders null early + if (!playlist.length || index === -1 || locale !== "en") return null + const handlePlayPause = () => { if (!sound) return @@ -205,8 +214,6 @@ const ListenToPlayer = ({ slug }: { slug: string }) => { }) } - if (!playlist.length || index === -1) return null - return ( <> { isExpanded ? "bottom-4" : "bottom-0", "fixed left-1/2 right-auto z-10 -translate-x-1/2 sm:left-auto sm:right-5 sm:translate-x-0" )} + data-testid="player-widget-modal" >
                                        { description: t("nav-get-started-description"), icon: BsPinAngle, items: [ + { + label: t("nav-start-with-crypto-title"), + description: t("nav-start-with-crypto-description"), + href: "/start/", + }, { label: t("nav-find-wallet-label"), description: t("nav-find-wallet-description"), diff --git a/src/components/NotFoundPage/index.tsx b/src/components/NotFoundPage/index.tsx new file mode 100644 index 00000000000..a1b617035b1 --- /dev/null +++ b/src/components/NotFoundPage/index.tsx @@ -0,0 +1,24 @@ +import MainArticle from "../MainArticle" +import Translation from "../Translation" +import InlineLink from "../ui/Link" + +function NotFoundPage() { + return ( +
                                        + +

                                        + +

                                        +

                                        + {" "} + + + + . +

                                        +
                                        +
                                        + ) +} + +export default NotFoundPage diff --git a/src/components/ProductTable/index.tsx b/src/components/ProductTable/index.tsx index 76a5f3f2568..d2d2e412e62 100644 --- a/src/components/ProductTable/index.tsx +++ b/src/components/ProductTable/index.tsx @@ -94,6 +94,7 @@ const ProductTable = ({ // TODO: Fix this, removed to avoid infinite re-renders // router.replace(pathname, undefined, { shallow: true }) } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [router.query]) // Update or remove preset filters diff --git a/src/components/Quiz/QuizWidget/index.tsx b/src/components/Quiz/QuizWidget/index.tsx index e1c06b86ab0..cc1e707815d 100644 --- a/src/components/Quiz/QuizWidget/index.tsx +++ b/src/components/Quiz/QuizWidget/index.tsx @@ -1,3 +1,4 @@ +"use client" import { Dispatch, SetStateAction, useEffect, useRef } from "react" import type { QuizKey, QuizStatus, UserStats } from "@/lib/types" diff --git a/src/components/Quiz/QuizWidget/useQuizWidget.tsx b/src/components/Quiz/QuizWidget/useQuizWidget.tsx index 3a07b09c452..77384ed2cc8 100644 --- a/src/components/Quiz/QuizWidget/useQuizWidget.tsx +++ b/src/components/Quiz/QuizWidget/useQuizWidget.tsx @@ -64,6 +64,7 @@ export const useQuizWidget = ({ setQuizData(quiz) } + // eslint-disable-next-line react-hooks/exhaustive-deps useEffect(initialize, [quizKey]) const currentQuestionIndex = userQuizProgress.length diff --git a/src/components/Quiz/stories/QuizButtonGroup.stories.tsx b/src/components/Quiz/stories/QuizButtonGroup.stories.tsx index 319431e21f9..3c622a92739 100644 --- a/src/components/Quiz/stories/QuizButtonGroup.stories.tsx +++ b/src/components/Quiz/stories/QuizButtonGroup.stories.tsx @@ -1,4 +1,3 @@ -import { useTranslations } from "next-intl" import type { Meta, StoryObj } from "@storybook/react" import { fn } from "@storybook/test" @@ -7,6 +6,8 @@ import { QuizContent } from "../QuizWidget/QuizContent" import { LAYER_2_QUIZ_TITLE_KEY, layer2Questions } from "./utils" +import useTranslation from "@/hooks/useTranslation" + const meta = { title: "Molecules / Display Content / Quiz / QuizWidget / ButtonGroup", component: QuizButtonGroup, @@ -28,7 +29,7 @@ const meta = { }, decorators: [ (Story, { args }) => { - const t = useTranslations() + const { t } = useTranslation() return ( { - const t = useTranslations() + const { t } = useTranslation() return ( { - const t = useTranslations() + const { t } = useTranslation() return ( { - const t = useTranslations() + const { t } = useTranslation() return ( diff --git a/src/components/Quiz/stories/QuizzesList.stories.tsx b/src/components/Quiz/stories/QuizzesList.stories.tsx index d58e16f7ca9..0cbb9c05f27 100644 --- a/src/components/Quiz/stories/QuizzesList.stories.tsx +++ b/src/components/Quiz/stories/QuizzesList.stories.tsx @@ -1,4 +1,3 @@ -import { useTranslations } from "next-intl" import type { Meta, StoryObj } from "@storybook/react" import { fn } from "@storybook/test" @@ -8,6 +7,8 @@ import { ethereumBasicsQuizzes } from "@/data/quizzes" import QuizzesListComponent from "../QuizzesList" +import useTranslation from "@/hooks/useTranslation" + /** * This story also renders the `QuizItem` component. * @@ -19,8 +20,8 @@ const meta = { component: QuizzesListComponent, args: { content: ethereumBasicsQuizzes, - headingId: "learn-quizzes.basics", - descriptionId: "learn-quizzes.basics-description", + headingId: "basics", + descriptionId: "basics-description", userStats: { score: 0, average: [], @@ -34,7 +35,16 @@ const meta = { export default meta export const Default: StoryObj = { - render: (args) => , + render: (args) => { + const { t } = useTranslation("learn-quizzes") + return ( + + ) + }, } export const OneCompletedQuiz: StoryObj = { @@ -50,7 +60,7 @@ export const OneCompletedQuiz: StoryObj = { }, }, render: (args) => { - const t = useTranslations() + const { t } = useTranslation("learn-quizzes") return ( { + const { t } = useTranslation("common") + const { locale } = useRouter() + const [isMounted, setIsMounted] = useState(false) + + useEffect(() => { + setIsMounted(true) + }, []) + + const lastUpdatedDisplay = + lastUpdated && isValidDate(lastUpdated) + ? new Intl.DateTimeFormat(locale, { + dateStyle: "medium", + }).format(new Date(lastUpdated)) + : "" + + const data = [{ value }] + + if (!isMounted) return null + + return ( +
                                        +
                                        + + + + +
                                        + {displayValue || value} +
                                        +
                                        +
                                        +
                                        + {label} + {sourceName && sourceUrl && ( + +

                                        + {t("data-provided-by")}{" "} + {sourceName} +

                                        + {lastUpdated && ( +

                                        + {t("last-updated")}: {lastUpdatedDisplay} +

                                        + )} + + } + > + +
                                        + )} +
                                        +
                                        +
                                        + ) +} + +export default RadialChart diff --git a/src/components/Resources/index.tsx b/src/components/Resources/index.tsx new file mode 100644 index 00000000000..ca6d46323e0 --- /dev/null +++ b/src/components/Resources/index.tsx @@ -0,0 +1,58 @@ +import Link from "@/components/ui/Link" +import { Tag } from "@/components/ui/tag" + +import { cn } from "@/lib/utils/cn" + +import { Image } from "../Image" + +import { Item } from "./types" + +export const DashboardBox = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
                                        +) + +type ItemProps = React.HTMLAttributes & { + item: Item +} + +export const ResourceItem = ({ + item: { title, description, href, imgSrc }, + className, +}: ItemProps) => ( + +
                                        + {title} +
                                        +
                                        +

                                        {title}

                                        +

                                        {description}

                                        + {href} +
                                        + +) + +export const ResourcesContainer = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
                                        +) diff --git a/src/components/Resources/types.ts b/src/components/Resources/types.ts new file mode 100644 index 00000000000..f9f271c8758 --- /dev/null +++ b/src/components/Resources/types.ts @@ -0,0 +1,22 @@ +import { StaticImageData } from "next/image" + +export type Item = { + title: string + description: string + href: string + imgSrc: StaticImageData +} + +export type DashboardBox = { + title: string + metric?: React.ReactNode + items: Item[] + className?: string +} + +export type DashboardSection = { + key: string + title: string + boxes: DashboardBox[] + icon?: React.ReactNode +} diff --git a/src/components/Resources/useResources.tsx b/src/components/Resources/useResources.tsx new file mode 100644 index 00000000000..a2ed295d903 --- /dev/null +++ b/src/components/Resources/useResources.tsx @@ -0,0 +1,570 @@ +import { useEffect, useState } from "react" +import { useRouter } from "next/router" + +import { Lang } from "@/lib/types" + +import SectionIconArrowsFullscreen from "@/components/icons/arrows-fullscreen.svg" +import SectionIconEthGlyph from "@/components/icons/eth-glyph.svg" +import SectionIconEthWallet from "@/components/icons/eth-wallet.svg" +import SectionIconHeartPulse from "@/components/icons/heart-pulse.svg" +import SectionIconPrivacy from "@/components/icons/privacy.svg" + +import { getLocaleForNumberFormat } from "@/lib/utils/translations" + +import BigNumber from "../BigNumber" +import RadialChart from "../RadialChart" + +import type { DashboardBox, DashboardSection } from "./types" + +import { useTranslation } from "@/hooks/useTranslation" +import IconBeaconchain from "@/public/images/resources/beaconcha-in.png" +import IconBlobsGuru from "@/public/images/resources/blobsguru.png" +import IconBlocknative from "@/public/images/resources/blocknative.png" +import IconBlockscout from "@/public/images/resources/blockscout.webp" +import IconCryptwerk from "@/public/images/resources/cryptowerk.png" +import IconDefiLlama from "@/public/images/resources/defi-llama.png" +import IconDefiMarketCap from "@/public/images/resources/defi-market-cap.png" +import IconDefiScan from "@/public/images/resources/defi-scan.png" +import IconEas from "@/public/images/resources/eas.png" +import IconEigenphi from "@/public/images/resources/eigenphi.png" +import IconEthGlyphBlack from "@/public/images/resources/eth-glyph-black.png" +import IconEthGlyphBlueCircle from "@/public/images/resources/eth-glyph-blue-circle.png" +import IconEthGlyphEOrg from "@/public/images/resources/eth-glyph-e-org.png" +import IconEthGlyphRainbowFrame from "@/public/images/resources/eth-glyph-rainbow.frame.png" +import IconEtherealize from "@/public/images/resources/etherealize.png" +import IconEtherscan from "@/public/images/resources/etherscan.png" +import IconEthproofs from "@/public/images/resources/ethproofs.png" +import IconEthstaker from "@/public/images/resources/ethstaker.png" +import IconFarcaster from "@/public/images/resources/farcaster.png" +import IconGrowthepie from "@/public/images/resources/growthepie.png" +import IconL2beat from "@/public/images/resources/l2beat.png" +import IconNftgo from "@/public/images/resources/nftgo.png" +import IconNodewatch from "@/public/images/resources/nodewatch.png" +import IconRatedNetwork from "@/public/images/resources/rated-network.png" +import IconRelayscan from "@/public/images/resources/relayscan.png" +import IconRwa from "@/public/images/resources/rwa.png" +import IconStablecoinsWtf from "@/public/images/resources/stablecoins-wtf.png" +import IconSupermajority from "@/public/images/resources/supermajority.png" +import IconTxCity from "@/public/images/resources/txcity.png" +import IconUltrasoundMoney from "@/public/images/resources/ultrasound-money.png" +import IconVisaOnchainAnalytics from "@/public/images/resources/visa-onchain-analytcs.png" + +const formatSmallUSD = (value: number, locale: string): string => + new Intl.NumberFormat(locale, { + style: "currency", + currency: "USD", + notation: "compact", + minimumSignificantDigits: 2, + maximumSignificantDigits: 2, + }).format(value) + +export const useResources = ({ txCostsMedianUsd }): DashboardSection[] => { + const { t } = useTranslation("page-resources") + const { locale } = useRouter() + const localeForNumberFormat = getLocaleForNumberFormat(locale! as Lang) + + const medianTxCost = + "error" in txCostsMedianUsd + ? { error: txCostsMedianUsd.error } + : { + ...txCostsMedianUsd, + value: formatSmallUSD(txCostsMedianUsd.value, localeForNumberFormat), + } + + const [timeToNextBlock, setTimeToNextBlock] = useState(12) + + useEffect(() => { + const genesisTime = new Date("2020-12-01T12:00:23Z").getTime() + const updateTime = () => { + const now = Date.now() + const timeElapsed = (now - genesisTime) / 1000 + const timeToNext = 12 - (timeElapsed % 12) + setTimeToNextBlock(Math.floor(timeToNext) || 12) + } + + updateTime() + const interval = setInterval(updateTime, 1000) + return () => clearInterval(interval) + }, []) + + const networkBoxes: DashboardBox[] = [ + { + title: t("page-resources-network-layer2-title"), + metric: ( + + Median transaction cost on Ethereum networks + + ), + items: [ + { + title: "L2 Beat", + description: t("page-resources-network-layer2-l2beat-description"), + href: "https://l2beat.com/", + imgSrc: IconL2beat, + }, + { + title: "Growthepie", + description: t( + "page-resources-network-layer2-growthepie-description" + ), + href: "https://www.growthepie.xyz/", + imgSrc: IconGrowthepie, + }, + { + title: "L2 Fees", + description: t("page-resources-network-layer2-l2fees-description"), + href: "https://l2fees.info/", + imgSrc: IconEthGlyphBlueCircle, + }, + ], + }, + { + title: t("page-resources-block-explorers-title"), + metric: ( + + ), + items: [ + { + title: "Blockscout", + description: t( + "page-resources-block-explorers-blockscout-description" + ), + href: "https://eth.blockscout.com", + imgSrc: IconBlockscout, + }, + { + title: "Etherscan", + description: t( + "page-resources-block-explorers-etherscan-description" + ), + href: "https://etherscan.io", + imgSrc: IconEtherscan, + }, + { + title: "Beaconcha.in", + description: t( + "page-resources-block-explorers-beaconchain-description" + ), + href: "https://beaconcha.in", + imgSrc: IconBeaconchain, + }, + { + title: "Txcity.io", + description: t("page-resources-block-explorers-txcity-description"), + href: "https://txcity.io/", + imgSrc: IconTxCity, + }, + ], + }, + { + title: t("page-resources-eth-asset-title"), + // TODO: Add RadialChart metric + items: [ + { + title: "Etherealize Dashboard", + description: t("page-resources-eth-asset-etherealize-description"), + href: "https://dashboard.etherealize.io/", + imgSrc: IconEtherealize, + }, + { + title: "Ultra Sound Money", + description: t("page-resources-eth-asset-ultrasound-description"), + href: "https://ultrasound.money/", + imgSrc: IconUltrasoundMoney, + }, + { + title: "ETH is Money", + description: t("page-resources-eth-asset-ethismoney-description"), + href: "https://www.ethismoney.xyz/", + imgSrc: IconEthGlyphBlueCircle, + }, + { + title: "Ethereum Now", + description: t("page-resources-eth-asset-ethernow-description"), + href: "https://www.ethernow.xyz", + imgSrc: IconBlocknative, + }, + ], + }, + { + title: t("page-resources-gas-title"), + // TODO: Add metric + items: [ + { + title: "Ethereum Gas Tracker", + description: t("page-resources-gas-etherscan-description"), + href: "https://etherscan.io/gastracker", + imgSrc: IconEthGlyphBlueCircle, + }, + { + title: "Blocknative Gas Estimator", + description: t("page-resources-gas-blocknative-description"), + href: "https://www.blocknative.com/gas-estimator", + imgSrc: IconBlocknative, + }, + { + title: "GasFees.io", + description: t("page-resources-gas-gasfees-description"), + href: "https://www.gasfees.io/", + imgSrc: IconEthGlyphBlueCircle, + }, + ], + }, + ] + + const usingBoxes: DashboardBox[] = [ + { + title: t("page-resources-defi-title"), + // TODO: Add big number metric + items: [ + { + title: "DeFi Llama", + description: t("page-resources-defi-defillama-description"), + href: "https://defillama.com", + imgSrc: IconDefiLlama, + }, + { + title: "DeFi Market Cap", + description: t("page-resources-defi-defimarketcap-description"), + href: "https://defimarketcap.io", + imgSrc: IconDefiMarketCap, + }, + { + title: "EigenPhi", + description: t("page-resources-defi-eigenphi-description"), + href: "https://www.eigenphi.io", + imgSrc: IconEigenphi, + }, + { + title: "DeFiScan", + description: t("page-resources-defi-defiscan-description"), + href: "https://defiscan.info", + imgSrc: IconDefiScan, + }, + ], + }, + { + title: t("page-resources-stablecoins-title"), + // TODO: Add big number metric + items: [ + { + title: "stablecoins.wtf", + description: t( + "page-resources-stablecoins-stablecoinswtf-description" + ), + href: "https://stablecoins.wtf/", + imgSrc: IconStablecoinsWtf, + }, + { + title: "Visa Onchain Analytics Dashboard", + description: t("page-resources-stablecoins-visa-description"), + href: "https://visaonchainanalytics.com", + imgSrc: IconVisaOnchainAnalytics, + }, + { + title: "Real World Assets", + description: t("page-resources-stablecoins-rwa-description"), + href: "https://app.rwa.xyz/stablecoins", + imgSrc: IconRwa, + }, + ], + }, + { + title: t("page-resources-nft-title"), + // TODO: Add bar chart metric + items: [ + { + title: "Etherscan - Top NFT", + description: t("page-resources-nft-etherscan-description"), + href: "https://etherscan.io/nft-top-contracts", + imgSrc: IconEtherscan, + }, + { + title: "NFTgo", + description: t("page-resources-nft-nftgo-description"), + href: "https://nftgo.io/macro/market-overview", + imgSrc: IconNftgo, + }, + ], + }, + { + title: t("page-resources-applications-title"), + items: [ + { + title: "Ethereum Ecosystem", + description: t("page-resources-applications-ecosystem-description"), + href: "https://www.ethereum-ecosystem.com/apps", + imgSrc: IconEthGlyphEOrg, + }, + { + title: "Farcaster Network", + description: t("page-resources-applications-farcaster-description"), + href: "https://www.farcaster.network", + imgSrc: IconFarcaster, + }, + { + title: "Dapp Radar", + description: t("page-resources-applications-dappradar-description"), + href: "https://dappradar.com", + imgSrc: IconEthGlyphBlueCircle, + }, + ], + }, + { + title: t("page-resources-adoption-title"), + items: [ + { + title: "Ethereum Adoption", + description: t( + "page-resources-adoption-ethereumadoption-description" + ), + href: "https://ethereumadoption.com", + imgSrc: IconEthGlyphEOrg, + }, + { + title: "Cryptowerk", + description: t("page-resources-adoption-cryptowerk-description"), + href: "https://cryptwerk.com/analytics/ethereum/", + imgSrc: IconCryptwerk, + }, + ], + }, + ] + + const scalingBoxes: DashboardBox[] = [ + { + title: t("page-resources-roadmap-title"), + // TODO: Add metric + items: [ + { + title: "Ethereum Roadmap", + description: t("page-resources-roadmap-ethroadmap-description"), + href: "https://ethroadmap.com", + imgSrc: IconEthGlyphRainbowFrame, + }, + ], + }, + { + title: t("page-resources-blobs-title"), + // TODO: Add metric + items: [ + { + title: "Blob Scan", + description: t("page-resources-blobs-blobscan-description"), + href: "https://blobscan.com", + imgSrc: IconEthGlyphBlueCircle, + }, + { + title: "Blobsguru", + description: t("page-resources-blobs-blobsguru-description"), + href: "https://blobs.guru", + imgSrc: IconBlobsGuru, + }, + ], + }, + ] + + const resilienceBoxes: DashboardBox[] = [ + { + title: t("page-resources-nodes-title"), + // TODO: Add big number metric + items: [ + { + title: "Node Watch", + description: t("page-resources-nodes-nodewatch-description"), + href: "https://nodewatch.io", + imgSrc: IconNodewatch, + }, + { + title: "Ethernodes", + description: t("page-resources-nodes-ethernodes-description"), + href: "https://ethernodes.org", + imgSrc: IconEthGlyphBlueCircle, + }, + { + title: "Etherscan - Ethereum Node Tracker", + description: t("page-resources-nodes-etherscan-description"), + href: "https://etherscan.io/nodetracker", + imgSrc: IconEtherscan, + }, + { + title: "luckystaker.com", + description: t("page-resources-nodes-luckystaker-description"), + href: "https://luckystaker.com", + imgSrc: IconEthstaker, + }, + { + title: "Ethereum Validator Queue", + description: t("page-resources-nodes-validatorqueue-description"), + href: "https://www.validatorqueue.com", + imgSrc: IconEthGlyphBlueCircle, + }, + ], + }, + { + title: t("page-resources-network-resilience-title"), + items: [ + { + title: "Neutrality Watch", + description: t( + "page-resources-network-resilience-neutralitywatch-description" + ), + href: "https://eth.neutralitywatch.com", + imgSrc: IconEthGlyphBlueCircle, + }, + { + title: "Project Sunshine", + description: t( + "page-resources-network-resilience-sunshine-description" + ), + href: "https://ethsunshine.com", + imgSrc: IconEthGlyphEOrg, + }, + { + title: "Client Diversity", + description: t( + "page-resources-network-resilience-clientdiversity-description" + ), + href: "https://clientdiversity.org", + imgSrc: IconEthGlyphEOrg, + }, + { + title: "Super Majority", + description: t( + "page-resources-network-resilience-supermajority-description" + ), + href: "https://supermajority.info", + imgSrc: IconSupermajority, + }, + ], + }, + { + title: t("page-resources-attestations-title"), + items: [ + { + title: "Ethereum Attestation Service", + description: t("page-resources-attestations-eas-description"), + href: "https://easscan.org", + imgSrc: IconEas, + }, + ], + }, + ] + + const privacySecurityBoxes: DashboardBox[] = [ + { + title: t("page-resources-relays-title"), + // TODO: Add big number metric + items: [ + { + title: "Beaconchain Relays", + description: t("page-resources-relays-beaconchain-description"), + href: "https://beaconcha.in/relays", + imgSrc: IconBeaconchain, + }, + { + title: "Relay Landscape | Ethereum Mainnet", + description: t("page-resources-relays-ratednetwork-description"), + href: "https://explorer.rated.network/relays?network=mainnet", + imgSrc: IconRatedNetwork, + }, + { + title: "Relay Scan", + description: t("page-resources-relays-relayscan-description"), + href: "https://www.relayscan.io", + imgSrc: IconRelayscan, + }, + ], + }, + { + title: t("page-resources-mev-title"), + // TODO: Add big number metric + items: [ + { + title: "MEV-Boost Dashboard", + description: t("page-resources-mev-mevboost-description"), + href: "https://mevboost.pics", + imgSrc: IconEthGlyphBlack, + }, + { + title: "MEV Watch", + description: t("page-resources-mev-mevwatch-description"), + href: "https://www.mevwatch.info", + imgSrc: IconEthGlyphBlueCircle, + }, + ], + }, + { + title: t("page-resources-zk-adoption-title"), + items: [ + { + title: "Ethproofs", + description: t("page-resources-zk-adoption-ethproofs-description"), + href: "https://ethproofs.org", + imgSrc: IconEthproofs, + }, + { + title: "L2beat - ZK Catalog", + description: t("page-resources-zk-adoption-l2beat-description"), + href: "https://l2beat.com/zk-catalog", + imgSrc: IconL2beat, + }, + ], + }, + { + title: t("page-resources-mempool-title"), + items: [ + { + title: "Ethereum Mempool Dashboard", + description: t("page-resources-mempool-mempool-description"), + href: "https://mempool.pics", + imgSrc: IconEthGlyphBlueCircle, + }, + ], + }, + ] + + const resources = [ + { + key: "network", + title: t("page-resources-network-title"), + icon: , + boxes: networkBoxes, + }, + { + key: "using", + title: t("page-resources-using-title"), + icon: , + boxes: usingBoxes, + }, + { + key: "scaling", + title: t("page-resources-scaling-title"), + icon: , + boxes: scalingBoxes, + }, + { + key: "resilience", + title: t("page-resources-resilience-title"), + icon: , + boxes: resilienceBoxes, + }, + { + key: "privacy-security", + title: t("page-resources-privacy-security-title"), + icon: , + boxes: privacySecurityBoxes, + }, + ] + + return resources +} diff --git a/src/components/SideNav.tsx b/src/components/SideNav.tsx index 8579f9d23cd..ea256218e6d 100644 --- a/src/components/SideNav.tsx +++ b/src/components/SideNav.tsx @@ -1,3 +1,5 @@ +"use client" + import { useEffect, useState } from "react" import { motion } from "framer-motion" import { MdChevronRight } from "react-icons/md" diff --git a/src/components/SideNavMobile.tsx b/src/components/SideNavMobile.tsx index 2f6f3f7939f..b57366da629 100644 --- a/src/components/SideNavMobile.tsx +++ b/src/components/SideNavMobile.tsx @@ -1,3 +1,5 @@ +"use client" + import React, { useState } from "react" import { AnimatePresence, motion } from "framer-motion" import { MdChevronRight } from "react-icons/md" diff --git a/src/components/Simulator/index.tsx b/src/components/Simulator/index.tsx index 899d7e87f60..5d0a0cd15d7 100644 --- a/src/components/Simulator/index.tsx +++ b/src/components/Simulator/index.tsx @@ -35,7 +35,8 @@ export const Simulator = ({ children, data }: SimulatorProps) => { const [step, setStep] = useState(0) // 0-indexed to use as array index // Track pathID - const pathId = getValidPathId(searchParams.get(PATH_ID_QUERY_PARAM)) + const pathIdString = searchParams?.get(PATH_ID_QUERY_PARAM) + const pathId = getValidPathId(pathIdString ?? null) const simulator: SimulatorDetails | null = pathId ? data[pathId] : null const totalSteps: number = simulator ? simulator.explanations.length : 0 diff --git a/src/components/StablecoinsTable.tsx b/src/components/StablecoinsTable.tsx index 1e9973ecc8c..9a578a9e62e 100644 --- a/src/components/StablecoinsTable.tsx +++ b/src/components/StablecoinsTable.tsx @@ -1,3 +1,5 @@ +import { cn } from "@/lib/utils/cn" + import { ButtonLink } from "./ui/buttons/Button" import { Flex } from "./ui/flex" import { @@ -8,6 +10,7 @@ import { TableHeader, TableRow, } from "./ui/table" +import { Image } from "./Image" import { useRtlFlip } from "@/hooks/useRtlFlip" import { useTranslation } from "@/hooks/useTranslation" @@ -31,7 +34,7 @@ const StablecoinsTable = ({ content, hasError, }: StablecoinsTableProps) => { - const { flipForRtl } = useRtlFlip() + const { twFlipForRtl } = useRtlFlip() const { t } = useTranslation("page-stablecoins") const stablecoinsType = { @@ -51,9 +54,7 @@ const StablecoinsTable = ({ {content && content[0]?.url && ( - - ↗ - + )} @@ -71,7 +72,7 @@ const StablecoinsTable = ({ - {image && } + {image && } <>{name} diff --git a/src/components/Staking/StakingCommunityCallout.tsx b/src/components/Staking/StakingCommunityCallout.tsx index a7a31270fe5..0229c37846b 100644 --- a/src/components/Staking/StakingCommunityCallout.tsx +++ b/src/components/Staking/StakingCommunityCallout.tsx @@ -1,3 +1,5 @@ +"use client" + import React from "react" import CalloutBanner from "@/components/CalloutBanner" diff --git a/src/components/Staking/StakingComparison.tsx b/src/components/Staking/StakingComparison.tsx index d8f13143062..c9eb0c001fb 100644 --- a/src/components/Staking/StakingComparison.tsx +++ b/src/components/Staking/StakingComparison.tsx @@ -1,3 +1,5 @@ +"use client" + import type { StakingPage, TranslationKey } from "@/lib/types" import { diff --git a/src/components/Staking/StakingConsiderations/index.tsx b/src/components/Staking/StakingConsiderations/index.tsx index 74e1259def8..15d732d122d 100644 --- a/src/components/Staking/StakingConsiderations/index.tsx +++ b/src/components/Staking/StakingConsiderations/index.tsx @@ -1,3 +1,5 @@ +"use client" + import type { StakingPage } from "@/lib/types" import ButtonDropdown from "@/components/ButtonDropdown" diff --git a/src/components/Staking/StakingLaunchpadWidget.tsx b/src/components/Staking/StakingLaunchpadWidget.tsx index f585adb547d..e08d9ef4cf0 100644 --- a/src/components/Staking/StakingLaunchpadWidget.tsx +++ b/src/components/Staking/StakingLaunchpadWidget.tsx @@ -1,3 +1,5 @@ +"use client" + import { useState } from "react" import { FaTools } from "react-icons/fa" diff --git a/src/components/Staking/StakingProductsCardGrid/index.tsx b/src/components/Staking/StakingProductsCardGrid/index.tsx index cc0aedccd16..aa820f7fa3f 100644 --- a/src/components/Staking/StakingProductsCardGrid/index.tsx +++ b/src/components/Staking/StakingProductsCardGrid/index.tsx @@ -1,3 +1,5 @@ +"use client" + import { StakingProductCard } from "./StakingProductCard" import { StakingProductsCategoryKeys } from "./types" import { useStakingProductsCardGrid } from "./useStakingProductsCardGrid" diff --git a/src/components/Staking/WithdrawalCredentials.tsx b/src/components/Staking/WithdrawalCredentials.tsx index aa27fd95e55..ad858995a0a 100644 --- a/src/components/Staking/WithdrawalCredentials.tsx +++ b/src/components/Staking/WithdrawalCredentials.tsx @@ -1,3 +1,5 @@ +"use client" + import { ChangeEvent, FC, useMemo, useState } from "react" import CopyToClipboard from "@/components/CopyToClipboard" diff --git a/src/components/Staking/WithdrawalsTabComparison.tsx b/src/components/Staking/WithdrawalsTabComparison.tsx index 18f6fdcb84d..2cb51018abc 100644 --- a/src/components/Staking/WithdrawalsTabComparison.tsx +++ b/src/components/Staking/WithdrawalsTabComparison.tsx @@ -1,3 +1,5 @@ +"use client" + import WithdrawalCredentials from "@/components/Staking/WithdrawalCredentials" import Translation from "@/components/Translation" import { ListItem, UnorderedList } from "@/components/ui/list" diff --git a/src/components/StartWithEthereumFlow/ConnectYourWallet/index.tsx b/src/components/StartWithEthereumFlow/ConnectYourWallet/index.tsx new file mode 100644 index 00000000000..19a345e7422 --- /dev/null +++ b/src/components/StartWithEthereumFlow/ConnectYourWallet/index.tsx @@ -0,0 +1,137 @@ +import { useEffect } from "react" +import { useAccount } from "wagmi" + +import ConnectToEthereumButton from "@/components/ConnectToEthereumButton" +import Emoji from "@/components/Emoji" +import { Image } from "@/components/Image" +import { Button } from "@/components/ui/buttons/Button" +import { Tag } from "@/components/ui/tag" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import FinanceImage from "@/public/images/finance_transparent.png" + +const ConnectYourWallet = ({ + handleNext, + stepIndex, + totalSteps, +}: { + handleNext: () => void + stepIndex: number + totalSteps: number +}) => { + const { isConnected } = useAccount() + + useEffect(() => { + if (isConnected) { + trackCustomEvent({ + eventCategory: "start page", + eventAction: "sign in", + eventName: "connected", + }) + } + }, [isConnected]) + + return ( +
                                        +
                                        +
                                        +
                                        + + {stepIndex} / {totalSteps} + +
                                        +

                                        Connect Your Wallet

                                        +

                                        + You can use your new wallet as a single account in all apps and + projects on Ethereum. No separate accounts needed. +

                                        +
                                        +
                                        + {isConnected && } + {isConnected && ( +

                                        + This is your account +

                                        + )} + { + trackCustomEvent({ + eventCategory: "start page", + eventAction: "connect wallet", + eventName: "Connect to Ethereum", + }) + }} + /> + {isConnected && ( + + )} +
                                        +
                                        +
                                        +
                                        + Finance + {!isConnected && ( + Finance + )} +
                                        +
                                        + {isConnected && } + {isConnected && ( +

                                        + This is your account +

                                        + )} + { + trackCustomEvent({ + eventCategory: "start page", + eventAction: "connect wallet", + eventName: "Connect to Ethereum", + }) + }} + /> + {isConnected && ( + + )} +
                                        +
                                        +
                                        + ) +} + +export default ConnectYourWallet diff --git a/src/components/StartWithEthereumFlow/DownloadAWallet/index.tsx b/src/components/StartWithEthereumFlow/DownloadAWallet/index.tsx new file mode 100644 index 00000000000..f89e4e503ae --- /dev/null +++ b/src/components/StartWithEthereumFlow/DownloadAWallet/index.tsx @@ -0,0 +1,154 @@ +import { useState } from "react" + +import { Wallet } from "@/lib/types" + +import { Image } from "@/components/Image" +import { Button, ButtonLink } from "@/components/ui/buttons/Button" +import Checkbox from "@/components/ui/checkbox" +import InlineLink from "@/components/ui/Link" +import { LinkBox, LinkOverlay } from "@/components/ui/link-box" +import { Tag } from "@/components/ui/tag" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +const DownloadAWallet = ({ + handleNext, + stepIndex, + totalSteps, + newToCryptoWallets, +}: { + handleNext: () => void + stepIndex: number + totalSteps: number + newToCryptoWallets: Wallet[] +}) => { + const [hasWallet, setHasWallet] = useState(false) + + return ( +
                                        +
                                        +
                                        +
                                        + + {stepIndex} / {totalSteps} + +
                                        +

                                        Download a wallet

                                        +

                                        + Wallet is an app that allows you to receive, send cryptocurrencies + and manage your Ethereum account. +

                                        +
                                        +
                                        +
                                        { + setHasWallet(!hasWallet) + trackCustomEvent({ + eventCategory: "start page", + eventAction: "wallet checkbox", + eventName: "I have a wallet", + }) + }} + > + +

                                        I have a wallet.

                                        +
                                        + +
                                        +
                                        +
                                        +
                                        + {newToCryptoWallets.map((wallet) => ( + +
                                        +
                                        +
                                        + {wallet.name} +
                                        +

                                        + + { + trackCustomEvent({ + eventCategory: "start page", + eventAction: "get wallet", + eventName: wallet.name, + }) + }} + > + {wallet.name} + + +

                                        +
                                        + + + Get wallet + +
                                        +
                                        + ))} +
                                        +
                                        +
                                        { + setHasWallet(!hasWallet) + trackCustomEvent({ + eventCategory: "start page", + eventAction: "wallet checkbox", + eventName: "I have a wallet", + }) + }} + > + +

                                        I have a wallet.

                                        +
                                        + +
                                        +
                                        +
                                        + ) +} + +export default DownloadAWallet diff --git a/src/components/StartWithEthereumFlow/LetUseSomeApps/index.tsx b/src/components/StartWithEthereumFlow/LetUseSomeApps/index.tsx new file mode 100644 index 00000000000..d0d7ccc32e2 --- /dev/null +++ b/src/components/StartWithEthereumFlow/LetUseSomeApps/index.tsx @@ -0,0 +1,169 @@ +import { Image } from "@/components/Image" +import { ButtonLink } from "@/components/ui/buttons/Button" +import Link from "@/components/ui/Link" +import { LinkBox } from "@/components/ui/link-box" +import { Tag } from "@/components/ui/tag" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import AaveImage from "@/public/images/dapps/aave.png" +import OpenSeaImage from "@/public/images/dapps/opensea.png" +import UniswapImage from "@/public/images/dapps/uni.png" +import WarpcastImage from "@/public/images/dapps/warpcast.png" + +const LetUseSomeApps = ({ + stepIndex, + totalSteps, +}: { + stepIndex: number + totalSteps: number +}) => { + const dappsList = [ + { + name: "Warpcast", + description: "The social and community platform of crypto.", + tag: ( + + SOCIALS + + ), + url: "https://warpcast.com/", + image: WarpcastImage, + }, + { + name: "Aave", + description: "Lend your tokens to earn interest and withdraw any time.", + tag: ( + + FINANCE + + ), + url: "https://aave.com/", + image: AaveImage, + }, + { + name: "Uniswap", + description: "Swap your tokens for different ones globally.", + tag: ( + + FINANCE + + ), + url: "https://app.uniswap.org/", + image: UniswapImage, + }, + { + name: "OpenSea", + description: "Buy, sell, discover, and trade limited-edition goods.", + tag: ( + + COLLECTIBLES + + ), + url: "https://opensea.io/", + image: OpenSeaImage, + }, + ] + + return ( +
                                        +
                                        +
                                        +
                                        + + {stepIndex} / {totalSteps} + +
                                        +

                                        Let Use Some Apps

                                        +

                                        + Its time to go onchain and benefit from the wide ecosystem of + projects available you. +

                                        +
                                        + + Explore more + +
                                        +
                                        +
                                        +
                                        +
                                        + {dappsList.map((dapp) => ( + { + window.open(dapp.url, "_blank") + trackCustomEvent({ + eventCategory: "start page", + eventAction: "dapps", + eventName: dapp.name, + }) + }} + > +
                                        + {dapp.name} +
                                        +
                                        +

                                        {dapp.name}

                                        + {dapp.tag} +
                                        +

                                        {dapp.description}

                                        +
                                        +
                                        +
                                        + + Go + +
                                        +
                                        + ))} +
                                        +
                                        + { + trackCustomEvent({ + eventCategory: "start page", + eventAction: "dapps", + eventName: "Explore more", + }) + }} + > + Explore more + +
                                        +
                                        +
                                        + ) +} + +export default LetUseSomeApps diff --git a/src/components/StartWithEthereumFlow/ShareModal.tsx b/src/components/StartWithEthereumFlow/ShareModal.tsx new file mode 100644 index 00000000000..681a335cb7e --- /dev/null +++ b/src/components/StartWithEthereumFlow/ShareModal.tsx @@ -0,0 +1,75 @@ +import { useState } from "react" +import { FaLink, FaXTwitter } from "react-icons/fa6" +import { MdCheck } from "react-icons/md" + +import { Button } from "@/components/ui/buttons/Button" +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog-modal" + +import { useClipboard } from "@/hooks/useClipboard" + +export const shareOnTwitter = (): void => { + const url = "https://ethereum.org/start" + const hashtags = ["ethereum", "web3", "startwithethereum"] + const tweet = `${encodeURI(`I connected to ethereum on ethereum.org! Try it yourself at ${url}`)}` + + window.open( + `https://twitter.com/intent/tweet?text=${tweet}&hashtags=${hashtags}` + ) +} + +const ShareModal = () => { + const [isOpen, setIsOpen] = useState(false) + const { onCopy, hasCopied } = useClipboard() + + return ( + + + + + + + Share this page + + + Share this page with your friends and family. + +
                                        + + +
                                        +
                                        +
                                        + ) +} + +export default ShareModal diff --git a/src/components/StartWithEthereumFlow/index.tsx b/src/components/StartWithEthereumFlow/index.tsx new file mode 100644 index 00000000000..e703b85b743 --- /dev/null +++ b/src/components/StartWithEthereumFlow/index.tsx @@ -0,0 +1,148 @@ +import { useRef, useState } from "react" +import type { SwiperRef } from "swiper/react" + +import { Wallet } from "@/lib/types" + +import ConnectYourWallet from "@/components/StartWithEthereumFlow/ConnectYourWallet" +import DownloadAWallet from "@/components/StartWithEthereumFlow/DownloadAWallet" +import LetUseSomeApps from "@/components/StartWithEthereumFlow/LetUseSomeApps" +import { Swiper, SwiperContainer, SwiperSlide } from "@/components/ui/swiper" + +import { cn } from "@/lib/utils/cn" + +const StartWithEthereumFlow = ({ + newToCryptoWallets, +}: { + newToCryptoWallets: Wallet[] +}) => { + const swiperRef = useRef(null) + const containerRef = useRef(null) + const [activeIndex, setActiveIndex] = useState(1) + const [totalSlides, setTotalSlides] = useState(0) + const [slideHeights, setSlideHeights] = useState([]) + + const handleInit = (swiper) => { + setTotalSlides(swiper.slides.length) + + updateSlideHeights(swiper) + + const resizeObserver = new ResizeObserver(() => { + updateSlideHeights(swiper) + }) + + swiper.slides.forEach((slide) => { + resizeObserver.observe(slide) + }) + + swiper.on("destroy", () => { + resizeObserver.disconnect() + }) + } + + // Separate function to update slide heights + const updateSlideHeights = (swiper) => { + const heights = swiper.slides.map((slide) => slide.offsetHeight) + setSlideHeights(heights) + } + + const handleSlideChange = (swiper) => { + setActiveIndex(swiper.activeIndex + 1) + } + + const handleNext = () => { + swiperRef.current?.swiper.slideNext() + + if (containerRef.current) { + const containerRect = containerRef.current.getBoundingClientRect() + window.scrollTo({ + top: window.scrollY + containerRect.top - 90, + behavior: "smooth", + }) + } + } + + return ( + + + +
                                        + +
                                        +
                                        + +
                                        + +
                                        +
                                        + +
                                        + +
                                        +
                                        +
                                        +
                                        + ) +} + +export default StartWithEthereumFlow diff --git a/src/components/TableOfContents/index.tsx b/src/components/TableOfContents/index.tsx index cfd22572220..2f4ea3bde8f 100644 --- a/src/components/TableOfContents/index.tsx +++ b/src/components/TableOfContents/index.tsx @@ -1,3 +1,5 @@ +"use client" + import { FaGithub } from "react-icons/fa" import type { ToCItem } from "@/lib/types" diff --git a/src/components/ThemeProvider.tsx b/src/components/ThemeProvider.tsx index 062bb87551f..86cb7e42c67 100644 --- a/src/components/ThemeProvider.tsx +++ b/src/components/ThemeProvider.tsx @@ -1,3 +1,5 @@ +"use client" + import { ThemeProvider as NextThemesProvider } from "next-themes" import type { ThemeProviderProps } from "next-themes/dist/types" diff --git a/src/components/Tooltip/index.tsx b/src/components/Tooltip/index.tsx index 075b22741bb..321d38284a1 100644 --- a/src/components/Tooltip/index.tsx +++ b/src/components/Tooltip/index.tsx @@ -1,3 +1,5 @@ +"use client" + import React, { ComponentProps, ReactNode, useEffect } from "react" import { Portal } from "@radix-ui/react-portal" diff --git a/src/components/Translatathon/CountdownBanner.tsx b/src/components/Translatathon/CountdownBanner.tsx index b772a988b46..3666672ccb7 100644 --- a/src/components/Translatathon/CountdownBanner.tsx +++ b/src/components/Translatathon/CountdownBanner.tsx @@ -1,12 +1,18 @@ -import { useEffect, useState } from "react" +import { useEffect, useMemo, useState } from "react" import BannerNotification from "@/components/Banners/BannerNotification" export const CountdownBanner = () => { const [countdown, setCountdown] = useState("") - const translatathonStartDate = new Date("August 9, 2024 12:00:00 UTC") - const translatathonEndDate = new Date("August 18, 2024 12:00:00 UTC") + const translatathonStartDate = useMemo( + () => new Date("August 9, 2024 12:00:00 UTC"), + [] + ) + const translatathonEndDate = useMemo( + () => new Date("August 18, 2024 12:00:00 UTC"), + [] + ) const calculateCountdown = (targetDate: Date) => { const currentTime = new Date() @@ -36,7 +42,7 @@ export const CountdownBanner = () => { return () => { clearInterval(interval) } - }, []) + }, [translatathonEndDate, translatathonStartDate]) return new Date() < translatathonStartDate ? ( <> diff --git a/src/components/Translatathon/TranslatathonBanner.tsx b/src/components/Translatathon/TranslatathonBanner.tsx index 0e859ac2689..144b06aa9c4 100644 --- a/src/components/Translatathon/TranslatathonBanner.tsx +++ b/src/components/Translatathon/TranslatathonBanner.tsx @@ -1,9 +1,14 @@ +"use client" + import DismissableBanner from "@/components/Banners/DismissableBanner" import { ButtonLink } from "../ui/buttons/Button" import { Center } from "../ui/flex" -export const TranslatathonBanner = ({ pathname }) => { +import { usePathname } from "@/i18n/routing" + +export const TranslatathonBanner = () => { + const pathname = usePathname() const todaysDate = new Date() const translatathonStartDate = new Date("August 9, 2024 12:00:00 UTC") diff --git a/src/components/Translatathon/TranslatathonCalendar.tsx b/src/components/Translatathon/TranslatathonCalendar.tsx index 5f9e103bfb8..117aadc486c 100644 --- a/src/components/Translatathon/TranslatathonCalendar.tsx +++ b/src/components/Translatathon/TranslatathonCalendar.tsx @@ -1,3 +1,5 @@ +"use client" + import { useLocale } from "next-intl" import { FaDiscord } from "react-icons/fa" diff --git a/src/components/TranslationChartImage/index.tsx b/src/components/TranslationChartImage/index.tsx index b617c35de65..e1010304263 100644 --- a/src/components/TranslationChartImage/index.tsx +++ b/src/components/TranslationChartImage/index.tsx @@ -1,3 +1,5 @@ +"use client" + import { Image } from "@/components/Image" import useColorModeValue from "@/hooks/useColorModeValue" diff --git a/src/components/TutorialMetadata.tsx b/src/components/TutorialMetadata.tsx index 263bdd28476..6f723d58244 100644 --- a/src/components/TutorialMetadata.tsx +++ b/src/components/TutorialMetadata.tsx @@ -1,3 +1,5 @@ +"use client" + import { useLocale } from "next-intl" import type { Lang, TranslationKey } from "@/lib/types" diff --git a/src/components/UpcomingEventsList.tsx b/src/components/UpcomingEventsList.tsx index b6647600cb0..081f6e3ed87 100644 --- a/src/components/UpcomingEventsList.tsx +++ b/src/components/UpcomingEventsList.tsx @@ -1,3 +1,5 @@ +"use client" + import { useEffect, useState } from "react" import _ from "lodash" import { useLocale } from "next-intl" diff --git a/src/components/WalletProviders.tsx b/src/components/WalletProviders.tsx new file mode 100644 index 00000000000..67ca76b99a3 --- /dev/null +++ b/src/components/WalletProviders.tsx @@ -0,0 +1,27 @@ +import { WagmiProvider } from "wagmi" +import { type Locale, RainbowKitProvider } from "@rainbow-me/rainbowkit" + +import { rainbowkitConfig } from "@/config/rainbow-kit" + +interface WalletProvidersProps { + children: React.ReactNode + locale: string | undefined +} + +const WalletProviders = ({ children, locale }: WalletProvidersProps) => { + return ( + + + {children} + + + ) +} + +export default WalletProviders diff --git a/src/components/YouTube.tsx b/src/components/YouTube.tsx index 52b2e92405f..3b5bb23a5cc 100644 --- a/src/components/YouTube.tsx +++ b/src/components/YouTube.tsx @@ -1,3 +1,5 @@ +"use client" + import React from "react" import LiteYouTubeEmbed from "react-lite-youtube-embed" diff --git a/src/components/icons/EthHomeIcon.tsx b/src/components/icons/EthHomeIcon.tsx index e7cd447cbdb..fb6c3815df8 100644 --- a/src/components/icons/EthHomeIcon.tsx +++ b/src/components/icons/EthHomeIcon.tsx @@ -10,37 +10,37 @@ export const EthHomeIcon = createIconBase({ d="M57.5054 181V135.84L1.64064 103.171L57.5054 181Z" fill="#F0CDC2" stroke="#1616B4" - stroke-linejoin="round" + strokeLinejoin="round" /> ), diff --git a/src/components/icons/arrows-fullscreen.svg b/src/components/icons/arrows-fullscreen.svg new file mode 100644 index 00000000000..e42cbd799c9 --- /dev/null +++ b/src/components/icons/arrows-fullscreen.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/icons/heart-pulse.svg b/src/components/icons/heart-pulse.svg new file mode 100644 index 00000000000..8ebc032ac10 --- /dev/null +++ b/src/components/icons/heart-pulse.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/icons/listen-to/expand.tsx b/src/components/icons/listen-to/expand.tsx index ac062c4f093..a67546b3bde 100644 --- a/src/components/icons/listen-to/expand.tsx +++ b/src/components/icons/listen-to/expand.tsx @@ -6,14 +6,14 @@ export const ExpandIcon = createIconBase({ children: ( diff --git a/src/components/icons/privacy.svg b/src/components/icons/privacy.svg new file mode 100644 index 00000000000..a5e3a73f64d --- /dev/null +++ b/src/components/icons/privacy.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/icons/stack.svg b/src/components/icons/stack.svg new file mode 100644 index 00000000000..055fa9c6c01 --- /dev/null +++ b/src/components/icons/stack.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/icons/staking/BedrockGlyphIcon.tsx b/src/components/icons/staking/BedrockGlyphIcon.tsx index 05942232469..58d53358dd4 100644 --- a/src/components/icons/staking/BedrockGlyphIcon.tsx +++ b/src/components/icons/staking/BedrockGlyphIcon.tsx @@ -9,8 +9,8 @@ export const BedrockGlyphIcon = createIconBase({ ...commonIconDefaultAttrs, children: ( ), diff --git a/src/components/icons/staking/EthpoolGlyphIcon.tsx b/src/components/icons/staking/EthpoolGlyphIcon.tsx index 1264f7b44a0..aa2bc204ffc 100644 --- a/src/components/icons/staking/EthpoolGlyphIcon.tsx +++ b/src/components/icons/staking/EthpoolGlyphIcon.tsx @@ -6,8 +6,8 @@ export const EthpoolGlyphIcon = createIconBase({ className: "size-[1em]", children: ( diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx index 531c5cd0577..e99df1ea7c7 100644 --- a/src/components/ui/Link.tsx +++ b/src/components/ui/Link.tsx @@ -1,3 +1,5 @@ +"use client" + import { AnchorHTMLAttributes, ComponentProps, forwardRef } from "react" import NextLink from "next/link" import { RxExternalLink } from "react-icons/rx" @@ -54,7 +56,7 @@ export const BaseLink = forwardRef(function Link( const { twFlipForRtl } = useRtlFlip() if (!href) { - console.warn("Link component is missing href prop") + console.warn(`Link component missing href prop, pathname: ${pathname}`) return } @@ -104,7 +106,7 @@ export const BaseLink = forwardRef(function Link( {!hideArrow && ( diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx index 70bdd2b2be5..c81d7d2c305 100644 --- a/src/components/ui/accordion.tsx +++ b/src/components/ui/accordion.tsx @@ -30,10 +30,12 @@ const AccordionTrigger = React.forwardRef< )} {...props} > - {children} - {!hideIcon && ( - - )} + <> + {children} + {!hideIcon && ( + + )} + )) diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx index f8513a8b77d..f6069966c47 100644 --- a/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -1,3 +1,5 @@ +"use client" + import * as React from "react" import upperCase from "lodash/upperCase" import { tv, type VariantProps } from "tailwind-variants" diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx index 96a4b42a8f2..dc618f9d897 100644 --- a/src/components/ui/breadcrumb.tsx +++ b/src/components/ui/breadcrumb.tsx @@ -1,5 +1,4 @@ import * as React from "react" -import { ComponentProps } from "react" import { LuChevronRight, LuMoreHorizontal } from "react-icons/lu" import { Slot } from "@radix-ui/react-slot" @@ -48,7 +47,7 @@ BreadcrumbItem.displayName = "BreadcrumbItem" const BreadcrumbLink = React.forwardRef< HTMLAnchorElement, React.ComponentPropsWithoutRef<"a"> & - ComponentProps & { + React.ComponentPropsWithoutRef & { asChild?: boolean } >(({ asChild, className, ...props }, ref) => { diff --git a/src/components/ui/buttons/Button.tsx b/src/components/ui/buttons/Button.tsx index 1072007ec4c..400eb6fc2de 100644 --- a/src/components/ui/buttons/Button.tsx +++ b/src/components/ui/buttons/Button.tsx @@ -1,3 +1,5 @@ +"use client" + import * as React from "react" import { cva, type VariantProps } from "class-variance-authority" import { Slot } from "@radix-ui/react-slot" diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx index 9e6a33d307c..9e96ca0a59f 100644 --- a/src/components/ui/checkbox.tsx +++ b/src/components/ui/checkbox.tsx @@ -8,7 +8,7 @@ import { cn } from "@/lib/utils/cn" * Common style classes for the checkbox, radio, and switch controls */ export const commonControlClasses = - "size-4 border border-body-medium text-background focus-visible:outline-offset-4 focus-visible:outline-primary-hover disabled:cursor-not-allowed disabled:border-disabled disabled:bg-disabled aria-[invalid]:border-error aria-[invalid]:bg-error-light data-[state='checked']:not-disabled:border-primary data-[state='checked']:not-disabled:bg-primary hover:[@media(hover:hover)_and_(pointer:fine)]:border-primary-hover hover:[@media(hover:hover)_and_(pointer:fine)]:bg-primary-hover data-[state='checked']:hover:[@media(hover:hover)_and_(pointer:fine)]:not-disabled:bg-primary-hover" + "size-4 border border-body-medium text-background focus-visible:outline-offset-4 focus-visible:outline-primary-hover disabled:cursor-not-allowed disabled:border-disabled disabled:bg-disabled aria-[invalid]:border-error aria-[invalid]:bg-error-light data-[state='checked']:not-disabled:border-primary data-[state='checked']:not-disabled:bg-primary group-hover:border-primary-hover hover:[@media(hover:hover)_and_(pointer:fine)]:border-primary-hover hover:[@media(hover:hover)_and_(pointer:fine)]:bg-primary-hover data-[state='checked']:hover:[@media(hover:hover)_and_(pointer:fine)]:not-disabled:bg-primary-hover" export type CheckboxProps = React.ComponentPropsWithoutRef< typeof CheckboxPrimitive.Root diff --git a/src/components/ui/table.tsx b/src/components/ui/table.tsx index 64e0bd52839..e836617ae3f 100644 --- a/src/components/ui/table.tsx +++ b/src/components/ui/table.tsx @@ -1,3 +1,5 @@ +"use client" + import * as React from "react" import { createContext, useContext } from "react" import { tv, type VariantProps } from "tailwind-variants" diff --git a/src/config/rainbow-kit.ts b/src/config/rainbow-kit.ts new file mode 100644 index 00000000000..5ed4ba6c3bd --- /dev/null +++ b/src/config/rainbow-kit.ts @@ -0,0 +1,29 @@ +import { mainnet } from "wagmi/chains" +import { getDefaultConfig } from "@rainbow-me/rainbowkit" +import { + coinbaseWallet, + metaMaskWallet, + oneKeyWallet, + rainbowWallet, + walletConnectWallet, + zerionWallet, +} from "@rainbow-me/rainbowkit/wallets" + +export const rainbowkitConfig = getDefaultConfig({ + appName: "ethereum.org", + projectId: process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID!, + chains: [mainnet], + wallets: [ + { + groupName: "New to crypto", + wallets: [ + coinbaseWallet, + rainbowWallet, + metaMaskWallet, + zerionWallet, + oneKeyWallet, + walletConnectWallet, + ], + }, + ], +}) diff --git a/src/data/chains.ts b/src/data/chains.ts index 948a5fa472a..574351ae2db 100644 --- a/src/data/chains.ts +++ b/src/data/chains.ts @@ -670,6 +670,17 @@ const chains = [ }, chain: "Dogether", }, + { + name: "Perennial", + infoURL: "https://perennial.finance", + chainId: 1424, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18, + }, + chain: "perennial", + }, { name: "ZKBase Mainnet", infoURL: "https://zkbase.org/", @@ -1011,6 +1022,17 @@ const chains = [ }, chain: "Ham", }, + { + name: "Seismic devnet", + infoURL: "https://seismic.systems", + chainId: 5124, + nativeCurrency: { + name: "Seismic Ether", + symbol: "ETH", + decimals: 18, + }, + chain: "Seismic", + }, { name: "Superseed", infoURL: "https://www.superseed.xyz", @@ -1055,6 +1077,17 @@ const chains = [ }, chain: "ETH", }, + { + name: "Rarimo", + infoURL: "https://rarimo.com", + chainId: 7368, + nativeCurrency: { + name: "Rarimo Ether", + symbol: "ETH", + decimals: 18, + }, + chain: "ETH", + }, { name: "Cyber Mainnet", infoURL: "https://cyber.co/", @@ -1363,6 +1396,17 @@ const chains = [ }, chain: "ATH", }, + { + name: "Hemi", + infoURL: "https://hemi.xyz", + chainId: 43111, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18, + }, + chain: "ETH", + }, { name: "Blessnet", infoURL: "https://blessnet.io", @@ -1606,29 +1650,29 @@ const chains = [ chain: "henez", }, { - name: "Lumoz Chain Mainnet", - infoURL: "https://lumoz.org", - chainId: 96370, + name: "XCHAIN", + infoURL: "https://kuma.bid", + chainId: 94524, nativeCurrency: { - name: "Lumoz Mainnet Token", - symbol: "MOZ", + name: "Ether", + symbol: "ETH", decimals: 18, }, - chain: "ETH", + chain: "XCHAIN", }, { - name: "Plume Devnet", - infoURL: "https://plumenetwork.xyz/", - chainId: 98864, + name: "Lumoz Chain Mainnet", + infoURL: "https://lumoz.org", + chainId: 96370, nativeCurrency: { - name: "Plume Sepolia Ether", - symbol: "ETH", + name: "Lumoz Mainnet Token", + symbol: "MOZ", decimals: 18, }, chain: "ETH", }, { - name: "Plume Mainnet", + name: "Plume (Legacy)", infoURL: "https://plumenetwork.xyz/", chainId: 98865, nativeCurrency: { @@ -1636,7 +1680,7 @@ const chains = [ symbol: "ETH", decimals: 18, }, - chain: "ETH", + chain: "PLUME Legacy", }, { name: "re.al", @@ -1782,6 +1826,17 @@ const chains = [ }, chain: "Infinaeon", }, + { + name: "EthereumFair", + infoURL: "https://etherfair.org/", + chainId: 513100, + nativeCurrency: { + name: "EthereumFair", + symbol: "ETHF", + decimals: 18, + }, + chain: "ETHF", + }, { name: "Scroll", infoURL: "https://scroll.io", diff --git a/src/data/community-events.json b/src/data/community-events.json index 66801cb90c5..7f73fed2765 100644 --- a/src/data/community-events.json +++ b/src/data/community-events.json @@ -422,6 +422,15 @@ "description": "Bringing developers onchain to build the future of the internet.", "imageUrl": "https://ethglobal.com/og.png" }, + { + "title": "ProdFest Jos", + "startDate": "2025-08-19", + "endDate": "2025-08-23", + "href": "https://prodfest.blockfuselabs.com/ ", + "location": "Jos, NGA", + "description": "Spotlighting the finest of African Innovation at the Web3 Jos Community Conference, Products Showcase and Hackathon", + "imageUrl": "https://drive.google.com/file/d/1JZlK8HFj0wB7woBlfvdJJ8_mpQUsGmCA/view?usp=sharing" + }, { "title": "Web3 Lagos Conference", "startDate": "2025-08-28", @@ -512,15 +521,6 @@ "description": "Join the best builders for a 3 day hackathon hosted at Oxford University.", "imageUrl": "https://ethoxford.io/assets/images/share.jpg?v=7e796eda" }, - { - "title": "ETHVietnam 2025", - "startDate": "2025-04-12", - "endDate": "2025-04-12", - "href": "https://eth-vietnam.com", - "location": "HCMC, VNM", - "description": "", - "imageUrl": "http://static1.squarespace.com/static/629856e64f44db3799f8e3f6/t/65c04e1059e3477a33a1c105/1707101732532/COVER.png?format=1500w" - }, { "title": "ETHDam III", "href": "https://www.ethdam.com", @@ -701,15 +701,6 @@ "description": "", "imageUrl": "" }, - { - "title": "ETHVietnam 2025", - "startDate": "2025-05-21", - "endDate": "2025-05-25", - "href": "https://eth-vietnam.com", - "location": "HCMC, VNM", - "description": "", - "imageUrl": "http://static1.squarespace.com/static/629856e64f44db3799f8e3f6/t/65c04e1059e3477a33a1c105/1707101732532/COVER.png?format=1500w" - }, { "title": "Ethsafari", "startDate": "2025-09-07", @@ -718,5 +709,32 @@ "location": "Nairobi, KEN", "description": "", "imageUrl": "" + }, + { + "title": "ETH Canal", + "startDate": "2025-04-22", + "endDate": "2025-04-25", + "href": "https://ethcanal.xyz", + "location": "Panama City, PAN", + "description": "Join us at ETH Canal, in Panama, the pivotal blockchain conference series for Ethereum business & blockchain enthusiasts and developers. Discover real-world applications of Ethereum technology, engage with top-tier talent, and explore partnership opportunities in a crypto-friendly environment.", + "imageUrl": "https://www.ethcanal.xyz/web/image/2180-32d6b8d6/StockCake-Cryptocurrency%2520Enthusiast%2520Smiling_1713136212.svg" + }, + { + "title": "ETHVietnam 2025", + "startDate": "2025-05-23", + "endDate": "2025-05-24", + "href": "https://eth-vietnam.com", + "location": "HCMC, VNM", + "description": "", + "imageUrl": "http://static1.squarespace.com/static/629856e64f44db3799f8e3f6/t/6761041c2c3aab15bfbb0ec1/1734411300379/Group+2612.png?format=1500w" + }, + { + "title": "EthAsia", + "startDate": "2025-04-09", + "endDate": "2025-04-09", + "href": "https://www.ethasia.org/", + "location": "Hong Kong, HKG", + "description": "A commmunity gathering festival: Make ETHEREUM Asia Great Again", + "imageUrl": "https://www.ethasia.org/_next/image?url=%2FBG.png&w=3840&q=75" } -] \ No newline at end of file +] diff --git a/src/data/community-meetups.json b/src/data/community-meetups.json index b30ddbb6c2e..5c58a6d033a 100644 --- a/src/data/community-meetups.json +++ b/src/data/community-meetups.json @@ -568,5 +568,11 @@ "emoji": ":brazil:", "location": "São Paulo", "link": "https://lu.ma/user/erc55" - } + }, + { + "title": "ETHBelgium ", + "emoji": ":belgium:", + "location": "Belgium", + "link": "https://lu.ma/ethbelgium" + } ] diff --git a/src/data/crowdin/file-ids.json b/src/data/crowdin/file-ids.json index 61232d8cddd..4e92ac997aa 100644 --- a/src/data/crowdin/file-ids.json +++ b/src/data/crowdin/file-ids.json @@ -1,11 +1,27 @@ [ { - "id": 5559, - "path": "/dao/index.md" + "id": 6428, + "path": "/web3/index.md" }, { - "id": 5565, - "path": "/nft/index.md" + "id": 7521, + "path": "/index.md" + }, + { + "id": 7525, + "path": "/how-to-create-an-ethereum-account/index.md" + }, + { + "id": 5561, + "path": "/defi/index.md" + }, + { + "id": 6161, + "path": "/events/index.md" + }, + { + "id": 7803, + "path": "/index.md" }, { "id": 2716, @@ -211,22 +227,10 @@ "id": 12540, "path": "/developers/docs/standards/tokens/erc-777/index.md" }, - { - "id": 2672, - "path": "/history/index.md" - }, - { - "id": 2954, - "path": "/glossary/index.md" - }, { "id": 5557, "path": "/community/grants/index.md" }, - { - "id": 6161, - "path": "/community/events/index.md" - }, { "id": 6163, "path": "/community/get-involved/index.md" @@ -243,10 +247,6 @@ "id": 6185, "path": "/community/language-resources/index.md" }, - { - "id": 8019, - "path": "/community/code-of-conduct/index.md" - }, { "id": 12036, "path": "/community/research/index.md" @@ -283,10 +283,6 @@ "id": 7749, "path": "/roadmap/user-experience/index.md" }, - { - "id": 7803, - "path": "/roadmap/index.md" - }, { "id": 5553, "path": "/contributing/translation-program/faq/index.md" @@ -368,72 +364,40 @@ "path": "/staking/solo/index.md" }, { - "id": 7591, - "path": "/staking/withdrawals/index.md" + "id": 2672, + "path": "/history/index.md" }, { - "id": 7919, - "path": "/staking/dvt/index.md" + "id": 2962, + "path": "/foundation/index.md" }, { - "id": 5563, - "path": "/governance/index.md" + "id": 2966, + "path": "/about/index.md" }, { - "id": 6183, - "path": "/energy-consumption/index.md" + "id": 5563, + "path": "/governance/index.md" }, { "id": 6187, "path": "/security/index.md" }, { - "id": 7320, - "path": "/bridges/index.md" - }, - { - "id": 7465, - "path": "/zero-knowledge-proofs/index.md" - }, - { - "id": 5561, - "path": "/defi/index.md" + "id": 5559, + "path": "/dao/index.md" }, { - "id": 6428, - "path": "/web3/index.md" + "id": 5565, + "path": "/nft/index.md" }, { "id": 6440, "path": "/smart-contracts/index.md" }, { - "id": 7521, - "path": "/guides/index.md" - }, - { - "id": 7525, - "path": "/guides/how-to-create-an-ethereum-account/index.md" - }, - { - "id": 7529, - "path": "/guides/how-to-revoke-token-access/index.md" - }, - { - "id": 7533, - "path": "/guides/how-to-swap-tokens/index.md" - }, - { - "id": 7537, - "path": "/guides/how-to-use-a-bridge/index.md" - }, - { - "id": 7541, - "path": "/guides/how-to-use-a-wallet/index.md" - }, - { - "id": 8027, - "path": "/guides/how-to-id-scam-tokens/index.md" + "id": 12565, + "path": "/payments/index.md" }, { "id": 2776, @@ -616,28 +580,32 @@ "path": "/enterprise/index.md" }, { - "id": 2962, - "path": "/foundation/index.md" + "id": 2954, + "path": "/glossary/index.md" }, { - "id": 2966, - "path": "/about/index.md" + "id": 7320, + "path": "/bridges/index.md" }, { - "id": 7314, - "path": "/social-networks/index.md" + "id": 7529, + "path": "/guides/how-to-revoke-token-access/index.md" }, { - "id": 7316, - "path": "/decentralized-identity/index.md" + "id": 7533, + "path": "/guides/how-to-swap-tokens/index.md" }, { - "id": 7461, - "path": "/desci/index.md" + "id": 7537, + "path": "/guides/how-to-use-a-bridge/index.md" }, { - "id": 8035, - "path": "/refi/index.md" + "id": 7541, + "path": "/guides/how-to-use-a-wallet/index.md" + }, + { + "id": 8027, + "path": "/guides/how-to-id-scam-tokens/index.md" }, { "id": 7713, @@ -714,5 +682,41 @@ { "id": 8007, "path": "/contributing/quizzes/index.md" + }, + { + "id": 6183, + "path": "/energy-consumption/index.md" + }, + { + "id": 7314, + "path": "/social-networks/index.md" + }, + { + "id": 7316, + "path": "/decentralized-identity/index.md" + }, + { + "id": 7461, + "path": "/desci/index.md" + }, + { + "id": 7465, + "path": "/zero-knowledge-proofs/index.md" + }, + { + "id": 7591, + "path": "/withdrawals/index.md" + }, + { + "id": 7919, + "path": "/dvt/index.md" + }, + { + "id": 8019, + "path": "/code-of-conduct/index.md" + }, + { + "id": 8035, + "path": "/refi/index.md" } ] \ No newline at end of file diff --git a/src/data/crowdin/translation-buckets-dirs.json b/src/data/crowdin/translation-buckets-dirs.json index 9cd3287adb1..099fd9ad18b 100644 --- a/src/data/crowdin/translation-buckets-dirs.json +++ b/src/data/crowdin/translation-buckets-dirs.json @@ -1,114 +1,118 @@ [ { "id": 5497, - "name": "01) Homepage" + "name": "01)" }, { "id": 5499, - "name": "05) Use Ethereum Pages" + "name": "05)" }, { "id": 5501, - "name": "04) Exploring" + "name": "04)" }, { "id": 5503, - "name": "13) Foundational Docs" + "name": "13)" }, { "id": 5505, - "name": "18) Docs – Tech Stack Pages" + "name": "18)" }, { "id": 5507, - "name": "21) Whitepaper" + "name": "21)" }, { "id": 5509, - "name": "23) Advanced Docs" + "name": "23)" }, { "id": 5513, - "name": "22) Learn Pages 2" + "name": "22)" }, { "id": 6189, - "name": "14) Community Pages" + "name": "14)" }, { "id": 6197, - "name": "11) Roadmap" + "name": "11)" }, { "id": 6386, - "name": "27) Contributing" + "name": "27)" }, { "id": 6534, - "name": "25) Research Documentation" + "name": "25)" }, { "id": 7290, - "name": "07) Staking Pages" + "name": "07)" }, { "id": 7292, - "name": "03) Essentials" + "name": "03)" }, { "id": 7296, - "name": "09) Learn Pages" + "name": "09)" }, { "id": 7300, - "name": "06) Use Cases" + "name": "06)" }, { "id": 7517, - "name": "10) Guides and Quizzes" + "name": "10)" }, { "id": 7819, - "name": "15) Foundational Docs – Nodes and Clients" + "name": "15)" }, { "id": 7821, - "name": "16) Foundational Docs – Proof-of-Stake" + "name": "16)" }, { "id": 7823, - "name": "17) Foundational Docs – Proof-of-Work" + "name": "17)" }, { "id": 7825, - "name": "19) Smart Contracts – Basics" + "name": "19)" }, { "id": 7827, - "name": "20) Smart Contracts – Advanced" + "name": "20)" }, { "id": 7829, - "name": "24) Advanced Docs – Scaling" + "name": "24)" }, { "id": 7831, - "name": "26) Miscellaneous" + "name": "26)" }, { "id": 11134, - "name": "02) Essential Learning" + "name": "02)" }, { "id": 11136, - "name": "08) Use cases 2" + "name": "08)" }, { "id": 11138, - "name": "12) Roadmap 2" + "name": "12)" }, { "id": 11140, - "name": "28) Contributing 2" + "name": "28)" + }, + { + "id": 12567, + "name": "0 Unallocated" } ] \ No newline at end of file diff --git a/src/data/execution-bounty-hunters.json b/src/data/execution-bounty-hunters.json index 9fc3f9aeb79..80cfa53fe3c 100644 --- a/src/data/execution-bounty-hunters.json +++ b/src/data/execution-bounty-hunters.json @@ -2,12 +2,22 @@ { "username": "holiman", "name": "Martin Holst Swende", - "score": 42500 + "score": 43500 + }, + { + "username": "guidovranken", + "name": "Guido Vranken", + "score": 35250 }, { "username": "samczsun", "name": "Sam Sun", "score": 35000 + }, + { + "username": "", + "name": "nrv (@nervoir)", + "score": 31000 }, { "username": "chainsecurity", @@ -24,21 +34,11 @@ "name": "Yoonho Kim (team Hithereum)", "score": 20000 }, - { - "username": "", - "name": "nrv (@nervoir)", - "score": 31000 - }, { "username": "johnyangk", "name": "John Youngseok Yang (Software Platform Lab)", "score": 20000 }, - { - "username": "guidovranken", - "name": "Guido Vranken", - "score": 34250 - }, { "username": "peckshield", "name": "PeckShield", diff --git a/src/data/mocks/frameworksListData.json b/src/data/mocks/frameworksListData.json index b2a12332129..a5f36cf79eb 100644 --- a/src/data/mocks/frameworksListData.json +++ b/src/data/mocks/frameworksListData.json @@ -1 +1 @@ -[{"id":"waffle","url":"https://getwaffle.io/","githubUrl":"https://github.com/EthWorks/waffle","background":"#ffffff","name":"Waffle","description":"page-developers-local-environment:page-local-environment-waffle-desc","alt":"page-developers-local-environment:page-local-environment-waffle-logo-alt","image":{"src":"/_next/static/media/waffle.1981c9d4.png","height":100,"width":151,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAPFBMVEWGZCGIWzFySCRnQSJfPSH/sURtQx//xFV4TSehaTBnQSHzrErvqEzgmT6nbTB5TSaDXiR6TSaaZTC4dCu5fsv8AAAAEXRSTlMBSLT7Kcj6LNDX+6BT/aykFAc2PBoAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAtSURBVHicBcGHEQAgDAOxpyb0M+y/KxIQ3AOQjyTFTFNNvd6G7fveGgbMUgw+G7gBR5ZLRtoAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":5},"starCount":961,"languages":["TypeScript","Solidity"]},{"id":"Kurtosis Ethereum Package","url":"https://github.com/kurtosis-tech/ethereum-package","githubUrl":"https://github.com/kurtosis-tech/ethereum-package","background":"#000000","name":"Kurtosis Ethereum Package","description":"page-developers-local-environment:page-local-environment-kurtosis-desc","alt":"page-developers-local-environment:page-local-environment-kurtosis-logo-alt","image":{"src":"/_next/static/media/kurtosis.2d89f1e0.png","height":500,"width":500,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEVMaXEAwSMAxCYAyCIAwiIAwiMAwSMAvyM0GQgYAAAACHRSTlMASRMJYVeGMThI5+sAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAtSURBVHicRYrJCQAwEISc2av/jsNCQnyJCB8TNjBttQClaoAoZa5sUdemN18ODtQAaWHwWFMAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":8},"starCount":235,"languages":["Starlark","Python"]},{"id":"hardhat","url":"https://hardhat.org/","githubUrl":"https://github.com/nomiclabs/hardhat","background":"#faf8fb","name":"Hardhat","description":"page-developers-local-environment:page-local-environment-hardhat-desc","alt":"page-developers-local-environment:page-local-environment-hardhat-logo-alt","image":{"src":"/_next/static/media/hardhat.e5431960.png","height":200,"width":629,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAADCAMAAACZFr56AAAALVBMVEX59vr5+O3cw6f59tr9/P7Wk2Dm2VHz7bbev5Li4N69g2HTpHPy4tjh14Dr5HRySo1GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAI0lEQVR4nGNgYGBg4eNlY2Zg52Rk4OJm5WFgZmRkYWLiYAQABpAAdvjWgdcAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":3},"starCount":7212,"languages":["TypeScript","Solidity"]},{"id":"brownie","url":"https://github.com/eth-brownie/brownie","githubUrl":"https://github.com/eth-brownie/brownie","background":"#ffffff","name":"Brownie","description":"page-developers-local-environment:page-local-environment-brownie-desc","alt":"page-developers-local-environment:page-local-environment-brownie-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":2640,"languages":["Python","Solidity"]},{"id":"epirus","url":"https://www.web3labs.com/epirus","githubUrl":"https://github.com/web3labs/epirus-free","background":"#ffffff","name":"Epirus","description":"page-developers-local-environment:page-local-environment-epirus-desc","alt":"page-developers-local-environment:page-local-environment-epirus-logo-alt","image":{"src":"/_next/static/media/epirus.5f7d05a1.png","height":105,"width":105,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAASFBMVEVMaXE+MuxJOv2Khvpyetx1b+hIOP1LPf+Wkv9IOf1HOfyTkP8eEqcaEZ4UCp4PA5qPi/+QjP9vZ/xgVfyem/9BM/YgFLNFPNK67oEUAAAAFHRSTlMA9LqdCxiR/brL2NPbOpSlfPf9/SnJx9EAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA+SURBVHicHYtJFsAgCMW+FQS0s2jvf9M+ySbZBE8fIiIbmr/VrBawujKC2zXM15eXj32etCKNZIVaRrzk+gNNUgH0EjhMjQAAAABJRU5ErkJggg==","blurWidth":8,"blurHeight":8},"starCount":245,"languages":["HTML","Shell"]},{"id":"createethapp","url":"https://github.com/PaulRBerg/create-eth-app","githubUrl":"https://github.com/PaulRBerg/create-eth-app","background":"#ffffff","name":"Create Eth App","description":"page-developers-local-environment:page-local-environment-eth-app-desc","alt":"page-developers-local-environment:page-local-environment-eth-app-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":2743,"languages":["JavaScript","TypeScript"]},{"id":"scaffoldeth","url":"https://scaffoldeth.io/","githubUrl":"https://github.com/scaffold-eth/scaffold-eth-2","background":"#ffffff","name":"Scaffold-ETH-2","description":"page-developers-local-environment:page-local-environment-scaffold-eth-desc","alt":"page-local-environment-scaffold-eth-logo-alt","image":{"src":"/_next/static/media/scaffoldeth.cd548199.png","height":100,"width":100,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAMFBMVEUAAAAAAAAAAAAAAAAXFxeGhoYMDAx1dXVeXl4tLS1JSUmVlZWhoaG7u7vR0dHp6emgnumOAAAAA3RSTlP3hItveKZsAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOElEQVR4nC2LSQ7AIAzEBhwStsL/f4to65Mly8q8JInW3ZCwZ41iCGohPgnb/UoMv0ltzupI6d8PK9kBO0fyA1cAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":8},"starCount":1320,"languages":["TypeScript","JavaScript"]},{"id":"soliditytemplate","url":"https://github.com/paulrberg/solidity-template","githubUrl":"https://github.com/paulrberg/solidity-template","background":"#ffffff","name":"Solidity template","description":"page-developers-local-environment:page-local-environment-solidity-template-desc","alt":"page-developers-local-environment:page-local-environment-solidity-template-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":1955,"languages":["TypeScript","Solidity"]},{"id":"foundry","url":"https://getfoundry.sh/","githubUrl":"https://github.com/foundry-rs/foundry","background":"#ffffff","name":"Foundry","description":"page-developers-local-environment:page-local-environment-foundry-desc","alt":"page-developers-local-environment:page-local-environment-foundry-logo-alt","image":{"src":"/_next/static/media/foundry.1018b0c1.png","height":200,"width":200,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAATlBMVEV1dXXCwsKjo6Ofn5/z8/N4eHjo6OhxcXGJiYnKysqNjY2Li4uWlpaZmZmxsbGysrLR0dHT09O9vb1CQkK0tLShoaFwcHBUVFT////W1tYM2FdSAAAAFnRSTlMCX6uk/f78qP7+XKVf/F+k+177+aWoKC52FAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEFJREFUeJwVy0cSgDAMALFNtdMIbRz4/0cZdBfQRTpAMzNrUFeKUVdFLKvmJMx46ijlxpWx58sOCI+lN/xt897BB1iEAl23XQdDAAAAAElFTkSuQmCC","blurWidth":8,"blurHeight":8},"starCount":8167,"languages":["Rust","Shell"]}] \ No newline at end of file +[{"id":"Kurtosis Ethereum Package","url":"https://github.com/kurtosis-tech/ethereum-package","githubUrl":"https://github.com/kurtosis-tech/ethereum-package","background":"#000000","name":"Kurtosis Ethereum Package","description":"page-developers-local-environment:page-local-environment-kurtosis-desc","alt":"page-developers-local-environment:page-local-environment-kurtosis-logo-alt","image":{"src":"/_next/static/media/kurtosis.2d89f1e0.png","height":500,"width":500,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEVMaXEAwSMAxCYAyCIAwiIAwiMAwSMAvyM0GQgYAAAACHRSTlMASRMJYVeGMThI5+sAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAtSURBVHicRYrJCQAwEISc2av/jsNCQnyJCB8TNjBttQClaoAoZa5sUdemN18ODtQAaWHwWFMAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":8},"starCount":235,"languages":["Starlark","Python"]},{"id":"hardhat","url":"https://hardhat.org/","githubUrl":"https://github.com/nomiclabs/hardhat","background":"#faf8fb","name":"Hardhat","description":"page-developers-local-environment:page-local-environment-hardhat-desc","alt":"page-developers-local-environment:page-local-environment-hardhat-logo-alt","image":{"src":"/_next/static/media/hardhat.e5431960.png","height":200,"width":629,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAADCAMAAACZFr56AAAALVBMVEX59vr5+O3cw6f59tr9/P7Wk2Dm2VHz7bbev5Li4N69g2HTpHPy4tjh14Dr5HRySo1GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAI0lEQVR4nGNgYGBg4eNlY2Zg52Rk4OJm5WFgZmRkYWLiYAQABpAAdvjWgdcAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":3},"starCount":7212,"languages":["TypeScript","Solidity"]},{"id":"brownie","url":"https://github.com/eth-brownie/brownie","githubUrl":"https://github.com/eth-brownie/brownie","background":"#ffffff","name":"Brownie","description":"page-developers-local-environment:page-local-environment-brownie-desc","alt":"page-developers-local-environment:page-local-environment-brownie-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":2640,"languages":["Python","Solidity"]},{"id":"epirus","url":"https://www.web3labs.com/epirus","githubUrl":"https://github.com/web3labs/epirus-free","background":"#ffffff","name":"Epirus","description":"page-developers-local-environment:page-local-environment-epirus-desc","alt":"page-developers-local-environment:page-local-environment-epirus-logo-alt","image":{"src":"/_next/static/media/epirus.5f7d05a1.png","height":105,"width":105,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAASFBMVEVMaXE+MuxJOv2Khvpyetx1b+hIOP1LPf+Wkv9IOf1HOfyTkP8eEqcaEZ4UCp4PA5qPi/+QjP9vZ/xgVfyem/9BM/YgFLNFPNK67oEUAAAAFHRSTlMA9LqdCxiR/brL2NPbOpSlfPf9/SnJx9EAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA+SURBVHicHYtJFsAgCMW+FQS0s2jvf9M+ySbZBE8fIiIbmr/VrBawujKC2zXM15eXj32etCKNZIVaRrzk+gNNUgH0EjhMjQAAAABJRU5ErkJggg==","blurWidth":8,"blurHeight":8},"starCount":245,"languages":["HTML","Shell"]},{"id":"createethapp","url":"https://github.com/PaulRBerg/create-eth-app","githubUrl":"https://github.com/PaulRBerg/create-eth-app","background":"#ffffff","name":"Create Eth App","description":"page-developers-local-environment:page-local-environment-eth-app-desc","alt":"page-developers-local-environment:page-local-environment-eth-app-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":2743,"languages":["JavaScript","TypeScript"]},{"id":"scaffoldeth","url":"https://scaffoldeth.io/","githubUrl":"https://github.com/scaffold-eth/scaffold-eth-2","background":"#ffffff","name":"Scaffold-ETH-2","description":"page-developers-local-environment:page-local-environment-scaffold-eth-desc","alt":"page-local-environment-scaffold-eth-logo-alt","image":{"src":"/_next/static/media/scaffoldeth.cd548199.png","height":100,"width":100,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAMFBMVEUAAAAAAAAAAAAAAAAXFxeGhoYMDAx1dXVeXl4tLS1JSUmVlZWhoaG7u7vR0dHp6emgnumOAAAAA3RSTlP3hItveKZsAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOElEQVR4nC2LSQ7AIAzEBhwStsL/f4to65Mly8q8JInW3ZCwZ41iCGohPgnb/UoMv0ltzupI6d8PK9kBO0fyA1cAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":8},"starCount":1320,"languages":["TypeScript","JavaScript"]},{"id":"soliditytemplate","url":"https://github.com/paulrberg/solidity-template","githubUrl":"https://github.com/paulrberg/solidity-template","background":"#ffffff","name":"Solidity template","description":"page-developers-local-environment:page-local-environment-solidity-template-desc","alt":"page-developers-local-environment:page-local-environment-solidity-template-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":1955,"languages":["TypeScript","Solidity"]},{"id":"foundry","url":"https://getfoundry.sh/","githubUrl":"https://github.com/foundry-rs/foundry","background":"#ffffff","name":"Foundry","description":"page-developers-local-environment:page-local-environment-foundry-desc","alt":"page-developers-local-environment:page-local-environment-foundry-logo-alt","image":{"src":"/_next/static/media/foundry.1018b0c1.png","height":200,"width":200,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAATlBMVEV1dXXCwsKjo6Ofn5/z8/N4eHjo6OhxcXGJiYnKysqNjY2Li4uWlpaZmZmxsbGysrLR0dHT09O9vb1CQkK0tLShoaFwcHBUVFT////W1tYM2FdSAAAAFnRSTlMCX6uk/f78qP7+XKVf/F+k+177+aWoKC52FAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEFJREFUeJwVy0cSgDAMALFNtdMIbRz4/0cZdBfQRTpAMzNrUFeKUVdFLKvmJMx46ijlxpWx58sOCI+lN/xt897BB1iEAl23XQdDAAAAAElFTkSuQmCC","blurWidth":8,"blurHeight":8},"starCount":8167,"languages":["Rust","Shell"]}] \ No newline at end of file diff --git a/src/data/published.json b/src/data/published.json index 6590c0fcb30..b489b1cb978 100644 --- a/src/data/published.json +++ b/src/data/published.json @@ -1 +1 @@ -{"date":"2025-03-12"} +{"date":"2025-03-26"} diff --git a/src/data/translationProgress.json b/src/data/translationProgress.json index ec484156620..1d5d680173c 100644 --- a/src/data/translationProgress.json +++ b/src/data/translationProgress.json @@ -3,686 +3,686 @@ "languageId": "af", "words": { "approved": 1554, - "total": 277274 + "total": 280448 } }, { "languageId": "am", "words": { - "approved": 10824, - "total": 277274 + "approved": 10713, + "total": 280448 } }, { "languageId": "ar", "words": { - "approved": 37711, - "total": 277274 + "approved": 37264, + "total": 280448 } }, { "languageId": "az", "words": { - "approved": 22722, - "total": 277274 + "approved": 22282, + "total": 280448 } }, { "languageId": "be", "words": { - "approved": 36120, - "total": 277274 + "approved": 35870, + "total": 280448 } }, { "languageId": "bg", "words": { - "approved": 18982, - "total": 277274 + "approved": 18855, + "total": 280448 } }, { "languageId": "bi", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "bn", "words": { - "approved": 29828, - "total": 277274 + "approved": 29381, + "total": 280448 } }, { "languageId": "br-FR", "words": { "approved": 43, - "total": 277274 + "total": 280448 } }, { "languageId": "bs", "words": { - "approved": 7466, - "total": 277274 + "approved": 7431, + "total": 280448 } }, { "languageId": "ca", "words": { - "approved": 26983, - "total": 277274 + "approved": 26726, + "total": 280448 } }, { "languageId": "cs", "words": { - "approved": 132738, - "total": 277274 + "approved": 126930, + "total": 280448 } }, { "languageId": "da", "words": { - "approved": 2520, - "total": 277274 + "approved": 2485, + "total": 280448 } }, { "languageId": "de", "words": { - "approved": 204628, - "total": 277274 + "approved": 201932, + "total": 280448 } }, { "languageId": "dv", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "ee", "words": { - "approved": 2540, - "total": 277274 + "approved": 2505, + "total": 280448 } }, { "languageId": "el", "words": { - "approved": 219145, - "total": 277274 + "approved": 215475, + "total": 280448 } }, { "languageId": "eo", "words": { "approved": 46, - "total": 277274 + "total": 280448 } }, { "languageId": "es-EM", "words": { - "approved": 259650, - "total": 277274 + "approved": 252549, + "total": 280448 } }, { "languageId": "et", "words": { "approved": 19, - "total": 277274 + "total": 280448 } }, { "languageId": "eu", "words": { "approved": 10, - "total": 277274 + "total": 280448 } }, { "languageId": "fa", "words": { - "approved": 253798, - "total": 277274 + "approved": 246801, + "total": 280448 } }, { "languageId": "fa-AF", "words": { "approved": 64, - "total": 277274 + "total": 280448 } }, { "languageId": "fi", "words": { - "approved": 19574, - "total": 277274 + "approved": 19035, + "total": 280448 } }, { "languageId": "fil", "words": { - "approved": 53904, - "total": 277274 + "approved": 52867, + "total": 280448 } }, { "languageId": "fr", "words": { - "approved": 276688, - "total": 277274 + "approved": 267963, + "total": 280448 } }, { "languageId": "ga-IE", "words": { - "approved": 100208, - "total": 277336 + "approved": 98732, + "total": 280510 } }, { "languageId": "gi", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "gl", "words": { - "approved": 2522, - "total": 277274 + "approved": 2487, + "total": 280448 } }, { "languageId": "gu-IN", "words": { - "approved": 2634, - "total": 277274 + "approved": 2599, + "total": 280448 } }, { "languageId": "ha", "words": { - "approved": 42184, - "total": 277274 + "approved": 41923, + "total": 280448 } }, { "languageId": "he", "words": { - "approved": 3238, - "total": 277274 + "approved": 3203, + "total": 280448 } }, { "languageId": "hi", "words": { - "approved": 168849, - "total": 277274 + "approved": 166503, + "total": 280448 } }, { "languageId": "hr", "words": { - "approved": 20632, - "total": 277274 + "approved": 20491, + "total": 280448 } }, { "languageId": "hu", "words": { - "approved": 260460, - "total": 277274 + "approved": 253362, + "total": 280448 } }, { "languageId": "hy-AM", "words": { - "approved": 9589, - "total": 277274 + "approved": 9478, + "total": 280448 } }, { "languageId": "id", "words": { - "approved": 130832, - "total": 277274 + "approved": 128937, + "total": 280448 } }, { "languageId": "ig", "words": { - "approved": 22006, - "total": 277274 + "approved": 21811, + "total": 280448 } }, { "languageId": "it", "words": { - "approved": 272957, - "total": 277274 + "approved": 265703, + "total": 280448 } }, { "languageId": "ja", "words": { - "approved": 258444, - "total": 277274 + "approved": 251363, + "total": 280448 } }, { "languageId": "ka", "words": { - "approved": 5337, - "total": 277274 + "approved": 5302, + "total": 280448 } }, { "languageId": "kk", "words": { - "approved": 10304, - "total": 277274 + "approved": 10260, + "total": 280448 } }, { "languageId": "km", "words": { - "approved": 12043, - "total": 277274 + "approved": 11925, + "total": 280448 } }, { "languageId": "kn", "words": { - "approved": 37909, - "total": 277274 + "approved": 37366, + "total": 280448 } }, { "languageId": "ko", "words": { - "approved": 52635, - "total": 277274 + "approved": 51916, + "total": 280448 } }, { "languageId": "ku", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "ky", "words": { "approved": 74, - "total": 277274 + "total": 280448 } }, { "languageId": "lb", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "lt", "words": { - "approved": 3014, - "total": 277274 + "approved": 2972, + "total": 280448 } }, { "languageId": "lv", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "mai", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "mk", "words": { "approved": 54, - "total": 277274 + "total": 280448 } }, { "languageId": "ml-IN", "words": { - "approved": 18104, - "total": 277274 + "approved": 17972, + "total": 280448 } }, { "languageId": "mn", "words": { "approved": 48, - "total": 277274 + "total": 280448 } }, { "languageId": "mr", "words": { - "approved": 21800, - "total": 277274 + "approved": 21374, + "total": 280448 } }, { "languageId": "ms", "words": { - "approved": 71682, - "total": 277274 + "approved": 70512, + "total": 280448 } }, { "languageId": "my", "words": { "approved": 65, - "total": 277274 + "total": 280448 } }, { "languageId": "ne-NP", "words": { - "approved": 2533, - "total": 277274 + "approved": 2498, + "total": 280448 } }, { "languageId": "nl", "words": { - "approved": 104683, - "total": 277274 + "approved": 102936, + "total": 280448 } }, { "languageId": "no", "words": { - "approved": 2992, - "total": 277274 + "approved": 2950, + "total": 280448 } }, { "languageId": "ny", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "or", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "pa-IN", "words": { "approved": 3, - "total": 277274 + "total": 280448 } }, { "languageId": "pcm", "words": { - "approved": 72580, - "total": 277274 + "approved": 71416, + "total": 280448 } }, { "languageId": "pl", "words": { - "approved": 111721, - "total": 277274 + "approved": 110129, + "total": 280448 } }, { "languageId": "ps", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "pt-BR", "words": { - "approved": 267177, - "total": 277274 + "approved": 260040, + "total": 280448 } }, { "languageId": "pt-PT", "words": { - "approved": 37255, - "total": 277274 + "approved": 36767, + "total": 280448 } }, { "languageId": "ro", "words": { - "approved": 43002, - "total": 277274 + "approved": 42605, + "total": 280448 } }, { "languageId": "ru", "words": { - "approved": 118709, - "total": 277274 + "approved": 117119, + "total": 280448 } }, { "languageId": "sat", "words": { "approved": 57, - "total": 277274 + "total": 280448 } }, { "languageId": "si-LK", "words": { "approved": 65, - "total": 277274 + "total": 280448 } }, { "languageId": "sk", "words": { - "approved": 46403, - "total": 277274 + "approved": 45417, + "total": 280448 } }, { "languageId": "sl", "words": { - "approved": 26286, - "total": 277274 + "approved": 25930, + "total": 280448 } }, { "languageId": "sn", "words": { - "approved": 5561, - "total": 277274 + "approved": 5519, + "total": 280448 } }, { "languageId": "so", "words": { "approved": 62, - "total": 277274 + "total": 280448 } }, { "languageId": "sq", "words": { "approved": 67, - "total": 277274 + "total": 280448 } }, { "languageId": "sr-CS", "words": { - "approved": 38032, - "total": 277274 + "approved": 37505, + "total": 280448 } }, { "languageId": "sv-SE", "words": { - "approved": 10219, - "total": 277274 + "approved": 10101, + "total": 280448 } }, { "languageId": "sw", "words": { - "approved": 23963, - "total": 277274 + "approved": 23768, + "total": 280448 } }, { "languageId": "ta", "words": { - "approved": 2799, - "total": 277274 + "approved": 2764, + "total": 280448 } }, { "languageId": "te", "words": { - "approved": 26728, - "total": 277274 + "approved": 26571, + "total": 280448 } }, { "languageId": "tg", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "th", "words": { - "approved": 6310, - "total": 277274 + "approved": 6275, + "total": 280448 } }, { "languageId": "ti", "words": { "approved": 0, - "total": 277274 + "total": 280448 } }, { "languageId": "tk", "words": { - "approved": 6198, - "total": 277274 + "approved": 6163, + "total": 280448 } }, { "languageId": "tl", "words": { - "approved": 50078, - "total": 277274 + "approved": 49041, + "total": 280448 } }, { "languageId": "tr", "words": { - "approved": 258219, - "total": 277274 + "approved": 251138, + "total": 280448 } }, { "languageId": "tw", "words": { - "approved": 6026, - "total": 277274 + "approved": 5991, + "total": 280448 } }, { "languageId": "uk", "words": { - "approved": 83668, - "total": 277274 + "approved": 82392, + "total": 280448 } }, { "languageId": "ur-IN", "words": { - "approved": 2513, - "total": 277274 + "approved": 2478, + "total": 280448 } }, { "languageId": "ur-PK", "words": { - "approved": 900, - "total": 277274 + "approved": 865, + "total": 280448 } }, { "languageId": "uz", "words": { - "approved": 37190, - "total": 277274 + "approved": 36683, + "total": 280448 } }, { "languageId": "vi", "words": { - "approved": 35203, - "total": 277274 + "approved": 34827, + "total": 280448 } }, { "languageId": "yo", "words": { - "approved": 44206, - "total": 277274 + "approved": 43667, + "total": 280448 } }, { "languageId": "zh-CN", "words": { - "approved": 277274, - "total": 277274 + "approved": 268455, + "total": 280448 } }, { "languageId": "zh-TW", "words": { - "approved": 246970, - "total": 277274 + "approved": 241168, + "total": 280448 } }, { "languageId": "zu", "words": { "approved": 43, - "total": 277274 + "total": 280448 } } ] \ No newline at end of file diff --git a/src/data/wallets/wallet-data.ts b/src/data/wallets/wallet-data.ts index f39a740f011..50f57dc137d 100644 --- a/src/data/wallets/wallet-data.ts +++ b/src/data/wallets/wallet-data.ts @@ -836,7 +836,7 @@ export const walletsData: WalletData[] = [ supported_chains: ["Ethereum Mainnet", "OP Mainnet", "Arbitrum One"], }, { - last_updated: "2024-09-26", + last_updated: "2025-03-19", name: "MEW wallet", image: MewImage, twBackgroundColor: "bg-[#05C0A5]", @@ -883,6 +883,7 @@ export const walletsData: WalletData[] = [ "zkSync Mainnet", "Base", "Arbitrum One", + "OP Mainnet" ], }, { diff --git a/src/i18n/loadMessages.ts b/src/i18n/loadMessages.ts new file mode 100644 index 00000000000..bca0b1afed1 --- /dev/null +++ b/src/i18n/loadMessages.ts @@ -0,0 +1,37 @@ +import fs from "fs" +import path from "path" + +import { cache } from "react" + +function getNamespaces(localePath: string): string[] { + return fs + .readdirSync(localePath) + .filter((file) => file.endsWith(".json")) + .map((file) => file.replace(".json", "")) +} + +const messagesCache: Record> = {} + +async function loadMessages(locale: string) { + if (messagesCache[locale]) { + return messagesCache[locale] + } + + const intlPath = path.join(process.cwd(), "src/intl") + const messages: Record = {} + + const localePath = path.join(intlPath, locale) + if (fs.statSync(localePath).isDirectory()) { + const namespaces = getNamespaces(localePath) + + for (const ns of namespaces) { + messages[ns] = (await import(`../intl/${locale}/${ns}.json`)).default + } + } + + messagesCache[locale] = messages + return messages +} + +// Keep the React cache wrapper as well for RSC optimization +export const getMessages = cache(loadMessages) diff --git a/src/i18n/request.ts b/src/i18n/request.ts index c27ae4c2bc0..ac61f667d0f 100644 --- a/src/i18n/request.ts +++ b/src/i18n/request.ts @@ -1,7 +1,9 @@ +import merge from "lodash.merge" import { getRequestConfig } from "next-intl/server" import { Lang } from "@/lib/types" +import { getMessages } from "./loadMessages" import { routing } from "./routing" export default getRequestConfig(async ({ requestLocale }) => { @@ -13,8 +15,20 @@ export default getRequestConfig(async ({ requestLocale }) => { locale = routing.defaultLocale } + const allLocaleMessages = await getMessages(locale) + const allDefaultMessages = await getMessages(routing.defaultLocale) + const messages = merge(allDefaultMessages, allLocaleMessages) + return { locale, - messages: (await import(`../../intl/${locale}/common.json`)).default, + messages, + onError: () => { + // Suppress errors by default, enable if needed to debug + // console.error(error) + }, + getMessageFallback: ({ key }) => { + const keyOnly = key.split(".").pop() + return keyOnly || key + }, } }) diff --git a/src/intl/ar/page-developers-local-environment.json b/src/intl/ar/page-developers-local-environment.json index c0e75231455..439b2c32988 100644 --- a/src/intl/ar/page-developers-local-environment.json +++ b/src/intl/ar/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "إليك الأدوات وأطر العمل التي يمكنك استخدامها لمساعدتك في بناء تطبيق إثيريوم الخاص بك.", "page-local-environment-setup-title": "إعداد بيئة التنمية المحلية الخاصة بك", "page-local-environment-solidity-template-desc": "قالب GitHub للإعداد المسبق البناء للعقود الذكية للغة Solidity الخاصة بك. يشمل شبكة Hardhat المحلية، ووافل للاختبارات، وعملات إثير لتنفيذ المحفظة، وأكثر من ذلك.", - "page-local-environment-solidity-template-logo-alt": "شعار قالب Solidity", - "page-local-environment-waffle-desc": "مكتبة الاختبار الأكثر تقدمًا للعقود الذكية. استخدمها بمفردها أو مع Scaffold-eth أو Hardhat.", - "page-local-environment-waffle-logo-alt": "شعار Waffle" -} + "page-local-environment-solidity-template-logo-alt": "شعار قالب Solidity" +} \ No newline at end of file diff --git a/src/intl/az/page-developers-local-environment.json b/src/intl/az/page-developers-local-environment.json index 79ac871e90b..9b3ca173b11 100644 --- a/src/intl/az/page-developers-local-environment.json +++ b/src/intl/az/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Ethereum tətbiqinizi yaratmağınıza kömək etmək üçün istifadə edə biləcəyiniz alətlər və çərçivələr bunlardır.", "page-local-environment-setup-title": "Yerli inkişaf mühitinizi qurun", "page-local-environment-solidity-template-desc": "Solidity ağıllı müqavilələriniz üçün əvvəlcədən qurulmuş quraşdırma üçün GitHub şablonu. Hardhat yerli şəbəkəsi, testlər üçün Waffle, pulqabının tətbiqi üçün Ether-lər və s. daxildir.", - "page-local-environment-solidity-template-logo-alt": "Solidity şablon loqosu", - "page-local-environment-waffle-desc": "Ağıllı müqavilələr üçün ən qabaqcıl sınaq kitabxanası. Tək və ya Scaffold-eth və ya Hardhat ilə istifadə edin.", - "page-local-environment-waffle-logo-alt": "Waffle loqosu" -} + "page-local-environment-solidity-template-logo-alt": "Solidity şablon loqosu" +} \ No newline at end of file diff --git a/src/intl/bg/page-developers-local-environment.json b/src/intl/bg/page-developers-local-environment.json index 4d18e83ba86..948ca9cda27 100644 --- a/src/intl/bg/page-developers-local-environment.json +++ b/src/intl/bg/page-developers-local-environment.json @@ -25,7 +25,5 @@ "page-local-environment-setup-subtitle-2": "Това са пособията и рамковите мрежи, които може да ползвате при изграждането на своето Етереум приложение.", "page-local-environment-setup-title": "Настройте своята локална среда за развитие", "page-local-environment-solidity-template-desc": "GitHub шаблон за предварителна настройка за вашите умни договори в Solidity. Това включва местната мрежа Hardhat, Waffle за тестове, Ethers за изпълнение на портфейли и други.", - "page-local-environment-solidity-template-logo-alt": "Лого на шаблона на Solidity", - "page-local-environment-waffle-desc": "Най-напредналият lib за тестване на умни договори. Използвайте самостоятелно или със Scaffold-eth или Hardhat.", - "page-local-environment-waffle-logo-alt": "Лого на Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Лого на шаблона на Solidity" +} \ No newline at end of file diff --git a/src/intl/bn/page-developers-local-environment.json b/src/intl/bn/page-developers-local-environment.json index 6b0a141fbb4..716a29e3709 100644 --- a/src/intl/bn/page-developers-local-environment.json +++ b/src/intl/bn/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "আপনার ইথেরিয়াম অ্যাপ্লিকেশন তৈরি করতে সাহায্য করার জন্য আপনি যে টুলস এবং ফ্রেমওয়ার্ক ব্যবহার করতে পারেন তা এখানে রয়েছে।", "page-local-environment-setup-title": "আপনার স্থানীয় উন্নয়ন পরিবেশ সেট আপ করুন", "page-local-environment-solidity-template-desc": "আপনার সলিডিটি স্মার্ট কনট্র্যাক্টের একটি পূর্ব-নির্মিত সেটআপের জন্য একটি GitHub টেমপ্লেট। একটি Hardhat স্থানীয় নেটওয়ার্ক, পরীক্ষার জন্য Waffle, ওয়ালেট বাস্তবায়নের জন্য Ethers এবং আরও অনেক কিছু অন্তর্ভুক্ত।", - "page-local-environment-solidity-template-logo-alt": "Solidity template লোগো", - "page-local-environment-waffle-desc": "স্মার্ট কনট্র্যাক্টের জন্য সবচেয়ে উন্নত পরীক্ষার লাইব্রেরি। একা অথবা Scaffold-eth বা Hardhat সাথে নিয়ে ব্যবহার করুন।", - "page-local-environment-waffle-logo-alt": "Waffle লোগো" -} + "page-local-environment-solidity-template-logo-alt": "Solidity template লোগো" +} \ No newline at end of file diff --git a/src/intl/ca/page-developers-local-environment.json b/src/intl/ca/page-developers-local-environment.json index b1b5128bef5..0ed09ba111f 100644 --- a/src/intl/ca/page-developers-local-environment.json +++ b/src/intl/ca/page-developers-local-environment.json @@ -25,7 +25,5 @@ "page-local-environment-setup-subtitle-2": "Aquí teniu les eines i els marcs que podeu utilitzar per ajudar-vos a crear la vostra aplicació Ethereum.", "page-local-environment-setup-title": "Configureu el vostre entorn local de desenvolupament", "page-local-environment-solidity-template-desc": "Una plantilla GitHub per a una configuració preestablerta per als vostres contractes intel·ligents Solidity. Inclou una xarxa local Hardhat, Waffle per fer proves, Ethers per a la implementació de la cartera i molt més.", - "page-local-environment-solidity-template-logo-alt": "Logotip de la plantilla de Solidity", - "page-local-environment-waffle-desc": "La biblioteca de proves més avançada per a contractes intel·ligents. Feu-la servir sola o amb Scaffold-eth o Hardhat.", - "page-local-environment-waffle-logo-alt": "Logotip de Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logotip de la plantilla de Solidity" +} \ No newline at end of file diff --git a/src/intl/cs/page-developers-local-environment.json b/src/intl/cs/page-developers-local-environment.json index 2c7ca4fc6d9..57dd8c1e5d0 100644 --- a/src/intl/cs/page-developers-local-environment.json +++ b/src/intl/cs/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Tady jsou nástroje a rámce, které můžete použít k budování Vaší Ethereum aplikace.", "page-local-environment-setup-title": "Nastavení vlastního místního vývojářského prostředí", "page-local-environment-solidity-template-desc": "GitHub šablona pro předem vytvořené nastavení chytrých kontraktů Solidity. Zahrnuje místní síť Hardhat, Waffle pro testy, Ethery pro implementaci peněženky a další.", - "page-local-environment-solidity-template-logo-alt": "Logo Solidity template", - "page-local-environment-waffle-desc": "Nejpokročilejší testovací lib pro chytré kontrakty. Používejte samostatně nebo systémy Scaffold-eth a Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo Solidity template" +} \ No newline at end of file diff --git a/src/intl/de/page-developers-local-environment.json b/src/intl/de/page-developers-local-environment.json index ada76304d4d..0db4e66fbe9 100644 --- a/src/intl/de/page-developers-local-environment.json +++ b/src/intl/de/page-developers-local-environment.json @@ -28,8 +28,6 @@ "page-local-environment-setup-subtitle": "Wenn Sie bereit sind, mit der Entwicklung zu beginnen, ist es Zeit, Ihren Stack auszuwählen.", "page-local-environment-setup-subtitle-2": "Hier sind die Werkzeuge und Frameworks, die Sie zum Aufbau Deiner Ethereum-Anwendung verwenden können.", "page-local-environment-setup-title": "Richten Sie Ihre lokale Entwicklungsumgebung ein", - "page-local-environment-solidity-template-desc": "Eine GitHub-Vorlage eines vorkompilierten Setups für Ihre Solidity-Smart-Contracts. Enthält ein lokales Hardhat-Netzwerk, Waffle für Tests, Ether für Wallet-Implementierungen und mehr.", - "page-local-environment-solidity-template-logo-alt": "Solidity-Vorlagen-Logo", - "page-local-environment-waffle-desc": "Die fortschrittlichste Test-Bibliothek für Smart-Contracts. Verwenden Sie sie alleine oder mit Scaffold-eth oder Hardhat.", - "page-local-environment-waffle-logo-alt": "Waffle-Logo" + "page-local-environment-solidity-template-desc": "Eine GitHub-Vorlage für eine vorgefertigte Einrichtung für Ihre Solidity-Smart-Contracts. Enthält ein lokales Hardhat-Netzwerk, Ethers für die Wallet-Implementierung und mehr.", + "page-local-environment-solidity-template-logo-alt": "Solidity-Vorlagen-Logo" } diff --git a/src/intl/el/page-developers-local-environment.json b/src/intl/el/page-developers-local-environment.json index f418697a42d..a8a810868de 100644 --- a/src/intl/el/page-developers-local-environment.json +++ b/src/intl/el/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Δείτε παρακάτω τα εργαλεία και τα πλαίσια που μπορείτε να χρησιμοποιήσετε για να σας βοηθήσουν να δημιουργήσετε την Ethereum εφαρμογή σας.", "page-local-environment-setup-title": "Εγκαταστήστε το τοπικό σας περιβάλλον ανάπτυξης", "page-local-environment-solidity-template-desc": "Ένα πρότυπο του GitHub με προρυθμισμένη εγκατάσταση έξυπνου συμβολαίου Solidity. Περιλαμβάνει ένα τοπικό δίκτυο Hardhat, Waffle για δοκιμές, Ethers για εφαρμογή πορτοφολιού και πολλά άλλα.", - "page-local-environment-solidity-template-logo-alt": "Λογότυπο προτύπου Solidity", - "page-local-environment-waffle-desc": "Η πιο προηγμένη βιβλιοθήκη δοκιμών για έξυπνα συμβόλαια. Χρησιμοποιείστε το μόνο του ή με τα Scaffold-eth ή Hardhat.", - "page-local-environment-waffle-logo-alt": "Λογότυπο Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Λογότυπο προτύπου Solidity" +} \ No newline at end of file diff --git a/src/intl/en/common.json b/src/intl/en/common.json index 7763afad69e..c04c1daa707 100644 --- a/src/intl/en/common.json +++ b/src/intl/en/common.json @@ -335,6 +335,8 @@ "nav-staking-solo-description": "Run home hardware and personally add to the security and decentralization of the Ethereum network", "nav-staking-solo-label": "Solo staking", "nav-start-building-description": "Useful information for newcomers", + "nav-start-with-crypto-title": "Start here", + "nav-start-with-crypto-description": "Your first steps using Ethereum", "nav-translation-program-description": "A collaborative effort to translate ethereum.org to all languages", "nav-tutorials-description": "Curated list of community tutorials", "nav-use-cases-description": "Discover different ideas for Ethereum usage", diff --git a/src/intl/en/page-developers-local-environment.json b/src/intl/en/page-developers-local-environment.json index 27b7275efa5..b6b63999f56 100644 --- a/src/intl/en/page-developers-local-environment.json +++ b/src/intl/en/page-developers-local-environment.json @@ -28,8 +28,6 @@ "page-local-environment-setup-subtitle": "If you're ready to start building, it's time to choose your stack.", "page-local-environment-setup-subtitle-2": "Here are the tools and frameworks you can use to help you build your Ethereum application.", "page-local-environment-setup-title": "Set up your local development environment", - "page-local-environment-solidity-template-desc": "A GitHub template for a pre-built setup for your Solidity smart contracts. Includes a Hardhat local network, Waffle for tests, Ethers for wallet implementation, and more.", - "page-local-environment-solidity-template-logo-alt": "Solidity template logo", - "page-local-environment-waffle-desc": "The most advanced testing lib for smart contracts. Use alone or with Scaffold-eth or Hardhat.", - "page-local-environment-waffle-logo-alt": "Waffle logo" -} + "page-local-environment-solidity-template-desc": "A GitHub template for a pre-built setup for your Solidity smart contracts. Includes a Hardhat local network, Ethers for wallet implementation, and more.", + "page-local-environment-solidity-template-logo-alt": "Solidity template logo" +} \ No newline at end of file diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index c5b02c273d3..b1207c423f4 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "Activity from all Ethereum networks", "page-index-activity-tag": "Activity", "page-index-activity-header": "The strongest ecosystem", + "page-index-activity-action": "More Ethereum activity", "page-index-bento-header": "A new way to use the internet", "page-index-bento-assets-action": "More on NFTs", "page-index-bento-assets-content": "Art, certificates or even real estate can be tokenized. Anything can be a tradable token. Ownership is public and verifiable.", diff --git a/src/intl/en/page-resources.json b/src/intl/en/page-resources.json new file mode 100644 index 00000000000..73a60e98b3d --- /dev/null +++ b/src/intl/en/page-resources.json @@ -0,0 +1,87 @@ +{ + "page-resources-network-title": "The network", + "page-resources-using-title": "Using Ethereum", + "page-resources-scaling-title": "Scaling Ethereum", + "page-resources-resilience-title": "Ethereum resilience", + "page-resources-privacy-security-title": "Privacy & security", + "page-resources-network-layer2-title": "Ethereum Networks - Layer 2", + "page-resources-network-layer2-l2beat-description": "L2BEAT was created to provide transparent and verifiable insights into emerging layer two (L2) technologies which, in line with the rollup-centric Ethereum scaling roadmap, are aimed at scaling Ethereum.", + "page-resources-network-layer2-growthepie-description": "Mastering Ethereum Layer 2s. Your gateway to curated analytics and knowledge.", + "page-resources-network-layer2-l2fees-description": "How much does it cost to use Layer 2?", + "page-resources-block-explorers-title": "Block explorers", + "page-resources-block-explorers-blockscout-description": "Open-source block explorer by Blockscout with complete blockchain data and APIs for Ethereum networks.", + "page-resources-block-explorers-etherscan-description": "Etherscan is a block explorer and analytics platform for Ethereum, a decentralized smart contracts platform.", + "page-resources-block-explorers-beaconchain-description": "Open source Ethereum explorer showing the Ethereum Mainnet 🚀.", + "page-resources-block-explorers-txcity-description": "A funny visualizer of the Ethereum blocks in real-time.", + "page-resources-eth-asset-title": "ETH the asset", + "page-resources-eth-asset-etherealize-description": "Ethereum is the largest, most secure, and most open blockchain for the world to use. And Ethereum is open for business.", + "page-resources-eth-asset-ultrasound-description": "Ultra sound money is an Ethereum meme focusing on the likely decrease of the ETH supply.", + "page-resources-eth-asset-ethismoney-description": "ETH is money is a tribe of believers who hold, stake, and propagate ETH as money.", + "page-resources-eth-asset-ethernow-description": "Ethernow enables you to see what is happening at the core of Ethereum, in real-time. Go hands-on now.", + "page-resources-gas-title": "Gas", + "page-resources-gas-etherscan-description": "Track all the KPIs on gas.", + "page-resources-gas-blocknative-description": "Web3's most accurate gas fee prediction.", + "page-resources-gas-gasfees-description": "Gas costs data tracker for Ethereum networks.", + "page-resources-defi-title": "DeFi", + "page-resources-defi-defillama-description": "DefiLlama is the largest TVL aggregator for DeFi (Decentralized Finance).", + "page-resources-defi-defimarketcap-description": "Top 100 DeFi tokens by market capitalization.", + "page-resources-defi-eigenphi-description": "Wanna understand DeFi transactions and trading strategies?", + "page-resources-defi-defiscan-description": "Verifiable insights into the maturity and risks of DeFi.", + "page-resources-stablecoins-title": "Stablecoins", + "page-resources-stablecoins-stablecoinswtf-description": "The purpose of this website is to educate degens about stablecoins.", + "page-resources-stablecoins-visa-description": "The Visa Onchain Analytics Dashboard showcases how fiat-backed stablecoins move via public blockchains globally.", + "page-resources-stablecoins-rwa-description": "Explore the activity behind crypto and asset-backed stablecoins.", + "page-resources-nft-title": "NFT", + "page-resources-nft-etherscan-description": "Top NFT contracts.", + "page-resources-nft-nftgo-description": "Real-time global NFT market data.", + "page-resources-applications-title": "Applications", + "page-resources-applications-ecosystem-description": "Immerse yourself in the Ethereum ecosystem and get familiar with hundreds of popular apps & tools.", + "page-resources-applications-farcaster-description": "Data from Farcaster usage.", + "page-resources-applications-dappradar-description": "Explore top blockchain dapps, NFTs, games, DeFi projects, tokens, and airdrops. Track rankings, explore market insights, find trending projects, and unlock rewards with the world’s dapp store.", + "page-resources-adoption-title": "Ethereum Adoption", + "page-resources-adoption-ethereumadoption-description": "Ethereum Censorability Monitor.", + "page-resources-adoption-cryptowerk-description": "Ethereum adoption analytics based on Cryptwerk merchants database - map, countries, companies, businesses, categories, rating.", + "page-resources-roadmap-title": "Ethereum Roadmap", + "page-resources-roadmap-ethroadmap-description": "Detailed visualization on Ethereum roadmap and the next network upgrade.", + "page-resources-blobs-title": "Blobs", + "page-resources-blobs-blobscan-description": "Comprehensive blob scanner.", + "page-resources-blobs-blobsguru-description": "Ethereum Blobs Explorer: Analyze L2 transactions & EIP-4844 data.", + "page-resources-nodes-title": "Nodes", + "page-resources-nodes-nodewatch-description": "Overview of the nodes.", + "page-resources-nodes-ethernodes-description": "Ethereum Mainnet statistics.", + "page-resources-nodes-etherscan-description": "Daily.", + "page-resources-nodes-luckystaker-description": "Daily proposal probability of getting a block.", + "page-resources-nodes-validatorqueue-description": "A dashboard showing the Ethereum validator enter and exit queue and estimated wait times.", + "page-resources-network-resilience-title": "Network resilience", + "page-resources-network-resilience-neutralitywatch-description": "Ethereum Censorability Monitor.", + "page-resources-network-resilience-sunshine-description": "A dashboard to measure the health of Ethereum's decentralization.", + "page-resources-network-resilience-clientdiversity-description": "Improve Ethereum's resilience by using a minority client.", + "page-resources-network-resilience-supermajority-description": "The supermajority client risk of the Ethereum execution layer, especially the client usage of staking services.", + "page-resources-attestations-title": "Attestations", + "page-resources-attestations-eas-description": "EAS enables anyone to create and validate on-chain and off-chain attestations on Ethereum.", + "page-resources-relays-title": "Relays", + "page-resources-relays-beaconchain-description": "Validators can use relays to outsource their block production to entities specialized in extracting extra revenue.", + "page-resources-relays-ratednetwork-description": "MEV relay market share, total value relayed, value per block, and other statistics for Ethereum network.", + "page-resources-relays-relayscan-description": "MEV-Boost analytics.", + "page-resources-mev-title": "MEV", + "page-resources-mev-mevboost-description": "The purpose of this website is to educate degens about stablecoins.", + "page-resources-mev-mevwatch-description": "Some MEV-Boost relays are regulated under OFAC and will censor certain transactions. Use this tool to observe the effect it's having on Ethereum blocks.", + "page-resources-zk-adoption-title": "ZK adoption", + "page-resources-zk-adoption-ethproofs-description": "SNARKs that scale Ethereum.", + "page-resources-zk-adoption-l2beat-description": "ZK Catalog by L2BEAT is a community-driven resource offering detailed insights into the ZK technology utilized by various blockchain projects.", + "page-resources-mempool-title": "Mempool", + "page-resources-mempool-mempool-description": "Selected comparative visualizations on Ethereum's mempool.", + "page-resources-meta-title": "Dashboard of Ethereum Resources", + "page-resources-meta-description": "Discover a list of community-curated resources to stay updated on all major Ethereum ecosystem developments.", + "page-resources-hero-title": "Resources", + "page-resources-hero-header": "Ethereum Dashboards", + "page-resources-hero-description": "Discover a list of community-curated resources to stay updated on all major Ethereum ecosystem developments.", + "page-resources-find-more": "Find more great resources on ethereumdashboards.com", + "page-resources-contribute-title": "Contribute", + "page-resources-contribute-description": "This dashboard is a living page that requires frequent updates. Help find the best resources to give an overview of the Ethereum ecosystem.", + "page-resources-suggest-resource": "Suggest a resource", + "page-resources-found-bug": "Found a bug", + "page-resources-whats-on-this-page": "What's on this page", + "page-resources-banner-notification-message": "Resources dashboard is new!", + "page-resources-share-feedback": "Please share your feedback with us" +} diff --git a/src/intl/es/common.json b/src/intl/es/common.json index 280dc28cd84..e13cf473c46 100644 --- a/src/intl/es/common.json +++ b/src/intl/es/common.json @@ -250,6 +250,8 @@ "nav-emerging-description": "Conozca otros nuevos casos de uso para Ethereum", "nav-emerging-label": "Casos de uso emergentes", "nav-ethereum-org-description": "Este sitio web está orientado a la comunidad: únase y contribuya con él", + "nav-ethereum-networks": "Redes de Ethereum", + "nav-ethereum-networks-description": "Transacciones más rápidas y baratas para Ethereum", "nav-ethereum-wallets-description": "Una aplicación para interactuar con su cuenta Ethereum", "nav-events-description": "Descentralización y libertad para que todos participen", "nav-events-irl-description": "Cada mes se celebran grandes eventos Ethereum en persona y en línea", @@ -275,16 +277,23 @@ "nav-guides-label": "Guías prácticas", "nav-history-description": "Una cronología de las actualizaciones y bifurcaciones principales", "nav-history-label": "Historia técnica de Ethereum", - "nav-layer-2-description": "Transacciones más rápidas y baratas para Ethereum", "nav-learn-by-coding-description": "Herramientas que le ayudan a experimentar con Ethereum", "nav-local-env-description": "Elija y defina su pila de desarrollo en Ethereum", "nav-mainnet-description": "Las aplicaciones de cadena de bloques para empresa se pueden construir en la red principal y pública de Ethereum", + "nav-networks-home-description": "Transacciones más rápidas y baratas para Ethereum", + "nav-networks-introduction-label": "Introducción", + "nav-networks-introduction-description": "Ethereum se expandió en una red de redes", + "nav-networks-explore-networks-label": "Explorar redes", + "nav-networks-explore-networks-description": "Elija qué red usar", + "nav-networks-learn-label": "¿Qué son las redes de capa 2?", + "nav-networks-learn-description": "Descubra por qué las necesitamos", "nav-nft-description": "Una forma de representar cualquier cosa única como un activo basado en Ethereum", "nav-open-research-description": "Una de las principales bazas de Ethereum es su activa comunidad de investigación", "nav-open-research-label": "Abrir investigación", "nav-overview-description": "Recursos educativos de Ethereum", "nav-overview-label": "Resumen", "nav-participate-overview-description": "Resumen de cómo participar", + "nav-payments-description": "Los pagos en Ethereum están cambiando la forma en que enviamos y recibimos dinero", "nav-primary": "Principal", "nav-quizzes-description": "Descubra cómo de bien puede entender Ethereum y las criptomonedas", "nav-quizzes-label": "Evalúe su conocimiento", @@ -304,7 +313,7 @@ "nav-roadmap-scaling-description": "Actualizaciones de red para reducir aún más los costes de transacciones y la velocidad", "nav-roadmap-scaling-label": "Transacciones más baratas", "nav-roadmap-security": "Mayor seguridad", - "nav-roadmap-security-description": "Asegurarse de que Ethereum sigue resistiendo a todo tipo de ataques en el futuro", + "nav-roadmap-security-description": "Asegurarse de que Etherum sigue resistiendo a todo tipo de ataques en el futuro", "nav-roadmap-security-label": "Seguridad mejorada", "nav-roadmap-user-experience": "Mejor experiencia de usuario", "nav-roadmap-ux-description": "El uso de Ethereum debe simplificarse", @@ -356,6 +365,7 @@ "page-last-updated": "Última actualización de la página", "participate": "Participar", "participate-menu": "Menú Participar", + "payments-page": "Pagos", "pbs": "Separación del creador de propuestas", "pools": "Participación agrupada", "privacy-policy": "Política de privacidad", @@ -429,7 +439,7 @@ "what-is-ether": "¿Qué es el ether (ETH)?", "what-is-ethereum": "¿Qué es Ethereum?", "withdrawals": "Retiradas de participaciones", - "wrapped-ether": "Wrapped Ether (ether envuelto)", + "wrapped-ether": "Wrapped Ether (eter envuelto)", "yes": "Sí", "zero-knowledge-proofs": "Pruebas de conocimiento cero" } diff --git a/src/intl/es/page-contributing-translation-program-acknowledgements.json b/src/intl/es/page-contributing-translation-program-acknowledgements.json index e8e0d5b23a9..c15f305e1d0 100644 --- a/src/intl/es/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/es/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "Total de palabras", "page-contributing-translation-program-acknowledgements-oats-title": "OAT", "page-contributing-translation-program-acknowledgements-1": "Los contribuyentes al Programa de Traducción son elegibles para diferentes OAT (tokens de logro en cadena, On-Chain Achievement Token), tokens no fungibles que prueban su participación en el Programa de Tradución de euthereum.org.", - "page-contributing-translation-program-acknowledgements-2": "Tenemos una cantidad de OAT diferentes disponibles para traductores en función de su actividad", + "page-contributing-translation-program-acknowledgements-2": "Tenemos una cantidad de OAT diferentes disponibles para traductores en función de su actividad.", "page-contributing-translation-program-acknowledgements-3": "Si ha contribuido a la traducción en Crowdin, ¡tenemos un OAT para usted!", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Cómo reclamarlo", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Únase a nuestro", diff --git a/src/intl/es/page-dapps.json b/src/intl/es/page-dapps.json index 7cfcccda101..5f069582b3a 100644 --- a/src/intl/es/page-dapps.json +++ b/src/intl/es/page-dapps.json @@ -7,7 +7,6 @@ "page-dapps-api3-logo-alt": "Logotipo de API3", "page-dapps-arweave-logo-alt": "Logotipo de ARweave", "page-dapps-audius-logo-alt": "Logo de Audius", - "page-dapps-augur-logo-alt": "Logo de Augur", "page-dapps-axie-infinity-logo-alt": "Logo de Axie Infinity", "page-dapps-balancer-logo-alt": "Logo de Balancer", "page-dapps-brave-logo-alt": "Logo de Brave", @@ -69,7 +68,6 @@ "page-dapps-dapp-description-arweave": "Almacenar datos permanentemente de manera sostenible con una única comisión principal.", "page-dapps-dapp-description-async-art": "Crea, colecciona y comercializa #ProgrammableArt, pinturas digitales divididas en «capas» que se pueden utilizar para afectar la imagen general. Cada maestro y capa es un token ERC721.", "page-dapps-dapp-description-audius": "Plataforma de streaming descentralizada. Escuchas = dinero para creadores, no etiquetas.", - "page-dapps-dapp-description-augur": "Apueste por los resultados de los deportes, la economía y más eventos mundiales.", "page-dapps-dapp-description-axie-infinity": "Comercie con criaturas de combate llamadas «Axies». Y gane mientras juega (disponible en móviles)", "page-dapps-dapp-description-balancer": "Balancer es una plataforma automatizada de operaciones y gestión de carteras.", "page-dapps-dapp-description-brave": "Gane tókenes por navegar y apoyar a sus creadores favoritos con ellos.", @@ -80,6 +78,7 @@ "page-dapps-dapp-description-cryptovoxels": "Cree galerías de arte, construya tiendas y compre tierras: un mundo virtual de Ethereum.", "page-dapps-dapp-description-cyberconnect": "Protocolo de gráfico social descentralizado que ayuda a la red de DApps a efectuar y construir experiencias sociales personalizadas", "page-dapps-dapp-description-dark-forest": "Conquiste planetas en un universo infinito, generado por procedimientos y especificado criptográficamente.", + "page-dapps-dapp-description-crack-and-stack": "Entre en la mina con otros jugadores, acumule diamantes ETH e intente escaparse con su tesoro.", "page-dapps-dapp-description-decentraland": "Coleccione, comercie con tierras virtuales en un mundo virtual que puede explorar.", "page-dapps-dapp-description-ens": "Nombres fáciles de usar para las direcciones de Ethereum y los sitios descentralizados.", "page-dapps-dapp-description-foundation": "Invierta en ediciones únicas de obras de arte digitales y piezas comerciales con otros compradores.", @@ -123,13 +122,13 @@ "page-dapps-dapp-description-status": "Diseñado para permitir el flujo libre de información, proteger el derecho a la privacidad, conversaciones seguras y promover la soberanía de los individuos.", "page-dapps-dapp-description-superrare": "Compre obras de arte digitales directamente de artistas o en mercados secundarios.", "page-dapps-dapp-description-synthetix": "Synthetix es un protocolo para emitir y comercializar activos sintéticos.", - "page-dapps-dapp-description-token-sets": "Estrategias de inversión criptográficas que se reequilibran automáticamente.", "page-dapps-dapp-description-uniswap": "Intercambie tókenes simplemente o proporcione tókenes por un porcentaje de recompensas.", "page-dapps-dapp-description-xmtp": "Envíe mensajes entre cuentas de la cadena de bloques, incluyendo mensajes privados, alertas, anuncios y más.", "page-dapps-dapp-description-yearn": "Yearn Finance es un agregador de rendimiento, que otorga a particulares, DAO y otros protocolos una forma de depositar activos financieros y recibir rendimiento.", "page-dapps-docklink-dapps": "Introducción a las dapps", "page-dapps-docklink-smart-contracts": "Contratos inteligentes", "page-dapps-dark-forest-logo-alt": "Logo de Dark Forest", + "page-dapps-crack-and-stack-logo-alt": "Logo de Crack & Stack", "page-dapps-decentraland-logo-alt": "Logo de Decentraland", "page-dapps-index-coop-logo-alt": "Log de Index Coop", "page-dapps-nexus-mutual-logo-alt": "Logo de Nexus Mutual", @@ -146,7 +145,7 @@ "page-dapps-editors-choice-pooltogether": "Compre un boleto para la lotería sin pérdidas. Cada semana, el interés generado por todos los boletos juntos se envía a un afortunado ganador. Obtenga su dinero cuando quiera.", "page-dapps-editors-choice-uniswap": "Intercambie sus tókenes con facilidad. Un favorito de la comunidad que le permite intercambiar tókenes con gente a través de la red.", "page-dapps-ens-logo-alt": "Logo de Servicio Ethereum Name", - "page-dapps-explore-dapps-description": "Muchas DApps siguen siendo experimentales y prueban las posibilidades de las redes descentralizadas. Pero ha habido algunos emprendedores con éxito en las categorías de tecnología, finanzas, juegos y coleccionables.", + "page-dapps-explore-dapps-description": "Muchas dApps siguen siendo experimentales y exploran las posibilidades que ofrecen las redes descentralizadas. Ha habido algunos casos de éxito en los ámbitos de tecnología, finanzas, juegos y coleccionables.", "page-dapps-explore-dapps-title": "Explorar dapps", "page-dapps-features-1-description": "Una vez instalado en Ethereum, el código DApp no se puede eliminar. Y cualquiera puede usar las características de la DApp. Incluso aunque el equipo detrás de la dapp se disolviera, podría usarla. Una vez en Ethereum, se queda ahí.", "page-dapps-features-1-title": "Sin propietarios", @@ -261,7 +260,6 @@ "page-dapps-technology-button": "Tecnología", "page-dapps-technology-description": "Estas son aplicaciones que se centran en descentralizar las herramientas de los desarrolladores, incorporar sistemas criptoeconómicos a la tecnología existente y crear mercados para el trabajo de desarrollo de código abierto.", "page-dapps-technology-title": "Tecnología descentralizada", - "page-dapps-token-sets-logo-alt": "Logo de Token Sets", "page-dapps-uniswap-logo-alt": "Logo de Uniswap", "page-dapps-wallet-callout-button": "Encontrar cartera", "page-dapps-wallet-callout-description": "Las carteras también son DApps. Encuentre una basada en las características que le convengan.", diff --git a/src/intl/es/page-developers-learning-tools.json b/src/intl/es/page-developers-learning-tools.json index 2d6553ee6b0..f137326a979 100644 --- a/src/intl/es/page-developers-learning-tools.json +++ b/src/intl/es/page-developers-learning-tools.json @@ -8,8 +8,6 @@ "page-learning-tools-capture-the-ether-logo-alt": "Logo de Capture the Ether", "page-learning-tools-node-guardians-description": "Node Guardians es una plataforma educativa gamificada que sumerge a los desarrolladores de web3 en misiones de fantasía para dominar la programación de Solidity, Cairo, Noir y Huff.", "page-learning-tools-node-guardians-logo-alt": "Logo de Node Guardians", - "page-learning-tools-chainshot-description": "Cursos intensivos remotos con instructores para desarrolladores de Ethereum.", - "page-learning-tools-chainshot-logo-alt": "Logo de ChainShot", "page-learning-tools-coding": "Aprender mediante codificación", "page-learning-tools-coding-subtitle": "Estas herramientas le ayudarán a experimentar con Ethereum si prefiere una experiencia de aprendizaje más interactiva.", "page-learning-tools-consensys-academy-description": "Curso online intensivo para desarrolladores de Ethereum.", @@ -52,11 +50,13 @@ "page-learning-tools-vyperfun-logo-alt": "Logo de Vyper.fun", "page-learning-tools-nftschool-description": "Explore lo que está sucediendo con los tókenes no fungibles o NFT desde el punto de vista técnico.", "page-learning-tools-nftschool-logo-alt": "Logo de NFT school", - "page-learning-tools-pointer-description": "Aprenda habilidades de desarrollo Web 3.0 con divertidos tutoriales interactivos y gane recompensas criptográficas al mismo tiempo.", - "page-learning-tools-pointer-logo-alt": "Logo de puntero", "page-learning-tools-platzi-description": "Aprenda cómo construir DApps en Web3 y domine todas las habilidades necesarias para ser un desarrollador de la cadena de bloques.", "page-learning-tools-platzi-logo-alt": "Logo de Platzi", "page-learning-tools-alchemy-university-description": "Desarrolle su trayectoria en la Web3 a través de cursos, proyectos y códigos.", "page-learning-tools-alchemy-university-logo-alt": "Logo de Alchemy University", + "page-learning-tools-learnweb3-description": "LearnWeb3 es una plataforma gratuita de gran calidad para pasar de cero a nivel experto en desarrollo de Web3.", + "page-learning-tools-learnweb3-logo-alt": "Logo de LearnWeb3", + "page-learning-tools-cyfrin-updraft-description": "Aprenda sobre desarrollo de contratos inteligentes en todos los niveles de capacitación y auditorías de seguridad.", + "page-learning-tools-cyfrin-updraft-logo-alt": "Logo de Cyfrin Updraft", "alt-eth-blocks": "Ilustración de bloques organizados como un símbolo ETH" } diff --git a/src/intl/es/page-developers-local-environment.json b/src/intl/es/page-developers-local-environment.json index 50001eb30d4..077d02dc7bf 100644 --- a/src/intl/es/page-developers-local-environment.json +++ b/src/intl/es/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Aquí están las herramientas y marcos que puede usar para crear su aplicación Ethereum.", "page-local-environment-setup-title": "Configure su entorno de desarrollo local", "page-local-environment-solidity-template-desc": "Una plantilla de GitHub para una configuración prediseñada para sus contratos inteligentes de Solidity. Incluye una red local de Hardhat, Waffle para pruebas, Ethers para implementación de carteras, y más.", - "page-local-environment-solidity-template-logo-alt": "Logo de plantilla Solidity", - "page-local-environment-waffle-desc": "La biblioteca de pruebas más avanzada para contratos inteligentes. Úsela sola o con Scaffold-eth o Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo de Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo de plantilla Solidity" +} \ No newline at end of file diff --git a/src/intl/es/page-gas.json b/src/intl/es/page-gas.json index bea68e9eafe..4960e6ab350 100644 --- a/src/intl/es/page-gas.json +++ b/src/intl/es/page-gas.json @@ -1,5 +1,5 @@ { - "page-gas-meta-title": "Tarifas de gas en Ethereum: ¿cómo funcionan?", + "page-gas-meta-title": "Tarifas de Ethereum: ¿Qué es gas y cómo pagar menos?", "page-gas-meta-description": "Descubra más cosas sobre el gas en Ethereum: cómo funciona y cómo pagar menos en tarifas de gas", "page-gas-hero-title": "Tarifas de gas", "page-gas-hero-header": "Tarifas de red", diff --git a/src/intl/es/page-get-eth.json b/src/intl/es/page-get-eth.json index 5306955115f..f754c345c4e 100644 --- a/src/intl/es/page-get-eth.json +++ b/src/intl/es/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Obtener imagen de héroe ETH", "page-get-eth-keep-it-safe": "Mantener seguros sus ETH", "page-get-eth-meta-description": "Cómo comprar ETH según el lugar donde vive y consejos sobre cómo cuidarlos.", - "page-get-eth-meta-title": "Cómo obtener ETH", + "page-get-eth-meta-title": "Cómo comprar Ethereum (ETH)", "page-get-eth-need-wallet": "Necesitará una cartera para usar un intercambio descentralizado (DEX).", "page-get-eth-new-to-eth": "¿Nuevo en ETH? Aquí hay una descripción general para comenzar.", "page-get-eth-other-cryptos": "Comprar con otra criptomoneda", diff --git a/src/intl/es/page-layer-2.json b/src/intl/es/page-layer-2.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/src/intl/es/page-layer-2.json @@ -0,0 +1 @@ +{} diff --git a/src/intl/es/page-learn.json b/src/intl/es/page-learn.json index e08b42a9781..9dc1d2c56b1 100644 --- a/src/intl/es/page-learn.json +++ b/src/intl/es/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "Obtener información sobre Ethereum", "hero-subtitle": "Su guía educativa para el mundo de Ethereum. Conozca el funcionamiento de Ethereum y cómo conectarse a él. Esta página incluye artículos técnicos y no técnicos, guías y recursos.", "hero-button-lets-get-started": "¡Comencemos!", + "page-learn-meta-title": "Ethereum: guía de aprendizaje completa", "what-is-crypto-1": "Puede que haya oído hablar de las criptomonedas, las cadenas de bloques y los bitcoins. Los siguientes enlaces le ayudarán a saber lo que son y cómo se relacionan con Ethereum.", "what-is-crypto-2": "Las criptomonedas, tales como bitcoin, permiten a cualquiera transferir dinero de manera global. Ethereum también lo permite y además es capaz de ejecutar un código que permite a las personas crear aplicaciones y organizaciones; es a la par resiliente y flexible. Cualquier programa informático puede ejecutarse en Ethereum. Conozca más detalles y entérese de cómo puede iniciarse en el universo Ethereum:", "what-is-ethereum-card-title": "¿Qué es Ethereum?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Encontrar una cartera", "find-a-wallet-card-description": "Explore las carteras en función de las características que le parezcan importantes.", "find-a-wallet-button": "Lista de carteras", - "crypto-security-basics-card-title": "Aspectos básicos de la seguridad", - "crypto-security-basics-card-description": "Sepa cómo identificar estafas y evitar los trucos más comunes.", - "crypto-security-basics-card-button": "Mantenerse seguro", + "ethereum-networks-card-title": "Redes de Ethereum", + "ethereum-networks-card-description": "Ahorre dinero utilizando extensiones de Ethereum más rápidas y económicas.", + "ethereum-networks-card-button": "Elegir red", "things-to-consider-banner-title": "Cosas que debe tener en cuenta al usar Ethereum", "things-to-consider-banner-1": "Cada transacción Ethereum requiere una comisión en forma de ETH, incluso si necesita mover diferentes tókenes construidos en Ethereum como las monedas estables USDC o DAI.", "things-to-consider-banner-2": "Las comisiones pueden ser altas dependiendo del número de personas que intenten usar Ethereum, por lo que recomendamos usar", @@ -85,7 +86,7 @@ "ethereum-whitepaper-card-button": "Leer el informe", "more-on-ethereum-protocol-title": "Más sobre el protocolo de Ethereum", "more-on-ethereum-protocol-ethereum-for-developers": "Ethereum para desarrolladores", - "more-on-ethereum-protocol-consensus": "Mecanismo de consenso basado en la prueba de participación de Ethereum", + "more-on-ethereum-protocol-consensus": "El mecanismo de consenso basado en la prueba de participación de Ethereum", "more-on-ethereum-protocol-evm": "Ordenador que incorpora Ethereum (EVM)", "more-on-ethereum-protocol-nodes-and-clients": "Nodos y clientes de Ethereum", "ethereum-community-description": "El éxito de Ethereum se debe a su comunidad increíblemente dedicada. Miles de personas inspiradoras y motivadas ayudan a impulsar la visión de Ethereum hacia adelante, al mismo tiempo que proporcionan seguridad a la red a través de la participación y la gobernanza. ¡Únase a nosotros!", diff --git a/src/intl/es/page-run-a-node.json b/src/intl/es/page-run-a-node.json index b0752e1b6ea..1543d26fbf5 100644 --- a/src/intl/es/page-run-a-node.json +++ b/src/intl/es/page-run-a-node.json @@ -111,6 +111,7 @@ "page-run-a-node-sovereignty-1": "Una cartera Ethereum le permite tomar el control y la custodia completos de sus activos digitales manteniendo las claves privadas de sus direcciones, pero esas claves no le especifican el estado actual de la cadena de bloques, como el balance de su cartera.", "page-run-a-node-sovereignty-2": "Por defecto, las carteras de Ethereum suelen llegar a un nodo de terceros, como Infura o Alchemy, cuando consulte sus balances. Ejecutar su propio nodo le permite tener su propia copia de la cadena de bloques de Ethereum.", "page-run-a-node-title": "Ejecutar un nodo", + "page-run-a-node-meta-title": "Cómo ejecutar un nodo de Ethereum", "page-run-a-node-voice-your-choice-title": "Hágase oír", "page-run-a-node-voice-your-choice-preview": "No ceda el control en caso de bifurcación.", "page-run-a-node-voice-your-choice-1": "En el caso de una bifurcación de cadena, donde emergen dos cadenas con dos conjuntos diferentes de reglas, ejecutar su propio nodo garantiza su capacidad de elegir qué conjunto de reglas soporta. Depende de usted actualizar a nuevas reglas y apoyar los cambios propuestos, o no.", diff --git a/src/intl/es/page-stablecoins.json b/src/intl/es/page-stablecoins.json index bfe6c5ba461..d11daa9cc7d 100644 --- a/src/intl/es/page-stablecoins.json +++ b/src/intl/es/page-stablecoins.json @@ -131,6 +131,7 @@ "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metales preciosos", "page-stablecoins-table-error": "No se pudieron cargar las monedas estables. Intente actualizar la página.", "page-stablecoins-title": "Monedas estables", + "page-stablecoins-meta-title": "Monedas estables explicadas: ¿para qué sirven?", "page-stablecoins-top-coins": "Mejores monedas estables por capitalización de mercado", "page-stablecoins-top-coins-intro": "La capitalización del mercado es", "page-stablecoins-top-coins-intro-code": "el número total de tókenes que existen multiplicado por el valor de cada token. La lista es dinámica y los proyectos enumerados aquí no están necesariamente respaldados por el equipo de ethereum.org.", diff --git a/src/intl/es/page-staking.json b/src/intl/es/page-staking.json index cb426364b37..004f7c9bc3e 100644 --- a/src/intl/es/page-staking.json +++ b/src/intl/es/page-staking.json @@ -31,8 +31,8 @@ "page-staking-hero-header": "Gane recompensas mientras hace Ethereum más seguro", "page-staking-hero-subtitle": "Cualquier usuario con cualquier cantidad de ETH puede ayudar a asegurar la red y ganar recompensas en el proceso.", "page-staking-dropdown-home": "Inicio de participaciones", - "page-staking-dropdown-solo": "Participación individual", - "page-staking-more-on-solo": "Más información sobre la participación individual", + "page-staking-dropdown-solo": "Participación desde casa", + "page-staking-more-on-solo": "Más sobre la participación desde casa", "page-staking-learn-more-solo": "Amplíe conocimientos sobre la participación individual", "page-staking-dropdown-saas": "Participación como servicio", "page-staking-saas-with-abbrev": "Participación como servicio (SaaS)", @@ -50,15 +50,18 @@ "page-staking-guide-title-coincashew-ethereum": "Guía 2.0 de CoinCashew para Ethereum", "page-staking-guide-title-somer-esat": "Somer Esat", "page-staking-guide-title-rocket-pool": "Operadores del nodo Rocket Pool", + "page-staking-guide-title-stakewise": "Operadores de nodos StakeWise", "page-staking-guide-description-linux": "Linux (interfaz de línea de comandos o CLI)", "page-staking-guide-description-mac-linux": "Linux, macOS (ILC)", - "page-staking-hierarchy-solo-h2": "Participación individual desde casa", + "page-staking-guide-description-mac-linux-windows": "Linux, Windows, MacOS (CLI)", + "page-staking-hierarchy-solo-h2": "Participación desde casa", "page-staking-hierarchy-solo-pill-1": "De mayor impacto", "page-staking-hierarchy-solo-pill-2": "Control completo", "page-staking-hierarchy-solo-pill-3": "Recompensas completas", "page-staking-hierarchy-solo-pill-4": "Sin confianza", - "page-staking-hierarchy-solo-p1": "La participación individual en Ethereum es el patrón de oro para apostar. Proporciona recompensas de participación plena, mejora la descentralización de la red y nunca requiere que confíes sus fondos a nadie más.", - "page-staking-hierarchy-solo-p2": "Quienes estén planteándose participar individualmente deberían tener al menos 32 ETH y un ordenador exclusivamente dedicado, conectado a internet ~24/7. Algunos conocimientos técnicos son útiles, aunque ahora existen herramientas fáciles de usar para simplificar este proceso.", + "page-staking-hierarchy-solo-p1": "La participación desde casa en Ethereum es la regla de oro de la participación. Proporciona recompensas completas de participación, mejora la descentralización de la red y nunca requiere que confíes tus fondos a nadie.", + "page-staking-hierarchy-solo-p2": "Quienes estén planteándose participar desde casa deberían tener algo de ETH y un ordenador destinado y conectado a Internet las 24 horas del día/7 días por semana. Es útil tener algunos conocimientos técnicos, aunque ahora existen herramientas fáciles de usar para simplificar este proceso.", + "page-staking-hierarchy-solo-p3": "Los participantes desde casa pueden unir sus fondos con los de otros usuarios o participar en solitario con un mínimo de 32 ETH. Las soluciones de tókenes de participación de liquidez permiten mantener acceso a DeFi.", "page-staking-hierarchy-saas-pill-1": "Tus 32 ETH", "page-staking-hierarchy-saas-pill-2": "Sus claves de validador", "page-staking-hierarchy-saas-pill-3": "Operación de nodo de confianza", @@ -69,9 +72,9 @@ "page-staking-hierarchy-pools-pill-2": "Gane recompensas", "page-staking-hierarchy-pools-pill-3": "Simplifíquelo", "page-staking-hierarchy-pools-pill-4": "Popular", - "page-staking-hierarchy-pools-p1": "Ahora existen varias soluciones de participación para ayudar a los usuarios que no tienen o no se sienten cómodos apostando sus 32 ETH.", + "page-staking-hierarchy-pools-p1": "Existen varias soluciones de participación conjunta para ayudar a los usuarios que no tienen, o que no se sienten cómodos con la participación individual de 32 ETH.", "page-staking-hierarchy-pools-p2": "Muchas de estas opciones incluyen lo que se conoce como «participación líquida», que implica un token de liquidez ERC-20 que representa su ETH en participación.", - "page-staking-hierarchy-pools-p3": "La participación líquida permite salir fácilmente y en cualquier momento, y hace que la participación sea tan simple como un intercambio de tókenes. Esta opción también permite a los usuarios mantener la custodia de sus activos en su propia cartera de Ethereum", + "page-staking-hierarchy-pools-p3": "La participación de liquidez hace que el proceso de participar y al revés sea tan sencillo como un intercambio de tókenes y permite usar el capital en participación dentro de DeFi. Esta opción también permite a los usuarios mantener la custodia de sus activos en su propia cartera de Ethereum.", "page-staking-hierarchy-pools-p4": "Las apuestas agrupadas no son originarias de la red Ethereum y los terceros están construyendo estas soluciones y asumen sus propios riesgos.", "page-staking-hierarchy-cex-h2": "Plataformas de Intercambio centralizada", "page-staking-hierarchy-cex-pill-1": "De menor impacto", @@ -84,8 +87,10 @@ "page-staking-comparison-solo-pools": "La participación en solitario es significativamente más expuesta que la participación agrupada, pero ofrece acceso total a recompensas ETH, y control completo de la configuración y seguridad de tu validador. La participación agrupada tiene una barrera significativamente más baja que franquear. Los usuarios pueden apostar pequeñas cantidades de ETH, no requiere generar claves de validador y no tiene requisitos de hardware más allá de una conexión estándar a Internet. Los tókenes de liquidez permiten la salida de la apuesta antes que el nivel de protocolo lo permita. Si le interesan estas características, la participación agrupada puede ser una buena opción.", "page-staking-comparison-saas-solo": "Incluye similitudes como el tener sus propias llaves de validación sin necesidad de tener que invertir fondos, pero con SaaS debe confiar en un tercero, quien puede actuar potencialmente de manera maliciosa, convertirse en un objetivo de ataque o regularse ellos mismos. Si estas suposiciones de confianza o riesgos de centralización le importan, el patrón de oro del autogobierno de la participación es solo una apuesta.", "page-staking-comparison-saas-pools": "Tiene puntos en común, como el generalmente confiar en que alguien más ejecute el cliente validador, pero a diferencia de SaaS, la participación agrupada le permite participar con menores cantidades de ETH. Si quiere participar con menos de 32 ETH, considere esta opción.", - "page-staking-comparison-pools-solo": "La participación agrupada tiene una barrera considerablemente mas baja de entrada en comparación con la participación individual, sin embargo, tiene un riesgo adicional debido a que se delegan todas las operaciones de nodo a un tercero, y además con una comisión. La participación individual le da plena autonomía y control sobre las decisiones relativas a la configuración de la participación. Aquellos que optan por la participación individual nunca tienen que entregar sus llaves, y se llevan completa la recompensa sin intermediarios que tomen su parte.", + "page-staking-comparison-pools-solo": "La participación conjunta tiene una barrera de entrada mucho más baja en comparación con la participación desde casa, pero implica riesgos adicionales al delegar todas las operaciones del nodo a un tercero y conlleva una comisión. Por otro lado, la participación desde casa ofrece soberanía total y control absoluto sobre la configuración de la participación. Los participantes nunca tienen que ceder sus claves y obtienen las recompensas completas sin intermediarios que se queden con una parte.", "page-staking-comparison-pools-saas": "Tiene en común el que los participantes no ejecuten el software de validación por sí mismos, pero a diferencia de las opciones compartidas, SaaS requiere un depósito completo de 32 ETH para ser activado como validador. Los participantes acumulan recompensas, que suelen incluir una tarifa fija u otra participación por usar el servicio. Si prefiere tener sus propias llaves de validación y busca apostar al menos 32 ETH, usar un proveedor de SaaS puede ser una buena opción.", + "page-staking-considerations-dropdown-text": "Aspectos por tener en cuenta sobre la participación", + "page-staking-considerations-dropdown-aria-label": "Menú desplegable para aspectos por tener en cuenta sobre la participación", "page-staking-considerations-solo-1-title": "Código abierto", "page-staking-considerations-solo-1-description": "El código esencial es 100 % de código abierto y está a disposición pública para bifurcarlo y usarlo", "page-staking-considerations-solo-1-warning": "Código cerrado", @@ -157,6 +162,7 @@ "page-staking-launchpad-widget-p3": "Para facilitar las cosas, puede consultar algunas de las herramientas y guías a continuación que pueden ayudarle junto al «Lanzador de participaciones» para configurar sus clientes con facilidad.", "page-staking-launchpad-widget-link": "Herramientas de software y guía", "page-staking-products-get-started": "Empezar", + "page-staking-products-follow": "Visitar en", "page-staking-dropdown-staking-options": "Opciones de participación", "page-staking-dropdown-staking-options-alt": "Menú desplegable de opciones de participación", "page-staking-stats-box-metric-1": "Total de ETH apostados", @@ -168,8 +174,8 @@ "page-staking-section-comparison-subtitle": "No existe una solución única para la participación y cada una es única. Aquí compararemos algunos de los riesgos, recompensas y requisitos de las diferentes maneras en que puede realizar la participación.", "page-staking-section-comparison-rewards-title": "Recompensas", "page-staking-section-comparison-solo-rewards-li1": "Recompensas máximas: reciba recompensas completas directamente del protocolo", - "page-staking-section-comparison-solo-rewards-li2": "Obtendrá recompensas por agrupar en lote transacciones en un nuevo bloque o al comprobar el trabajo de otros validadores para mantener la cadena funcionando de forma segura", - "page-staking-section-comparison-solo-rewards-li3": "Recibirá también comisiones de transacción sin quemar para los bloques que proponga", + "page-staking-section-comparison-solo-rewards-li2": "Recompensas por proponer bloques, incluidas las tarifas de comisión de transacción y por certificar regularmente el estado de la red", + "page-staking-section-comparison-solo-rewards-li3": "Opción de acuñar un token de participación líquida vinculada a tu nodo de casa para usar en DeFi", "page-staking-section-comparison-saas-rewards-li1": "Generalmente suele implicar recompensas completas del protocolo, menos la cuota mensual por operaciones de nodo", "page-staking-section-comparison-saas-rewards-li2": "Suele haber paneles disponibles para rastrear fácilmente su cliente validador", "page-staking-section-comparison-pools-rewards-li1": "Los participantes agrupados acumulan recompensas de manera diferente, en función del método asociado seleccionado", @@ -178,7 +184,8 @@ "page-staking-section-comparison-risks-title": "Riesgos", "page-staking-section-comparison-solo-risks-li1": "Sus ETH están en juego", "page-staking-section-comparison-solo-risks-li2": "Hay penalizaciones, que cuestan ETH, por desconectarse", - "page-staking-section-comparison-solo-risks-li3": "Un comportamiento malicioso puede ocasionar el recorte de grandes cantidades de ETH y la expulsión forzada de la red", + "page-staking-section-comparison-solo-risks-li3": "Recortes (penalizaciones mayores y expulsión de la red) por comportamiento malicioso", + "page-staking-section-comparison-solo-risks-li4": "Acuñar un token de participación de liquidez conlleva riesgos asociados a contratos inteligentes, pero es completamente opcional", "page-staking-section-comparison-saas-risks-li1": "Los mismos riesgos que haciendo participaciones individuales, además del riesgo de la contraparte proveedora del servicio", "page-staking-section-comparison-saas-risks-li2": "El uso de tus llaves de firma se confía a alguien que pueda comportarse de manera maliciosa", "page-staking-section-comparison-pools-risks-li1": "Los riesgos varían según el método usado", @@ -225,7 +232,7 @@ "page-staking-join-community": "Únase a la comunidad de participantes", "page-staking-join-community-desc": "EthStaker is una comunidad donde todos pueden debatir y conocer mejor las participaciones en Ethereum. Únase a decenas de miles de miembros de todas las partes del globo para obtener consejos, ayuda, y para hablar sobre todo lo relacionado con las participaciones.", "page-staking-meta-description": "Una descripción general de las apuestas de Ethereum: los riesgos, las recompensas, los requisitos y dónde hacerlo.", - "page-staking-meta-title": "Apuestas en Ethereum", + "page-staking-meta-title": "Participación en Ethereum: ¿Cómo funciona?", "page-staking-withdrawals-important-notices": "Avisos importantes", "page-staking-withdrawals-important-notices-desc": "Las retiradas de fondos aún no están disponibles. Para más información, consulte Preguntas frecuentes sobre La Fusión ETh2 y sus efectos posteriores.", "page-upgrades-merge-btn": "Más sobre la fusión", diff --git a/src/intl/es/page-wallets-find-wallet.json b/src/intl/es/page-wallets-find-wallet.json index b0da25c4b17..1c0acf05f29 100644 --- a/src/intl/es/page-wallets-find-wallet.json +++ b/src/intl/es/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Las carteras almacenan y realizan transacciones con su ETH. Puede elegir entre una variedad de productos que se adapten a sus necesidades.", "page-find-wallet-last-updated": "Última actualización", "page-find-wallet-meta-description": "Encuentre y compare las carteras de Ethereum según las características que quiera.", - "page-find-wallet-meta-title": "Encontrar una cartera de Ethereum", + "page-find-wallet-meta-title": "Lista de carteras en Ethereum | ethereum.org", "page-find-wallet-title": "Elija su cartera", "page-find-wallet-try-removing": "Intente eliminar una o dos características", "page-stake-eth": "Apostar ETH", @@ -52,7 +52,6 @@ "page-find-wallet-check-out": "Eche un vistazo", "page-find-wallet-info-updated-on": "información actualizada sobre", "page-find-wallet-showing-all-wallets": "Mostrar todas las carteras", - "page-find-wallet-showing": "Exhibición ", "page-find-wallet-wallets": "carteras", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -72,6 +71,7 @@ "page-find-wallet-finance-desc": "Carteras centradas en el uso frecuente de aplicaciones DeFi.", "page-find-wallet-developer-title": "Desarrollador", "page-find-wallet-developer-desc": "Carteras que ayudan a desarrollar y probar DApps.", + "page-find-wallet-active": "activos", "page-find-wallet-footnote-1": "Las carteras enumeradas en esta página no constituyen una recomendación oficial y solo se facilitan con fines informativos.", "page-find-wallet-footnote-2": "Los propios proyectos de carteras han facilitado su descripción.", "page-find-wallet-footnote-3": "Añadimos productos a esta página en función de los criterios de nuestra política de listado. Si quiere que añadamos una cartera, cree una incidencia en GitHub.", @@ -79,6 +79,7 @@ "page-find-wallet-desktop": "Versión para escritorio", "page-find-wallet-browser": "Navegador", "page-find-wallet-device": "Dispositivo", + "page-find-wallet-reset-filters": "Restaurar", "page-find-wallet-visit-website": "Visita la página web", "page-find-wallet-social-links": "Enlaces", "page-find-wallet-empty-results-title": "Sin resultados", diff --git a/src/intl/es/page-wallets.json b/src/intl/es/page-wallets.json index dad61f1447f..465915767c0 100644 --- a/src/intl/es/page-wallets.json +++ b/src/intl/es/page-wallets.json @@ -28,7 +28,7 @@ "page-wallets-manage-funds": "Una aplicación para gestionar sus fondos", "page-wallets-manage-funds-desc": "Su cartera muestra sus saldos y el historial de transacciones y le da la posibilidad de enviar o recibir fondos. Algunas carteras pueden ofrecerle más funciones.", "page-wallets-meta-description": "Qué necesita saber para utilizar carteras de Ethereum", - "page-wallets-meta-title": "Carteras de Ethereum", + "page-wallets-meta-title": "Carteras de Ethereum: Comprar, Guardar y Envíar cripto", "page-wallets-mobile": "Aplicaciones para móvil que le permiten acceder a sus fondos desde cualquier lugar", "page-wallets-more-on-dapps-btn": "Más sobre DApps", "page-wallets-most-wallets": "La mayoría de los productos de cartera le permitirán generar una cuenta de Ethereum. Así que no necesita una antes de descargar una cartera.", diff --git a/src/intl/es/page-what-is-ethereum.json b/src/intl/es/page-what-is-ethereum.json index 9b177f66ec4..87bea2ebe04 100644 --- a/src/intl/es/page-what-is-ethereum.json +++ b/src/intl/es/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "La razón por la que activos como el bitcoin y el ether se denominan «criptomonedas» es porque la seguridad de sus datos y activos está garantizada mediante criptografía, no por confiar en que una institución o corporación actúe honestamente.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum tiene su propia criptomoneda nativa: el Ether (ETH), que se utiliza para pagar determinadas actividades en la red. Puede transferirse a otros usuarios o intercambiarse por otros tókenes en Ethereum. Ether es especial, porque se utiliza para pagar el cálculo necesario para construir y ejecutar aplicaciones y organizaciones en Ethereum.", "page-what-is-ethereum-summary-title": "Resumen", - "page-what-is-ethereum-summary-desc-1": "Ethereum es una red de computadoras de todo el mundo que siguen un conjunto de normas conocidas como el protocolo Ethereum. La red Ethereum actúa como la base de comunidades, aplicaciones, organizaciones y activos digitales que cualquiera puede construir y utilizar.", - "page-what-is-ethereum-summary-desc-2": "Puede crear una cuenta de Ethereum desde cualquier lugar y en cualquier momento, y explorar un mundo de aplicaciones o construir la suya propia. La innovación fundamental es que usted puede hacer todo esto sin necesidad de confiar en una autoridad central que pueda cambiar las normas o restringir su acceso.", - "page-what-is-ethereum-summary-desc-3": "Siga leyendo para indagar más…", + "page-what-is-ethereum-summary-desc-1": "Ethereum es la plataforma principal para miles de aplicaciones y cadenas de bloques, todas impulsadas por el protocolo de Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Este ecosistema dinámico impulsa la innovación y una extensa serie de aplicaciones y servicios descentralizados.", + "page-what-is-ethereum-summary-bullet-1": "Cuentas de Ethereum gratis y globales", + "page-what-is-ethereum-summary-bullet-2": "Pseudoprivada, no se necesita información personal", + "page-what-is-ethereum-summary-bullet-3": "Sin restricciones cualquiera puede participar", + "page-what-is-ethereum-summary-bullet-4": "Ninguna compañía es dueña de Ethereum ni decide su futuro", "page-what-is-ethereum-btc-eth-diff-title": "¿Cuál es la diferencia entre Ethereum y Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Ethereum, lanzada en 2015, se basa en la tecnología de Bitcoin, pero tiene algunas diferencias grandes.", "page-what-is-ethereum-btc-eth-diff-2": "Ambos permiten utilizar dinero digital sin proveedores de pago o bancos. Pero Ethereum es programable, así que también puede utilizarse para construir y mantener aplicaciones descentralizadas sobre su infraestructura.", diff --git a/src/intl/es/template-usecase.json b/src/intl/es/template-usecase.json index b7b4212def7..b76e86377aa 100644 --- a/src/intl/es/template-usecase.json +++ b/src/intl/es/template-usecase.json @@ -2,6 +2,7 @@ "template-usecase-dropdown-defi": "Finanzas descentralizadas (DeFi)", "template-usecase-dropdown-nft": "Tókenes No Fungibles (NFT)", "template-usecase-dropdown-dao": "Organizaciones Autónomas Descentralizadas (DAO)", + "template-usecase-dropdown-payments": "Pagos con Ethereum", "template-usecase-dropdown-social-networks": "Redes sociales descentralizadas", "template-usecase-dropdown-identity": "Identidad descentralizada", "template-usecase-dropdown-desci": "Ciencia descentralizada (DeSci)", @@ -10,4 +11,4 @@ "template-usecase-banner": "Los usos de Ethereum siempre se están desarrollando y evolucionando. Añada cualquier información que considere que aclare o aporte datos actuales.", "template-usecase-edit-link": "Editar página", "template-usecase-dropdown-aria": "Menú desplegable de casos de uso" -} +} \ No newline at end of file diff --git a/src/intl/fa/page-developers-local-environment.json b/src/intl/fa/page-developers-local-environment.json index a0ce482ffb3..e2298f35bd5 100644 --- a/src/intl/fa/page-developers-local-environment.json +++ b/src/intl/fa/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "در اینجا ابزارها و چارچوب‌هایی وجود دارد که می‌توانید برای کمک به ساخت برنامه‌های کاربردی اتریوم خود از آنها استفاده کنید.", "page-local-environment-setup-title": "یک محیط توسعه محلی راه اندازی کنید", "page-local-environment-solidity-template-desc": "یک الگوی GitHub برای راه اندازی از پیش ساخته شده برای قراردادهای هوشمند Solidity شما. شامل یک شبکه محلی Hardhat، Waffle برای آزمایش، Ethers برای اجرای کیف پول و موارد دیگر است.", - "page-local-environment-solidity-template-logo-alt": "لوگوی الگوی Solidity", - "page-local-environment-waffle-desc": "پیشرفته ترین کتاب تست قراردادهای هوشمند. به تنهایی یا با Scaffold-eth یا Hardhat استفاده کنید.", - "page-local-environment-waffle-logo-alt": "لوگوی Waffle" -} + "page-local-environment-solidity-template-logo-alt": "لوگوی الگوی Solidity" +} \ No newline at end of file diff --git a/src/intl/fi/page-developers-local-environment.json b/src/intl/fi/page-developers-local-environment.json index 4e22a6793cd..e7071420d23 100644 --- a/src/intl/fi/page-developers-local-environment.json +++ b/src/intl/fi/page-developers-local-environment.json @@ -27,7 +27,5 @@ "page-local-environment-setup-subtitle-2": "Esittelyssä ohjelmistoalustoja ja työkaluja, jotka auttavat sinua rakentamaan Ethereum-sovelluksen.", "page-local-environment-setup-title": "Kuinka luoda paikallinen kehitysympäristö?", "page-local-environment-solidity-template-desc": "GitHub-malli on valmiiksi rakennettu alusta Solidity-kielen älysopimuksille. Se sisältää HardHat-paikallisverkon, Wafflen testausta varten, Ethereitä lompakon käyttöönottoon ja muuta tarvittavaa.", - "page-local-environment-solidity-template-logo-alt": "Solidity-logo", - "page-local-environment-waffle-desc": "Kehittynein testauskirjasto älysopimuksille. Käytä sellaisenaan, Scaffold-Etherilla tai HardHatilla.", - "page-local-environment-waffle-logo-alt": "Waffle logo" -} + "page-local-environment-solidity-template-logo-alt": "Solidity-logo" +} \ No newline at end of file diff --git a/src/intl/fil/page-developers-local-environment.json b/src/intl/fil/page-developers-local-environment.json index 62a39fcf524..ce09a16af9a 100644 --- a/src/intl/fil/page-developers-local-environment.json +++ b/src/intl/fil/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Ito ang mga tool at framework na magagamit mo at makakatulong sa iyong gawin ang iyong Ethereum application.", "page-local-environment-setup-title": "I-set up ang iyong lokal na development environment", "page-local-environment-solidity-template-desc": "Isang GitHub template para sa pre-built setup ng iyong mga smart contract sa Solidity. May Hardhat local network, Waffle para sa mga test, Ethers para sa implementation ng wallet, at marami pa.", - "page-local-environment-solidity-template-logo-alt": "Logo ng Solidity template", - "page-local-environment-waffle-desc": "Ang pinaka-advanced na testing lib para sa mga smart contract. Gamitin mag-isa o kasama ang Scaffold-eth o Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo ng Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo ng Solidity template" +} \ No newline at end of file diff --git a/src/intl/fr/common.json b/src/intl/fr/common.json index b7ec2bf7c4e..b7064fbd09d 100644 --- a/src/intl/fr/common.json +++ b/src/intl/fr/common.json @@ -250,6 +250,8 @@ "nav-emerging-description": "Découvrez d'autres cas d'utilisation plus récents d'Ethereum", "nav-emerging-label": "Cas d'utilisation émergents", "nav-ethereum-org-description": "Ce site web est animé par la communauté - rejoignez-nous et contribuez vous aussi", + "nav-ethereum-networks": "Réseaux Ethereum", + "nav-ethereum-networks-description": "Des transactions moins chères et plus rapides pour Ethereum", "nav-ethereum-wallets-description": "Une application pour interagir avec votre compte Ethereum", "nav-events-description": "Décentralisation et liberté de participation pour tous", "nav-events-irl-description": "Chaque mois, des événements majeurs liés à Ethereum sont organisés en personne ou en ligne", @@ -275,16 +277,23 @@ "nav-guides-label": "Guides de procédures", "nav-history-description": "Une chronologie de toutes les principales fourches et mises à jour", "nav-history-label": "Histoire technique d'Ethereum", - "nav-layer-2-description": "Des transactions moins chères et plus rapides pour Ethereum", "nav-learn-by-coding-description": "Des outils qui vous aident à expérimenter avec Ethereum", "nav-local-env-description": "Choisissez et mettez en place votre pile de développement Ethereum", "nav-mainnet-description": "Les applications blockchain d'entreprise peuvent être créées sur le réseau public principal Ethereum", + "nav-networks-home-description": "Des transactions moins chères et plus rapides pour Ethereum", + "nav-networks-introduction-label": "Introduction", + "nav-networks-introduction-description": "Ethereum s'est étendu en un réseau de réseaux", + "nav-networks-explore-networks-label": "Explorer les réseaux", + "nav-networks-explore-networks-description": "Choisissez le réseau à utiliser", + "nav-networks-learn-label": "Que sont les réseaux de couche 2 ?", + "nav-networks-learn-description": "Découvrez pourquoi nous en avons besoin", "nav-nft-description": "Un moyen de représenter tout ce qui est unique en tant qu'actif Ethereum", "nav-open-research-description": "L'un des principaux atouts d'Ethereum est sa communauté de recherche active", "nav-open-research-label": "Recherche ouverte", "nav-overview-description": "Tout savoir sur l'éducation à l'Ethereum", "nav-overview-label": "Aperçu", "nav-participate-overview-description": "Aperçu des modalités de participation", + "nav-payments-description": "Les paiements Ethereum changent la façon dont nous envoyons et recevons de l'argent", "nav-primary": "Principale", "nav-quizzes-description": "Découvrez dans quelle mesure vous comprenez Ethereum et les cryptomonnaies", "nav-quizzes-label": "Testez vos connaissances", @@ -334,7 +343,7 @@ "nav-what-is-web3-label": "Qu'est-ce que le Web3 ?", "nav-whitepaper-description": "Le livre blanc original d'Ethereum écrit par Vitalik Buterin en 2014", "nav-zkp-description": "Une façon de prouver la validité d'une information sans révéler l'information elle-même", - "nft-page": "NTFs - Jetons non fongibles", + "nft-page": "NFTs - Jetons non fongibles", "nfts": "NFTs", "no": "Non", "on-this-page": "Sur cette page", @@ -356,6 +365,7 @@ "page-last-updated": "Dernière mise à jour de la page", "participate": "Participer", "participate-menu": "Menu de participation", + "payments-page": "Paiements", "pbs": "Séparation entre le validateur et le constructeur de blocs", "pools": "Mise en jeu en pool", "privacy-policy": "Politique de confidentialité", diff --git a/src/intl/fr/glossary-tooltip.json b/src/intl/fr/glossary-tooltip.json index 4e62f394913..97a20387b15 100644 --- a/src/intl/fr/glossary-tooltip.json +++ b/src/intl/fr/glossary-tooltip.json @@ -101,8 +101,8 @@ "node-definition": "Un client logiciel qui participe au réseau. En savoir plus sur les nœuds et les clients.", "ommer-term": "Bloc oncle (ommer)", "ommer-definition": "Lorsqu'un mineur en preuve de travail trouve un bloc valide, un autre mineur peut avoir publié un bloc concurrent qui est ajouté en premier à l'extrémité de la blockchain. Ce bloc valide, mais périmé, peut être inclus par des blocs plus récents en tant qu'ommers et recevoir une récompense de bloc partielle. Le terme « ommer » est le terme de genre neutre préféré pour désigner le frère ou la sœur d'un bloc parent, mais il est parfois également appelé « oncle ». Cela était frequent pour Ethereum lorsqu'il s'agissait d'un réseau basé sur la preuve de travail. Maintenant qu'Ethereum utilise la preuve d'enjeu, un seul proposeur de bloc est sélectionné par créneau.", - "onchain-term": "En chaîne", - "onchain-definition": "Fait référence aux actions ou transactions qui se produisent sur la blockchain et qui sont accessibles au public.", + "on-chain-term": "En chaîne", + "on-chain-definition": "Fait référence aux actions ou transactions qui se produisent sur la blockchain et qui sont accessibles au public.", "optimistic-rollup-term": "Rollup optimisé", "optimistic-rollup-definition": "Le rollup optimiste est une solution de couche 2 qui accélère les transactions sur Ethereum, en supposant qu’elles soient valides par défaut, sauf si elles sont contestées. En savoir plus sur les rollups optimistes.", "peer-to-peer-network-term": "Réseaux Pair-à-Pair", diff --git a/src/intl/fr/glossary.json b/src/intl/fr/glossary.json index 4ab4fb9e3b8..f8eb44a2192 100644 --- a/src/intl/fr/glossary.json +++ b/src/intl/fr/glossary.json @@ -136,7 +136,7 @@ "erc-20-term": "ERC-20", "erc-20-definition": "ERC-20 est la norme que la plupart des jatons du réseau Ethereum utilisent pour leur création.
                                        Les exemples populaires sont les stablecoins comme DAI et USDC ou les jetons d’échange comme UNI d’Uniswap. Semblable à toute autre forme d’argent que nous connaissons dans les systèmes traditionnels… c.-à-d. les points de récompense, les systèmes de crédit, ou même les actions, etc.", "erc-721-term": "ERC-721", - "erc-721-definition": "Les NFT (jetons non fongibles) sont créés à l’aide d’un ensemble standard de règles dénommées ERC-721.
                                        Les jetons NFT peuvent représenter la propriété de tout ce qui est unique, comme l’art numérique ou les objets de collection, chaque jeton ayant ses propres caractéristiques et valeur particulières. Chaque NFT est unique et se distingue facilement de tout autre NFT.", + "erc-721-definition": "Les NFTs (jetons non fongibles) sont créés en utilisant un ensemble standard de règles appelé ERC-721.
                                        Les jetons NFT peuvent représenter la propriété de n'importe quoi d'unique, comme des œuvres d'art numériques ou des objets de collection, chaque jeton ayant ses propres caractéristiques et sa valeur spécifiques. Chaque NFT est unique et facilement distinguable de tout autre NFT.", "execution-client-term": "Client d'exécution", "execution-client-definition": "Les clients d'exécution (anciennement appelés « clients Eth1 »), tels que Besu, Erigon, Go-Ethereum (Geth), Nethermind, sont chargés de traiter et de diffuser les transactions et de gérer l'état d'Ethereum. Ils exécutent les calculs pour chaque transaction en utilisant la machine virtuelle Ethereum pour s'assurer que les règles du protocole sont respectées.", "execution-layer-term": "Couche d'exécution", @@ -257,12 +257,12 @@ "node-definition": "Un client logiciel qui participe au réseau. En savoir plus sur les nœuds et les clients.", "nonce-term": "Nonce", "nonce-definition": "En cryptographie, une valeur qui ne peut être utilisée qu'une seule fois. Un nonce de compte est un compteur de transactions dans chaque compte, qui est utilisé pour empêcher les attaques par rejeu.", - "offchain-term": "Hors-chaine", - "offchain-definition": "Hors-chaine se réfère à toute transaction ou donnée qui existe en dehors de la blockchain. Parce que la validation de chaque transaction sur la chaîne peut être coûteuse et inefficace, des outils tiers tels que des oracles qui gèrent les données de tarification, ou des solutions de couche 2 qui exécutent un débit de transactions plus élevé, gèrent une grande partie du travail de traitement hors chaîne et présentera des renseignements sur la chaîne à des intervalles moins fréquents.", + "off-chain-term": "Hors-chaine", + "off-chain-definition": "Hors-chaine se réfère à toute transaction ou donnée qui existe en dehors de la blockchain. Parce que la validation de chaque transaction sur la chaîne peut être coûteuse et inefficace, des outils tiers tels que des oracles qui gèrent les données de tarification, ou des solutions de couche 2 qui exécutent un débit de transactions plus élevé, gèrent une grande partie du travail de traitement hors chaîne et présentera des renseignements sur la chaîne à des intervalles moins fréquents.", "ommer-term": "Bloc oncle (ommer)", "ommer-definition": "Lorsqu'un mineur en preuve de travail trouve un bloc valide, un autre mineur peut avoir publié un bloc concurrent qui est ajouté en premier à l'extrémité de la blockchain. Ce bloc valide, mais périmé, peut être inclus par des blocs plus récents en tant qu'ommers et recevoir une récompense de bloc partielle. Le terme « ommer » est le terme de genre neutre préféré pour désigner le frère ou la sœur d'un bloc parent, mais il est parfois également appelé « oncle ». Cela était frequent pour Ethereum lorsqu'il s'agissait d'un réseau basé sur la preuve de travail. Maintenant qu'Ethereum utilise la preuve d'enjeu, un seul proposeur de bloc est sélectionné par créneau.", - "onchain-term": "Sur la chaîne", - "onchain-definition": "Fait référence aux actions ou transactions qui se produisent sur la blockchain et sont accessibles au public.

                                        Voyez cela comme le fait d'écrire quelque chose dans un carnet partagé que tout le monde peut voir et vérifier, en vous assurant que tout ce qui est écrit (comme envoyer de l’argent numérique ou conclure un contrat) est permanent et ne peut pas être modifié ou effacé.", + "on-chain-term": "Sur la chaîne", + "on-chain-definition": "Fait référence aux actions ou transactions qui se produisent sur la blockchain et sont accessibles au public.

                                        Voyez cela comme le fait d'écrire quelque chose dans un carnet partagé que tout le monde peut voir et vérifier, en vous assurant que tout ce qui est écrit (comme envoyer de l’argent numérique ou conclure un contrat) est permanent et ne peut pas être modifié ou effacé.", "optimistic-rollup-term": "Rollup optimisé", "optimistic-rollup-definition": "Le rollup optimiste est une solution de couche 2 qui accélère les transactions sur Ethereum, en supposant qu’elles soient valides par défaut, sauf si elles sont contestées. En savoir plus sur les rollups optimistes.", "oracle-term": "Oracle", diff --git a/src/intl/fr/learn-quizzes.json b/src/intl/fr/learn-quizzes.json index 4cc27152ad2..2c99095717c 100644 --- a/src/intl/fr/learn-quizzes.json +++ b/src/intl/fr/learn-quizzes.json @@ -58,10 +58,10 @@ "what-is-ethereum-3-d-explanation": "Toute personne exécutant un nœud est essentielle à l'infrastructure d'Ethereum. Si ce n'est pas encore le cas, vous devriez envisager d'exécuter un nœud Ethereum.", "what-is-ethereum-4-prompt": "Depuis le lancement d'Ethereum, combien de fois le réseau a été hors ligne ?", "what-is-ethereum-4-a-label": "Jamais", + "what-is-ethereum-4-a-explanation": "Ethereum n'a jamais été complètement hors ligne (arrêt de la production de blocs) depuis son lancement.", "what-is-ethereum-4-b-label": "Une fois", "what-is-ethereum-4-c-label": "Quatre fois", "what-is-ethereum-4-d-label": "Plus de dix fois", - "what-is-ethereum-4-explanation": "Ethereum n'a jamais été complètement hors ligne (arrêt de la production de blocs) depuis son lancement.", "what-is-ethereum-5-prompt": "Ethereum consomme plus d'électricité que :", "what-is-ethereum-5-a-label": "Extraction d'or", "what-is-ethereum-5-a-explanation": "L'extraction d'or utilise environ 131 térawatt-heures par an. Ethereum consomme environ 0,0026 térawatt-heures par an.", diff --git a/src/intl/fr/page-contributing-translation-program-acknowledgements.json b/src/intl/fr/page-contributing-translation-program-acknowledgements.json index 457b2130a6b..56e3a674c73 100644 --- a/src/intl/fr/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/fr/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "Nombre de mots", "page-contributing-translation-program-acknowledgements-oats-title": "OAT", "page-contributing-translation-program-acknowledgements-1": "Les contributeurs au programme de traduction sont éligibles à différents OAT (onchain achievement tokens) ; des jetons non fongibles qui prouvent leur participation au programme de traduction d'ethereum.org.", - "page-contributing-translation-program-acknowledgements-2": "Nous disposons de plusieurs OAT pour les traducteurs, en fonction de leur activité", + "page-contributing-translation-program-acknowledgements-2": "Nous disposons de plusieurs OAT pour les traducteurs, en fonction de leur activité.", "page-contributing-translation-program-acknowledgements-3": "Si vous avez contribué à la traduction dans Crowdin, une OAT vous attend !", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Comment le récupérer", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Rejoignez notre", diff --git a/src/intl/fr/page-dapps.json b/src/intl/fr/page-dapps.json index 29dedb68a75..28e130a0ecc 100644 --- a/src/intl/fr/page-dapps.json +++ b/src/intl/fr/page-dapps.json @@ -78,6 +78,7 @@ "page-dapps-dapp-description-cryptovoxels": "Créez des galeries d'art, construisez des magasins et achetez des terrains – un monde virtuel Ethereum.", "page-dapps-dapp-description-cyberconnect": "Protocole de graphe social décentralisé qui aide les dApps à amorcer l'effet de réseau et à construire des expériences sociales personnalisées", "page-dapps-dapp-description-dark-forest": "Conquérez des planètes dans un univers infini, généré de façon procédurale et spécifié par cryptographie.", + "page-dapps-dapp-description-crack-and-stack": "Entrez dans les mines avec d'autres joueurs, empilez des diamants ETH et tentez de vous échapper avec votre butin.", "page-dapps-dapp-description-decentraland": "Collectez et échangez des terrains virtuels dans un monde virtuel que vous pouvez explorer.", "page-dapps-dapp-description-ens": "Noms conviviaux pour les adresses Ethereum et les sites décentralisés.", "page-dapps-dapp-description-foundation": "Investissez dans des éditions uniques d'œuvres d'art numériques et échangez des pièces avec d'autres acheteurs.", @@ -127,6 +128,7 @@ "page-dapps-docklink-dapps": "Introduction aux dapps", "page-dapps-docklink-smart-contracts": "Contrats intelligents", "page-dapps-dark-forest-logo-alt": "Logo de Dark Forest", + "page-dapps-crack-and-stack-logo-alt": "Logo de Crack & Stack", "page-dapps-decentraland-logo-alt": "Logo de Decentraland", "page-dapps-index-coop-logo-alt": "Logo Index Coop", "page-dapps-nexus-mutual-logo-alt": "Logo Nexus Mutual", diff --git a/src/intl/fr/page-developers-local-environment.json b/src/intl/fr/page-developers-local-environment.json index c03800662a4..70a2d8311f9 100644 --- a/src/intl/fr/page-developers-local-environment.json +++ b/src/intl/fr/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Voici les outils et les frameworks que vous pouvez utiliser pour vous aider à créer votre application Ethereum.", "page-local-environment-setup-title": "Configurez votre environnement de développement local", "page-local-environment-solidity-template-desc": "Un modèle GitHub pour une configuration prédéfinie pour vos contrats intelligents Solidity. Comprend un réseau local Hardhat, Waffle pour les tests, Ethers pour l'implémentation de portefeuille, et plus encore.", - "page-local-environment-solidity-template-logo-alt": "Logo de modèle Solidity", - "page-local-environment-waffle-desc": "La bibliothèque de test la plus avancée pour les contrats intelligents. Utiliser seul ou avec Scaffold-eth ou Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo de modèle Solidity" +} \ No newline at end of file diff --git a/src/intl/fr/page-eth.json b/src/intl/fr/page-eth.json index 0aec9222150..8f397f06812 100644 --- a/src/intl/fr/page-eth.json +++ b/src/intl/fr/page-eth.json @@ -5,7 +5,7 @@ "page-eth-collectible-tokens": "Tokens de collection", "page-eth-collectible-tokens-desc": "Tokens qui représentent un item de jeu collectionnable, une oeuvre-d'art numérique ou d'autres actifs uniques. Généralement connus sous le nom de jetons non-fongibles (NFT en anglais).", "page-eth-cryptography": "Sécurisé par la cryptographie", - "page-eth-cryptography-desc": "La monnaie virtuelle est peut-être nouvelle, mais elle est sécurisée par la cryptographie. Cela sécurise votre portefeuille, vos ETH, et vos transactions. ", + "page-eth-cryptography-desc": "La monnaie virtuelle est peut-être nouvelle, mais elle est sécurisée par une cryptographie éprouvée. Cela sécurise votre portefeuille, vos ETH, et vos transactions. ", "page-eth-currency-for-apps": "C'est la monnaie des applications Ethereum.", "page-eth-currency-for-future": "La monnaie de notre avenir numérique", "page-eth-description": "ETH est une cryptomonnaie. C'est une monnaie numérique que vous pouvez utiliser sur internet - comme le Bitcoin. Si vous êtes nouveau dans la crypto, voici pourquoi l'ETH est différent de la monnaie traditionnelle.", @@ -53,7 +53,7 @@ "page-eth-tokens-link": "Tokens d'Ethereum", "page-eth-trade-link-2": "Échanger des jetons", "page-eth-underpins": "ETH est à la base du système financier d'Ethereum", - "page-eth-underpins-desc": "Pas satisfait des paiements, la communauté Ethereum construit un système financier complet qui fonctionne en P2P et est accessible à tous.", + "page-eth-underpins-desc": "Pas satisfait des paiements, la communauté Ethereum construit un système financier complet qui fonctionne en P2P et est accessible à tous.", "page-eth-underpins-desc-2": "Vous pouvez utiliser ETH comme garantie pour générer des jetons de cryptomonnaie entièrement différents sur Ethereum. De plus, vous pouvez emprunter, prêter et gagner des intérêts sur ETH et d'autres jetons adossés à l'ETH.", "page-eth-weth": "L'ether symbolique (WETH) est utilisé pour étendre les fonctionnalités d'ETH pour fonctionner avec d'autres jetons et applications. Plus d'informations sur WETH.", "page-eth-uses": "Il y a de nouvelles utilisations de l'ETH tous les jours", diff --git a/src/intl/fr/page-gas.json b/src/intl/fr/page-gas.json index 0c5d6341eb0..46441fa21c5 100644 --- a/src/intl/fr/page-gas.json +++ b/src/intl/fr/page-gas.json @@ -1,5 +1,5 @@ { - "page-gas-meta-title": "Frais de gaz sur Ethereum : comment cela fonctionne-t-il ?", + "page-gas-meta-title": "Frais Ethereum : qu'est-ce que le gaz et comment payer moins ?", "page-gas-meta-description": "En savoir plus sur le gaz sur Ethereum : comment cela fonctionne-t-il et comment payer moins de frais de gaz", "page-gas-hero-title": "Frais de Gaz", "page-gas-hero-header": "Frais de réseau", @@ -12,7 +12,7 @@ "page-gas-summary-item-3": "Les frais de gaz ne sont pas fixes, ils varient en fonction de la congestion du réseau", "page-gas-what-are-gas-fees-header": "Que sont les frais de gaz ?", "page-gas-what-are-gas-fees-text-1": "Pensez à Ethereum comme à un grand réseau informatique où les personnes peuvent effectuer des tâches telles que l'envoi de messages ou l'exécution de programmes. Comme dans le monde réel, ces tâches nécessitent de l'énergie pour être accomplies.", - "page-gas-what-are-gas-fees-text-2": "Dans Ethereum, chaque calcul a un prix de « gaz » fixé. Vos frais de gaz représentent le coût total des actions de votre transaction. Lorsque vous envoyez une transaction ou exécutez un contrat intelligent, vous payez des frais de gaz pour la traiter.", + "page-gas-what-are-gas-fees-text-2": "Dans Ethereum, chaque calcul a un prix de « gaz » fixé. Vos frais de gaz représentent le coût total des actions de votre transaction. Lorsque vous envoyez une transaction ou exécutez un contrat intelligent, vous payez des frais de gaz pour la traiter.", "page-gas-how-do-i-pay-less-gas-header": "Comment payer moins de gaz ?", "page-gas-how-do-i-pay-less-gas-text": "Si l'augmentation des frais sur Ethereum est parfois inévitable, il existe des stratégies pour en réduire le coût :", "page-gas-how-do-i-pay-less-gas-card-1-title": "Effectuez vos transactions au bon moment", diff --git a/src/intl/fr/page-get-eth.json b/src/intl/fr/page-get-eth.json index 1ea45e4bddc..43c22565b37 100644 --- a/src/intl/fr/page-get-eth.json +++ b/src/intl/fr/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Image hero Obtenir de l'ETH", "page-get-eth-keep-it-safe": "Garder votre ETH en sécurité", "page-get-eth-meta-description": "Comment acheter des ETH en fonction de l'endroit où vous vivez et des conseils sur la façon de les protéger.", - "page-get-eth-meta-title": "Comment acheter des ETH", + "page-get-eth-meta-title": "Comment acheter de l'Ethereum (ETH)", "page-get-eth-need-wallet": "Vous aurez besoin d'un portefeuille pour utiliser un DEX.", "page-get-eth-new-to-eth": "Nouveau sur ETH ? Voici un aperçu pour vous aider à démarrer.", "page-get-eth-other-cryptos": "Acheter avec d'autres cryptomonnaies", diff --git a/src/intl/fr/page-layer-2.json b/src/intl/fr/page-layer-2.json index 5b913cae3ed..0967ef424bc 100644 --- a/src/intl/fr/page-layer-2.json +++ b/src/intl/fr/page-layer-2.json @@ -1,139 +1 @@ -{ - "layer-2-arbitrum-note": "Preuves de fraude uniquement pour les utilisateurs en liste blanche, liste blanche non encore ouverte", - "layer-2-boba-note": "Validation de l'état en cours de développement", - "layer-2-optimism-note": "Preuves de défaillance en développement", - "layer-2-base-note": "Le système à l'épreuve des fraudes est actuellement en développement", - "layer-2-metadata-description": "Page d'introduction à la couche 2", - "layer-2-hero-title": "Couche 2", - "layer-2-hero-header": "Ethereum pour tous", - "layer-2-hero-subtitle": "Faire passer Ethereum à l'échelle pour l'adoption de masse.", - "layer-2-hero-alt-text": "Illustration des transactions en cours de déploiement sur la couche 2 et affichées sur le réseau principal Ethereum", - "layer-2-hero-button-1": "Qu'est-ce que la couche 2 ?", - "layer-2-hero-button-2": "Utiliser la couche 2", - "layer-2-hero-button-3": "Passer à la couche 2", - "layer-2-statsbox-1": "TVL verrouillée dans la couche 2 (USD)", - "layer-2-statsbox-2": "Frais moyens des transferts d'ETH de la couche 2 (USD)", - "layer-2-statsbox-3": "Changement de la TVL de la couche 2 (30 jours)", - "layer-2-what-is-layer-2-title": "Qu'est-ce que la couche 2 ?", - "layer-2-what-is-layer-2-1": "Couche 2 (L2) est un terme collectif décrivant un ensemble spécifique de solutions de mise à l'échelle d'Ethereum. Une couche 2 est une blockchain séparée qui étend Ethereum et hérite des garanties de sécurité d'Ethereum.", - "layer-2-what-is-layer-2-2": "Maintenant, creusons un peu plus le sujet. Pour ce faire, nous devons d'abord expliquer la couche 1 (L1).", - "layer-2-what-is-layer-1-title": "Qu'est-ce que la couche 1 ?", - "layer-2-what-is-layer-1-1": "La couche 1 est la blockchain de base. Ethereum et Bitcoin sont toutes deux des blockchains de couche 1 car ce sont les fondations sous-jacentes sur lesquelles divers réseaux de couche 2 se construisent. Les « rollups » sur Ethereum et le réseau Lightning sur Bitcoin sont des exemples de projets de la couche 2. Toute activité de transaction utilisateur sur ces projets de couche 2 peut en définitive attérir dans la blockchain de la couche 1.", - "layer-2-what-is-layer-1-2": "Ethereum fonctionne également comme couche de disponibilité des données pour la couche 2. Les projets de la couche 2 afficheront leurs données de transaction sur Ethereum, en s'appuyant sur Ethereum pour la disponibilité des données. Ces données peuvent être utilisées pour obtenir l'état de la couche 2, ou pour contester les transactions sur la couche 2.", - "layer-2-what-is-layer-1-list-title": "La couche 1 d'Ethereum comprend :", - "layer-2-what-is-layer-1-list-1": "Un réseau d'opérateurs de nœuds afin de sécuriser et valider le réseau", - "layer-2-what-is-layer-1-list-2": "Un réseau de producteurs de blocs", - "layer-2-what-is-layer-1-list-3": "La chaine de blocs elle-même et l'historique des données de transaction", - "layer-2-what-is-layer-1-list-4": "Le mécanisme de consensus pour le réseau", - "layer-2-what-is-layer-1-list-link-1": "Toujours pas clair ?", - "layer-2-what-is-layer-1-list-link-2": "Découvrez ce qu'est Ethereum.", - "layer-2-why-do-we-need-layer-2-title": "Pourquoi avons-nous besoin de la couche 2 ?", - "layer-2-why-do-we-need-layer-2-1": "Idéalement, une blockchain devrait posséder trois propriétés : être décentralisée, sécurisée et capable de monter en charge. Le trilemme de la blockchain stipule qu'une architecture blockchain simple ne peut assurer que deux de ces trois propriétés. Vous voulez une blockchain sécurisée et décentralisée ? Vous devez sacrifier la montée en charge.", - "layer-2-why-do-we-need-layer-2-2": "Ethereum traite actuellement plus d'un million de transactions par jour. La demande d'utilisation d'Ethereum peut provoquer l'augmentation des frais de transactions. C'est là que les réseaux de couche 2 interviennent.", - "layer-2-why-do-we-need-layer-2-scalability": "Évolutivité", - "layer-2-why-do-we-need-layer-2-scalability-1": "L'objectif principal de la couche 2 est d'augmenter le débit des transactions (plus de transactions par seconde) sans sacrifier la décentralisation ni la sécurité.", - "layer-2-why-do-we-need-layer-2-scalability-2": "Le réseau principal d'Ethereum (couche 1) n'est capable de traiter qu'environ 15 transactions par seconde. Lorsque la demande d'utiliser Ethereum est importante, le réseau devient congestionné, ce qui augmente les frais de transaction et exclut par le prix des utilisateurs qui n'ont pas les moyens de payer ces frais. Les couches 2 sont des solutions permettant de réduire ces frais en traitant des transactions en dehors de la blockchain de couche 1.", - "layer-2-why-do-we-need-layer-2-scalability-3": "En savoir plus sur la vision d'Ethereum", - "layer-2-benefits-of-layer-2-title": "Les avantages de la couche 2", - "layer-2-lower-fees-title": "Des frais plus bas", - "layer-2-lower-fees-description": "En combinant plusieurs transactions hors chaîne en une seule opération sur la couche 1, les frais de transaction sont considérablement réduits. Cela permet de rendre Ethereum plus accessible à toutes et tous.", - "layer-2-maintain-security-title": "Une sécurité conservée", - "layer-2-maintain-security-description": "Les blockchains de la couche 2 règlent leurs transactions sur le réseau principal d'Ethereum, permettant ainsi aux utilisateurs de bénéficier de la sécurité du réseau Ethereum.", - "layer-2-expand-use-cases-title": "Des cas d'usage plus nombreux", - "layer-2-expand-use-cases-description": "Avec davantage de transactions par seconde traitées, des frais plus bas et de nouvelles technologies, les projets vont s'étendre à de nouvelles applications avec une expérience utilisateur améliorée.", - "layer-2-how-does-layer-2-work-title": "Comment la couche 2 fonctionne-t-elle ?", - "layer-2-how-does-layer-2-work-1": "Comme susmentionné, le terme couche 2 regroupe les solutions de passage à l'échelle d'Ethereum qui permettent de traiter les transactions en dehors de la couche 1 d'Ethereum, tout en profitant de sa robuste sécurité décentralisée. Une couche 2 est une blockchain séparée qui étend Ethereum. Comment ça marche?", - "layer-2-how-does-layer-2-work-2": "Il y a différents types de couche 2, chacune ayant ses propres compromis et modèles de sécurité. Les couches 2 enlèvent une partie des transactions à traiter par la couche 1, lui permettant d'être moins congestionnée, et le tout monte plus facilement en charge.", - "layer-2-rollups-title": "Rollups", - "layer-2-rollups-1": "Les Rollups regroupent ('enroulent' en anglais) des centaines de transactions dans une seule transaction de la couche 1. Cela partage les frais de transaction entre tous ceux qui participent au regroupement, les rendant moins chères pour chaque utilisateur.", - "layer-2-rollups-2": "Les données de transaction dans le rollup sont soumises à la couche 1, mais l'exécution est effectuée séparément par le rollup. En soumettant les données de transaction sur la couche 1, les rollups héritent de la sécurité d'Ethereum. En effet, une fois les données téléchargées sur la couche 1, l’annulation d’une transaction de rollup nécessite l’annulation d’Ethereum. Il existe deux approches différentes des rollups : optimiste et sans connaissance - elles diffèrent principalement par la manière dont ces données de transaction sont soumises à la couche 1.", - "layer-2-optimistic-rollups-title": "Rollups optimisés", - "layer-2-optimistic-rollups-description": "Les rollups 'optimistes' le sont dans le sens où les transactions sont supposées être valides, mais peuvent être contestées si nécessaire. Si une transaction est suspectée d'être non valide, une preuve de faute est exécutée pour voir si elle a bien eu lieu.", - "layer-2-optimistic-rollups-childSentance": "Plus sur les rollups optimistes", - "layer-2-zk-rollups-title": "Rollups ZK", - "layer-2-zk-rollups-description": "Les rollups ZK utilisent des preuves de validité où les transactions sont traitées hors chaîne, puis les données compressées sont fournies au réseau principal Ethereum comme preuve de leur validité.", - "layer-2-zk-rollups-childSentance": "Plus d'infos sur les ZK-rollups", - "layer-2-dyor-title": "Faites vos propres recherches : les risques de la couche 2", - "layer-2-dyor-1": "De nombreux projets de couche 2 sont relativement jeunes et requièrent encore aux utilisateurs de faire confiance à l'honnêteté de certains opérateurs le temps qu'ils travaillent à décentraliser leurs réseaux. Faites d'abord vos propres recherches pour décider si vous êtes à l'aise avec les risques encourus.", - "layer-2-dyor-2": "Pour en savoir plus sur la technologie, les risques et les hypothèses de confiance sur les couches 2, nous vous recommandons de consulter L2BEAT, qui fournit un cadre complet d'évaluation des risques pour chaque projet.", - "layer-2-dyor-3": "Accéder à L2BEAT", - "layer-2-use-layer-2-title": "Utilisez la couche 2", - "layer-2-use-layer-2-1": "Maintenant que vous comprenez pourquoi la couche 2 existe et comment elle fonctionne, il est temps de vous lancer !", - "layer-2-contract-accounts": "Si vous utilisez des portefeuilles de contrat intelligent tels que Safe ou Argent, vous n'aurez pas de contrôle sur cette adresse sur une couche 2, à moins que vous redéployiez votre compte de contrat à cette adresse sur la couche 2. Les comptes classiques avec une phrase de récupération possèderont automatiquement le même compte sur tous les réseaux de couche 2.", - "layer-2-use-layer-2-generalized-title": "Les couches 2 à visée générale", - "layer-2-use-layer-2-generalized-1": "Les couches généralisées de couche 2 se comportent exactement comme Ethereum — mais en moins cher. Tout ce que vous pouvez faire sur la couche 1 Ethereum, vous pouvez également le faire sur la couche 2. Beaucoup de DApps ont déjà commencé à migrer vers ces réseaux ou ont complètement ignoré le réseau principal pour construire directement des projets sur une couche 2.", - "layer-2-use-layer-2-application-specific-title": "Application spécifique de la couche 2", - "layer-2-use-layer-2-application-specific-1": "Les applications spécifiques à la couche 2 sont des projets qui se spécialisent dans l'optimisation pour un espace d'application spécifique, ce qui apporte des performances améliorées.", - "layer-2-sidechains-title": "Une remarque sur les chaines latérales, les validiums et chaînes de blocs alternatives", - "layer-2-sidechains-1": "Les chaines latérales et les validiums sont des chaînes de blocs qui permettent de transférer des actifs d'Ethereum et de les utiliser sur une autre chaînes de blocs. Les chaînes latérales et les validiums fonctionnent en parallèle d'Ethereum, et interagissent avec Ethereum à travers des ponts, mais ils ne tirent pas leur sécurité ou leur disponibilité de données d'Ethereum.", - "layer-2-sidechains-2": "Les deux permettent une évolutivité similaire à la couche 2 - ils offrent des frais de transaction plus faibles et un débit de transaction plus élevé - mais ont différentes hypothèses de confiance.", - "layer-2-more-on-sidechains": "Plus d'informations sur les chaînes latérales", - "layer-2-more-on-validiums": "Plus d'informations sur les validiums", - "layer-2-sidechains-4": "Certaines blockchains de couche 1 annoncent des débits plus élevés et des frais de transactions plus bas qu'Ethereum, mais ils font en général des compromis ailleurs, par exemple en exigeant du matériel plus puissant pour faire fonctionner les noeuds.", - "layer-2-onboard-title": "Comment accéder à la couche 2", - "layer-2-onboard-1": "Il y a deux moyens principaux de mettre vos actifs sur la couche 2 : relier des fonds d'Ethereum via un contrat intelligent ou retirer vos fonds par un échange directement sur le réseau de la couche 2.", - "layer-2-onboard-wallet-title": "Des fonds sur votre portefeuille ?", - "layer-2-onboard-wallet-1": "Si vous avez déjà vos ETH dans votre portefeuille, vous devrez utiliser un pont pour les déplacer du réseau principal Ethereum à la couche 2.", - "layer-2-more-on-bridges": "En savoir plus sur les ponts", - "layer-2-onboard-wallet-input-placeholder": "Sélectionnez la couche 2 vers laquelle vous voulez connecter", - "layer-2-onboard-wallet-selected-1": "Vous pouvez vous connecter à", - "layer-2-onboard-wallet-selected-2": "en utilisant ces portefeuilles :", - "layer-2-bridge": "Les ponts", - "layer-2-onboard-exchange-title": "Des fonds sur une plateforme d'échange ?", - "layer-2-onboard-exchange-1": "Certaines plateformes d'échange centralisées offrent maintenant directement des retraits et des dépôts directs sur la couche 2. Vérifiez quelles plateformes prennent en charge les retraits sur la couche 2 et quelles couches 2 elles supportent.", - "layer-2-onboard-exchange-2": "Vous aurez également besoin d'un portefeuille pour retirer vos fonds.", - "layer-2-onboard-find-a-wallet": "Trouver un portefeuille Ethereum.", - "layer-2-onboard-exchange-input-placeholder": "Vérifier les échanges qui prennent en charge la couche 2", - "layer-2-deposits": "Dépôts", - "layer-2-withdrawals": "Retraits", - "layer-2-go-to": "Aller à", - "layer-2-tools-title": "Outils à utiliser sur la couche 2", - "layer-2-tools-l2beat-description": "L2BEAT est un excellent site pour se documenter sur les risques techniques des projets des couches 2. Nous vous recommandons de vérifier sur ce site quand vous recherchez des projets spécifiques de couche 2.", - "layer-2-tools-growthepie-description": "Analyses organisées à propos des couches 2 Ethereum", - "layer-2-tools-ethereumecosystem-description": "Page non officielle de l'écosystème d'Ethereum et de ses couches de niveau 2, incluant Base, Optimism et Starknet, proposant des centaines de dApps et d'outils.", - "layer-2-tools-l2fees-description": "L2 Fees vous permet de voir le coût à un moment précis (en USD) pour réaliser des transactions sur les différentes couches 2.", - "layer-2-tools-chainlist-description": "Chainlist est un excellent site pour enregistrer des réseaux RPC sur votre portefeuille. Vous trouverez les RPC pour les projets de couche 2 afin de vous aider à vous y connecter.", - "layer-2-tools-zapper-description": "Gérez l'ensemble de votre portefeuille web3 de la DeFi aux NFT et quel que soit le projet. Investissez dans les dernières opportunités à partir d'un unique endroit.", - "layer-2-tools-zerion-description": "Construisez et gérez tout votre portefeuille DeFi à partir d'un seul endroit. Découvrez le monde de la finance décentralisée aujourd'hui.", - "layer-2-tools-debank-description": "Suivez tous les événements importants dans le monde web3", - "layer-2-faq-title": "FAQ", - "layer-2-faq-question-1-title": "Pourquoi n'y a-t-il pas de couche 2 'officielle' d'Ethereum ?", - "layer-2-faq-question-1-description-1": "Tout comme il n'y a pas de client Ethereum « officiel », il n'y a pas de couche 2 Ethereum « officielle ». Ethereum est sans permission - techniquement n'importe qui peut créer une couche 2 ! Plusieurs équipes implémenteront leur version d'une couche 2, et l'écosystème dans son ensemble bénéficiera d'une diversité d'approches de conception optimisées pour différents cas d'utilisation. Tout comme nous avons plusieurs clients Ethereum développés par plusieurs équipes afin d'avoir une diversité dans le réseau, ce sera aussi la façon dont les couches 2 se développeront à l'avenir.", - "layer-2-faq-question-2-title": "Quelle est la différence entre les Optimistic Rollups et les rollups ZK ?", - "layer-2-faq-question-2-description-1": "Les rollups optimisés et les rollups ZK regroupent des centaines de transactions en une seule transaction sur la couche 1. Les transactions des rollups sont exécutées en dehors de la couche 1 mais les données de transaction sont soumises sur celle-ci.", - "layer-2-faq-question-2-description-2": "La principale différence est de savoir quelles données sont soumises sur la couche 1 et comment les données sont vérifiées. Les preuves de validité (utilisées par les rollups ZK) exécutent les calculs hors chaîne et publient une preuve de leur validité, alors que les fault proof (utilisées par les rollups optimisés) exécutent les calculs sur la chaîne uniquement lorsqu'une faute est suspectée et qu'elle doit être vérifiée.", - "layer-2-faq-question-2-description-3": "Pour le moment, la plupart des zk-rollups sont spécifiques à une application, contrairement aux rollups optimistes qui ont pu être largement généralisés.", - "layer-2-more-info-on-optimistic-rollups": "Plus d'informations sur les rollups optimistes", - "layer-2-more-info-on-zk-rollups": "Plus d'informations sur les rollups sans connaissances", - "layer-2-faq-question-4-title": "Quels sont les risques de la couche 2 ?", - "layer-2-faq-question-4-description-1": "Les projets de couche 2 présentent des risques supplémentaires par rapport à la détention de fonds et à la réalisation de transactions directement sur le réseau principal Ethereum . Par exemple, les séquenceurs peuvent tomber en panne, vous obligeant à attendre pour accéder à vos fonds.", - "layer-2-faq-question-4-description-2": "Nous vous encourageons à faire vos propres recherches avant de transférer des fonds importants sur une couche 2. Pour plus d'information sur la technologie, les risques et les hypothèses de confiance d'une couche 2, nous vous recommandons de consulter L2BEAT, qui vous fournira un cadre complet d'évaluation des risques de chaque projet.", - "layer-2-faq-question-4-description-3": "Les ponts de blockchain, qui facilitent les transferts d'actifs sur la couche 2, sont à leurs premiers stades de développement et il est probable que leur conception ne soit pas encore optimale. Il y a eu deshacks de ponts récemment.", - "layer-2-faq-question-5-title": "Pourquoi certains projets de couche 2 ne sont-ils pas listés ici  ?", - "layer-2-faq-question-5-description-1": "Nous voulons nous assurer que nous répertorions les meilleures ressources possibles afin que les utilisateurs puissent naviguer dans l'espace de la couche 2 en toute sécurité et confiance. Nous maintenons un cadre de critères pour l'évaluation des projets en vue de leur inclusion.", - "layer-2-faq-question-5-view-listing-policy": "Consultez notre politique d'inclusion de la couche 2 ici.", - "layer-2-faq-question-5-description-2": "N'importe qui est libre de suggérer d'ajouter une couche 2 sur ethereum.org. S'il y a une couche 2 que nous avons manquée, s'il vous plaît suggérez-le ici.", - "layer-2-further-reading-title": "Complément d'information", - "a-rollup-centric-ethereum-roadmap": "Une feuille de route d'Ethereum centrée sur les rollups", - "an-incomplete-guide-to-rollups": "Un guide incomplet pour les rollups", - "polygon-sidechain-vs-ethereum-rollups": "Chaîne latérale Polygon vs rollups Ethereum : approches du passage à l'échelle par couche 2 | Vitalik Buterin et Lex Fridman", - "rollups-the-ultimate-ethereum-scaling-strategy": "Rollups - stratégie ultime de mise à l'échelle d'Ethereum ? Arbitrum & Optimism expliqués", - "scaling-layer-1-with-shard-chains": "Mise à l'échelle de la couche 1 à l'aide de chaînes de fragments", - "understanding-rollup-economics-from-first-principals": "Comprendre l'économie des rollups", - "arbitrum-description": "Arbitrum One est un rollup optimiste qui vise à donner le sentiment d'interagir directement avec Ethereum, mais avec des transactions qui coûtent une fraction de ce qu'elles coûteraient sur la couche 1.", - "optimism-description": "Optimism est un équivalent EVM du rollup optimiste, rapide, simple et sécurisé. Il met à l'échelle la technologie d'Ethereum tout en redimensionnant ses valeurs grâce au financement rétroactif des biens publics.", - "boba-description": "Boba est un rollup optimiste initialement dérivé de Optimism qui est une solution de mise à l'échelle qui vise à réduire les frais de gaz, améliorer le débit des transactions et étendre les capacités des contrats intelligents.", - "base-description": "Base est un L2 Ethereum sécurisé, bon marché et facile à utiliser pour les développeurs conçu pour apporter le prochain milliard d'utilisateur au web3. C'est un L2 Ethereum, incubé par Coinbase et conçu sur le projet open source OP Stack.", - "loopring-description": "La solution de rollup ZK L2 de Loopring vise à offrir les mêmes garanties de sécurité que le réseau principal Ethereum, avec une grande montée en charge : vitesse multipliée par 1000, et coût réduit à seulement 0,1 % du L1.", - "zksync-description": "ZKsync est un ZK Rollup qui vise à faire évoluer Ethereum et ses valeurs vers une adoption grand public, sans compromettre la sécurité ou la décentralisation.", - "zkspace-description": "La plateforme ZKSpace est constituée de 3 parties : un DEX AMM de couche 1 qui utiliser la technologie des ZK Rollups appelé ZKSwap, un service de paiement appelé ZKSquare, et une place de marche de NFTs appelée ZKSea.", - "aztec-description": "Aztec Network est le premier zk-rollup privé sur Ethereum,. Il permet aux applications décentralisées d'accéder à la confidentialité et de se développer.", - "starknet-description": "Starknet est un Validity Rollup de seconde couche. Il offre un débit élevé, des coûts de gaz faibles et conserve les niveaux de sécurité de la couche principale d'Ethereum.", - "layer-2-note": "Remarque :", - "layer-2-ecosystem-portal": "Portail de l'écosystème", - "layer-2-token-lists": "Listes de jetons", - "layer-2-explore": "Explorer", - "page-dapps-ready-button": "Aller", - "layer-2-information": "Information", - "layer-2-wallet-managers": "Gestionnaires de portefeuille" -} +{} diff --git a/src/intl/fr/page-learn.json b/src/intl/fr/page-learn.json index 61bbac7211a..688f1b74f65 100644 --- a/src/intl/fr/page-learn.json +++ b/src/intl/fr/page-learn.json @@ -10,9 +10,10 @@ "hero-header": "Découvrir Ethereum", "hero-subtitle": "Votre guide éducatif sur le monde d'Ethereum. Apprenez comment fonctionne Ethereum et comment s'y connecter. Cette page comprend des articles, des guides et des ressources techniques et non techniques.", "hero-button-lets-get-started": "C'est parti !", + "page-learn-meta-title": "Ethereum : un guide d’apprentissage complet", "what-is-crypto-1": "Vous avez peut-être entendu parler de cryptomonnaies, de blockchains et de Bitcoin. Les liens ci-dessous vous aideront à apprendre ce qu'ils sont et comment ils s'articulent avec Ethereum.", "what-is-crypto-2": "Les cryptomonnaies, comme le Bitcoin, permettent à n'importe qui de transférer de l'argent à l'échelle mondiale. Ethereum le permet également, mais il peut également exécuter du code qui permet aux gens de créer des applications et des organisations. Il est à la fois résilient et flexible : n'importe quel programme informatique peut être exécuté sur Ethereum. Apprenez-en davantage et découvrez comment commencer :", - "what-is-ethereum-card-title": "Qu'est-ce qu'Ethereum ?", + "what-is-ethereum-card-title": "Qu'est-ce qu'Ethereum ?", "what-is-ethereum-card-description": "Si vous êtes nouveau, commencez ici pour savoir pourquoi Ethereum est important.", "what-is-ethereum-card-image-alt": "Illustration d'une personne jetant un coup d'œil à un bazar, destinée à représenter Ethereum.", "what-is-eth-card-title": "Qu'est-ce que l'ETH ?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Trouver un portefeuille", "find-a-wallet-card-description": "Parcourez les portefeuilles en fonction des fonctionnalités qui sont importantes pour vous.", "find-a-wallet-button": "Liste des portefeuilles", - "crypto-security-basics-card-title": "Notions de sécurité", - "crypto-security-basics-card-description": "Apprenez comment identifier les arnaques et comment éviter les pièges les plus courants.", - "crypto-security-basics-card-button": "Rester en sécurité", + "ethereum-networks-card-title": "Réseaux Ethereum", + "ethereum-networks-card-description": "Économisez de l'argent en utilisant des extensions Ethereum moins chères et plus rapides.", + "ethereum-networks-card-button": "Choisir un réseau", "things-to-consider-banner-title": "Choses à considérer lors de l'utilisation d'Ethereum", "things-to-consider-banner-1": "Chaque transaction Ethereum nécessite des frais sous la forme d'ETH, même si vous avez besoin de déplacer différents jetons construits sur Ethereum comme les stablecoins USDC ou DAI.", "things-to-consider-banner-2": "Les frais peuvent être élevés en fonction du nombre de personnes essayant d'utiliser Ethereum, nous vous recommandons donc d'utiliser", diff --git a/src/intl/fr/page-run-a-node.json b/src/intl/fr/page-run-a-node.json index 6b1d35c831a..95f59f11418 100644 --- a/src/intl/fr/page-run-a-node.json +++ b/src/intl/fr/page-run-a-node.json @@ -111,6 +111,7 @@ "page-run-a-node-sovereignty-1": "Un portefeuille Ethereum vous permet de prendre et de garder le contrôle de vos actifs numériques en conservant les clés privées de vos adresses. Toutefois, ces clés ne vous indiquent pas l'état actuel de la blockchain, comme le solde de votre portefeuille.", "page-run-a-node-sovereignty-2": "Par défaut, les portefeuilles Ethereum interagissent généralement avec un nœud de tierce partie, telle qu'Infura ou Alchemy, lorsque vous consultez vos soldes. Exécuter votre propre nœud vous permet d'avoir votre propre copie de la blockchain Ethereum.", "page-run-a-node-title": "Exécuter un nœud", + "page-run-a-node-meta-title": "Comment faire tourner un nœud Ethereum", "page-run-a-node-voice-your-choice-title": "Exprimez votre voix", "page-run-a-node-voice-your-choice-preview": "Ne cédez pas le contrôle en cas de fourche.", "page-run-a-node-voice-your-choice-1": "En cas de fourche de la chaîne (deux chaînes émergeant avec deux ensembles de règles différents), exécuter votre propre nœud vous permet de choisir l'ensemble de règles vous soutenez. C'est à vous de mettre à niveau votre nœud vers les nouvelles règles et de soutenir les changements proposés, ou non.", diff --git a/src/intl/fr/page-stablecoins.json b/src/intl/fr/page-stablecoins.json index 1b37190d4ba..4dd2de666d0 100644 --- a/src/intl/fr/page-stablecoins.json +++ b/src/intl/fr/page-stablecoins.json @@ -131,6 +131,7 @@ "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Métaux précieux", "page-stablecoins-table-error": "Impossible de charger les stablecoins. Essayez de rafraîchir la page.", "page-stablecoins-title": "Stablecoins", + "page-stablecoins-meta-title": "Les Stablecoins expliqués : à quoi servent-ils ?", "page-stablecoins-top-coins": "Top des stablecoins par capitalisation boursière", "page-stablecoins-top-coins-intro": "La capitalisation boursière est", "page-stablecoins-top-coins-intro-code": "le nombre total de jetons qui existent, multiplié par la valeur d'un jeton. Cette liste évolue constamment et les projets énumérés ici ne sont pas nécessairement soutenus par l'équipe ethereum.org.", diff --git a/src/intl/fr/page-staking.json b/src/intl/fr/page-staking.json index 9f17ea7b1de..fcbe225b0f8 100644 --- a/src/intl/fr/page-staking.json +++ b/src/intl/fr/page-staking.json @@ -232,7 +232,7 @@ "page-staking-join-community": "Rejoignez la communauté des validateurs", "page-staking-join-community-desc": "EthStaker est une communauté permettant à chacun de discuter et d'en apprendre davantage sur la mise en jeu sur Ethereum. Rejoignez des dizaines de milliers de membres du monde entier pour obtenir des conseils, du soutien et pour parler de tout ce qui tourne autour de la mise en jeu.", "page-staking-meta-description": "Présentation de la mise en jeu sur Ethereum : les risques, les récompenses, les exigences et les lieux où le faire.", - "page-staking-meta-title": "Mise en jeu sur Ethereum", + "page-staking-meta-title": "Mise en jeu d'Ethereum : comment ça fonctionne ?", "page-staking-withdrawals-important-notices": "Informations importantes", "page-staking-withdrawals-important-notices-desc": "Les retraits ne sont pas encore disponibles. Veuillez lire la FAQ de Merge Eth2 et post-merge pour plus d'informations.", "page-upgrades-merge-btn": "Plus d'infos sur la fusion", diff --git a/src/intl/fr/page-wallets-find-wallet.json b/src/intl/fr/page-wallets-find-wallet.json index 0dfc8426126..5d548b1cf4a 100644 --- a/src/intl/fr/page-wallets-find-wallet.json +++ b/src/intl/fr/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Les portefeuilles stockent et font des transactions avec vos ETH. Vous pouvez choisir une multitude de produits qui correspondent à vos besoins.", "page-find-wallet-last-updated": "Dernière mise à jour", "page-find-wallet-meta-description": "Trouvez et comparez les portefeuilles Ethereum en fonction des fonctionnalités que vous souhaitez.", - "page-find-wallet-meta-title": "Trouver un portefeuille Ethereum", + "page-find-wallet-meta-title": "Liste des portefeuilles Ethereum | ethereum.org", "page-find-wallet-title": "Choisissez votre portefeuille", "page-find-wallet-try-removing": "Essayez de supprimer une ou deux fonctionnalités", "page-stake-eth": "Mettre en jeu de l'ETH", diff --git a/src/intl/fr/page-wallets.json b/src/intl/fr/page-wallets.json index 39d16978f6d..9219992e4fd 100644 --- a/src/intl/fr/page-wallets.json +++ b/src/intl/fr/page-wallets.json @@ -28,7 +28,7 @@ "page-wallets-manage-funds": "Une application pour gérer vos fonds", "page-wallets-manage-funds-desc": "Votre portefeuille montre vos soldes, l'historique des transactions et vous donne un moyen d'envoyer/recevoir des fonds. Certains portefeuilles peuvent en offrir plus.", "page-wallets-meta-description": "Ce que vous avez besoin de savoir pour utiliser des portefeuilles Ethereum.", - "page-wallets-meta-title": "Portefeuilles Ethereum", + "page-wallets-meta-title": "Portefeuilles Ethereum : acheter, stocker et envoyer des cryptomonnaies", "page-wallets-mobile": "Les applications mobiles qui rendent vos fonds accessibles depuis n'importe où", "page-wallets-more-on-dapps-btn": "En savoir plus sur les DApps", "page-wallets-most-wallets": "La plupart des produits de portefeuille vous permettront de générer un compte Ethereum. Vous n'en aurez donc pas besoin avant de télécharger un portefeuille.", diff --git a/src/intl/fr/page-what-is-ethereum.json b/src/intl/fr/page-what-is-ethereum.json index 2a3411cfb8c..97a655025d1 100644 --- a/src/intl/fr/page-what-is-ethereum.json +++ b/src/intl/fr/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "La raison pour laquelle les actifs tels que le Bitcoin et l'Ether sont appelé « cryptomonnaies » est que la sécurité de vos données et de vos actifs est garantie par la cryptographie, et non en ayant confiance dans une institution ou une société pour agir honnêtement.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum possède sa propre cryptomonnaie native, l'Ether (ETH), qui est utilisée pour payer certaines activités sur le réseau. Il peut être transféré à d'autres utilisateurs ou échangé contre d'autres jetons sur Ethereum. L'Ether est spécial parce qu'il est utilisé pour payer le calcul nécessaire pour construire et exécuter des applications et des organisations sur Ethereum.", "page-what-is-ethereum-summary-title": "Résumé", - "page-what-is-ethereum-summary-desc-1": "Ethereum est un réseau d'ordinateurs dispersés dans le monde entier qui suivent un ensemble de règles appelées le protocole Ethereum. Le réseau Ethereum sert de base aux communautés, aux applications, aux organisations et aux actifs numériques que n'importe qui peut construire et utiliser.", - "page-what-is-ethereum-summary-desc-2": "Vous pouvez créer un compte Ethereum depuis n'importe où, à tout moment, et explorer un monde d'applications ou construire les vôtres. L'innovation fondamentale est que vous pouvez faire tout cela sans faire confiance à une autorité centrale qui pourrait changer les règles ou restreindre votre accès.", - "page-what-is-ethereum-summary-desc-3": "Poursuivez votre lecture pour en savoir plus…", + "page-what-is-ethereum-summary-desc-1": "Ethereum est la plateforme principale de milliers d'applications et de blockchains, toutes alimentées par le protocole d'Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Cet écosystème dynamique stimule l'innovation et une large gamme d'applications et de services décentralisés.", + "page-what-is-ethereum-summary-bullet-1": "Comptes Ethereum gratuits et globaux", + "page-what-is-ethereum-summary-bullet-2": "Pseudo-privés, aucune information personnelle requise", + "page-what-is-ethereum-summary-bullet-3": "Sans restrictions, tout le monde peut participer", + "page-what-is-ethereum-summary-bullet-4": "Aucune entreprise ne possède Ethereum ni ne décide de son avenir", "page-what-is-ethereum-btc-eth-diff-title": "Quelle est la différence entre Ethereum et Bitcoin ?", "page-what-is-ethereum-btc-eth-diff-1": "Lancé en 2015, Ethereum s'appuie sur l'innovation offerte par Bitcoin, dont elle se distingue sur certains grands points.", "page-what-is-ethereum-btc-eth-diff-2": "Les deux technologies vous permettent d'utiliser de l'argent numérique sans fournisseurs de paiement ni banques. Mais Ethereum est programmable, donc vous pouvez également construire et déployer des applications décentralisées sur son réseau.", diff --git a/src/intl/fr/template-usecase.json b/src/intl/fr/template-usecase.json index e6e12afdeda..4cc466fa08d 100644 --- a/src/intl/fr/template-usecase.json +++ b/src/intl/fr/template-usecase.json @@ -2,6 +2,7 @@ "template-usecase-dropdown-defi": "Finance décentralisée (DeFi)", "template-usecase-dropdown-nft": "Jetons non fongibles (NFT)", "template-usecase-dropdown-dao": "Organisations Autonomes Décentralisées (DAO)", + "template-usecase-dropdown-payments": "Paiements Ethereum", "template-usecase-dropdown-social-networks": "Réseaux sociaux décentralisés", "template-usecase-dropdown-identity": "Identité décentralisée", "template-usecase-dropdown-desci": "La science décentralisée (DeSci)", @@ -10,4 +11,4 @@ "template-usecase-banner": "Les utilisations d'Ethereum sont en cours de développement et d'évolution. Si vous pensez à une information qui rendra les choses plus claires ou plus à jour, ajoutez la.", "template-usecase-edit-link": "Modifier la page", "template-usecase-dropdown-aria": "Menu déroulant du cas d'utilisation" -} +} \ No newline at end of file diff --git a/src/intl/ga/common.json b/src/intl/ga/common.json new file mode 100644 index 00000000000..45f86bba55d --- /dev/null +++ b/src/intl/ga/common.json @@ -0,0 +1,445 @@ +{ + "about-ethereum-org": "Maidir le ethereum.org", + "about-us": "Maidir linne", + "account-abstraction": "Astarraingt cuntais", + "acknowledgements": "Buíochas", + "adding-desci-projects": "Ag Cur Tionscadail Desci leis", + "adding-developer-tools": "Ag Cur Uirlisí Forbróra leis", + "adding-exchanges": "Malartáin a Chur Leis", + "adding-glossary-terms": "Téarmaí Gluaise a Chur Leis", + "adding-layer-2s": "Ciseal 2s a Chur Leis", + "adding-products": "Táirgí a Chur Leis", + "adding-staking-products": "Táirgí Staking a Chur Leis", + "adding-wallets": "Sparán a Chur Leis", + "aria-toggle-menu-button": "Scoránaigh an cnaipe roghchláir", + "aria-toggle-search-button": "Scoránaigh an cnaipe cuardaigh", + "beacon-chain": "Slabhra Beacon", + "bridges": "Droichid Bhlocshlabhra", + "bug-bounty": "Deolchaire fabhtanna", + "build": "Tógáil", + "build-menu": "Roghchlár a thógáil", + "clear": "Glan", + "close": "Dún", + "community": "Pobal", + "community-hub": "Mol pobail", + "community-menu": "Roghchlár Pobail", + "consensus-when-shipping": "Cathain a sheolfar é?", + "contact": "Brúigh Teagmháil", + "content-buckets": "Buicéid Inneachair", + "content-resources": "Acmhainní Inneachair", + "content-standardization": "Caighdeánú ábhar", + "contributing": "Ag rannchuidiú", + "contributors": "Rannpháirtithe", + "contributors-thanks": "Gach duine a chuidigh leis an leathanach seo - go raibh maith agaibh!", + "cookie-policy": "Beartas fianán", + "copied": "Cóipeáladh", + "copy": "Cóip", + "danksharding": "Danksharding", + "dao-page": "DAOnna - Eagraíochtaí féinrialaitheacha díláraithe", + "dark-mode": "Dorcha", + "data-provided-by": "Foinse sonraí:", + "decentralized-applications-dapps": "Dapps - Feidhmchláir díláraithe", + "decentralized-identity": "Féiniúlacht dhíláraithe", + "decentralized-science": "DeSci - Eolaíocht dhíláraithe", + "decentralized-social-networks": "Líonraí sóisialta díláraithe", + "defi-page": "DeFi - Airgeadas díláraithe", + "description": "Cur síos ar mhír nav", + "design": "Dearadh", + "design-principles": "Prionsabail Dearaidh", + "devcon": "Devcon", + "developers": "Forbróirí", + "developers-home": "Teach na forbróirí", + "docs": "Doiciméid", + "docsearch-error-help": "Seans gur mhaith leat do nasc líonra a sheiceáil.", + "docsearch-error-title": "Ní féidir torthaí a fháil", + "docsearch-no-results-missing": "An gcreideann tú gur cheart don cheist seo torthaí a thabhairt?", + "docsearch-no-results-missing-link": "Cuir in iúl dúinn.", + "docsearch-no-results-suggested-query": "Bain triail as cuardach le haghaidh", + "docsearch-no-results-text": "Gan torthaí le haghaidh", + "docsearch-search-by": "Cuardaigh de réir", + "docsearch-start-favorite-searches": "Is fearr leat", + "docsearch-start-no-recent-searches": "Ní dhearnadh aon chuardach le déanaí", + "docsearch-start-recent-searches-title": "Le déanaí", + "docsearch-start-remove-favorite-search": "Bain an cuardach seo de cheanáin", + "docsearch-start-remove-recent-search": "Bain an cuardach seo den stair", + "docsearch-start-save-recent-search": "Sábháil an cuardach seo", + "docsearch-to-close": "A dhúnadh", + "docsearch-to-navigate": "Chun nascleanúint a dhéanamh", + "docsearch-to-select": "A roghnú", + "documentation": "Doiciméadúchán", + "down": "Doiciméadúchán", + "ecosystem": "Éiceachóras", + "edit-page": "Cuir leathanach in eagar", + "ef-blog": "Blag Fhondúireacht Ethereum", + "eips": "Moltaí Feabhsúcháin Ethereum", + "energy-consumption": "Tomhaltas fuinnimh Ethereum", + "enterprise": "Fiontar", + "enterprise-mainnet": "Fiontar - Mainnet Ethereum", + "enterprise-menu": "Roghchlár Fiontraíochta", + "enterprise-private": "Fiontar - Ethereum Príobháideach", + "esp": "Clár Tacaíochta Éiceachórais", + "eth-current-price": "Praghas reatha ETH (USD)", + "ethereum": "Ethereum", + "ethereum-basics": "Bunrudaí Ethereum", + "ethereum-brand-assets": "Sócmhainní branda Ethereum", + "ethereum-bug-bounty": "Clár fabhtanna deolchaire Ethereum", + "ethereum-events": "Imeachtaí Ethereum", + "ethereum-foundation": "Fondúireacht Ethereum", + "ethereum-foundation-logo": "Lógó Fhondúireacht Ethereum", + "ethereum-glossary": "Gluais Ethereum", + "ethereum-governance": "Rialachas Ethereum", + "ethereum-logo": "Lógó Ethereum", + "ethereum-online": "Pobail ar líne", + "ethereum-protocol": "Prótacal Ethereum", + "ethereum-roadmap": "Léarscáil Ethereum", + "ethereum-security": "Slándáil Ethereum agus cosc ​​sceamála", + "ethereum-support": "Tacaíocht Ethereum", + "ethereum-upgrades": "Uasghrádú Ethereum", + "ethereum-wallets": "Sparáin Ethereum", + "ethereum-whitepaper": "Páipéar Bán Ethereum", + "events": "Imeachtaí", + "feedback-card-prompt-article": "An raibh an t-alt seo cabhrach?", + "feedback-card-prompt-page": "An raibh an leathanach seo cabhrach?", + "feedback-card-prompt-tutorial": "An raibh an rang teagaisc seo cabhrach?", + "feedback-widget": "Aiseolas", + "feedback-widget-prompt": "An bhfuil an leathanach seo cabhrach?", + "feedback-widget-thank-you-cta": "Oscail suirbhé gairid", + "feedback-widget-thank-you-subtitle": "Feabhsaigh an leathanach seo trí chúpla ceist a fhreagairt.", + "feedback-widget-thank-you-subtitle-ext": "Má tá cabhair uait, is féidir leat teagmháil a dhéanamh leis an bpobal ar Discord.", + "feedback-widget-thank-you-timing": "2–3 nóiméad", + "feedback-widget-thank-you-title": "Go raibh maith agat as do chuid aiseolais!", + "find-wallet": "Faigh sparán", + "from": "Ó", + "future-proofing": "Promhadh don todhchaí", + "get-eth": "Faigh ETH", + "get-involved": "Glac páirt", + "get-started": "Cuir tús leis", + "go-to-top": "Téigh go barr", + "grant-programs": "Cláir Deontais Éiceachórais", + "grants": "Deontais", + "guides": "Treoracha", + "guides-hub": "Treoracha feidhme", + "history-of-ethereum": "Stair Ethereum", + "home": "Baile", + "how-ethereum-works": "Conas a oibríonn Ethereum", + "how-to-create-an-ethereum-account": "Conas cuntas Ethereum a \"chruthú\"", + "how-to-revoke-token-access": "Conas rochtain chonartha cliste ar do chistí crypto a chúlghairm", + "how-to-swap-tokens": "Conas comharthaí a mhalartú", + "how-to-use-a-bridge": "Conas comharthaí a aistriú go ciseal 2", + "how-to-use-a-wallet": "Conas sparán a úsáid", + "image": "íomhá", + "in-this-section": "Sa roinn seo", + "individuals": "Daoine Aonair", + "jobs": "Poist", + "kraken-logo": "Lógó Kraken", + "language-am": "Amáiris", + "language-be": "Bealarúisis", + "language-ar": "Araibis", + "language-az": "Asarbaiseáinis", + "language-bg": "Bulgáiris", + "language-bn": "Beangáilis", + "language-bs": "Boisnis", + "language-ca": "Catalóinis", + "language-cs": "Seiceach", + "language-da": "Danmhairgis", + "language-de": "Gearmáinis", + "language-el": "Gréigis", + "language-en": "Béarla", + "language-es": "Spáinnis", + "language-fa": "Fairsis", + "language-fi": "Fionlainnis", + "language-fil": "Filipínis", + "language-fr": "Fraincis", + "language-gl": "Gailísis", + "language-gu": "Gúisearáitis", + "language-he": "Eabhrais", + "language-hi": "Hiondúis", + "language-hr": "Cróitis", + "language-hu": "Ungáiris", + "language-hy-am": "Airméinis", + "language-id": "Indinéisis", + "language-ig": "Íogbóis", + "language-it": "Iodáilis", + "language-ja": "Seapáinis", + "language-ka": "Seoirsis", + "language-kk": "Casaicis", + "language-km": "Ciméiris", + "language-kn": "Cannadais", + "language-ko": "Cóiréis", + "language-lt": "Liotuáinis", + "language-ml": "Mailéalaimis", + "language-mr": "Maraitis", + "language-ms": "Malaeis", + "language-nb": "Ioruais", + "language-ne-np": "Neipealais", + "language-nl": "Ollainnis", + "language-pcm": "Pidgin na Nigéire", + "language-pl": "Polainnis", + "language-pt": "Portaingéilis", + "language-pt-br": "Portaingéilis (An Bhrasaíl)", + "language-resources": "Acmhainní teanga", + "language-ro": "Rómáinis", + "language-ru": "Rúisis", + "language-se": "Sualainnis", + "language-sk": "Slóvaicis", + "language-sl": "Slóivéinis", + "language-sr": "Seirbis", + "language-support": "Tacaíocht teanga", + "language-sw": "Svahaílis", + "language-ta": "Tamailis", + "language-te": "Teileagúis", + "language-th": "Téalainnis", + "language-tk": "Tuircméinis", + "language-tr": "Tuircis", + "language-uk": "Úcráinis", + "language-ur": "Urdais", + "language-uz": "Úisbéiceastáinis", + "language-vi": "Vítneaimis", + "language-zh": "Sínis Shimplithe", + "language-zh-tw": "Sínis thraidisiúnta", + "languages": "Teangacha", + "last-24-hrs": "24 uair an chloig caite", + "last-edit": "Eagarthóireacht dheireanach", + "last-updated": "Nuashonrú is déanaí", + "layer-2": "Ciseal 2", + "learn": "Foghlaim", + "learn-by-coding": "Foghlaim trí chódú", + "learn-hub": "Mol Foghlama", + "learn-menu": "Roghchlár Foghlama", + "learn-more": "Foghlaim níos mó", + "less": "Níos lú", + "light-mode": "Solas", + "listing-policy-disclaimer": "Ní formhuinithe oifigiúla iad na táirgí go léir atá liostaithe ar an leathanach seo, agus cuirtear ar fáil iad chun críocha faisnéise amháin. Más mian leat táirge a chur leis nó aiseolas a sholáthar ar an bpolasaí ardaigh ceist in GitHub.", + "loading": "Á lódáil...", + "loading-error": "Earráid lódála.", + "loading-error-refresh": "Earráid, déan athnuachan le do thoil.", + "loading-error-try-again-later": "Ní féidir sonraí a lódáil. Déan iarracht eile ar ball.", + "logo": "lógó", + "mainnet-ethereum": "Mainnet Ethereum", + "merge": "Cumaisc", + "more": "Tuilleadh", + "nav-about-description": "Tionscadal poiblí foinse oscailte do phobal Ethereum", + "nav-advanced-description": "Foghlaim ábhair níos casta", + "nav-advanced-label": "Casta", + "nav-basics-description": "Bunphrionsabail Ethereum a thuiscint", + "nav-basics-label": "Bunphrionsabail", + "nav-bridges-description": "Tá Web3 tagtha chun cinn ina éiceachóras de bhlocshlabhraí L1 príomha agus réitigh scálaithe L2", + "nav-builders-home-description": "Lámhleabhar tógálaí le haghaidh Ethereum - arna chumadh ag tógálaithe, le díriú ar thógálaithe", + "nav-builders-home-label": "Teach tógálaí", + "nav-code-of-conduct": "Cód iompair", + "nav-contribute-description": "Más mian leat cabhrú, beidh sé seo mar threoir agat", + "nav-contribute-label": "Ag cur le ethereum.org", + "nav-dao-description": "Pobail faoi úinéireacht ball gan údarás láraithe", + "nav-dapps-description": "Cuir eolas ar réimse leathan aipeanna trí leas a bhaint as Ethereum", + "nav-defi-description": "Rogha domhanda, oscailte seachas an margadh airgeadais traidisiúnta", + "nav-desci-description": "Rogha domhanda, oscailte seachas an córas eolaíoch reatha", + "nav-desoc-description": "Ardáin atá bunaithe ar bhlocshlabhra le haghaidh idirghníomhú sóisialta agus cruthú ábhar", + "nav-developers": "Forbróirí", + "nav-developers-docs": "Doiciméid forbróirí", + "nav-did-description": "Eisiúint agus úinéireacht d'aitheantóirí díláraithe uathúla", + "nav-docs-description": "Doiciméid chun cabhrú leat Ethereum a thuiscint agus a thógáil", + "nav-docs-design-description": "Cur síos ar dhúshláin uathúla dearaidh Web3, na cleachtais is fearr agus léargais taighde úsáideoirí", + "nav-docs-design-label": "Bunphrionsabail dearaidh UX/UI", + "nav-docs-foundation-description": "Bunphrionsabail lárnacha le forbairt ar Ethereum", + "nav-docs-foundation-label": "Bunábhair", + "nav-docs-overview-description": "Do theach le haghaidh doiciméid forbróra", + "nav-docs-stack-description": "Tuiscint a fháil ar shonraí uile chruach Ethereum", + "nav-docs-stack-label": "Cruach Ethereum", + "nav-eip-description": "Caighdeáin a shonraíonn gnéithe nó próisis nua", + "nav-eip-label": "EIPeanna - tograí feabhsúcháin Ethereum", + "nav-emerging-description": "Cuir aithne ar chásanna úsáide nua eile do Ethereum", + "nav-emerging-label": "Cásanna úsáide atá ag teacht chun cinn", + "nav-ethereum-org-description": "Tá an suíomh Gréasáin seo faoi thiomáint ag an bpobal - bí linn agus rannchuidigh freisin", + "nav-ethereum-networks": "Líonraí Ethereum", + "nav-ethereum-networks-description": "Idirbhearta níos saoire agus níos tapúla do Ethereum", + "nav-ethereum-wallets-description": "Aip chun idirghníomhú le do chuntas Ethereum", + "nav-events-description": "Dílárú agus saoirse rannpháirtíochta do gach duine", + "nav-events-irl-description": "Gach mí tarlaíonn imeachtaí móra Ethereum i láthair go pearsanta agus ar líne", + "nav-events-label": "Pobail agus imeachtaí", + "nav-events-online-description": "Bailíonn na céadta mílte díograiseoirí Ethereum sna pobail seo ar líne", + "nav-find-wallet-description": "Ligeann sparán duit crypto a úsáid", + "nav-find-wallet-label": "Roghnaigh do sparán", + "nav-gas-fees-description": "Conas a ríomhtar táillí idirbhirt ETH", + "nav-gas-fees-label": "Táillí gáis", + "nav-get-eth-description": "Ní mór duit éitear (ETH) chun feidhmeanna Ethereum a úsáid", + "nav-get-started-description": "Do chéad chéimeanna chun Ethereum a úsáid", + "nav-governance-description": "An próiseas a bhaineann le prótacal Ethereum a uasghrádú", + "nav-governance-label": "Rialachas", + "nav-grants-description": "Liosta coimeádaithe ag ár bpobal ar thionscadail a sholáthraíonn cláir maoinithe deontais", + "nav-guide-create-account-description": "Is féidir le duine ar bith cuntas Ethereum a chruthú am ar bith, saor in aisce le haip sparáin", + "nav-guide-create-account-label": "Conas cuntas Ethereum a chruthú", + "nav-guide-overview-description": "Liosta de na treoracha go léir in aon áit amháin", + "nav-guide-revoke-access-description": "Bí sábháilte agus tú ag idirghníomhú le conarthaí cliste agus le hiarratais in éiceachóras Ethereum", + "nav-guide-revoke-access-label": "Conas rochtain ar chonradh cliste a chúlghairm", + "nav-guide-use-wallet-description": "Foghlaim conas na feidhmeanna bunúsacha go léir a bhaineann le sparán a oibriú", + "nav-guide-use-wallet-label": "Conas sparán a úsáid", + "nav-guides-description": "Treoracha praiticiúla céim ar chéim chun cabhrú leat tosú", + "nav-guides-label": "Treoracha úsáide", + "nav-history-description": "Amlíne de na príomhfhorcanna agus nuashonruithe", + "nav-history-label": "Stair theicniúil Ethereum", + "nav-learn-by-coding-description": "Uirlisí a chabhróidh leat triail a bhaint as Ethereum", + "nav-local-env-description": "Roghnaigh agus bunaigh do chruach forbartha Ethereum", + "nav-mainnet-description": "Is féidir iarratais ar bhlocshlabhra fiontair a thógáil ar phobal Ethereum Mainnet", + "nav-networks-home-description": "Idirbhearta níos saoire agus níos tapúla do Ethereum", + "nav-networks-introduction-label": "Réamhrá", + "nav-networks-introduction-description": "Tháinig forás ar Ethereum i measc líonra líonraí", + "nav-networks-explore-networks-label": "Cuir eolas ar líonraí", + "nav-networks-explore-networks-description": "Roghnaigh cén líonra a úsáidfidh tú", + "nav-networks-learn-label": "Cad iad líonraí ciseal 2?", + "nav-networks-learn-description": "Faigh amach cén fáth a dteastaíonn siad uainn", + "nav-nft-description": "Bealach chun aon rud uathúil a léiriú mar shócmhainn bunaithe ar Ethereum", + "nav-open-research-description": "Ceann de phríomhláidreachtaí Ethereum ná a phobal gníomhach taighde", + "nav-open-research-label": "Taighde oscailte", + "nav-overview-description": "Gach rud maidir le hoideachas Ethereum", + "nav-overview-label": "Forbhreathnú", + "nav-participate-overview-description": "Forbhreathnú ar conas a bheith rannpháirteach", + "nav-payments-description": "Le híocaíochtaí Ethereum tá athrú ag teacht ar an gcaoi a seoltar agus a bhfaightear airgead", + "nav-primary": "Bunleibhéal", + "nav-quizzes-description": "Faigh amach cé chomh maith agus a thuigeann tú Ethereum agus criptea-airgeadraí", + "nav-quizzes-label": "Déan do chuid eolais a thástáil", + "nav-refi-description": "Córas eacnamaíoch eile bunaithe ar phrionsabail athghiniúna", + "nav-research-description": "Próisis a úsáidtear chun Ethereum a fheabhsú", + "nav-research-label": "Taighde agus forbairt", + "nav-roadmap-description": "An bealach i dtreo inscálaitheachta, slándála agus inbhuanaitheachta breise le haghaidh Ethereum", + "nav-roadmap-future-description": "Ethereum a dhaingniú mar líonra láidir agus díláraithe", + "nav-roadmap-future-label": "Promhadh don todhchaí", + "nav-roadmap-future-proofing": "Promhadh don todhchaí", + "nav-roadmap-home": "Baile treochláir", + "nav-roadmap-label": "Treochlár", + "nav-roadmap-options": "Roghanna Treochláir", + "nav-roadmap-options-alt": "Roghchlár anuas roghanna treochlár", + "nav-roadmap-overview-description": "Todhchaí Ethereum", + "nav-roadmap-scaling": "Scálú", + "nav-roadmap-scaling-description": "Nuashonruithe líonra chun costais agus luas na n‑idirbheart a laghdú tuilleadh", + "nav-roadmap-scaling-label": "Idirbhearta níos saoire", + "nav-roadmap-security": "Slándáil níos fearr", + "nav-roadmap-security-description": "A chinntiú go bhfanann Ethereum athléimneach in aghaidh gach cineál ionsaithe sa todhchaí", + "nav-roadmap-security-label": "Slándáil fheabhsaithe", + "nav-roadmap-user-experience": "Taithí úsáideora níos fearr", + "nav-roadmap-ux-description": "Ní mór úsáid a bhaint as Ethereum a shimpliú", + "nav-roadmap-ux-label": "Taithí úsáideora níos fearr", + "nav-run-a-node-description": "Bí lán-cheannasach agus tú ag cabhrú le líonra a dhaingniú", + "nav-security-description": "Foghlaim na cleachtais is fearr agus tú ag úsáid criptea‑airgeadra ", + "nav-smart-contracts-description": "Na bloic bhunúsacha tógála d'éiceachóras Ethereum", + "nav-stablecoins-description": "Is comharthaí Ethereum iad Stablecoins atá deartha chun fanacht ar luach seasta", + "nav-stake-description": "Luaíochtaí a thuilleamh as Ethereum a chosaint", + "nav-stake-label": "Geall", + "nav-staking-home-description": "Forbhreathnú ar roghanna éagsúla le haghaidh geallta", + "nav-staking-home-label": "Baile an gheallchuir", + "nav-staking-pool-description": "Geall agus luaíochtaí a thuilleamh le haon mhéid ETH trí dhul i gcomhar le daoine eile", + "nav-staking-pool-label": "Geallta comhthiomsaithe", + "nav-staking-saas-description": "Láimhseálann oibreoirí nód tríú páirtí oibriú do chliaint bailíochtaithe", + "nav-staking-saas-label": "Geallchur le seirbhís", + "nav-staking-solo-description": "Úsáid chrua-earraí baile agus cuir le slándáil agus le dílárú líonra Ethereum ar bhonn pearsanta", + "nav-staking-solo-label": "Geallchur aonair", + "nav-start-building-description": "Eolas úsáideach do dhaoine nua", + "nav-translation-program-description": "Iarracht chomhoibríoch ethereum.org a aistriú go dtí gach teanga", + "nav-tutorials-description": "Liosta coimeádta de ranganna teagaisc pobail", + "nav-use-cases-description": "Faigh amach smaointe éagsúla maidir le húsáid Ethereum", + "nav-use-cases-label": "Cásanna úsáide", + "nav-what-is-ether-description": "Airgeadra na n-aipeanna Ethereum", + "nav-what-is-ethereum-description": "Bíodh tuiscint agat cén fáth go bhfuil Ethereum speisialta", + "nav-what-is-web3-description": "Rogha eile seachas monaplachtaí láraithe a leagann síos na rialacha", + "nav-what-is-web3-label": "Cad é Web3?", + "nav-whitepaper-description": "Páipéar bán bunaidh Ethereum a scríobh Vitalik Buterin in 2014", + "nav-zkp-description": "Bealach chun bailíocht ráitis a chruthú gan an ráiteas féin a nochtadh", + "nft-page": "NFTanna - Comharthaí neamh-inmhalartacha", + "nfts": "NFTanna", + "no": "Níl", + "on-this-page": "Ar an leathanach seo", + "open": "Oscail", + "open-research": "Taighde oscailte", + "page-developers-aria-label": "Roghchlár Forbróirí", + "page-index-meta-title": "Baile", + "page-languages-browser-default": "Réamhshocrú brabhsálaí", + "page-languages-filter-label": "Liosta scagaire", + "page-languages-filter-placeholder": "Clóscríobh go scagaire", + "page-languages-interested": "Ar mhaith leat a bheith rannpháirteach?", + "page-languages-learn-more": "Tuilleadh eolais faoinár gClár Aistriúcháin", + "page-languages-recruit-community": "Cabhraigh linn ethereum.org a aistriú.", + "page-languages-translated": "aistrithe", + "page-languages-want-more-header": "Ar mhaith leat ethereum.org a fheiceáil i dteanga eile?", + "page-languages-want-more-link": "Clár Aistriúcháin", + "page-languages-want-more-paragraph": "Bíonn aistritheoirí ethereum.org i gcónaí ag aistriú leathanach san oiread teangacha agus is féidir. Le féachaint ar an obair atá ar bun láthair acu nó chun clárú le bheith páirteach leo, léigh faoinár n-obair", + "page-languages-words": "focail", + "page-last-updated": "Nuashonrú is déanaí ar an leathanach", + "participate": "Rannpháirtíocht", + "participate-menu": "Roghchlár rannpháirtíochta", + "payments-page": "Íocaíochtaí", + "pbs": "Scaradh tairgeoir-tógálaí", + "pools": "Geallta comhthiomsaithe", + "privacy-policy": "Beartas príobháideachta", + "private-ethereum": "Ethereum príobháideach", + "product-disclaimer": "Tá táirgí agus seirbhísí liostaithe mar áis do phobal Ethereum. Ní hionann táirge nó seirbhís a chuimsiú agus faomhadh ó fhoireann láithreán Ghréasáin ethereum.org, nó ó Fhondúireacht Ethereum.", + "quizzes": "Tráth na gceist", + "quizzes-title": "Mol Tráth na gCeist", + "refresh": "Athnuaigh an leathanach le do thoil.", + "regenerative-finance": "ReFi - Airgeadas athghiniúnach", + "research": "Taighde", + "research-menu": "Roghchlár taighde", + "resources": "Acmhainní aistriúcháin", + "return-home": "Fill abhaile", + "roadmap": "Treochlár Ethereum", + "rollup-component-developer-docs": "Doiciméid forbróra", + "rollup-component-technology-and-risk-summary": "Achoimre teicneolaíochta agus riosca", + "rollup-component-website": "Láithreán Gréasáin", + "run-a-node": "Úsáid nód", + "saas": "Geallchur mar sheirbhís", + "scaling": "Scálú", + "search": "Cuardach", + "search-box-blank-state-text": "Cuardaigh leat!", + "search-eth-address": "Tá an chuma ar an scéal gur seoladh Ethereum é sin. Ní sholáthraímid sonraí a bhaineann go sonrach le seoltaí. Bain triail as a chuardach ar bhloc-taiscéalaí mar", + "search-ethereum-org": "Cuardaigh ethereum.org", + "search-no-results": "Níl aon torthaí ar do chuardach", + "secret-leader-election": "Toghchán rúnda ceannaire", + "security": "Slándáil", + "see-contributors": "Féach ar na rannpháirtithe", + "set-up-local-env": "Timpeallacht áitiúil a bhunú", + "sharding": "Roinnt", + "show-all": "Taispeáin gach rud", + "show-less": "Taispeáin níos lú", + "single-slot-finality": "Críochnaitheacht sliotáin aonair", + "site-description": "Is ardán domhanda, díláraithe é Ethereum le haghaidh airgid agus cineálacha nua feidhmchlár. Ar Ethereum, is féidir leat cód a scríobh a rialaíonn airgead, agus feidhmchláir a thógáil atá inrochtana áit ar bith ar domhan.", + "site-title": "ethereum.org", + "skip-to-main-content": "Téigh ar aghaidh chuig an bpríomhábhar", + "smart-contracts": "Conarthaí cliste", + "solo": "Geallchur aonair", + "stablecoins": "Stablecoins", + "stake-eth": "Geallchuir ETH", + "staking": "Geallchur", + "start-here": "Tosaigh anseo", + "statelessness": "Gan stát", + "style-guide": "Treoir stíle", + "support": "Tacaíocht", + "terms-of-use": "Téarmaí úsáide", + "translation-banner-body-new": "Tá tú ag féachaint ar an leathanach seo i mBéarla toisc nach bhfuil sé aistrithe againn fós. Cabhraigh linn an t‑ábhar seo a aistriú.", + "translation-banner-body-update": "Tá leagan nua den leathanach seo ann ach níl sé ar fáil ach i mBéarla faoi láthair. Cabhraigh linn an leagan is déanaí a aistriú.", + "translation-banner-button-see-english": "Féach Béarla", + "translation-banner-button-translate-page": "Aistrigh leathanach", + "translation-banner-no-bugs-content": "Níl an leathanach seo á aistriú. D’fhágamar an leathanach seo i mBéarla d’aon ghnó le tamall.", + "translation-banner-no-bugs-dont-show-again": "Ná taispeáin arís", + "translation-banner-no-bugs-title": "Níl aon fhabht anseo!", + "translation-banner-title-new": "Cabhraigh leis an leathanach seo a aistriú", + "translation-banner-title-update": "Cabhraigh leis an leathanach seo a nuashonrú", + "translation-program": "Clár Aistriúcháin", + "try-using-search": "Bain triail as cuardach a úsáid chun a bhfuil uait a fháil nó", + "tutorials": "Ranganna Teagaisc", + "up": "Suas", + "use": "Úsáid", + "use-ethereum": "Bain úsáid as Ethereum", + "use-ethereum-menu": "Bain úsáid as roghchlár Ethereum", + "use-menu": "Úsáid roghchlár", + "user-experience": "Taithí úsáideora", + "verkle-trees": "Crainn Verkle", + "wallets": "Sparán", + "we-couldnt-find-that-page": "Níorbh fhéidir linn an leathanach sin a aimsiú", + "web3": "Cad é Web3?", + "web3-title": "Web3", + "website-last-updated": "Nuashonrú is déanai ar an suíomh Gréasáin", + "what-is-ether": "Cad é éitear (ETH)?", + "what-is-ethereum": "Cad é Ethereum?", + "withdrawals": "Aistarraingtí geallchuir", + "wrapped-ether": "Éitear fillte", + "yes": "Tá", + "zero-knowledge-proofs": "Cruthúnais nialais-eolais" +} diff --git a/src/intl/ga/learn-quizzes.json b/src/intl/ga/learn-quizzes.json new file mode 100644 index 00000000000..703b7ce5978 --- /dev/null +++ b/src/intl/ga/learn-quizzes.json @@ -0,0 +1,610 @@ +{ + "add-quiz": "Cuir ceist/tráth na gceist leis", + "average-score": "Meánscór:", + "basics": "Bunúsacha Ethereum", + "basics-description": "Clúdaíonn an chuid seo na coincheapa bunúsacha de Ethereum, ag cinntiú go bhfuil bunús láidir agat.", + "completed": "Críochnaithe:", + "community-stats": "Staitisticí pobail", + "contribute": "Cur lenár leabharlann.", + "correct": "Ceart", + "explanation": "Míniú", + "next-question": "An chéad cheist eile", + "next-quiz": "An chéad tráth na gceist eile", + "question-number": "Uimhir na ceiste {{number}}:", + "page-assets-merge": "An Comhoiriúnú", + "passed": "D'éirigh leat sa tráth na gceist!", + "questions": "Ceisteanna", + "questions-answered": "Ceisteanna a freagraíodh:", + "quizzes-subtitle": "Faigh amach cé chomh maith agus a thuigeann tú Ethereum agus criptea-airgeadraí. An bhfuil tú réidh le bheith i do shaineolaí?", + "retry": "Ráta atriail:", + "score": "Scór", + "see-results": "Féach torthaí", + "share-results": "Comhroinn torthaí", + "start": "Tosaigh", + "submit-answer": "Seiceáil freagra", + "test-your-knowledge": "Tástáil do chuid eolais Ethereum", + "try-again": "Bain triail eile as", + "using-ethereum": "Úsáid Ethereum", + "using-ethereum-description": "Déan iniúchadh ar fheidhmchláir fíor-dhomhain Ethereum agus faigh amach conas atá an t-ardán blocshabhra réabhlóideach seo ag athmhúnlú tionscail. Is bealach iontach é seo chun a chinntiú go dtuigeann tú rudaí sách maith sula dtosaíonn tú ag úsáid criptea-airgeadraí go gníomhach.", + "want-more-quizzes": "An bhfuil fonn ort níos mó tráth na gceist a fheiceáil anseo?", + "your-results": "Do thorthaí", + "your-total": "Do phointí iomlána", + "what-is-ethereum-1-prompt": "Is é an difríocht is mó idir Ethereum agus Bitcoin:", + "what-is-ethereum-1-a-label": "Ní ligeann Ethereum duit íocaíochtaí a dhéanamh le daoine eile", + "what-is-ethereum-1-a-explanation": "Ligeann Bitcoin agus Ethereum duit íocaíochtaí a dhéanamh le daoine eile.", + "what-is-ethereum-1-b-label": "Is féidir leat cláir ríomhaire a reáchtáil ar Ethereum", + "what-is-ethereum-1-b-explanation": "Tá Ethereum in-ríomhchláraithe. Ciallaíonn sé seo gur féidir leat aon chlár ríomhaire a chur ar bhlocshlabhra Ethereum.", + "what-is-ethereum-1-c-label": "Is féidir leat cláir ríomhaire a reáchtáil ar Bitcoin", + "what-is-ethereum-1-c-explanation": "Murab ionann agus Ethereum, níl Bitcoin in-ríomhchláraithe agus ní féidir leis cláir ríomhaire treallach a rith.", + "what-is-ethereum-1-d-label": "Tá lógónna éagsúla acu", + "what-is-ethereum-1-d-explanation": "Tá lógónna éagsúla acu! Ach ní hé seo an difríocht is mó eatarthu.", + "what-is-ethereum-2-prompt": "Tugtar criptea-airgeadra dúchais Ethereum ar:", + "what-is-ethereum-2-a-label": "Ether", + "what-is-ethereum-2-a-explanation": "Is é éitear an criptea-airgeadra dúchasach don líonra Ethereum.", + "what-is-ethereum-2-b-label": "Ethereum", + "what-is-ethereum-2-b-explanation": "Is é Ethereum an blocshlabhra, ach ní thugtar Ethereum ar a airgeadra dúchais. Is míthuiscint choitianta é seo.", + "what-is-ethereum-2-c-label": "Ethercoin", + "what-is-ethereum-2-c-explanation": "Murab ionann agus go leor criptea-airgeadraí eile, níl an focal ‘mona’ i gciníochas dúchasach Ethereum.", + "what-is-ethereum-2-d-label": "Bitcoin", + "what-is-ethereum-2-d-explanation": "Ba é Bitcoin (cás Uachtair B) an chéad bhlocshlabhra a cruthaíodh, is é bitcoin (cás íochtair B) a criptea-airgeadra dúchais.", + "what-is-ethereum-3-prompt": "Cé a rialaíonn Ethereum?", + "what-is-ethereum-3-a-label": "Forbróirí", + "what-is-ethereum-3-a-explanation": "Tá forbróirí rí-thábhachtach chun Ethereum a thógáil agus a fheabhsú, ach ní hiad an grúpa a choinníonn Ethereum ar siúl.", + "what-is-ethereum-3-b-label": "Mianadóirí", + "what-is-ethereum-3-b-explanation": "Ní féidir mianadóireacht a dhéanamh ó cuireadh The Merge i bhfeidhm. Níl ‘mianadóirí’ ar Ethereum a thuilleadh.", + "what-is-ethereum-3-c-label": "Fondúireacht Ethereum", + "what-is-ethereum-3-c-explanation": "Níl aon ról suntasach ag Fondúireacht Ethereum i rith nóid Ethereum ó lá go lá.", + "what-is-ethereum-3-d-label": "Aon duine a ritheann nód", + "what-is-ethereum-3-d-explanation": "Is cuid ríthábhachtach de bhonneagar Ethereum é aon duine a ritheann nód. Mura bhfuil sin agat cheana, smaoinigh ar nód Ethereum a rith.", + "what-is-ethereum-4-prompt": "Ó seoladh Ethereum, cé mhéad uair a bhí an líonra as líne?", + "what-is-ethereum-4-a-label": "Riamh", + "what-is-ethereum-4-a-explanation": "Níl Ethereum imithe go hiomlán as líne riamh (stop sé bloic a tháirgeadh) ó seoladh é.", + "what-is-ethereum-4-b-label": "Uair amháin", + "what-is-ethereum-4-c-label": "Ceithre huaire", + "what-is-ethereum-4-d-label": "Níos mó ná deich n-uaire", + "what-is-ethereum-5-prompt": "Ídíonn Ethereum níos mó leictreachais ná:", + "what-is-ethereum-5-a-label": "Mianadóireacht óir", + "what-is-ethereum-5-a-explanation": "Úsáideann mianadóireacht óir ~131 uair an chloig Terawatt in aghaidh na bliana. Úsáideann Ethereum thart ar 0.0026 uair an chloig Terawatt in aghaidh na bliana.", + "what-is-ethereum-5-b-label": "Netflix", + "what-is-ethereum-5-b-explanation": "Úsáideann Netflix ~0.451 uair an chloig Terawatt in aghaidh na bliana. Úsáideann Ethereum thart ar 0.0026 uair an chloig Terawatt in aghaidh na bliana.", + "what-is-ethereum-5-c-label": "PayPal", + "what-is-ethereum-5-c-explanation": "Úsáideann PayPal ~0.26 uair an chloig Terawatt in aghaidh na bliana. Úsáideann Ethereum thart ar 0.0026 uair an chloig Terawatt in aghaidh na bliana.", + "what-is-ethereum-5-d-label": "Níl aon cheann díobh thuas", + "what-is-ethereum-5-d-explanation": "Úsáideann Ethereum thart ar 0.0026 uair an chloig Terawatt in aghaidh na bliana. Níos lú ná mianadóireacht Óir (~131 TWh/bl), Netflix (~0.451 TWh/bl), agus Paypal (~0.26 TWh/bl).", + "what-is-ether-1-prompt": "Tugtar ar éitear freisin:", + "what-is-ether-1-a-label": "ETC", + "what-is-ether-1-a-explanation": "Is é ETC an ticker do Ethereum Classic.", + "what-is-ether-1-b-label": "ETR", + "what-is-ether-1-b-explanation": "Ní ticear é ETR le haghaidh éitear nó aon criptea-airgeadra suntasach.", + "what-is-ether-1-c-label": "ETH", + "what-is-ether-1-c-explanation": "Is é ETH an ticear le haghaidh éitear ar Ethereum.", + "what-is-ether-1-d-label": "BTC", + "what-is-ether-1-d-explanation": "Is é BTC an ticeoir do bitcoin ar an líonra Bitcoin.", + "what-is-ether-2-prompt": "Ar Ethereum, íoctar táillí líonra i:", + "what-is-ether-2-a-label": "bitcoin", + "what-is-ether-2-a-explanation": "Is é “bitcoin” cás íochtair criptea-airgeadra dúchasach an líonra Bitcoin.", + "what-is-ether-2-b-label": "ETH", + "what-is-ether-2-b-explanation": "Is éitear (ETH) criptea-airgeadra dúchasach Ethereum. Íoctar gach táille líonra ar Ethereum in ETH.", + "what-is-ether-2-c-label": "USD", + "what-is-ether-2-c-explanation": "Ní féidir táillí líonra a íoc ar Ethereum i USD (Dollar SAM), nó ar aon airgeadra FIAT eile.", + "what-is-ether-2-d-label": "Ethereum", + "what-is-ether-2-d-explanation": "Is é Ethereum an líonra, ach íoctar táillí líonra Ethereum in ETH.", + "what-is-ether-3-prompt": "Cabhraíonn geall a chur ar Ethereum chun an líonra a dhaingniú mar:", + "what-is-ether-3-a-label": "Is féidir le geallghlacadóirí daoine a thoirmeasc mura dtaitníonn leo a bhfuil ar siúl acu", + "what-is-ether-3-a-explanation": "Níl geallghlacadóirí in ann úsáideoirí a chinsireacht go treallach.", + "what-is-ether-3-b-label": "Má dhéanann geallghlacadóír iarracht caimiléireacht a dhéanamh ar an líonra, tá an baol ann go gcaillfidh siad a ETH", + "what-is-ether-3-b-explanation": "Tá baol ann go gcaillfidh gealltóirí méid suntasach dá ETH má léirítear go bhfuil siad ag iompar go mailíseach i gcoinne an líonra. Tugtar slashing air seo.", + "what-is-ether-3-c-label": "Ritheann geallghlacadóirí ríomhairí cumhachtacha chun cruthúnas oibre a léiriú", + "what-is-ether-3-c-explanation": "Ní gá crua-earraí cumhachtacha a bheith ag geallghlacadóirí chun a ETH a chur i bhfeidhm. Stop Ethereum ag baint úsáide as cruthúnas-ar-obair ag The Merge.", + "what-is-ether-3-d-label": "Téann geallsealbhóirí faoi KYC sula nglactar leo mar bhailíochtóir", + "what-is-ether-3-d-explanation": "Tá rochtain ar Ethereum gan chead agus ní gá KYC.", + "what-is-ether-4-prompt": "Is féidir ETH a úsáid le haghaidh:", + "what-is-ether-4-a-label": "Táillí idirbheart a íoc ar Ethereum", + "what-is-ether-4-a-explanation": "Tá an freagra seo i bpáirt ceart, ach níl ann ach ceann amháin den iliomad rudaí ar féidir ETH a úsáid lena n-aghaidh.", + "what-is-ether-4-b-label": "Íocaíochtaí neamhchinsireachta idir piaraí", + "what-is-ether-4-b-explanation": "Tá an freagra seo i bpáirt ceart, ach níl ann ach ceann amháin den iliomad rudaí ar féidir ETH a úsáid lena n-aghaidh.", + "what-is-ether-4-c-label": "Comhthaobhacht le haghaidh iasachtaí criptithe", + "what-is-ether-4-c-explanation": "Tá an freagra seo i bpáirt ceart, ach níl ann ach ceann amháin den iliomad rudaí ar féidir ETH a úsáid lena n-aghaidh.", + "what-is-ether-4-d-label": "Gach ceann de rudaí na thuas", + "what-is-ether-4-d-explanation": "Ní féidir idirbhearta Ethereum a chinsireacht, ní mór do ETH aon idirbheart a dhéanamh ar Ethereum, agus tá sé ríthábhachtach do chobhsaíocht éiceachóras DeFi.", + "web3-1-prompt": "Ligeann Web3 d’úsáideoirí sócmhainní digiteacha a shealbhú trí:", + "web3-1-a-label": "Comharthaí", + "web3-1-a-explanation": "Soláthraíonn dearbháin bealach chun aonaid luacha atá idirmhalartaithe lena chéile, ar le cuntas Ethereum iad, a léiriú. Cé go léiríonn siad úinéireacht, tá níos mó bealaí ann chun sócmhainní digiteacha a bheith agat ar Ethereum.", + "web3-1-b-label": "NFTanna", + "web3-1-b-explanation": "Soláthraíonn NFTanna (Dearbháin neamh-inmhalartacha) bealach chun aon ní uathúil a léiriú mar shócmhainn bunaithe ar Ethereum. Cé go léiríonn siad úinéireacht, tá níos mó bealaí ann chun sócmhainní digiteacha a bheith agat ar Ethereum.", + "web3-1-c-label": "ENS", + "web3-1-c-explanation": "Is seirbhís díláraithe ainmnithe é ENS (Seirbhís Ainm Ethereum) don Ethereum blockchain. Cé go léiríonn siad úinéireacht, tá níos mó bealaí ann chun sócmhainní digiteacha a bheith agat ar Ethereum.", + "web3-1-d-label": "Gach ceann de rudaí na thuas", + "web3-1-d-explanation": "Soláthraíonn na roghanna go léir bealaí chun sócmhainní digiteacha a bheith agat ar Ethereum. Is bealaí iad comharthaí, NFTanna, agus ENS chun úinéireacht sócmhainní digiteacha a léiriú.", + "web3-2-prompt": "Bhí Web1 inléite amháin, Web2 léamh-scríobh, tá cur síos ar Web3 mar:", + "web3-2-a-label": "léamh-scríobh-díol", + "web3-2-a-explanation": "Níl cur síos déanta ar Web3 ar an mbealach seo.", + "web3-2-b-label": "léigh-scríobh-stóráil", + "web3-2-b-explanation": "Níl cur síos déanta ar Web3 ar an mbealach seo.", + "web3-2-c-label": "léamh-scríobh-féin", + "web3-2-c-explanation": "Ligeann Web3 d’úsáideoirí úinéireacht a bheith acu ar a gcuid sonraí agus mar sin tá cur síos air mar ‘léamh-scríobh sealbhaigh’, feabhas ar bith ar Web2s, nach bhfuil ann ach ‘léigh-scríobh’.", + "web3-2-d-label": "léigh-scríobh-ceannaigh", + "web3-2-d-explanation": "Níl cur síos déanta ar Web3 ar an mbealach seo.", + "web3-3-prompt": "Cén atriall den ghréasán nach bhfuil ag brath ar sholáthraithe íocaíochta tríú páirtí?", + "web3-3-a-label": "Web1", + "web3-3-a-explanation": "Ní raibh íocaíochtaí dúchasacha, ionsuite ag Web1.", + "web3-3-b-label": "Web2", + "web3-3-b-explanation": "Níl íocaíochtaí dúchasacha, ionsuite ag Web2.", + "web3-3-c-label": "Web3", + "web3-3-c-explanation": "Tá íocaíochtaí dúchasacha, ionsuite ag Web3 le criptea-airgeadra, mar ETH.", + "web3-3-d-label": "Gach ceann de rudaí na thuas", + "web3-3-d-explanation": "Níl íocaíochtaí dúchasacha, ionsuite ag Web1 agus Web2.", + "web3-4-prompt": "Ceapadh an téarma ‘Web3’ ar dtús ag:", + "web3-4-a-label": "Gavin Wood", + "web3-4-a-explanation": "Tá sé curtha chun sochair do Gavin Wood, comhbhunaitheoir Ethereum, an téarma Web3 a cheapadh go gairid tar éis Ethereum a sheoladh in 2015.", + "web3-4-b-label": "Steve Jobs", + "web3-4-b-explanation": "Níor chum Steve Jobs an frása ‘Web3’.", + "web3-4-c-label": "Vitalik Buterin", + "web3-4-c-explanation": "Cé gur bunaitheoir bunaidh Ethereum é Vitalik Buterin, níor cheap sé an abairt 'Web3'.", + "web3-4-d-label": "Elon Musk", + "web3-4-d-explanation": "Níor cheap Elon Musk an téarma ‘Web3’.", + "web3-5-prompt": "Is féidir logáil isteach amháin atá frithchinsireachta a bheith agat ar fud an ghréasáin ar fad trí úsáid a bhaint as:", + "web3-5-a-label": "Sínigh isteach le Facebook", + "web3-5-a-explanation": "Níl síniú isteach le Facebook frithsheasmhach in aghaidh na cinsireachta.", + "web3-5-b-label": "Sínigh isteach le Google", + "web3-5-b-explanation": "Níl síniú isteach le Google frithsheasmhach in aghaidh na cinsireachta.", + "web3-5-c-label": "Sínigh isteach le Ethereum", + "web3-5-c-explanation": "Is é síniú isteach le Ethereum an t-aon rogha atá in aghaidh na cinsireachta agus inúsáidte ar aon fheidhmchlár gréasáin.", + "web3-5-d-label": "Sínigh isteach le Twitter", + "web3-5-d-explanation": "Níl síniú isteach le Twitter frithsheasmhach in aghaidh na cinsireachta.", + "wallets-1-prompt": "Is é an cineál sparán is sábháilte:", + "wallets-1-a-label": "Sparán soghluaiste", + "wallets-1-a-explanation": "Coinníonn sparán soghluaiste eochracha príobháideacha ar ghléas soghluaiste, a bhfuil naisc leis an idirlíon de ghnáth aige, agus a d’fhéadfadh a bheith i mbaol ó bhogearraí eile.", + "wallets-1-b-label": "Sparán crua-earraí", + "wallets-1-b-explanation": "Stóráiltear eochracha príobháideacha sparán crua-earraí ar ghléas tiomnaithe is féidir a choinneáil den idirlíon agus atá scoite amach ó fheidhmchláir eile ar do ghléasanna.", + "wallets-1-c-label": "Sparán gréasáin", + "wallets-1-c-explanation": "Tá níos lú slándála ag sparán Gréasáin ná sparán crua-earraí toisc go stóráiltear na heochracha príobháideacha ar ghléas atá nasctha leis an Idirlíon.", + "wallets-1-d-label": "Sparán deisce", + "wallets-1-d-explanation": "Coinníonn sparán deisce eochracha príobháideacha ar thiomántán crua ríomhaire, a bhfuil naisc aige leis an idirlíon go hiondúil, agus a d’fhéadfadh a bheith i gcontúirt ag bogearraí eile.", + "wallets-2-prompt": "Conas ba chóir duit do fhrása síolta a stóráil?", + "wallets-2-a-label": "Ar ghrianghraf ar do ghuthán", + "wallets-2-a-explanation": "Ní hé seo an rogha is sábháilte. Má dhéantar an grianghraf seo a uaslódáil chuig an stóras néal, ansin faigheann haiceálaí an íomhá seo agus faigheann sé rochtain ar do chuntas.", + "wallets-2-b-label": "I comhad ar do ríomhaire", + "wallets-2-b-explanation": "Ní hé seo an rogha is sláine. Tá hacairí ag lorg faisnéise a bhaineann le criptea-airgeadra níos minice ar ghléasanna spriocdhírithe. Má fhaigheann hacaire rochtain ar an gcomhad ina bhfuil do fhrása síl, beidh siad in ann rochtain a fháil ar do chuntas.", + "wallets-2-c-label": "I dteachtaireacht téacs chuig ball teaghlaigh iontaofa", + "wallets-2-c-explanation": "Níor cheart duit do chuid frása síl a théacsáil chuig aon duine riamh. D’fhéadfadh tríú páirtí an teachtaireacht a idircheapadh, agus fiú má tá muinín iomlán agat as an duine seo, níl a fhios agat cé a fhéadfaidh rochtain a fháil ar a ghuthán.", + "wallets-2-d-label": "Níl aon cheann díobh thuas", + "wallets-2-d-explanation": "Ba chóir do frása síl a stóráil ar bhealach slán, go hidéalach as líne. Is minic a mholtar é a scríobh ar pháipéar ar an gcúis seo, ach is rogha maith eile iad bainisteoirí pasfhocal slán.", + "wallets-3-prompt": "Cé dó ar cheart duit d’fhrása síl / eochracha príobháideacha a thabhairt?", + "wallets-3-a-label": "Duine éigin atá á íoc agat", + "wallets-3-a-explanation": "Níor cheart duit d’fhrása síl ná d’eochracha príobháideacha a thabhairt d’aon duine riamh. Ina áit sin, seol dearbháin chuig a seoladh sparán trí idirbheart.", + "wallets-3-b-label": "Chun logáil isteach ar dapp nó sparán", + "wallets-3-b-explanation": "Níor cheart duit d'hrása síol / eochracha príobháideacha a thabhairt riamh chun logáil isteach ar do sparán nó dapp.", + "wallets-3-c-label": "Foireann tacaíochta", + "wallets-3-c-explanation": "Níor cheart duit do shíolfhrása/eochracha príobháideacha a thabhairt riamh d’aon duine a mhaíonn gur foireann tacaíochta iad. Is scamóir é aon duine a iarrann ort é seo a dhéanamh.", + "wallets-3-d-label": "Aon duine", + "wallets-3-d-explanation": "Go hidéalach, níor cheart duit do chuid frása síl nó eochracha príobháideacha a thabhairt do dhuine ar bith. Má tá muinín agat as duine éigin a bhfuil rochtain iomlán aige ar do chistí (amhail céile), féadfaidh tú cinneadh a dhéanamh an fhaisnéis seo a roinnt leo.", + "wallets-4-prompt": "Is ionann iad sparán agus cuntas ar Ethereum.", + "wallets-4-a-label": "Fíor", + "wallets-4-a-explanation": "Is comhéadan amhairc é sparán a úsáidtear chun idirghníomhú le cuntas Ethereum.", + "wallets-4-b-label": "Bréagach", + "wallets-4-b-explanation": "Is comhéadan amhairc é sparán a úsáidtear chun idirghníomhú le cuntas Ethereum.", + "security-1-prompt": "Cén fáth ar chóir duit pasfhocail uathúla a úsáid le haghaidh do chuntais go léir?", + "security-1-a-label": "I gcás go bhfuil sárú sonraí ar cheann de na hardáin", + "security-1-a-explanation": "Tá an freagra seo ceart, ach tá freagraí cearta eile ann freisin.", + "security-1-b-label": "Ar eagla go n-oibreoidh duine ag breathnú thar do ghualainn amach do phasfhocal", + "security-1-b-explanation": "Tá an freagra seo ceart, ach tá freagraí cearta eile ann freisin.", + "security-1-c-label": "Ar eagla go ngoidfidh malware, ar nós logálaí eochrach, do phasfhocal", + "security-1-c-explanation": "Tá an freagra seo ceart, ach tá freagraí cearta eile ann freisin.", + "security-1-d-label": "Gach ceann de rudaí na thuas", + "security-1-d-explanation": "Tá gach freagra ceart. Is é pasfhocail uathúla an bealach is fearr le cosc ​​a chur ar aon duine eile rochtain a fháil ar do chuntas.", + "security-2-prompt": "Tar éis The Merge, ní mór ETH a uasghrádú go ETH2.", + "security-2-a-label": "Fíor", + "security-2-a-explanation": "Ní gá duit do ETH a uasghrádú go ETH2. Níl aon ETH2 ann agus is scéal coitianta é seo a úsáideann scamóirí.", + "security-2-b-label": "Bréagach", + "security-2-b-explanation": "Ní gá duit do ETH a uasghrádú go ETH2. Níl aon ETH2 ann agus is scéal coitianta é seo a úsáideann scamóirí.", + "security-3-prompt": "Is iad bronntanais ETH:", + "security-3-a-label": "Bealach maith chun níos mó ETH a fháil", + "security-3-a-explanation": "Is camscéimeanna iad bronntanais ETH atá deartha chun do ETH agus dearbháin eile a ghoid. Ní bealach maith iad riamh chun níos mó ETH a fháil.", + "security-3-b-label": "I gcónaí fíor", + "security-3-b-explanation": "Ní bhíonn bronntanais ETH fíor riamh.", + "security-3-c-label": "Is iad baill fheiceálach an phobail a dhéanann é go coitianta", + "security-3-c-explanation": "Ní thugann baill shuntasacha pobail bronntanais ETH. Ligeann scammers orthu go bhfuil daoine aonair a bhfuil aithne mhaith acu orthu, ar nós Elon Musk, ag tabhairt bronntanais chun braistint dlisteanachta a thabhairt don scam.", + "security-3-d-label": "Is dócha gur scéim cham é", + "security-3-d-explanation": "Is camscéimeanna iad bronntanais ETH i gcónaí. Is fearr scamóirí a thuairisciú agus neamhaird a dhéanamh orthu.", + "security-4-prompt": "Tá idirbhearta Ethereum inchúlaithe.", + "security-4-a-label": "Fíor", + "security-4-a-explanation": "Ní féidir idirbhearta Ethereum a aisiompú. Seans go bhfuil aon duine a insíonn a mhalairt duit ag iarraidh tú a scamadh.", + "security-4-b-label": "Bréagach", + "security-4-b-explanation": "Ní féidir idirbhearta Ethereum a aisiompú. Seans go bhfuil aon duine a insíonn a mhalairt duit ag iarraidh tú a scamadh.", + "nfts-1-prompt": "Is é an cur síos is cuimsithí ar NFTanna ná:", + "nfts-1-a-label": "sócmhainní digiteacha uathúla", + "nfts-1-a-explanation": "Is sócmhainn dhigiteach uathúil iad NFTanna.", + "nfts-1-b-label": "saothar ealaíne digiteach", + "nfts-1-b-explanation": "Sócmhainn dhigiteach uathúil atá i NFTanna, is saothar ealaíne digiteach é seo de ghnáth, ach níl sé teoranta don ealaín.", + "nfts-1-c-label": "ticéid chuig imeachtaí eisiacha", + "nfts-1-c-explanation": "Sócmhainn dhigiteach uathúil atá i NFTanna, d’fhéadfadh gur córas ticéadaithe é seo, ach níl sé teoranta do thicéid.", + "nfts-1-d-label": "conarthaí atá ceangailteach ó thaobh dlí", + "nfts-1-d-explanation": "Cé go bhféadfaí conradh dlíthiúil a léiriú mar NFT, níl NFTanna eisiach do chonarthaí atá ceangailteach ó thaobh dlí.", + "nfts-2-prompt": "Is ionann dhá NFT a ionadaíonn an saothar ealaíne céanna.", + "nfts-2-a-label": "Fíor", + "nfts-2-a-explanation": "Tá NFTanna neamh-inmhalartacha. Ciallaíonn sé seo, fiú má léiríonn siad an píosa ealaíne digiteach, go bhfuil siad fós inaitheanta uathúil. I saol na healaíne traidisiúnta, d'fhéadfadh sé seo a bheith cosúil le bunphriontaí agus le priontaí.", + "nfts-2-b-label": "Bréagach", + "nfts-2-b-explanation": "Tá NFTanna neamh-inmhalartacha. Ciallaíonn sé seo, fiú má léiríonn siad an píosa ealaíne digiteach, go bhfuil siad fós inaitheanta uathúil. I saol na healaíne traidisiúnta, d'fhéadfadh sé seo a bheith cosúil le bunphriontaí agus le priontaí.", + "nfts-3-prompt": "Léiríonn na NFTanna is coitianta:", + "nfts-3-a-label": "An focal faire chuig do sparán", + "nfts-3-a-explanation": "Is riosca slándála é seo agus go ginearálta is drochsmaoineamh é!", + "nfts-3-b-label": "Úinéireacht ar mhír dhigiteach uathúil", + "nfts-3-b-explanation": "Is gnách go léiríonn NFTanna úinéireacht ar mhír dhigiteach uathúil.", + "nfts-3-c-label": "D'iarmhéid ETH reatha", + "nfts-3-c-explanation": "Ní féidir le NFTanna d'iarmhéid ETH a léiriú go treallach.", + "nfts-3-d-label": "Gach ceann de rudaí na thuas", + "nfts-3-d-explanation": "Is gnách go léiríonn NFTanna úinéireacht ar mhír dhigiteach uathúil, ní iarmhéideanna ETH ná pasfhocail sparán.", + "nfts-4-prompt": "Chuidigh NFTanna le ceann nua a chruthú:", + "nfts-4-a-label": "geilleagar coimeádaí", + "nfts-4-a-explanation": "Chabhraigh NFTanna le geilleagar nua a chruthú do chruthaitheoirí, ní do choimeádaithe.", + "nfts-4-b-label": "geilleagar carbóin", + "nfts-4-b-explanation": "Chuidigh NFTanna le geilleagar nua a chruthú do chruthaitheoirí, ní carbóin.", + "nfts-4-c-label": "geilleagar cruthaitheoir", + "nfts-4-c-explanation": "Chuidigh NFTanna le geilleagar cruthaitheachta a chruthú.", + "nfts-4-d-label": "geilleagar doge", + "nfts-4-d-explanation": "Chabhraigh NFTanna le geilleagar nua a chruthú do chruthaitheoirí, ní do mhadraí 🐶.", + "nfts-5-prompt": "Tá NFTanna ar Ethereum díobhálach don chomhshaol", + "nfts-5-a-label": "Fíor", + "nfts-5-a-explanation": "Ó The Merge (aistriú go cruthúnas-geallta), is beag an tionchar a bhí ag aon idirbheart ar an gcomhshaol.", + "nfts-5-b-label": "Bréagach", + "nfts-5-b-explanation": "Ó The Merge (aistriú go cruthúnas-geallta), is beag an tionchar a bhí ag aon idirbheart ar an gcomhshaol.", + "rollups-1-prompt": "Tá líonraí blocshlabhra sraith 2 le haghaidh:", + "rollups-1-a-label": "Scálú Ethereum", + "rollups-1-a-explanation": "Is é príomhchuspóir rolladh agus réitigh ciseal 2 eile ná Ethereum a scálaiú.", + "rollups-1-b-label": "Íocaíochtaí a dhéanamh", + "rollups-1-b-explanation": "Is é príomhchuspóir rolladh agus réitigh ciseal 2 eile ná Ethereum a scálaiú.", + "rollups-1-c-label": "NFTanna a cheannach", + "rollups-1-c-explanation": "Is é príomhchuspóir rolladh agus réitigh ciseal 2 eile ná Ethereum a scálaiú.", + "rollups-1-d-label": "Ethereum a dhílárú", + "rollups-1-d-explanation": "Is é príomhchuspóir rolladh agus réitigh ciseal 2 eile ná Ethereum a scálaiú.", + "rollups-2-prompt": "De réir scála, rinne an chuid is mó de líonraí malartacha ciseal 1 íobairt go príomha ar:", + "rollups-2-a-label": "Slándáil", + "rollups-2-a-explanation": "Déanann an chuid is mó de na líonraí eile de Chiseal 1 íobairt ar shlándáil agus ar rud éigin eile chun scála a dhéanamh.", + "rollups-2-b-label": "Dílárú", + "rollups-2-b-explanation": "Déanann formhór na ngréasán malartach de Chiseal 1 íobairt ar dhílárú agus ar rud éigin eile chun scála a dhéanamh.", + "rollups-2-c-label": "Praghas dearbháin", + "rollups-2-c-explanation": "Níl aon tionchar ag praghas dhearbháin ar chumas scálaithe.", + "rollups-2-d-label": "Slándáil agus dílárú", + "rollups-2-d-explanation": "Déanann an chuid is mó de na líonraí malartacha ciseal 1 íobairt ar shlándáil agus ar dhílárú araon chun scála a dhéanamh.", + "rollups-3-prompt": "Cé acu díobh seo a leanas nach meastar gur ciseal 2 iad?", + "rollups-3-a-label": "Validiums", + "rollups-3-a-explanation": "Ní mheastar gur réitigh ciseal 2 iad Validiums toisc nach dtagann siad ó thaobh slándála ná infhaighteacht sonraí ó Ethereum. Ní hé seo an t-aon fhreagra ceart.", + "rollups-3-b-label": "Taobhshlabhraí", + "rollups-3-b-explanation": "Ní mheastar gur réitigh ciseal 2 iad taobhshlabhraí toisc nach bhfaigheann siad slándáil nó infhaighteacht sonraí ó Ethereum. Ní hé seo an t-aon fhreagra ceart.", + "rollups-3-c-label": "Ciseal malartach 1 blocshlabhraí", + "rollups-3-c-explanation": "Ní mheastar gur réitigh ciseal 2 iad blocshlabhraí ciseal 1 eile. Ní hé seo an t-aon fhreagra ceart.", + "rollups-3-d-label": "Gach ceann de rudaí na thuas", + "rollups-3-d-explanation": "Ní mheastar gur réitigh ciseal 2 iad Validiums, Taobhshlabhraí, agus blocshlabhraí ciseal 1 eile toisc nach dtagann siad ó shlándáil nó infhaighteacht sonraí ó Ethereum.", + "rollups-4-prompt": "Cén fáth nach bhfuil ciseal ‘oifigiúil’ 2 ag Ethereum?", + "rollups-4-a-label": "Tá forbróirí lárnacha ró-ghnóthach ag obair ar Ethereum", + "rollups-4-a-explanation": "Níl aon phleananna ann do chiseal 2 ‘oifigiúil’ ar Ethereum mar bainfimid leas as raon leathan cur chuige maidir le réitigh ciseal 2 a dhearadh.", + "rollups-4-b-label": "Mar L1, bainfidh Ethereum scála mór leis féin sa deireadh", + "rollups-4-b-explanation": "Níl aon phleananna ann do chiseal 2 ‘oifigiúil’ ar Ethereum mar bainfimid leas as raon leathan cur chuige maidir le réitigh ciseal 2 a dhearadh.", + "rollups-4-c-label": "Tá príomhfhorbróirí fós i mbun díospóireachta idir dóchasach agus zk-rollups", + "rollups-4-c-explanation": "Níl aon phleananna ann do chiseal 2 ‘oifigiúil’ ar Ethereum mar bainfimid leas as raon leathan cur chuige maidir le réitigh ciseal 2 a dhearadh.", + "rollups-4-d-label": "Bainfidh Ethereum leas as raon leathan cur chuige maidir le L2 a dhearadh", + "rollups-4-d-explanation": "Níl aon phleananna ann do chiseal 2 ‘oifigiúil’ ar Ethereum mar bainfimid leas as raon leathan cur chuige maidir le réitigh ciseal 2 a dhearadh.", + "merge-1-prompt": "Ar athraíodh a ionad an Merge Ethereum go dtí an meicníocht chomhthoil?", + "merge-1-a-label": "Cruthúnas-ar-obair", + "merge-1-a-explanation": "Cruthúnas oibre an mheicníocht chomhthoil a úsáideadh roimh The Merge.", + "merge-1-b-label": "Cruthúnas-de-geall", + "merge-1-b-explanation": "Ceart! D'aistrigh an Cumasc Ethereum chuig cruthúnais-gheallta.", + "merge-1-c-label": "Cruthúnas-de-údarás", + "merge-1-c-explanation": "Ní dhéanann Ethereum, agus níor úsáid sé cruthúnas údaráis ar Ethereum Mainnet.", + "merge-1-d-label": "Gach ceann de rudaí na thuas", + "merge-1-d-explanation": "Ní bheadh ​​​​sé indéanta go mbeadh na meicníochtaí comhthola seo go léir ag Ethereum láithreach.", + "merge-2-prompt": "Laghdaigh an Merge tomhaltas fuinnimh Ethereum mar a leanas:", + "merge-2-a-label": "50%", + "merge-2-a-explanation": "Laghdaíodh tomhaltas fuinnimh Ethereum 99.95% tar éis The Merge a chumasú an t-aistriú ó chruthúnas oibre go cruthúnais-gheallta.", + "merge-2-b-label": "62.5%", + "merge-2-b-explanation": "Laghdaíodh tomhaltas fuinnimh Ethereum 99.95% tar éis The Merge a chumasú an t-aistriú ó chruthúnas oibre go cruthúnais-gheallta.", + "merge-2-c-label": "90%", + "merge-2-c-explanation": "Laghdaíodh tomhaltas fuinnimh Ethereum 99.95% tar éis The Merge a chumasú an t-aistriú ó chruthúnas oibre go cruthúnais-gheallta.", + "merge-2-d-label": "99.95%", + "merge-2-d-explanation": "Laghdaíodh tomhaltas fuinnimh Ethereum 99.95% tar éis The Merge a chumasú an t-aistriú ó chruthúnas oibre go cruthúnais-gheallta.", + "merge-3-prompt": "Cathain a tharla An Cumasc?", + "merge-3-a-label": "15ú Meán Fómhair 2022", + "merge-3-a-explanation": "Tharla an Cumasc ar an 15ú Meán Fómhair 2022 ag 06:42:42 (UTC).", + "merge-3-b-label": "1ú Nollaig 2020", + "merge-3-b-explanation": "Tharla an Cumasc níos déanaí ná seo. Ba é 1ú Nollaig 2020 nuair a seoladh an Beacon Chain.", + "merge-3-c-label": "27ú Samhain 2013", + "merge-3-c-explanation": "Tharla an Cumasc níos déanaí ná seo. Ba é 27 Samhain, 2013 nuair a eisíodh páipéar bán Ethereum.", + "merge-3-d-label": "31ú Deireadh Fómhair 2008", + "merge-3-d-explanation": "Tharla an Cumasc níos déanaí ná seo. Is é 31ú Deireadh Fómhair an lá a eisíodh an Bitcoin Whitepaper.", + "merge-4-prompt": "Chiallaigh an Cumasc go raibh ar úsáideoirí a ETH a mhalartú le haghaidh ETH2:", + "merge-4-a-label": "Fíor", + "merge-4-a-explanation": "Níor athraigh ETH ag aon phointe roimh, le linn, nó tar éis The Merge. Bhí an smaoineamh ar ETH a ‘uasghrádú’ go ETH2 ina bheart choitianta ag gníomhaithe mailíseacha chun camscéimeanna a dhéanamh.", + "merge-4-b-label": "Bréagach", + "merge-4-b-explanation": "Níor athraigh ETH ag aon phointe roimh, le linn, nó tar éis The Merge. Bhí an smaoineamh ar ETH a ‘uasghrádú’ go ETH2 ina bheart choitianta ag gníomhaithe mailíseacha chun camscéimeanna a dhéanamh.", + "merge-5-prompt": "Tugadh an t-ainm seo a leanas ar chiseal comhdhearcadh Ethereum roimhe seo:", + "merge-5-a-label": "Cruthúnas-ar-obair", + "merge-5-a-explanation": "Cruthúnas oibre an mheicníocht chomhthoil a úsáideadh roimh The Merge.", + "merge-5-b-label": "Eth2", + "merge-5-b-explanation": "Sular athainmníodh an ciseal comhthoil, tugadh ‘Eth2’ air ar dtús.", + "merge-5-c-label": "Eth1", + "merge-5-c-explanation": "Ba é Eth1 an t-ainm bunaidh a tugadh ar an gciseal forghníomhaithe, ní an ciseal comhthoil.", + "merge-5-d-label": "Geallchur", + "merge-5-d-explanation": "Tá Staking ag taisceadh ETH isteach i gconradh cliste chun cabhrú leis an slabhra a dhaingniú.", + "daos-1-prompt": "Cad atá fíor faoi DAOs?", + "daos-1-a-label": "Tá DAOanna faoi chomhúinéireacht trí dhearbháin rialachais", + "daos-1-a-explanation": "Tá DAOanna faoi chomhúinéireacht, ach ní hé sin an t-aon ráiteas ceart.", + "daos-1-b-label": "Tá siad á rialú ag a gcomhaltaí", + "daos-1-b-explanation": "Tá DAOanna á rialú ag a mbaill, ach ní hé sin an t-aon ráiteas ceart.", + "daos-1-c-label": "Tá siad ag obair i dtreo misean comhroinnte", + "daos-1-c-explanation": "Tá DAOanna ag obair i dtreo misean comhroinnte, ach ní hé sin an t-aon ráiteas ceart.", + "daos-1-d-label": "Gach ceann de rudaí na thuas", + "daos-1-d-explanation": "Ceart, is eagraíocht faoi úinéireacht chomhchoiteann, arna rialú ag blocshlabhra í DAO a oibríonn i dtreo misean comhroinnte.", + "daos-2-prompt": "Cad iad na samplaí praiticiúla den chaoi ar féidir DAO a úsáid?", + "daos-2-a-label": "Prótacail díláraithe, vótálann baill ar cheisteanna an phrótacail nó conas an táirge a fhorbairt", + "daos-2-a-explanation": "Sampla amháin is ea DAOanna Prótacail, ach níl DAOanna teoranta dó sin.", + "daos-2-b-label": "Comhúinéireacht, m.sh., le haghaidh NFTanna nó sócmhainní fisiceacha", + "daos-2-b-explanation": "Sampla amháin is ea DAOanna an Bhailitheora, ach níl DAOanna teoranta dó sin.", + "daos-2-c-label": "Comhfhiontair agus deontais, comhthiomsú caipitil agus vótáil ar thionscadail le maoiniú", + "daos-2-c-explanation": "Sampla amháin is ea fiontair nó deontais, ach níl DAOanna teoranta dó sin.", + "daos-2-d-label": "Gach ceann de rudaí na thuas", + "daos-2-d-explanation": "Féadfaidh an iliomad 'misin' a bheith ag DAO.", + "daos-3-prompt": "Murab ionann agus eagraíochtaí traidisiúnta, tá DAOanna…", + "daos-3-a-label": "De ghnáth ordlathach", + "daos-3-a-explanation": "Is gnách go mbíonn OCCanna cothrom, agus daonlathaithe go hiomlán.", + "daos-3-b-label": "Trédhearcach agus go hiomlán poiblí faoina gcuid gníomhaíochtaí", + "daos-3-c-label": "Rialaithe ag páirtí lárnach", + "daos-3-c-explanation": "Teastaíonn vótáil ó na comhaltaí chun athruithe a dhéanamh. Déantar na seirbhísí a thairgtear a láimhseáil go huathoibríoch ar bhealach díláraithe.", + "daos-3-d-label": "Srianta maidir le cé atá in ann athruithe a mholadh", + "daos-3-d-explanation": "De ghnáth, is féidir le gach ball DAO athruithe a mholadh.", + "daos-4-prompt": "Cad atá riachtanach maidir le conarthaí cliste le haghaidh DAO?", + "daos-4-a-label": "Is féidir an cód conartha cliste a mhodhnú", + "daos-4-a-explanation": "Nuair a bheidh an conradh beo ar Ethereum, ní féidir le duine ar bith na rialacha a athrú ach amháin trí vóta. Ligeann sé seo don DAO feidhmiú de réir na rialacha a raibh sé cláraithe leo.", + "daos-4-b-label": "Tá úinéir aonair aige a choinníonn an t-údarás chun athruithe a dhéanamh agus a sheoladh ón státchiste.", + "daos-4-b-explanation": "Tá an státchiste sainithe ag an gconradh cliste. Chun airgead a chaitheamh, tá gá le ceadú an ghrúpa.", + "daos-4-c-label": "Muinín as comhdhearcadh dáilte an blocshlabhra bhunúsach", + "daos-4-c-explanation": "Tá sé tábhachtach do DAO nach féidir an blockchain bhunúsach a ionramháil. Tá comhdhearcadh Ethereum féin scaipthe agus bunaithe go leor chun go bhféadfaidh eagraíochtaí muinín a bheith acu as an líonra.", + "daos-4-d-label": "Níl conarthaí cliste ag teastáil ó DAOanna", + "daos-4-d-explanation": "Is é cnámh droma DAO a chonradh cliste, a shainíonn rialacha na heagraíochta agus a shealbhaíonn státchiste an ghrúpa.", + "daos-5-prompt": "Cad nach meicníocht é chun DAO a rialú?", + "daos-5-a-label": "Ballraíocht chomhartha-bhunaithe", + "daos-5-a-explanation": "Úsáidtear rialachas bunaithe ar chomharthaí go forleathan. Is gnách go mbíonn sé gan chead agus de ghnáth úsáidtear é chun prótacail leathana díláraithe agus/nó comharthaí iad féin a rialú.", + "daos-5-b-label": "Ballraíocht scair-bhunaithe", + "daos-5-b-explanation": "Tá níos mó ceadaithe ag DAOanna scairbhunaithe ach fós oscailte go leor. Is féidir le haon chomhalta ionchasach togra a chur isteach chun dul isteach san DAO, de ghnáth ag tairiscint ómós de luach éigin i bhfoirm dearbháin nó saothar.", + "daos-5-c-label": "Ballraíocht bunaithe ar cháil", + "daos-5-c-explanation": "Murab ionann agus ballraíocht atá bunaithe ar chomharthaí nó scaireanna, ní aistríonn DAOanna atá bunaithe ar cháil úinéireachta chuig rannpháirtithe. Ní mór do bhaill an DAO clú a thuilleamh trí rannpháirtíocht.", + "staking-solo-1-prompt": "Cé acu atá fíor faoi shlaiseáil?", + "staking-solo-1-a-label": "Pionós as a bheith as líne, atosóidh luaíochtaí nuair a bheidh tú ar ais ar líne", + "staking-solo-1-a-explanation": "NÍL slaiseáil mar thoradh ar a bheith as líne. Tabhaítear pionóis bheaga as a bheith as líne, agus atosóidh luach saothair nuair a fhilleann an bailíochtóir ar líne agus nuair a atosaíonn sé fianuithe.", + "staking-solo-1-b-label": "Pionós as a bheith as líne, bailíochtóir toirmiscthe láithreach ó fhianú arís", + "staking-solo-1-b-explanation": "NÍL sleasáil mar thoradh ar a bheith as líne. Cé go mbeidh toirmeasc ar an bhailitheoir fianú a dhéanamh arís de bharr sleasáil agus go gcuirfear as go láidir é ar deireadh thiar, NACH n-aistreofar ón líonra as líne.", + "staking-solo-1-c-label": "Pionós mar gheall ar rialacha comhthola ar leith a bhriseadh, atosóidh luach saothair tar éis slaiseáil", + "staking-solo-1-c-explanation": "Pionós tromchúiseach is ea slaiseáil as rialacha sonracha comhthola a bhriseadh a chuireann an líonra i mbaol. Mar sin, a luaithe a ghearrtar bailíochtóir, cuirtear cosc ​​láithreach air tuilleadh a fhianú, agus sa deireadh déantar iad a dhíbirt go héigeantach ón líonra agus tarraingítear siar an ETH atá fágtha don úinéir.", + "staking-solo-1-d-label": "Pionós mar gheall ar rialacha sonracha comhdhearcadh a bhriseadh, tá cosc ​​​​ar bhailitheoir láithreach fianú arís", + "staking-solo-1-d-explanation": "Pionós tromchúiseach is ea slaiseáil as rialacha sonracha comhthola a bhriseadh a chuireann an líonra i mbaol. Mar sin, a luaithe a ghearrtar bailíochtóir, cuirtear cosc ​​láithreach air tuilleadh a fhianú, agus sa deireadh déantar iad a dhíbirt go héigeantach ón líonra agus tarraingítear siar an ETH atá fágtha don úinéir.", + "staking-solo-2-prompt": "Cad a tharlaíonn má théann bailíochtóir as líne?", + "staking-solo-2-a-label": "Gan aon tionchar ar luaíochtaí", + "staking-solo-2-a-explanation": "Tabhaítear pionóis nuair nach mbíonn bailíochtóir ar fáil chun staid an tslabhra a fhianú d’aon ré ar leith. Is ionann méid na bpionós seo agus 75% den luach a bheadh ​​ar fhianú ceart. Atosóidh luach saothair nuair a théann an bailíochtóir ar ais ar líne, agus NÍL aon slaiseadh.", + "staking-solo-2-b-label": "Ní thabhaítear pionóis neamhghníomhaíochta ach amháin nuair nach mbíonn siad ar fáil", + "staking-solo-2-b-explanation": "Cé nach bhfuil sé ar fáil, tabhóidh bailíochtóir pionóis bheaga neamhghníomhaíochta, arb ionann iad agus 75% den luach a bheadh ​​ar fhianú ceart. I gcásanna neamhchoitianta/fíorchúiseacha nach bhfuil an líonra á thabhairt chun críche (i.e. tá níos mó ná 1/3 den líonra as líne freisin), bíonn na pionóis seo i bhfad níos airde. Atosóidh luach saothair nuair a théann bailíochtóir ar ais ar líne, agus ní tharlaíonn aon slais.", + "staking-solo-2-c-label": "Slaiseáil láithreach agus a bhaint as an líonra", + "staking-solo-2-c-explanation": "Is míthuiscint choitianta é seo, ach NÍL slaiseáil mar thoradh ar dhul as líne! Is cineál sonrach pionóis é slaiseáil i leith cion níos tromchúisí, le pionóis níos mó agus baintear as an tacar bailíochtaithe é freisin.", + "staking-solo-2-d-label": "Moille seachtaine amháin roimh slaiseáil agus díshealbhú", + "staking-solo-2-d-explanation": "NÍ thagann slaiseáil as líne, fiú tar éis tréimhse fhada ama. D’fhéadfadh bailíochtóir a bheith as líne go teoiriciúil ar feadh blianta gan é a bheith gearrtha, cé go ngearrfaí pionóis neamhghníomhaíochta mura n-imíonn an bailíochtóir.", + "staking-solo-3-prompt": "Cad é an t-uaschothromaíocht éifeachtach atá ag bailíochtóir?", + "staking-solo-3-a-explanation": "Fágtar bailíochtóirí a thiteann go hiarmhéid éifeachtach 16 ETH amach go huathoibríoch as an Slabhra Beacon.", + "staking-solo-3-b-explanation": "32 Is é ETH an ETH íosta is gá chun bailíochtóir nua a ghníomhachtú, agus freisin an t-uas-chothromaíocht éifeachtach (meáchan vótaí) don bhailíochtóir sin. Is féidir luach saothair os cionn 32 a fhabhrú, ach ní chuireann an t-iarmhéid sin le meáchan vótála na mbailitheoirí ar an líonra agus ní mhéadaítear luach saothair.", + "staking-solo-3-c-label": "Athraitheach ag brath ar an oibreoir", + "staking-solo-3-c-explanation": "Baineann na rialacha comhaontaithe go cothrom le gach cuntas bailíochtóra agus níl siad ag brath ar an duine a oibríonn an nód. Is é 32 ETH an t-iarmhéid uasta éifeachtach de na bailíochtóirí go léir.", + "staking-solo-3-d-label": "Gan teorainn", + "staking-solo-3-d-explanation": "Tá gach cuntas bailíochtóra teoranta d'iarmhéid éifeachtach 32 ETH, rud a chuireann teorainn le cumhacht iomlán aon bhailitheoir aonair ar an líonra. Cuireann sé seo teorainn freisin ar an méid ETH is féidir a chur i ngeall nó gan a bheith i gceist i dtréimhse ama ar leith, de réir mar a phróiseáiltear gníomhachtúcháin agus bealaí amach bailíochtaithe trí scuaine ráta-teoranta.", + "staking-solo-4-prompt": "Cé acu NACH luach saothair a fhaightear mar bhailitheoir?", + "staking-solo-4-a-label": "Bloc luaíocht", + "staking-solo-4-a-explanation": "Faigheann bailíochtaithe luach saothair i bhfoirm eisiúint ETH nua as bloc bailí a mholadh nuair a roghnaíonn an prótacal iad go randamach. Tá na luach saothair seo ar leithligh ó na táillí agus MEV a thuilltear freisin nuair a bhíonn bloic á moladh.", + "staking-solo-4-b-label": "Leideanna táillí / MEV", + "staking-solo-4-b-explanation": "Déantar leideanna táillí (cuid neamhdhóite na dtáillí) agus tuilleamh MEV a dháileadh ar an moltóir bloc (gealltóir / bailíochtóir) trí sheoladh faighteoir na dtáillí a sholáthraíonn an bailíochtóir sin. Tá na luach saothair seo ar leithligh ón luach saothair a thuilltear freisin nuair a bhíonn bloic á moladh.", + "staking-solo-4-c-label": "Luaíocht fianaithe ceann slabhra", + "staking-solo-4-c-explanation": "Faigheann bailíochtaithe luach saothair i bhfoirm eisithe nua ETH as fianú i gceart agus go pras ar cheann an tslabhra, an ceann ré a bhfuil údar leis faoi láthair, agus an ceann ré reatha críochnaithe.", + "staking-solo-4-d-label": "Táillí trádála Uniswap", + "staking-solo-4-d-explanation": "Ní fhaigheann bailíochtaithe Ethereum táillí trádála a ghineann ardáin trádála agus malartuithe.", + "staking-solo-5-prompt": "Cén Aga fónaimh atá ag teastáil le go mbeidh bailíochtóir brabúsach?", + "staking-solo-5-a-label": "100%", + "staking-solo-5-a-explanation": "Cé gur sprioc iontach é, ní hionann 100% aga fónaimh a bhaint amach an t-íosriachtanas do bhailíochtóir fanacht brabúsach.", + "staking-solo-5-b-label": "~99%", + "staking-solo-5-b-explanation": "Cé gur sár-sprioc é, níl baint amach 99% aga fónaimh ar an íosriachtanas do bhailíochtóir fanacht brabúsach.", + "staking-solo-5-c-label": "~50%", + "staking-solo-5-c-explanation": "Gearrtar pionós ar bhailitheoirí thart ar 75% den mhéid a bhfaigheadh ​​siad luach saothair as mar is ceart agus go pras chun staid an tslabhra a fhianú. Ciallaíonn sé seo go ceann tréimhse áirithe ama, toisc go mbeidh 50% den am sin as líne fós glanbhrabúsach, cé go mbeidh sé níos lú brabúsaí ná bailíochtóir atá ar fáil níos iontaofa.", + "staking-solo-5-d-label": "~25%", + "staking-solo-5-d-explanation": "Tabhóidh bailíochtóir nach bhfuil aige ach 25% aga fónaimh pionóis don 75% eile den am. Mar gheall ar an méid céanna luach saothair agus pionós, a bheith as líne ar feadh 3x beidh an méid ama ar líne mar thoradh ar chaillteanas glan ETH don tréimhse ama sin.", + "staking-solo-6-prompt": "Cé acu díobh seo a leanas NACH bhfuil ina chion inslaiseála?", + "staking-solo-6-a-label": "A bheith as líne", + "staking-solo-6-a-explanation": "Go simplí, ní bhíonn sleasáil mar thoradh ar a bheith as líne. Beidh pionóis bheaga neamhghníomhaíochta mar thoradh air, ach beidh sé ag fianú arís agus tú ar líne arís.", + "staking-solo-6-b-label": "Ag moladh agus ag síniú dhá bhloc dhifriúla don sliotán céanna", + "staking-solo-6-b-explanation": "Cuireann sé seo i mbaol sláine an líonra agus beidh sé mar thoradh ar slashing agus díshealbhú as an líonra.", + "staking-solo-6-c-label": "Ag fianú do bhloc a ‘timpeall’ ceann eile (ag athrú na staire go héifeachtach)", + "staking-solo-6-d-label": "‘Vótáil dhúbailte’ trí fhianú a dhéanamh ar bheirt iarrthóirí don bhloc céanna", + "staking-solo-7-prompt": "Cé acu bealach NACH é chun do bhailitheoir a chosaint nó a chosc ó bheith gearrtha?", + "staking-solo-7-a-label": "Seachain socruithe atá ró-iomarcach, agus ná stóráil do chuid eochracha ach le cliant bailíochtaithe amháin ag an am", + "staking-solo-7-a-explanation": "Is ó oibreoirí a stórálann a n-eochracha sínithe ar níos mó ná meaisín amháin, mar chúltaca iomarcach, a thagann formhór na slaiseadh go dtí seo. Tá an-riosca ag baint leis seo, mar go bhféadfadh vótáil dhúbailte agus slaiseadh a bheith mar thoradh ar aon mhífheidhm.", + "staking-solo-7-b-label": "Rith bogearraí cliant mar atá gan an cód a athrú tú féin", + "staking-solo-7-b-explanation": "Scríobhtar agus déantar tástáil ar bhogearraí na gcliant chun cosaint a thabhairt ar ghníomhartha inslaiseálta. Chun gníomh inslaiseálta a dhéanamh, de ghnáth bheadh ​​gá le cód an chliaint a athrú duit féin ar bhealach mailíseach.", + "staking-solo-7-c-label": "Reáchtáil cliant atá á úsáid ag tromlach na mbailitheoirí eile", + "staking-solo-7-c-explanation": "Má úsáideann tú an cliant céanna le tromlach an chuid eile den líonra, cuirtear i mbaol tú a bheith slaiseálta i gcás fabht bogearraí sa chliant sin. Cosnaíonn reáchtáil cliant mionlaigh ina aghaidh seo.", + "staking-solo-7-d-label": "Díchumasaigh an bailíochtóir ar feadh 2-4 ré sula n-aistrítear eochracha chuig meaisín nua", + "staking-solo-7-d-explanation": "Ligeann sé seo go mbeidh am agat an slabhra a thabhairt chun críche agus do nód as líne, chun aon bhaol a bhaineann le vótáil dhúbailte thimpiste agus le slaiseáil le linn imirce eochrach a íoslaghdú.", + "staking-solo-8-prompt": "Cé acu NACH bhfuil ag teastáil chun íocaíochtaí luaíochta / aistarraingtí páirteacha a fháil?", + "staking-solo-8-a-label": "Seoladh aistarraingthe forghníomhaithe a sholáthar aon uair amháin", + "staking-solo-8-a-explanation": "Teastaíonn é seo uair amháin le haghaidh an phróisis aistarraingthe chun fios a bheith aige cá háit ar cheart aon chistí ciseal comhthoil a sheoladh", + "staking-solo-8-b-label": "Ag cothromaíocht éifeachtach de 32 ETH", + "staking-solo-8-b-explanation": "Ní mór d'iarmhéid éifeachtach a uasmhéadú ag 32 ETH sula gcuirfear tús le haon aistarraingtí páirteach.", + "staking-solo-8-c-label": "Ag iarmhéid iomlán os cionn 32 ETH", + "staking-solo-8-c-explanation": "Caithfidh luach saothair os cionn 32 ETH a bheith ag d’iarmhéid iomlán chun aon aistarraingtí páirteacha a spreagadh.", + "staking-solo-8-d-label": "Méid aistarraingthe iarrtha a chur isteach leis an íocaíocht gáis", + "staking-solo-8-d-explanation": "Nuair a chomhlíontar na critéir eile, déantar íocaíochtaí luaíochta go huathoibríoch. Ní gá d’fhaighteoirí idirbheart a chur isteach nó gás a íoc. Tá an méid a tarraingíodh siar cothrom le hiarmhéid an bhailíochtóra os cionn 32. Ní féidir méideanna saincheaptha a iarraidh.", + "scaling-1-prompt": "Cé acu díobh seo a leanas a úsáideann Ethereum de réir scála?", + "scaling-1-a-label": "Rollálacha Ciseal 2", + "scaling-1-a-explanation": "Cuidíonn siad seo le scála Ethereum trí idirbhearta a chuachadh, iad a fhorghníomhú, agus ansin na torthaí a phostáil chuig Ethereum le haghaidh bailíochtaithe agus daingnithe. I measc na samplaí nó rollups tá Arbitrum nó Dóchas. Ní hé seo an t-aon bhealach a bhfuil Ethereum scálú.", + "scaling-1-b-label": "Proto-Danksharding", + "scaling-1-b-explanation": "Soláthraíonn sé seo rogha stórála sealadach agus neamhchostasach chun sonraí rollta suas a shábháil ar Mainnet, atá freagrach faoi láthair as thart ar 90% den chostas a bhíonn ar úsáideoir ar rolladh suas. Ní hé seo an t-aon bhealach a bhfuil Ethereum scálú.", + "scaling-1-c-label": "Danksharding", + "scaling-1-c-explanation": "Fágann sé seo nach gá go mbeadh ar gach bailíochtóir agus nód ar an líonra 100% de na sonraí a stóráil le haghaidh gach rolladh suas, rud a laghdóidh riachtanais chrua-earraí na n-oibreoirí nód. Ní hé seo an t-aon bhealach ina scálaíonn Ethereum.", + "scaling-1-d-label": "Gach ceann de rudaí na thuas", + "scaling-1-d-explanation": "Rollups Sraith 2 idirbhearta cuachta, cruthaíonn Proto-Danksharding stóráil shealadach saor le haghaidh na sonraí seo, agus roinneann Danksharding an t-ualach stórála thar na bailíochtóirí go léir - go léir ag cabhrú le scálú Ethereum.", + "scaling-2-prompt": "Tar éis idirbhearta a chuachadh agus iad a chur i gcrích, cad a dhéanfaidh rolladh suas ciseal 2 ina dhiaidh sin?", + "scaling-2-a-label": "Stóráil na sonraí ar fhreastalaí príobháideach", + "scaling-2-a-explanation": "Postáiltear torthaí chuig Mainnet le haghaidh trédhearcachta agus infhaighteachta poiblí, agus níl siad ag brath ar fhreastalaithe príobháideacha.", + "scaling-2-b-label": "Seoltar an cruthúnas chuig an úsáideoir le haghaidh stórála", + "scaling-2-b-explanation": "Níltear ag súil go gcoimeádfaidh úsáideoirí torthaí a n-idirbheart. Postáiltear an fhaisnéis seo chuig Mainnet.", + "scaling-2-c-label": "Cuir na torthaí chuig Ethereum", + "scaling-2-c-explanation": "Seoltar rolladh ciseal 2 ar thorthaí a gcur i gcrích idirbheart chuig Mainnet, rud a dhaingnigh i stair Ethereum é", + "scaling-2-d-label": "Scrios an toradh chun costais a laghdú", + "scaling-2-d-explanation": "Cuireann rollálacha Chiseal 2 torthaí a gcur i gcrích idirbhirt chuig Mainnet. Is é an coigilteas costais a baineadh amach leis an gcur chuige seo ná sonraí idirbhirt a chuachadh agus a chomhbhrú, agus ar deireadh thiar iad a stóráil i stóras saor a théann in éag nuair a chuirtear ar fáil dóibh siúd a bhfuil sé de dhíth orthu.", + "scaling-3-prompt": "Conas a laghdaíonn Proto-Danksharding costais idirbheart rollta suas ar rollálacha suas?", + "scaling-3-a-label": "Go díreach méadú ar mhéid an bhloic", + "scaling-3-a-explanation": "Ní mhéadaíonn Proto-Danksharding an teorainn gháis go díreach, ach déanann sé níos saoire é sonraí rollta suas a stóráil trí stóráil shealadach a chur ar fáil", + "scaling-3-b-label": "Roinntear na bailíochtaithe a theastaíonn chun na sonraí a stóráil", + "scaling-3-b-explanation": "Cé go bhfuiltear ag súil go laghdóidh Danksharding iomlán an gá atá le gach bailíochtóir na sonraí go léir a stóráil, roimhe seo bhí Proto-Danksharding ann, rogha stórála sealadaí nach bhfuil chomh costasach do na sonraí arna dtáirgeadh ag rolladh suas.", + "scaling-3-c-label": "Méadú suntasach ar riachtanais chrua-earraí d'oibreoirí nód", + "scaling-3-c-explanation": "Go ginearálta ní mheastar gur rogha inghlactha é seo chun Ethereum a scálú. Déantar iarrachtaí móra chun ceanglais chrua-earraí a íoslaghdú chun nód a oibriú chun é a choinneáil chomh inrochtana agus is féidir.", + "scaling-3-d-label": "A chuid sonraí a stóráil i stór ‘blob’ níos saoire, sealadach", + "scaling-3-d-explanation": "Tugann Proto-Danksharding isteach rogha stórála sonraí sealadach le haghaidh rolladh suas chun ligean dóibh a thorthaí a phostáil ar bhealach níos saoire chuig Mainnet", + "scaling-4-prompt": "Cad é an chéad chéim ríthábhachtach eile maidir le rolladh suas chun Ethereum a scálú?", + "scaling-4-a-label": "Aonáin a bhfuil ríomhairí cumhachtacha acu a dhreasú chun an seicheamhú ar fad a láimhseáil", + "scaling-4-a-explanation": "Ceann de na fadhbanna a bhaineann le rolladh suas reatha ná nádúr láraithe iad siúd a ritheann na seicheamhóirí (iad siúd a chinneann idirbhearta a chuimsiú agus a ordú laistigh de rolladh suas). Is é an sprioc ná ligean d’aon duine a bheith rannpháirteach, agus gan a bheith ag brath ar ghrúpa nó eintiteas amháin ar bhealach ar bith.", + "scaling-4-b-label": "Déan freagracht as seicheamhóirí agus proifíleoirí a rith a dháileadh ar níos mó daoine", + "scaling-4-b-explanation": "Is gnách go gcuirtear tús le rialú ar rolladh suas láraithe, rud a chabhraíonn le rudaí a thosú, ach fágann sé go bhfuil an líonra seans maith le cinsireacht. Tá sé ríthábhachtach an próiseas a bhaineann le hidirbhearta a áireamh ionas gur féidir le duine ar bith a bheith rannpháirteach a dhílárú ionas nach bhféadfaí comhréiteach líonra a chosc.", + "scaling-4-c-label": "Déan gach rolladh de réir an mhodha slándála céanna", + "scaling-4-c-explanation": "Baineann Ethereum leas as raon leathan cur chuige maidir le slándáil laistigh dá éiceachóras rollta mar fhoirm athléimneachta.", + "scaling-4-d-label": "Oracles sonraí chun stóráil sonraí idirbhirt a dheimhniú ar fhreastalaithe príobháideacha", + "scaling-4-d-explanation": "Stóráiltear sonraí Rollup ar Ethereum, agus níl sé ag brath ar fhreastalaithe príobháideacha nó bunachair shonraí.", + "run-a-node-1-prompt": "Cad atá ag teastáil chun nód a rith?", + "run-a-node-1-a-label": "Bogearraí cliant a rith le crua-earraí measartha agus tú ag fanacht ar líne.", + "run-a-node-1-a-explanation": "Is éard atá i gceist le nód a oibriú ná bogearraí a reáchtáil a dhéanann cumarsáid ag baint úsáide as teanga an phrótacail Ethereum le ríomhairí eile ag déanamh an rud céanna. Íoslódálann na bogearraí seo cóip den Ethereum blockchain, fíoraíonn sé bailíocht gach bloc, coinníonn sé cothrom le dáta é maidir le bloic agus idirbhearta nua, agus cuidíonn sé le daoine eile a gcóipeanna féin a íoslódáil agus a nuashonrú.", + "run-a-node-1-b-label": "Taisce 32 ETH chun luach saothair a thuilleamh", + "run-a-node-1-b-explanation": "Is riachtanas é seo le haghaidh gealltóireachta - an próiseas chun bheith ina rannpháirtí gníomhach i gcomhdhearcadh líonra. Níl sé seo ag teastáil chun cóip cheannasach den blockchain a reáchtáil, rud a éilíonn NÍL ETH.", + "run-a-node-1-c-label": "Oibriú meaisíní mianadóireachta ASIC cumhachtacha chun teacht ar chomhdhearcadh líonra", + "run-a-node-1-c-explanation": "Cé gur bhain Ethereum úsáid as mianadóireacht roimhe seo le ríomhairí cumhachtacha chun teacht ar chomhdhearcadh, tá gealltóireacht curtha in ionad an phróisis seo go hiomlán. Níl sé de cheangal ar mhianadóireacht san am atá caite, ná i ngeall faoi láthair, ach cóip cheannasach den blocshlabhra a oibriú.", + "run-a-node-1-d-label": "Oibriú go lánaimseartha i mbonneagar blocshlabhra", + "run-a-node-1-d-explanation": "Tá feabhas leanúnach tagtha ar uirlisí bogearraí le himeacht ama, rud a fhágann go bhfuil sé níos éasca dul i dteagmháil le nód a rith ón mbaile mar dhuine nua. Ní gá oibriú go lánaimseartha i mbonneagar blocshlabhra le bheith páirteach.", + "run-a-node-2-prompt": "Cé mhéad ETH atá uait chun nód a rith?", + "run-a-node-2-a-label": "0", + "run-a-node-2-a-explanation": "Ní gá aon ETH a oibriú nód Ethereum. I gcodarsnacht le bailíochtóir geallta a oibriú mar chuid de shocrú nód, tá cead ag aon duine bogearraí cliant a rith agus a gcóip cheannasach féin den blocshlabhra a shioncronú - níl aon ETH ag teastáil.", + "run-a-node-2-b-label": "8", + "run-a-node-2-d-explanation": "Ní gá aon ETH a oibriú nód Ethereum. I gcodarsnacht leis an 32 ETH a theastaíonn chun bailíochtóir geallta a ghníomhachtú a ghlacann páirt dhíreach i gcomhthoil an líonra, tá cead ag aon duine bogearraí cliant a rith agus a gcóip cheannasach féin den blockchain a shioncronú - níl aon ETH ag teastáil.", + "run-a-node-3-prompt": "Cad iad na buntáistí a bhaineann tú as do nód féin a rith?", + "run-a-node-3-a-label": "Friotaíocht chinsireachta", + "run-a-node-3-a-explanation": "Is buntáiste é seo d’úsáideoirí, ach ní hé an t-aon cheann é. Trí bhogearraí nód a reáchtáil a dhéanann cumarsáid dhíreach le piaraí eile ar an líonra, measctar d’idirbhearta le gach idirbheart eile atá á iomadú ag do nód. Mar sin, tá sé beagnach dodhéanta idirdhealú agus cinsireacht a dhéanamh ar idirbheart bailí atá roinnte ag do nód.", + "run-a-node-3-b-label": "Ceannas", + "run-a-node-3-b-explanation": "Is buntáiste é seo d’úsáideoirí, ach ní hé an t-aon cheann é. Trí do chóip féin den blockchain Ethereum a bheith agat, ní bhraitheann tú a thuilleadh ar aon pháirtí seachtrach amháin chun idirghníomhú leis an líonra. Ní gá duit cead a iarraidh chun d’iarmhéid a chuardach, nó chun idirbheart a dhéanamh, agus déantar gach idirbheart a fhíorú trí úsáid a bhaint as bogearraí atá á rith agat féin. Nuair a dhéantar uasghráduithe ar an líonra, tá tú i gceannas ar cé acu an dtabharfar tacaíocht don uasghrádú nó nach dtacóidh.", + "run-a-node-3-c-label": "Príobháideacht", + "run-a-node-3-c-explanation": "Is buntáiste é seo d’úsáideoirí, ach ní hé an t-aon cheann é. Gan do nód féin, ní gá ach liosta de do chuntais a sheoladh ó do sparán, ceangailte le do sheoladh IP, chuig soláthraí tríú páirtí a bhfuil muinín agat as an bhfaisnéis cheart a sholáthar duit.", + "run-a-node-3-d-label": "Gach ceann de rudaí na thuas", + "run-a-node-3-d-explanation": "Má ritheann tú nód, gheobhaidh tú smacht iomlán agus ceannasacht ar na sonraí a bhfuil tú ag brath orthu, rud a ligeann duit inneachar an tslabhra a fheiceáil agus a fhíorú go príobháideach, agus ráthaíocht a thabhairt go héifeachtach nach ndéantar cinsireacht ar aon idirbhearta bailí.", + "run-a-node-4-prompt": "Cén stóráil tiomántán crua atá ag teastáil le haghaidh nód Ethereum?", + "run-a-node-4-a-label": "512 GB SSD", + "run-a-node-4-a-explanation": "Faoi láthair, níl aon bhogearraí cliant in ann an slabhra a stóráil ag baint úsáide as ach 512 GB", + "run-a-node-4-b-label": "2 TB Rothlach", + "run-a-node-4-b-explanation": "Go ginearálta, ní thacaíonn dioscaí crua rothlaithe leis na luasanna léite/scríofa a theastaíonn chun cloí le riachtanais phróiseála do nód Ethereum, agus moltar tiomántán SSD", + "run-a-node-4-c-label": "2 TB SSD", + "run-a-node-4-c-explanation": "Agus é seo á scríobh, ba cheart go sásódh tiomántán SSD 2 TB na riachtanais luais stórála agus léamh/scríobh le haghaidh nód iomlán Ethereum.", + "run-a-node-4-d-label": "8 TB SSD", + "run-a-node-4-d-explanation": "Agus é seo á scríobh, ba cheart go sásódh tiomántán SSD 2 TB na riachtanais luais stórála agus léamh/scríobh le haghaidh nód iomlán Ethereum. Thabharfadh SSD 8 TB deis do chosaint níos fearr don todhchaí, agus an cumas slabhraí ciseal 2 a shioncronú freisin, ach níl sé ina riachtanas do Mainnet faoi láthair.", + "run-a-node-5-prompt": "Cad a tharlaíonn má théann do nód as líne?", + "run-a-node-5-a-label": "Titeann do nód as sioncronú le staid reatha an líonra", + "run-a-node-5-a-explanation": "Nuair nach bhfuil do nód ar fáil ar líne, ní féidir leis idirbhearta agus bloic nua a fháil ó chomhghleacaithe, agus mar sin ní thagann sé as sioncronú le staid reatha an tslabhra. Trí nascadh ar líne beidh do bhogearraí nóid in ann do bhogearraí nód a shioncronú ar ais le bheith lánfheidhmiúil arís.", + "run-a-node-5-b-label": "Tá an ETH i do stóráil fuar slaiseáilte", + "run-a-node-5-b-explanation": "Níl baint ar bith ag ETH a choinnítear i do stór fuar le do nód a bheith ar líne nó nach bhfuil. Má tá do nód as líne, ní bheidh tú in ann é a úsáid chun an t-iarmhéid is déanaí de do chuntais a chuardach, ach ní bheidh do chistí urraithe i mbaol má bhíonn tú as líne. Má tá bogearraí bailíochtaithe á rith agat freisin le do nód mar ghealltóir, tabhófar pionóis bheaga ar an iarmhéid bailíochtaithe seo nuair nach bhfuil sé ar fáil don líonra.", + "run-a-node-5-c-label": "Cuirtear an fuinneamh a úsáidtear chun cruthúnais oibre amú", + "run-a-node-5-c-explanation": "Ní úsáideann Ethereum cruthúnas-oibre a thuilleadh, agus ní raibh sé seo ina cheanglas ar gach oibreoir nód. Is éard atá i gceist le bheith as líne nach bhfuil do nód sioncronaithe a thuilleadh leis na hathruithe is déanaí ar an líonra, agus is féidir é a athshioncronú trí fhilleadh ar líne.", + "run-a-node-5-d-label": "Baintear sonraí slabhra, agus tá gá le sioncronú arís ó thús", + "run-a-node-5-d-explanation": "Go hiondúil trí dhul as líne ní scriosann sé aon sonraí slabhra a shábháiltear. Trí nascadh ar ais leis an idirlíon ligfidh na bogearraí do na bogearraí a atosú nuair a d’éirigh sé as chun sioncronú a dhéanamh leis na hidirbhearta is déanaí.", + "run-a-node-6-prompt": "Tá luach saothair líonra á thuilleamh ag rith nód", + "run-a-node-6-a-label": "Fíor", + "run-a-node-6-a-explanation": "Ní ghnóthaíonn rith bogearraí cliant amháin luach saothair duit. Chun luach saothair a thuilleamh, ní mór duit a bheith i do ghealltóir freisin.", + "run-a-node-6-b-label": "Bréagach", + "stablecoins-1-prompt": "Cad is criptea-airgeadraí daingne ann?", + "stablecoins-1-a-label": "Criptea-airgeadraí le luaineacht praghsanna íseal, tá a luach seasta agus cosúil le hairgeadraí traidisiúnta", + "stablecoins-1-a-explanation": "Ceart! Tá Stablecoins deartha chun aghaidh a thabhairt ar an tsaincheist luaineachta atá coitianta i go leor criptea-airgeadraí.", + "stablecoins-1-b-label": "Léiriúcháin dhigiteacha óir", + "stablecoins-1-b-explanation": "Tá sé seo mícheart. Cé go bhféadfadh miotail lómhara tacaíocht a thabhairt do roinnt monaí stábla, is féidir leo a bheith tacaithe ag airgeadra fiat nó criptea-airgeadraí eile.", + "stablecoins-1-c-label": "Cineál nua cárta creidmheasa", + "stablecoins-1-c-explanation": "Tá sé seo mícheart. Is cineál criptea-airgeadra iad Stablecoins, ní cárta creidmheasa é.", + "stablecoins-1-d-label": "In ionad éitear", + "stablecoins-1-d-explanation": "Tá sé seo mícheart. Níl stáblaí deartha chun éitear (ETH) a athsholáthar. Is comhartha eile iad ar líonra Ethereum atá deartha chun luach seasta a choinneáil le himeacht ama.", + "stablecoins-2-prompt": "Cé acu seo a leanas ar bonn stábla é?", + "stablecoins-2-a-label": "Dollar SAM", + "stablecoins-2-a-explanation": "Tá sé seo mícheart. Cé gur féidir le boinn stábla ionadaíocht a dhéanamh ar dollar SAM, ní criptea-airgeadra é dollar SAM.", + "stablecoins-2-b-label": "Dearbhán AAVE", + "stablecoins-2-b-explanation": "Tá sé seo mícheart. Is dearbhán rialachais é AAVE do phrótacal Aave, a sholáthraíonn áiteanna margaidh le haghaidh boinn stáblaí, ach ní bonn stábla é AAVE féin.", + "stablecoins-2-c-label": "Dai", + "stablecoins-2-c-explanation": "Ceart! Is dócha gurb é Dai an bonn stábla díláraithe is cáiliúla, agus tá a luach thart ar 1 dollar SAM.", + "stablecoins-2-d-label": "Ether", + "stablecoins-2-d-explanation": "Tá sé seo mícheart. Is é éitear airgeadra dúchais líonra Ethereum, ach níl sé beartaithe bonn stábla a dhéanamh de.", + "stablecoins-3-prompt": "Cad dó is féidir boinn stábla a úsáid?", + "stablecoins-3-a-label": "Chun a chuid úsáideoirí a chosaint ó athruithe luaineacha i bpraghas", + "stablecoins-3-a-explanation": "Ní go díreach. Tá an freagra seo i bpáirt ceart, ach níl ann ach ceann amháin den iliomad rudaí ar féidir boinn stáblaí a úsáid ina leith.", + "stablecoins-3-b-label": "Rudaí a cheannach ar an idirlíon áit ar bith ar domhan", + "stablecoins-3-b-explanation": "Ní go díreach. Tá an freagra seo i bpáirt ceart, ach níl ann ach ceann amháin den iliomad rudaí ar féidir boinn stáblaí a úsáid ina leith.", + "stablecoins-3-c-label": "Airgead a shaothrú trí thabhairt ar iasacht do dhaoine eile", + "stablecoins-3-c-explanation": "Ní go díreach. Tá an freagra seo i bpáirt ceart, ach níl ann ach ceann amháin den iliomad rudaí ar féidir boinn stáblaí a úsáid ina leith.", + "stablecoins-3-d-label": "Gach ceann de rudaí na thuas", + "stablecoins-3-d-explanation": "Ceart! Is féidir boin stáblaí a úsáid chun criptea-airgeadra a shealbhú le níos lú luaineachta, idirbheartaíocht dhomhanda ar an idirlíon, agus ús a shaothrú nuair a thugann tú ar iasacht iad.", + "stablecoins-4-prompt": "Cén fáth a bhfuil boinn stáblaí uathúil?", + "stablecoins-4-a-label": "Is dearbhán é atá ceangailte le sócmhainn sa saol fíor", + "stablecoins-4-a-explanation": "Tá sé seo mícheart. Cé go bhfuil go leor boinn stáblaí bainte le sócmhainní an tsaoil, níl an tréith seo eisiach do bhoinn stáblaí (m.sh., dearbháin chomhthaobhachta ETH).", + "stablecoins-4-b-label": "Is dearbhán criptea-airgeadra é atá deartha go sonrach chun a luach a choinneáil seasta", + "stablecoins-4-b-explanation": "Ceart! Tá Stablecoins deartha chun a luach a choinneáil sách seasta, bainte go hiondúil le sócmhainní mar airgeadraí (m.sh., 1 USDC = 1 dollar SAM), ach ní leanann gach bonn stábla an tsamhail seo (m.sh., RAI).", + "stablecoins-4-c-label": "Is féidir é a sheoladh thar an Idirlíon", + "stablecoins-4-c-explanation": "Tá sé seo mícheart. Cé gur féidir é seo, níl sé uathúil do bhoinn stáblaí.", + "stablecoins-4-d-label": "Is féidir é a úsáid ar líonra Ethereum.", + "stablecoins-4-d-explanation": "Tá sé seo mícheart. Is féidir go leor dearbháin chriptea-airgeadra eile a úsáid ar líonra Ethereum.", + "stablecoins-5-prompt": "Cad NACH bealach é chun boinn stáblaí a fháil?", + "stablecoins-5-a-label": "Iad a mhalartú le dearbháin eile", + "stablecoins-5-a-explanation": "Mícheart, is bealach é seo chun boinn stábla a fháil. Ceann de na bealaí is coitianta a fhaigheann daoine boinn stábla ná a n-airgeadraí reatha a mhalartú le haghaidh boinn stábla.", + "stablecoins-5-b-label": "Faigh ar iasacht iad", + "stablecoins-5-b-explanation": "Mícheart, is bealach é seo chun boinn stábla a fháil. Is féidir leat roinnt boinn stábla a fháil ar iasacht trí na criptea-airgreadraí atá agat cheana féin, mar éitear, a úsáid mar chomhthaobhacht. Beidh ort na boinn stábla a fuarthas ar iasacht a íoc ar ais chun do chomhthaobhacht a éileamh ar ais.", + "stablecoins-5-c-label": "Ceannaigh iad ó ionad malartaithe", + "stablecoins-5-c-explanation": "Mícheart, is bealach é seo chun boinn stábla a fháil. Ligeann go leor ionaid mhalartaithe agus sparán duit boinn stábla a cheannach go díreach. Féadfaidh srianta geografacha a bheith i bhfeidhm ar ionaid mhalartaithe láraithe.", + "stablecoins-5-d-label": "Déan mianadóireacht chun iad a bhaint", + "stablecoins-5-d-explanation": "Ceart! Murab ionann agus bitcoin, níl tú in ann monaí cobhsaí a mhianadóireacht.", + "defi-1-prompt": "Cad dó a sheasann DeFi?", + "defi-1-a-label": "Airgeadas Díláraithe", + "defi-1-a-explanation": "Ceart! Tagraíonn DeFi do Airgeadas Díláraithe, córas airgeadais a tógadh ar Ethereum a oibríonn gan idirghabhálaithe cosúil le bainc nó institiúidí airgeadais.", + "defi-1-b-label": "Airgeadas Digiteach", + "defi-1-b-explanation": "Tá sé seo mícheart. Tagraíonn Airgeadas Digiteach do sheirbhísí airgeadais a chuirtear ar fáil trí ardáin dhigiteacha, ach ní thugann sé le tuiscint go sonrach dílárú.", + "defi-1-c-label": "Airgeadas Dáilte", + "defi-1-c-explanation": "Tá sé seo mícheart. Cé go bhféadfadh dílárú a bheith i gceist le ‘dáilte’, is é an téarma a úsáidtear sa tionscal ná ‘Airgeadas Díláraithe,’ ní Airgeadas Dáilte.", + "defi-1-d-label": "Airgeadas Forbartha", + "defi-1-d-explanation": "Tá sé seo mícheart. Tagraíonn Airgeadas Forbartha de ghnáth do thacaíocht airgeadais a chuirtear ar fáil do thionscadail atá dírithe ar fhorbairt eacnamaíoch, go minic i dtíortha i mbéal forbartha, agus nach bhfuil baint aige le blocshlabhra ná le DeFi.", + "defi-2-prompt": "Cad NACH FÉIDIR leat a dhéanamh le DeFi?", + "defi-2-a-label": "Airgead a sheoladh ar fud na cruinne.", + "defi-2-a-explanation": "Tá sé seo mícheart. Le DeFi, is féidir leat luach a sheoladh chuig aon duine áit ar bith ar domhan, gan teorainneacha.", + "defi-2-b-label": "Iarr ar thacaíocht do chustaiméirí do bhotúin a chur ar ais.", + "defi-2-b-explanation": "Ceart! In DeFi, tá idirbhearta críochnaitheach agus rialaithe ag cód seachas ag cuideachta. Má tharlaíonn botún, mar airgead a sheoladh chuig an seoladh mícheart, níl aon tacaíocht do chustaiméirí ann chun cabhrú leis é a réiteach. Ní mór duit a bheith fíor-chúramach.", + "defi-2-c-label": "Cistí a fháil ar iasacht le comhthaobhacht.", + "defi-2-c-explanation": "Tá sé seo mícheart. Le DeFi, is féidir leat airgead a fháil ar iasacht láithreach, rud a sheachnaíonn an próiseas formheasa lá de na bainc thraidisiúnta.", + "defi-2-d-label": "Déan do chuid comharthaí a thrádáil 24/7.", + "defi-2-d-explanation": "Tá sé seo mícheart. Ligeann DeFi duit comharthaí a thrádáil 24/7. Tá margaí oscailte i gcónaí, agus is féidir leat do ETH a thrádáil i gcoinne USDT nó aon airgeadra eile ag am ar bith.", + "defi-3-prompt": "Cén ardán DeFi a bhfuil cáil air as ligean d’úsáideoirí comharthaí a mhalartú go díreach lena chéile?", + "defi-3-a-label": "Uniswap", + "defi-3-a-explanation": "Ceart! Is malartú díláraithe é Uniswap a ligeann d’úsáideoirí dearbháin a thrádáil (babhtáil) go díreach lena chéile ag baint úsáide as meicníochtaí uathoibrithe déanta margaidh.", + "defi-3-b-label": "Aave", + "defi-3-b-explanation": "Tá sé seo mícheart. Prótacal DeFi is ea Aave atá dírithe ar iasachtú agus iasachtaíocht, ní ar bhabhtálacha comharthaí.", + "defi-3-c-label": "PoolTogether", + "defi-3-c-explanation": "Tá sé seo mícheart. Reáchtálann PoolTogether crannchuir neamhchaillteanais a thairgeann bealach nua nuálaíoch chun airgead a shábháil.", + "defi-3-d-label": "MakerDao", + "defi-3-d-explanation": "Tá sé seo mícheart. Is ardán díláraithe é MakerDAO a ligeann d’úsáideoirí an bonn stábla DAI a eisiúint agus a bhainistiú, ach ní dhíríonn sé ar bhabhtálacha dearbháin.", + "defi-4-prompt": "Nuair a úsáideann tú aip DeFi agus idirbheart a dhéanamh, cá gcoimeádtar an fhaisnéis idirbhirt?", + "defi-4-a-label": "ETH", + "defi-4-a-explanation": "Tá sé seo mícheart. Ní stóráiltear sonraí in éitear (ETH). Is é ETH sócmhainn dhúchais an blockchain Ethereum.", + "defi-4-b-label": "Mo sparán", + "defi-4-b-explanation": "Tá sé seo mícheart. Is feidhmchlár é sparán a bhainistíonn do chuntas Ethereum trí nascadh leis an blockchain Ethereum. Ní stórálann sé aon sonraí faoi do stair idirbheart.", + "defi-4-c-label": "Aipeanna Defi", + "defi-4-c-explanation": "Tá sé seo mícheart. Ní stórálann aipeanna DeFi do stair idirbheart go díreach. Ina áit sin, déantar do shonraí idirbhirt a thaifeadadh ar an Ethereum blockchain.", + "defi-4-d-label": "Blocshlabhra Ethereum", + "defi-4-d-explanation": "Ceart! Stórálann Ethereum mar blockchain na sonraí go léir a dhéanann a chuid úsáideoirí agus apps. Ligeann sé seo do bhailitheoirí an staid chéanna a choinneáil ar fud an líonra P2P.", + "defi-5-prompt": "Cad is féidir Airgeadas Díláraithe (DeFi) a dhéanamh ar Ethereum?", + "defi-5-a-label": "Conarthaí Cliste", + "defi-5-a-explanation": "Ceart! Tá conarthaí cliste cosúil le ráitis dhigiteacha 'má-tá' scríofa isteach i Ethereum. Tagann siad in ionad na gconarthaí traidisiúnta agus na bhfear lár, agus déanann siad idirbhearta go huathoibríoch má chomhlíontar coinníollacha áirithe.", + "defi-5-b-label": "Idirghabhálaithe", + "defi-5-b-explanation": "Tá sé seo mícheart. Ní bhíonn meánfhir ag teastáil ó Ethereum chun idirbhearta a rith. Ritheann gach rud ar an slabhra trí chonarthaí cliste.", + "defi-5-c-label": "Bitcoin", + "defi-5-c-explanation": "Tá sé seo mícheart. Is líonra simplí é Bitcoin chun luach a stóráil, ní chun ardchláir a reáchtáil. Éilíonn DeFi córas níos solúbtha, cosúil le Ethereum, ar féidir léi cláir chasta a rith chun iasachtaí agus ceirdeanna a láimhseáil go huathoibríoch.", + "defi-5-d-label": "Institiúidí airgeadais traidisiúnta", + "defi-5-d-explanation": "Tá sé seo mícheart. Ní bhíonn institiúidí airgeadais traidisiúnta ag teastáil ó apps DeFi. Úsáideann siad cláir blockchain ar a dtugtar conarthaí cliste chun idirbhearta a láimhseáil go huathoibríoch." +} diff --git a/src/intl/ga/page-dapps.json b/src/intl/ga/page-dapps.json new file mode 100644 index 00000000000..ceaf0d0b728 --- /dev/null +++ b/src/intl/ga/page-dapps.json @@ -0,0 +1,285 @@ +{ + "page-dapps-1inch-logo-alt": "Lógó 1inch", + "page-dapps-aave-logo-alt": "Lógó Aave", + "page-dapps-add-button": "Mol daip", + "page-dapps-add-title": "Cuir daip leis", + "page-dapps-ankr-logo-alt": "Lógó Ankr", + "page-dapps-api3-logo-alt": "Lógó API3", + "page-dapps-arweave-logo-alt": "Lógó ARweave", + "page-dapps-audius-logo-alt": "Lógó Audius", + "page-dapps-axie-infinity-logo-alt": "Lógó Axie Infinity", + "page-dapps-balancer-logo-alt": "Lógó Balancer", + "page-dapps-brave-logo-alt": "Lógó Brave", + "page-dapps-beginner-friendly-description": "Roinnt daipeanna atá go maith do thosaitheoirí. Foghlaim faoi dhaipeanna breise thíos.", + "page-dapps-beginner-friendly-header": "So-úsáidte do thosaitheoirí", + "page-dapps-category-arts": "Ealaín agus faisean", + "page-dapps-category-browsers": "Brabhsálaithe", + "page-dapps-category-code-marketplaces": "Margaí cóid", + "page-dapps-category-collectibles": "Earraí inbhailithe digiteacha", + "page-dapps-category-competitive": "Cluichí Web3", + "page-dapps-category-computing": "Uirlisí forbróra", + "page-dapps-category-dex": "Malartáin", + "page-dapps-category-investments": "Cistí infheistíochta", + "page-dapps-category-lending": "Iasachtú agus iasachtaíocht", + "page-dapps-category-lottery": "Slua-chistiú", + "page-dapps-category-marketplaces": "Margaí", + "page-dapps-category-music": "Ceol", + "page-dapps-category-payments": "Íocaíochtaí", + "page-dapps-category-insurance": "Árachas", + "page-dapps-category-portfolios": "Bainistíocht phunainne", + "page-dapps-category-trading": "Margaí tuartha", + "page-dapps-category-utilities": "Fóntais", + "page-dapps-category-worlds": "Domhain fhíorúla", + "page-dapps-category-demand-aggregator": "Comhbhailitheoirí éilimh", + "page-dapps-category-derivatives": "Díorthaigh", + "page-dapps-category-liquid-staking": "Geallchur leachta", + "page-dapps-category-bridges": "Droichid", + "page-dapps-category-experiences": "Eispéiris roinnte", + "page-dapps-category-guilds": "Gildeanna torthaí", + "page-dapps-category-avatar": "Abhatáranna", + "page-dapps-choose-category": "Roghnaigh catagóir", + "page-dapps-category-social": "Na meáin shóisialta", + "page-dapps-category-content": "Ábhar", + "page-dapps-category-community": "Pobal", + "page-dapps-category-messaging": "Teachtaireachtaí", + "page-dapps-category-identity": "Céannacht", + "page-dapps-collectibles-benefits-1-description": "Nuair a théacschomharthaítear ealaín ar Ethereum, is féidir úinéireacht a chruthú do chách. Is féidir leat turas an tsaothair ealaíne ón gcruthú go dtí an sealbhóir reatha a rianú. Cuireann sé seo cosc ​​​​ar bhrionnú.", + "page-dapps-collectibles-benefits-1-title": "Is féidir úinéireacht a fhíorú", + "page-dapps-collectibles-benefits-2-description": "Tá sé i bhfad níos cothroime do na healaíontóirí íoc as ceol a shruthú nó saothar ealaíne a cheannach. Le hEthereum is lú an gá le hidirghabhálaithe. Agus má tá gá le hidirghabhálaithe, níl a gcostais chomh hard mar ní gá d’ardáin íoc as bonneagar an ghréasáin.", + "page-dapps-collectibles-benefits-2-title": "Níos cothroime do chruthaitheoirí", + "page-dapps-collectibles-benefits-3-description": "Tá earraí inbhailithe comharthaithe ceangailte le do sheoladh Ethereum, ní leis an ardán. Mar sin is féidir leat rudaí cosúil le míreanna in-chluiche a dhíol ar aon mhargadh Ethereum, ní hamháin sa chluiche féin.", + "page-dapps-collectibles-benefits-3-title": "Bíonn earraí inbhailithe ag dul in éineacht leat", + "page-dapps-collectibles-benefits-4-description": "Tá na huirlisí agus na táirgí ann cheana chun do chuid ealaíne a théacschomharthú agus í a dhíol! Agus is féidir do chuid comharthaí a dhíol ar gach uile ardán inbhailithe de chuid Ethereum.", + "page-dapps-collectibles-benefits-4-title": "Bonneagar i bhfeidhm cheana féin", + "page-dapps-collectibles-benefits-description": "Is feidhmchláir iad seo trína ndírítear ar úinéireacht dhigiteach, ar acmhainneacht tuillimh a mhéadú do chruthaitheoirí agus ar bhealaí nua a chumadh chun infheistíocht a dhéanamh sna cruthaitheoirí is fearr leat agus ina gcuid oibre.", + "page-dapps-collectibles-benefits-title": "earraí inbhailithe díláraithe agus sruthú", + "page-dapps-collectibles-button": "Na healaíona agus earraí inbhailithe", + "page-dapps-collectibles-description": "Is feidhmchláir iad seo trína ndírítear ar úinéireacht dhigiteach, ar acmhainneacht tuillimh a mhéadú do chruthaitheoirí agus ar bhealaí nua a chumadh chun infheistíocht a dhéanamh sna cruthaitheoirí is fearr leat agus ina gcuid oibre.", + "page-dapps-collectibles-title": "Na healaíona díláraithe agus earraí inbhailithe", + "page-dapps-compound-logo-alt": "Lógó cumaisc", + "page-dapps-convex-logo-alt": "Lógó Convex", + "page-dapps-cryptopunks-logo-alt": "Lógó Cryptopunks", + "page-dapps-cryptovoxels-logo-alt": "Lógó Cryptovoxels", + "page-dapps-cyberconnect-logo-alt": "Lógó CyberConnect", + "page-dapps-dapp-description-1inch": "Cuidíonn sé leat sciorradh ardphraghais a sheachaint trí na praghsanna is fearr a chomhiomlánú.", + "page-dapps-dapp-description-aave": "Tabhair do chuid comharthaí ar iasacht chun ús a thuilleamh agus tarraing siar am ar bith.", + "page-dapps-dapp-description-ankr": "Sraith de tháirgí bonneagair éagsúla Web3 le haghaidh tógála, tuillimh, cluichíochta agus go leor eile - iad ar fad ar bhlocshlabhra.", + "page-dapps-dapp-description-api3": "Fothaí sonraí tagartha do phraghas an chéad pháirtí trína ligtear daipeanna ar 10 ngréasán (agus comhaireamh) nascadh le sonraí praghais sócmhainní fíor‑ama, lena n‑áirítear praghsanna crypto agus forex.", + "page-dapps-dapp-description-arweave": "Stóráil sonraí go buan, go hinbhuanaithe, le táille amháin tosaigh.", + "page-dapps-dapp-description-async-art": "Cruthaigh, bailigh, agus déan trádáil #Ealaín Ríomhchláraithe - pictiúir dhigiteacha roinnte ina “Sraitheanna” ar féidir leat a úsáid chun dul i bhfeidhm ar an íomhá iomlán. Is comhartha ERC721 gach Máistir agus Sraith.", + "page-dapps-dapp-description-audius": "Ardán shruthaithe dhíláraithe. Éisteacht = airgead le haghaidh cruthaitheoirí, ní le haghaidh lipéid.", + "page-dapps-dapp-description-axie-infinity": "Créatúir thrádála agus chatha ar a dtugtar Axies. Agus tuilleamh tríd an imirt - ar fáil ar ghuthán soghluaiste", + "page-dapps-dapp-description-balancer": "Is bainisteoir punainne uathoibrithe agus ardán trádála é Balancer.", + "page-dapps-dapp-description-brave": "Faigh comharthaí brabhsála agus tacaigh leis na cruthaitheoirí is fearr leat trína n‑úsáid.", + "page-dapps-dapp-description-cent": "Líonra sóisialta ina dtuilleann tú airgead trí NFTanna a phostáil.", + "page-dapps-dapp-description-compound": "Tabhair do chuid comharthaí ar iasacht chun ús a thuilleamh agus tarraing siar am ar bith.", + "page-dapps-dapp-description-convex": "Trí Convex ceadaítear táillí trádála a thuilleamh agus CRV treisithe a éileamh gan a gcuid CRV a ghlasáil do sholáthraithe leachta Curve.", + "page-dapps-dapp-description-cryptopunks": "Déan puncaí ar díol a cheannach, a iarraidh agus a thairiscint - ceann de na chéad earraí inbhailithe comharthaí ar Ethereum.", + "page-dapps-dapp-description-cryptovoxels": "Cruthaigh gailearaithe ealaíne, tóg siopaí agus ceannaigh talamh - domhan fíorúil Ethereum.", + "page-dapps-dapp-description-cyberconnect": "Prótacal díláraithe graf sóisialta trína gcuidítear le daipeanna éifeachtaí líonra a bhútáil agus eispéiris shóisialta phearsantaithe a thógáil", + "page-dapps-dapp-description-dark-forest": "Déan concas ar phláinéid i gcruinne gan teorainn, a ghintear de réir nós imeachta, cripteagrafach-sonraithe.", + "page-dapps-dapp-description-decentraland": "Bailigh, trádáil talamh fíorúil i ndomhan fíorúil is féidir leat breathnú thart air.", + "page-dapps-dapp-description-ens": "Ainmneacha atá éasca le húsáid le haghaidh seoltaí Ethereum agus suíomhanna díláraithe.", + "page-dapps-dapp-description-foundation": "Infheistigh in eagráin uathúla de shaothar ealaíne digiteach agus trádáil píosaí le ceannaitheoirí eile.", + "page-dapps-dapp-description-gitcoin": "Tuill crypto trí bheith ag obair ar bhogearraí foinse oscailte.", + "page-dapps-dapp-description-gitcoin-grants": "Slua-chistiú do thionscadail pobail Ethereum le ranníocaíochtaí méadaithe", + "page-dapps-dapp-description-gm": "Ardán uilechuimsitheach le haghaidh comhrá, fóraim, agus guth a dhéanann ioncam a roinnt lena chruthaitheoirí", + "page-dapps-dapp-description-gods-unchained": "Cluiche cártaí straitéise trádála. Cártaí a thuilleamh tríd an imirt gur féidir leat a dhíol sa saol fíor.", + "page-dapps-dapp-description-golem": "Faigh rochtain ar chumhacht ríomhaireachta roinnte nó lig do chuid acmhainní féin ar cíos.", + "page-dapps-dapp-description-graph": "Prótacal innéacsaithe chun líonraí amhail Ethereum agus IPFS a cheistiú.", + "page-dapps-dapp-description-ipfs": "Prótacal hipirmheáin idir comhghleacaithe atá deartha chun eolas an chine dhaonna a chaomhnú agus a mhéadú tríd an ngréasán a dhéanamh in‑uasghrádaithe, athléimneach agus níos oscailte.", + "page-dapps-dapp-description-radicle": "Comhoibriú cóid a dhaingniú idir comhghleacaithe gan idirghabhálaithe.", + "page-dapps-dapp-description-kyberswap": "Babhtáil agus tuilleamh ar na rátaí is fearr.", + "page-dapps-dapp-description-lido": "Geallchur simplithe agus slán do shócmhainní digiteacha.", + "page-dapps-dapp-description-loopring": "Ardán trádála idir comhghleacaithe tógtha le haghaidh luais.", + "page-dapps-dapp-description-marble-cards": "Déan cártaí digiteacha uathúla bunaithe ar URLanna a chruthú agus a thrádáil.", + "page-dapps-dapp-description-matcha": "Déanann sé cuardach ar mhalartáin iolracha chun cabhrú leat na praghsanna is fearr a fháil.", + "page-dapps-dapp-description-meeds": "Moil pobail Web3 le haghaidh aois na hoibre díláraithe. Tabhair luach saothair cothrom agus trédhearcach do ranníocaíochtaí tábhachtacha.", + "page-dapps-dapp-description-mirror": "Tógtha ar web3 le haghaidh web3, brúnn ardán láidir foilsitheoireachta Mirror teorainneacha na scríbhneoireachta ar líne", + "page-dapps-dapp-description-multichain": "An ródaire deiridh do web3. Is bonneagar é a forbraíodh le haghaidh idirghníomhaíochtaí treallach tras‑slabhra.", + "page-dapps-dapp-description-summerfi": "Trádáil, iasacht agus sábháil le Dai, stablecoin de chuid Ethereum.", + "page-dapps-dapp-description-opensea": "Déan earraí eagrán teoranta a cheannach, a dhíol, a fhiosrú agus a thrádáil.", + "page-dapps-dapp-description-opera": "Seol crypto ó do bhrabhsálaí chuig ceannaithe, úsáideoirí eile agus aipeanna.", + "page-dapps-dapp-description-osuvox": "Abhatáranna 3D ina gcónaí ar an mblocshlabhra", + "page-dapps-dapp-description-poap": "Bailigh NFTanna a chruthaíonn gur fhreastail tú ar imeachtaí fíorúla nó pearsanta éagsúla. Úsáid iad chun páirt a ghlacadh sna raifil, sa vótáil, sa chomhoibriú nó díreach chun gaisce a dhéanamh.", + "page-dapps-dapp-description-polymarket": "Geall ar thorthaí cluichí. Trádáil ar mhargaí faisnéise.", + "page-dapps-dapp-description-pooltogether": "Crannchur nach féidir leat a chailleadh. Duaiseanna gach seachtain.", + "page-dapps-dapp-description-index-coop": "Ciste innéacs crypto trína nochtfar do phunann do bharrchomharthaí DeFi.", + "page-dapps-dapp-description-nexus-mutual": "Clúdach gan an chuideachta árachais. Déan tú féin a chosaint in éadan fabhtanna conartha cliste agus haiceanna.", + "page-dapps-dapp-description-etherisc": "Teimpléad árachais díláraithe is féidir le duine ar bith a úsáid chun a gclúdach árachais féin a chruthú.", + "page-dapps-dapp-description-zapper": "Rianaigh do phunann agus úsáid raon táirgí DeFi ó chomhéadan amháin.", + "page-dapps-dapp-description-zerion": "Bainistigh do phunann agus déan gach sócmhainn DeFi ar an margadh a mheas.", + "page-dapps-dapp-description-rotki": "Uirlis foinse oscailte i leith rianaithe punainne, anailísíochta, cuntasaíochta agus tuairiscithe cánach lena léirítear meas ar do phríobháideachas.", + "page-dapps-dapp-description-krystal": "Ardán ilfhreastail chun rochtain a fháil ar na seirbhísí DeFi is fearr leat.", + "page-dapps-dapp-description-rarible": "Déan earraí inbhailithe téacscomharthaithe a chruthú, a dhíol agus a cheannach.", + "page-dapps-dapp-description-request-finance": "Sraith uirlisí airgeadais le haghaidh sonraisc crypto, párolla agus speansas.", + "page-dapps-dapp-description-rubic": "Comhbhailitheoir teicneolaíochta Tras-Slabhra le haghaidh úsáideoirí agus daipeanna.", + "page-dapps-dapp-description-sablier": "Sruthaigh airgead i bhfíor-am.", + "page-dapps-dapp-description-spatial": "Cruthaigh d'abhatár saincheaptha féin agus do shaol 3D", + "page-dapps-dapp-description-spruce": "Cruach foinse oscailte chun smacht céannachta agus sonraí a fhágáil san áit ar cheart dóibh a bheith: le húsáideoirí.", + "page-dapps-dapp-description-status": "Tá sé deartha chun saorshreabhadh faisnéise a chumasú, chun an ceart chun comhráite príobháideacha slána a chosaint, agus chun ceannas daoine aonair a chur chun cinn.", + "page-dapps-dapp-description-superrare": "Ceannaigh saothair ealaíne digiteacha go díreach ó ealaíontóirí nó i margaí tánaisteacha.", + "page-dapps-dapp-description-synthetix": "Is prótacal é Synthetix chun sócmhainní sintéiseacha a eisiúint agus a thrádáil", + "page-dapps-dapp-description-uniswap": "Babhtáil comharthaí go simplí nó cuir comharthaí ar fáil do % luaíochtaí.", + "page-dapps-dapp-description-xmtp": "Seol teachtaireachtaí idir cuntais blocshlabhra, lena n‑áirítear DManna, foláirimh, fógraí agus eile.", + "page-dapps-dapp-description-yearn": "Is comhbhailitheoir torthaí é Yearn Finance. Bealach a thabhairt do dhaoine aonair, OSCanna agus prótacail eile chun sócmhainní digiteacha a thaisceadh agus toradh a fháil.", + "page-dapps-docklink-dapps": "Réamhrá le daipeanna", + "page-dapps-docklink-smart-contracts": "Conarthaí cliste", + "page-dapps-dark-forest-logo-alt": "Lógó Foraoise Dorcha", + "page-dapps-decentraland-logo-alt": "Lógó Decentraland", + "page-dapps-index-coop-logo-alt": "Lógó Coop logo", + "page-dapps-nexus-mutual-logo-alt": "Lógó Nexus Mutual", + "page-dapps-etherisc-logo-alt": "Lógó Etherisc", + "page-dapps-zapper-logo-alt": "Lógó Zapper", + "page-dapps-zerion-logo-alt": "Lógó Zerion", + "page-dapps-rotki-logo-alt": "Lógó Rotki", + "page-dapps-krystal-logo-alt": "Lógó Crystal", + "page-dapps-synthetix-logo-alt": "Lógó Synthetix", + "page-dapps-desc": "Aimsigh feidhmchlár Ethereum chun triail a bhaint as.", + "page-dapps-doge-img-alt": "Léaráid de mhadra atá ag úsáid ríomhaire", + "page-dapps-editors-choice-dark-forest": "Imirt i gcoinne daoine eile chun cancas a dhéanamh ar phláinéid agus triail a bhaint as teicneolaíocht scálaithe/príobháideachais Ethereum atá ar thús cadhnaíochta. B'fhéidir ceann amháin dóibh siúd atá eolach ar Ethereum cheana féin.", + "page-dapps-editors-choice-foundation": "Infheistiú i gcultúr. Ceannaigh, trádáil, agus díol saothar ealaíne digiteach uathúil agus faisin ó roinnt ealaíontóirí, ceoltóirí agus brandaí fíormhaith.", + "page-dapps-editors-choice-pooltogether": "Ceannaigh ticéad don chrannchur nach féidir a chailleadh. Gach seachtain, seoltar an t-ús a ghintear ón linn ticéad iomlán chuig buaiteoir ámharach amháin. Faigh do chuid airgid ar ais aon uair is mian leat.", + "page-dapps-editors-choice-uniswap": "Babhtáil do chuid comharthaí gan stró. Rogha choitianta an phobail a ligeann duit comharthaí a thrádáil le daoine ar fud an líonra.", + "page-dapps-ens-logo-alt": "Lógó Sheirbhís Ainm Ethereum", + "page-dapps-explore-dapps-description": "Tá go leor daipeanna fós turgnamhach, agus iad ag tástáil féidearthachtaí na líonraí díláraithe. Ach d’éirigh go maith le roinnt daoine a d’aistrigh go luath sna catagóirí teicneolaíochta, airgeadais, cluichíochta agus earraí inbhailithe.", + "page-dapps-explore-dapps-title": "Foghlaim faoi dhaipeanna", + "page-dapps-features-1-description": "Tráth a n-úsáidfear ar Ethereum é, ní féidir cód daipe a bhaint anuas. Agus is féidir le duine ar bith gnéithe na daipe a úsáid. Fiú dá scaoilfeadh an fhoireann taobh thiar den daip d’fhéadfá é a úsáid fós. Má chuirtear é le hEthereum, níl aon éalú uaidh.", + "page-dapps-features-1-title": "Gan úinéirí", + "page-dapps-features-2-description": "Ní féidir bac a chur ort daip a úsáid nó idirbhearta a chur isteach. Mar shampla, dá mbeadh Twitter ar Ethereum, ní fhéadfadh duine ar bith do chuntas a bhlocáil ná tú a stopadh ó bheith ag giolcaireacht.", + "page-dapps-features-2-title": "Saor ó chinsireacht", + "page-dapps-features-3-description": "Toisc go bhfuil ETH ag Ethereum, tá na híocaíochtaí dúchasach d'Ethereum. Ní gá d'fhorbróirí am a chaitheamh ag comhtháthú le soláthraithe íocaíochta tríú páirtí.", + "page-dapps-features-3-title": "Íocaíochtaí ionsuite", + "page-dapps-features-4-description": "Is minic a bhíonn cód Daipe oscailte agus comhoiriúnach de réir réamhshocraithe. Is minic a bhíonn foireann ag úsáid oibre de chuid foirne eile. Más mian leat ligean d’úsáideoirí comharthaí a mhalartú i do dhaip, níl le déanamh ach cód daipe eile a chur isteach.", + "page-dapps-features-4-title": "Ceangail leis agus imir leat", + "page-dapps-features-5-description": "Leis an gcuid is mó daipeanna, ní gá duit do chéannacht sa saol fíor a roinnt. Is é do chuntas Ethereum do logáil isteach agus níl uait ach sparán.", + "page-dapps-features-5-title": "Logáil anaithnid amháin", + "page-dapps-features-6-description": "Tríd an gcripteagrafaíocht cinntítear nach féidir le hionsaitheoirí idirbhearta agus idirghníomhaíochtaí daipeanna eile a bhrionnú ar do shon. Údaraíonn tusa gníomhartha daipeanna le do chuntas Ethereum - de ghnáth trí do sparán - ionas go bhfanfaidh do dhintiúir slán.", + "page-dapps-features-6-title": "Le tacaíocht ó chripteagrafaíocht", + "page-dapps-features-7-description": "Nuair a bheidh an daip beo ar Ethereum, ní rachaidh sé síos ach amháin má théann Ethereum féin síos. Tá sé thar a bheith deacair ionsaí a dhéanamh ar líonraí ar cómhéid le hEthereum.", + "page-dapps-features-7-title": "Níl aon aga neamhfhónaimh ann", + "page-dapps-finance-benefits-1-description": "Níl aon riachtanais chun síniú isteach ag na seirbhísí airgeadais a ritheann ar Ethereum. Má tá cistí agus nasc idirlín agat, tá tú réidh le tosú.", + "page-dapps-finance-benefits-1-title": "Rochtain oscailte", + "page-dapps-finance-benefits-2-description": "Tá domhan iomlán comharthaí ann ar féidir leat idirghníomhú leo trí na táirgí airgeadais seo. Tá daoine ag tógáil comharthaí nua ar bharr Ethereum an t-am ar fad.", + "page-dapps-finance-benefits-2-title": "Geilleagar nua comharthaí", + "page-dapps-finance-benefits-3-description": "Tá stablecoins tógtha ag foirne – criptea-airgeadra nach bhfuil chomh luaineach céanna. Ligeann siad seo duit triail a bhaint as crypto agus é a úsáid gan riosca agus neamhchinnteacht.", + "page-dapps-finance-benefits-3-title": "Stablecoins", + "page-dapps-finance-benefits-4-description": "Is modúlach agus comhoiriúnach dá chéile atá an uile tháirge airgeadais i spás Ethereum. Tá cumraíochtaí nua de na modúil seo ag teacht chun cinn ar an margadh an t‑am ar fad, agus leis sin tá méadú ag teacht ar an méid is féidir leat a dhéanamh le do chuid crypto.", + "page-dapps-finance-benefits-4-title": "Seirbhísí idirnasctha airgeadais", + "page-dapps-finance-benefits-description": "Cad is údar do bhláthú na bhfeidhmchlár airgeadais díláraithe a cheadaítear ar Ethereum?", + "page-dapps-finance-benefits-title": "airgeadas díláraithe", + "page-dapps-finance-button": "Airgeadais", + "page-dapps-finance-description": "Is feidhmchláir iad seo a dhíríonn ar sheirbhísí airgeadais a thógáil aníos trí úsáid a bhaint as criptea-airgeadraí. Tairgeann siad rudaí cosúil le hiasachtú, iasachtaíocht, tuilleamh úis, agus íocaíochtaí príobháideacha - níl aon sonraí pearsanta ag teastáil.", + "page-dapps-finance-title": "Airgeadas díláraithe", + "page-dapps-foundation-logo-alt": "Lógó an fhorais", + "page-dapps-gaming-benefits-1-description": "Cibé an talamh fíorúil nó cártaí trádála é, is féidir do chuid earraí a thrádáil ar mhargaí inbhailithe. Tá luach fíordhomhanda ag do chuid míreanna ion‑chluiche.", + "page-dapps-gaming-benefits-1-title": "Féadfar míreanna cluiche a úsáid mar chomharthaí", + "page-dapps-gaming-benefits-2-description": "Is leatsa do chuid earraí, agus i gcásanna áirithe is leatsa do dhul chun cinn, ní le cuideachtaí cluiche. Mar sin ní chaillfidh tú rud ar bith má dhéantar ionsaí ar an gcuideachta taobh thiar den chluiche, má fhulaingíonn sé mífheidhmiú freastalaí, nó má scoireann sé.", + "page-dapps-gaming-benefits-2-title": "Tá an tsábháil slán", + "page-dapps-gaming-benefits-3-description": "Ar an mbealach céanna tá íocaíochtaí Ethereum ar fáil do dhuine ar bith le fíorú, is féidir le cluichí an caighdeán seo a úsáid chun cothroime a chinntiú. Go teoiriciúil, tá gach rud infhíoraithe ó líon na n-amas criticiúil go dtí méid cófra cogaidh an chéile comhraic.", + "page-dapps-gaming-benefits-3-title": "Cothroime inchruthaithe", + "page-dapps-gaming-benefits-description": "Cad is údar do bhláthú na cluichíochta díláraithe a cheadaítear ar Ethereum?", + "page-dapps-gaming-benefits-title": "cluichíocht dhíláraithe", + "page-dapps-gaming-button": "Cluichíocht", + "page-dapps-gaming-description": "Is feidhmchláir iad seo ina ndírítear ar dhomhain fhíorúil a chruthú agus a mbíonn troid ann le himreoirí eile trí úsáid a bhaint as earraí inbhailithe a bhfuil luach fíorshaoil ​​acu.", + "page-dapps-gaming-title": "Cluichíocht dhíláraithe", + "page-dapps-get-some-eth-description": "Cosnaíonn gníomhartha daipe táille idirbhirt", + "page-dapps-get-started-subtitle": "Chun dapp a thriail, beidh sparán agus roinnt ETH uait. Ligfidh sparán duit nascadh, nó logáil isteach. Agus beidh cuid ETH de dhíth ort chun aon táillí idirbhirt a íoc.", + "page-dapps-get-started-title": "Cuir tús leis", + "page-dapps-gitcoin-grants-logo-alt": "Lógó Gitcoin Grants", + "page-dapps-gitcoin-logo-alt": "Lógó Gitcoin", + "page-dapps-gm-logo-alt": "lógó gm.xyz", + "page-dapps-gods-unchained-logo-alt": "Lógó Gods Unchained", + "page-dapps-golem-logo-alt": "Lógó Golem", + "page-dapps-graph-logo-alt": "Lógó Graph", + "page-dapps-radicle-logo-alt": "Lógó Radicle", + "page-dapps-hero-header": "Uirlisí agus seirbhísí faoi thiomáint Ethereum", + "page-dapps-hero-subtitle": "Is gluaiseacht méadaithe d’fheidhmchláir iad Daipeanna a úsáideann Ethereum chun cur isteach ar mhúnlaí gnó nó chun múnlaí nua gnó a chumadh.", + "page-dapps-how-dapps-work-p1": "Tá a gcód inneall (conarthaí cliste) ag daipeanna a ritheann ar líonra díláraithe agus ní ar fhreastalaí láraithe. Úsáideann siad blocshlabhra Ethereum chun sonraí a stóráil agus conarthaí cliste dá loighic aipeanna.", + "page-dapps-how-dapps-work-p3": "Nuair a bhíonn daipeanna úsáidte ar líonra Ethereum ní féidir leat iad a athrú. Is féidir daipeanna a dhílárú toisc go bhfuil siad á rialú ag an loighic atá scríofa sa chonradh, ní ag duine aonair nó ag cuideachta.", + "page-dapps-how-dapps-work-title": "Conas a oibríonn Dapps", + "page-dapps-ipfs-logo-alt": "Lógó IPFS", + "page-dapps-kyberswap-logo-alt": "Lógó KyberSwap", + "page-dapps-learn-callout-button": "Cuir tús leis an tógáil", + "page-dapps-learn-callout-description": "Tá doiciméid, uirlisí agus creataí ar ár dtairseach forbróra pobail chun cabhrú leat daipeanna a thógáil.", + "page-dapps-learn-callout-image-alt": "Léaráid de lámh ag tógáil shiombail ETH as brící lego.", + "page-dapps-learn-callout-title": "Foghlaim conas daip a thógáil", + "page-dapps-lido-logo-alt": "Lógó Lido", + "page-dapps-loopring-logo-alt": "Lógó Loopring", + "page-dapps-magic-behind-dapps-description": "Seans go gceapfaidh tú go bhfuil daipeanna mar aipeanna eile. Ach sa chúlra tá roinnt cáilíochtaí speisialta acu mar go bhfaigheann siad gach ceann de shárchumhachtaí Ethereum. Seo an méid a dhéanann daipeanna ar dhóigh éagsúil ó aipeanna.", + "page-dapps-magic-behind-dapps-link": "Cad is cúis le neart Ethereum?", + "page-dapps-magic-behind-dapps-title": "An draíocht taobh thiar de dhaipeanna", + "page-dapps-magic-title-1": "An draíocht", + "page-dapps-magic-title-2": "taobh thiar", + "page-dapps-magician-img-alt": "Léarráid de dhraíodóirí", + "page-dapps-marble-cards-logo-alt": "Lógó marmair.cards", + "page-dapps-async-logo-alt": "Lógó Async", + "page-dapps-matcha-logo-alt": "Lógó Matcha", + "page-dapps-meeds-logo-alt": "Lógó Meeds", + "page-dapps-metaverse-benefits-title": "metaverse", + "page-dapps-metaverse-benefits-description": "Cad is cúis le ráth na meiteachruinne ar Ethereum?", + "page-dapps-metaverse-benefits-1-title": "NFTanna", + "page-dapps-metaverse-benefits-1-description": "Míreanna uathúla ion-chluiche atá faoi úinéireacht úsáideoirí agus atá idir-inoibritheach ar fud an domhain fhíorúil agus áiteanna margaidh a thacaíonn leis na caighdeáin chéanna.", + "page-dapps-metaverse-benefits-2-title": "Pobail faoi úinéireacht úsáideoirí", + "page-dapps-metaverse-benefits-2-description": "Is leis na húsáideoirí céannachtaí agus tá deiseanna gan teorainn acu líonraí sóisialta a fhiosrú agus a chruthú ar fud an iliomad saol fíorúil.", + "page-dapps-metaverse-button": "Meiteachruinne", + "page-dapps-metaverse-title": "Meiteachruinne", + "page-dapps-metaverse-description": "Feidhmchláir iad seo a chuireann ar chumas úsáideoirí páirt a ghlacadh gan bhac i saol fíorúil. Is féidir le húsáideoirí líonraí pearsanta a fhoirmiú agus úinéireacht a ghlacadh ar shócmhainní digiteacha", + "page-dapps-mirror-logo-alt": "Lógó Mirror", + "page-dapps-mobile-options-header": "Brabhsáil catagóir eile", + "page-dapps-multichain-logo-alt": "Lógó Multichain", + "page-dapps-nifty-gateway-logo-alt": "Lógó Nifty Gateway", + "page-dapps-summerfi-logo-alt": "Lógó Summer.fi", + "page-dapps-opensea-logo-alt": "Lógó OpenSea", + "page-dapps-opera-logo-alt": "Lógó Opera", + "page-dapps-osuvox-logo-alt": "Lógó OSUVOX", + "page-dapps-polymarket-logo-alt": "Lógó Polymarket", + "page-dapps-poap-logo-alt": "Lógó Prótacal Cruthúnas Tinrimh", + "page-dapps-pooltogether-logo-alt": "Lógó PoolTogether", + "page-dapps-rarible-logo-alt": "Lógó Rarible", + "page-dapps-ready-button": "Téigh", + "page-dapps-ready-description": "Roghnaigh daip le triail a bhaint as", + "page-dapps-ready-title": "Réidh?", + "page-dapps-request-finance-logo-alt": "Lógó Request Finance", + "page-dapps-rubic-logo-alt": "Lógó Rubic", + "page-dapps-sablier-logo-alt": "Lógó Sablier", + "page-dapps-set-up-a-wallet-button": "Faigh sparán", + "page-dapps-set-up-a-wallet-description": "Is éard is sparán ann ná do “logáil isteach” le haghaidh daipe", + "page-dapps-set-up-a-wallet-title": "Socraigh sparán", + "page-dapps-social-button": "Sóisialta", + "page-dapps-social-description": "Is feidhmchláir iad seo a dhíríonn ar líonraí sóisialta díláraithe a chruthú trí úsáid a bhaint as teicneolaíochtaí céannachta díláraithe ina bhfuil céannachtaí digiteacha agus graif shóisialta faoi úinéireacht na n‑úsáideoirí.", + "page-dapps-social-title": "Sóisialta", + "page-dapps-spatial-logo-alt": "Lógó Spatial", + "page-dapps-spruce-logo-alt": "Lógó Spruce", + "page-dapps-status-logo-alt": "Lógó Status", + "page-dapps-superrare-logo-alt": "Lógó SuperRare", + "page-dapps-technology-button": "Teicneolaíocht", + "page-dapps-technology-description": "Is feidhmchláir iad seo a dhíríonn ar uirlisí forbróra a dhílárú, córais cripte-eacnamaíochta a ionchorprú sa teicneolaíocht atá ann cheana féin, agus áiteanna margaidh a chruthú le haghaidh obair forbartha foinse oscailte.", + "page-dapps-technology-title": "Teicneolaíocht dhíláraithe", + "page-dapps-uniswap-logo-alt": "Lógó Uniswap", + "page-dapps-wallet-callout-button": "Faigh sparán", + "page-dapps-wallet-callout-description": "Is daipeanna iad na sparáin. Aimsigh ceann amháin bunaithe ar na gnéithe a oireann duit.", + "page-dapps-wallet-callout-image-alt": "Léaráid de róbait.", + "page-dapps-wallet-callout-title": "Féach ar na sparán", + "page-dapps-warning-header": "Déan do chuid taighde féin i gcónaí", + "page-dapps-warning-message": "Is teicneolaíocht nua é Ethereum agus is nua an chuid is mó de na hiarratais. Sula ndéanann tú aon mhéid mór airgid a thaisceadh, déan cinnte go dtuigeann tú na rioscaí.", + "page-dapps-what-are-dapps": "Cad iad daipeanna?", + "page-dapps-more-on-defi-button": "Tuilleadh faoi airgeadas díláraithe", + "page-dapps-more-on-nft-button": "Tuilleadh faoi earraí inbhailithe téacschomharthaithe", + "page-dapps-more-on-nft-gaming-button": "Tuilleadh faoi mhíreanna théacschomharthaithe ion‑chluiche", + "page-dapps-dapp-description-pwn": "Iasachtaí éasca le tacaíocht ó chomhartha nó NFTanna ar bith ar Ethereum.", + "page-dapps-pwn-image-alt": "Lógó PWN", + "page-dapps-xmtp-logo-alt": "Lógó XMTP", + "opage-dapps-yearn-logo-alt": "Lógó Yearn", + "page-dapps-yearn-image-alt": "Lógó Yearn", + "page-dapps-convex-image-alt": "Lógó Convex", + "foundation": "Fondúireacht", + "page-wallets-get-some": "Faigh roinnt ETH", + "page-dapps-dapp-description-curve": "Is dex dírithe ar stablecoins é Curve", + "page-dapps-curve-image-alt": "Lógó Curve", + "page-dapps-dodo-image-alt": "Lógó DODO", + "page-dapps-dapp-description-artblocks": "Tá Art Blocks tiomanta do shaothair láidre ealaíne giniúna comhaimseartha a thabhairt chun beatha", + "page-dapps-artblocks-image-alt": "Lógó Art Blocks", + "page-dapps-explore-title": "An bhfuil fonn ort tuilleadh aipeanna a bhrabhsáil?", + "page-dapps-explore": "Seiceáil na céadta daipeanna" +} diff --git a/src/intl/ga/page-developers-docs.json b/src/intl/ga/page-developers-docs.json new file mode 100644 index 00000000000..3379ffb2269 --- /dev/null +++ b/src/intl/ga/page-developers-docs.json @@ -0,0 +1,154 @@ +{ + "docs-nav-accounts": "Cuntais", + "docs-nav-accounts-description": "Aonáin sa líonra atá in ann iarmhéid a shealbhú agus idirbhearta a sheoladh", + "docs-nav-advanced": "Casta", + "docs-nav-backend-apis": "APIanna cúldeiridh", + "docs-nav-block-explorers": "Bloc taiscéalaithe", + "docs-nav-blocks": "Bloic", + "docs-nav-blocks-description": "An bealach a dhéantar idirbhearta a bhaisceadh lena chinntiú go ndéantar an stát a shioncronú thar na gníomhaithe go léir", + "docs-nav-bridges": "Droichid", + "docs-nav-bridges-description": "Forbhreathnú ar traschóiriú d'fhorbróirí", + "docs-nav-compiling-smart-contracts": "Conarthaí cliste a thiomsú", + "docs-nav-composability": "In-chumthacht", + "docs-nav-consensus-mechanisms": "Meicníochtaí comhthola", + "docs-nav-consensus-mechanisms-description": "Conas a aontaíonn nóid aonair i líonra dáilte staid reatha an chórais", + "docs-nav-gasper": "Gasper", + "docs-nav-weak-subjectivity": "Suibiachtúlacht lag", + "docs-nav-attestations": "Fianuithe", + "docs-nav-keys": "Eochracha", + "docs-nav-block-proposal": "Togra blocála", + "docs-nav-data-and-analytics": "Sonraí agus anailísíocht", + "docs-nav-data-and-analytics-description": "Conas a dhéantar sonraí bhlocshlabhra a chomhiomlánú, a eagrú agus a chur i bhfeidhm in dapps", + "docs-nav-data-availability": "Infhaighteacht sonraí", + "docs-nav-data-availability-storage-strategies": "Straitéisí stórála sonraí Bhlocshlabhra", + "docs-nav-dart": "Dart", + "docs-nav-delphi": "Delphi", + "docs-nav-deploying-smart-contracts": "Conarthaí cliste a imscaradh", + "docs-nav-design-and-ux": "Réamhrá don dearadh agus UX", + "docs-nav-design-and-ux-description": "Réamhrá le dearadh UX agus taighde i spás web3 agus Ethereum", + "docs-nav-design-fundamentals": "Bunphrionsabail dearaidh", + "docs-nav-development-frameworks": "Creataí forbartha", + "docs-nav-development-frameworks-description": "Uirlisí a éascaíonn forbairt le Ethereum", + "docs-nav-development-networks": "Líonraí forbartha", + "docs-nav-development-networks-description": "Timpeallachtaí blocshlabhra áitiúla a úsáidtear chun dapps a thástáil roimh imscaradh", + "docs-nav-dex-design-best-practice": "Dea-chleachtais dearaidh Malartú Díláraithe (DEX)", + "docs-nav-dot-net": ".NET", + "docs-nav-elixir": "Elixir", + "docs-nav-erc-20": "ERC-20: Comharthaí Idirmhalartacha", + "docs-nav-erc-721": "ERC-721: NFTs", + "docs-nav-erc-777": "ERC-777", + "docs-nav-erc-1155": "ERC-1155", + "docs-nav-erc-4626": "ERC-4626", + "docs-nav-ethereum-client-apis": "API cliant Ethereum", + "docs-nav-ethereum-client-apis-description": "Leabharlanna áise a ligeann do app gréasáin idirghníomhú le Ethereum agus conarthaí cliste", + "docs-nav-ethereum-stack": "Cruach Ethereum", + "docs-nav-evm": "Meaisín fíorúil Ethereum (EVM)", + "docs-nav-evm-description": "Láimhseálann an EVM an ríomh ar fad ar líonra Ethereum", + "docs-nav-foundational-topics": "Bunábhair", + "docs-nav-gas": "Gás", + "docs-nav-gas-description": "An chumhacht ríomhaireachtúil a theastaíonn chun idirbhearta a phróiseáil, a íocann seoltóirí idirbheart as in ETH", + "docs-nav-golang": "Golang", + "docs-nav-heuristics-for-web3": "Heorastaic do Web3", + "docs-nav-integrated-development-environments-ides": "Timpeallachtaí Forbartha Comhtháite (IDEanna)", + "docs-nav-integrated-development-environments-ides-description": "Na timpeallachtaí is fearr chun cód dapp a scríobh", + "docs-nav-intro-to-dapps": "Réamhrá le daipeanna", + "docs-nav-intro-to-dapps-description": "Réamheolas ar fheidhmchláir dhíláraithe", + "docs-nav-intro-to-ether": "Réamhrá don Éitear", + "docs-nav-intro-to-ether-description": "Forbhreathnú tapa ar Éitear", + "docs-nav-intro-to-ethereum": "Réamhrá le hEthereum", + "docs-nav-intro-to-ethereum-description": "Forbhreathnú tapa ar Ethereum", + "docs-nav-intro-to-the-stack": "Réamhrá don chruach", + "docs-nav-intro-to-the-stack-description": "Forbhreathnú ar chruach Ethereum/web3", + "docs-nav-java": "Java", + "docs-nav-java-script-apis": "JavaScript APIs", + "docs-nav-javascript": "JavaScript", + "docs-nav-json-rpc": "JSON-RPC", + "docs-nav-mev": "Uasluach inbhainte (MEV)", + "docs-nav-mev-description": "Conas a bhaintear luach as an blockchain Ethereum thar an luach saothair bloc", + "docs-nav-mining": "Mianadóireacht", + "docs-nav-mining-algorithms": "Algartaim mianadóireachta", + "docs-nav-dagger-hashimoto": "Dagger-Hashimoto", + "docs-nav-ethash": "Ethash", + "docs-nav-networks": "Líonraí", + "docs-nav-networks-description": "Cur i bhfeidhm Ethereum lena n-áirítear líonraí tástála", + "docs-nav-nodes-and-clients": "Nóid agus cliaint", + "docs-nav-nodes-and-clients-description": "Na daoine aonair atá rannpháirteach sa líonra agus na bogearraí a ritheann siad chun idirbhearta a fhíorú", + "docs-nav-opcodes": "Opcodes", + "docs-nav-run-a-node": "Rith nód", + "docs-nav-client-diversity": "Éagsúlacht cliant", + "docs-nav-bootnodes": "Cóid bhóta", + "docs-nav-light-clients": "Cliaint éadrom", + "docs-nav-nodes-as-a-service": "Nóid mar sheirbhís", + "docs-nav-oracles": "Oracail", + "docs-nav-oracles-description": "Conas faisnéis a instealladh isteach sa blockchain Ethereum", + "docs-nav-programming-languages": "Teangacha ríomhchlárúcháin", + "docs-nav-programming-languages-description": "Conas tosú le Ethereum ag baint úsáide as teangacha a d'fhéadfadh a bheith agat cheana féin", + "docs-nav-proof-of-authority": "Cruthúnas-de-údarás", + "docs-nav-proof-of-stake": "Cruthúnas-de-geall", + "docs-nav-proof-of-work": "Cruthúnas-ar-obair", + "docs-nav-python": "Python", + "docs-nav-readme": "Forbhreathnú", + "docs-nav-ruby": "Ruby", + "docs-nav-rust": "Rust", + "docs-nav-scaling": "Scálú", + "docs-nav-scaling-description": "Modhanna chun dílárú agus slándáil a chaomhnú de réir mar a fhásann Ethereum", + "docs-nav-scaling-optimistic-rollups": "Rollaí Optamacha", + "docs-nav-scaling-zk-rollups": "Rollaí Leibhéal Eolais Nialasach", + "docs-nav-scaling-channels": "Cainéil stáit", + "docs-nav-scaling-sidechains": "Taobhshlabhraí", + "docs-nav-scaling-plasma": "Plasma", + "docs-nav-scaling-validium": "Validium", + "docs-nav-smart-contract-security": "Slándáil chonartha cliste", + "docs-nav-smart-contract-security-description": "Dea-chleachtais chun ionsaithe agus leochaileachtaí conartha cliste a bhainistiú", + "docs-nav-smart-contract-formal-verification": "Fíorú foirmiúil conradh cliste", + "docs-nav-smart-contract-formal-verification-description": "Fíorú foirmiúil a thabhairt isteach i gcomhthéacs conarthaí cliste Ethereum", + "docs-nav-smart-contract-anatomy": "Anatamaíocht conradh cliste", + "docs-nav-smart-contract-languages": "Teangacha conartha cliste", + "docs-nav-smart-contracts": "Conarthaí cliste", + "docs-nav-smart-contracts-description": "Cláir a bhfuil cónaí orthu ag seoladh Ethereum agus a ritheann feidhmeanna nuair a spreagann idirbhearta iad", + "docs-nav-smart-contracts-libraries": "Leabharlanna conarthaí cliste", + "docs-nav-standards": "Caighdeáin", + "docs-nav-standards-description": "Comhaontaithe ar phrótacail chun éifeachtúlacht agus inrochtaineacht na dtionscadal don phobal a chothabháil", + "docs-nav-storage": "Stóráil", + "docs-nav-storage-description": "Struchtúir agus meicníocht stórála díláraithe", + "docs-nav-testing-smart-contracts": "Conarthaí cliste a thástáil", + "docs-nav-token-standards": "Caighdeáin comharthaí", + "docs-nav-transactions": "Idirbhearta", + "docs-nav-transactions-description": "Aistrithe agus gníomhartha eile a chuireann faoi deara go n-athraíonn staid Ethereum", + "docs-nav-upgrading-smart-contracts": "Uasghrádú conarthaí cliste", + "docs-nav-verifying-smart-contracts": "Conarthaí cliste a fhíorú", + "docs-nav-web2-vs-web3": "Web2 vs Web3", + "docs-nav-web2-vs-web3-description": "Na difríochtaí bunúsacha a sholáthraíonn iarratais atá bunaithe ar bhlocshlabhra", + "docs-nav-networking-layer": "Ciseal líonraithe", + "docs-nav-networking-layer-description": "Míniú ar chiseal líonraithe Ethereum", + "docs-nav-networking-layer-network-addresses": "Seoltaí líonra", + "docs-nav-networking-layer-portal-network": "Líonra Tairseach", + "docs-nav-data-structures-and-encoding": "Struchtúir sonraí agus ionchódú", + "docs-nav-data-structures-and-encoding-description": "Míniú ar na struchtúir sonraí agus an scéimre ionchódaithe a úsáidtear ar fud chruach Ethereum", + "docs-nav-data-structures-and-encoding-rlp": "Réimír fad athfhillteach (RLP)", + "docs-nav-data-structures-and-encoding-patricia-merkle-trie": "Patricia Merkle Trie", + "docs-nav-data-structures-and-encoding-ssz": "Sraithuimhir shimplí (SSZ)", + "docs-nav-data-structures-and-encoding-web3-secret-storage": "Web3 sainmhíniú ar stóráil rúnda", + "docs-nav-rewards-and-penalties": "Luaíochtaí agus pionóis PoS", + "docs-nav-node-architecture": "Ailtireacht nód", + "docs-nav-archive-nodes": "Nóid chartlainne", + "docs-nav-attack-and-defense": "Ionsaí agus cosaint PoS", + "docs-nav-pos-vs-pow": "Cruthúnas geallta i gcoinne cruthúnas oibre", + "docs-nav-pos-faqs": "Ceisteanna Coitianta cruthúnas-geallta", + "page-calltocontribute-desc-1": "Más saineolaí thú ar an ábhar agus más mian leat cur leis, cuir an leathanach seo in eagar agus cuir do ghaois leis.", + "page-calltocontribute-desc-2": "Tabharfar creidiúint duit agus beidh tú ag cabhrú le pobal Ethereum!", + "page-calltocontribute-desc-3": "Bain úsáid as an solúbtha seo", + "page-calltocontribute-desc-4": "Ceisteanna? Cuir ceist orainn sa chainéal #ábhar ar ár", + "page-calltocontribute-link": "dteimpléad doiciméadaithe", + "page-calltocontribute-link-2": "Freastalaí discord", + "page-calltocontribute-span": "Cuir leathanach in eagar", + "page-calltocontribute-title": "Cabhraigh linn leis an leathanach seo", + "layer-2-arbitrum-note": "Cruthuithe calaoise d'úsáideoirí bánliosta amháin, níl an liosta bán oscailte fós", + "layer-2-boba-note": "Bailíochtú stáit i bhforbairt", + "layer-2-metis-note": "Cruthúnas calaoise i bhforbairt", + "layer-2-optimism-note": "Cruthúnas lochtanna i bhforbairt", + "back-to-top": "Ar ais go barr", + "banner-page-incomplete": "Tá an leathanach seo neamhiomlán agus ba bhreá linn do chabhair. Cuir an leathanach seo in eagar agus cuir leis aon rud a cheapann tú a d’fhéadfadh a bheith úsáideach do dhaoine eile.", + "next": "Ar Aghaidh", + "previous": "Roimhe Seo" +} diff --git a/src/intl/ga/page-developers-index.json b/src/intl/ga/page-developers-index.json new file mode 100644 index 00000000000..9fff53e8407 --- /dev/null +++ b/src/intl/ga/page-developers-index.json @@ -0,0 +1,98 @@ +{ + "page-developer-meta-title": "Acmhainní Forbróirí Ethereum", + "page-developers-about": "Maidir leis na hacmhainní seo forbróra", + "page-developers-about-desc": "tá ethereum.org anseo chun cabhrú leat tógáil le Ethereum le doiciméadú ar choincheapa bunúsacha chomh maith leis an gcruach forbartha. Chomh maith leis sin tá ranganna teagaisc ann chun tú a chur ar bun agus a reáchtáil.", + "page-developers-about-desc-2": "Agus Líonra Forbróirí Mozilla mar spreagadh dúinn, cheapamar go raibh áit ag teastáil ó Ethereum chun ábhar agus acmhainní iontacha forbróra a sheasamh. Cosúil lenár gcairde ag Mozilla, forbraíodh gach rud anseo trí fhoinse oscailte agus tá sé réidh duit a leathnú agus a fheabhsú.", + "page-developers-account-desc": "Conarthaí nó daoine ar an líonra", + "page-developers-accounts-link": "Cuntais", + "page-developers-advanced": "Casta", + "page-developers-api-desc": "Leabharlanna a úsáid chun idirghníomhú le conarthaí cliste", + "page-developers-api-link": "APIanna cúldeiridh", + "page-developers-block-desc": "Baisceanna na n-idirbheart a cuireadh leis an mblocshlabhra", + "page-developers-block-explorers-desc": "Do thairseach chuig sonraí Ethereum", + "page-developers-block-explorers-link": "Bloc taiscéalaithe", + "page-developers-blocks-link": "Bloic", + "page-developers-browse-tutorials": "Brabhsáil ranganna teagaisc", + "page-developers-choose-stack": "Roghnaigh do chruach", + "page-developers-contribute": "Cuir leis", + "page-developers-dev-env-desc": "IDEanna atá oiriúnach le haghaidh forbairt daipeanna", + "page-developers-dev-env-link": "Timpeallachtaí forbartha", + "page-developers-discord": "Bí le Discord", + "page-developers-docs-introductions": "Réamhráite", + "page-developers-evm-desc": "An ríomhaire a phróiseálann idirbhearta", + "page-developers-evm-link": "An meaisín fíorúil Ethereum (EVM)", + "page-developers-explore-documentation": "Foghlaim faoi na doiciméid", + "page-developers-feedback": "Má tá aon aiseolas agat, déan teagmháil linn trí cheist GitHub nó ar ár bhfreastalaí Discord.", + "page-developers-frameworks-desc": "Uirlisí chun cabhrú le forbairt a bhrostú", + "page-developers-frameworks-link": "Creataí forbartha", + "page-developers-fundamentals": "Bunghnéithe", + "page-developers-gas-desc": "Éitear is gá chun idirbhearta a chumhachtú", + "page-developers-gas-link": "Gás", + "page-developers-get-started": "Conas ba mhaith leat tosú?", + "page-developers-improve-ethereum": "Cabhraigh linn ethereum.org a fheabhsú", + "page-developers-improve-ethereum-desc": "Cosúil le ethereum.org, is iarracht phobail iad na doiciméid seo. Cruthaigh PR má fheiceann tú botúin, ábhair is gá feabhsú, nó deiseanna nua chun cabhrú le forbróirí Ethereum.", + "page-developers-into-eth-desc": "Cur i láthair faoi bhlocshlabhra agus Ethereum", + "page-developers-intro-ether-desc": "Réamhrá ar an gcriptea-airgeadra agus ar Éitear", + "page-developers-intro-dapps-desc": "Réamheolas ar fheidhmchláir dhíláraithe", + "page-developers-intro-dapps-link": "Réamhrá le daipeanna", + "page-developers-intro-eth-link": "Réamhrá le hEthereum", + "page-developers-intro-ether-link": "Réamhrá don Éitear", + "page-developers-intro-stack": "Réamhrá don chruach", + "page-developers-intro-stack-desc": "Cur i láthair faoi chruach Ethereum", + "page-developers-js-libraries-desc": "Úsáid a bhaint as JavaScript chun idirghníomhú le conarthaí cliste", + "page-developers-js-libraries-link": "Leabharlanna Javascript", + "page-developers-language-desc": "Úsáid a bhaint as Ethereum le teangacha atá ar eolas agat", + "page-developers-languages": "Teangacha ríomhchlárúcháin", + "page-developers-learn": "Foghlaim faoi fhorbairt Ethereum", + "page-developers-learn-desc": "Léigh tuilleadh ar na croíchoincheapa agus ar chruach Ethereum lenár ndoiciméid.", + "page-developers-learn-tutorials": "Foghlaim trí ranganna teagaisc", + "page-developers-learn-tutorials-cta": "Féach ar ranganna teagaisc", + "page-developers-learn-tutorials-desc": "Foghlaim céim ar chéim le forbairt Ethereum ó thógálaithe a rinne é cheana féin.", + "page-developers-meta-desc": "Cáipéisí, ranganna teagaisc agus uirlisí d'fhorbróirí atá ag tógáil ar Ethereum.", + "page-developers-mev-desc": "Réamheolas ar an uasluach inbhainte (MEV)", + "page-developers-mev-link": "Uasluach inbhainte (MEV)", + "page-developers-mining-desc": "Conas a chruthaítear bloic nua agus conas a thángthas ar chomhdhearcadh trí úsáid a bhaint as cruthúnas oibre", + "page-developers-mining-link": "Mianadóireacht", + "page-developers-mining-algorithms-desc": "Eolas ar halgartaim mianadóireachta Ethereum", + "page-developers-mining-algorithms-link": "Algartaim mianadóireachta", + "page-developers-networks-desc": "Forbhreathnú ar Mainnet agus na líonraí tástála", + "page-developers-networks-link": "Líonraí", + "page-developers-node-clients-desc": "Conas a dhéantar bloic agus idirbhearta a fhíorú sa líonra", + "page-developers-node-clients-link": "Nóid agus cliaint", + "page-developers-oracles-link": "Oracail", + "page-developers-play-code": "Seinn le cód", + "page-developers-read-docs": "Léigh na doiciméid", + "page-developers-scaling-desc": "Réitigh le haghaidh idirbhearta níos tapúla", + "page-developers-scaling-link": "Scálú", + "page-developers-smart-contract-security-desc": "Bearta slándála le breithniú le linn conarthaí cliste a fhorbairt", + "page-developers-smart-contract-security-link": "Slándáil chonartha cliste", + "page-developers-set-up": "Timpeallacht áitiúil a bhunú", + "page-developers-setup-desc": "Faigh do chruach réidh le tógáil trí thimpeallacht forbartha a chumrú.", + "page-developers-smart-contracts-desc": "An loighic taobh thiar de dhaipeanna - comhaontuithe féin‑fhorghníomhaithe", + "page-developers-smart-contracts-link": "Conarthaí cliste", + "page-developers-speedrunethereum-title": "Foghlaim na coincheapa is tábhachtaí go léir trí thógáil ar Ethereum", + "page-developers-speedrunethereum-link": "SpeedRun Ethereum", + "page-developers-stack": "An chruach", + "page-developers-start": "Tosaigh ag triail", + "page-developers-start-desc": "Ar mhaith leat triail a bhaint as ar dtús, agus ceisteanna a chur faoi ar ball?", + "page-developers-storage-desc": "Conas stóráil daipeanna a láimhseáil", + "page-developers-storage-link": "Stóráil", + "page-developers-subtitle": "Lámhleabhar do thógálaithe Ethereum saor in aisce. Arna chumadh ag tógálaithe, le haghaidh tógálaithe.", + "page-developers-title-1": "Ethereum", + "page-developers-title-2": "forbróir", + "page-developers-title-3": "acmhainní", + "page-developers-token-standards-desc": "Forbhreathnú ar chaighdeáin chomharthaí a nglactar leo", + "page-developers-token-standards-link": "Caighdeáin comharthaí", + "page-developers-transactions-desc": "An mbealach a n-athraíonn staid Ethereum", + "page-developers-transactions-link": "Idirbhearta", + "page-developers-web3-desc": "Conas atá an domhan forbartha Web3 difriúil", + "page-developers-web3-link": "Web2 vs Web3", + "page-developers-networking-layer": "Ciseal Líonraithe", + "page-developers-networking-layer-link": "Ciseal Líonraithe", + "page-developers-networking-layer-desc": "Réamhrá le ciseal líonraithe Ethereum", + "page-developers-data-structures-and-encoding": "Struchtúir sonraí agus ionchódú", + "page-developers-data-structures-and-encoding-link": "Struchtúir sonraí agus ionchódú", + "page-developers-data-structures-and-encoding-desc": "Réamhrá leis na struchtúir sonraí agus scéimre ionchódaithe a úsáidtear sa chruach Ethereum", + "alt-eth-blocks": "Léaráid de bhloic á n-eagrú mar shiombail ETH", + "page-assets-doge": "Doge ag baint úsáide as dapps" +} diff --git a/src/intl/ga/page-developers-learning-tools.json b/src/intl/ga/page-developers-learning-tools.json new file mode 100644 index 00000000000..c2c91811341 --- /dev/null +++ b/src/intl/ga/page-developers-learning-tools.json @@ -0,0 +1,62 @@ +{ + "page-learning-tools-bloomtech-description": "Múinfidh an cúrsa BloomTech Web3 duit na scileanna atá á lorg ag fostóirí in innealtóirí.", + "page-learning-tools-bloomtech-logo-alt": "Lógó BloomTech", + "page-learning-tools-bootcamps": "Grodchúrsaí forbróirí", + "page-learning-tools-bootcamps-desc": "Cúrsaí ar líne íoctha chun tú a chur ar an eolas go gasta.", + "page-learning-tools-browse-docs": "Brabhsáil doiciméid", + "page-learning-tools-capture-the-ether-description": "Is cluiche é Capture the Ether ina ndéanann tú conarthaí cliste Ethereum a haiceáil chun foghlaim faoi shlándáil.", + "page-learning-tools-capture-the-ether-logo-alt": "Gabh lógó Ether", + "page-learning-tools-node-guardians-description": "Is ardán oideachais a ndearnadh cluiche de é Node Guardians a chuirfidh forbróirí gréasáin3 ar thóraíocht fantaisíochta chun sainscileanna a fháil ar chláir Solidity, Cairo, Noir agus Huff.", + "page-learning-tools-node-guardians-logo-alt": "Lógó Node Guardians", + "page-learning-tools-coding": "Foghlaim trí chódú", + "page-learning-tools-coding-subtitle": "Leis na huirlisí seo cabhrófar leat triail a bhaint as Ethereum más fearr leat eispéireas foghlama níos idirghníomhaí.", + "page-learning-tools-consensys-academy-description": "Grodchúrsa forbróirí Ethereum ar líne.", + "page-learning-tools-consensys-academy-logo-alt": "Lógó ConsenSys Academy", + "page-learning-tools-cryptozombies-description": "Foghlaim Solidity trí chluiche Zombie de do chuid féin a thógáil.", + "page-learning-tools-cryptozombies-logo-alt": "Lógó CryptoZombies", + "page-learning-tools-dapp-world-description": "Éiceachóras breisoiliúna blocshlabhra, lena n‑áirítear cúrsaí, tráth na gceist, cleachtas praiticiúil agus comórtais sheachtainiúla.", + "page-learning-tools-dapp-world-logo-alt": "Lógó Dapp World", + "page-learning-tools-documentation": "Foghlaim le doiciméadú", + "page-learning-tools-documentation-desc": "Ar mhaith leat tuilleadh a fhoghlaim? Téigh chuig ár gcáipéisí chun na mínithe a theastaíonn uait a fháil.", + "page-learning-tools-eth-dot-build-description": "Bosca gainimh oideachais le haghaidh web3, lena n‑áirítear ríomhchlárú tarraing-agus-titim agus bloic tógála foinse oscailte.", + "page-learning-tools-eth-dot-build-logo-alt": "Eth.build lógó", + "page-learning-tools-ethernauts-description": "Leibhéil a chríochnú trí chonarthaí cliste a haiceáil.", + "page-learning-tools-ethernauts-logo-alt": "Lógó Ethernauts", + "page-learning-tools-metaschool-description": "Bí i d'fhorbróir Web3 trí dApps a thógáil agus a sheoladh.", + "page-learning-tools-metaschool-logo-alt": "Lógó _metaschool", + "page-learning-tools-game-tutorials": "Teagaisc cluiche idirghníomhach", + "page-learning-tools-game-tutorials-desc": "Foghlaim agus tú ag imirt. Tugann na ranganna teagaisc seo thú trí na bunghnéithe trí úsáid a bhaint as imirt.", + "page-learning-tools-meta-desc": "Uirlisí códaithe gréasán-bhunaithe agus eispéiris foghlama idirghníomhacha chun cabhrú leat triail a bhaint as forbairt Ethereum.", + "page-learning-tools-meta-title": "Uirlisí foghlama forbróirí", + "page-learning-tools-atlas-logo-alt": "Lógó Atlas", + "page-learning-tools-atlas-description": "Scríobh, tástáil agus úsáid conarthaí cliste faoi chionn cúpla nóiméad le Atlas IDE.", + "page-learning-tools-questbook-description": "Ranganna teagaisc féinluais chun Web 3.0 a fhoghlaim trí thógáil", + "page-learning-tools-questbook-logo-alt": "Lógó Questbook", + "page-learning-tools-remix-description": "Conarthaí cliste a fhorbairt, a úsáid agus a riar le haghaidh Ethereum. Lean na ranganna teagaisc leis an mbreiseán LearnEth.", + "page-learning-tools-remix-description-2": "Ní boscaí gainimh amháin iad Remix, Replit, ChainIDE, agus Atlas - is féidir le forbróirí a gconarthaí cliste a scríobh, a thiomsú agus a úsáid trí leas a bhaint astu", + "page-learning-tools-replit-description": "Timpeallacht forbartha inoiriúnaithe do Ethereum le hathlódáil te, seiceáil earráide agus tacaíocht testnet den chéad scoth.", + "page-learning-tools-chainIDE-description": "Cuir tús le do thuras go Web3 trí chonarthaí cliste a scríobh le haghaidh Ethereum le ChainIDE. Bain úsáid as na teimpléid ionsuite chun foghlama agus d'fhonn am a shábháil.", + "page-learning-tools-chainIDE-logo-alt": "Lógó ChainIDE", + "page-learning-tools-tenderly-description": "Is timpeallacht fréamhshamhaltaithe é Tenderly Sandbox inar féidir leat conarthaí cliste a scríobh, a fhorghníomhú agus a dhífhabhtú sa bhrabhsálaí trí úsáid a bhaint as Solidity agus as JavaScript.", + "page-learning-tools-tenderly-logo-alt": "Lógó Tenderly", + "page-learning-tools-replit-logo-alt": "Lógó Replit", + "page-learning-tools-remix-logo-alt": "Lógó Remix", + "page-learning-tools-sandbox": "Boscaí gainimh cóid", + "page-learning-tools-sandbox-desc": "Tabharfaidh na boscaí gainimh seo spás duit chun triail a bhaint as conarthaí cliste a scríobh agus tuiscint a fháil ar Ethereum.", + "page-learning-tools-speed-run-ethereum-description": "Is sraith dúshlán é Speed ​​Run Ethereum chun do chuid eolais ar Solidity a thástáil trí úsáid a bhaint as Scaffold‑ETH", + "page-learning-tools-speed-run-ethereum-logo-alt": "Luas Speed Run Ethereum", + "page-learning-tools-studio-description": "IDE gréasán-bhunaithe inar féidir leat freastal ar ranganna teagaisc chun conarthaí cliste a chruthú agus a thástáil, agus chun tosach a thógáil dóibh.", + "page-learning-tools-vyperfun-description": "Foghlaim Vyper trí chluiche Pokémon de do chuid féin a thógáil.", + "page-learning-tools-vyperfun-logo-alt": "Lógó vyper.fun", + "page-learning-tools-nftschool-description": "Foghlaim faoina bhfuil ar siúl le comharthaí neamhmheasctha nó NFTanna ón taobh teicniúil.", + "page-learning-tools-nftschool-logo-alt": "Lógó scoile NFT", + "page-learning-tools-platzi-description": "Foghlaim conas daipeanna a thógáil ar Web3 agus saineolas a chur ar na scileanna go léir is gá chun a bheith i d'fhorbróir blocshlabhra.", + "page-learning-tools-platzi-logo-alt": "Lógó Platzi", + "page-learning-tools-alchemy-university-description": "Forbair do ghairm bheatha Web3 trí chúrsaí, tionscadail agus cód.", + "page-learning-tools-alchemy-university-logo-alt": "Lógó Alchemy University", + "page-learning-tools-learnweb3-description": "Is ardán oideachais ardchaighdeáin saor in aisce é LearnWeb3 chun dul ó leibide go laoch i bhforbairt web3.", + "page-learning-tools-learnweb3-logo-alt": "Lógó LearnWeb3", + "page-learning-tools-cyfrin-updraft-description": "Foghlaim faoi fhorbairt conarthaí cliste do gach leibhéal scileanna agus iniúchtaí slándála.", + "page-learning-tools-cyfrin-updraft-logo-alt": "Lógó Cyfrin Updraft", + "alt-eth-blocks": "Léaráid de bhloic á n-eagrú mar shiombail ETH" +} diff --git a/src/intl/ga/page-developers-local-environment.json b/src/intl/ga/page-developers-local-environment.json new file mode 100644 index 00000000000..28abd6c3f16 --- /dev/null +++ b/src/intl/ga/page-developers-local-environment.json @@ -0,0 +1,35 @@ +{ + "page-local-environment-brownie-desc": "Creat forbartha agus tástála bunaithe ar Python le haghaidh conarthaí cliste atá dírithe ar Mheaisín Fíorúil Ethereum.", + "page-local-environment-brownie-logo-alt": "Lógó Brownie", + "page-local-environment-kurtosis-desc": "Foireann uirlisí árthachbhunaithe chun líonra tástála Ethereum ilchliant a chumrú agus a shníomh go héasca le haghaidh forbairt thapa áitiúil a dhéanamh ar dhaip, ar fhréamhshamhaltú agus ar thástáil.", + "page-local-environment-kurtosis-logo-alt": "Lógó Kurtosis", + "page-local-environment-epirus-desc": "Ardán chun feidhmchláir blocshlabhra a fhorbairt, a úsáid agus mhonatóiriú ar Mheaisín Fíorúil Java.", + "page-local-environment-epirus-logo-alt": "Lógó Epirus", + "page-local-environment-eth-app-desc": "Cruthaigh aipeanna faoi thiomáint Ethereum le ordú amháin. In éineacht le tairiscint leathan creataí chomhéadain agus theimpléid DeFi le roghnú astu.", + "page-local-environment-eth-app-logo-alt": "Cruthaigh lógó Eth App", + "page-local-environment-foundry-desc": "Foireann uirlisí thapa, iniompartha agus mhodúlach le haghaidh forbairt feidhmchlár Ethereum atá scríofa in Rust.", + "page-local-environment-foundry-logo-alt": "Lógó Foundry", + "page-local-environment-framework-feature-1": "Gnéithe chun cás blocshlabhra áitiúil a chasadh.", + "page-local-environment-framework-feature-2": "Fóntais chun do chonarthaí cliste a thiomsú agus a thástáil.", + "page-local-environment-framework-feature-3": "Breiseáin forbartha cliant chun d’fheidhmchlár poiblí a chruthú laistigh den tionscadal/stór céanna.", + "page-local-environment-framework-feature-4": "Cumraíocht chun nascadh le líonraí Ethereum agus conarthaí a fheidhmiú, cibé acu ar chás a ritheann go háitiúil, nó ar cheann de líonraí poiblí Ethereum.", + "page-local-environment-framework-feature-5": "Dáileadh aipeanna díláraithe - comhtháthú le roghanna stórála cosúil le IPFS.", + "page-local-environment-framework-features": "Tá go leor feidhmiúlacht bhreise bainteach leis na creataí seo, mar atá:", + "page-local-environment-frameworks-desc": "Molaimid creat a phiocadh, go háirithe má tá tú díreach ag tosú amach. Teastaíonn píosaí éagsúla teicneolaíochta chun d iomlán a thógáil. Le creataí áirítear go leor de na gnéithe atá ag teastáil nó soláthraítear córais éasca breiseán chun na huirlisí atá uait a roghnú.", + "page-local-environment-frameworks-title": "Creataí agus cruacha réamhdhéanta", + "page-local-environment-hardhat-desc": "Is timpeallacht forbartha Ethereum é Hardhat do dhaoine gairmiúla.", + "page-local-environment-hardhat-logo-alt": "Lógó Hardhat", + "page-local-environment-openZeppelin-desc": "Sábháil uaireanta ama forbartha trí chonarthaí cliste lenár CLI a thiomsú, a uasghrádú, a fheidhmiú agus idirghníomhú leo.", + "page-local-environment-openZeppelin-logo-alt": "Lógó OpenZeppelin", + "page-local-environment-scaffold-eth-desc": "Ethers + Hardhat + React: gach rud atá uait chun tosú ag tógáil feidhmchláir dhíláraithe faoi thiomáint ag conarthaí cliste.", + "page-local-environment-scaffold-eth-logo-alt": "Lógó scafall-eth", + "page-local-environment-setup-meta-desc": "Treoir maidir le conas do chruach bogearraí a roghnú le haghaidh forbairt Ethereum.", + "page-local-environment-setup-meta-title": "Socrú forbartha áitiúla Ethereum", + "page-local-environment-setup-subtitle": "Má tá tú réidh le tosú ag tógáil, tá sé in am do chruach a roghnú.", + "page-local-environment-setup-subtitle-2": "Seo iad na huirlisí agus na creataí is féidir leat a úsáid chun cabhrú leat d’fheidhmchlár Ethereum a thógáil.", + "page-local-environment-setup-title": "Socraigh do thimpeallacht forbartha áitiúil", + "page-local-environment-solidity-template-desc": "Teimpléad GitHub le haghaidh socrú réamhthógtha faoi choinne do chonarthaí cliste Solidity. Áirítear leis líonra áitiúil Hardhat, Waffle le haghaidh tástálacha, Éitear le haghaidh cur i bhfeidhm sparán agus tuilleadh.", + "page-local-environment-solidity-template-logo-alt": "Lógó teimpléid Solidity", + "page-local-environment-waffle-desc": "An tsaotharlann tástála is forásaí le haghaidh conarthaí cliste. Bain úsáid as ina n-aonar nó le Scafall-eth nó Hardhat.", + "page-local-environment-waffle-logo-alt": "Lógó Waffle" +} diff --git a/src/intl/ga/page-eth.json b/src/intl/ga/page-eth.json new file mode 100644 index 00000000000..368082da36a --- /dev/null +++ b/src/intl/ga/page-eth.json @@ -0,0 +1,93 @@ +{ + "page-eth-buy-some": "Ar mhian leat roinnt Ethereum a cheannach?", + "page-eth-buy-some-desc": "Tá sé coitianta Ethereum agus ETH a mheascadh. Is é Ethereum an blocshlabhra agus is é ETH príomhshócmhainn Ethereum. Is dócha gurb é ETH an rud atá tú ag iarraidh a cheannach.", + "page-eth-cat-img-alt": "Grafaic de ghlif ETH agus cailéideascóp na gcat", + "page-eth-collectible-tokens": "Comharthaí inbhailithe", + "page-eth-collectible-tokens-desc": "Comharthaí a léiríonn mír chluiche inbhailithe, píosa ealaíne digiteach nó sócmhainní uathúla eile. Is minic a thugtar comharthaí neamh‑idirmhalartacha (NFTanna) orthu.", + "page-eth-cryptography": "Daingnithe ag an gcripteagrafaíocht", + "page-eth-cryptography-desc": "Seans go bhfuil airgead Idirlín nua ach urraítear le cripteagrafaíocht chruthaithe é. Leis sin déantar do sparán, do chuid ETH agus do chuid idirbheart a chosaint. ", + "page-eth-currency-for-apps": "Is é airgeadra aipeanna Ethereum é.", + "page-eth-currency-for-future": "Airgeadra dár dtodhchaí dhigiteach", + "page-eth-description": "Is criptea-airgeadra é ETH. Is beag airgead digiteach ar féidir leat a úsáid ar an idirlíon - cosúil le Bitcoin. Mura bhfuil tú cleachta le crypto roimhe seo, seo an chaoi a bhfuil ETH difriúil ó airgead traidisiúnta.", + "page-eth-earn-interest-link": "Ús a thuilleamh", + "page-eth-flexible-amounts": "Ar fáil i méideanna solúbtha", + "page-eth-flexible-amounts-desc": "Tá ETH inroinnte suas go dtí 18 n-ionad de dheachúlacha mar sin ní gá duit 1 ETH iomlán a cheannach. Is féidir leat codáin a cheannach ag an am – chomh beag le 0.000000000000000001 ETH más mian leat.", + "page-eth-fuels": "Is é ETH a bhreoslaíonn agus a shlánaíonn Ethereum", + "page-eth-fuels-desc": "Is é ETH saolré Ethereum. Nuair a sheolann tú ETH nó nuair a úsáideann tú feidhmchlár Ethereum, íocfaidh tú táille in ETH chun líonra Ethereum a úsáid. Is dreasacht é an táille seo do tháirgeoir bloic chun an méid atá tú ag iarraidh a dhéanamh a phróiseáil agus a fhíorú.", + "page-eth-fuels-desc-2": "Tá na bailíochtóirí cosúil le taifeadóirí Ethereum - scrúdaíonn siad agus cruthaíonn siad nach bhfuil aon duine ag caimiléireacht. Roghnaítear iad go randamach chun bloc idirbheart a mholadh. Tugtar luaíochtaí do bhailitheoirí a dhéanann an obair seo freisin le méideanna beaga ETH nua-eisithe.", + "page-eth-fuels-desc-3": "Trí obair na mbailíochtóirí agus tríd an gcaipiteal a geallchuireann siad, coinnítear Ethereum slán agus saor ó smacht lárnach.", + "page-eth-fuels-staking": "Nuair a chuireann tú do chuid ETH i ngeall, cuidíonn tú le hEthereum a dhaingniú agus luaíochtaí a thuilleamh. Sa chóras seo, cuirtear bac ar ionsaitheoirí tríd an mbagairt go gcaillfidís a gcuid ETH.", + "page-eth-fuels-more-staking": "Tuilleadh faoin ngeallchur", + "page-eth-get-eth-btn": "Faigh ETH", + "page-eth-gov-tokens": "Comharthaí rialachais", + "page-eth-gov-tokens-desc": "Comharthaí lena léirítear cumhacht vótála in eagraíochtaí díláraithe.", + "page-eth-has-value": "Cén fáth a bhfuil luach ag ETH?", + "page-eth-has-value-desc": "Tá ETH luachmhar ar bhealaí éagsúla do dhaoine éagsúla.", + "page-eth-has-value-desc-2": "I gcás úsáideoirí Ethereum, tá ETH luachmhar toisc go ligeann sé duit táillí idirbhirt a íoc.", + "page-eth-has-value-desc-3": "Breathnaíonn daoine eile air mar stór luachmhar digiteach toisc go dtagann laghdú ar chruthú ETH nua le himeacht ama.", + "page-eth-has-value-desc-4": "Níos déanaí, tá ETH tar éis éirí luachmhar le haghaidh úsáideoirí aipeanna airgeadais ar Ethereum. Sin toisc gur féidir leat ETH a úsáid mar chomhthaobhacht le haghaidh iasachtaí crypto, nó mar chóras íocaíochta.", + "page-eth-has-value-desc-5": "Ar ndóigh amharcann roinnt daoine air mar infheistíocht, cosúil le Bitcoin nó criptea-airgeadraí eile.", + "page-eth-is-money": "Is airgead digiteach, domhanda iad boinn éitir (ETH).", + "page-eth-last-updated": "Eanáir 2019", + "page-eth-monetary-policy": "Beartas airgeadaíochta Ethereum", + "page-eth-more-on-ethereum-link": "Tuilleadh faoi Ethereum", + "page-eth-no-centralized": "Gan rialú láraithe ", + "page-eth-no-centralized-desc": "Tá ETH díláraithe agus domhanda. Níl aon chuideachta nó banc ar féidir leo cinneadh a dhéanamh níos mó ETH a phriontáil, nó na téarmaí úsáide a athrú.", + "page-eth-non-fungible-tokens-link": "Comharthaí neamh-inmhalartacha", + "page-eth-not-only-crypto": "Ní hé ETH an t-aon crypto ar Ethereum", + "page-eth-not-only-crypto-desc": "Is féidir le duine ar bith cineálacha nua sócmhainní a chruthú agus iad a thrádáil ar Ethereum. Tugtar 'comharthaí' (nó 'tokens') orthu seo. Tá airgeadraí traidisiúnta, a n‑eastát réadach, a n‑ealaín, agus fiú iad féin téacscomharthaithe ag daoine!", + "page-eth-not-only-crypto-desc-2": "Tá na mílte comharthaí ag Ethereum - cuid acu níos úsáidí agus níos luachmhaire ná a chéile. Tá forbróirí i gcónaí ag tógáil comharthaí nua lena scaoilfear féidearthachtaí nua agus lena n‑osclófar margaí nua.", + "page-eth-open": "Oscailte do gach duine", + "page-eth-open-desc": "Níl uait ach nasc idirlín agus sparán chun glacadh le ETH. Ní gá duit rochtain ar chuntas bainc a bheith agat chun glacadh le híocaíochtaí. ", + "page-eth-p2p-payments": "Íocaíochtaí idir comhghleacaithe", + "page-eth-p2p-payments-desc": "Is féidir leat do chuid ETH a sheoladh gan aon seirbhís idirghabhálaí cosúil le banc. Tá sé cosúil le hairgead tirim a thabhairt ar láimh go pearsanta, ach is féidir leat é a dhéanamh go sábháilte le duine ar bith, áit ar bith, am ar bith.", + "page-eth-period": ".", + "page-eth-popular-tokens": "Cineálacha coitianta comharthaí", + "page-eth-powers-ethereum": "Is é ETH a chumhachtaíonn Ethereum", + "page-eth-shit-coins": "Boinn Sh*t", + "page-eth-shit-coins-desc": "Toisc go bhfuil sé éasca comharthaí nua a dhéanamh, is féidir le duine ar bith é a dhéanamh - fiú daoine a bhfuil droch‑intinn nó droch‑smaointe acu. Déan do chuid taighde i gcónaí sula n‑úsáideann tú iad!", + "page-eth-stablecoins": "Stablecoins", + "page-eth-stablecoins-desc": "Comharthaí a léiríonn luach airgeadra traidisiúnta cosúil le dollar. Réitíonn sé seo fadhb na luaineachta le go leor criptea-airgeadraí.", + "page-eth-stablecoins-link": "Faigh stablecoins", + "page-eth-stream-link": "Sruth ETH", + "page-eth-tokens-link": "Comharthaí Ethereum", + "page-eth-trade-link-2": "Babhtáil comharthaí", + "page-eth-underpins": "Tá ETH mar bhunús le córas airgeadais Ethereum", + "page-eth-underpins-desc": "Gan a bheith teoranta d'íocaíochtaí amháin, tá pobal Ethereum ag tógáil córas airgeadais iomlán atá idir comhghleacaithe agus inrochtana do chách.", + "page-eth-underpins-desc-2": "Is féidir leat ETH a úsáid mar chomhthaobhacht chun comharthaí criptea-airgeadra éagsúil a ghiniúint ar Ethereum. Ina theannta sin is féidir leat ETH agus comharthaí eile atá ráthaithe ag ETH a úsáid chun iasacht a fháil, chun iasacht a thabhairt agus chun ús a thuilleamh.", + "page-eth-weth": "Úsáidtear éitear fillte (WETH) chun feidhmiúlacht ETH a leathnú chun oibriú le comharthaí agus feidhmchláir eile. Foghlaim tuilleadh faoi WETH.", + "page-eth-uses": "Tagann fás ar úsáidí ETH gach lá", + "page-eth-uses-desc": "Toisc go bhfuil Ethereum in-ríomhchláraithe, is féidir le forbróirí ETH a mhúnlú ar bhealaí iomadúla.", + "page-eth-uses-desc-2": "Ar ais in 2015, níorbh fhéidir leat ach ETH a sheoladh ó chuntas Ethereum amháin go ceann eile. Seo cuid de na rudaí is féidir leat a dhéanamh inniu.", + "page-eth-uses-desc-3": "duine éigin a íoc nó cistí a fháil i bhfíor-am.", + "page-eth-uses-desc-4": "is féidir leat ETH a thrádáil le comharthaí eile lena n‑áirítear Bitcoin.", + "page-eth-uses-desc-5": "ar ETH agus comharthaí eile bunaithe ar Ethereum.", + "page-eth-uses-desc-6": "rochtain a fháil ar shaol na gcriptea-airgeadraí le luach seasta, nach bhfuil chomh luaineach.", + "page-eth-value": "Cén fáth go bhfuil éitear luachmhar", + "page-eth-video-alt": "Físeán glife ETH", + "page-eth-whats-eth": "Cad é éitear (ETH)?", + "page-eth-whats-eth-hero-alt": "Léaráid de ghrúpa daoine ag déanamh iontais faoi ghlif éitear (ETH)", + "page-eth-whats-eth-meta-desc": "An t‑eolas is gá chun tuiscint a fháil ar ETH agus ar áit in Ethereum.", + "page-eth-whats-eth-meta-title": "Cad é éitear (ETH)?", + "page-eth-whats-ethereum": "Cad é Ethereum?", + "page-eth-whats-ethereum-desc": "Más mian leat tuilleadh a fhoghlaim faoi Ethereum, an teicneolaíocht taobh thiar d'ETH, féach ar ár réamhrá.", + "page-eth-whats-unique": "Cad atá uathúil faoi ETH?", + "page-eth-whats-unique-desc": "Tá go leor criptea-airgeadraí agus go leor comharthaí eile ar Ethereum, ach tá roinnt rudaí ann nach féidir ach le ETH a dhéanamh.", + "page-eth-where-to-buy": "Cá háit a bhfaighidh tú ETH", + "page-eth-where-to-buy-desc": "Is féidir leat ETH a fháil ó mhalartán nó ó sparán ach tá beartais éagsúla ag tíortha éagsúla. Seiceáil na seirbhísí a ligfidh duit ETH a cheannach.", + "page-eth-yours": "Is leatsa i ndáiríre é", + "page-eth-yours-desc": "Ligeann ETH duit a bheith i do bhanc féin. Is féidir leat do chistí féin a rialú le do sparán mar chruthúnas úinéireachta - níl gá le tríú páirtithe.", + "page-eth-more-on-tokens": "Tuilleadh faoi chomharthaí agus faoina n-úsáidí", + "page-eth-button-buy-eth": "Faigh ETH", + "page-eth-tokens-stablecoins": "Stablecoins", + "page-eth-tokens-defi": "Airgeadas díláraithe (DeFi)", + "page-eth-tokens-nft": "Comharthaí neamh-inmheasctha (NFTanna)", + "page-eth-tokens-dao": "Eagraíochtaí uathrialaitheacha díláraithe (DAO)", + "page-eth-tokens-stablecoins-description": "Tuilleadh faoi na comharthaí Ethereum is seasmhaí.", + "page-eth-tokens-defi-description": "An córas airgeadais le haghaidh comharthaí Ethereum.", + "page-eth-tokens-nft-description": "Comharthaí a léiríonn úinéireacht earraí ar Ethereum.", + "page-eth-tokens-dao-description": "Pobail Idirlín a rialaíonn sealbhóirí comharthaí go minic iad.", + "page-eth-whats-defi": "Tuilleadh faoi DeFi", + "page-eth-whats-defi-description": "Is é DeFi an córas airgeadais díláraithe a tógadh ar Ethereum. Míníonn an forbhreathnú seo cad is féidir leat a dhéanamh.", + "page-what-is-ethereum-what-is-ether": "Cad é éitear?" +} diff --git a/src/intl/ga/page-gas.json b/src/intl/ga/page-gas.json new file mode 100644 index 00000000000..279584078d1 --- /dev/null +++ b/src/intl/ga/page-gas.json @@ -0,0 +1,64 @@ +{ + "page-gas-meta-title": "Táillí Ethereum: cad é gás agus conas níos lú a íoc?", + "page-gas-meta-description": "Foghlaim faoi ghás ar Ethereum: Conas a oibríonn siad agus conas níos lú a íoc i dtáillí gáis", + "page-gas-hero-title": "Táillí gáis", + "page-gas-hero-header": "Táillí líonra", + "page-gas-hero-button-1-content": "Cad is gás ann?", + "page-gas-hero-subtitle-1": "Tugtar gás ar tháillí líonra ar Ethereum.", + "page-gas-hero-subtitle-2": "Is é gás an breosla a thugann cumhacht do Ethereum.", + "page-gas-summary-title": "Achoimre", + "page-gas-summary-item-1": "Is gá íocaíocht bheag chun gach idirbheart a phróiseáil ar Ethereum", + "page-gas-summary-item-2": "Tugtar táille ‘gáis’ ar na táillí seo", + "page-gas-summary-item-3": "Ní shocraítear táillí gáis, athraítear iad mar thoradh ar phlódú líonra", + "page-gas-what-are-gas-fees-header": "Cad iad táillí gáis?", + "page-gas-what-are-gas-fees-text-1": "Smaoinigh ar Ethereum mar líonra mór ríomhairí lenar féidir le daoine tascanna a dhéanamh ar nós teachtaireachtaí a sheoladh nó feidhmchláir a rith. Díreach mar atá sa saol mór, teastaíonn fuinneamh chun na tascanna sin a dhéanamh.", + "page-gas-what-are-gas-fees-text-2": "In Ethereum, baineann praghas \"gáis\" socraithe le gach gníomh ríomhaireachtúil. Is iad do tháillí gáis costas iomlán na ngníomhartha i d'idirbheart . Nuair a sheolann tú idirbheart nó nuair a ritheann tú Conradh Cliste , íocann tú táillí gáis chun é a phróiseáil.", + "page-gas-how-do-i-pay-less-gas-header": "Conas a íocfaidh mé níos lú gáis?", + "page-gas-how-do-i-pay-less-gas-text": "Cé nach féidir táillí níos airde a sheachaint ar Ethereum ar uairibh, tá straitéisí ann ar féidir leat a úsáid chun an costas a laghdú:", + "page-gas-how-do-i-pay-less-gas-card-1-title": "Roghnaigh am le haghaidh do chuid idirbheart a dhéanamh", + "page-gas-how-do-i-pay-less-gas-card-1-description": "Díreach mar atá an plódú daoine níos annaimhe agus an costas níos inacmhainne don té a roghnaíonn an taisteal seachbhuaice, is iondúil go mbíonn Ethereum níos saoire le húsáid nuair a bhíonn muintir Mheiriceá Thuaidh ina gcodladh.", + "page-gas-how-do-i-pay-less-gas-card-2-title": "Fan go dté an gás síos", + "page-gas-how-do-i-pay-less-gas-card-2-description": "Téann praghsanna gáis suas síos gach dhá soicind déag ag brath ar thranglam daoine a bheith ag úsáid Ethereum. Nuair a bhíonn praghsanna gáis ard, dá bhfanfá cúpla nóiméad roimh idirbheart a dhéanamh b'fhéidir go bhfeicfí titim shuntasach ar gcostas.", + "page-gas-how-do-i-pay-less-gas-card-3-title": "Úsáid ciseal 2", + "page-gas-how-do-i-pay-less-gas-card-3-description": "Tógtar slabhraí ciseal-2 ar bharr Ethereum, agus le slabhraí ciseal-2 tairgtear táillí níos ísle agus próiseáiltear níos mó idirbheart. Is rogha mhaith iad chun táillí a shábháil ar idirbhearta nach gá tarlú ar phríomhlíonra Ethereum.", + "page-gas-try-layer-2": "Bain triail as ciseal 2", + "page-gas-what-causes-high-gas-fees-header": "Cad is cúis le táillí arda gáis?", + "page-gas-what-causes-high-gas-fees-text-1": "Aon uair a sháraíonn an méid ríofa (gás) ar Ethereum tairseach áirithe, tosaíonn táillí gáis ag ardú. Dá mhéad a sháraíonn an gás an tairseach seo, méadaíonn na táillí gáis níos tapúla.", + "page-gas-what-causes-high-gas-fees-text-2": "D’fhéadfadh táillí níos airde a bheith mar thoradh ar rudaí ar nós aipeanna díláraithe (daipeanna) nó NFTanna a bhfuil tóir orthu, trádáil atá méadaithe ar feadh tréimhse ar DEXanna , nó líon ró-mhór gníomhaíochtaí úsáideoirí le linn na mbuaictréimhsí.", + "page-gas-what-causes-high-gas-fees-text-3": "Ba chóir d'fhorbróirí ar Ethereum bheith cúramach a n‑úsáid conarthaí cliste a bharrfheabhsú sula mbaineann siad feidhm astu. Má tá go leor daoine ag baint úsáide as conradh cliste atá scríofa go maith, ídeofar níos mó gáis agus d’fhéadfadh sé a bheith ina chúis le plódú líonra gan chuimhneamh.", + "page-gas-want-to-dive-deeper": "Ar mhaith leat tuilleadh a fhoghlaim?", + "page-gas-check-out-the-developer-docs": "Caith súil ar na cáipéisí forbróra.", + "page-gas-attack-of-the-cryptokitties-header": "Ionsaí ó na Cryptokitties", + "page-gas-attack-of-the-cryptokitties-text": "I mí na Samhna 2017, seoladh an tionscadal Cryptokitties a bhfuil an‑tóir air. Mar thoradh ar a thóir thapaidh bhí plódú suntasach líonra agus táillí an‑ard gáis ann. Chuir na dúshláin a bhaineann le Cryptokitties dlús leis an bpráinn a bhaineann le réitigh a aimsiú le haghaidh scálú Ethereum.", + "page-gas-why-do-we-need-gas-header": "Cén fáth a dteastaíonn gás uainn?", + "page-gas-why-do-we-need-gas-text": "Is gné chriticiúil é gás chun Ethereum a choinneáil slán agus chun idirbhearta a phróiseáil. Is iomaí sin dóigh a gcabhraíonn gás:", + "page-gas-benefits-1-description": "Mar gheall ar ghás coinnítear Ethereum díonach in éadan ionsaithe Sybil trí chosc a chur ar ghníomhaithe mailíseacha an líonra a thuile trí ghníomhaíochtaí calaoiseacha.", + "page-gas-benefits-2-description": "Toisc go gcosnaíonn ríomh gás, tá dídhreasú airgeadais ann ar Ethereum i dtaca le hidirbhearta daora, bídís de thaisme nó go mailíseach.", + "page-gas-benefits-3-description": "De tharibhe teorainn chrua ar an méid ríomha is féidir a dhéanamh ag aon am amháin, cuirtear cosc ​​ar Ethereum a bheith faoi léigear, agus cabhraítear lena chinntiú go bhfuil an líonra inrochtana i gcónaí.", + "page-gas-how-is-gas-calculated-header": "Conas a ríomhtar gás?", + "page-gas-advanced": "Casta", + "page-gas-how-is-gas-calculated-text-1": "Tá roinnt codanna ann den táille iomlán gáis a íocfaidh tú:", + "page-gas-how-is-gas-calculated-item-1": " Bonntáille: Táille atá leagtha síos ag an líonra nach mór í a íoc as idirbheart", + "page-gas-how-is-gas-calculated-item-2": "Táille tosaíochta: séisín roghnach chun oibreoirí nód a spreagadh chun d’idirbheart a chur san áireamh", + "page-gas-how-is-gas-calculated-item-3": " Aonaid gáis a úsáidtear *: An cuimhin leat go ndúirt muid gurbh ionann an gás agus ríomh? Baineann gníomhartha níos casta, cosúil le hidirghníomhú le conradh cliste, níos mó gáis ná cinn shimplí, mar shampla idirbheart a sheoladh.", + "page-gas-how-is-gas-calculated-list-item-1": " * Féach Fíor 1 chun a fháil amach cé mhéad gáis a ídítear trí chineálacha éagsúla idirbheart", + "page-gas-how-is-gas-calculated-text-2": "Is é an fhoirmle chun táille gháis a ríomh ná aonaid gáis a úsáidtear * (táille bhunúsach + táille thosaíochta). Ríomhfaidh an chuid is mó de na sparán úsáid gháis agus taispeánfaidh siad í ar bhealach níos dírí.", + "page-gas-table-figure": " Fíor 1: Gás a úsáidtear de réir cineál idirbhirt ", + "page-gas-table-header-1": "Cineál idirbhirt", + "page-gas-table-header-2": "Aonaid gáis a úsáidtear", + "page-gas-table-item-1-transaction-type": "ETH a sheoladh", + "page-gas-table-item-2-transaction-type": "Comharthaí ERC-20 a sheoladh", + "page-gas-table-item-3-transaction-type": "NFT a aistriú", + "page-gas-table-item-4-transaction-type": "Ag malartú ar Uniswap", + "page-gas-faq-header": "Ceisteanna coitianta", + "page-gas-faq-question-1-q": "Cé a fhaigheann an táille gáis i m'idirbheart?", + "page-gas-faq-question-1-a-1": "Scriostar (dóitear) an chuid is mó den táille gháis —an bonntáille— ag an bprótacal. Má áirítear an táille tosaíochta san idirbheart, íocfar í don bhailitheoir a mhol d'idirbheart.", + "page-gas-faq-question-1-a-2": "Is féidir leat cur síos mionsonraithe a léamh ar an bpróiseas sna cáipéisí forbróra gáis. ", + "page-gas-faq-question-2-q": "An gá dom gás a íoc in ETH?", + "page-gas-faq-question-2-a-1": "Sea. Ní mór na táillí gáis go léir ar Ethereum a íoc san airgeadra dúchasach ETH.", + "page-gas-faq-question-2-a-2": "Tuilleadh faoi ETH", + "page-gas-faq-question-3-q": "Cad é gwei?", + "page-gas-faq-question-3-a-1": "I bhformhór na sparán nó na rianairí gáis, feicfidh tú go n‑ainmnítear praghsanna gáis mar ‘gwei’.", + "page-gas-faq-question-3-a-2": "Níl in gwei ach aonad níos lú de ETH, díreach mar atá pinginí le dollar, agus is é an difríocht ná go bhfuil 1 ETH cothrom le 1 billiún gwei. Tá gwei úsáideach agus méideanna an-bheaga de ETH faoi chaibidil.", + "page-gas-use-layer-2": "Úsáid ciseal 2" +} diff --git a/src/intl/ga/page-get-eth.json b/src/intl/ga/page-get-eth.json new file mode 100644 index 00000000000..95c294e5217 --- /dev/null +++ b/src/intl/ga/page-get-eth.json @@ -0,0 +1,79 @@ +{ + "page-get-eth-article-keeping-crypto-safe": "Na heochracha chun do crypto a choinneáil sábháilte", + "page-get-eth-article-protecting-yourself": "Tú féin agus do chistí a chosaint", + "page-get-eth-article-store-digital-assets": "Conas sócmhainní digiteacha a stóráil ar Ethereum", + "page-get-eth-article-protecting-yourself-desc": "MyCrypto", + "page-get-eth-article-keeping-crypto-safe-desc": "Coinbase", + "page-get-eth-article-store-digital-assets-desc": "ConsenSys", + "page-get-eth-cex": "Malartuithe láraithe", + "page-get-eth-cex-desc": "Is gnólachtaí iad malartáin a ligeann duit crypto a cheannach trí úsáid a bhaint as airgeadraí traidisiúnta. Tá cúram acu ar ETH ar bith a cheannaíonn tú go dtí go seolann tú é chuig sparán a rialaíonn tusa.", + "page-get-eth-checkout-dapps-btn": "Breathnaigh ar dhaipeanna", + "page-get-eth-community-safety": "Poist pobail maidir le slándáil", + "page-get-eth-description": "Níl Ethereum á rialú ag aon eagraíocht amháin - tá sé díláraithe.", + "page-get-eth-dex": "Malartuithe díláraithe (DEXanna)", + "page-get-eth-dex-desc": "Más mian leat tuilleadh rialaithe, ceannaigh ETH trí úsáid a bhaint as conarthaí cliste. Le DEX is féidir leat sócmhainní digiteacha a thrádáil gan smacht a thabhairt do chuideachta láraithe ar do chistí riamh.", + "page-get-eth-peers": "Faigh ETH ó do chomhghleacaithe", + "page-get-eth-peers-desc": "Nuair a bheidh cuntas Ethereum agat, níl le déanamh agat ach do sheoladh a roinnt chun tús a chur le ETH (agus comharthaí eile) a sheoladh agus a fháil le comhghleacaithe.", + "page-get-eth-staking": "Luaíochtaí a gheallchur", + "page-get-eth-staking-desc": "Má tá roinnt ETH agat cheana féin, is féidir leat níos mó a thuilleamh trí nód bailíochtaithe a rith. Íoctar tú as an obair fíoraithe seo a dhéanamh in ETH.", + "page-get-eth-earn": "Tuill ETH", + "page-get-eth-earn-desc": "Is féidir leat ETH a thuilleamh trí bheith ag obair do DAOnna nó do chuideachtaí a íocann in crypto, trí dheolchairí a bhaint, trí fabhtanna bogearraí a aimsiú agus eile.", + "page-get-eth-daos-link-desc": "Foghlaim faoi DAOnna", + "page-get-eth-cex-link-desc": "Féach ar liosta de na malartáin", + "page-get-eth-staking-link-desc": "Foghlaim tuilleadh faoi gheallchur", + "page-get-eth-dexs": "Malartuithe díláraithe (DEXanna)", + "page-get-eth-dexs-desc": "Is margaí oscailte iad malartáin dhíláraithe le haghaidh ETH agus comharthaí eile. Ceanglaíonn siad ceannaitheoirí agus díoltóirí go díreach.", + "page-get-eth-dexs-desc-2": "In ionad tríú páirtí iontaofa a úsáid chun cistí a chosaint san idirbheart, úsáidtear cód. Ní dhéanfar ETH an díoltóra a aistriú ach amháin nuair a ráthaítear íocaíocht. Tugtar conradh cliste ar an gcineál seo cód.", + "page-get-eth-dexs-desc-3": "Leis sin fágtar go bhfuil níos lú srianta geografacha ann ná mar atá le roghanna láraithe. Má tá duine éigin ag díol a bhfuil uait agus ag glacadh le modh íocaíochta is féidir leat a thabhairt dó, is féidir libh beirt an beart a dhéanamh.", + "page-get-eth-dexs-desc-4": "Nóta: úsáideann go leor dexeanna éitear fillte (WETH) chun feidhmiú. Foghlaim tuilleadh faoi éitear fillte.", + "page-get-eth-do-not-copy": "Sampla: Ná cóipeáil", + "page-get-eth-exchanges-disclaimer": "Bhailíomar an fhaisnéis seo de láimh. Má fheiceann tú rud éigin mícheart, cuir in iúl dúinn ag", + "page-get-eth-exchanges-empty-state-text": "Cuir isteach do thír chónaithe chun liosta de na malartáin a d'fhéadfá a úsáid a fheiceáil", + "page-get-eth-exchanges-except": "Ach amháin", + "page-get-eth-exchanges-header": "Cén tír ina bhfuil cónaí ort?", + "page-get-eth-exchanges-header-exchanges": "Malartáin", + "page-get-eth-exchanges-header-wallets": "Sparáin", + "page-get-eth-exchanges-intro": "Tá srianta ag malartáin ar an áit ar féidir leo crypto a dhíol. Is liosta táscach é seo de sheirbhísí a mheastar a bheith ag feidhmiú i ngach tír. Ní hionann formhuiniú agus cuimsiú sa chás seo - ba cheart duit do chuid taighde féin a dhéanamh!", + "page-get-eth-exchanges-no-exchanges": "Faraor, níl aon mhalartáin ar eolas againn a ligeann duit ETH a cheannach ón tír seo. Má tá aon eolas agatsa, inis dúinn ag", + "page-get-eth-exchanges-no-exchanges-or-wallets": "Faraor, níl aon mhalartáin ar eolas againn a ligeann duit ETH a cheannach ón tír seo. Más eol duit ceann, inis dúinn ag", + "page-get-eth-exchanges-no-wallets": "Faraor, níl aon sparáin ar eolas againn a ligeann duit ETH a cheannach ón tír seo. Más eol duit ceann, inis dúinn ag", + "page-get-eth-exchanges-search": "Clóscríobh cá bhfuil tú i do chónaí...", + "page-get-eth-exchanges-success-exchange": "Seans go nglacfaidh sé roinnt laethanta chun clárú le malartán mar gheall ar a gcuid seiceálacha dlíthiúla.", + "page-get-eth-exchanges-success-wallet-link": "sparáin", + "page-get-eth-exchanges-success-wallet-paragraph": "Áit a bhfuil cónaí ort, is féidir ETH a cheannach go díreach ó na sparán seo. Foghlaim tuilleadh faoi", + "page-get-eth-exchanges-usa": "Stáit Aontaithe Mheiriceá (SAM)", + "page-get-eth-get-wallet-btn": "Faigh sparán", + "page-get-eth-hero-image-alt": "Faigh íomhá laoch ETH", + "page-get-eth-keep-it-safe": "Ag coinneáil do ETH slán", + "page-get-eth-meta-description": "Conas ETH a cheannach bunaithe ar an áit a bhfuil cónaí ort agus comhairle ar conas cúram a dhéanamh de.", + "page-get-eth-meta-title": "Conas Ethereum (ETH) a cheannach", + "page-get-eth-need-wallet": "Beidh sparán ag teastáil uait chun DEX a úsáid.", + "page-get-eth-new-to-eth": "Nár úsáid tú ETH riamh? Seo forbhreathnú chun cabhrú leat tús a chur leis.", + "page-get-eth-other-cryptos": "Ceannaigh le crypto eile", + "page-get-eth-protect-eth-desc": "Ceann de phríomhghnéithe Ethereum ná go gcoimeádann tú smacht ar do shócmhainní féin trí do chuntas féin a bhainistiú. Ciallaíonn sé seo nach gcaithfidh tú muinín a bheith agat as do shócmhainní in aon tríú páirtí, agus tá tú cosanta ó aon chaomhnóir a ghníomhaíonn go mímhacánta, ón bhféimheacht nó ón hackáil. Mar sin féin, ciallaíonn sé freisin go nglacann tú freagracht as do shlándáil féin.", + "page-get-eth-protect-eth-in-wallet": "Coinnigh do chuid ETH i do sparán féin", + "page-get-eth-search-by-country": "Cuardaigh de réir tíre", + "page-get-eth-security": "Ciallaíonn sé seo go gcaithfidh tú slándáil do chistí a ghlacadh dáiríre. Le ETH, níl tú ag cur muiníne i mbanc nó i gcuideachta chun aire a thabhairt do do shócmhainní, tá tú ag glacadh freagrachta asat féin.", + "page-get-eth-smart-contract-link": "Tuilleadh faoi chonarthaí cliste", + "page-get-eth-swapping": "Malartaigh do chuid comharthaí le haghaidh ETH de chuid daoine eile. Agus vice versa.", + "page-get-eth-try-dex": "Bain triail as DEX", + "page-get-eth-use-your-eth": "Bain úsáid as do ETH", + "page-get-eth-use-your-eth-dapps": "Anois agus go bhfuil cuid ETH agat, seiceáil roinnt feidhmchlár Ethereum (daipeanna). Tá daipeanna ann le haghaidh airgeadais, meán sóisialta, cluichíochta agus go leor catagóirí eile.", + "page-get-eth-wallet-instructions": "Lean na treoracha sparáin", + "page-get-eth-wallet-instructions-lost": "Má chailleann tú rochtain ar do chuntas, caillfidh tú rochtain ar do chistí. Ba chóir go dtabharfadh do sparán treoracha duit maidir leis sin a sheachaint. Bí cinnte go leanann tú iad go cúramach - i bhformhór na gcásanna, ní féidir le duine ar bith cabhrú leat má chailleann tú rochtain ar do chuntas.", + "page-get-eth-wallets": "Sparáin", + "page-get-eth-wallets-link": "Tuilleadh faoi sparáin", + "page-get-eth-wallets-purchasing": "Ligeann roinnt sparán duit crypto a cheannach trí chárta dochair/creidmheasa, trí aistriú bainc nó fiú trí Apple Pay. Tá srianta geografacha i bhfeidhm.", + "page-get-eth-warning": "Ní do thosaitheoirí na DEXanna seo mar beidh roinnt ETH ag teastáil uait chun iad a úsáid. Níl iontu seo ach samplaí - ní táirgí formhuinithe iad. Déan do chuid taighde féin!", + "page-get-eth-what-are-DEX's": "Cad iad DEXanna?", + "page-get-eth-whats-eth-link": "Cad é ETH?", + "page-get-eth-where-to-buy-desc": "Is féidir leat ETH a thuilleamh, é a fháil ó do chomhghleacaithe, nó é a cheannach ó mhalartáin agus aipeanna.", + "page-get-eth-where-to-buy-desc-2": "Seiceáil cad iad na seirbhísí is féidir leat a úsáid bunaithe ar an áit ina gcónaíonn tú.", + "page-get-eth-where-to-buy-title": "Cá háit a bhfaighidh tú ETH", + "page-get-eth-your-address": "Do sheoladh ETH", + "page-get-eth-your-address-desc": "Nuair a íoslódálann tú sparán cruthóidh sé seoladh poiblí ETH duit. Seo an chuma atá ar sheoladh poiblí:", + "page-get-eth-your-address-desc-3": "Smaoinigh air seo amhail do sheoladh ríomhphoist, ach in ionad ríomhphoist a fháil, is féidir ETH a fháil. Más mian leat ETH a aistriú ó mhalartán chuig do sparán, bain úsáid as do sheoladh mar cheann scríbe. Bí cinnte seiceáil dúbailte a dhéanamh i gcónaí sula seolann tú é!", + "page-get-eth-your-address-wallet-link": "Breathnaigh ar sparáin", + "listing-policy-raise-issue-link": "Tuairiscigh fadhb", + "page-find-wallet-last-updated": "An nuashonrú is déanaí" +} diff --git a/src/intl/ga/page-index.json b/src/intl/ga/page-index.json new file mode 100644 index 00000000000..cdfdb05b698 --- /dev/null +++ b/src/intl/ga/page-index.json @@ -0,0 +1,118 @@ +{ + "page-index-activity-description": "Gníomhaíocht ó gach líonra Ethereum", + "page-index-activity-tag": "Gníomhaíocht", + "page-index-activity-header": "An t-éiceachóras is láidre", + "page-index-bento-header": "Bealach nua chun an tIdirlíon a úsáid", + "page-index-bento-assets-action": "Tuilleadh faoi NFTanna", + "page-index-bento-assets-content": "Is féidir ealaín, teastais nó fiú eastát réadach a théacschomharthú. Is féidir rud ar bith a bheith ina chomhartha intrádála. Úinéireacht phoiblí agus infhíoraithe atá i gceist.", + "page-index-bento-assets-title": "Idirlíon na sócmhainní", + "page-index-bento-dapps-action": "Brabhsáil aipeanna", + "page-index-bento-dapps-content": "Oibríonn aipeanna Ethereum gan do shonraí a dhíol. Cosain do phríobháideachas.", + "page-index-bento-dapps-title": "Aipeanna nuálacha", + "page-index-bento-defi-action": "Déan iniúchadh ar DeFi", + "page-index-bento-defi-content": "Ní féidir leis na billiúin daoine cuntais bhainc a oscailt ná a gcuid airgid a úsáid gan bhac. Tá córas airgeadais Ethereum síor-oscailte agus neamhchlaonta.", + "page-index-bento-defi-title": "Córas airgeadais níos cothroime", + "page-index-bento-networks-action": "Déan iniúchadh ar shochair", + "page-index-bento-networks-content": "Is é Ethereum an mol don nuálaíocht blocshlabhra. Ar Ethereum a thógtar na tionscadail is fearr.", + "page-index-bento-networks-title": "Líonra na líonraí", + "page-index-bento-stablecoins-action": "Foghlaim níos mó", + "page-index-bento-stablecoins-content": "Is airgeadraí iad Stablecoins a chothaíonn luach cobhsaí. Is ionann a bpraghas agus dollar Sam nó sócmhainní seasta eile.", + "page-index-bento-stablecoins-title": "Crioptó gan luaineacht", + "page-index-builders-action-primary": "Tairseach Tógálaí", + "page-index-builders-action-secondary": "Doiciméadúchán", + "page-index-builders-description": "Is ag Ethereum atá an t-éiceachóras forbróra is mó agus is bríomhaire ar Web3. Bain úsáid as JavaScript agus Python, nó foghlaim teanga conartha chliste cosúil le Solidity nó Vyper chun d'aip féin a scríobh.", + "page-index-builders-tag": "Tógálaithe", + "page-index-builders-header": "An pobal tógálaithe is mó atá ag an mBlocshlabhra", + "page-index-calendar-add": "Cuir leis an bhféilire", + "page-index-calendar-fallback": "Níl aon ghlaonna le teacht", + "page-index-calendar-title": "Na chéad ghlaonna eile", + "page-index-community-action": "Tuilleadh ar ethereum.org", + "page-index-community-description-1": "Gach mí bíonn tógáil agus cothabháil á ndéanamh ar láithreán gréasáin ethereum.org ag na céadta aistritheoirí, códóirí, dearthóirí, cóipscríbhneoirí agus baill dhíograiseacha den phobal.", + "page-index-community-description-2": "Tar leat ceisteanna a chur, déan teagmháil le daoine ar fud an domhain agus rannchuidigh leis an suíomh Gréasáin. Gheobhaidh tú taithí phraiticiúil ábhartha agus tabharfar treoir duit le linn an phróisis!", + "page-index-community-description-3": "Is iontach an áit é pobal Ethereum.org chun tosú agus foghlaim.", + "page-index-community-tag": "Pobail Ethereum.org", + "page-index-community-header": "Tógtha ag an bpobal", + "page-index-cta-dapps-description": "Airgeadas, cluichíocht, sóisialta", + "page-index-cta-dapps-label": "Bain triail as aipeanna", + "page-index-cta-get-eth-description": "Airgeadra Ethereum", + "page-index-cta-get-eth-label": "Faigh ETH", + "page-index-cta-networks-description": "Bain leas as táillí íosta", + "page-index-cta-networks-label": "Roghnaigh líonra", + "page-index-cta-wallet-description": "Cruthaigh cuntais agus bainistigh sócmhainní", + "page-index-cta-wallet-label": "Pioc sparán", + "page-index-description": "An t-ardán is mó le haghaidh aipeanna nuálacha agus líonraí blocshlabhra", + "page-index-developers-code-example-description-0": "Tóg banc atá faoi thiomáint ag an loighic atá ríomhchláraithe agat féin", + "page-index-developers-code-example-description-1": "Cruthaigh comharthaí gur féidir leat a aistriú agus a úsáid thar feidhmchláir", + "page-index-developers-code-example-description-2": "Bain úsáid as teangacha atá ann cheana féin chun idirghníomhú le hEthereum agus le feidhmchláir eile", + "page-index-developers-code-example-description-3": "Athshamhlaigh seirbhísí reatha mar fheidhmchláir dhíláraithe, oscailte", + "page-index-developers-code-example-title-0": "Do bhanc féin", + "page-index-developers-code-example-title-1": "D'airgeadra féin", + "page-index-developers-code-example-title-2": "Sparán JavaScript Ethereum", + "page-index-developers-code-example-title-3": "DNS oscailte, gan chead", + "page-index-developers-code-examples": "Samplaí de chóid", + "page-index-events-action": "Féach ar na himeachtaí go léir", + "page-index-events-header": "Imeachtaí", + "page-index-events-subtitle": "Déanann pobail Ethereum óstáil ar imeachtaí ar fud na cruinne, ar feadh na bliana", + "page-index-hero-image-alt": "Léiriú de chathair thodhchaíoch, a ionadaíonn an éiceachóras Ethereum.", + "page-index-join-action-contribute-description": "Faigh amach na bealaí éagsúla inar féidir leat cabhrú le ethereum.org fás agus a bheith níos fearr.", + "page-index-join-action-contribute-label": "Conas rannchuidiú", + "page-index-join-action-discord-description": "Chun ceisteanna a chur, rannchuidiú a chomhordú agus páirt a ghlacadh i nglaonna pobail.", + "page-index-join-action-github-description": "Cur le cód, dearadh, earraí, etc.", + "page-index-join-action-twitter-description": "Chun coinneáil suas lenár nuashonruithe agus nuacht thábhachtach.", + "page-index-join-description": "Is foinse oscailte é an suíomh Gréasáin seo agus tá na céadta rannpháirtí pobail ann. Is féidir leat athruithe a mholadh ar aon ábhar ar an suíomh seo.", + "page-index-join-header": "Glac páirt in ethereum.org", + "page-index-learn-description": "Cúis mhearbhaill é Crypto. Ná bíodh imní ort, saindearadh na hábhair seo chun cabhrú leat Ethereum a thuiscint faoi chionn cúpla nóiméad.", + "page-index-learn-tag": "Foghlaim", + "page-index-learn-header": "Tuig Ethereum", + "page-index-meta-description": "Is ardán domhanda, díláraithe é Ethereum le haghaidh airgid agus cineálacha nua feidhmchlár. Ar Ethereum, is féidir leat cód a scríobh lena rialófar airgead, agus feidhmchláir a thógáil atá inrochtana áit ar bith ar domhan.", + "page-index-meta-title": "Ethereum.org: An treoir iomlán do Ethereum", + "page-index-network-stats-total-eth-staked": "Luach a thugann cosaint do Ethereum", + "page-index-network-stats-tx-cost-description": "Meánchostas idirbhirt", + "page-index-network-stats-tx-day-description": "Idirbhearta le 24u anuas", + "page-index-network-stats-value-defi-description": "Luach faoi ghlas i DeFi", + "page-index-network-stats-total-value-held": "Luach iomlán coinnithe ar Ethereum", + "page-index-popular-topics-ethereum": "Cad é Ethereum?", + "page-index-popular-topics-header": "Ábhair móréilimh", + "page-index-popular-topics-action": "Ábhair eile", + "page-index-popular-topics-roadmap": "Treochlár Ethereum", + "page-index-popular-topics-start": "Conas tosú, céim ar chéim", + "page-index-popular-topics-wallets": "Cad iad sparáin chrioptó?", + "page-index-popular-topics-whitepaper": "Páipéar Bán Ethereum", + "page-index-posts-action": "Léigh tuilleadh ar na láithreáin ghréasáin seo", + "page-index-posts-header": "Poist is déanaí", + "page-index-posts-subtitle": "Na postálacha blag is déanaí agus nuashonruithe ón bpobal", + "page-index-title": "Fáilte go dtí Ethereum", + "page-index-values-description": "Glac páirt sa réabhlóid dhigiteach", + "page-index-values-header": "Tá an t-idirlíon ag athrú", + "page-index-values-legacy": "Oidhreacht", + "page-index-values-tag": "Luachanna", + "page-index-values-ownership-legacy-label": "Úinéireacht shrianta", + "page-index-values-ownership-legacy-content-0": "Le ardán rialta bainc nó meán sóisialta, déanann an eagraíocht do shócmhainní agus do shonraí a bhainistiú. Braitheann tú orthu le haghaidh rochtana agus rialaithe.", + "page-index-values-ownership-legacy-content-1": "Féadfaidh siad do shonraí a úsáid ar bhealaí nach n-aontaíonn tú leo, bunaithe ar a gcuid polasaithe.", + "page-index-values-ownership-ethereum-label": "Úinéireacht dhíreach", + "page-index-values-ownership-ethereum-content-0": "Le Ethereum, níl ach rochtain agus rialú agat. Níor cheart go mbeadh aon duine eile in ann do shócmhainní a úsáid riamh. Is féidir leat cinneadh a dhéanamh cé leis an gcead sin a dheonú.", + "page-index-values-fairness-legacy-label": "Idirdhealaitheach", + "page-index-values-fairness-legacy-content-0": "Sa lá atá inniu ann, níl an rochtain chéanna ag gach duine ar sheirbhísí airgeadais. D’fhéadfadh go mbeadh bacainní rochtana ar dhaoine áirithe mar gheall ar a suíomh nó a náisiúntacht.", + "page-index-values-fairness-ethereum-label": "Rochtain Chomhionann", + "page-index-values-fairness-ethereum-content-0": "Creidimid gur cheart ligean do gach duine leas a bhaint as córas domhanda. Sin é an fáth go dtugann Ethereum rochtain chomhionann do chách ar fud an domhain, is cuma cé tú féin nó cá as a dtagann tú.", + "page-index-values-privacy-legacy-label": "Easpa príobháideachta", + "page-index-values-privacy-legacy-content-0": "Ní féidir linn a bheith ag súil go dtabharfaidh rialtais, corparáidí nó eagraíochtaí móra anaithnide eile príobháideacht dúinn dá stuaim féin.", + "page-index-values-privacy-legacy-content-1": "Bailíonn formhór na n-aipeanna an oiread de do chuid faisnéise pearsanta agus is féidir ar mhaithe le díriú ort le margaíocht shaincheaptha.", + "page-index-values-privacy-ethereum-label": "Dírithe ar Phríobháideacht", + "page-index-values-integration-legacy-label": "Ilroinnte", + "page-index-values-integration-legacy-content-0": "Cuireann an chuid is mó d’aipeanna brú ort cuntais ar leith a chruthú, rud a fhágann go bhfuil sé deacair cuimhneamh ar do shonraí logála isteach agus do chlárúcháin go léir.", + "page-index-values-integration-ethereum-label": "Comhtháite", + "page-index-values-integration-ethereum-content-0": "Le Ethereum is féidir leat cuntas amháin a athúsáid i ngach aip ina ionad sin. Níl aon chlárú aonair ag teastáil.", + "page-index-values-decentralization-legacy-label": "Láraithe", + "page-index-values-decentralization-legacy-content-0": "Is le fiontraithe príobháideacha agus scairshealbhóirí cuideachtaí. Is iadsan amháin a bhíonn i gceannas ar an gcuideachta agus is iad is mó a bhaineann tairbhe as a rath.", + "page-index-values-decentralization-ethereum-label": "Díláraithe", + "page-index-values-decentralization-ethereum-content-0": "Díreach cosúil leis an idirlíon féin, ní bhaineann Ethereum le duine ar bith. Tá sé comhroinnte agus múnlaithe go cothrom le cách. Níl aon úinéir amháin ann a d'fhéadfadh é a rialú.", + "page-index-values-censorship-legacy-label": "Oscailte don chinsireacht", + "page-index-values-censorship-legacy-content-0": "Is minic a athraítear ardáin nua-aimseartha agus a gcuid rialacha. Féadfaidh geallsealbhóirí, bainistíocht chuideachta nó réimis leatromacha fiú tionchar a imirt orthu.", + "page-index-values-censorship-ethereum-label": "Friotaíoch in aghaidh na Cinsireachta", + "page-index-values-censorship-ethereum-content-1": "Ní féidir le haon náisiún-stát, cuideachta nó duine aonair Ethereum a rialú.", + "page-index-values-open-legacy-label": "Dúnta don chuid is mó", + "page-index-values-open-legacy-content-0": "Cosnaíonn cuideachtaí a maoin intleachtúil agus ní roinneann siad í. Ní féidir le duine ar bith lasmuigh den chuideachta a fheiceáil conas a oibríonn rudaí, fadhbanna a shocrú, nó feabhsuithe a dhéanamh. Tá sé deacair do dhaoine uirlisí nua a chruthú nó a shaincheapadh.", + "page-index-values-open-ethereum-label": "Oscailte do gach duine", + "page-index-values-open-ethereum-content-0": "Tá Ethereum poiblí do chách. Is féidir le duine ar bith an cód a fheiceáil, a úsáid agus a fheabhsú, rud a fheabhsaíonn é do gach duine." +} diff --git a/src/intl/ga/page-layer-2-learn.json b/src/intl/ga/page-layer-2-learn.json new file mode 100644 index 00000000000..f1a5b08e9ce --- /dev/null +++ b/src/intl/ga/page-layer-2-learn.json @@ -0,0 +1,31 @@ +{ + "page-layer-2-learn-meta-title": "Cad é ciseal 2?", + "page-layer-2-learn-title": "Cad é ciseal 2?", + "page-layer-2-learn-description": "Scálú Ethereum le haghaidh glactha mais", + "page-layer-2-learn-button-1-label": "Cad é ciseal 2?", + "page-layer-2-learn-button-2-label": "Úsáid ciseal 2", + "page-layer-2-learn-what-is-layer-2-title": "Cad é ciseal 2?", + "page-layer-2-learn-what-is-layer-2-1": "Is téarma comhchoiteann é Sraith 2 (L2) chun cur síos a dhéanamh ar shraith shonrach de réitigh scálaithe Ethereum. Is blocshlabhra ar leith í sraith 2 a leathnaíonn Ethereum agus a oidhríonn na ráthaíochtaí slándála atá ag Ethereum.", + "page-layer-2-learn-what-is-layer-2-2": "Anois déanaimis tochailt isteach ann beagán níos mó. Chun seo a dhéanamh ní mór dúinn ciseal 1 (L1) a mhíniú ar dtús.", + "page-layer-2-learn-what-is-layer-1-title": "Cad é ciseal 1?", + "page-layer-2-learn-layer-1-list-title": "Áirítear le Ethereum mar chiseal 1:", + "page-layer-2-learn-layer-1-list-1": "líonra oibreoirí nód chun an líonra a dhéanamh slán agus bhailíochtú", + "page-layer-2-learn-layer-1-list-2": "líonra de tháirgeoirí bloc", + "page-layer-2-learn-layer-1-list-3": "an blockchain é féin agus stair na sonraí idirbhirt", + "page-layer-2-learn-why-do-we-need-layer-2-title": "Cén fáth a bhfuil ciseal 2 de dhíth orainn?", + "page-layer-2-learn-why-do-we-need-layer-2-scalability": "Inscálaitheacht", + "page-layer-2-learn-layer2Cards-1-title": "Táillí níos ísle", + "page-layer-2-learn-layer2Cards-2-title": "Slándáil a chothabháil", + "page-layer-2-learn-layer2Cards-3-title": "Cásanna úsáide a leathnú", + "page-layer-2-learn-layer2Cards-3-description": "Le hidirbhearta níos airde in aghaidh an tsoicind, táillí níos ísle, agus teicneolaíocht nua, leathnófar tionscadail ina bhfeidhmchláir nua le taithí úsáideora feabhsaithe.", + "page-layer-2-learn-how-does-layer-2-work-title": "Conas a oibríonn ciseal 2?", + "page-layer-2-learn-how-does-layer-2-work-1": "Mar a luadh thuas, is téarma comhchoiteann é ciseal 2 le haghaidh réitigh scálaithe Ethereum a láimhseálann idirbhearta as ciseal Ethereum 1 agus iad fós ag baint leasa as slándáil dhíláraithe láidir Ethereum ciseal 1.Is blocchain ar leith é ciseal 2 a leathnaíonn Ethereum. Conas a oibríonn sé sin?", + "page-layer-2-learn-how-does-layer-2-work-2": "Tá cineálacha éagsúla ciseal 2 ann, agus tá a gcuid samhlacha comhbhabhtála agus slándála féin ag gach ceann acu. Tógann ciseal 2s an t-ualach idirbheartaíochta ar shiúl ó chiseal 1, rud a ligeann dó éirí níos lú plódaithe, agus éiríonn gach rud níos inscálaithe.", + "page-layer-2-learn-how-does-layer-2-work-rollups-title": "Rollups", + "page-layer-2-learn-how-does-layer-2-work-rollups-2": "Cuirtear na sonraí idirbhirt sa rolladh isteach chuig ciseal 1, ach déanann an rolladh é a fhorghníomhú ar leithligh. Trí shonraí idirbhirt a chur isteach i gciseal 1, faigheann rolladh suas slándáil Ethereum mar oidhreacht. Tá sé seo mar gheall ar a luaithe a uaslódáiltear na sonraí go ciseal 1, is gá Ethereum a thabhairt ar ais le hidirbheart rolladh suas. Tá dhá chur chuige éagsúla ann maidir le rolladh suas: dóchasach agus eolas nialasach - tá difríocht mhór acu maidir leis an gcaoi a gcuirtear na sonraí idirbhirt seo isteach chuig L1.", + "page-layer-2-learn-rollupCards-optimistic-title": "Rollaí Optamacha", + "page-layer-2-learn-rollupCards-optimistic-childSentence": "Tuilleadh faoi rolladh suas dóchasach", + "page-layer-2-learn-dyor-link": "Téigh go L2BEAT", + "page-layer-2-learn-learn-more": "Foghlaim níos mó", + "page-layer-2-learn-explore-networks": "Cuir eolas ar líonraí" +} diff --git a/src/intl/ga/page-layer-2.json b/src/intl/ga/page-layer-2.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/src/intl/ga/page-layer-2.json @@ -0,0 +1 @@ +{} diff --git a/src/intl/ga/page-learn.json b/src/intl/ga/page-learn.json new file mode 100644 index 00000000000..603240e0f75 --- /dev/null +++ b/src/intl/ga/page-learn.json @@ -0,0 +1,114 @@ +{ + "toc-learn-hub": "Mol foghlama", + "toc-what-is-crypto-ethereum": "Cad é Ethereum?", + "toc-how-do-i-use-ethereum": "Conas a úsáidim Ethereum?", + "toc-what-is-ethereum-used-for": "Cad dó a n‑úsáidtear Ethereum?", + "toc-strengthen-the-ethereum-network": "Neartaigh líonra Ethereum", + "toc-learn-about-the-ethereum-protocol": "Foghlaim faoi phrótacal Ethereum", + "toc-learn-about-the-ethereum-community": "Foghlaim faoi phobal Ethereum", + "toc-books-and-podcasts": "Leabhair agus podchraoltaí", + "hero-header": "Foghlaim faoi Ethereum", + "hero-subtitle": "Do threoir oideachais ar dhomhan Ethereum. Foghlaim conas a oibríonn Ethereum agus conas a cheanglaítear leis. Áirítear ar an leathanach seo ailt, treoracha agus acmhainní teicniúla agus neamhtheicniúla.", + "hero-button-lets-get-started": "Cuirimis tús leis", + "page-learn-meta-title": "Ethereum: Treoir Chuimsitheach Foghlama", + "what-is-crypto-1": "Seans gur chuala tú faoi chriptea-airgeadraí, blocshlabhra agus Bitcoin. Cabhróidh na naisc thíos leat foghlaim cad iad agus conas a bhaineann siad le hEthereum.", + "what-is-crypto-2": "Cuireann cripte-airgeadraí, mar bitcoin, ar chumas gach duine airgead a aistriú go domhanda. Déanann Ethereum é sin freisin, ach is féidir leis cód a úsáid freisin a chuireann ar chumas daoine aipeanna agus eagraíochtaí a chruthú. Tá sé athléimneach agus solúbtha: is féidir gach ríomhchlár a reáchtáil ar Ethereum. Foghlaim tuilleadh agus faigh amach conas tosú:", + "what-is-ethereum-card-title": "Cad é Ethereum?", + "what-is-ethereum-card-description": "Más rud é go bhfuil tú nua, cuir tús anseo le fáil amach cén fáth a bhfuil tábhacht ag baint le hEthereum.", + "what-is-ethereum-card-image-alt": "Léaráid de dhuine ag amharc isteach i mbasár, ar nós Ethereum.", + "what-is-eth-card-title": "Cad é ETH?", + "what-is-eth-description": "Is é Éitear (ETH) an t‑airgeadra a chumhachtaíonn líonra agus aipeanna Ethereum.", + "what-is-web3-card-title": "Cad é Web3?", + "what-is-web3-card-description": "Is samhail é Web3 don idirlíon a dhéanann luacháil ar úinéireacht do shócmhainní agus d’aitheantais.", + "additional-reading-more-on-ethereum-basics": "Tuilleadh faoi bhunrudaí Ethereum", + "guides-hub-desc": "Treoracha: treoracha céim ar chéim maidir le húsáid Ethereum", + "quiz-hub-desc": "Mol Thráth na gCeist: déan do chuid eolais a thástáil", + "additional-reading-what-are-smart-contracts": "Cad is conarthaí cliste ann?", + "additional-reading-what-is-web3": "Cad é web3?", + "additional-reading-ethereum-in-thirty-minutes": "30 nóiméad in Ethereum arna chur i láthair ag Vitalik Buterin", + "additional-reading-get-eth": "Foghlaim conas ETH a fháil", + "how-do-i-use-ethereum-1": "Is lia tuairim ná duine i dtaca le húsáid Ethereum. B’fhéidir gur mhaith leat síniú isteach ar aip, d’aitheantas ar líne a chruthú, nó ETH éigin a aistriú. Is é an chéad rud a bheidh uait ná cuntas. Is é an bealach is éasca chun cuntas a chruthú agus a rochtain ná bogearraí ar a dtugtar sparán a úsáid.", + "what-is-a-wallet-card-title": "Cad is sparán ann?", + "what-is-a-wallet-card-description": "Tá sparán digiteacha cosúil le sparán iarbhír; stóráltar an méid atá uait chun d'aitheantas a chruthú agus chun rochtain a fháil ar na suímh atá luachmhar duit.", + "what-is-a-wallet-card-alt": "Léaráid de róbait.", + "find-a-wallet-card-title": "Faigh sparán", + "find-a-wallet-card-description": "Brabhsáil sparáin ag brath ar na gnéithe atá tábhachtach duit.", + "find-a-wallet-button": "Liosta sparán", + "ethereum-networks-card-title": "Líonraí Ethereum", + "ethereum-networks-card-description": "Sábháil airgead trí úsáid a bhaint as síntí Ethereum níos saoire agus níos tapúla.", + "ethereum-networks-card-button": "Roghnaigh líonra", + "things-to-consider-banner-title": "Údair machnaimh agus Ethereum á úsáid agat", + "things-to-consider-banner-1": "Éilíonn gach idirbheart Ethereum táille i bhfoirm ETH, fiú má theastaíonn uait comharthaí éagsúla a tógadh ar Ethereum a bhogadh cosúil le criptea-airgeadraí daingne USDC nó DAI.", + "things-to-consider-banner-2": "Is féidir táillí a bheith ard ag brath ar líon na ndaoine atá ag iarraidh Ethereum a úsáid, mar sin molaimid úsáid a bhaint as", + "things-to-consider-banner-layer-2": "Ciseal 2s", + "additional-reading-more-on-using-ethereum": "Tuilleadh faoi úsáid Ethereum", + "additional-reading-how-to-create-an-ethereum-account": "Conas cuntas Ethereum a chruthú", + "additional-reading-how-to-use-a-wallet": "Conas sparán a úsáid", + "additional-reading-layer-2": "Ciseal 2: táillí idirbhirt a laghdú", + "what-is-ethereum-used-for-1": "Mar thoradh ar Ethereum cruthaíodh táirgí agus seirbhísí nua ar féidir leo réimsí éagsúla dár saol a fheabhsú. Táimid fós sna céimeanna tosaigh ach is mór an t-údar dóchais atá againn.", + "defi-card-title": "Airgeadas díláraithe (DeFi)", + "defi-card-description": "Déan iniúchadh ar chóras airgeadais eile a tógadh gan bhainc agus atá oscailte do gach dhuine.", + "defi-card-button": "Cad é DeFi?", + "stablecoins-card-title": "Stablecoins", + "stablecoins-card-description": "Bíonn criptea-airgeadraí pionnáilte le luach airgeadra, tráchtearraí, nó ionstraim éigin eile airgeadais.", + "stablecoins-card-button": "Cad is criptea-airgeadraí daingne ann?", + "nft-card-title": "Comharthaí neamh-inmheasctha (NFTanna)", + "nft-card-description": "Léiriú ionadaíochta ar úinéireacht míreanna uathúla, lena n‑áirítear ealaín, gníomhais teidil agus ticéid ceolchoirme.", + "nft-card-button": "Cad is NFTanna ann?", + "dao-card-title": "Eagraíochtaí uathrialaitheacha díláraithe (DAO)", + "dao-card-description": "Cumasaigh bealaí nua chun obair a chomhordú gan saoiste.", + "dao-card-button": "Cad iad DAOanna?", + "dapp-card-title": "Feidhmchláir dhíláraithe (daipeanna)", + "dapp-card-description": "Geilleagar digiteach a chruthú de sheirbhísí piara le piara.", + "dapp-card-button": "Foghlaim faoi dhaipeanna", + "emerging-use-cases-title": "Cásanna úsáide atá ag teacht chun cinn", + "emerging-use-cases-description": "Tá tionscail shuntasacha eile á gcruthú nó á bhfeabhsú le hEthereum freisin:", + "play-to-earn": "Imir cluichí le tuilleamh (P2E)", + "fundraising-through-quadratic-funding": "Tiomsú airgid trí Mhaoiniú Cuadratach", + "supply-chain-management": "Bainistíocht slabhra soláthair", + "more-on-ethereum-use-cases": "Tuilleamh ar chásanna úsáide Ethereum", + "more-on-ethereum-use-cases-link": "Blocshlabhra i dtíortha i mbéal forbartha", + "strengthening-the-ethereum-network-description": "Is féidir leat cabhrú le Ethereum a shlánú agus luaíochtaí a thuilleamh ag an am céanna trí d'ETH a gheallchur. Is iomaí roghanna éagsúla atá ag an ngeallchur, ag brath ar do chuid eolais theicniúil agus ar an méad ETH atá agat.", + "staking-ethereum-card-title": "Ethereum a gheallchur", + "staking-ethereum-card-description": "Faigh amach conas tosú le d'ETH a gheallchur.", + "staking-ethereum-card-button": "Tosaigh staking", + "run-a-node-card-title": "Rith nód", + "run-a-node-card-description": "Bíodh ról criticiúil agat i líonra Ethereum trí nód a úsáid.", + "learn-about-ethereum-protocol-description": "Le haghaidh úsáideoirí ar mó a suim sa chuid theicniúil de líonra Ethereum.", + "energy-consumption-card-title": "Ídiú fuinnimh", + "energy-consumption-card-description": "Cé mhéad fuinneamh a úsáideann Ethereum?", + "energy-consumption-card-button": "An bhfuil Ethereum glas?", + "ethereum-upgrades-card-title": "Treochlár Ethereum", + "ethereum-upgrades-card-description": "Níos inscálaithe, níos sláine agus níos inbhuanaithe le treochlár Ethereum.", + "ethereum-upgrades-card-button": "Foghlaim faoin treochlár", + "ethereum-whitepaper-card-title": "Páipéar Bán Ethereum", + "ethereum-whitepaper-card-description": "Buntogra Ethereum arna scríobh ag Vitalik Buterin in 2014.", + "ethereum-whitepaper-card-button": "Léigh páipéar bán", + "more-on-ethereum-protocol-title": "Tuilleadh faoi phrótacal Ethereum", + "more-on-ethereum-protocol-ethereum-for-developers": "Ethereum le haghaidh forbróirí", + "more-on-ethereum-protocol-consensus": "Sásra comhaontaithe Ethereum atá bunaithe ar chruthúnas", + "more-on-ethereum-protocol-evm": "Ríomhaire leabaithe Ethereum (An EVM)", + "more-on-ethereum-protocol-nodes-and-clients": "Nóid agus cliaint Ethereum", + "ethereum-community-description": "A bhuí do phobal an-díograiseach Ethereum atá rathúlacht Ethereum. Cuidíonn na mílte daoine spreagúil agus tiomanta le fís Ethereum a bhrú chun cinn, mar aon le slándáil a sholáthar don líonra tríd an ngeallchur agus tríd an rialachas. Bí linn!", + "community-hub-card-title": "Mol pobail", + "community-hub-card-description": "Inár bpobal áirítear daoine ó gach cúlra.", + "community-hub-card-alt": "Léaráid de ghrúpa tógálaithe ag obair le chéile.", + "community-hub-card-button": "Foghlaim tuilleadh", + "get-involved-card-title": "Conas is féidir liom a bheith páirteach?", + "get-involved-card-description": "Tá fáilte romhat (romhatsa go pearsanta!) cur le pobal Ethereum.", + "online-communities-card-title": "Pobail ar líne", + "online-communities-card-description": "Trí phobail ar líne tugtar deis iontach duit chun ceisteanna níos sainiúla a chur nó chun páirt a ghlacadh.", + "online-communities-card-button": "Foghlaim faoi phobail", + "books-about-ethereum": "Leabhair faoi Ethereum", + "proof-of-stake-description": "13 Meán Fómhair, 2022 - Vitalik Buterin, Nathan Schneider", + "cryptopians-description": "22 Feabhra, 2022 - Laura Shin", + "out-of-the-ether-description": "29 Meán Fómhair, 2020 - Matthew Leising", + "the-infinite-machine-description": "14 Iúil, 2020 - Camila Russo", + "mastering-ethereum-description": "23 Nollaig, 2018 – Andreas M. Antonopoulos, Gavin Wood Ph.D.", + "podcasts-about-ethereum": "Podchraoltaí faoi Ethereum", + "bankless-description": "Treoir maidir le hairgeadas Crypto", + "zeroknowledge-description": "Mionchíoradh ar an teicneolaíocht a chuirfidh le fás an ghréasáin dhíláraithe atá ag teacht chun cinn agus leis an tógáil phobail", + "green-pill-description": "Treoir ar na córais cripteacnamaíochta lena gcruthaítear seachtrachachtaí dearfacha don domhan", + "unchained-description": "Léimeann sé go domhain isteach sna daoine atá ag tógáil an idirlín díláraithe, sonraí na teicneolaíochta seo a d’fhéadfadh a bheith mar bhonn agus mar thaca ag ár dtodhchaí, agus cuid de na hábhair is measa i cripte, amhail rialáil, slándáil agus príobháideacht", + "the-daily-gwei-description": "Athchoimrí, nuashonruithe agus anailís ar nuacht Ethereum" +} diff --git a/src/intl/ga/page-roadmap-vision.json b/src/intl/ga/page-roadmap-vision.json new file mode 100644 index 00000000000..1b277cea334 --- /dev/null +++ b/src/intl/ga/page-roadmap-vision.json @@ -0,0 +1,66 @@ +{ + "page-roadmap-vision-2014": "Féach ar bhlagphost de chuid 2014 ina sonraítear cruthúnas-gheallta", + "page-roadmap-vision-2021": "Féach ar bhlagphost 2021 ar éabhlóid treochlár Ethereum", + "page-roadmap-vision-2022": "Féach ar bhlagphost 2022: The Hitchhikers Guide to Ethereum", + "page-roadmap-vision-2021-updates": "Féach ar bhlagphost 2021 ar Nuashonruithe Prótacal Ethereum", + "page-roadmap-vision-desc-1": "Caithfidh Ethereum brú tráchta líonra a laghdú agus luasanna a fheabhsú chun seirbhís níos fearr a thabhairt do bhonn úsáideoirí domhanda.", + "page-roadmap-vision-desc-2": "Tá sé ag éirí níos deacra nód a rith de réir mar a fhásann an líonra. Ní éireoidh sé seo ach le hiarrachtaí an líonra a scáláil.", + "page-roadmap-vision-desc-3": "Úsáideann Ethereum an iomarca leictreachais. Ní mór an teicneolaíocht a choimeádann an líonra slán a bheith níos inbhuanaithe.", + "page-roadmap-vision-ethereum-node": "Tuilleadh faoi nóid", + "page-roadmap-vision-future": "Todhchaí digiteach ar scála domhanda", + "page-roadmap-vision-meta-desc": "Forbhreathnú ar an tionchar a bheidh ag uasghráduithe ar Ethereum, agus na dúshláin a chaithfidh siad a shárú.", + "page-roadmap-vision-meta-title": "Fís Ethereum", + "page-roadmap-vision-mining": "Níos mó ar mhianadóireacht", + "page-roadmap-vision-problems": "Fadhbanna an lae inniu", + "page-roadmap-vision-scalability": "Inscálaitheacht", + "page-roadmap-vision-scalability-desc": "Caithfidh Ethereum a bheith in ann níos mó idirbhearta a láimhseáil in aghaidh an tsoicind gan méadú ar mhéid na nóid sa líonra. Is rannpháirtithe líonra ríthábhachtacha iad na nóid a stórálann agus a ritheann an blocshlabhra. Níl sé praiticiúil méid nóid a mhéadú mar ní fhéadfadh ach daoine a bhfuil ríomhairí cumhachtacha costasacha acu é a dhéanamh. De réir scála, tá níos mó idirbhearta ag teastáil ó Ethereum in aghaidh an tsoicind, in éineacht le níos mó nóid. Ciallaíonn níos mó nóid níos mó slándála.", + "page-roadmap-vision-scalability-desc-4": "Ní mór stóráil ar chostas íseal a bheith ag rolluithe ar chiseal 1 chun idirbhearta a dhéanamh chomh saor agus is féidir d'úsáideoirí. Cuirfear é seo ar fáil i bhfoirm blobaí ceangailte le bloic Ethereum. Faoi dheireadh, beidh go leor blobaí ceangailte le bloic Ethereum, ag soláthar stórála saor do go leor rolluithe.", + "page-roadmap-vision-security": "Slándáil", + "page-roadmap-vision-security-desc": "Feabhsaíonn na huasghráduithe pleanáilte slándáil Ethereum i gcoinne ionsaithe comhordaithe.", + "page-roadmap-vision-security-desc-3": "Mar chruthúnas-gheallta tagann slándáil bhreise ó dhídhreasaithe cripte-eacnamaíochta níos mó in aghaidh ionsaí. Is é an fáth atá leis seo ná, mar chruthúnas-gheallta, go gcaithfidh na bailíochtaithe a dhaingníonn an líonra méideanna suntasacha ETH a chur isteach sa phrótacal. Má dhéanann siad iarracht an líonra a ionsaí, is féidir leis an bprótacal a ETH a mhilleadh go huathoibríoch.", + "page-roadmap-vision-security-desc-5": "Mar sin féin, tá sé tábhachtach freisin go gcuirfí i bhfeidhm go luath uasghráduithe a chosnaíonn bailíochtaithe i gcoinne ionsaithe diúltaithe seirbhíse, a fheabhsaítear a n-ainmníocht, agus go gcuirfear tógáil bloc ar leithligh agus iomadú bloc i bhfeidhm. Cosnaíonn na huasghráduithe seo bailíochtaithe aonair agus an líonra ina iomláine in aghaidh ionsaithe beocht agus cinsireacht.", + "page-roadmap-vision-security-desc-5-link": "Tuilleadh faoi chruthúnas-gheallta", + "page-roadmap-vision-security-desc-10": "Ciallaíonn gealltóireacht freisin nach gá duit infheistíocht a dhéanamh i gcrua-earraí den scoth le bheith rannpháirteach go díreach i gcomhthoil. Ba cheart go spreagfadh sé seo níos mó daoine a bheith ina bhailitheoir, ag méadú dílárú an líonra agus ag laghdú achar dromchla an ionsaithe.", + "page-roadmap-vision-security-staking": "Geallchuir ETH", + "page-roadmap-vision-security-validator": "Is féidir leat a bheith i do bhailitheoir trí do ETH a chur i bhfeidhm.", + "page-roadmap-vision-staking-lower": "Tuilleadh faoin ngeallchur", + "page-roadmap-vision-subtitle": "Fás Ethereum go dtí go bhfuil sé cumhachtach go leor chun cabhrú leis an gcine daonna ina iomláine.", + "page-roadmap-vision-sustainability": "Inbhuanaitheacht", + "page-roadmap-vision-sustainability-desc-1": "Is blocshlabhra glas é Ethereum anois. Laghdaíodh an tomhaltas fuinnimh de ~99.95% nuair a mhalartaíodh cruthúnas oibre le haghaidh cruthúnais-gheallta.", + "page-roadmap-vision-sustainability-desc-2": "Tá Ethereum daingnithe anois trí ghealltóireacht, ní cumhacht ríomhaireachta.", + "page-roadmap-vision-sustainability-desc-3": "Tá buntáistí slándála ag baint leis an mborradh inbhuanaitheachta seo freisin - bíonn sé i bhfad níos costasaí ionsaí a dhéanamh ar an slabhra ná mar a dhéantar faoi chruthúnas oibre, ach tá sé níos saoire é a dhaingniú mar is leor níos lú ETH nua a eisiúint chun bailíochtaithe a íoc ná mar ba ghá i gcás mianadóirí.", + "page-roadmap-vision-sustainability-desc-8": "Mar gheall ar an aistriú chuig cruthúnais-gheallta, rinneadh Ethereum níos glaise agus níos sláine. Is ardán ísealcharbóin é chun aipeanna agus eagraíochtaí a thógáil.", + "page-roadmap-vision-sustainability-subtitle": "Is blocshlabhra glas é Ethereum le slándáil láidir cripti-eacnamaíoch.", + "page-roadmap-vision-title": "Fís Ethereum", + "page-roadmap-vision-title-1": "Líonra bacáilte", + "page-roadmap-vision-title-2": "Spás diosca", + "page-roadmap-vision-title-3": "An iomarca fuinnimh", + "page-roadmap-vision-trilemma-cardtext-1": "Mar thoradh ar uasghrádú Ethereum déanfar Ethereum inscálaithe, slán agus díláraithe. Tríd an ngeallchur laghdaíodh an bac ar rannpháirtíocht agus tá teorainn le barainneachtaí scála, rud a chruthaigh líonra níos mó agus níos díláraithe.", + "page-roadmap-vision-trilemma-cardtext-2": "Éilíonn líonraí blocshlabhra slán agus díláraithe gach nód chun gach idirbheart arna phróiseáil ag an slabhra a fhíorú. Cuireann an méid oibre seo teorainn le líon na n-idirbheart a fhéadfaidh tarlú ag aon am ar leith. Léiríonn díláraithe agus slán an slabhra Ethereum inniu.", + "page-roadmap-vision-trilemma-cardtext-3": "Oibríonn líonraí díláraithe trí fhaisnéis a sheoladh faoi idirbhearta thar nóid - ní mór don líonra iomlán a bheith ar an eolas faoi aon athrú stáit. Cruthaíonn scálaithe idirbhearta in aghaidh an tsoicind ar fud líonra díláraithe rioscaí slándála mar dá mhéad idirbheart, dá fhaide an mhoill, is airde an dóchúlacht go dtarlóidh ionsaí agus faisnéis á heitilt.", + "page-roadmap-vision-trilemma-cardtext-4": "D'fhéadfadh méadú ar mhéid agus ar chumhacht nóid Ethereum méadú ar idirbhearta in aghaidh an tsoicind ar bhealach slán, ach chuirfeadh an ceanglas crua-earraí srian ar cé a d'fhéadfadh é a dhéanamh - bagairt sé seo ar dhílárú. Táthar ag súil go gcuirfidh sciartha agus cruthúnais-gheallta Ethereum scáláil a dhéanamh trí mhéid na nóid a mhéadú, ní méid na nód.", + "page-roadmap-vision-trilemma-h2": "Dúshlán an scálaithe díláraithe", + "page-roadmap-vision-trilemma-modal-tip": "Tapáil na ciorcail thíos chun na fadhbanna a bhaineann le scálaithe díláraithe a thuiscint níos fearr", + "page-roadmap-vision-trilemma-p": "Bealach soineanta chun fadhbanna Ethereum a réiteach ná é a dhéanamh níos láraithe. Ach tá dílárú ró-thábhachtach. Is é an dílárú a thugann neodracht Ethereum, friotaíocht cinsireachta, oscailteacht, úinéireacht sonraí agus slándáil nach féidir a bhriseadh, nach mór.", + "page-roadmap-vision-trilemma-p-1": "Is é fís Ethereum a bheith níos inscálaithe agus níos sábháilte, ach fanacht díláraithe freisin. Is fadhb ar a dtugtar an aincheist thriarach scálaithe é na 3 cháilíocht seo a bhaint amach.", + "page-roadmap-vision-trilemma-p-2": "Tá sé mar aidhm ag uasghrádú Ethereum an aincheist thriarach a réiteach ach tá dúshláin shuntasacha ann.", + "page-roadmap-vision-trilemma-press-button": "Brúigh na cnaipí ar an triantán chun tuiscint níos fearr a fháil ar na fadhbanna a bhaineann le scáláil díláraithe.", + "page-roadmap-vision-trilemma-text-1": "Dílárú", + "page-roadmap-vision-trilemma-text-2": "Slándáil", + "page-roadmap-vision-trilemma-text-3": "Inscálaitheacht", + "page-roadmap-vision-trilemma-title-1": "Déan iniúchadh ar an aincheist thriarach scálaithe", + "page-roadmap-vision-trilemma-title-2": "Uasghrádú Ethereum agus scáláil díláraithe", + "page-roadmap-vision-trilemma-title-3": "Slán agus díláraithe", + "page-roadmap-vision-trilemma-title-4": "Díláraithe agus Inscálaithe", + "page-roadmap-vision-trilemma-title-5": "Inscálaithe agus slán", + "page-roadmap-vision-understanding": "Tuiscint a fháil ar fhís Ethereum", + "page-roadmap-vision-upgrade-needs": "An gá atá le uasghráduithe", + "page-roadmap-vision-upgrade-needs-desc": "Bhí rath dochreidte ar phrótacal Ethereum a seoladh in 2015. Ach bhí an pobal Ethereum ag súil i gcónaí go mbeadh gá le cúpla príomh-uasghráduithe chun acmhainneacht iomlán Ethereum a dhíghlasáil.", + "page-roadmap-vision-upgrade-needs-desc-2": "Tá éileamh ard ag ardú táillí idirbhirt a fhágann go bhfuil Ethereum costasach don ghnáth-úsáideoir. Tá an spás diosca is gá chun cliant Ethereum a reáchtáil ag fás ag ráta tapa.", + "page-roadmap-vision-upgrade-needs-desc-3": "Tá sraith uasghráduithe ag Ethereum a thugann aghaidh ar na fadhbanna seo agus níos mó. Tugadh 'Serenity' agus 'Eth2,' ar an tsraith uasghrádaithe seo ar dtús agus tá siad ina réimse gníomhach taighde agus forbartha ó 2014 i leith.", + "page-roadmap-vision-upgrade-needs-desc-5": "Anois go bhfuil an teicneolaíocht réidh, déanfaidh na huasghráduithe seo Ethereum a ath-thógáil chun é a dhéanamh níos inscálaithe, níos sábháilte agus níos inbhuanaithe - chun an saol a fheabhsú d'úsáideoirí reatha agus chun úsáideoirí nua a mhealladh. Agus croíluach Ethereum díláraithe á chaomhnú i rith an ama.", + "page-roadmap-vision-upgrade-needs-desc-6": "Ciallaíonn sé seo nach bhfuil aon athrú ar inscálaithe. Seolfar feabhsuithe go hincriminteach le himeacht ama.", + "page-roadmap-vision-upgrade-needs-serenity": "Féach ar bhlagphost 2015 ag plé 'Serenity'", + "ethereum": "Ethereum", + "page-roadmap-vision-danksharding": "Tuilleadh faoi Danksharding" +} diff --git a/src/intl/ga/page-run-a-node.json b/src/intl/ga/page-run-a-node.json new file mode 100644 index 00000000000..215994c1ecb --- /dev/null +++ b/src/intl/ga/page-run-a-node.json @@ -0,0 +1,133 @@ +{ + "page-run-a-node-build-your-own-title": "Tóg ceann de do chuid féin", + "page-run-a-node-build-your-own-hardware-title": "Céim 1 - Crua-earraí", + "page-run-a-node-build-your-own-minimum-specs": "Sonraíochtaí íosta", + "page-run-a-node-build-your-own-min-ram": "4 - 8 GB RAM", + "page-run-a-node-build-your-own-ram-note-1": "Féach an nóta ar an ngeallchur", + "page-run-a-node-build-your-own-ram-note-2": "Féach nóta ar Raspberry Pi", + "page-run-a-node-build-your-own-min-ssd": "2 TB SSD", + "page-run-a-node-build-your-own-ssd-note": "SSD riachtanach do luasanna scríofa riachtanacha.", + "page-run-a-node-build-your-own-recommended": "Molta", + "page-run-a-node-build-your-own-nuc": "Intel NUC, 7ú glúine nó níos airde", + "page-run-a-node-build-your-own-nuc-small": "próiseálaí x86", + "page-run-a-node-build-your-own-connection": "Nasc idirlín sreangaithe", + "page-run-a-node-build-your-own-connection-small": "Níl sé ag teastáil, ach soláthraíonn sé socrú níos éasca agus an nasc is comhsheasmhaí", + "page-run-a-node-build-your-own-peripherals": "Scáileán taispeána agus méarchlár", + "page-run-a-node-build-your-own-peripherals-small": "Mura bhfuil DAppNode in úsáid agat, nó socrú ssh/gan cheann", + "page-run-a-node-build-your-own-software": "Céim 2 - Bogearraí", + "page-run-a-node-build-your-own-software-option-1-title": "Rogha 1 – DAppNode", + "page-run-a-node-build-your-own-software-option-1-description": "Nuair atá tú réidh le do chrua-earraí, is féidir an córas oibriúcháin DAppNode a íoslódáil trú úsáid a bhaint as aon ríomhaire agus é a shuiteáil ar SSD úr trí thiomáint USB.", + "page-run-a-node-build-your-own-software-option-1-button": "Socruithe DAppNode", + "page-run-a-node-build-your-own-software-option-2-title": "Rogha 2 - Líne na n-orduithe", + "page-run-a-node-build-your-own-software-option-2-description-1": "Le haghaidh rialú uasta, seans gur fearr le húsáideoirí a bhfuil taithí acu an líne ordaithe a úsáid ina ionad.", + "page-run-a-node-build-your-own-software-option-2-description-2": "Féach ar ár gcáipéisí forbróra le haghaidh tuilleadh eolais maidir le tosú le roghnú cliant.", + "page-run-a-node-build-your-own-software-option-2-button": "Socrú líne ordaithe", + "page-run-a-node-buy-fully-loaded-title": "Ceannaigh go hiomlán luchtaithe", + "page-run-a-node-buy-fully-loaded-description": "Ordú rogha ceannaigh-agus-imir ó dhíoltóirí le haghaidh na taithí bordála is simplí.", + "page-run-a-node-buy-fully-loaded-note-1": "Níl gá le tógáil.", + "page-run-a-node-buy-fully-loaded-note-2": "Socrú cosúil le haip le GUI.", + "page-run-a-node-buy-fully-loaded-note-3": "Níl gá le líne ordaithe.", + "page-run-a-node-censorship-resistance-title": "Friotaíocht Chinsireachta", + "page-run-a-node-censorship-resistance-preview": "Cinntigh rochtain nuair is gá duit é, agus ná bíodh cinsireacht ort.", + "page-run-a-node-censorship-resistance-1": "D’fhéadfadh nód 3ú páirtí idirbhearta a dhiúltú ó sheoltaí sonracha IP, nó idirbhearta a bhfuil cuntais shonracha i gceist leo, rud a d’fhéadfadh bac a chur ort an líonra a úsáid nuair is gá duit é. ", + "page-run-a-node-censorship-resistance-2": "Agus do nód féin agat chun idirbhearta a chur isteach ann ráthaítear gur féidir leat do idirbheart a chraoladh chuig an gcuid eile den líonra piara-go-piara am ar bith.", + "page-run-a-node-community-title": "Faigh roinnt cúntóirí", + "page-run-a-node-community-description-1": "Ar ardáin ar líne ar nós Discord nó Reddit casfar ort líon mór tógálaithe pobail atá sásta cabhrú leat le ceisteanna ar bith a d’fhéadfadh teacht ort.", + "page-run-a-node-community-description-2": "Bíodh comhluadar agat ar an mbealach. Má tá ceist agat is dócha go mbeidh duine éigin anseo in ann cabhrú leat freagra a fháil.", + "page-run-a-node-community-link-1": "Bí ar DAppNode Discord", + "page-run-a-node-community-link-2": "Aimsigh pobail ar líne", + "page-run-a-node-choose-your-adventure-title": "Roghnaigh d'eachtra", + "page-run-a-node-choose-your-adventure-1": "Beidh roinnt crua-earraí uait le tosú. Cé gur féidir bogearraí nóid a rith ar ríomhaire pearsanta, féadann meaisín tiomnaithe feidhmíocht do nóid a fheabhsú go mór agus a thionchar ar do phríomhríomhaire a íoslaghdú.", + "page-run-a-node-choose-your-adventure-2": "Nuair a bhíonn crua-earraí á roghnú agat, smaoinigh go bhfuil an slabhra ag fás go leanúnach, agus beidh gá le cothabháil dhosheachanta. Is féidir le sonraíochtaí méadaithe cabhrú le moill a chur ar an ngá atá le cothabháil nóid.", + "page-run-a-node-choose-your-adventure-build-1": "Rogha níos saoire agus níos saincheaptha le haghaidh úsáideoirí beagán níos teicniúla.", + "page-run-a-node-choose-your-adventure-build-bullet-1": "Foinsigh do chuid páirteanna féin.", + "page-run-a-node-choose-your-adventure-build-bullet-2": "Suiteáil DAppNode.", + "page-run-a-node-choose-your-adventure-build-bullet-3": "Nó, roghnaigh do OS féin agus do chliaint.", + "page-run-a-node-choose-your-adventure-build-start": "Cuir tús leis an tógáil", + "page-run-a-node-decentralized-title": "Dílárú", + "page-run-a-node-decentralized-preview": "Seas in aghaidh pointí láraithe teipe a neartú.", + "page-run-a-node-decentralized-1": "Is féidir le freastalaithe láraithe néil an-chuid chumhachta ríomhaireachta a sholáthar, ach bíonn siad mar sprioc do náisiúnstáit nó d'ionsaitheoirí atá ag iarraidh cur isteach ar an líonra.", + "page-run-a-node-decentralized-2": "Baintear athléimneacht líonra amach le nóid bhreise, i suímh gheografacha éagsúla, á bhfeidhmiú ag daoine breise ó chúlraí éagsúla. De réir mar a ritheann níos mó daoine a nód féin, laghdaítear an spleáchas ar phointí lárnaithe teipe, rud a fhágann go bhfuil an líonra níos láidre.", + "page-run-a-node-further-reading-title": "Tuilleadh léitheoireachta", + "page-run-a-node-further-reading-1-link": "Máistreacht Ethereum - Ar cheart dom Nód Iomlán a Rith", + "page-run-a-node-further-reading-1-author": "Andreas Antonopoulos", + "page-run-a-node-further-reading-2-link": "Ethereum ar ARM - Treoir Thapa Tosaigh", + "page-run-a-node-further-reading-3-link": "Na Teorainneacha le hInscálaitheacht Bhlocshlabhra", + "page-run-a-node-further-reading-3-author": "Vitalik Buterin", + "page-run-a-node-getting-started-title": "Ag tosnú", + "page-run-a-node-getting-started-software-section-1": "Sna laethanta tosaigh den líonra, ba ghá go mbíodh an cumas ag úsáideoirí comhéadan a dhéanamh leis an líne ordaithe chun nód Ethereum a oibriú.", + "page-run-a-node-getting-started-software-section-1-alert": "Más é sin do rogha féin, agus má tá na scileanna agat, ná bíodh drogall ort ár ndoiciméid theicniúla a sheiceáil.", + "page-run-a-node-getting-started-software-section-1-link": "Cruthaigh nód Ethereum", + "page-run-a-node-getting-started-software-section-2": "Anois tá DAppNode againn, atá saor in aisce agus atá ina bhogearraí foinse oscailte a thugann taithí cosúil le haipeanna d'úsáideoirí agus a nód á bhainistiú acu.", + "page-run-a-node-getting-started-software-section-3a": "Ní theastaíonn ach roinnt cliceanna le gur féidir leat do nód a chur ar bun agus a rith.", + "page-run-a-node-getting-started-software-section-3b": "Le DAppNode bíonn sé éasca d'úsáideoirí nóid iomlána a rith, chomh maith le daipeanna (dapps) agus líonraí eileP2P, gan aon ghá teagmháil a dhéanamh leis an líne ordaithe. Fágann sé sin go mbeidh sé níos éasca do gach duine bheith rannpháirteach agus líonra níos díláraithe a chruthú.", + "page-run-a-node-getting-started-software-title": "Cuid 2: Bogearraí", + "page-run-a-node-glyph-alt-terminal": "Glif críochfoirt", + "page-run-a-node-glyph-alt-phone": "Glif Tapa fón", + "page-run-a-node-glyph-alt-dappnode": "Glif DAppNode", + "page-run-a-node-glyph-alt-pnp": "Glif plugáil-agus-imirt", + "page-run-a-node-glyph-alt-hardware": "Glif crua-earraí", + "page-run-a-node-glyph-alt-software": "Glif íosluchtaithe bogearraí", + "page-run-a-node-glyph-alt-privacy": "Glif phríobháideachta", + "page-run-a-node-glyph-alt-censorship-resistance": "Glif meigeafóin cinsireachtfhriotaíoch", + "page-run-a-node-glyph-alt-earth": "Glif an domhain", + "page-run-a-node-glyph-alt-decentralization": "Glif díláraithe", + "page-run-a-node-glyph-alt-vote": "Glif Guthaigh do vóta", + "page-run-a-node-glyph-alt-sovereignty": "Glif cheannasachta", + "page-run-a-node-hero-alt": "Grafach nóid", + "page-run-a-node-hero-header": "Glac smacht iomlán.
                                        Rith do nód féin.", + "page-run-a-node-hero-subtitle": "Bí lán-cheannasach agus tú ag cabhrú leat an líonra a dhaingniú. Bí le hEthereum.", + "page-run-a-node-hero-cta-1": "Foghlaim níos mó", + "page-run-a-node-install-manually-title": "Suiteáil de láimh", + "page-run-a-node-install-manually-1": "Más úsáideoir níos teicniúla thú agus má tá cinneadh déanta agat do ghléas féin a thógáil, is féidir DAppNode a íoslódáil ó aon ríomhaire agus é a shuiteáil ar SSD úr trí thiomántán USB.", + "page-run-a-node-meta-description": "Réamhrá ar cad, cén fáth, agus conas nód Ethereum a rith.", + "page-run-a-node-participate-title": "Páirt a ghlacadh", + "page-run-a-node-participate-preview": "Tosaíonn réabhlóid an díláraithe leatsa.", + "page-run-a-node-participate-1": "Trí nód a rith beidh tú mar chuid de ghluaiseacht dhomhanda chun smacht agus cumhacht a dhílárú ar shaol na faisnéise.", + "page-run-a-node-participate-2": "Más sealbhóir thú, tabhair luach do do chuid ETH trí thacú le sláinte agus dílárú an líonra, agus cinntigh go bhfuil cead cainte agat maidir lena thodhchaí.", + "page-run-a-node-privacy-title": "Príobháideacht & Slándáil", + "page-run-a-node-privacy-preview": "Éirigh as ​​do chuid faisnéise pearsanta a sceitheadh chuig nóid tríú páirtí.", + "page-run-a-node-privacy-1": "Nuair a bhíonn idirbhearta á seoladh trí úsáid a bhaint as nóid phoiblí, is féidir faisnéis phearsanta a sceitheadh ​​chuig na seirbhísí tríú páirtí seo ar nós do sheoladh IP agus na seoltaí Ethereum is leatsa.", + "page-run-a-node-privacy-2": "Trí sparáin chomhoiriúnacha a dhíriú chuig do nód féin is féidir leat do sparán a úsáid chun idirghníomhú go príobháideach agus go slán leis an mblocshlabhra.", + "page-run-a-node-privacy-3": "Freisin, má dháileann nód mailíseach idirbheart neamhbhailí, déanfaidh do nód neamhaird air. Fíoraítear gach idirbheart go háitiúil ar do mheaisín féin, mar sin ní gá duit muinín a bheith agat as aon duine.", + "page-run-a-node-rasp-pi-title": "Nóta ar Raspberry Pi (próiseálaí ARM)", + "page-run-a-node-rasp-pi-description": "Is ríomhairí éadroma inacmhainne iad Raspberry Pis, ach bíonn srianta orthu a d'fhéadfadh tionchar a bheith acu ar fheidhmíocht do nóid. Cé nach bhfuil siad molta faoi láthair le haghaidh geall a chur, is féidir leo seo bheith ina rogha iontach agus shaor chun nód a rith le haghaidh úsáid phearsanta, gan ach 4 - 8 GB RAM.", + "page-run-a-node-rasp-pi-note-2-link": "Ethereum ar cháipéisí ARM", + "page-run-a-node-rasp-pi-note-2-description": "Foghlaim conas nód a shocrú tríd an líne ordaithe ar Raspberry Pi", + "page-run-a-node-rasp-pi-note-3-link": "Rith nód le Raspberry Pi", + "page-run-a-node-rasp-pi-note-3-description": "Lean anseo chun ranganna teagaisc a roghnú", + "page-run-a-node-shop": "Siopa", + "page-run-a-node-shop-avado": "Siopa Avado", + "page-run-a-node-shop-dappnode": "Siopa DAppNode", + "page-run-a-node-staking-title": "Geall do ETH", + "page-run-a-node-staking-description": "Cé nach bhfuil sé ag teastáil, le nód ar bun agus á rith tá tú céim amháin níos gaire do do chuid ETH a gheallchur chun luaíochtaí a thuilleamh agus cabhrú le rannchuidiú le gné eile de shlándáil Ethereum.", + "page-run-a-node-staking-link": "Geallchuir ETH", + "page-run-a-node-staking-plans-title": "Ag smaoineamh faoi gheall a chur?", + "page-run-a-node-staking-plans-description": "Chun éifeachtúlacht do bhailíochtóra a uasmhéadú, moltar íosmhéid 16 GB RAM, ach is fearr 32 GB, le scór tagarmhairc LAP de 6667+ ar cpubenchmark.net. Moltar freisin go mbeadh rochtain ag lucht geallchuir ar bandaleithead idirlín ardluais neamhtheoranta, cé nach riachtanas iomlán é seo.", + "page-run-a-node-staking-plans-ethstaker-link-label": "Conas siopadóireacht le haghaidh crua-earraí bailíochtóra Ethereum", + "page-run-a-node-staking-plans-ethstaker-link-description": "Téann EthStaker isteach go mion sa chlár speisialta uair an chloig", + "page-run-a-node-sovereignty-title": "Ceannas", + "page-run-a-node-sovereignty-preview": "Smaoinigh ar nód a rith cosúil leis an gcéad chéim eile níos faide ná do sparán Ethereum féin a fháil.", + "page-run-a-node-sovereignty-1": "Ligeann sparán Ethereum duit cúram a dhéanamh de do shócmhainní digiteacha agus smacht iomlán a fháil orthu trí na heochracha príobháideacha a choinneáil ceangailte le do sheoltaí, ach ní insíonn na heochracha sin duit staid reatha an bhlocshlabhra, mar shampla d'iarmhéid sparáin.", + "page-run-a-node-sovereignty-2": "Trí réamhshocrú, is gnách go dtéann sparáin Ethereum i dteagmháil le nód 3ú páirtí, mar atá Infura nó Alchemy, agus do chuid iarmhéideanna á lorg. Ligeann rith do nóid féin duit do chóip féin de bhlocshlabhra Ethereum a bheith agat.", + "page-run-a-node-title": "Rith nód", + "page-run-a-node-meta-title": "Conas Nód Ethereum a Rith", + "page-run-a-node-voice-your-choice-title": "Guthaigh do rogha", + "page-run-a-node-voice-your-choice-preview": "Ná scaoil le smacht i gcás foirc.", + "page-run-a-node-voice-your-choice-1": "I gcás forc slabhra, nuair a thagann dhá shlabhra chun cinn le dhá shraith rialacha éagsúla, trí do nód féin a rith ráthaítear go mbeidh tú in ann an tsraith rialacha a dtacaíonn tú leo a roghnú. Is fútsa atá sé uasghrádú go rialacha nua agus tacú le hathruithe molta, nó gan é sin a dhéanamh.", + "page-run-a-node-voice-your-choice-2": "Má tá ETH á gheallchur agat, trí do nód féin a rith ceadaítear duit do chliant féin a roghnú, chun do riosca slaiseála a laghdú agus chun freagairt d'éilimh athraitheacha an líonra le himeacht ama. Má gheallchuireann tú le tríú páirtí, forghéillfear do vóta ar an gcliant is fearr a cheapann tú.", + "page-run-a-node-what-title": "Cad atá i gceist le \"nód a rith\"?", + "page-run-a-node-what-1-subtitle": "Rith bogearraí.", + "page-run-a-node-what-1-text": "Ar a dtugtar 'cliant', íoslódálann na bogearraí seo cóip de bhlocshlabhra Ethereum agus fíoraíonn sé bailíocht gach bloic, ansin coinníonn sé cothrom le dáta é le bloic agus idirbhearta nua, agus cuidíonn sé le daoine eile a gcóipeanna féin a íoslódáil agus a nuashonrú.", + "page-run-a-node-what-2-subtitle": "Le crua-earraí.", + "page-run-a-node-what-2-text": "Tá Ethereum deartha chun nód a rith ar ríomhairí meánghráid tomhaltóra. Is féidir leat aon ríomhaire pearsanta a úsáid, ach roghnaíonn formhór na n‑úsáideoirí a nód a rith ar chrua‑earraí tiomnaithe chun deireadh a chur leis an tionchar feidhmíochta ar a n‑inneall agus aga neamhfhónaimh nóid a íoslaghdú.", + "page-run-a-node-what-3-subtitle": "Le linn duit bheith ar líne.", + "page-run-a-node-what-3-text": "D’fhéadfadh go mbeadh sé casta ar dtús nód Ethereum a rith, ach níl ann ach bogearraí cliant á rith go leanúnach ar ríomhaire agus é nasctha leis an idirlíon. Agus tú as líne, beidh do nód neamhghníomhach go simplí go dtí go dtiocfaidh sé ar ais ar líne agus go mbéarfaidh sé greim ar na hathruithe is déanaí.", + "page-run-a-node-who-title": " ba cheart nód a rith?", + "page-run-a-node-who-preview": "A dhaoine uaisle! Ní le haghaidh bailíochtóirí cruthúnais-geallchuir amháin na nóid. Is féidir le duine ar bith nód a rith - ní gá ETH a bheith agat fiú.", + "page-run-a-node-who-copy-1": "Ní gá duit ETH geall a chur chun nód a rith. Go deimhin, is é gach nód eile ar Ethereum a fhíoraítear cuntasacht na mbailíochtóirí.", + "page-run-a-node-who-copy-2": "Seans nach bhfaighidh tú na luaíochtaí airgeadais a thuilleann bailíochtóirí, ach tá go leor buntáistí eile ann a bhaineann le nód a rith le gurb chóir úsáideoirí Ethereum é a mheas, lena n-áirítear príobháideacht, slándáil, spleáchas laghdaithe ar fhreastalaithe tríú páirtí, friotaíocht chinsireachta agus sláinte fheabhsaithe agus dílárú an líonra.", + "page-run-a-node-who-copy-3": "Má tá do nód féin agat ní gá muinín a bheith agat as faisnéis faoi staid an líonra a sholáthraíonn tríú páirtí.", + "page-run-a-node-who-copy-bold": "Ní leor muinín. Fíoraigh.", + "page-run-a-node-why-title": "Cén fáth nód a rith?" +} diff --git a/src/intl/ga/page-stablecoins.json b/src/intl/ga/page-stablecoins.json new file mode 100644 index 00000000000..d35266e836b --- /dev/null +++ b/src/intl/ga/page-stablecoins.json @@ -0,0 +1,169 @@ +{ + "page-stablecoins-accordion-borrow-crypto-collateral": "Comhthaobhacht Crypto", + "page-stablecoins-accordion-borrow-crypto-collateral-copy": "Le hEthereum is féidir leat iasacht a fháil go díreach ó úsáideoirí eile gan do chuid ETH a thrádáil. Féadfaidh sé seo giaráil a thabhairt duit - déanann roinnt daoine é seo chun iarracht a dhéanamh níos mó ETH a charnadh.", + "page-stablecoins-accordion-borrow-crypto-collateral-copy-p2": "Ach toisc go bhfuil praghas ETH luaineach, beidh ort ró‑chomhthaobhacht a dhéanamh. Ciallaíonn sé sin gur dócha go mbeidh luach $150 ar a laghad de ETH de dhíth ort más mian leat 100 bonn cobhsaí a fháil ar iasacht. Tugann sé seo cosaint don chóras agus do na hiasachtóirí.", + "page-stablecoins-accordion-borrow-crypto-collateral-link": "Tuilleadh faoi stablecoins atá ráthaithe ag crypto", + "page-stablecoins-accordion-borrow-pill": "Casta", + "page-stablecoins-accordion-borrow-places-intro": "Ligeann na daipeanna seo duit Stablecoins a fháil ar iasacht trí úsáid a bhaint as crypto mar chomhthaobhacht. Glacann cuid acu le comharthaí eile chomh maith le ETH.", + "page-stablecoins-accordion-borrow-places-title": "Áiteanna ar féidir stablecoins a fháil ar iasacht", + "page-stablecoins-accordion-borrow-requirement-1": "Sparán Ethereum", + "page-stablecoins-accordion-borrow-requirement-1-description": "Beidh sparán uait chun daip a úsáid", + "page-stablecoins-accordion-borrow-requirement-2": "Éitear (ETH)", + "page-stablecoins-accordion-borrow-requirement-2-description": "Beidh ETH ag teastáil uait le haghaidh comhthaobhachta agus/nó táillí idirbhirt", + "page-stablecoins-accordion-borrow-requirements-description": "Chun Stablecoins a fháil ar iasacht beidh ort an daip cheart a úsáid. Beidh sparán agus roinnt ETH de dhíth ort freisin.", + "page-stablecoins-accordion-borrow-risks-copy": "Má úsáideann tú ETH mar chomhthaobhacht agus má thiteann a luach, ní chlúdóidh do chomhthaobhacht na Stablecoins a ghin tú. Leis sin déanfar do chuid ETH a leachtú agus féadfaidh tú pionós a thabhú. Mar sin má fhaigheann tú Stablecoins ar iasacht beidh ort féachaint ar an bpraghas ETH.", + "page-stablecoins-accordion-borrow-risks-link": "An praghas ETH is déanaí", + "page-stablecoins-accordion-borrow-risks-title": "Rioscaí", + "page-stablecoins-accordion-borrow-text-preview": "Is féidir leat roinnt Stablecoins a fháil ar iasacht trí úsáid a bhaint as crypto mar chomhthaobhacht, rud a chaithfidh tú a íoc ar ais.", + "page-stablecoins-accordion-borrow-title": "Iasacht", + "page-stablecoins-accordion-buy-exchanges-title": "Malartáin Mhóréilimh", + "page-stablecoins-accordion-buy-requirement-1": "Malartáin cryptp agus sparáin", + "page-stablecoins-accordion-buy-requirement-1-description": "Seiceáil na seirbhísí is féidir leat a úsáid san áit ina gcónaíonn tú", + "page-stablecoins-accordion-buy-requirements-description": "Cuntas le malartán nó sparán is féidir leat crypto a cheannach go díreach. B'fhéidir gur bhain tú úsáid as ceann amháin chun roinnt ETH a fháil. Seiceáil le fáil amach cé na seirbhísí is féidir leat a úsáid san áit ina gcónaíonn tú.", + "page-stablecoins-accordion-buy-text-preview": "Ligeann go leor malartán agus sparán duit Stablecoins a cheannach go díreach. Beidh srianta geografacha i bhfeidhm.", + "page-stablecoins-accordion-buy-title": "Ceannaigh", + "page-stablecoins-accordion-buy-warning": "Ní fhéadfaidh malartáin láraithe ach Stablecoins le tacaíocht fiat cosúil le USDC, Tether agus eile a liostú. Seans nach mbeidh tú in ann iad a cheannach go díreach, ach ba cheart go mbeifeá in ann iad a mhalartú ó ETH nó ó criptea-aigreadraí eile is féidir leat a cheannach ar an ardán.", + "page-stablecoins-accordion-earn-project-1-description": "Obair theicniúil don ghluaiseacht bogearraí foinse oscailte den chuid is mó.", + "page-stablecoins-accordion-earn-project-2-description": "Teicneolaíocht, ábhar agus obair eile do phobal MakerDao (an fhoireann a chruthaigh Dai).", + "page-stablecoins-accordion-earn-project-3-description": "Nuair a bhíonn fios do cheird agat, aimsigh fabhtanna chun Dai a thuilleamh.", + "page-stablecoins-accordion-earn-project-bounties": "Deolchairí Gitcoin", + "page-stablecoins-accordion-earn-project-bug-bounties": "Deolchairí fabhtanna do chisil comhdhearcaidh", + "page-stablecoins-accordion-earn-project-community": "Pobal MakerDao", + "page-stablecoins-accordion-earn-projects-copy": "Is ardáin iad seo a íocfaidh tú in Stablecoins as do chuid oibre.", + "page-stablecoins-accordion-earn-projects-title": "Cá háit stablecoins a thuilleamh", + "page-stablecoins-accordion-earn-requirement-1": "Sparán Ethereum", + "page-stablecoins-accordion-earn-requirement-1-description": "Beidh sparán ag teastáil uait chun do Stablecoins tuillte a fháil", + "page-stablecoins-accordion-earn-requirements-description": "Is modh iontach íocaíochta é Stablecoins as obair agus seirbhísí toisc go bhfuil an luach cobhsaí. Ach beidh sparán uait leis an íocaíocht a fháil.", + "page-stablecoins-accordion-earn-text-preview": "Is féidir leat stablecoins a thuilleamh trí oibriú ar thionscadail laistigh d'éiceachóras Ethereum.", + "page-stablecoins-accordion-earn-title": "Tuill", + "page-stablecoins-accordion-less": "Níos lú", + "page-stablecoins-accordion-more": "Tuilleadh", + "page-stablecoins-accordion-requirements": "Cad a bheidh uait", + "page-stablecoins-accordion-swap-dapp-intro": "Má tá ETH agus sparán agat cheana, is féidir leat na daipeanna seo a úsáid chun Stablecoins a mhalartú.", + "page-stablecoins-accordion-swap-dapp-link": "Tuilleadh ar mhalartáin dhíláraithe", + "page-stablecoins-accordion-swap-dapp-title": "Daipeanna le haghaidh comharthaí a mhalartú", + "page-stablecoins-accordion-swap-editors-tip": "Leid na n-eagarthóirí", + "page-stablecoins-accordion-swap-editors-tip-button": "Faigh sparán", + "page-stablecoins-accordion-swap-editors-tip-copy": "Faigh sparán duit féin a ligfidh duit ETH a cheannach agus é a mhalartú le haghaidh comharthaí, lena n-áirítear Stablecoins, go díreach.", + "page-stablecoins-accordion-swap-pill": "Molta", + "page-stablecoins-accordion-swap-requirement-1": "Sparán Ethereum", + "page-stablecoins-accordion-swap-requirement-1-description": "Beidh sparán uait chun an bhabhtáil a údarú agus chun do bhoinn a stóráil", + "page-stablecoins-accordion-swap-requirement-2": "Éitear (ETH)", + "page-stablecoins-accordion-swap-requirement-2-description": "Chun íoc as an malartú", + "page-stablecoins-accordion-swap-text-preview": "Is féidir leat an chuid is mó de na Stablecoins a phiocadh suas ar mhalartáin dhíláraithe. Mar sin is féidir leat comharthaí ar bith a d’fhéadfadh a bheith agat a mhalartú le haghaidh Stablecoins atá uait.", + "page-stablecoins-accordion-swap-title": "Babhtáil", + "page-stablecoins-algorithmic": "Algartamach", + "page-stablecoins-algorithmic-con-1": "Ní mór duit muinín (nó a bheith in ann a léamh) an an t‑algartam.", + "page-stablecoins-algorithmic-con-2": "Athrófar d’iarmhéid bonn bunaithe ar an soláthar iomlán.", + "page-stablecoins-algorithmic-description": "Ní thacaíonn aon sócmhainn eile leis na Stablecoins seo. Ina áit sin díolfaidh algartam comharthaí má thiteann an praghas faoi bhun an luacha inmhianaithe agus comharthaí soláthair má théann an luach thar an méid atá ag teastáil. Toisc go n‑athraíonn líon na n‑airíonna seo atá i gcúrsaíocht go rialta, athróidh líon na n‑airíonna atá agat, ach léireoidh sé do sciar i gcónaí.", + "page-stablecoins-algorithmic-disclaimer": "Is teicneolaíocht thurgnamhach iad Stablecoins algartamacha. Ba chóir duit bheith ar an eolas faoi na rioscaí sula n‑úsáideann tú iad.", + "page-stablecoins-algorithmic-pro-1": "Níl gá le comhthaobhacht.", + "page-stablecoins-algorithmic-pro-2": "Rialaithe ag algartam poiblí.", + "page-stablecoins-bank-apy": "0.05%", + "page-stablecoins-bank-apy-source": "An meánráta a íocann bainc ar chuntais choigiltis bhunúsacha faoi árachas feidearálach, SAM.", + "page-stablecoins-bank-apy-source-link": "Foinse", + "page-stablecoins-bitcoin-pizza": "Píotsa míchlúiteach Bitcoin", + "page-stablecoins-bitcoin-pizza-body": "In 2010, cheannaigh duine 2 phíotsa le haghaidh 10,000 bitcoin. Ag an am b'fhiú ~$41 USD iad seo. I margadh an lae inniu sin na milliúin dollar. Tá go leor idirbhearta aiféala comhchosúla i stair Ethereum. Tá réiteach na faidhbe sin ag Stablecoins, ionas gur féidir leat taitneamh a bhaint as an bpíotsa agus do chuid ETH a choinneáil.", + "page-stablecoins-category-dashboard-and-education": "Painéal & Oideachas", + "page-stablecoins-coin-price-change": "Athrú ar phraghas boinn (30 lá anuas)", + "page-stablecoins-crypto-backed": "Ráthaithe ag crypto", + "page-stablecoins-crypto-backed-con-1": "Níos neamhsheasmhaí ná Stablecoins le tacaíocht fiat.", + "page-stablecoins-crypto-backed-con-2": "Ní mór duit súil a choinneáil ar luach na comhthaobhachta crypto.", + "page-stablecoins-crypto-backed-description": "Tá sócmhainní crypto eile, cosúil le ETH, mar thaca ag na Stablecoins seo. Braitheann a bpraghas ar luach na bunsócmhainne (nó na comhthaobhachta), ar féidir a bheith luaineach. Toisc gur féidir le luach ETH a luainiú, tá na Stablecoins seo ró‑chomhthaobhaithe lena chinntiú go bhfanann an praghas chomh cobhsaí agus is féidir. Leis sin is cruinne rá go bhfuil bunsócmhainn crypto, ar fiú $2 ar a laghad é, ag stablecoin de $1 le tacaíocht crypto. Mar sin má thiteann praghas ETH, ní mór níos mó ETH a úsáid chun an Stablecoin a chúlú, ar shlí eile caillfidh na Stablecoin a luach.", + "page-stablecoins-crypto-backed-pro-1": "Trédhearcach agus díláraithe go hiomlán.", + "page-stablecoins-crypto-backed-pro-2": "Furasta a iompú isteach i sócmhainní crypto eile.", + "page-stablecoins-crypto-backed-pro-3": "Gan aon chaomhnóirí seachtracha - tá na sócmhainní go léir á rialú ag cuntais Ethereum.", + "page-stablecoins-dai-banner-body": "Is dócha gurb é Dai an stablecoin is cáiliúla. Is ionann a luach agus dollar agus glactar leis go forleathan ar fud daipeanna.", + "page-stablecoins-dai-banner-learn-button": "Foghlaim faoi Dai", + "page-stablecoins-dai-banner-swap-button": "Babhtáil ETH do Dai", + "page-stablecoins-dai-banner-title": "Dai", + "page-stablecoins-dai-logo": "Lógó Dai", + "page-stablecoins-editors-choice": "Roghanna na n‑eagarthóirí", + "page-stablecoins-editors-choice-intro": "Is dócha gurb iad seo na samplaí is cáiliúla de Stablecoins faoi láthair agus na boinn a bhí úsáideach dúinn agus muid ag úsáid daipeanna.", + "page-stablecoins-explore-dapps": "Foghlaim faoi dhaipeanna", + "page-stablecoins-fiat-backed": "Ráthaithe ag fiat", + "page-stablecoins-fiat-backed-con-1": "Láraithe – caithfidh duine éigin na comharthaí a eisiúint.", + "page-stablecoins-fiat-backed-con-2": "Teastaíonn iniúchadh lena chinntiú go bhfuil dóthain cúlchistí ag an gcuideachta.", + "page-stablecoins-fiat-backed-description": "Go bunúsach IOU (tá mé faoi chomaoin agat) le haghaidh airgeadra fiat traidisiúnta (dollar de ghnáth). Úsáideann tú d’airgeadra fiat chun bonn airgid a cheannach ar féidir leat airgead a chur isteach agus a fhuascailt níos déanaí do do bhunairgeadra.", + "page-stablecoins-fiat-backed-pro-1": "Sábháilte i gcoinne luaineacht criptithe.", + "page-stablecoins-fiat-backed-pro-2": "Tá athrú íosta ag baint le praghas.", + "page-stablecoins-find-stablecoin": "Faigh stablecoin", + "page-stablecoins-find-stablecoin-how-to-get-them": "Conas stablecoins a fháil", + "page-stablecoins-find-stablecoin-intro": "Tá na céadta Stablecoin ar fáil. Seo cuid acu chun cabhrú leat tosú. Murar úsáid tú Ethereum roimhe, molaimid roinnt taighde a dhéanamh ar dtús.", + "page-stablecoins-find-stablecoin-types-link": "Cineálacha éagsúla stablecoin", + "page-stablecoins-get-stablecoins": "Conas stablecoins a fháil", + "page-stablecoins-hero-alt": "Na trí Stablecoin is mó de réir chaipín an mhargaidh: Dai, USDC agus Tether.", + "page-stablecoins-hero-button": "Faigh stablecoins", + "page-stablecoins-hero-header": "Airgead digiteach le húsáid ó lá go lá", + "page-stablecoins-hero-subtitle": "Is comharthaí Ethereum iad Stablecoins atá deartha chun fanacht ar luach seasta, fiú nuair a athraítear praghas ETH.", + "page-stablecoins-interest-earning-dapps": "Daipeanna tuillimh úis", + "page-stablecoins-meta-description": "Réamhrá ar stablecoins de chuid Ethereum: cad iad, conas iad a fháil, agus cén fáth a bhfuil siad tábhachtach.", + "page-stablecoins-precious-metals": "Miotail lómhara", + "page-stablecoins-precious-metals-con-1": "Láraithe – caithfidh duine éigin na comharthaí a eisiúint.", + "page-stablecoins-precious-metals-con-2": "Ní mór duit muinín a bheith agat as an eisitheoir chomharthaí agus as na cúlchistí miotail lómhara.", + "page-stablecoins-precious-metals-description": "Cosúil le boinn atá ráthaithe ag fiat, ina ionad sin úsáideann na Stablecoins seo acmhainní mar ór chun a luach a choinneáil.", + "page-stablecoins-precious-metals-pro-1": "Sábháilte i gcoinne luaineacht criptithe.", + "page-stablecoins-prices": "Praghsanna Stablecoin", + "page-stablecoins-prices-definition": "Is criptea-aigeadraí iad Stablecoins gan an luaineacht. Roinneann siad go leor de na cumhachtaí céanna le ETH ach tá a luach seasta, níos cosúla le hairgeadra traidisiúnta. Mar sin tá rochtain agat ar airgead cobhsaí is féidir leat a úsáid ar Ethereum. ", + "page-stablecoins-prices-definition-how": "Cad is cúis le cobhsaíocht Stablecoins", + "page-stablecoins-research-warning": "Is teicneolaíocht nua é Ethereum agus is nua an chuid is mó de na feidhmchláir. Bí cinnte go bhfuil tú ar an eolas faoin riosca agus ná cuir ach an méid is féidir leat a chailleadh.", + "page-stablecoins-research-warning-title": "Déan do chuid taighde féin i gcónaí", + "page-stablecoins-save-stablecoins": "Sábháil le stablecoins", + "page-stablecoins-save-stablecoins-body": "Is minic a bhíonn ráta úis os cionn an mheáin ag Stablecoins mar go mbíonn go leor éileamh ar iad a fháil ar iasacht. Tá daipeanna ann a ligeann duit ús a thuilleamh ar do chuid stablecoins i bhfíor-am trí iad a íoc mar éarlais i linn iasachta. Díreach mar atá i saol na baincéireachta, tá tú ag soláthar comharthaí d’iasachtaithe ach is féidir leat do chuid comharthaí agus d’ús a aistarraingt am ar bith.", + "page-stablecoins-saving": "Bain úsáid mhaith as do choigilteas stablecoin agus tuill roinnt úis. Cosúil le gach rud in Crypto, is féidir leis na Torthaí Céatadáin Bliantúla (APY) tuartha athrú ó lá go lá ag brath ar sholáthar / éileamh fíor-ama.", + "page-stablecoins-stablecoins-dapp-callout-description": "Amharc ar dhaipeanna Ethereum - is minic a bhíonn Stablecoins níos úsáidí le haghaidh idirbhearta laethúla.", + "page-stablecoins-stablecoins-dapp-callout-image-alt": "Léaráid de madra.", + "page-stablecoins-stablecoins-dapp-callout-title": "Bain úsáid as do chuid stablecoins", + "page-stablecoins-stablecoins-dapp-description-1": "Margaí le haghaidh go leor Stablecoins, lena n‑áirítear Dai, USDC, TUSD, USDT agus eile. ", + "page-stablecoins-stablecoins-dapp-description-2": "Féadtar Stablecoins a thabhairt ar iasacht, agus ús agus $COMP, comhartha Compound féin, a thuilleamh.", + "page-stablecoins-stablecoins-dapp-description-3": "Ardán trádála lenar féidir leat ús a thuilleamh ar do Dai agus USDC.", + "page-stablecoins-stablecoins-dapp-description-4": "Aip atá deartha chun Dai a shábháil.", + "page-stablecoins-stablecoins-feature-1": "Tá Stablecoins domhanda, agus is féidir iad a sheoladh thar an idirlíon. Is furasta iad a fháil nó a sheoladh nuair a bhíonn cuntas Ethereum agat.", + "page-stablecoins-stablecoins-feature-2": "Tá éileamh ard ar Stablecoins, mar sin is féidir leat ús a thuilleamh ar do chuid féin a thabhairt ar iasacht. Bí cinnte go bhfuil tú ar an eolas faoi na rioscaí roimh iasacht a thabhairt.", + "page-stablecoins-stablecoins-feature-3": "Tá Stablecoins inmhalartaithe le haghaidh ETH agus comharthaí Ethereum eile. Braitheann go leor daipeanna ar Stablecoins.", + "page-stablecoins-stablecoins-feature-4": "Déantar Stablecoins a dhaingniú le cripteagrafaíocht. Ní féidir le duine ar bith idirbhearta a bhrionnú ar do shon.", + "page-stablecoins-stablecoins-meta-description": "Réamhrá ar stablecoins de chuid Ethereum: cad iad, conas iad a fháil, agus cén fáth a bhfuil siad tábhachtach.", + "page-stablecoins-stablecoins-table-header-column-1": "Airgeadra", + "page-stablecoins-stablecoins-table-header-column-2": "Caipitliú margaidh", + "page-stablecoins-stablecoins-table-header-column-3": "Cineál comhthaobhachta", + "page-stablecoins-stablecoins-table-type-crypto-backed": "Crypto", + "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", + "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Miotail lómhara", + "page-stablecoins-table-error": "Níorbh fhéidir Stablecoins a lódáil. Bain triail as an leathanach a athnuachan.", + "page-stablecoins-title": "Stablecoins", + "page-stablecoins-meta-title": "Míniú ar Stablecoins: Cad dó bhfuil siad ann?", + "page-stablecoins-top-coins": "Stablecoins is fearr de réir caipitlithe margaidh", + "page-stablecoins-top-coins-intro": "Is éard is caipitliú margaidh ann", + "page-stablecoins-top-coins-intro-code": "líon iomlán na ndearbhuithe atá ann arna iolrú faoin luach in aghaidh an chomhartha. Tá an liosta seo dinimiciúil agus ní gá go bhformhuiníonn foireann ethereum.org na tionscadail atá liostaithe anseo.", + "page-stablecoins-types-of-stablecoin": "Conas a oibríonn siad: cineálacha stablecoin", + "page-stablecoins-usdc-banner-body": "Is dócha gurb é USDC an stablecoin is cáiliúla le tacaíocht fiat. Tá luach thart ar dollar air agus tá sé ráthaithe ag Circle agus Coinbase.", + "page-stablecoins-usdc-banner-learn-button": "Foghlaim faoi USDC", + "page-stablecoins-usdc-banner-swap-button": "Babhtáil ETH le haghaidh USDC", + "page-stablecoins-usdc-banner-title": "USDC", + "page-stablecoins-usdc-logo": "Lógó USDC", + "page-stablecoins-why-stablecoins": "Cad chuige Stablecoins?", + "page-stablecoins-how-they-work-button": "Conas a oibríonn siad", + "page-stablecoins-why-stablecoins-body": "Tá praghas luaineach ag ETH, cosúil le Bitcoin, toisc gur teicneolaíocht nua é. Mar sin b'fhéidir nach dteastódh uait é a chaitheamh go rialta. Scáthánaíonn Stablecoins luach na n‑airgeadraí traidisiúnta chun rochtain a thabhairt duit ar airgead cobhsaí is féidir leat a úsáid ar Ethereum.", + "page-stablecoins-more-defi-button": "Tuilleadh faoi airgeadas díláraithe (DeFi)", + "page-stablecoins-tools-title": "Foghlaim tuilleadh faoi stablecoins", + "page-stablecoins-tools-stablecoinswtf-description": "Cuireann Stablecoins.wtf painéal ar fáil le sonraí margaidh stairiúla, staitisticí agus ábhar oideachais do na coinbhinsiúin is suntasaí.", + "page-dapps-ready-button": "Téigh", + "pros": "Buntáistí", + "cons": "Míbhuntáistí", + "1inch-logo": "Lógó 1inch", + "aave-logo": "Lógó Aave", + "binance-logo": "Lógó Binance", + "bittrex-logo": "Lógó Bittrex", + "coinbase-logo": "Lógó Coinbase", + "coinmama-logo": "Lógó Coinmama", + "compound-logo": "Lógó cumaisc", + "example-projects": "Tionscadail shamplacha", + "gemini-logo": "Lógó Gemini", + "gitcoin-logo": "Lógó Gitcoin", + "loopring-logo": "Lógó Loopring", + "makerdao-logo": "Lógó MakerDao", + "matcha-logo": "Lógó Matcha", + "summerfi-logo": "Lógó Summer.fi", + "uniswap-logo": "Lógó Uniswap", + "page-stablecoins-go-to": "Téigh go dtí" +} diff --git a/src/intl/ga/page-staking-deposit-contract.json b/src/intl/ga/page-staking-deposit-contract.json new file mode 100644 index 00000000000..d210baf8d41 --- /dev/null +++ b/src/intl/ga/page-staking-deposit-contract.json @@ -0,0 +1,28 @@ +{ + "page-staking-deposit-contract-address": "Seoladh conartha éarlas geallchuir", + "page-staking-deposit-contract-address-caption": "Tá spásanna curtha leis againn chun an seoladh a dhéanamh níos éasca le léamh", + "page-staking-deposit-contract-address-check-btn": "Seiceáil seoladh an chonartha taisce", + "page-staking-deposit-contract-checkbox1": "Tá an ceap lainseála úsáidte agam cheana féin chun mo bhailíochtóir Ethereum a shocrú.", + "page-staking-deposit-contract-checkbox2": "Tuigim go gcaithfidh mé an ceap lainseála a úsáid don gheallchur. Ní oibreoidh aistrithe simplí chuig an seoladh seo.", + "page-staking-deposit-contract-checkbox3": "Táim chun seoladh an chonartha taisce a sheiceáil le foinsí eile.", + "page-staking-deposit-contract-confirm-address": "Deimhnigh chun an seoladh a nochtadh", + "page-staking-deposit-contract-copied": "Seoladh cóipeáilte", + "page-staking-deposit-contract-copy": "Cóipeáil seoladh", + "page-staking-deposit-contract-etherscan": "Féach ar an gconradh ar Etherscan", + "page-staking-deposit-contract-h2": "Ní hé seo an áit ina gcuireann tú do gheall", + "page-staking-deposit-contract-launchpad": "Geallchur le ceap lainseála", + "page-staking-deposit-contract-launchpad-2": "Úsáid an ceap lainseála", + "page-staking-deposit-contract-meta-desc": "Fíoraigh an seoladh conartha taisce le haghaidh geallchur Ethereum.", + "page-staking-deposit-contract-meta-title": "Seoladh conartha taisce geallchur Ethereum", + "page-staking-deposit-contract-read-aloud": "Léigh an seoladh os ard", + "page-staking-deposit-contract-reveal-address-btn": "Nocht seoladh", + "page-staking-deposit-contract-staking": "Chun do ETH a chur i ngeall ní mór duit an táirge seoltaí tiomnaithe a úsáid agus na treoracha a leanúint. Má sheoltar ETH chuig an seoladh ar an leathanach seo ní bheidh tú i do ghealltóir agus teipfidh ar an idirbheart teipthe.", + "page-staking-deposit-contract-staking-check": "Seiceáil na foinsí seo", + "page-staking-deposit-contract-staking-check-desc": "Táimid ag glacadh leis go mbeidh go leor seoltaí bréige agus camscéimeanna amuigh ansin. Le bheith sábháilte, seiceáil an seoladh conartha geallchuir atá in úsáid agat in aghaidh an tseolta ar an leathanach seo. Molaimid é a sheiceáil le foinsí iontaofa eile freisin.", + "page-staking-deposit-contract-staking-more-link": "Tuilleadh faoin ngeallchur", + "page-staking-deposit-contract-stop-reading": "Stop ag léamh", + "page-staking-deposit-contract-subtitle": "Is é seo an seoladh do chonradh geallchuir Ethereum. Bain úsáid as an leathanach seo chun a dheimhniú go bhfuil tú ag seoladh cistí chuig an seoladh ceart agus geall á chur agat.", + "page-staking-deposit-contract-warning": "Seiceáil gach carachtar go cúramach.", + "page-staking-deposit-contract-warning-2": "Ní oibreoidh airgead a sheoladh chuig an seoladh seo agus ní dhéanfaidh sé gealltóir díot. Ní mór duit treoracha an cheap lainseála a leanúint.", + "page-staking-deposit-contract-title": "Seiceáil an seoladh conartha taisce" +} diff --git a/src/intl/ga/page-staking.json b/src/intl/ga/page-staking.json new file mode 100644 index 00000000000..e9a73f37477 --- /dev/null +++ b/src/intl/ga/page-staking.json @@ -0,0 +1,242 @@ +{ + "comp-withdrawal-comparison-current-title": "Lucht reatha geallchuir", + "comp-withdrawal-comparison-current-li-1": "B’fhéidir gur chuir roinnt úsáideoirí seoladh aistarraingthe ar fáil agus a n-éarlais geallta á socrú acu ar dtús – níl aon rud eile le déanamh ag na húsáideoirí seo", + "comp-withdrawal-comparison-current-li-2": "Níor thug formhór na ngeallsealbhóirí seoladh aistarraingthe ar an taisce tosaigh, agus beidh orthu a ndintiúir aistarraingthe a nuashonrú. Tá treoracha san Ardán Geallchuir maidir le conas é seo a dhéanamh", + "comp-withdrawal-comparison-current-p": "Is féidir leat d'uimhir innéacs bailíochtóra a chur isteach anseo le fáil amach an gá duit fós do dhintiúir a nuashonrú (is féidir é seo a fháil i do logaí cliaint):", + "comp-withdrawal-comparison-new-title": "Lucht geallchuir nua (gan taisceadh fós)", + "comp-withdrawal-comparison-new-li-1": "Trí réamhshocrú, ba cheart do lucht geallchuir nua atá ag iarraidh íocaíochtaí luaíochta agus feidhmiúlacht aistarraingthe a chumasú go huathoibríoch seoladh aistarraingthe Ethereum a rialaíonn siad a sholáthar agus iad ag giniúint a n-eochracha bailíochtaithe trí úsáid a bhaint as an uirlis CLI den Éarlais Gheallchuir", + "comp-withdrawal-comparison-new-li-2": "Níl sé seo ag teastáil tráth íoctha na héarlaise, ach má dhéantar anois é ní bheidh gá na heochracha seo a nuashonrú níos déanaí chun do chistí a dhíghlasáil", + "comp-withdrawal-comparison-new-p": "Leis an Ardán Geallchuir treorófar thú tríd an ionduchtú geallchuir.", + "comp-withdrawal-comparison-new-link": "Téigh chuig Ardán Geallchuir", + "comp-withdrawal-credentials-placeholder": "Innéacs bailíochtóra", + "comp-withdrawal-credentials-error": "Úps! Seiceáil uimhir innéacs an bhailitheora agus bain triail eile as.", + "comp-withdrawal-credentials-upgraded-2": "Dintiúir aistarraingthe atá nasctha le seoladh forghníomhaithe:", + "comp-withdrawal-credentials-not-upgraded-1": "Ní mór an bailíochtóir seo a nuashonrú.", + "comp-withdrawal-credentials-not-upgraded-1-testnet": "Ní mór an bailíochtóir Holesky Testnet seo a uasghrádú.", + "comp-withdrawal-credentials-not-upgraded-2": "Is féidir treoracha ar conas uasghrádú a fháil faoi láthair ag an Ardán Geallchuir", + "comp-withdrawal-credentials-verify-mainnet": "Fíoraigh ar Mainnet", + "comp-withdrawal-credentials-verify-holesky": "Fíoraigh ar Holesky", + "page-staking-withdrawals-when": "Seolta!", + "page-staking-image-alt": "Íomhá den tsonóg, an Srónbheannach, don ardán geallchuir.", + "page-staking-benefits-1-title": "Ag tuilleamh luaíochtaí", + "page-staking-benefits-1-description": "Tugtar luaíochtaí as gníomhartha a chuidíonn leis an líonra teacht ar chomhdhearcadh. Gheobhaidh tú luaíochtaí as bogearraí a rith a dhéanann beartú i mbloic nua i gceart agus a sheiceálann obair bailitheoirí eile mar is tríd sin a choinníonn an slabhra ag rith go slán.", + "page-staking-benefits-2-title": "Slándáil níos fearr", + "page-staking-benefits-2-description": "Éiríonn an líonra níos láidre i gcoinne ionsuithe mar go bhfuil níos mó ETH i gceist, mar go dteastaíonn níos mó ETH chun tromlach an líonra a rialú. Le bheith mar bhagairt, ba ghá an chuid is mó de bhailitheoirí a shealbhú, rud a chiallaíonn go mbeadh ort an chuid is mó den ETH sa chóras a rialú - sin cuid mhór!", + "page-staking-benefits-3-title": "Níos inbhuanaithe", + "page-staking-benefits-3-description": "Ní gá do lucht geallchuir ríomhanna cruthúnais-oibre atá dian ar fhuinneamh a dhéanamh chun páirt a ghlacadh i ndaingniú an líonra, rud a chiallaíonn gur féidir le nóid geallchuir a bheith ag rith ar chrua-earraí measartha gan ach fíorbheagán fuinnimh a úsáid.", + "page-staking-benefits-3-link": "Tuilleadh faoi ídiú fuinnimh Ethereum", + "page-staking-description": "Is éard is geallchur ann ná 32 ETH a íoc mar éarlais chun bogearraí bailíochtóra a ghníomhachtú. Mar bhailitheoir, beidh tú freagrach as sonraí a chur i dteaisce, as idirbhearta a phróiseáil agus as bloic nua a chur leis an mblocshlabhra. Leis sin coinneofar Ethereum slán do gach duine agus tuillfear ETH nua duit sa phróiseas.", + "page-staking-hero-title": "Conas do chuid ETH a gheallchur", + "page-staking-hero-header": "Luaíochtaí a thuilleamh agus Ethereum á urrú", + "page-staking-hero-subtitle": "Is féidir le gach úsáideoir le méid ar bith ETH cuidiú leis an líonra a dhaingniú agus luach saothair a thuilleamh sa phróiseas.", + "page-staking-dropdown-home": "Baile an gheallchuir", + "page-staking-dropdown-solo": "Geallchur baile", + "page-staking-more-on-solo": "Tuilleadh faoin ngeallchur baile", + "page-staking-learn-more-solo": "Foghlaim tuilleadh faoin ngeallchur aonair", + "page-staking-dropdown-saas": "Geallchur mar sheirbhís", + "page-staking-saas-with-abbrev": "Glacadh mar sheirbhís (SaaS)", + "page-staking-more-on-saas": "Tuilleadh faoin ngeallchur mar seirbhís", + "page-staking-learn-more-saas": "Foghlaim tuilleadh faoi gheallchur mar sheirbhís", + "page-staking-dropdown-pools": "Geallta comhthiomsaithe", + "page-staking-dropdown-withdrawals": "Maidir le haistarraingtí", + "page-staking-dropdown-dvt": "Teicneolaíocht bailíochtóra dháilte", + "page-staking-more-on-pools": "Tuilleadh ar an ngeallchur comhthiomsaithe", + "page-staking-learn-more-pools": "Foghlaim tuilleadh faoi gheallchur comhthiomsaithe", + "page-staking-section-what-title": "Cad is geallchur ann?", + "page-staking-section-why-title": "Cén fáth ar chóir duit do chuid ETH a gheallchur?", + "page-staking-section-why-p1": "Braitheann sé go hiomlán ar cé mhéad atá tú sásta a chur i ngeall. Beidh 32 ETH uait chun do bhailíochtóir féin a ghníomhachtú, ach is féidir níos lú a chur i ngeall.", + "page-staking-section-why-p2": "Seiceáil na roghanna thíos agus pioc an ceann is fearr duit, agus don líonra.", + "page-staking-guide-title-coincashew-ethereum": "Treoir CoinCashew maidir le hEthereum 2.0", + "page-staking-guide-title-somer-esat": "Somer Esat", + "page-staking-guide-title-rocket-pool": "Oibreoirí Nóid Rocket Pool", + "page-staking-guide-title-stakewise": "Oibreoirí Nód StakeWise", + "page-staking-guide-description-linux": "Linux (CLI)", + "page-staking-guide-description-mac-linux": "Linux, macOS (CLI)", + "page-staking-guide-description-mac-linux-windows": "Linux, Windows, MacOS (CLI)", + "page-staking-hierarchy-solo-h2": "Geallchur baile", + "page-staking-hierarchy-solo-pill-1": "Tionchar is suntasaí", + "page-staking-hierarchy-solo-pill-2": "Rialú iomlán", + "page-staking-hierarchy-solo-pill-3": "Luaíochtaí iomlána", + "page-staking-hierarchy-solo-pill-4": "Ní gá brath ar mhuinín", + "page-staking-hierarchy-solo-p1": "Is é an geallchur baile ar Ethereum an caighdeán óir le haghaidh geall a chur. Soláthraítear luaíochtaí rannpháirtíochta iomláine, cuirtear feabhas ar dhílárú an líonra, agus ní gá riamh muinín a chur ar aon duine eile le do chuid cistí.", + "page-staking-hierarchy-solo-p2": "Ba cheart go mbeadh méid áirithe ETH agus ríomhaire tiomnaithe atá nasctha leis an idirlíon ~24/7 acu siúd atá ag smaoineamh ar gheall a chur ón mbaile. Is mór an chabhair é fios gnó teicniúil, ach tá uirlisí éasca anois ann le húsáid chun cabhrú leis an bpróiseas seo a shimpliú.", + "page-staking-hierarchy-solo-p3": "Is féidir le lucht geallchuir ón mbaile a gcuid cistí a chomhthiomsú le daoine eile, nó dul ina n-aonar le 32 ETH ar a laghad. Is féidir úsáid a bhaint as réitigh leachtaithe a bhaineann le comharthaí a gheallchur chun rochtain ar DeFi a choinneáil.", + "page-staking-hierarchy-saas-pill-1": "Do 32 ETH", + "page-staking-hierarchy-saas-pill-2": "Do chuid eochracha bailíochtaithe", + "page-staking-hierarchy-saas-pill-3": "Oibriú iontaoibhe nód", + "page-staking-hierarchy-saas-p1": "Más amhlaidh nach dteastaíonn uait bheith ag déileáil le crua-earraí, nó nach mothaíonn tú ar do chompord faoi, ach fós dá mba mhaith leat do 32 ETH a chur i ngeall, ceadaítear duit an obair chrua a tharmligean a bhuí do na roghanna geallchuir mar sheirbhís agus tú ag tuilleamh luaíochtaí bloc dúchais.", + "page-staking-hierarchy-saas-p2": "Is iondúil go dtreoraíonn na roghanna seo thú trí shraith dintiúir bailíochtóra a chruthú, do chuid eochracha sínithe isteach a uaslódáil chucu, agus do 32 ETH a íoc mar éarlais. Leis sin ligtear don tseirbhís bailíochtú ar do shon.", + "page-staking-hierarchy-saas-p3": "Teastaíonn leibhéal áirithe muiníne as an soláthraí leis an modh gealltóireachta seo. Chun riosca contrapháirtí a mhaolú, de ghnáth coinnítear na heochracha chun do chuid ETH a aistarraingt i do sheilbhse amháin.", + "page-staking-hierarchy-pools-pill-1": "Geallchuir an méid is mian leat", + "page-staking-hierarchy-pools-pill-2": "Ag tuilleamh luaíochtaí", + "page-staking-hierarchy-pools-pill-3": "Coinnigh simplí é", + "page-staking-hierarchy-pools-pill-4": "Coitianta", + "page-staking-hierarchy-pools-p1": "Tá roinnt réiteach comhthiomsaithe ann chun cabhrú le húsáideoirí nach bhfuil 32 ETH acu nó nach mothaíonn compordach iad a chur i ngeall.", + "page-staking-hierarchy-pools-p2": "I measc lear mór de na roghanna seo tá rud ar a dtugtar 'geallchur leachtach' a bhaineann le comhartha leachta ERC-20 a sheasann do do chuid ETH geallchurtha.", + "page-staking-hierarchy-pools-p3": "Mar gheall ar an ngeallchur leachtach bíonn an geallchur agus an dí-gheallchur chomh simplí le malartú comharthaí agus is féidir caipiteal geallchurtha a úsáid in DeFi. Tríd an rogha sin, ligtear d’úsáideoirí cúram a gcuid sócmhainní a choinneáil ina sparáin féin Ethereum.", + "page-staking-hierarchy-pools-p4": "Ní de dhúchas ghréasán Ethereum é an geallchur comhthiomsaithe. Tá na réitigh seo á dtógáil ag tríú páirtithe, agus tá a rioscaí féin ag baint leo.", + "page-staking-hierarchy-cex-h2": "Malartuithe láraithe", + "page-staking-hierarchy-cex-pill-1": "Tionchar is lú suntais", + "page-staking-hierarchy-cex-pill-2": "Na boinn tuisceana iontaoibhe is airde", + "page-staking-hierarchy-cex-p1": "Is iomaí malartáin láraithe trína soláthraítear seirbhísí geallchuir sa chás nach bhfuil tú compordach ETH a choinneáil i do sparán féin. Féadfaidh siad bheith mar chúltaca chun ligean duit toradh éigin a thuilleamh ar do shealúchais ETH le maoirseacht nó le hiarracht neamhiomarcach.", + "page-staking-hierarchy-cex-p2": "Sa chás seo is é an chomhbhabhtáil ná go gcomhdhlúthaíonn soláthraithe láraithe lear mór ETH chun líon mór bailíochtóirí a rith. Féadfaidh sé seo a bheith contúirteach don líonra agus dá úsáideoirí mar cruthaítear sprioc mór láraithe agus pointe teipe, rud a fhágann go bhfuil an líonra níos leochailí i leith ionsaithe nó fabhtanna.", + "page-staking-hierarchy-cex-p3": "Mura mothaíonn tú compordach do chuid eochracha féin a bheith agat, tá sé ceart go leor. Tá na roghanna seo ann duit. Idir an dá linn, smaoinigh ar ár leathanach sparán a sheiceáil, áit ar féidir leat tosú ag foghlaim conas fíor-úinéireacht a ghlacadh ar do chistí. Nuair a bheidh tú réidh, tar ar ais agus tabhair ardú céime don gheallchur trí triail a bhaint as ceann de na seirbhísí féinchúraim geallchuir chomhthiomsaithe a chuirimid ar fáil.", + "page-staking-hierarchy-subtext": "Is dócha go dtuigeann tú anois go bhfuil go leor bealaí ann chun páirt a ghlacadh i ngeallchur Ethereum. Leis na cosáin seo dírítear ar raon leathan úsáideoirí agus ar deireadh tá gach ceann uathúil agus éagsúil ó thaobh rioscaí, luaíochtaí agus boinn tuisceana iontaoibhe. Tá cuid acu níos díláraithe, níos déine agus/nó níos contúirtí ná cinn eile. Cuirimid roinnt eolais ar fáil ar thionscadail móréilimh sa spás, ach déan do chuid taighde féin i gcónaí sula seolann tú ETH áit ar bith.", + "page-staking-comparison-solo-saas": "Le soláthraithe SaaS caithfidh tú fós 32 ETH a íoc mar éarlais, ach ní gá duit crua-earraí a rith. De ghnáth coinníonn tú rochtain ar do chuid eochracha bailíochtaithe, ach caithfidh tú do chuid eochracha sínithe isteach a roinnt freisin le gur féidir leis an oibreoir gníomhú thar ceann do bhailíochtóra. Leis sin tugtar isteach méid áirithe muiníne nár ghá dá mbeifeá ag rith do chrua-earraí féin, agus murab ionann agus geallchur aonair sa bhaile, ní chuidíonn SaaS an oiread céanna le dáileadh geografach na nód. Má tá tú míchompordach ag oibriú crua-earraí ach fós ag iarraidh 32 ETH a gheallchur, seans gur rogha mhaith duit soláthraí SaaS a úsáid.", + "page-staking-comparison-solo-pools": "Tá an geallchur aonair i bhfad níos éithithí ná seirbhís chomhthiomsaithe, ach tairgeann sé rochtain iomlán ar luaíochtaí ETH, agus smacht iomlán ar shocrú agus ar shlándáil do bhailitheóra. Is éasca riachtanais iontrála an gheallchuir chomhthiomsaithe. Is féidir le húsáideoirí méideanna beaga ETH a ghlacadh, níl gá leo eochracha bailíochtaithe a ghiniúint, agus níl aon riachtanais acu i dtaca le crua‑earraí seachas nasc caighdeánach idirlín. Trí chomharthaí leachtachta is féidir éirí as an ngeallchur sular fédir ar leibhéal an phrótacail. Má tá suim agat sna gnéithe seo, seans go n-oirfidh an geallchur comhthiomsaithe duit.", + "page-staking-comparison-saas-solo": "I measc na gcosúlachtaí áirítear eochracha bailíochtaithe de do chuid féin a bheith agat gan cistí a chomhthiomsú, ach le SaaS ní mór muinín a bheith agat as tríú páirtí, a d’fhéadfadh gníomhú go mailíseach nó a bheith ina sprioc ionsaithe nó rialaithe. Más rud é go mbaineann na boinn tuisceana iontaoibhe nó na rioscaí láraithe seo leat, is é an geallchur aonair é an caighdeán óir maidir leis an ngeallchur féincheannasaigh.", + "page-staking-comparison-saas-pools": "Tá siad seo cosúil leis sin sa mhéid is go mbíonn tú ag brath go ginearálta ar dhuine éigin eile chun an cliant bailíochtaithe a rith, ach murab ionann agus SaaS, le geallchur comhthiomsaithe ceadaítear duit páirt a ghlacadh le méideanna níos lú ETH. Má tá tú ag iarraidh geallchur le níos lú ná 32 ETH, breathnaigh orthu seo.", + "page-staking-comparison-pools-solo": "Is ísle i bhfad riachtanais iontrála an gheallchuir chomhthiomsaithe i gcomparáid leis an ngeallchur baile, ach baineann riosca breise leis trí gach oibríocht nóid a tharmligean chuig tríú páirtí, agus tá táille ann. Tríd an ngeallchur baile tugtar ceannasacht agus smacht iomlán duit ar na roghanna a bhaineann le socruithe geallchuir a roghnú. Ní chaithfidh lucht geallchuir a n‑eochracha a thabhairt ar láimh riamh, agus tuilleann siad luaíochtaí iomlána gan meáncheannaí a íoc.", + "page-staking-comparison-pools-saas": "Tá siad seo cosúil leis sin sa mhéid is nach iad an lucht geallchuir a ritheann na bogearraí bailíochtaithe, ach murab ionann agus roghanna comhthiomsaithe, tá éarlais iomlán 32 ETH ag teastáil ó SaaS chun bailíochtóir a ghníomhachtú. Carnann luaíochtaí ar an ngealltóir, agus de ghnáth bíonn táille mhíosúil nó geall eile i gceist leis an tseirbhís a úsáid. Más fearr leat do chuid eochracha bailíochtaithe féin agus má tá tú ag iarraidh 32 ETH ar a laghad a gheallchur, seans gur rogha mhaith duit soláthraí SaaS a úsáid.", + "page-staking-considerations-dropdown-text": "Ceisteanna maidir le geallchur", + "page-staking-considerations-dropdown-aria-label": "Roghchlár anuas le haghaidh breithniúcháin geallchuir", + "page-staking-considerations-solo-1-title": "Foinse oscailte", + "page-staking-considerations-solo-1-description": "Foinsítear an cód riachtanach ar bhonn oscailte 100% agus tá sé ar fáil don phobal le húsáid leo", + "page-staking-considerations-solo-1-warning": "Foinse dhúnta", + "page-staking-considerations-solo-2-title": "Arna iniúchadh", + "page-staking-considerations-solo-2-description": "Rinneadh iniúchadh foirmiúil ar an gcód riachtanach agus foilsíodh na torthaí agus tá siad ar fáil go poiblí", + "page-staking-considerations-solo-2-warning": "Dada", + "page-staking-considerations-solo-3-title": "Deolchaire fabhtanna", + "page-staking-considerations-solo-3-description": "Tá deolchaire phoible fabhtanna déanta ar gach cód riachtanach chun luaíochtaí a thabhairt d’úsáideoirí as leochaileachtaí a thuairisciú agus/nó a cheartú go sábháilte", + "page-staking-considerations-solo-3-valid": "Gníomhach faoi láthair", + "page-staking-considerations-solo-3-caution": "Críochnaithe", + "page-staking-considerations-solo-4-title": "Diantástáil déanta", + "page-staking-considerations-solo-4-description": "Tá bogearraí ar fáil agus in úsáid ag an bpobal ar feadh na tréimhse sonraithe", + "page-staking-considerations-solo-4-valid": "Beo > 1 bhliain", + "page-staking-considerations-solo-4-caution": "Beo > 6 mhí", + "page-staking-considerations-solo-4-warning": "Nua-scaoilte", + "page-staking-considerations-solo-5-title": "Ní gá brath ar mhuinín", + "page-staking-considerations-solo-5-description": "Ní chuirtear eochracha bailíochtóra ar iontaoibh duine ar bith eile ag am ar bith i saolré an bhailíochtóra. Tá gach conradh cliste atá i gceist saor ó chúldoirse, gan brath ar cheadanna faoi phribhléid lena gcur i gcrích.", + "page-staking-considerations-solo-5-warning": "Iontaofa", + "page-staking-considerations-solo-6-title": "Gan chead", + "page-staking-considerations-solo-6-description": "Ní theastaíonn aon chead speisialta ó úsáideoirí chun bailíochtóir a oibriú trí úsáid a bhaint as na bogearraí nó as an tseirbhís", + "page-staking-considerations-solo-6-valid": "Gan chead", + "page-staking-considerations-solo-6-warning": "Cead ag teastáil", + "page-staking-considerations-solo-7-title": "Il-cliaint", + "page-staking-considerations-solo-7-description": "Cuireann bogearraí ar chumas na n-úsáideoirí piocadh ó ar a laghad dhá chliaint forghníomhaithe nó níos mó, agus dhá cheann nó níos mó de chliaint cisil comhdhearcaidh agus aistriú eatarthu ar fad", + "page-staking-considerations-solo-7-valid": "Athrú éasca cliaint", + "page-staking-considerations-solo-7-warning": "Teoranta do chliant tromlaigh", + "page-staking-considerations-solo-8-title": "Féinchúram", + "page-staking-considerations-solo-8-description": "Déanann an t-úsáideoir cúram do dhintiúir ar bith bailitheora, lena n-áirítear eochracha sínithe agus aistarraingthe", + "page-staking-considerations-solo-8-warning": "Taisceánach tríú páirtí", + "page-staking-considerations-solo-9-title": "Eacnamúil", + "page-staking-considerations-solo-9-description": "Is féidir le húsáideoirí bailíochtóir a oibriú trí níos lú ná 32 ETH a chur i ngeall, trí úsáid a bhaint as cistí comhthiomsaithe ó dhaoine eile", + "page-staking-considerations-solo-9-valid": "< 32 ETH", + "page-staking-considerations-solo-9-warning": "32 ETH", + "page-staking-considerations-saas-4-description": "Tá seirbhís ar fáil agus in úsáid ag an bpobal ar feadh na tréimhse sonraithe", + "page-staking-considerations-saas-6-description": "Ní theastaíonn aon chead speisialta, cruthú cuntais ná KYC ó úsáideoirí chun páirt a ghlacadh sa tseirbhís", + "page-staking-considerations-saas-6-valid": "Is féidir le duine ar bith a bheith páirteach", + "page-staking-considerations-saas-6-warning": "Cead ag teastáil", + "page-staking-considerations-saas-7-title": "Éagsúlacht forghníomhaithe", + "page-staking-considerations-saas-7-description": "Níor cheart don tseirbhís níos mó ná 50% dá mbailitheoirí comhiomlána a rith le cliant forghníomhaithe tromlaigh", + "page-staking-considerations-saas-7-valid": "Níos lú ná 50%", + "page-staking-considerations-saas-7-caution": "Ní fios faoi láthair", + "page-staking-considerations-saas-7-warning": "Níos mó ná 50%", + "page-staking-considerations-saas-8-title": "Éagsúlacht chomhdhearcaidh", + "page-staking-considerations-saas-8-description": "Níor cheart don tseirbhís níos mó ná 50% dá mbailitheoirí comhiomlána a rith le cliant comhdhearcaidh tromlaigh", + "page-staking-considerations-saas-8-valid": "Níos lú ná 50%", + "page-staking-considerations-saas-8-caution": "Ní fios faoi láthair", + "page-staking-considerations-saas-8-warning": "Níos mó ná 50%", + "page-staking-considerations-pools-5-description": "Ní éilítear muinín a bheith agat as aon duine chun cúram a dhéanamh de do chuid eochracha nó luaíochtaí a dháileadh mar chuid den tseirbhís", + "page-staking-considerations-pools-6-title": "Nóid gan chead", + "page-staking-considerations-pools-6-description": "Ceadaíonn an tseirbhís do dhuine ar bith a bheith páirteach mar oibreoir nóid don chomhthiomsú, gan cead", + "page-staking-considerations-pools-7-description": "Níor cheart don tseirbhís níos mó ná 50% dá mbailitheoirí comhiomlána a rith le cliant forghníomhaithe tromlaigh", + "page-staking-considerations-pools-8-title": "Comhartha leachtachta", + "page-staking-considerations-pools-8-description": "Tairgtear comhartha leachtachta intrádála lena léirítear do chuid ETH geallchurtha, agus é á choinneáil i do sparán féin", + "page-staking-considerations-pools-8-valid": "Comhartha(i) leachtachta", + "page-staking-considerations-pools-8-warning": "Gan comhartha leachtachta", + "page-staking-considerations-pools-9-description": "Níor cheart don tseirbhís níos mó ná 50% dá mbailitheoirí comhiomlána a rith le cliant comhdhearcaidh tromlaigh", + "page-staking-how-solo-works-item-1": "Faigh roinnt crua-earraí: Ní mór duit nód a rith le geallchur", + "page-staking-how-solo-works-item-2": "Sioncronaigh cliant cisil forghníomhaithe", + "page-staking-how-solo-works-item-3": "Sioncronaigh cliant cisil comhthiomsaithe", + "page-staking-how-solo-works-item-4": "Gin do chuid eochracha agus cuir isteach i do chliant bailíochtaithe iad", + "page-staking-how-solo-works-item-5": "Monatóireacht agus cothabháil a dhéanamh ar do nód", + "page-staking-launchpad-widget-testnet-label": "Holesky testnet", + "page-staking-launchpad-widget-testnet-start": "Tosaigh leis an ngeallchur ar líonra Holesky testnet", + "page-staking-launchpad-widget-mainnet-label": "Príomhlíonra", + "page-staking-launchpad-widget-mainnet-start": "Tosaigh leis an ngeallchur ar Mainnet", + "page-staking-launchpad-widget-span": "Roghnaigh líonra", + "page-staking-launchpad-widget-p1": "Táthar ag súil go ndéanfaidh bailíochtaitheoirí aonair a gcuid scileanna suiteála agus oibríochta a thástáil ar líonra Holesky testnet sula gcuirfear cistí i mbaol. Cuimhnítear go bhfuil sé tábhachtach cliant mionlaigh a roghnú mar go bhfeabhsaítear slándáil an líonra agus go gcuireann sé teorainn le do riosca.", + "page-staking-launchpad-widget-p2": "Má tá tú compordach leis, is féidir leat gach rud riachtanach a shocrú ón líne ordaithe trí úsáid a bhaint as an Ardán Geallchuir amháin.", + "page-staking-launchpad-widget-p3": "Chun rudaí a dhéanamh níos éasca, seiceáil cuid de na huirlisí agus na treoracha thíos ar féidir leo cabhrú leat taobh leis an Ardán Geallchuir chun do chliaint a chur ar bun gan stró.", + "page-staking-launchpad-widget-link": "Uirlisí agus treoir bogearraí", + "page-staking-products-get-started": "Cuir tús leis", + "page-staking-products-follow": "Tabhair cuairt ar", + "page-staking-dropdown-staking-options": "Roghanna Geallchuir", + "page-staking-dropdown-staking-options-alt": "Roghchlár anuas roghanna geallchuir", + "page-staking-stats-box-metric-1": "Iomlán ETH geallchurtha", + "page-staking-stats-box-metric-2": "Iomlán bailíochtóirí", + "page-staking-stats-box-metric-3": "APR reatha", + "page-staking-stats-box-metric-1-tooltip": "Suim an ETH atá geallchurtha ar an Slabhra Rabhcháin, gan iarmhéideanna os cionn 32 ETH san áireamh", + "page-staking-stats-box-metric-2-tooltip": "Líon na gcuntas bailíochtaithe atá i ngníomh faoi láthair ar an Slabhra Rabhcháin", + "page-staking-stats-box-metric-3-tooltip": "An meántoradh bliantúlaithe airgeadais in aghaidh an bhailitheora thar an tréimhse 24 uair a chuaigh thart", + "page-staking-section-comparison-subtitle": "Níl aon réiteach ann a oireann go foirfe don gheallchur, agus tá gach réiteach acu uathúil. Thíos déanfaimid comparáid idir cuid de na rioscaí, na luaíochtaí agus na riachtanais a bhaineann leis na bealaí éagsúla ar féidir leat dul i ngleic leo.", + "page-staking-section-comparison-rewards-title": "Luaíochtaí", + "page-staking-section-comparison-solo-rewards-li1": "Luaíochtaí uasta - gheobhaidh tú luaíochtaí iomlána go díreach ón bprótacal", + "page-staking-section-comparison-solo-rewards-li2": "Luaíochtaí as bloic a mholadh, lena n-áirítear táillí idirbhirt neamhdhóite, agus fianú rialta ar staid an líonra", + "page-staking-section-comparison-solo-rewards-li3": "Rogha chun comhartha leachta geallchuir a bhreacadh i gcoinne do nóid tí le húsáid in DeFi", + "page-staking-section-comparison-saas-rewards-li1": "De ghnáth tá luaíochtaí iomlána prótacail i gceist leis seo lúide táille mhíosúil le haghaidh oibríochtaí nód", + "page-staking-section-comparison-saas-rewards-li2": "Deaiseanna ar fáil go minic chun do chliant bailíochtóra a rianú go héasca", + "page-staking-section-comparison-pools-rewards-li1": "Fabhraíonn lucht geallchur comhthiomsaithe luaíochtaí ar bhealach difriúil, ag brath ar an modh comhthiomsaithe a roghnaítear", + "page-staking-section-comparison-pools-rewards-li2": "Tairgeann go leor seirbhísí geallchur comhthiomsaithe comharthaí leachtachta lena léirítear do chuid ETH geallchurtha móide do sciar de luaíochtaí an bhailíochtóra", + "page-staking-section-comparison-pools-rewards-li3": "Is féidir comharthaí leachtachta a choinneáil i do sparán féin, iad a úsáid in DeFi agus iad a dhíol má shocraíonn tú imeacht", + "page-staking-section-comparison-risks-title": "Rioscaí", + "page-staking-section-comparison-solo-risks-li1": "Tá do chuid ETH i gceist", + "page-staking-section-comparison-solo-risks-li2": "Gearrfar pionóis ETH ort as dul as líne", + "page-staking-section-comparison-solo-risks-li3": "Scoradh (pionóis níos mó agus díshealbhú ón líonra) as iompar mailíseach", + "page-staking-section-comparison-solo-risks-li4": "Tabharfar riosca conartha cliste isteach má dhéantar comhartha geallchuir leachta a bhuaileadh, ach tá sé seo go hiomlán roghnach", + "page-staking-section-comparison-saas-risks-li1": "Rioscaí céanna leis an ngeallchur aonair móide riosca contrapháirtí an tsoláthraí seirbhíse", + "page-staking-section-comparison-saas-risks-li2": "Cuirtear do chuid eochracha sínithe ar iontaoibh duine eile a d'fhéadfadh é féin a iompar go mailíseach", + "page-staking-section-comparison-pools-risks-li1": "Athraíonn rioscaí ag brath ar an modh a úsáidtear", + "page-staking-section-comparison-pools-risks-li2": "Go ginearálta, is éard atá i rioscaí ná meascán de rioscaí a bhaineann le contrapháirtí, conradh cliste agus forghníomhú", + "page-staking-section-comparison-requirements-title": "Riachtanais", + "page-staking-section-comparison-solo-requirements-li1": "Caithfidh tú 32 ETH a íoc mar éarlais", + "page-staking-section-comparison-solo-requirements-li2": "Coinnigh crua-earraí a ritheann cliant forghníomhaithe agus cliant comhdhearcaidh araon agus tú nasctha leis an idirlíon", + "page-staking-section-comparison-solo-requirements-li3": "Déanfaidh an tArdán Geallchuir thú a threorú tríd an bpróiseas agus trí na riachtanais crua‑earraí", + "page-staking-section-comparison-saas-requirements-li1": "Íoc 32 ETH mar éarlais agus gin do chuid eochracha le cúnamh", + "page-staking-section-comparison-saas-requirements-li2": "Stóráil do chuid eochracha go slán", + "page-staking-section-comparison-saas-requirements-li3": "Tugtar aire don chuid eile, cé go n-athrófar seirbhísí sonracha", + "page-staking-section-comparison-pools-requirements-li1": "Na ceanglais ETH is ísle, éilíonn roinnt tionscadal chomh beag le 0.01 ETH", + "page-staking-section-comparison-pools-requirements-li2": "Íoc éarlais go díreach ó do sparán chuig ardáin éagsúla geallchur comhthiomsaithe nó déan trádáil le haghaidh ceann de na comharthaí geallchuir leachtachta", + "page-staking-faq-1-question": "Cad is bailíochtóir ann?", + "page-staking-faq-1-answer": "Is aonán fíorúil é bailíochtóir a chónaíonn ar Ethereum agus a ghlacann páirt i gcomhthiomsú phrótacal Ethereum. Léirítear bailitheoirí mar iarmhéid, eochair phoiblí agus maoine eile. Is éard is cliant bailíochtóra ann na bogearraí a ghníomhaíonn thar ceann an bhailitheora trína eochair phríobháideach a shealbhú agus a úsáid. Is féidir le cliant bailíochtaithe aonair go leor péirí eochracha a shealbhú, le go leor bailíochtaithe a rialú.", + "page-staking-faq-2-question": "Cén fáth ar gá dom cistí a gheallchur?", + "page-staking-faq-2-answer": "Tá an cumas ag bailíochtóir bloic don líonra a mholadh agus a fhianú. Chun iompar mímhacánta a chosc, caithfidh úsáideoirí a gcuid cistí a bheith i gceist leis an ngeallchur. Leis sin ligtear don phrótacal pionós a ghearradh ar ghníomhuithe mailíseacha. Is bealach é an geallchur chun thú a choinneáil macánta, mar beidh iarmhairtí airgeadais ag do ghníomhartha.", + "page-staking-faq-3-question": "An féidir liom 'Eth2' a cheannach?", + "page-staking-faq-3-answer-p1": "Níl aon chomhartha 'Eth2' ann atá dúchasach don phrótacal, mar níor athraíodh comhartha dúchais an éitir (ETH) nuair a bogadh Ethereum go cruthúnas geallchuir.", + "page-staking-faq-3-answer-p2": "Tá comharthaí/ticeoirí díorthacha ann a d'fhéadfadh a bheith mar ETH geallchurtha (ie. rETH ó Rocket Pool, stETH ó Lido, ETH2 ó Coinbase). Foghlaim tuilleadh faoi linnte geallchuir", + "page-staking-faq-4-question": "An bhfuiltear i mbun geallchuir cheana féin?", + "page-staking-faq-4-answer-p1": "Tá. Tá an Geallchur beo ón 1 Nollaig 2020", + "page-staking-faq-4-answer-p2": "Ciallaíonn sé seo go bhfuil an geallchur beo faoi láthair le haghaidh úsáideoirí chun a gcuid ETH a íoc mar éarlais, chun cliant bailíochtaithe a rith agus chun tús a chur le luaíochtaí a thuilleamh.", + "page-staking-faq-4-answer-p3": "Críochnaíodh uasghrádú Shanghai/Capella ar 12 Aibreán, 2023, lenar cumasaíodh aistarraingtí geallchuir, trínar dúnadh an lúb ar leachtacht an gheallchuir.", + "page-staking-faq-5-question": "Cathain is féidir liom mo chuid ETH geallchurtha a aistarraingt?", + "page-staking-faq-5-answer-p1": "Anois díreach! Tá cead ag lucht geallchuir a luaíochtaí agus/nó a bpríomh-éarlais a aistarraingt óna n-iarmhéid bailíochtaithe más mian leo.", + "page-staking-faq-5-answer-p2": "Gheobhaidh geallsealbhóirí luaíochtaí freisin i bhfoirm táillí agus MEV agus iad ag moladh bloc, a chuirtear ar fáil láithreach trí sheoladh socraithe fhaighteoir na dtáillí.", + "page-staking-faq-5-answer-link": "Tuilleadh faoi aistarraingtí geallchuir", + "page-staking-further-reading-author-vitalik-buterin": "Vitalik Buterin", + "page-staking-further-reading-2-link": "Réasúnaíocht Dearaidh Serenity", + "page-staking-further-reading-4-link": "Nuacht Eth2", + "page-staking-further-reading-4-author": "Ben Edgington", + "page-staking-further-reading-5-link": "Críochnaithe uimh. 33, ciseal comhdhearcaidh Ethereum (Eanáir 2022)", + "page-staking-further-reading-5-author": "Danny Ryan", + "page-staking-further-reading-6-link": "Postálacha Fianaithe", + "page-staking-further-reading-8-link": "Beaconcha.in Ábhair Oideachais a Rannchuidíonn an Pobal leo", + "page-staking-further-reading-9-link": "Ceisteanna Coitianta a bhaineann le hArdán Geallchuir Ethereum", + "page-staking-further-reading-10-link": "Bunachar eolais EthStaker", + "page-staking-toc-how-to-stake-your-eth": "Conas do chuid ETH a gheallchur", + "page-staking-toc-comparison-of-options": "Comparáid idir roghanna geallchuir", + "page-staking-toc-faq": "CCanna", + "page-staking-toc-further": "Tuilleadh léitheoireachta", + "page-staking-dom-info-title": "Geallchur le hEthereum", + "page-staking-join-community": "Bí páirteach i bpobal an gheallchuir", + "page-staking-join-community-desc": "Is pobal é EthStaker inar féidir le gach duine plé a dhéanamh agus foghlaim faoi gheallchur ar Ethereum. Bí ar dhuine de na mílte ball as gach cearn den domhan le haghaidh comhairle agus tacaíochta, agus le labhairt faoi gach rud atá i gceist leis an ngeallchur.", + "page-staking-meta-description": "Forbhreathnú ar gheallchur Ethereum: na rioscaí, luaíochtaí, riachtanais agus cár chóir é a dhéanamh.", + "page-staking-meta-title": "Geallchur Ethereum: Conas a oibríonn sé?", + "page-staking-withdrawals-important-notices": "Fógraí tábhachtacha", + "page-staking-withdrawals-important-notices-desc": "Níl aistarraingtí ar fáil fós. Le do thoil léigh Ceisteanna Coitianta faoi Chumasc Eth2 agus faoin stádas Iarchumaisc le haghaidh tuilleadh eolais.", + "page-upgrades-merge-btn": "Tuilleadh faoin gCumasc", + "subscribe-to-ef-blog": "Liostáil le Blag EF chun fógraí ríomhphoist a fháil do na fógraí prótacail is déanaí.", + "page-staking-comparison-with-other-options": "Comparáid le roghanna eile", + "page-staking-any-amount": "Méid ar bith", + "page-staking-testnet": "testnet" +} diff --git a/src/intl/ga/page-upgrades-get-involved.json b/src/intl/ga/page-upgrades-get-involved.json new file mode 100644 index 00000000000..3e484698b07 --- /dev/null +++ b/src/intl/ga/page-upgrades-get-involved.json @@ -0,0 +1,47 @@ +{ + "page-upgrades-get-involved-btn-1": "Féach ar chliaint", + "page-upgrades-get-involved-btn-2": "Tuilleadh faoin ngeallchur", + "page-upgrades-get-involved-btn-3": "Faigh fabhtanna", + "page-upgrades-get-involved-bug": "D'fhéadfadh fabht a bheith:", + "page-upgrades-get-involved-bug-hunting": "Téigh ag fiach bug", + "page-upgrades-get-involved-bug-hunting-desc": "Aimsigh agus tuairiscigh fabhtanna i sonraíochtaí uasghrádú ciseal comhdhearcadh nó na cliaint iad féin. Is féidir leat suas le $50,000 USD a thuilleamh agus áit a thuilleamh ar an gclár ceannairí.", + "page-upgrades-get-involved-bug-li": "saincheisteanna neamhchomhlíonta sonraíochta", + "page-upgrades-get-involved-bug-li-2": "fabhtanna briseadh deiridh", + "page-upgrades-get-involved-bug-li-3": "veicteoirí diúltaithe seirbhíse (DOS)", + "page-upgrades-get-involved-bug-li-4": "agus tuilleadh...", + "page-upgrades-get-involved-desc-1": "Ciallaíonn reáchtáil cliant go mbeidh tú i do rannpháirtí gníomhach in Ethereum. Cabhróidh do chliant súil a choinneáil ar idirbhearta agus seiceáil bloic nua.", + "page-upgrades-get-involved-desc-2": "Má tá ETH agat, is féidir leat é a ghealladh le bheith i do bhailitheoir agus cabhrú leis an líonra a dhaingniú. Mar bhailitheoir is féidir leat luaíochtaí ETH a thuilleamh.", + "page-upgrades-get-involved-desc-3": "Bígí páirteach san iarracht tástála pobail! Cabhraigh le huasghráduithe Ethereum a thástáil sula seoltar iad, faigh fabhtanna agus tuilleann luach saothair.", + "page-upgrades-get-involved-ethresearch-1": "Roinnt", + "page-upgrades-get-involved-ethresearch-2": "An Comhoiriúnú", + "page-upgrades-get-involved-ethresearch-3": "Forghníomhú roinnte", + "page-upgrades-get-involved-ethresearch-4": "Gach ábhar taighde", + "page-upgrades-get-involved-how": "Conas is mian leat a bheith páirteach?", + "page-upgrades-get-involved-how-desc": "Bainfidh pobal Ethereum leas i gcónaí as níos mó daoine ag rith cliant, gealltóireacht agus fiach fabhtanna.", + "page-upgrades-get-involved-join": "Glac páirt sa taighde", + "page-upgrades-get-involved-join-desc": "Cosúil le formhór rudaí le Ethereum, tá go leor den taighde poiblí. Ciallaíonn sé seo gur féidir leat páirt a ghlacadh sa phlé nó díreach léamh tríd an méid atá le rá ag taighdeoirí Ethereum. Clúdaíonn ethresear.ch roinnt ábhar lena n-áirítear uasghráduithe comhaontaithe, rolladh suas agus go leor eile.", + "page-upgrades-get-involved-meta-description": "Conas a bheith rannpháirteach in uasghrádú Ethereum: nóid a rith, gealltóireacht, fiach fabhtanna agus go leor eile.", + "page-upgrades-get-involved-run-clients": "Rith péire cliant", + "page-upgrades-get-involved-run-clients-desc": "Is éard atá i 'cliant' ná bogearraí a ritheann an blocshlabhra, agus i gcás Ethereum, éilíonn nód iomlán péire de na cliaint seo a reáchtáil: cliant ciseal forghníomhaithe agus cliant ciseal comhthoil. Is féidir le nód iomlán idirbhearta a sheiceáil agus, má chuirtear ETH i gceist freisin, is féidir bloic nua a chruthú. Tá a ghnéithe féin ag gach cliant ach déanann sé an fheidhm chéanna ar an iomlán, mar sin molaimid duit cliant mionlaigh a roghnú nuair is féidir chun an linn cliant a choinneáil éagsúil agus slán.", + "page-upgrades-get-involved-run-clients-desc-link": "Tuilleadh faoi éagsúlacht na gcliant.", + "page-upgrades-get-involved-run-clients-execution": "Cliaint ciseal fhorghníomhú", + "page-upgrades-get-involved-run-clients-execution-desc": "Tagraíodh do na cliaint seo roimhe seo mar chliaint 'Eth1', ach tá an téarma seo á dhímheas i bhfabhar na gcliant 'ciseal forghníomhaithe'.", + "page-upgrades-get-involved-run-clients-consensus": "Cliaint ciseal comhdhearcadh", + "page-upgrades-get-involved-run-clients-consensus-desc": "Tagraíodh do na cliaint seo roimhe seo mar chliaint 'Eth2', ach tá an téarma seo á dhímheas i bhfabhar na gcliant 'ciseal comhthola'.", + "page-upgrades-get-involved-stake": "Geall do ETH", + "page-upgrades-get-involved-stake-desc": "Is féidir leat do ETH a chur i bhfeidhm anois chun cabhrú leis an slabhra beacon a dhaingniú.", + "page-upgrades-get-involved-stake-eth": "Geallchuir ETH", + "page-upgrades-get-involved-subtitle": "Seo na bealaí go léir ar féidir leat cabhrú le Ethereum agus iarrachtaí a bhaineann le huasghrádú amach anseo.", + "page-upgrades-get-involved-title-1": "Rith cliant", + "page-upgrades-get-involved-title-2": "Geall do ETH", + "page-upgrades-get-involved-title-3": "Faigh fabhtanna", + "page-upgrades-get-involved-written-c-sharp": "Scríofa i C#", + "page-upgrades-get-involved-written-go": "Scríofa in Go", + "page-upgrades-get-involved-written-java": "Scríofa i Java", + "page-upgrades-get-involved-written-javascript": "Scríofa i javascript", + "page-upgrades-get-involved-written-nim": "Scríofa i Nim", + "page-upgrades-get-involved-written-rust": "Scríofa i Rust", + "page-upgrades-get-involved": "Glac páirt in uasghrádú Ethereum", + "page-upgrades-get-involved-2": "Glac páirt", + "page-upgrades-bug-bounty-leaderboard-points": "pointí" +} diff --git a/src/intl/ga/page-upgrades-index.json b/src/intl/ga/page-upgrades-index.json new file mode 100644 index 00000000000..a7db37067d7 --- /dev/null +++ b/src/intl/ga/page-upgrades-index.json @@ -0,0 +1,207 @@ +{ + "consensus-client-besu-logo-alt": "Lógó Besu", + "consensus-client-erigon-logo-alt": "Lógó Erigon", + "consensus-client-geth-logo-alt": "Geth lógó", + "consensus-client-lighthouse-logo-alt": "Lógó an teach solais", + "consensus-client-lodestar-logo-alt": "Lógó Lodestar", + "consensus-client-nethermind-logo-alt": "Lógó nethermind", + "consensus-client-nimbus-logo-alt": "Lógó Nimbus", + "consensus-client-prysm-logo-alt": "Lógó Prysm", + "consensus-client-teku-logo-alt": "Lógó Teku", + "page-upgrades-answer-1": "Baineadh úsáid as an Slabhra Beacon mar uirlis chun Ethereum Mainnet a uasghrádú ag The Merge.", + "page-upgrades-answer-2": "Leis an gcumasc, bhí an t-uasghrádú ba shuntasaí riamh ag Ethereum lenar malartaíodh cruthúnais oibre in áit ciseal nua comhdhearcaidh atá bunaithe ar chruthúnas geallchuir.", + "page-upgrades-answer-4": "Baineadh úsáid as an Slabhra Beacon chun an comhdhearcadh cruthúnas-gheallta a úsáideann Ethereum inniu a fhorbairt. Reáchtáladh é ar leithligh do Ethereum Mainnet ionas go bhféadfadh forbróirí an mheicníocht chomhthoil a urramú ina n-aonar sula n-úsáidfí é chun fíorghníomhaíocht a chomhordú.", + "page-upgrade-article-author-status": "Stádas", + "page-upgrade-article-author-ethmerge": "Ethmerge", + "page-upgrade-article-author-alchemy": "Alchemy", + "page-upgrade-article-author-consensys": "Consensys", + "page-upgrade-article-author-delphi-digital": "Delphi Digital", + "page-upgrade-article-author-eip-4844": "Vitalik Buterin, Dankrad Feist, Diederik Loerakker, George Kadianakis, Matt Garnett, Mofi Taiwo", + "page-upgrade-article-author-ethereum-foundation": "Fondúireacht Ethereum", + "page-upgrade-article-author-vitalik-buterin": "Vitalik Buterin", + "page-upgrade-article-author-ethos-dev": "Ethos.dev", + "page-upgrade-article-title-two-point-oh": "Dhá Phointe Ó: An Slabhra Rabhcháin", + "page-upgrade-article-title-beacon-chain-explainer": "An Mínitheoir Slabhra Beacon Ethereum 2.0 is gá duit a léamh ar dtús", + "page-upgrade-article-title-sharding-consensus": "Comhdhearcadh roinnte", + "page-upgrade-article-title-sharding-is-great": "Cén fáth go bhfuil sciartha iontach: na hairíonna teicniúla a shoiléiriú", + "page-upgrade-article-title-rollup-roadmap": "Treochlár rolluithe-lárnach", + "page-upgrade-article-title-hitchhikers-guide-to-ethereum": "Treoir Hitchhikers Chun Ethereum", + "page-upgrade-article-title-eip-4844": "EIP-4844: Blob Idirbhearta Sciartha (Proto-Danksharding)", + "page-upgrade-article-title-proto-danksharding-faq": "Ceisteanna Coitianta faoi Proto-Danksharding", + "page-upgrade-article-title-sharding-das": "Míniú ar shampláil sciartha agus infhaighteacht sonraí (DAS)", + "page-upgrade-article-title-ethmerge": "Ethmerge", + "page-upgrade-article-title-merge-is-coming": "Tá an Cumasc ag Teacht", + "page-upgrade-article-title-state-of-the-merge": "Staid an Chumaisc: Nuashonrú ar Chumasc Ethereum le Cruthúnas Geallta in 2022", + "page-upgrade-article-title-ropsten-merge-testnet": "Ag fógairt an Ropsten Merge Testnet", + "page-upgrade-article-title-execution-layer-specs": "Sonraíochtaí ciseal forghníomhaithe", + "page-upgrade-article-title-consensus-layer-specs": "Sonraíochtaí ciseal comhdhearcadh", + "page-upgrade-article-title-engine-api-specs": "Sonraíochtaí API Inneall", + "page-upgrades-beacon-chain-date": "Chuaigh An Slabhra Beacon beo an 1 Nollaig 2020", + "page-upgrades-beacon-chain-desc": "Thug an Slabhra Beacon gealltóireacht do Ethereum agus leag sé an bhunchloch le haghaidh uasghrádú amach anseo. Comhordaíonn sé an cruthúnais-gheallta nua Ethereum.", + "page-upgrades-beacon-chain-estimate": "Tá An Slabhra Beacon ag craoladh beo", + "page-upgrades-beacon-chain-title": "An Slabhra Beacon", + "page-upgrades-bug-bounty": "Féach ar an gclár bounty bug", + "page-upgrades-clients": "Seiceáil na cliaint chomhthoil (ar a dtugtaí cliaint 'Eth2' roimhe seo)", + "page-staking-deposit-contract-title": "Seiceáil an seoladh conartha taisce", + "page-upgrades-dive": "Léim isteach san fhís", + "page-upgrades-dive-desc": "Conas atáimid ag déanamh Ethereum níos Inscálaithe, níos sábháilte agus níos inbhuanaithe? Agus éiteas lárnach díláraithe Ethereum á choinneáil.", + "page-upgrades-docking": "An Comhoiriúnú", + "page-upgrades-merge-answer-1": "Ba é an Cumasc nuair a d’aistrigh Ethereum go comhdhearcadh cruthúnais-gheallta an15 Meán Fómhair, 2022. Chomhcheangail an Slabhra Beacon le Mainnet, ag dímheas go hoifigiúil ar chruthúnas oibre ar Ethereum, agus laghdaigh sé tomhaltas fuinnimh Ethereum faoi ~99.95%.", + "page-upgrades-merge-btn": "Tuilleadh faoin gCumasc", + "page-upgrades-merge-desc": "Chomhcheangail Mainnet Ethereum leis an Slabhra Beacon cruthúnas-gheallta, ag marcáil deireadh na mianadóireachta atá dian ar fhuinneamh.", + "page-upgrades-merge-estimate": "Tá an Cumasc beo", + "page-upgrades-merge-mainnet": "Cad é Mainnet?", + "page-upgrades-eth-blog": "blag ethereum.org", + "page-upgrades-explore-btn": "Déan iniúchadh ar uasghráduithe", + "page-upgrades-get-involved": "Glac páirt in uasghrádú Ethereum", + "page-upgrades-get-involved-2": "Glac páirt", + "page-upgrades-head-to-ethresearch": "Téigh go dtí ethresear.ch", + "page-upgrades-help": "Ar mhaith leat cabhrú le huasghráduithe Ethereum?", + "page-upgrades-help-desc": "Tá neart deiseanna ann chun uasghráduithe Ethereum a mheas, cabhrú le tástáil, agus fiú luach saothair a thuilleamh.", + "page-upgrades-index-staking": "Tá gealltóireacht anseo", + "page-upgrades-index-staking-desc": "Tá tabhairt isteach gealltóireacht ríthábhachtach d'uasghrádú Ethereum. Más mian leat do ETH a úsáid chun cabhrú le líonra Ethereum a dhaingniú, déan cinnte go leanann tú na céimeanna seo.", + "page-upgrades-index-staking-learn": "Foghlaim faoi ghealltóireacht", + "page-upgrades-index-staking-learn-desc": "Thug an Slabhra Beacon an gealltóireacht go Ethereum. Má tá ETH agat, is féidir leat leas an phobail a dhéanamh tríd an líonra a dhaingniú agus níos mó ETH a thuilleamh sa phróiseas.", + "page-upgrades-index-staking-step-1": "1. Socraigh suas leis an launchpad", + "page-upgrades-index-staking-step-1-btn": "Tabhair cuairt ar launchpad gealláil", + "page-upgrades-index-staking-step-1-desc": "Chun geall a chur ar Ethereum beidh ort an launchpad a úsáid - rachaidh sé seo tríd an bpróiseas tú.", + "page-upgrades-index-staking-step-2": "2. Deimhnigh an seoladh gealltóireachta", + "page-upgrades-index-staking-step-2-btn": "Deimhnigh seoladh an chonartha taisce", + "page-upgrades-index-staking-step-2-desc": "Sula gcuirfidh tú do ETH i gceist, déan cinnte a sheiceáil go bhfuil an seoladh ceart agat. Ní mór duit a bheith imithe tríd an launchpad roimh é seo a dhéanamh.", + "page-upgrades-index-staking-sustainability": "Níos inbhuanaithe", + "page-upgrades-meta-desc": "Forbhreathnú ar na huasghráduithe Ethereum agus an fhís a bhfuil súil acu a thabhairt i gcrích.", + "page-upgrades-meta-title": "Uasghráduithe Ethereum ('Eth2' roimhe seo)", + "page-upgrades-proof-stake-link": "Tuilleadh faoi chruthúnas-gheallta", + "page-upgrades-question-1-title": "Cathain a sheolfar na huasghráduithe?", + "page-upgrades-question-1-desc": "Tá Ethereum á uasghrádú de réir a chéile; tá na huasghráduithe ar leith le dátaí long éagsúla.", + "page-upgrades-question-2-title": "An blocshlabhra ar leith é an Slabhra Beacon?", + "page-upgrades-question-2-desc": "Tá. Ba é an Slabhra Beacon an t-ainm a tugadh ar bhlocshlabhra cruthúnas-gheallta comhthreomhar a úsáidtear chun Mainnet Ethereum a uasghrádú. Níl ach blocshlabhra amháin ann anois, déanta trí na blocshlabhraí bunaidh Ethereum agus an Slabhra Beacon a chumasc le chéile.", + "page-upgrades-question-3-answer-2a": "Bhí tionchar íosta ag an Merge ar fhorbróirí dapp - idirghníomhaíonn siad fós le Ethereum ar na bealaí céanna.", + "page-upgrades-question-3-answer-2a-link": "An Cumasc agus forbróirí dapp", + "page-upgrades-question-3-answer-2b": "Tá pleananna roinnte á bhforbairt fós, ach déanfar iad a dhearadh le rollú ciseal 2 san áireamh.", + "page-upgrades-layer-2-rollups": "Tuilleadh ar rolladh suas ciseal 2", + "page-upgrades-question-3-answer-3-link": "Tabhair cuairt ar ethresearch.ch", + "page-upgrades-question-3-desc": "Ní gá duit aon rud a dhéanamh faoi láthair chun ullmhú do na huasghráduithe.", + "page-upgrades-question-3-title": "Conas a ullmhaím do na huasghráduithe?", + "page-upgrades-question-4-answer-1": "Aon uair a sheolann tú idirbheart nó a úsáideann dapp inniu, tá an ciseal forghníomhaithe á úsáid agat, ar a dtugtar Mainnet freisin.", + "page-upgrades-question-4-answer-3": "Ón gCumasc, déanann bailíochtaithe an líonra iomlán a dhaingniú trí chruthúnas-gheallta.", + "page-upgrades-question-4-answer-6": "Is féidir le duine ar bith a bheith ina bhailitheoir trína ETH a dhéanamh.", + "page-upgrades-question-4-answer-7": "Tuilleadh faoin ngeallchur", + "page-upgrades-question-4-title": "Cad é an ciseal forghníomhaithe?", + "page-upgrades-question-4-desc": "Roimh An Cumasc, tugadh 'Eth1' ar an blocshlabhra Ethereum uaireanta. Cuireadh deireadh leis an téarma seo de réir a chéile i bhfabhar an ‘chiseal forghníomhaithe’.", + "page-upgrades-question-5-answer-1": "Chun a bheith i do bhailitheoir ar an líonra, beidh ort 32 ETH a ghlacadh. Mura bhfuil an oiread sin agat, nó mura bhfuil tú sásta an oiread sin a chur i gceist, is féidir leat páirt a ghlacadh i linnte gealltóireachta. Ligfidh na linnte seo duit níos lú a ghlacadh agus codáin den luach saothair iomlán a thuilleamh.", + "page-upgrades-question-5-desc": "Beidh ort an eochaircheap seolta gealltóireachta a úsáid nó dul isteach i linn gealltóireachta.", + "page-upgrades-question-5-title": "Conas a dhéanaim gealltóireacht?", + "page-upgrades-question-6-answer-3": "Déanann Danny Ryan ó fhondúireacht Ethereum an pobal a nuashonrú go rialta:", + "page-upgrades-question-6-answer-4": "Tá nuachtlitir sheachtainiúil ag Ben Edgington ó ConsenSys faoi uasghrádú Ethereum:", + "page-upgrades-question-6-answer-5": "Is féidir leat páirt a ghlacadh freisin sa phlé ar thaighde agus forbairt Ethereum ag ethresear.ch.", + "page-upgrades-question-6-title": "Cad is gá dom a dhéanamh le mo dhapp?", + "page-upgrades-question-6-desc": "Dearadh an Cumasc chun tionchar íosta a bheith aige ar fhorbróirí dapp, cé go raibh cúpla athruithe beaga ba chóir a thabhairt faoi deara.", + "page-upgrades-question-6-answer-1-link": "Mar a chuaigh an Cumasc i gcion ar Chiseal Feidhmchláir Ethereum", + "page-upgrades-question-6-answer-2": "Ní raibh aon tionchar beagnach ar fad ar iarratais.", + "page-upgrades-question-7-desc": "Tá go leor foirne éagsúla ó gach cearn den phobal ag obair ar na huasghráduithe éagsúla Ethereum.", + "page-upgrades-question-7-lighthouse": "Lighthouse", + "page-upgrades-question-7-lighthouse-lang": "(cur i bhfeidhm Rust)", + "page-upgrades-question-7-lodestar": "Lodestar", + "page-upgrades-question-7-lodestar-lang": "(cur i bhfeidhm JavaScript)", + "page-upgrades-question-7-nimbus": "Nimbus", + "page-upgrades-question-7-nimbus-lang": "(cur i bhfeidhm Nim)", + "page-upgrades-question-7-prysm": "Prysm", + "page-upgrades-question-7-prysm-lang": "(cur i bhfeidhm Go)", + "page-upgrades-question-7-teams": "Foirne cliant comhdhearcadh Ethereum:", + "page-upgrades-question-7-teku": "Teku", + "page-upgrades-question-7-teku-lang": "(cur i bhfeidhm Java)", + "page-upgrades-question-7-title": "Cé atá ag tógáil na n-uasghráduithe Ethereum?", + "page-upgrades-question-7-clients": "Tuilleadh eolais faoi chliaint Ethereum", + "page-upgrades-question-8-answer-1": "Cabhróidh na huasghráduithe Ethereum le scála Ethereum ar bhealach díláraithe, agus slándáil a chothabháil, agus inbhuanaitheacht a mhéadú.", + "page-upgrades-question-8-answer-2": "B'fhéidir gurb é an fhadhb is soiléire ná go gcaithfidh Ethereum a bheith in ann níos mó ná 15-45 idirbheart in aghaidh an tsoicind a láimhseáil. Ach tugann na huasghráduithe aghaidh ar roinnt fadhbanna eile le Ethereum inniu.", + "page-upgrades-question-8-answer-3": "Fágann an líonra ag amanna ard-éileamh go bhfuil Ethereum costasach le húsáid. Tá nóid sa líonra ag streachailt faoi mhéid Ethereum agus an méid sonraí a chaithfidh a ríomhairí a phróiseáil. Bhí an t-algartam bunaidh a bhunaigh slándáil agus dílárú Ethereum dian ar fhuinneamh agus ba ghá é a bheith níos glaise.", + "page-upgrades-question-8-answer-4": "Tá go leor de na rudaí atá ag athrú i gcónaí ar an treochlár Ethereum, fiú ó 2015. Ach tá na coinníollacha reatha ag méadú fós ar an ngá atá le huasghráduithe.", + "page-upgrades-question-8-answer-6": "Déan iniúchadh ar fhís Ethereum", + "page-upgrades-question-8-desc": "Ní mór don Ethereum a úsáidimid inniu eispéireas níos fearr a thairiscint d'úsáideoirí deiridh agus do rannpháirtithe líonra.", + "page-upgrades-question-8-title": "Cén fáth a bhfuil uasghrádú ag teastáil?", + "page-upgrades-question-9-answer-1": "Is é an ról is gníomhaí is féidir leat a imirt ná do ETH a ghlacadh.", + "page-upgrades-question-9-answer-2": "B'fhéidir gur mhaith leat an dara cliant a rith freisin chun cabhrú le héagsúlacht cliant a fheabhsú.", + "page-upgrades-question-9-answer-3": "Má tá tú níos teicniúla, is féidir leat cabhrú le fabhtanna a ghabháil sna cliaint nua.", + "page-upgrades-question-9-answer-4": "Is féidir leat machnamh a dhéanamh freisin ar an bplé teicniúil le taighdeoirí Ethereum ag ethresear.ch.", + "page-upgrades-question-9-desc": "Ní gá duit a bheith teicniúil chun cur leis. Tá an pobal ag lorg ranníocaíochtaí ó gach cineál scileanna.", + "page-upgrades-question-9-stake-eth": "Geallchuir ETH", + "page-upgrades-question-9-title": "Conas is féidir liom cur le huasghráduithe Ethereum?", + "page-upgrades-question-9-more": "Faigh bealaí níos ginearálta chun baint a bheith agat le Ethereum", + "page-upgrades-question-10-title": "Cad iad na 'céimeanna Eth2?'", + "page-upgrades-question-10-desc": "Tá roinnt rudaí athraithe anseo.", + "page-upgrades-question-10-answer-0": "Tá deireadh á chur leis an téarma ‘Eth2’ féin de réir a chéile, toisc nach ionann é agus uasghrádú amháin nó líonra nua. Is sraith il-uasghráduithe níos cruinne é a dhéanann go léir a bpáirt chun Ethereum a dhéanamh níos Inscálaithe, níos sábháilte agus níos inbhuanaithe. Tabharfar Ethereum ar an líonra a bhfuil aithne agat air agus a bhfuil grá agat dó.", + "page-upgrades-question-10-answer-1": "Tá drogall orainn an iomarca cainte a dhéanamh maidir le treochlár teicniúil mar is bogearraí é seo: is féidir le rudaí athrú. Is dóigh linn go bhfuil sé níos éasca a thuiscint cad atá ag tarlú nuair a léann tú faoi na torthaí.", + "page-upgrades-question-10-answer-1-link": "Féach ar na huasghráduithe", + "page-upgrades-question-10-answer-2": "Ach má tá tú tar éis leanúint leis an bplé, seo an chaoi a n-oireann na huasghráduithe isteach i dtreoirlínte teicniúla, agus beagán ar an gcaoi a bhfuil siad ag athrú.", + "page-upgrades-question-10-answer-3": "Rinne Céim 0 cur síos ar an obair chun an Beacon Chain a chur beo.", + "page-upgrades-question-10-answer-5": "Dhírigh Céim 1 ar dtús ar na slabhraí sciartha a chur i bhfeidhm, ach aistríodh an tosaíocht go The Merge, a seoladh ar 15 Meán Fómhair 2022.", + "page-upgrades-question-10-answer-6": "Bhí Céim 1.5 beartaithe ar dtús chun feidhmiú sciar a leanúint nuair a chuirfí Mainnet leis mar an sciar deireanach leis an Slabhra Beacon. Mar sin féin, de réir mar a chuaigh teicneolaíocht rolluithe chun cinn, chuir pobal Ethereum dlús leis an aistriú ó chruthúnas oibre ina ionad sin.", + "page-upgrades-question-10-answer-7": "Pointe dian-thaighde agus díospóireachta a bhí sna pleananna thart ar Chéim 2. Agus The Merge taobh thiar dínn, agus an dul chun cinn i réitigh ciseal 2, tá na spriocanna athraithe chun foirm níos simplithe de chomhroinnt sonraí a sholáthar chun éifeachtúlacht rolluithe a uasmhéadú. Cumasaíonn ciseal 2s reatha an cumas forghníomhú idirbheart a scála, agus ceadófar cruthúnais do na sonraí seo ar shraith 1 a stóráil ar bhealach inscálaithe ar bhealach saor agus inscálaithe.", + "page-upgrades-question-10-answer-8": "Tuilleadh faoi threoirchlár rolluithe-lárnach", + "page-upgrades-question-11-title": "An féidir liom Eth2 a cheannach?", + "page-upgrades-question-11-desc": "Ní féidir. Níl aon chomhartha Eth2 ann, agus níor athraigh do ETH tar éis An Cumasc.", + "page-upgrades-question-11-answer-1": "Ba é ceann de na fórsaí tiomána taobh thiar den athbhrandáil Eth2 an míthuiscint choitianta go raibh sé de cheangal ar shealbhóirí ETH a n-ETH a aistriú go 'ETH 2.0' tar éis The Merge nó aon uasghrádú eile. Níl sé seo fíor agus ní raibh riamh.", + "page-upgrades-question-11-answer-2": " Bíonn an mearbhall seo á úsáid go coitianta ag scamóirí.", + "page-upgrades-question-title": "Ceisteanna coitianta", + "page-upgrades-question3-answer-1": "Ní gá do shealbhóirí ETH rud ar bith a dhéanamh. Ní bheidh gá le do ETH a athrú nó a uasghrádú. Tá sé beagnach cinnte go n-insíonn camscéimeanna a mhalairt duit, mar sin bí cúramach.", + "page-upgrades-scalable": "Níos inscálaithe", + "page-upgrades-scalable-desc": "Caithfidh Ethereum tacú le 1000s na n-idirbheart in aghaidh an tsoicind, chun iarratais a dhéanamh níos tapúla agus níos saoire le húsáid.", + "page-upgrades-secure": "Níos sláine", + "page-upgrades-secure-desc": "Ní mór Ethereum a bheith níos sláine. De réir mar a fhásann glacadh Ethereum, ní mór don phrótacal a bheith níos sábháilte i gcoinne gach cineál ionsaí.", + "page-upgrades-shard-date": "Leanfaidh an Cumasc i gcéimeanna éagsúla an Roinnt, am éigin in 2023-2024.", + "page-upgrades-shard-desc": "Leathnóidh Danksharding cumas Ethereum chun sonraí a stóráil, agus oibreoidh sé go comhchuí le L2anna chun tréchur a scála agus táillí líonra a laghdú. Cuirfear Danksharding i bhfeidhm i gcéimeanna éagsúla, ag tosú le ProtoDanksharding.", + "page-upgrades-shard-estimate": "Meastachán: 2023-2024", + "page-upgrades-shard-lower": "Tuilleadh faoi roinnt", + "page-upgrades-shard-title": "Roinnt", + "page-upgrades-stay-up-to-date": "Fan suas chun dáta", + "page-upgrades-stay-up-to-date-desc": "Faigh an ceann is déanaí ó na taighdeoirí agus na forbróirí atá ag obair ar uasghrádú Ethereum.", + "page-upgrades-sustainable-desc": "Bhí Ethereum dian ar fhuinneamh go dtí le déanaí. Tháinig laghdú os cionn 99.9% ar fhuinneamh líonra mar gheall ar an aistriú go cruthúnais-gheallta.", + "page-upgrades-take-part": "Glac páirt sa taighde", + "page-upgrades-take-part-desc": "Tagann taighdeoirí agus díograiseoirí Ethereum le chéile anseo chun iarrachtaí taighde a phlé, lena n-áirítear gach rud a bhaineann le huasghrádú Ethereum.", + "page-upgrades-the-upgrades": "Uasghrádú Ethereum", + "page-upgrades-the-upgrades-desc": "Tá sé mar aidhm ag uasghráduithe Ethereum feabhas a chur ar inscálaitheacht, slándáil agus inbhuanaitheacht an líonra. Rinne Ethereum roinnt uasghráduithe móra ar shlándáil agus inbhuanaitheacht le déanaí, agus tá níos mó ag teacht amach anseo, go háirithe a bhaineann le hinscálaitheacht.", + "page-upgrades-unofficial-roadmap": "Ní hé seo an treochlár oifigiúil. Seo mar a fhéachaimid ar a bhfuil ag tarlú bunaithe ar an eolas atá ar fáil. Ach is é seo an teicneolaíocht, is féidir rudaí a athrú ar an toirt. Mar sin, le do thoil nach léamh seo mar ghealltanas.", + "page-upgrades-upgrade-desc": "An Ethereum is eol dúinn agus grá againn, ach níos Inscálaithe, níos sláine, agus níos inbhuanaithe...", + "page-upgrades-upgrades": "Uasghrádú Ethereum", + "page-upgrades-upgrades-aria-label": "Roghchlár uasghráduithe Ethereum", + "page-upgrades-upgrades-beacon-chain": "An Slabhra Beacon", + "page-upgrades-upgrades-guide": "Treoir maidir le huasghráduithe Ethereum", + "page-upgrades-upgrades-docking": "An Comhoiriúnú", + "page-upgrades-energy-consumption": "Tuilleadh faoi thomhaltas fuinnimh Ethereum", + "page-upgrades-upgrading": "Ethereum a uasghrádú go dtí airde nua radacach", + "page-roadmap-vision": "An fhís", + "page-roadmap-vision-btn": "Níos mó ar fhís Ethereum", + "page-roadmap-vision-desc": "Chun Ethereum a thabhairt isteach sa phríomhshruth agus freastal ar an gcine daonna ar fad, ní mór dúinn Ethereum a dhéanamh níos Inscálaithe, níos sábháilte agus níos inbhuanaithe.", + "page-upgrades-what-happened-to-eth2-title": "Cad a tharla do 'Eth2'?", + "page-upgrades-what-happened-to-eth2-1": "Bhí an téarma ‘Eth2’ in úsáid go coitianta roimh The Merge ach tá deireadh á chur leis de réir a chéile ar mhaithe le téarmaíocht níos cruinne.", + "page-upgrades-what-happened-to-eth2-1-more": "Tuilleadh faoi An Cumasc.", + "page-upgrades-what-happened-to-eth2-2": "Ó chumasc 'Eth1' agus 'Eth2', níl dhá bhlocshlabhra Ethereum ar leith ann a thuilleadh; níl ach Ethereum ann.", + "page-upgrades-what-happened-to-eth2-3": "Chun mearbhall a theorannú, tá na téarmaí seo nuashonraithe ag an bpobal:", + "page-upgrades-what-happened-to-eth2-3-1": "Is é 'Eth1' an 'ciseal forghníomhaithe' anois, a láimhseálann idirbhearta agus cur i gcrích.", + "page-upgrades-what-happened-to-eth2-3-2": "Is é 'Eth2' an 'ciseal comhthola' anois, a láimhseálann comhdhearcadh cruthúnais-gheallta.", + "page-upgrades-what-happened-to-eth2-4": "Ní athraíonn na nuashonruithe téarmaíochta seo ach coinbhinsiúin ainmniúcháin; ní athraíonn sé seo spriocanna nó treochlár Ethereum.", + "page-upgrades-what-happened-to-eth2-5": "Faigh tuilleadh eolais faoin athainmniú ‘Eth2’", + "page-upgrades-why-cant-we-just-use-eth2-title": "Cén fáth nach féidir linn ach Eth2 a úsáid?", + "page-upgrades-why-cant-we-just-use-eth2-mental-models-title": "Samhlacha meabhrach", + "page-upgrades-why-cant-we-just-use-eth2-mental-models-description": "Fadhb mhór amháin le brandáil Eth2 ná go gcruthaíonn sé múnla meabhrach briste d'úsáideoirí nua Ethereum. Ceapann siad go hintuigthe gurb é Eth1 a thagann ar dtús agus Eth2 ina dhiaidh. Nó go scoirfidh Eth1 de bheith ann nuair a bheidh Eth2 ann. Níl ceachtar acu seo fíor. Trí théarmaíocht Eth2 a bhaint, sábhálann muid gach úsáideoir sa todhchaí ó nascleanúint a dhéanamh ar an múnla meabhrach mearbhall seo.", + "page-upgrades-why-cant-we-just-use-eth2-inclusivity-title": "Cuimsitheacht", + "page-upgrades-why-cant-we-just-use-eth2-inclusivity-description": "De réir mar a tháinig an treochlár do Ethereum chun cinn, tá Ethereum 2.0 anois ina léiriú míchruinn ar threoirleabhar Ethereum. Le bheith cúramach agus cruinn inár rogha focal is féidir ábhar ar Ethereum a thuiscint don lucht éisteachta is leithne agus is féidir.", + "page-upgrades-why-cant-we-just-use-eth2-scam-prevention-title": "Cosaint i gcoinne caimiléireachta", + "page-upgrades-why-cant-we-just-use-eth2-scam-prevention-description": "Ar an drochuair, rinne gníomhaithe mailíseacha iarracht an mí-ainm Eth2 a úsáid chun úsáideoirí a scamadh trína rá leo a ETH a mhalartú le haghaidh comharthaí ‘ETH2’ nó go gcaithfidh siad a ETH a aistriú ar bhealach éigin roimh uasghrádú Eth2. Tá súil againn go dtabharfaidh an téarmaíocht nuashonraithe seo soiléireacht chun deireadh a chur leis an veicteoir scam seo agus cuidiú leis an éiceachóras a dhéanamh níos sábháilte.", + "page-upgrades-why-cant-we-just-use-eth2-staking-clarity-title": "Soiléireacht geallála", + "page-upgrades-why-cant-we-just-use-eth2-staking-clarity-description": "Tá roinnt oibreoirí geallta freisin tar éis ionadaíocht a dhéanamh ar ETH atá i ngeall ar an Slabhra Beacon leis an ticker 'ETH2'. Cruthaíonn sé seo mearbhall féideartha, ós rud é nach bhfuil úsáideoirí na seirbhísí seo ag fáil comhartha ‘ETH2’ i ndáiríre. Níl aon chomhartha ‘ETH2’ ann; go simplí léiríonn sé a sciar i ngealltanas na soláthraithe sonracha sin.", + "page-upgrades-what-to-do": "Cad is gá duit a dhéanamh?", + "page-upgrades-what-to-do-desc": "Más úsáideoir dapp nó sealbhóir ETH tú, ní gá duit aon rud a dhéanamh. Más forbróir thú nó más mian leat tosú ar an ngealltóireacht, tá bealaí ann inar féidir leat a bheith páirteach inniu.", + "page-upgrades-whats-next": "Cad iad uasghráduithe Ethereum?", + "page-upgrades-whats-next-desc": "Baineann an treochlár Ethereum le huasghráduithe prótacail idirnasctha a fhágfaidh go mbeidh an líonra níos Inscálaithe, níos sláine agus níos inbhuanaithe. Tá na huasghráduithe seo á dtógáil ag foirne iomadúla ó ar fud éiceachóras Ethereum.", + "page-upgrades-whats-next-history": "Foghlaim faoi uasghrádú Ethereum roimhe seo", + "page-upgrades-whats-ethereum": "Fan, cad é Ethereum?", + "page-upgrades-whats-new": "Cad atá romhainn do Ethereum?", + "page-upgrades-security-link": "Tuilleadh faoi shlándáil agus cosc ​​ar chamscéimeanna", + "page-staking-deposit-contract-staking-more-link": "Tuilleadh faoin ngeallchur", + "docs-nav-proof-of-stake": "Cruthúnas-de-geall", + "docs-nav-proof-of-work": "Cruthúnas-ar-obair", + "page-upgrades-get-involved-ethresearch-1": "Roinnt", + "page-upgrades-get-involved-ethresearch-2": "An Comhoiriúnú" +} diff --git a/src/intl/ga/page-upgrades.json b/src/intl/ga/page-upgrades.json new file mode 100644 index 00000000000..4f1c30db1bc --- /dev/null +++ b/src/intl/ga/page-upgrades.json @@ -0,0 +1,23 @@ +{ + "page-upgrades-merge-infographic-el": "Stát Ethereum: idirbhearta, aipeanna, conarthaí, iarmhéideanna", + "page-upgrades-merge-infographic-alt-text": "Grafaic eolais ag léiriú conas a chumasc an Slabhra Beacon isteach i gciseal forghníomhaithe Ethereum le linn an aistrithe ó chruthúnas-oibre go cruthúnas-gheallta.", + "page-upgrades-beacon-date": "Seolta!", + "page-upgrades-merge-date": "Meán Fómhair 2022", + "page-upgrades-shards-date": "~2023", + "page-upgrades-pbs": "Níl sé ar tí tarlú - bí ag súil le 2024/25", + "page-upgrades-post-merge-banner-tutorial-ood": "Tá an rang teagaisc seo as dáta tar éis an chumaisc agus seans nach n-oibreoidh sé. Ardaigh PR le do thoil más mian leat cur leis.", + "page-upgrades-upgrades-guide": "Treoir maidir le huasghráduithe Ethereum", + "page-upgrades-upgrades-docking": "An Comhoiriúnú", + "page-upgrades-shard-title": "Roinnt", + "page-upgrades-upgrades-beacon-chain": "An Slabhra Beacon", + "consensus-beaconscan-title": "beaconscan", + "consensus-beaconscan-in-title": "beaconcha.in", + "consensus-beaconcha-in-desc": "Taiscéalaí Slabhra Beacon foinse oscailte", + "consensus-beaconscan-desc": "Taiscéalaí Slabhra Beacon - Etherscan don tsraith chomhthoil", + "consensus-become-staker": "Bí i do gealltóir", + "consensus-become-staker-desc": "Tá Gealltóireacht beo! Más mian leat do ETH a ghealladh chun an líonra a dhaingniú, déan cinnte go bhfuil tú ar an eolas faoi na rioscaí.", + "consensus-explore": "Déan iniúchadh ar na sonraí", + "consensus-run-beacon-chain": "Rith cliant comhdhearcadh", + "consensus-run-beacon-chain-desc": "Ní mór do Ethereum an oiread cliant a rith agus is féidir. Cabhair leis an leas poiblí Ethereum seo!", + "read-more": "Léigh níos mó" +} diff --git a/src/intl/ga/page-wallets-find-wallet.json b/src/intl/ga/page-wallets-find-wallet.json new file mode 100644 index 00000000000..d23d5808729 --- /dev/null +++ b/src/intl/ga/page-wallets-find-wallet.json @@ -0,0 +1,88 @@ +{ + "page-find-wallet-clear": "Glan na scagairí", + "page-find-wallet-desc-2": "Nach bhfuil a fhios agat cad is sparán ann?", + "page-find-wallet-desc-2-wallets-link": "Foghlaim faoi sparáin.", + "page-find-wallet-description": "Le sparán déantar do chuid ETH a stóráil agus a thrádáil. Is féidir leat a roghnú as réimse táirgí a chur in oiriúint do do riachtanais.", + "page-find-wallet-last-updated": "Nuashonrú is déanaí", + "page-find-wallet-meta-description": "Aimsigh sparán Ethereum ag brath ar na gnéithe is mian leat agus cuir i gcomparáid a chéile iad.", + "page-find-wallet-meta-title": "Liosta de na Sparáin Ethereum | ethereum.org", + "page-find-wallet-title": "Roghnaigh do sparán", + "page-find-wallet-try-removing": "Bain triail as gné nó dhó a bhaint", + "page-stake-eth": "Geallchuir ETH", + "page-find-wallet-open-source": "Foinse oscailte", + "page-find-wallet-open-source-desc": "Ligeann bogearraí foinse oscailte do dhuine ar bith sláine agus slándáil an fheidhmchláir a iniúchadh", + "page-find-wallet-self-custody": "Féinchúram", + "page-find-wallet-non-custodial": "Úinéireacht phearsanta", + "page-find-wallet-non-custodial-desc": "Sparán nach rialaíonn do chuid eochracha príobháideacha", + "page-find-wallet-hardware-wallet-support": "Tacaíocht sparán crua-earraí", + "page-find-wallet-hardware-wallet-support-desc": "Sparáin is féidir a nascadh le sparán crua-earraí le haghaidh slándáil níos fearr", + "page-find-wallet-rpc-importing": "Iompórtáil RPC", + "page-find-wallet-rpc-importing-desc": "Sparáin a thacaíonn le críochphointí saincheaptha RPC chun nascadh le nóid nó líonraí éagsúla", + "page-find-wallet-nft-support": "Tacaíocht NFT", + "page-find-wallet-nft-support-desc": "Sparáin a thacaíonn le breathnú ar do chuig NFTanna agus le hidirghníomhú leo", + "page-find-wallet-connect-to-dapps": "Ceangail le daipeanna", + "page-find-wallet-connect-to-dapps-desc": "Is féidir leat nascadh le feidhmchláir a thacaíonn le WalletConnect nó le rogha eile", + "page-find-wallet-staking": "Geallchur", + "page-find-wallet-staking-desc": "Geallchuir ETH go díreach ón sparán", + "page-find-wallet-swaps": "Babhtálacha", + "page-find-wallet-swaps-desc": "Babhtáil comharthaí ERC-20 go díreach sa sparán", + "page-find-wallet-layer-2": "Ciseal 2", + "page-find-wallet-layer-2-desc": "Sparáin a thacaíonn le ciseal 2s Ethereum", + "page-find-wallet-gas-fee-customization": "Saincheapadh táille gáis", + "page-find-wallet-gas-fee-customization-desc": "Saincheap do mhéideanna gáis (bonn-táille, táille tosaíochta agus táille uasta)", + "page-find-wallet-ens-support": "Tacaíocht ENS", + "page-find-wallet-ens-support-desc": "Sparán a thacaíonn le Ethereum Name Service (ENS)", + "page-find-wallet-token-importing": "Iompórtáil comhartha", + "page-find-wallet-token-importing-desc": "Iompórtáil aon chomhartha ERC-20 le húsáid sa sparán", + "page-find-wallet-buy-crypto": "Ceannaigh crypto", + "page-find-wallet-buy-crypto-desc": "Ceannaigh crypto le fiat go díreach sa sparán\n *Tabhair faoi deara: d’fhéadfadh ceannach crypto a bheith sainiúil don réigiún", + "page-find-wallet-sell-for-fiat": "Díol le haghaidh fiat", + "page-find-wallet-sell-for-fiat-desc": "Díol crypto go fiat go díreach sa sparán\n *Tabhair faoi deara: d’fhéadfadh aistarraingt crypto a bheith sainiúil don réigiún", + "page-find-wallet-multisig": "Ilsíniú (Multisig)", + "page-find-wallet-multisig-desc": "Sparán óna dteastaíonn sínithe iolracha chun idirbheart a údarú", + "page-find-wallet-social-recovery": "Athshlánú sóisialta", + "page-find-wallet-social-recovery-desc": "Sparáin a ligeann do chaomhnóirí an eochair shínithe a athrú le haghaidh sparán conartha cliste", + "page-find-wallet-languages-supported": "Tacaíocht teanga", + "page-find-wallet-languages-search-language": "Cuardaigh teanga", + "page-find-wallet-popular-languages": "Móréileamh", + "page-find-wallet-features": "Gnéithe", + "page-find-wallet-security": "Slándáil", + "page-find-wallet-smart-contract": "Conradh cliste", + "page-find-wallet-advanced": "Casta", + "page-find-wallet-check-out": "Seiceáil amach", + "page-find-wallet-info-updated-on": "eolas nuashonraithe ar", + "page-find-wallet-showing-all-wallets": "Gach sparán ar taispeáint", + "page-find-wallet-wallets": "sparáin", + "page-find-wallet-iOS": "iOS", + "page-find-wallet-android": "Android", + "page-find-wallet-linux": "Linux", + "page-find-wallet-macOS": "macOS", + "page-find-wallet-windows": "Windows", + "page-find-wallet-chromium": "Chromium", + "page-find-wallet-firefox": "Firefox", + "page-find-wallet-hardware": "Crua-earraí", + "page-find-wallet-new-to-crypto-title": "Más beag d'eolas ar crypto", + "page-find-wallet-new-to-crypto-desc": "Úsáideoir den chéad uair ag lorg sparáin do thosaitheoirí.", + "page-find-wallet-nfts-title": "NFTanna", + "page-find-wallet-nfts-desc": "Sparáin le fócas ar thacaíocht NFT.", + "page-find-wallet-hodler-title": "Fadtéarmach", + "page-find-wallet-hodler-desc": "Gabháltas éighníomhach comharthaí le sparáin crua‑earraí.", + "page-find-wallet-finance-title": "Airgeadas", + "page-find-wallet-finance-desc": "Sparáin a díríonn ar úsáid rialta aipeanna DeFi.", + "page-find-wallet-developer-title": "Forbróir", + "page-find-wallet-developer-desc": "Sparán a chuidíonn le daipeanna a fhorbairt agus a thástáil.", + "page-find-wallet-active": "gníomhach", + "page-find-wallet-footnote-1": "Ní formhuinithe oifigiúla iad na sparáin atá liostaithe ar an leathanach seo, agus cuirtear ar fáil iad chun críocha faisnéise amháin.", + "page-find-wallet-footnote-2": "Tá a gcuid tuairiscí curtha ar fáil ag na tionscadail féin sparán.", + "page-find-wallet-footnote-3": "Cuirimid táirgí leis an leathanach seo bunaithe ar chritéir inár polasaí liostála. Más mian leat go gcuirfimid sparán leis, tuairiscigh fadhb in GitHub.", + "page-find-wallet-mobile": "Soghluaiste", + "page-find-wallet-desktop": "Deasc", + "page-find-wallet-browser": "Brabhsálaí", + "page-find-wallet-device": "Gléas", + "page-find-wallet-reset-filters": "Athshocraigh", + "page-find-wallet-visit-website": "Tabhair cuairt ar an láithreán gréasáin", + "page-find-wallet-social-links": "Naisc", + "page-find-wallet-empty-results-title": "Gan torthaí", + "page-find-wallet-empty-results-desc": "Níl aon sparáin ag teacht le do chritéir, bain triail as roinnt scagairí a bhaint.", + "page-find-wallet-see-wallets": "Féach sparáin" +} diff --git a/src/intl/ga/page-wallets.json b/src/intl/ga/page-wallets.json new file mode 100644 index 00000000000..837603a9ed8 --- /dev/null +++ b/src/intl/ga/page-wallets.json @@ -0,0 +1,65 @@ +{ + "page-wallets-accounts-addresses": "Sparán, cuntais, eochracha agus seoltaí", + "page-wallets-accounts-addresses-desc": "Is fiú na difríochtaí idir roinnt príomhthéarmaí a thuiscint.", + "page-wallets-accounts-ethereum-addresses": "Tá seoladh ag cuntas Ethereum, go díreach mar atá seoladh ríomhphoist ag bosca isteach. Úsáidtear é seo chun do shócmhainní digiteacha a shainaithint.", + "page-wallets-alt": "Léaráid de róbat agus cruinneachán aige mar chorp, rud a léiríonn sparán Ethereum", + "page-wallets-ethereum-account": "Is péire eochracha é cuntas Ethereum. Úsáidtear eochair amháin chun an seoladh is mian leat a roinnt faoi shaoirse a chruthú, agus an eochair eile ní mór duit a coinneáil faoi rún mar úsáidtear í chun rudaí a shíniú. Le chéile, ligeann na heochracha seo duit sócmhainní a shealbhú agus idirbhearta a dhéanamh.", + "page-wallets-blog": "Blag Coinbase", + "page-wallets-bookmarking": "Leabharmharcáil do sparán", + "page-wallets-bookmarking-desc": "Má úsáideann tú sparán gréasáin, leabharmharcáil an suíomh chun tú féin a chosaint ar chamscéimeanna fioscaireachta.", + "page-wallets-cd": "Is gléasanna iad sparán crua‑earraí fisiceacha a ligeann duit do crypto a choinneáil as líne - an‑slán", + "page-wallets-desc-2": "Is iad sparáin a úsáideann an chuid is mó daoine chun a gcuid sócmhainní digiteacha agus a gcéannacht a láimhseáil.", + "page-wallets-desc-2-link": "Tuilleadh faoi ETH", + "page-wallets-desc-3": "Is uirlis é do sparán chun idirghníomhú le do chuntas Ethereum. Ciallaíonn sé sin gur féidir leat soláthraithe sparáin a mhalartú am ar bith. Ligeann go leor sparán duit roinnt cuntas Ethereum a bhainistiú ar aip amháin.", + "page-wallets-desc-4": "Níl cúram do chistí ag soláthraithe sparáin. Ní thugann siad ach fuinneog duit chun do shócmhainní a fheiceáil ar Ethereum agus uirlisí chun iad a bhainistiú go héasca.", + "page-wallets-description": "Is feidhmchláir iad sparáin Ethereum a thugann smacht duit ar do chuntas. Díreach cosúil le do sparán fisiceach, tá gach rud atá uait ann chun d'aitheantas a chruthú agus do shócmhainní a láimhseáil. Ligeann do sparán duit síniú isteach ar fheidhmchláir, d’iarmhéid a léamh, idirbhearta a sheoladh agus d’aitheantas a fhíorú.", + "page-wallets-desktop": "Feidhmchláir deisce más fearr leat do chistí a bhainistiú trí macOS, Windows nó Linux", + "page-wallets-ethereum-wallet": "Is uirlis é sparán a ligeann duit idirghníomhú le do chuntas, trí úsáid a bhaint as do chuid eochracha. Ligeann sé duit féachaint ar iarmhéid do chuntais, idirbhearta a sheoladh agus eile.", + "page-wallets-explore": "Foghlaim faoi Ethereum", + "page-wallets-features-desc": "Is féidir linn cabhrú leat do sparán a roghnú bunaithe ar na gnéithe is cúram duit.", + "page-wallets-features-title": "Déan comparáid idir sparáin bunaithe ar ghnéithe", + "page-wallets-find-wallet-btn": "Faigh sparán", + "page-wallets-find-wallet-link": "Faigh sparán", + "page-wallets-get-some": "Faigh roinnt ETH", + "page-wallets-get-some-alt": "Léaráid de lámh a chruthaíonn lógó ETH atá déanta as brící lego", + "page-wallets-get-some-btn": "Faigh roinnt ETH", + "page-wallets-get-some-desc": "Is é ETH crypto dúchais Ethereum. Beidh roinnt ETH de dhíth ort i do sparán chun feidhmchláir Ethereum a úsáid.", + "page-wallets-keys-to-safety": "Na heochracha chun do crypto a choinneáil sábháilte", + "page-wallets-manage-funds": "Aip chun do chistí a bhainistiú", + "page-wallets-manage-funds-desc": "Taispeánann do sparán do chuid iarmhéideanna, stair na n-idirbheart agus tugann sé bealach duit cistí a sheoladh / a fháil. D'fhéadfadh roinnt sparán níos mó a thairiscint.", + "page-wallets-meta-description": "An t-eolas is gá duit chun sparán Ethereum a úsáid.", + "page-wallets-meta-title": "Sparán Ethereum: Ceannaigh, Stóráil agus Seol crypto", + "page-wallets-mobile": "Feidhmchláir shoghluaiste a fhágann gur féidir rochtain a fháil ar do chistí ó áit ar bith", + "page-wallets-more-on-dapps-btn": "Tuilleadh faoi dhaipeanna", + "page-wallets-most-wallets": "Le formhór na dtáirgí sparán ligfear duit cuntas Ethereum a ghiniúint. Mar sin ní gá duit ceann a fháil sula n‑íoslódálann tú sparán.", + "page-wallets-protecting-yourself": "Tú féin agus do chistí a chosaint", + "page-wallets-seed-phrase": "Scríobh síos do fhrása athshlánaithe", + "page-wallets-seed-phrase-desc": "Is minic a thabharfaidh sparán frása síolta duit nach mór duit a scríobh síos áit éigin sábháilte. Is é seo an t-aon bhealach a mbeidh tú in ann do sparán a aisghabháil.", + "page-wallets-seed-phrase-example": "Seo sampla:", + "page-wallets-seed-phrase-write-down": "Ná stóráil ar ríomhaire é. Scríobh síos é agus coinnigh slán é.", + "page-wallets-slogan": "Na heochracha do do thodhchaí dhigiteach a choinneáil", + "page-wallets-stay-safe": "Conas a bheith sábháilte", + "page-wallets-stay-safe-desc": "Tá freagracht ag baint le saoirse airgeadais agus leis an gcumas cistí a rochtain agus a úsáid áit ar bith - níl aon tacaíocht do chustaiméirí in crypto. Tá tú freagrach as do chuid eochracha a choinneáil slán.", + "page-wallets-subtitle": "Cuidíonn sparán leat rochtain a fháil ar do shócmhainní digiteacha agus síniú isteach ar fheidhmchláir.", + "page-wallets-take-responsibility": "Glac freagracht as do chuid cistí féin", + "page-wallets-take-responsibility-desc": "Nascfaidh malartáin láraithe do sparán le hainm úsáideora agus pasfhocal ar féidir leat a aisghabháil tríd an ngnáthnós. Ach cuimhnigh go bhfuil tú ag cur muiníne sa mhalartán sin le cúram do chistí. Má tá trioblóid airgeadais ag an malartán, bheadh ​​do chistí i mbaol.", + "page-wallets-tips": "Tuilleadh leideanna maidir le fanacht sábháilte", + "page-wallets-tips-community": "Ón bpobal", + "page-wallets-title": "Sparáin Ethereum", + "page-wallets-triple-check": "Seiceáil gach rud faoi thrí", + "page-wallets-triple-check-desc": "Cuimhnigh nach féidir idirbhearta a aisiompú agus nach féidir sparán a aisghabháil go héasca, mar sin déan réamhchúraimí agus bí cúramach i gcónaí.", + "page-wallets-try-dapps": "Bain triail as roinnt daipeanna", + "page-wallets-try-dapps-alt": "Léaráid de bhaill phobal Ethereum ag obair le chéile", + "page-wallets-try-dapps-desc": "Is feidhmchláir iad daipeanna a tógadh ar Ethereum. Tá siad níos saoire, níos cothroime agus níos cineálta le do shonraí ná mar atá an chuid is mó d’fheidhmchláir thraidisiúnta.", + "page-wallets-types": "Cineálacha sparán", + "page-wallets-types-desc": "Tá roinnt bealaí ann chun comhéadan agus idirghníomhú a dhéanamh le do chuntas:", + "page-wallets-web-browser": "Is feidhmchláir gréasáin iad sparáin brabhsálaí a ligeann duit idirghníomhú go díreach le do chuntas sa bhrabhsálaí", + "page-wallets-web-browser-extension": "Is breiseáin iad sparáin breiseáin brabhsálaithe a íoslódálann tú trína ligtear duit idirghníomhú le do chuntas agus feidhmchláir tríd an mbrabhsálaí", + "page-wallets-whats-a-wallet": "Cad atá i sparán Ethereum?", + "page-wallets-your-ethereum-account": "Do chuntas Ethereum", + "page-wallets-your-ethereum-account-desc": "Is é do sparán d'fhuinneog isteach i do chuntas Ethereum – d'iarmhéid, stair idirbheart agus go leor eile. Ach is féidir leat soláthraithe sparáin a mhalartú am ar bith.", + "page-wallets-your-login": "Do logáil isteach le haghaidh aipeanna Ethereum", + "page-wallets-your-login-desc": "Tríd an sparán ligtear duit ceangal le feidhmchláir trí úsáid a bhaint as do chuntas Ethereum. Tá sé cosúil le logáil isteach a fhéadann tú a úsáid thar go leor aipeanna.", + "additional-reading-how-to-create-an-ethereum-account": "Conas cuntas Ethereum a chruthú", + "additional-reading-how-to-use-a-wallet": "Conas sparán a úsáid" +} diff --git a/src/intl/ga/page-what-is-ethereum.json b/src/intl/ga/page-what-is-ethereum.json new file mode 100644 index 00000000000..054a4104251 --- /dev/null +++ b/src/intl/ga/page-what-is-ethereum.json @@ -0,0 +1,128 @@ +{ + "page-what-is-ethereum-alt-img-bazaar": "Léaráid de dhuine ag amharc isteach i mbasár, ar nós Ethereum", + "page-what-is-ethereum-alt-img-comm": "Léaráid de bhaill phobal Ethereum ag obair le chéile", + "page-what-is-ethereum-alt-img-lego": "Léaráid de lámh a chruthaíonn lógó ETH atá déanta as brící lego", + "page-what-is-ethereum-banking-card": "Baincéireacht do gach duine", + "page-what-is-ethereum-banking-card-desc": "Níl rochtain ag gach duine ar sheirbhísí airgeadais. Is é nasc idirlín an t-aon rud atá uait chun rochtain a fháil ar Ethereum agus ar na táirgí iasachtaithe, iasachtaíochta agus coigiltis atá bunaithe air.", + "page-what-is-ethereum-build": "Cruthaigh rud éigin le Ethereum", + "page-what-is-ethereum-build-desc": "Más mian leat tógáil le Ethereum, léigh ár ndoiciméid, bain triail as roinnt ranganna teagaisc, nó seiceáil na huirlisí atá uait le tosú.", + "page-what-is-ethereum-censorless-card": "Frithsheasmhach in aghaidh na cinsireachta", + "page-what-is-ethereum-censorless-card-desc": "Níl smacht ag rialtas nó cuideachta ar bith ar Ethereum. Tríd an dílárú, fágtar go bhfuil sé beagnach dodhéanta do dhuine ar bith cosc a chur ort íocaíochtaí a fháil nó seirbhísí a úsáid ar Ethereum.", + "page-what-is-ethereum-comm-desc": "Tá daoine ó gach cúlra inár bpobal, lena n-áirítear ealaíontóirí, criptainrialaithe, cuideachtaí ó liosta 500 na hirise Fortune. Agus anois tá tusa san áireamh. Faigh amach conas is féidir leat a bheith páirteach inniu.", + "page-what-is-ethereum-commerce-card": "Ráthaíochtaí tráchtála", + "page-what-is-ethereum-commerce-card-desc": "Tá ráthaíocht ionsuite slán ag custaiméirí nach n-athróidh cistí lámha ach amháin má sholáthraíonn tú an méid a comhaontaíodh. Mar an gcéanna, is féidir le forbróirí a bheith cinnte nach n-athróidh na rialacha orthu.", + "page-what-is-ethereum-composable-card": "Táirgí in-chomhdhéanta", + "page-what-is-ethereum-composable-card-desc": "Tógtar gach aip ar an mblocshlabhra céanna in éineacht le stát domhanda roinnte, rud a chiallaíonn gur féidir leo tógáil ar a chéile (cosúil le brící Lego). As sin éascraítear táirgí agus eispéiris níos fearr, agus dearbhuithe nach féidir le duine ar bith uirlisí a mbíonn aipeanna ag brath orthu a bhaint.", + "page-what-is-ethereum-community": "Pobal Ethereum", + "page-what-is-ethereum-desc": "Bunchloch ár dtodhchaí digití", + "page-what-is-ethereum-explore": "Foghlaim faoi Ethereum", + "page-what-is-ethereum-internet-card": "Idirlíon oscailte", + "page-what-is-ethereum-internet-card-desc": "Is féidir le duine ar bith idirghníomhú le líonra Ethereum nó fearais a thógáil air. Leis sin ligtear duit do shócmhainní agus do chéannacht féin a rialú, in ionad iad a bheith á rialú ag líon teoranta meigea-chorparáidí.", + "page-what-is-ethereum-meet-comm": "Buail leis an bpobal", + "page-what-is-ethereum-meta-description": "Foghlaim faoi Ethereum, cad a dhéanann sé agus conas é a thriail duit féin.", + "page-what-is-ethereum-meta-title": "Cad é Ethereum?", + "page-what-is-ethereum-p2p-card": "Líonra comhghleacaithe", + "page-what-is-ethereum-p2p-card-desc": "Trí Ethereum ceadaítear duit comhordú a dhéanamh, comhaontuithe a dhéanamh nó sócmhainní digiteacha a aistriú go díreach le daoine eile. Ní gá duit a bheith ag brath ar idirghabhálaithe.", + "page-what-is-ethereum-start-building-btn": "Cuir tús leis an tógáil", + "page-what-is-ethereum-title": "Cad é Ethereum?", + "page-what-is-ethereum-subtitle": "Treoir iomlán do thosaitheoirí ar an gcaoi a n-oibríonn Ethereum, na buntáistí a bhaineann leis agus conas atá sé á úsáid ag na milliúin daoine ar fud an domhain.", + "page-what-is-ethereum-button-lets-start": "Tosaímis", + "page-what-is-ethereum-blockchain-tab-title": "Cad é blocshlabhra?", + "page-what-is-ethereum-blockchain-tab-content": "Is bunachar sonraí idirbheart é blocshlabhra a nuashonraítear agus a roinntear thar go leor ríomhairí i líonra. Gach uair a chuirtear sraith nua idirbheart leis, tugtar “bloc” air - mar sin an t-ainm blockchain. Le blocshlabhraí poiblí cosúil le Ethereum ceadaítear do gach duine sonraí a chur leis, ach gan iad a bhaint. Dá mbeadh duine ag iarraidh aon chuid den fhaisnéis a athrú nó caimiléireacht a dhéanamh ar an gcóras, bheadh ​​orthu é sin a dhéanamh ar fhormhór na ríomhairí ar an líonra. Is é sin go leor! Leis sin tá blocshlabhra díláraithe ar nós Ethereum an‑slán.", + "page-what-is-ethereum-cryptocurrency-tab-title": "Céard é an criptea-airgeadra?", + "page-what-is-ethereum-cryptocurrency-tab-content-1": "Is téarma é Cryptocurrency a úsáidtear chun cur síos a dhéanamh ar go leor cineálacha comharthaí digiteacha fungacha atá daingnithe ag baint úsáide as blockchain. Thosaigh sé ar fad le Bitcoin. Is féidir Bitcoin a úsáid chun luach a aistriú idir dhá pháirtí gan a bheith i muinín fear meánach. Ní mór duit ach muinín a dhéanamh ar chód Bitcoin, atá oscailte agus ar fáil saor in aisce.", + "page-what-is-ethereum-cryptocurrency-tab-content-2": "Is é an fáth a dtugtar “criptea-airgeadraí” ar shócmhainní ar nós bitcoin agus éitir ná go bhfuil slándáil do shonraí agus sócmhainní ráthaithe ag cripteagrafaíocht, seachas bheith ag brath ar ghníomhú ionraic institiúide nó corparáide.", + "page-what-is-ethereum-cryptocurrency-tab-content-3": "Tá criptea-airgeadra dá chuid féin ag Ethereum, éitear (ETH), a úsáidtear chun íoc as gníomhaíochtaí áirithe ar an líonra. Is féidir é a aistriú chuig úsáideoirí eile nó a mhalartú le haghaidh comharthaí eile ar Ethereum. Tá éitear speisialta toisc go n-úsáidtear é chun íoc as an ríomh a theastaíonn chun aipeanna agus eagraíochtaí a thógáil agus a reáchtáil ar Ethereum.", + "page-what-is-ethereum-summary-title": "Achoimre", + "page-what-is-ethereum-summary-desc-1": "Is é Ethereum an príomhardán do na mílte aipeanna agus blocshlabhraí, go léir faoi thiomáint ag prótacal Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Tríd an éiceachóras bríomhar seo spreagtar nuálaíocht agus raon leathan aipeanna agus seirbhísí díláraithe.", + "page-what-is-ethereum-summary-bullet-1": "Cuntas Ethereum saor in aisce agus domhanda", + "page-what-is-ethereum-summary-bullet-2": "Pseudo-private, níl aon fhaisnéis phearsanta ag teastáil", + "page-what-is-ethereum-summary-bullet-3": "Gan srianta is féidir le haon duine páirt a ghlacadh", + "page-what-is-ethereum-summary-bullet-4": "Ní le cuideachta ar bith é Ethereum ná ní shocraíonn cuideachta ar bith a thodhchaí", + "page-what-is-ethereum-btc-eth-diff-title": "Cad é an difríocht idir Ethereum agus Bitcoin?", + "page-what-is-ethereum-btc-eth-diff-1": "Arna sheoladh in 2015, tógann Ethereum ar nuálaíocht Bitcoin, le roinnt difríochtaí móra.", + "page-what-is-ethereum-btc-eth-diff-2": "Ligeann an dá cheann duit airgead digiteach a úsáid gan soláthraithe íocaíochta nó bainc. Ach tá Ethereum in-ríomhchláraithe, ionas gur féidir leat feidhmchláir dhíláraithe a thógáil agus a imscaradh ar a líonra freisin.", + "page-what-is-ethereum-btc-eth-diff-3": "Cuireann Bitcoin ar ár gcumas teachtaireachtaí bunúsacha a sheoladh chuig a chéile faoina bhfuil luachmhar dar linn. Is cumhachtach cheana féin luach a bhunú gan údarás. Le hEthereum leatnaítear é sin amach: seachas go díreach teachtaireachtaí amháin, is féidir leat clár ginearálta, nó conradh ar bith a scríobh. Níl aon teorainn leis an gcineál conarthaí is féidir a chruthú agus a chomhaontú, mar sin eascraíonn nuálaíocht iontach as líonra Ethereum.", + "page-what-is-ethereum-btc-eth-diff-4": "Cé nach bhfuil in Bitcoin ach líonra íocaíochta, tá Ethereum níos cosúla le margadh seirbhísí airgeadais, cluichí, líonraí sóisialta agus aipeanna eile.", + "page-what-is-ethereum-what-can-eth-do-title": "Cad is féidir le Ethereum a dhéanamh?", + "page-what-is-ethereum-why-would-i-use-ethereum-title": "Cén fáth a n-úsáidfinn Ethereum?", + "page-what-is-ethereum-why-would-i-use-ethereum-1": "Má tá suim agat i mbealaí níos athléimní, oscailte agus iontaofa chun comhordú a dhéanamh ar fud an domhain, eagraíochtaí a chruthú, aipeanna a thógáil agus luach a roinnt, tá Ethereum feiliúnach duit. Is scéal é atá á chruthú ag gach duine againn, mar sin bí linn go dtuige tú na rudaí éachtmhara is féidir linn a fhíorú i dteanta a chéile trí Ethereum.", + "page-what-is-ethereum-why-would-i-use-ethereum-2": "Bhí Ethereum thar a bheith áisiúil freisin do dhaoine a raibh orthu éiginnteacht a láimhseáil maidir le slándáil nó fóntacht nó soghluaisteacht a gcuid sócmhainní mar gheall ar fhórsaí seachtracha lasmuigh dá smacht.", + "page-what-is-ethereum-slide-1-title": "Íocaíochtaí Trasteorann níos saoire agus níos tapúla", + "page-what-is-ethereum-slide-1-desc-1": "Is cineál nua criptea-airgeadra é Stablecoins a bhraitheann ar shócmhainn níos cobhsaí mar bhunús dá luach. Tá an chuid is mó acu nasctha le dollar na Stát Aontaithe agus mar sin coinníonn siad luach an airgeadra sin. Leo sin ligtear do chóras íocaíochta domhanda atá an‑saor agus cobhsaí. Tógtar go leor Stablecoins ar líonra Ethereum.", + "page-what-is-ethereum-slide-1-desc-2": "Trí Ethereum agus stablecoins simplítear an próiseas chun airgead a sheoladh thar lear. Is minic nach dtógann sé ach cúpla nóiméad cistí a aistriú ar fud na cruinne, i gcomparáid le laethanta gnó nó fiú seachtainí a d'fhéadfadh bheith i gceist i gcás gnáthbhainc, agus ar chostas i bhfad níos ísle. Ina theannta sin, níl aon táille bhreise ann chun idirbheart ardluacha a dhéanamh, agus níl aon srianta ar an áit nó ar an bhfáth a bhfuil do chuid airgid á sheoladh agat.", + "page-what-is-ethereum-slide-2-title": "An Chabhair is Tapúla sa Ghéarchéim", + "page-what-is-ethereum-slide-2-desc-1": "Má tá an t-ádh leat go bhfuil il-roghanna baincéireachta agat trí institiúidí iontaofa san áit a bhfuil cónaí ort, féadfaidh tú talamh slán a dhéanamh den tsaoirse airgeadais, den tslándáil agus den chobhsaíocht a chuireann siad ar fáil. Ach is iomaí duine ar fud an domhain a thugann aghaidh ar chos ar bolg polaitiúil nó ar chruatan eacnamaíoch, tá seans ann nach soláthraítear an chosaint nó na seirbhísí is gá dóibh trí institiúidí airgeadais.", + "page-what-is-ethereum-slide-2-desc-2": "Nuair a bhuail cogadh, tubaistí eacnamaíocha nó cniogbheartaíocht ar shaoirsí sibhialta muintir Veiniséala, Cúba, na hAfganastáine, na Nigéire, na Bealarúise, agus na hÚcráine, ba iad na criptea-airgeadraí an rogha is tapúla agus ba mhinic gurb iad an t-aon rogha amháin le neamhspleáchas airgeadais a choinneáil.1 Mar a fheictear sna samplaí sin, is féidir le criptea-airgeadraí cosúil le hEthereum rochtain gan bhac a sholáthar ar an ngeilleagar domhanda nuair a scoitear daoine ón domhan lasmuigh. Ina theannta sin, cuireann Stablecoins stór luacha ar fáil nuair a bhíonn airgeadraí áitiúla ag titim as a chéile mar gheall ar hipearbhoilsciú.", + "page-what-is-ethereum-slide-3-title": "Cumasú Cruthaitheoirí", + "page-what-is-ethereum-slide-3-desc-1": "In 2021 amháin, d’úsáid ealaíontóirí, ceoltóirí, scríbhneoirí agus cruthaitheoirí eile Ethereum chun thart ar $3.5 billiún a thuilleamh le chéile. Leis sin tá Ethereum ar cheann de na hardáin domhanda is mó do chruthaitheoirí, taobh le Spotify, YouTube agus Etsy. Foghlaim tuilleadh.", + "page-what-is-ethereum-slide-4-title": "Cumasú Cluichirí", + "page-what-is-ethereum-slide-4-desc-1": "Tá rud ar a dtugtar 'cluichí a imirt chun tuillimh' (ina dtugtar luach saothair iarbhír d'imreoirí as na cluichí a imirt) tar éis teacht chun cinn le déanaí agus tá siad ag athrú an tionscail cluichíochta. Le fada, toirmisctear sócmhainní ion‑chluiche a thrádáil nó a aistriú chuig imreoirí eile le haghaidh airgead fíor. Dá bhrí sin cuirtear iallach ar imreoirí láithreáin ghréasáin ar an margadh dubh a úsáid ar minic a mbíonn riosca slándála ag baint leo. Le cluichíocht blocshlabhra cuirtear fáilte roimh an ngeilleagar ion‑chluiche agus cuirtear iompar den sórt sin chun cinn ar bhealach iontaofa.", + "page-what-is-ethereum-slide-4-desc-2": "Ina theannta sin, spreagtar imreoirí trí bheith in ann comharthaí ion-chluiche a thrádáil ar airgead fíor agus dá bhrí sin fíorluach saothair a fháil as a gcuid ama imeartha.", + "page-what-is-ethereum-meet-ether-title": "Seo é éitear, criptea-airgeadra Ethereum", + "page-what-is-ethereum-meet-ether-desc-1": "Éilíonn go leor gníomhartha ar líonra Ethereum go ndéanfaí roinnt oibre ar ríomhaire leabaithe Ethereum (ar a dtugtar Meaisín Fíorúil Ethereum). Níl an ríomhaireacht seo saor in aisce; íoctar as trí úsáid a bhaint as criptea-airgeadra dúchais Ethereum ar a dtugtar éitear (ETH). Ciallaíonn sé seo go dteastaíonn méid beag éitir uait chun an líonra a úsáid.", + "page-what-is-ethereum-meet-ether-desc-2": "Is rud digiteach amháin é éitear, agus is féidir leat é a sheoladh chuig aon duine áit ar bith ar domhan láithreach. Níl an soláthar éitir á rialú ag aon rialtas nó ag aon chuideachta - tá sé díláraithe agus go hiomlán trédhearcach. Eisítear éitear ar bhealach beacht de réir an phrótacail, ach amháin do na geallsealbhóirí a dhaingníonn an líonra.", + "page-what-is-ethereum-what-is-ether": "Cad é éitear?", + "page-what-is-ethereum-get-eth": "Faigh ETH", + "page-what-is-ethereum-explore-applications": "Foghlaim faoi fheidhmchláir", + "page-what-is-ethereum-learn-defi": "Foghlaim faoi DeFi", + "page-what-is-ethereum-who-runs-ethereum-title": "Cé a rialaíonn Ethereum?", + "page-what-is-ethereum-who-runs-ethereum-desc-1": "Níl Ethereum á rialú ag aon eintiteas ar leith. Bíonn sé ann nuair a bhíonn ríomhairí ceangailte atá ag úsáid bogearraí a leanann prótacal Ethereum agus a chuireann le blocshlabhra Ethereum. Tugtar nód ar gach ceann de na ríomhairí seo. Is féidir le duine ar bith nóid a rith, cé go gcaithfidh tú geallchur ETH (comhartha dúchais Ethereum) a dhéanamh chun an líonra a dhaingniú. Is féidir le duine ar bith a bhfuil 32 ETH acu é sin a dhéanamh gan cead a bheith ag teastáil uathu.", + "page-what-is-ethereum-who-runs-ethereum-desc-2": "Ní le haonán amháin a tháirgtear cód foinse Ethereum fiú. Is féidir le duine ar bith athruithe ar an bprótacal a mholadh agus uasghráduithe a phlé. Tá roinnt feidhmiúcháin de phrótacal Ethereum a tháirgeann eagraíochtaí neamhspleácha i roinnt teangacha ríomhchlárúcháin, agus de ghnáth tógtar iad go hoscailte agus spreagann siad ranníocaíochtaí pobail.", + "page-what-is-ethereum-run-a-node": "Úsáid nód", + "page-what-is-ethereum-smart-contract-title": "Cad is conarthaí cliste ann?", + "page-what-is-ethereum-smart-contract-desc-1": "Is cláir ríomhaire iad conarthaí cliste a chónaíonn ar bhlocshlabhra Ethereum. Feidhmíonn siad nuair a spreagtar iad mar gheall ar idirbheart úsáideora. Déanann siad Ethereum an-solúbtha maidir lenar féidir leis a dhéanamh. Feidhmíonn na cláir seo mar bhloic tógála le haghaidh aipeanna agus eagraíochtaí díláraithe.", + "page-what-is-ethereum-smart-contract-desc-2": "Ar úsáid tú riamh táirge ar athraíodh a théarmaí seirbhíse? Nó táirge ar baineadh gné a bhí úsáideach duit den táirge céanna? Nuair a fhoilsítear conradh cliste ar Ethereum, beidh sé ar líne agus ag feidhmiú chomh fada agus a bheidh Ethereum ann. Ní féidir leis an údar fiú é a bhaint anuas. Ós rud é go bhfuil conarthaí cliste uathoibrithe, ní dhéanann siad idirdhealú i gcoinne aon úsáideora agus tá siad réidh le húsáid i gcónaí.", + "page-what-is-ethereum-smart-contract-desc-3": "Samplaí coitianta de chonarthaí cliste is ea aipeanna iasachta, malartáin dhíláraithe trádála, árachas, maoiniú cearnach, líonraí sóisialta, NFTs - rud ar bith ar féidir leat smaoineamh air go bunúsach.", + "page-what-is-ethereum-more-on-smart-contracts": "Tuilleadh faoi chonarthaí cliste", + "page-what-is-ethereum-explore-dapps": "Foghlaim faoi daipeanna", + "page-what-is-ethereum-criminal-activity-title": "Chuala mé go bhfuil crypto á úsáid mar uirlis le haghaidh gníomhaíocht choiriúil. An bhfuil sé sin fíor?", + "page-what-is-ethereum-criminal-activity-desc-1": "Amhail teicneolaíocht ar bith, bainfear mí-úsáid as ar uairibh. Mar sin féin, toisc go dtarlaíonn gach idirbheart Ethereum ar bhlocshlabhra oscailte, is minic go mbíonn sé níos éasca d’údaráis gníomhaíocht aindleathach a rianú ná mar a bheadh ​​sa chóras traidisiúnta airgeadais. D’fhéadfaí a áitiú gur rogha neamhtharraingteach é Ethereum dóibh siúd ar fearr leo dul gan aithne.", + "page-what-is-ethereum-criminal-activity-desc-2": "Úsáidtear Crypto i bhfad níos lú ná airgeadraí fiat chun críocha coiriúla de réir príomhthorthaí tuarascála a eisíodh le déanaí ó Europol, Gníomhaireacht an Aontais Eorpaigh i ndáil le Comhar i bhForfheidhmiú an Dlí:", + "page-what-is-ethereum-criminal-activity-desc-3": "“Is cosúil nach bhfuil in úsáid criptea-airgeadraí le haghaidh gníomhaíochtaí aindleathacha ach cuid bheag den gheilleagar iomlán criptea-airgeadra, agus is cosúil go bhfuil sé i bhfad níos lú ná méid na gcistí aindleathacha a bhaineann le hairgeadas traidisiúnta.”", + "page-what-is-ethereum-energy-title": "Cad mar gheall ar thomhaltas fuinnimh Ethereum?", + "page-what-is-ethereum-energy-desc-1": "Ar 15 Meán Fómhair 2022, chuaigh Ethereum trí uasghrádú The Merge a d’aistrigh Ethereum ó chruthúnas oibre go cruthúnas geallchuir.", + "page-what-is-ethereum-energy-desc-2": "Ba é The Merge an t-uasghrádú is mó de chuid Ethereum agus laghdaigh sé an t-ídiú fuinnimh a theastaíonn chun Ethereum a dhaingniú faoi 99.95%, rud a chruthaigh líonra níos sláine ar chostas carbóin i bhfad níos lú. Is blocshlabhra ísealcharbóin é Ethereum anois agus é ag cur lena shlándáil agus lena inscálaitheacht.", + "page-what-is-ethereum-more-on-energy-consumption": "Tuilleadh faoi ídiú fuinnimh", + "page-what-is-ethereum-energy-consumption-chart-legend": "Ídiú Bliantúil Fuinnimh i TWh/bliain", + "energy-consumption-chart-global-data-centers-label": "Ionaid dhomhanda sonraí", + "energy-consumption-gold-mining-cbeci-label": "Mianadóireacht óir", + "energy-consumption-chart-btc-pow-label": "BTC PoW", + "energy-consumption-chart-netflix-label": "Netflix", + "energy-consumption-chart-eth-pow-label": "ETH PoW", + "energy-consumption-chart-gaming-us-label": "Cluichíocht sna Stáit Aontaithe", + "energy-consumption-chart-airbnb-label": "AirBnB", + "energy-consumption-chart-paypal-label": "PayPal", + "energy-consumption-chart-eth-pos-label": "ETH PoS", + "page-what-is-ethereum-the-merge-update": "An nuashonrú Cumaisc", + "page-what-is-ethereum-additional-reading": "Tuilleadh léitheoireachta", + "page-what-is-ethereum-week-in-ethereum": "Seachtain i Nuacht Ethereum", + "page-what-is-ethereum-week-in-ethereum-desc": "- Nuachtlitir sheachtainiúil ina gclúdaítear príomhfhorbairtí ar fud an éiceachórais.", + "page-what-is-ethereum-kernel-dreamers": "Eithne", + "page-what-is-ethereum-kernel-dreamers-desc": "Aisling Ethereum", + "page-what-is-ethereum-atoms-institutions-blockchains": "Adaimh, Institiúidí, Blocshlabhraí", + "page-what-is-ethereum-atoms-institutions-blockchains-desc": "- Cén fáth a bhfuil tábhacht le blocshlabhraí?", + "page-what-is-ethereum-ethereum-in-numbers-title": "Ethereum in uimhreacha", + "page-what-is-ethereum-ethereum-in-numbers-stat-1-desc": "Tógáil tionscadal ar Ethereum", + "page-what-is-ethereum-ethereum-in-numbers-stat-2-desc": "Cuntais (sparán) le hiarmhéid ETH", + "page-what-is-ethereum-ethereum-in-numbers-stat-3-desc": "Conarthaí cliste ar Ethereum", + "page-what-is-ethereum-ethereum-in-numbers-stat-4-desc": "Luach urraithe ar Ethereum", + "page-what-is-ethereum-ethereum-in-numbers-stat-5-desc": "Tuilleamh cruthaitheoirí ar Ethereum in 2021", + "page-what-is-ethereum-ethereum-in-numbers-stat-6-desc": "Líon na n-idirbheart inniu", + "adoption-chart-column-now-label": "Anois", + "adoption-chart-investors-label": "Infheisteoirí", + "adoption-chart-developers-label": "Forbróirí", + "adoption-chart-companies-label": "Cuideachtaí", + "adoption-chart-artists-label": "Ealaíontóirí", + "adoption-chart-musicians-label": "Ceoltóirí", + "adoption-chart-writers-label": "Scríbhneoirí", + "adoption-chart-gamers-label": "Cluichirí", + "adoption-chart-refugees-label": "Dídeanaithe", + "page-what-is-ethereum-get-eth-alt": "Faigh roinnt ETH", + "page-what-is-ethereum-get-eth-description": "Is é ETH airgeadra dúchais Ethereum. Beidh roinnt ETH de dhíth ort i do sparán chun feidhmchláir Ethereum a úsáid.", + "page-what-is-ethereum-get-eth-title": "Faigh roinnt ETH", + "page-what-is-ethereum-explore-dapps-alt": "Foghlaim faoi dhaipeanna", + "page-what-is-ethereum-explore-dapps-description": "Is feidhmchláir iad daipeanna a tógadh ar Ethereum. Tá daipeanna ag cur isteach ar mhúnlaí gnó reatha agus ag cumadh cinn nua.", + "page-what-is-ethereum-explore-dapps-title": "Bain triail as roinnt daipeanna" +} diff --git a/src/intl/ga/template-usecase.json b/src/intl/ga/template-usecase.json new file mode 100644 index 00000000000..243e1f997fb --- /dev/null +++ b/src/intl/ga/template-usecase.json @@ -0,0 +1,14 @@ +{ + "template-usecase-dropdown-defi": "Airgeadas díláraithe (DeFi)", + "template-usecase-dropdown-nft": "Comharthaí neamh-inmheasctha (NFTanna)", + "template-usecase-dropdown-dao": "Eagraíochtaí uathrialaitheacha díláraithe (DAO)", + "template-usecase-dropdown-payments": "Íocaíochtaí Ethereum", + "template-usecase-dropdown-social-networks": "Líonraí sóisialta díláraithe", + "template-usecase-dropdown-identity": "Féiniúlacht dhíláraithe", + "template-usecase-dropdown-desci": "Eolaíocht dhíláraithe (DeSci)", + "template-usecase-dropdown-refi": "Airgeadas athghiniúna (ReFi)", + "template-usecase-dropdown": "Cásanna úsáide Ethereum", + "template-usecase-banner": "Tá forbairt agus athrú ag teacht ar úsáidí Ethereum i gcónaí. Cuir leis faisnéis ar bith a cheapann tú a dhéanfaidh rudaí níos soiléire nó níos déanaí.", + "template-usecase-edit-link": "Cuir leathanach in eagar", + "template-usecase-dropdown-aria": "Úsáid roghchlár anuas cáis" +} \ No newline at end of file diff --git a/src/intl/ha/page-developers-local-environment.json b/src/intl/ha/page-developers-local-environment.json index cf6d31845a2..8eb88da026f 100644 --- a/src/intl/ha/page-developers-local-environment.json +++ b/src/intl/ha/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Anan akwai kayan aiki da ma tsarin da zaku iya amfani da su don taimaka muku wurin gina manhajojin Ethereum.", "page-local-environment-setup-title": "Saita yanayin ci gaba na gida", "page-local-environment-solidity-template-desc": "Samfurin GitHub don saitin da aka riga aka gina don smart contracts na Solidity. Ya haɗa da cibiyar sadarwar gida ta Hardhat, Waffle don gwaje-gwaje, Ethers don aiwatar da walat, da ƙari.", - "page-local-environment-solidity-template-logo-alt": "Tambarin samfurin Solidity", - "page-local-environment-waffle-desc": "Laburaren gwada smart contracts mafi inganci, ana amfani da shi kaɗai ko da Scaffold-eth ko kuma da Hardhat.", - "page-local-environment-waffle-logo-alt": "Tambarin waffle" -} + "page-local-environment-solidity-template-logo-alt": "Tambarin samfurin Solidity" +} \ No newline at end of file diff --git a/src/intl/hi/page-developers-local-environment.json b/src/intl/hi/page-developers-local-environment.json index 042effc163a..989bd7d2e6b 100644 --- a/src/intl/hi/page-developers-local-environment.json +++ b/src/intl/hi/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " यहां पर वे उपकरण और संरचनाएं मौजूद हैं, जिनका उपयोग आप अपने इथेरियम एप्लिकेशन को बनाने में मदद करने के लिए कर सकते हैं।", "page-local-environment-setup-title": "अपना स्थानीय डेवलपमेंट परिवेश स्थापित करें", "page-local-environment-solidity-template-desc": "आपके Solidity स्मार्ट अनुबंधों के लिए प्री-बिल्ट सेटअप के लिए GitHub टेम्पलेट। एक Hardhat स्थानीय नेटवर्क, परीक्षण के लिए Waffle, वॉलेट कार्यान्वयन के लिए Ethers, और भी बहुत कुछ शामिल है।", - "page-local-environment-solidity-template-logo-alt": "Solidity टेम्पलेट का लोगो", - "page-local-environment-waffle-desc": "स्मार्ट अनुबंध के लिए सबसे उन्नत परीक्षण लाइब्रेरी। अकेले या स्कैफोल्ड-ETH या Hardhat के साथ उपयोग करें।", - "page-local-environment-waffle-logo-alt": "Waffle का लोगो" -} + "page-local-environment-solidity-template-logo-alt": "Solidity टेम्पलेट का लोगो" +} \ No newline at end of file diff --git a/src/intl/hr/page-developers-local-environment.json b/src/intl/hr/page-developers-local-environment.json index efed7e849dc..5ed51bfdcfe 100644 --- a/src/intl/hr/page-developers-local-environment.json +++ b/src/intl/hr/page-developers-local-environment.json @@ -25,7 +25,5 @@ "page-local-environment-setup-subtitle-2": " Evo alata i okvira pomoću kojih možete izgraditi svoju aplikaciju Ethereum.", "page-local-environment-setup-title": "Postavite svoje lokalno razvojno okruženje", "page-local-environment-solidity-template-desc": "Predložak GitHub sa unaprijed zadanim postavkama za vaše pametne ugovore Solidity. Uključuje lokalnu mrežu Hardhat, Waffle za testove, Ethere za implementaciju novčanika i još mnogo toga.", - "page-local-environment-solidity-template-logo-alt": "Solidity template logo", - "page-local-environment-waffle-desc": "Najnaprednija knjižnica za testiranje pametnih ugovora. Upotrebljavajte samostalno ili sa Scaffold-ethom ili s Hardhatom.", - "page-local-environment-waffle-logo-alt": "Waffle logo" -} + "page-local-environment-solidity-template-logo-alt": "Solidity template logo" +} \ No newline at end of file diff --git a/src/intl/hu/page-developers-local-environment.json b/src/intl/hu/page-developers-local-environment.json index ee6a9e4a511..55c38fd2503 100644 --- a/src/intl/hu/page-developers-local-environment.json +++ b/src/intl/hu/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Itt láthatók az eszközök és keretrendszerek, melyek segítenek az Ethereum alkalmazás építésében.", "page-local-environment-setup-title": "Állítsa fel a helyi fejlesztői környezetét", "page-local-environment-solidity-template-desc": "Egy GitHub sablon a Solidity okosszerződések előre elkészített beállítására. Tartalmazza a Hardhat helyi hálózatot, a Waffle-t tesztelésre, az Ethers-t tárcaimplementációra és még sok mást is.", - "page-local-environment-solidity-template-logo-alt": "Solidity template logo", - "page-local-environment-waffle-desc": "A legfejlettebb okosszerződés tesztelési könyvtár. Használja önmagában, a Scaffold-eth-szel vagy a Hardhat-tel.", - "page-local-environment-waffle-logo-alt": "Waffle logo" -} + "page-local-environment-solidity-template-logo-alt": "Solidity template logo" +} \ No newline at end of file diff --git a/src/intl/id/common.json b/src/intl/id/common.json index f91b32c1871..2029ec40e3d 100644 --- a/src/intl/id/common.json +++ b/src/intl/id/common.json @@ -250,6 +250,8 @@ "nav-emerging-description": "Kenali kasus penggunaan baru lainnya untuk Ethereum", "nav-emerging-label": "Kasus penggunaan yang muncul", "nav-ethereum-org-description": "Situs web ini digerakkan oleh komunitas—bergabunglah dengan kami dan berkontribusi juga", + "nav-ethereum-networks": "Jaringan Ethereum", + "nav-ethereum-networks-description": "Transaksi yang lebih murah dan lebih cepat untuk Ethereum", "nav-ethereum-wallets-description": "Aplikasi untk berinteraksi dengan akun Ethereum Anda", "nav-events-description": "Desentralisasi dan kebebasan untuk berpartisipasi bagi siapa saja", "nav-events-irl-description": "Setiap bulan ada aksi besar Ethereum yang berlangsung secara langsung dan online", @@ -275,16 +277,23 @@ "nav-guides-label": "Cara memandu", "nav-history-description": "Linimasa semua garpu dan pembaruan besar", "nav-history-label": "Riwayat teknis Ethereum", - "nav-layer-2-description": "Transaksi yang lebih murah dan lebih cepat untuk Ethereum", "nav-learn-by-coding-description": "Alat yang membantu Anda bereksperimen dengan Ethereum", "nav-local-env-description": "Pilih dan siapkan tumpukan pengembangan Ethereum Anda", "nav-mainnet-description": "Aplikasi blockchain perusahaan dapat dibuat di Jaringan Utama Ethereum publik", + "nav-networks-home-description": "Transaksi yang lebih murah dan lebih cepat untuk Ethereum", + "nav-networks-introduction-label": "Pendahuluan", + "nav-networks-introduction-description": "Ethereum meluas ke dalam jaringan dari jaringan besar", + "nav-networks-explore-networks-label": "Jelajahi jaringan", + "nav-networks-explore-networks-description": "Pilih jaringan yang dipakai", + "nav-networks-learn-label": "Apa itu jaringan lapisan ke-2?", + "nav-networks-learn-description": "Pelajari mengapa kita membutuhkannya", "nav-nft-description": "Cara untuk mewakili apa pun yang unik sebagai aset berbasis Ethereum", "nav-open-research-description": "Salah satu kekuatan utama Ethereum adalah komunitas penelitiannya yang aktif", "nav-open-research-label": "Buka penelitian", "nav-overview-description": "Semua hal tentang pendidikan Ethereum", "nav-overview-label": "Gambaran umum", "nav-participate-overview-description": "Gambaran umum tentang cara berpartisipasi", + "nav-payments-description": "Pembayaran Ethereum mengubah cara kita mengirim dan menerima uang", "nav-primary": "Utama", "nav-quizzes-description": "Cari tahu seberapa baik Anda memahami Ethereum dan mata uang kripto", "nav-quizzes-label": "Uji pengetahuan Anda", @@ -356,6 +365,7 @@ "page-last-updated": "Halaman terakhir kali diperbaharui", "participate": "Partisipasi", "participate-menu": "Menu partisipasi", + "payments-page": "Pembayaran", "pbs": "Pemisahan pengusul-pembuat", "pools": "Penaruhan pool", "privacy-policy": "Kebijakan privasi", diff --git a/src/intl/id/page-dapps.json b/src/intl/id/page-dapps.json index a5a77597c27..0c931d4a1ff 100644 --- a/src/intl/id/page-dapps.json +++ b/src/intl/id/page-dapps.json @@ -78,6 +78,7 @@ "page-dapps-dapp-description-cryptovoxels": "Buat galeri seni, bangun toko, dan beli tanah – sebuah dunia virtual Ethereum.", "page-dapps-dapp-description-cyberconnect": "Protokol grafik sosial terdesentralisasi yang membantu dApps melakukan bootstrap efek jaringan dan membangun pengalaman sosial yang dipersonalisasi", "page-dapps-dapp-description-dark-forest": "Taklukan planet-planet di alam semesta yang tidak terbatas, dihasilkan secara prosedural, dan dispesifikasikan secara kriptografis.", + "page-dapps-dapp-description-crack-and-stack": "Masuk ke tambang dengan pemain lain, pertaruhkan permata ETH, dan selamatkan diri dengan hadiah bounty.", "page-dapps-dapp-description-decentraland": "Kumpulkan, dagangkan lahan virtual di dunia maya yang dapat Anda jelajahi.", "page-dapps-dapp-description-ens": "Nama yang ramah bagi pengguna untuk alamat Ethereum dan situs terdesentralisasi.", "page-dapps-dapp-description-foundation": "Investasikan dalam edisi unik karya seni digital dan perdagangkan bagiannya dengan pembeli lain.", @@ -127,6 +128,7 @@ "page-dapps-docklink-dapps": "Pengantar dapps", "page-dapps-docklink-smart-contracts": "Kontrak pintar", "page-dapps-dark-forest-logo-alt": "Logo Dark Forest", + "page-dapps-crack-and-stack-logo-alt": "Logo Crack & Stack", "page-dapps-decentraland-logo-alt": "Logo Decentraland", "page-dapps-index-coop-logo-alt": "Logo Index Coop", "page-dapps-nexus-mutual-logo-alt": "Logo Nexus Mutual", diff --git a/src/intl/id/page-developers-index.json b/src/intl/id/page-developers-index.json index 519f6c22d13..61dd95482c8 100644 --- a/src/intl/id/page-developers-index.json +++ b/src/intl/id/page-developers-index.json @@ -44,7 +44,7 @@ "page-developers-language-desc": "Menggunakan Ethereum dengan bahasa yang populer", "page-developers-languages": "Bahasa pemrograman", "page-developers-learn": "Pelajari pengembangan Ethereum", - "page-developers-learn-desc": "Baca tentang konsep inti dan tumpukan Ethereum dengan dokumen kami", + "page-developers-learn-desc": "Baca tentang konsep inti dan tumpukan Ethereum dengan dokumen kami.", "page-developers-learn-tutorials": "Pelajari melalui tutorial", "page-developers-learn-tutorials-cta": "Lihat tutorial", "page-developers-learn-tutorials-desc": "Pelajari langkah demi langkah pengembangan Ethereum dari pembangun yang telah berhasil melakukannya.", @@ -71,6 +71,8 @@ "page-developers-setup-desc": "Siapkan tumpukan Anda untuk dibangun dengan mengonfigurasi lingkungan pengembangan.", "page-developers-smart-contracts-desc": "Logika di balik dapp – perjanjian yang dijalankan sendiri", "page-developers-smart-contracts-link": "Kontrak pintar", + "page-developers-speedrunethereum-title": "Pelajari semua konsep terpenting dengan mengembangkan Ethereum", + "page-developers-speedrunethereum-link": "SpeedRun Ethereum", "page-developers-stack": "Tumpukan", "page-developers-start": "Mulai bereksperimen", "page-developers-start-desc": "Ingin bereksperimen dulu, ajukan pertanyaan nanti?", diff --git a/src/intl/id/page-developers-learning-tools.json b/src/intl/id/page-developers-learning-tools.json index 209be64d3b6..e951a79ea3f 100644 --- a/src/intl/id/page-developers-learning-tools.json +++ b/src/intl/id/page-developers-learning-tools.json @@ -6,12 +6,16 @@ "page-learning-tools-browse-docs": "Jelajahi dokumen", "page-learning-tools-capture-the-ether-description": "Capture the Ether adalah sebuah game di mana Anda meretas kontrak pintar Ethereum untuk belajar tentang keamanan.", "page-learning-tools-capture-the-ether-logo-alt": "Logo Capture the Ether", + "page-learning-tools-node-guardians-description": "Simpul Guardian adalah platform edukasi gamifikasi yang membenamkan para pengembang web3 dalam petualangan bertema fantasi untuk menguasai pemrograman Solidity, Kairo, Noir, dan Hurf.", + "page-learning-tools-node-guardians-logo-alt": "Logo Simpul Guardians", "page-learning-tools-coding": "Belajar melalui pengodean", "page-learning-tools-coding-subtitle": "Peralatan ini akan membantu Anda bereksperimen dengan Ethereum jika Anda lebih suka pengalaman belajar yang lebih interaktif.", "page-learning-tools-consensys-academy-description": "Kamp pelatihan pengembang Ethereum online.", "page-learning-tools-consensys-academy-logo-alt": "Logo Akademi ConsenSys", "page-learning-tools-cryptozombies-description": "Pelajari Solidity yang membuat game Zombie karya Anda.", "page-learning-tools-cryptozombies-logo-alt": "Logo CryptoZombies", + "page-learning-tools-dapp-world-description": "Ekosistem peningkatan keterampilan rantai blok, termasuk kursus, kuis, praktik langsung, dan kontes mingguan.", + "page-learning-tools-dapp-world-logo-alt": "Logo Dapp World", "page-learning-tools-documentation": "Belajar dengan dokumentasi", "page-learning-tools-documentation-desc": "Ingin mempelajari lebih lanjut? Buka dokumentasi kami untuk menemukan penjelasan yang Anda butuhkan.", "page-learning-tools-eth-dot-build-description": "Sandbox pendidikan untuk web3, termasuk pemrograman seret dan lepas dan blok penyusun sumber terbuka.", @@ -24,10 +28,12 @@ "page-learning-tools-game-tutorials-desc": "Belajar sambil bermain. Tutorial ini membantu Anda memahami dasar-dasar menggunakan gameplay.", "page-learning-tools-meta-desc": "Peralatan pengodean berbasis web dan pengalaman belajar interaktif untuk membantu Anda bereksperimen dengan pengembangan Ethereum.", "page-learning-tools-meta-title": "Alat pembelajaran pengembang", + "page-learning-tools-atlas-logo-alt": "Logo Atlas", + "page-learning-tools-atlas-description": "Menulis, menguji, dan menerapkan kontrak pintar dalam hitungan menit dengan Atlas IDE.", "page-learning-tools-questbook-description": "Tutorial mandiri untuk belajar tentang Web 3.0 dengan membangunnya", "page-learning-tools-questbook-logo-alt": "Logo Questbook", "page-learning-tools-remix-description": "Mengembangkan, menyebarkan dan mengelola kontrak pintar untuk Ethereum. Ikuti langkah-langkahnya dengan plugin LearnEth.", - "page-learning-tools-remix-description-2": "Remix, Replit, dan ChainIDE bukan hanya sekadar sandbox—pengembang dapat menulis, menyusun kompilasi, dan menyebarkan kontrak pintar mereka dengan menggunakannya.", + "page-learning-tools-remix-description-2": "Remix, Replit, ChainIDE, dan Atlas bukan hanya sekadar kotak pasir—pengembang dapat menulis, menyusun, dan menerapkan kontrak pintar mereka dengan menggunakannya.", "page-learning-tools-replit-description": "Lingkungan pengembangan yang dapat disesuaikan untuk Ethereum menggunakan hot reloading, error checking, dan dukungan first-class testnet.", "page-learning-tools-chainIDE-description": "Mulailah perjalanan Anda ke Web3 dengan menulis kontrak pintar untuk Ethereum dengan ChainIDE. Gunakan templat bawaan untuk mempelajari dan menghemat waktu.", "page-learning-tools-chainIDE-logo-alt": "Logo ChainIDE", @@ -48,5 +54,9 @@ "page-learning-tools-platzi-logo-alt": "Logo Platzi", "page-learning-tools-alchemy-university-description": "Kembangkan karier web3 Anda melalui kursus, proyek, dan kode.", "page-learning-tools-alchemy-university-logo-alt": "Logo Universitas Alchemy", + "page-learning-tools-learnweb3-description": "LearnWeb3 adalah platform gratis dan berkualitas untuk belajar mengembangkan web3 dari nol.", + "page-learning-tools-learnweb3-logo-alt": "Logo LearnWeb3", + "page-learning-tools-cyfrin-updraft-description": "Belajar mengembangkan kontrak pintar untuk semua tingkat keahlian dan audit keamanan.", + "page-learning-tools-cyfrin-updraft-logo-alt": "Logo Cyfrin Updraft", "alt-eth-blocks": "Ilustrasi blok yang diorganisir seperti simbol ETH" -} \ No newline at end of file +} diff --git a/src/intl/id/page-developers-local-environment.json b/src/intl/id/page-developers-local-environment.json index 038c72097a7..42ac021fb78 100644 --- a/src/intl/id/page-developers-local-environment.json +++ b/src/intl/id/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Berikut adalah peralatan dan kerangka kerja yang bisa digunakan untuk membantu membangun aplikasi Ethereum Anda.", "page-local-environment-setup-title": "Siapkan lingkungan pengembangan lokal Anda", "page-local-environment-solidity-template-desc": "Sebuah templat GitHub untuk pengaturan bawaan kontrak pintar Solidity Anda. Sudah termasuk sebuah jaringan lokal Hardhat, Waffle untuk pengujian, Ethers untuk implementasi dompet, dan banyak lagi.", - "page-local-environment-solidity-template-logo-alt": "Logo template Solidity", - "page-local-environment-waffle-desc": "Pengujian lib yang paling canggih untuk kontrak pintar. Gunakan sendiri atau dengan Scaffold-eth atau Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo template Solidity" +} \ No newline at end of file diff --git a/src/intl/id/page-gas.json b/src/intl/id/page-gas.json index 5cb27288dfe..1fc06703075 100644 --- a/src/intl/id/page-gas.json +++ b/src/intl/id/page-gas.json @@ -1,5 +1,5 @@ { - "page-gas-meta-title": "Biaya gas pada Ethereum: Bagaimana cara kerjanya?", + "page-gas-meta-title": "Biaya Ethereum: apa itu gas dan cara menghematnya?", "page-gas-meta-description": "Pelajari tentang gas di Ethereum: bagaimana cara kerjanya dan cara mengurangi biaya gas yang dibayar", "page-gas-hero-title": "Biaya gas", "page-gas-hero-header": "Biaya jaringan", diff --git a/src/intl/id/page-get-eth.json b/src/intl/id/page-get-eth.json index ad15fef59d5..33e56547f6f 100644 --- a/src/intl/id/page-get-eth.json +++ b/src/intl/id/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Dapatkan gambar tokoh ETH", "page-get-eth-keep-it-safe": "Menjaga ETH Anda tetap aman", "page-get-eth-meta-description": "Cara membeli ETH berdasarkan tempat tinggal Anda dan saran tentang bagaimana cara merawatnya.", - "page-get-eth-meta-title": "Cara mendapatkan ETH", + "page-get-eth-meta-title": "Cara membeli Ethereum (ETH)", "page-get-eth-need-wallet": "Anda akan membutuhkan dompet untuk menggunakan DEX.", "page-get-eth-new-to-eth": "Baru mengenal ETH? Berikut ini ringkasan untuk membantu Anda memulai.", "page-get-eth-other-cryptos": "Beli dengan koin kripto yang lain", diff --git a/src/intl/id/page-index.json b/src/intl/id/page-index.json index 8054d47b401..95f94f00b0e 100644 --- a/src/intl/id/page-index.json +++ b/src/intl/id/page-index.json @@ -65,7 +65,7 @@ "page-index-learn-tag": "Belajar", "page-index-learn-header": "Memahami Ethereum", "page-index-meta-description": "Ethereum merupakan suatu platform global terdesentralisasi untuk uang dan jenis aplikasi baru. Di Ethereum, Anda dapat menulis kode yang mengontrol uang, dan membangun aplikasi yang dapat diakses di mana saja di dunia.", - "page-index-meta-title": "Paduan lengkap tentang Ethereum", + "page-index-meta-title": "Ethereum.org: Panduan lengkap seputar Ethereum", "page-index-network-stats-total-eth-staked": "Nilai yang melindungi Ethereum", "page-index-network-stats-tx-cost-description": "Biaya transaksi rata-rata", "page-index-network-stats-tx-day-description": "Transaksi dalam 24 jam terakhir", diff --git a/src/intl/id/page-layer-2.json b/src/intl/id/page-layer-2.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/src/intl/id/page-layer-2.json @@ -0,0 +1 @@ +{} diff --git a/src/intl/id/page-learn.json b/src/intl/id/page-learn.json index 4208c15443f..fbced3d8900 100644 --- a/src/intl/id/page-learn.json +++ b/src/intl/id/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "Pelajari tentang Ethereum", "hero-subtitle": "Panduan edukasi Anda ke dunia Ethereum. Pelajari cara kerja Ethereum dan cara terhubung dengannya. Halaman ini berisi artikel, panduan, dan sumber daya teknis dan non-teknis.", "hero-button-lets-get-started": "Mari kita mulai", + "page-learn-meta-title": "Ethereum: Panduan Pembelajaran yang Komprehensif", "what-is-crypto-1": "Anda mungkin pernah mendengar tentang mata uang kripto, rantai blok, dan Bitcoin. Tautan di bawah ini akan membantu Anda mempelajari apa itu mata uang kripto dan bagaimana kaitannya dengan Ethereum.", "what-is-crypto-2": "Mata uang kripto, seperti bitcoin, memungkinkan siapa pun dapat mentransfer uang secara global. Ethereum juga demikian, tetapi juga dapat menjalankan kode yang memungkinkan orang dapat membuat aplikasi dan organisasi. Ethereum sangat tangguh dan fleksibel: program komputer apa pun dapat berjalan di Ethereum. Pelajari lebih lanjut dan cari tahu cara memulainya:", "what-is-ethereum-card-title": "Apa yang Dimaksud dengan Ethereum?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Temukan dompet", "find-a-wallet-card-description": "Jelajahi dompet berdasarkan fitur-fitur yang penting bagi Anda.", "find-a-wallet-button": "Daftar dompet", - "crypto-security-basics-card-title": "Dasar-dasar keamanan", - "crypto-security-basics-card-description": "Pelajari cara mengidentifikasi penipuan dan cara menghindari trik yang paling umum.", - "crypto-security-basics-card-button": "Tetap aman", + "ethereum-networks-card-title": "Jaringan Ethereum", + "ethereum-networks-card-description": "Hemat biaya dengan ekstensi Ethereum yang lebih murah dan cepat.", + "ethereum-networks-card-button": "Pilih jaringan", "things-to-consider-banner-title": "Hal-hal yang perlu dipertimbangkan saat menggunakan Ethereum", "things-to-consider-banner-1": "Setiap transaksi Ethereum membutuhkan biaya dalam bentuk ETH, bahkan jika Anda perlu memindahkan token yang berbeda yang dibangun di atas Ethereum seperti stablecoin USDC atau DAI.", "things-to-consider-banner-2": "Biaya bisa tinggi tergantung pada jumlah orang yang mencoba menggunakan Ethereum, jadi kami sarankan untuk menggunakan", @@ -85,7 +86,7 @@ "ethereum-whitepaper-card-button": "Baca laporan", "more-on-ethereum-protocol-title": "Lebih lanjut tentang protokol Ethereum", "more-on-ethereum-protocol-ethereum-for-developers": "Ethereum untuk pengembang", - "more-on-ethereum-protocol-consensus": "Mekanisme konsensus berbasis bukti taruhan Ethereum'", + "more-on-ethereum-protocol-consensus": "Mekanisme konsensus berbasis bukti taruhan Ethereum", "more-on-ethereum-protocol-evm": "Komputer tertanam Ethereum (EVM)", "more-on-ethereum-protocol-nodes-and-clients": "Simpul dan klien Ethereum", "ethereum-community-description": "Keberhasilan Ethereum berkat komunitasnya yang sangat berdedikasi. Ribuan orang yang menginspirasi dan bersemangat membantu mendorong visi Ethereum ke depan, sekaligus memberikan keamanan pada jaringan melalui penaruhan dan tata kelola. Datang dan bergabunglah dengan kami!", diff --git a/src/intl/id/page-run-a-node.json b/src/intl/id/page-run-a-node.json index 9e225213321..34bac95cecf 100644 --- a/src/intl/id/page-run-a-node.json +++ b/src/intl/id/page-run-a-node.json @@ -60,7 +60,7 @@ "page-run-a-node-getting-started-software-section-1-link": "Jalankan node Ethereum", "page-run-a-node-getting-started-software-section-2": "Sekarang kami memiliki DAppNode, yang merupakan perangkat lunak sumber terbuka gratis yang memberikan para pengguna pengalaman seperti aplikasi saat mengelola node mereka.", "page-run-a-node-getting-started-software-section-3a": "Hanya dalam beberapa ketukan, Anda dapat membuat node siap beroperasi.", - "page-run-a-node-getting-started-software-section-3b": "DAppNode memudahkan pengguna untuk menjalankan node penuh, serta dapp dan jaringan P2P lainnya, tanpa perlu menyentuh barisan perintah. Ini memudahkan semua orang untuk berpartisipasi dan membuat jaringan yang lebih terdesentralisasi.", + "page-run-a-node-getting-started-software-section-3b": "DAppNode memudahkan pengguna untuk menjalankan simpul penuh, serta dapps dan jaringan P2P lainnya, tanpa perlu menggunakan command-line. Ini mempermudah semua orang untuk berpartisipasi dan membantu menciptakan jaringan yang lebih terdesentralisasi.", "page-run-a-node-getting-started-software-title": "Bagian 2: Perangkat Lunak", "page-run-a-node-glyph-alt-terminal": "Mesin terbang terminal", "page-run-a-node-glyph-alt-phone": "Mesin terbang ketukan telepon", @@ -78,7 +78,6 @@ "page-run-a-node-hero-header": "Ambil kendali penuh.
                                        Jalankan node Anda sendiri.", "page-run-a-node-hero-subtitle": "Berdaulat penuh sekaligus membantu mengamankan jaringan. Menjadi Ethereum.", "page-run-a-node-hero-cta-1": "Pelajari selengkapnya", - "page-run-a-node-hero-cta-2": "Mari kita gali lebih dalam!", "page-run-a-node-install-manually-title": "Instal secara manual", "page-run-a-node-install-manually-1": "Jika Anda pengguna yang lebih mementingkan teknis dan telah memutuskan untuk membuat perangkat Anda sendiri, DAppNode dapat diunduh dari komputer mana pun dan diinstal pada SSD baru melalui drive USB.", "page-run-a-node-meta-description": "Pendahuluan tentang apa, mengapa, dan bagaimana menjalankan node Ethereum.", @@ -93,8 +92,6 @@ "page-run-a-node-privacy-3": "Selain itu, jika suatu node jahat mendistribusikan transaksi yang tidak valid, node Anda hanya akan mengabaikannya. Setiap transaksi diverifikasi secara lokal pada mesin Anda sendiri, sehingga Anda tidak perlu mempercayai siapa pun.", "page-run-a-node-rasp-pi-title": "Sebuah catatan tentang Raspberry Pi (prosesor ARM)", "page-run-a-node-rasp-pi-description": "Raspberry Pi adalah komputer ringan dan terjangkau, tetapi memiliki keterbatasan yang mungkin berdampak terhadap kinerja node Anda. Sekalipun saat ini tidak direkomendasikan untuk penaruhan, komputer ini dapat menjadi pilihan yang sangat baik dan murah untuk menjalankan node untuk penggunaan pribadi, dengan persyaratan RAM setidaknya 4 - 8 GB.", - "page-run-a-node-rasp-pi-note-1-link": "DAppNode di ARM", - "page-run-a-node-rasp-pi-note-1-description": "Lihat petunjuk ini jika Anda berencana menjalankan DAppNode pada Raspberry Pi", "page-run-a-node-rasp-pi-note-2-link": "Ethereum di dokumentasi ARM", "page-run-a-node-rasp-pi-note-2-description": "Pelajari cara menyiapkan node melalui baris perintah di Raspberry Pi", "page-run-a-node-rasp-pi-note-3-link": "Jalankan node dengan Raspberry Pi", @@ -114,6 +111,7 @@ "page-run-a-node-sovereignty-1": "Dompet Ethereum memungkinkan Anda melakukan pengawasan dan kontrol penuh terhadap aset digital Anda dengan memegang kunci privat alamat Anda, tetapi kunci-kunci tersebut tidak akan memberi tahu status blockchain saat ini, misalnya saldo dompet Anda.", "page-run-a-node-sovereignty-2": "Secara default, dompet Ethereum biasanya menggunakan node pihak ke-3, seperti Infura atau Alchemy, saat melihat saldo Anda. Menjalankan node Anda sendiri memungkinkan Anda memiliki salinan blockchain Ethereum Anda.", "page-run-a-node-title": "Menjalankan sebuah node", + "page-run-a-node-meta-title": "Cara Menjalankan Simpul Ethereum", "page-run-a-node-voice-your-choice-title": "Suarakan pilihan Anda", "page-run-a-node-voice-your-choice-preview": "Jangan menyerahkan kendali saat terjadi fork.", "page-run-a-node-voice-your-choice-1": "Saat terjadi fork pada rantai, ketika dua rantai hadir dengan dua set aturan berbeda, dengan menjalankan node Anda sendiri akan memastikan kemampuan Anda untuk memilih set aturan mana yang Anda dukung. Terserah pada Anda untuk meningkatkan ke aturan baru dan mendukung perubahan yang ditawarkan atau tidak.", @@ -126,8 +124,8 @@ "page-run-a-node-what-3-subtitle": "Saat daring.", "page-run-a-node-what-3-text": "Menjalankan node Ethereum mungkin terdengar rumit pada awalnya, tetapi ini hanyalah tindakan untuk menjalankan perangkat lunak klien pada komputer secara berkelanjutan selagi terhubung ke internet. Saat luring, node Anda akan tidak aktif hingga kembali daring dan mengejar perubahan terbaru.", "page-run-a-node-who-title": "Siapa yang sebaiknya menjalankan node?", - "page-run-a-node-who-preview": "Semuanya! Node tidak hanya untuk validator bukti taruhan. Siapapun dapat menjalankan simpul - Anda bahkan tidak memerlukan ETH.", - "page-run-a-node-who-copy-1": "Anda tidak perlu melakukan penaruhan ETH untuk menjalankan sebuah simpul. Faktanya, setiap simpul lain di Ethereum-lah yang meminta pertanggungjawaban validator.", + "page-run-a-node-who-preview": "Semuanya! Simpul bukah hanya untuk validator bukti taruhan. Siapapun dapat menjalankan simpul—Anda bahkan tidak memerlukan ETH.", + "page-run-a-node-who-copy-1": "Anda tidak perlu melakukan taruhan ETH untuk menjalankan simpul. Faktanya, simpul-simpul lain di Ethereum yang memastikan para validator tetap bertanggung jawab.", "page-run-a-node-who-copy-2": "Anda mungkin tidak mendapatkan imbalan finansial seperti yang didapatkan oleh validator, tetapi ada banyak manfaat lain dari menjalankan sebuah simpul yang dapat dipertimbangkan oleh setiap pengguna Ethereum, termasuk privasi, keamanan, berkurangnya ketergantungan pada server pihak ketiga, resistensi terhadap sensor, serta kesehatan dan desentralisasi jaringan yang lebih baik.", "page-run-a-node-who-copy-3": "Memiliki node Anda sendiri berarti Anda tidak perlu mempercayai informasi mengenai status jaringan yang disediakan pihak ketiga.", "page-run-a-node-who-copy-bold": "Jangan percaya. Verifikasikan.", diff --git a/src/intl/id/page-stablecoins.json b/src/intl/id/page-stablecoins.json index a60fd714e52..a0aea5dabef 100644 --- a/src/intl/id/page-stablecoins.json +++ b/src/intl/id/page-stablecoins.json @@ -131,6 +131,7 @@ "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Logam mulia", "page-stablecoins-table-error": "Tidak dapat memuat stablecoin. Coba muat ulang halaman.", "page-stablecoins-title": "Stablecoin", + "page-stablecoins-meta-title": "Penjelasan stablecoin: Apa kegunaannya?", "page-stablecoins-top-coins": "Stablecoin teratas berdasarkan kapitalisasi pasar", "page-stablecoins-top-coins-intro": "Kapitalisasi pasar adalah", "page-stablecoins-top-coins-intro-code": "jumlah total token yang ada dikalikan dengan nilai per token. Daftar ini dinamis dan proyek yang tercantum di sini tidak wajib didukung oleh tim ethereum.org.", diff --git a/src/intl/id/page-staking.json b/src/intl/id/page-staking.json index e7100e45b4d..2a4756d9c82 100644 --- a/src/intl/id/page-staking.json +++ b/src/intl/id/page-staking.json @@ -232,7 +232,7 @@ "page-staking-join-community": "Bergabung dengan komunitas penaruh", "page-staking-join-community-desc": "EthStaker adalah komunitas bagi semua orang untuk berdiskusi dan belajar tentang penaruhan di Ethereum. Bergabunglah dengan puluhan ribu anggota dari seluruh dunia untuk mendapatkan saran, dukungan, dan berbicara segala hal tentang penaruhan.", "page-staking-meta-description": "Gambaran umum tentang penaruhan Ethereum: risiko, imbalan, persyaratan, dan tempat melakukannya.", - "page-staking-meta-title": "Penaruhan Ethereum", + "page-staking-meta-title": "Penaruhan Ethereum: Bagaimana cara kerjanya?", "page-staking-withdrawals-important-notices": "Pemberitahuan Penting", "page-staking-withdrawals-important-notices-desc": "Penarikan masih belum tersedia. Silakan baca FAQ Eth2 Merge dan pasca-merge untuk informasi lebih lanjut.", "page-upgrades-merge-btn": "Selengkapnya tentang penggabungan", diff --git a/src/intl/id/page-wallets-find-wallet.json b/src/intl/id/page-wallets-find-wallet.json index fd728b710dd..87d13956cbc 100644 --- a/src/intl/id/page-wallets-find-wallet.json +++ b/src/intl/id/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Dompet menyimpan dan bertransaksi dengan ETH Anda. Anda dapat memilih dari berbagai macam produk yang sesuai dengan kebutuhan Anda.", "page-find-wallet-last-updated": "Terakhir diperbarui", "page-find-wallet-meta-description": "Cari dan bandingkan dompet Ethereum berdasarkan fitur yang Anda inginkan.", - "page-find-wallet-meta-title": "Temukan Dompet Ethereum", + "page-find-wallet-meta-title": "Daftar Dompet Ethereum | ethereum.org", "page-find-wallet-title": "Pilih dompet Anda", "page-find-wallet-try-removing": "Cobalah menghapus satu atau dua fitur", "page-stake-eth": "Pertaruhkan ETH", diff --git a/src/intl/id/page-wallets.json b/src/intl/id/page-wallets.json index d67dfd1a319..4a5fc5ab1fd 100644 --- a/src/intl/id/page-wallets.json +++ b/src/intl/id/page-wallets.json @@ -28,7 +28,7 @@ "page-wallets-manage-funds": "Aplikasi untuk mengelola dana Anda", "page-wallets-manage-funds-desc": "Dompet menunjukkan saldo Anda, riwayat transaksi, dan memberi Anda cara untuk mengirim/menerima dana. Beberapa dompet mungkin menawarkan lebih banyak.", "page-wallets-meta-description": "Apa yang perlu Anda ketahui untuk menggunakan dompet Ethereum.", - "page-wallets-meta-title": "Dompet Ethereum", + "page-wallets-meta-title": "Dompet Ethereum: Beli, Simpan, dan Kirim kripto", "page-wallets-mobile": "Aplikasi seluler yang membuat dana anda dapat diakses dimanapun", "page-wallets-more-on-dapps-btn": "Selengkapnya tentang dapp", "page-wallets-most-wallets": "Kebanyakan produk dompet akan memungkinkan Anda membuat akun Ethereum. Jadi Anda tidak memerlukannya sebelum Anda mengunduh dompet.", diff --git a/src/intl/id/page-what-is-ethereum.json b/src/intl/id/page-what-is-ethereum.json index 68e2259285f..aded269442e 100644 --- a/src/intl/id/page-what-is-ethereum.json +++ b/src/intl/id/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Alasan aset seperti bitcoin dan ether disebut \"mata uang kripto\" adalah karena keamanan data dan aset Anda dijamin oleh kriptografi, bukan dengan memercayai lembaga atau perusahaan untuk bertindak jujur.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum memiliki mata uang kripto asli, ether (ETH), yang digunakan untuk membayar aktivitas tertentu di jaringan. Ether dapat ditransfer ke pengguna lain atau ditukar dengan token lain di Ethereum. Ether istimewa karena digunakan untuk membayar komputasi yang diperlukan untuk membangun dan menjalankan aplikasi dan organisasi di Ethereum.", "page-what-is-ethereum-summary-title": "Ringkasan", - "page-what-is-ethereum-summary-desc-1": "Ethereum adalah jaringan komputer di seluruh dunia yang mengikuti seperangkat aturan yang disebut protokol Ethereum. Jaringan Ethereum bertindak sebagai landasan bagi komunitas, aplikasi, organisasi, dan aset digital yang dapat dibangun dan digunakan oleh siapa saja.", - "page-what-is-ethereum-summary-desc-2": "Anda dapat membuat akun Ethereum dari mana saja, kapan saja, dan menjelajahi dunia aplikasi atau membangun aplikasi Anda sendiri. Inovasi intinya adalah Anda bisa melakukan semua ini tanpa harus mempercayai otoritas pusat yang dapat mengubah aturan atau membatasi akses Anda.", - "page-what-is-ethereum-summary-desc-3": "Lanjutkan membaca untuk mempelajari lebih lanjut…", + "page-what-is-ethereum-summary-desc-1": "Ethereum adalah platform utama untuk ribuan aplikasi dan rantai blok yang diberdayakan oleh protokol Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Ekosistem energik ini menggerakkan inovasi dan berbagai jenis layanan dan aplikasi desentralisasi.", + "page-what-is-ethereum-summary-bullet-1": "Akun Ethereum gratis dan global", + "page-what-is-ethereum-summary-bullet-2": "Privat semu, tidak perlu informasi pribadi", + "page-what-is-ethereum-summary-bullet-3": "Tanpa batasan siapa pun bisa bergabung", + "page-what-is-ethereum-summary-bullet-4": "Tidak ada perusahaan yang memiliki Ethereum atau memutuskan masa depannya", "page-what-is-ethereum-btc-eth-diff-title": "Apa perbedaan antara Ethereum dan Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Diluncurkan pada 2015, Ethereum dibangun berdasarkan inovasi Bitcoin, dengan beberapa perbedaan besar.", "page-what-is-ethereum-btc-eth-diff-2": "Keduanya memungkinkan Anda menggunakan uang digital tanpa penyedia pembayaran atau bank. Namun, Ethereum dapat diprogram, jadi Anda juga bisa membangun dan menyebarkan aplikasi terdesentralisasi di jaringannya.", diff --git a/src/intl/id/template-usecase.json b/src/intl/id/template-usecase.json index 62517d940cf..89c34607a6a 100644 --- a/src/intl/id/template-usecase.json +++ b/src/intl/id/template-usecase.json @@ -2,6 +2,7 @@ "template-usecase-dropdown-defi": "Keuangan terdesentralisasi (DeFi)", "template-usecase-dropdown-nft": "Token yang tidak dapat dipertukarkan (NFT)", "template-usecase-dropdown-dao": "Organisasi otonom terdesentralisasi (DAO)", + "template-usecase-dropdown-payments": "Pembayaran Ethereum", "template-usecase-dropdown-social-networks": "Jaringan sosial terdesentralisasi", "template-usecase-dropdown-identity": "Identitas terdesentralisasi", "template-usecase-dropdown-desci": "Ilmu Pengetahuan Terdesentralisasi (DeSci)", @@ -10,4 +11,4 @@ "template-usecase-banner": "Penggunaan Ethereum selalu berkembang dan berubah. Tambahkan info apa pun yang Anda rasa akan membuat berbagai hal menjadi lebih jelas atau lebih terkini.", "template-usecase-edit-link": "Edit halaman", "template-usecase-dropdown-aria": "Menu dropdown kasus penggunaan" -} +} \ No newline at end of file diff --git a/src/intl/ig/page-developers-local-environment.json b/src/intl/ig/page-developers-local-environment.json index 0fedbc86021..19f904f26c4 100644 --- a/src/intl/ig/page-developers-local-environment.json +++ b/src/intl/ig/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Nke a bụ ngwaọrụ na usoro ị nwere ike iji nyere gị aka iwulite ngwa Ethereum gị.", "page-local-environment-setup-title": "Hazie gburugburu mpaghara obodo gị", "page-local-environment-solidity-template-desc": "Ihe nlere GitHub maka ntọlitela mbụ maka nkwekọrịta smart Solidity gị. Gụnyere netwọk mpaghara Hardhat, Waffle maka ule, Ethers maka mmejuputa obere akpa, na ndị ọzọ.", - "page-local-environment-solidity-template-logo-alt": "Akara ngosi Solidity template", - "page-local-environment-waffle-desc": "Ule lib kacha elu maka smart contracts. Jiri naanị ya ma ọ bụ Scaffold-eth ma ọ bụ Hardhat.", - "page-local-environment-waffle-logo-alt": "Akara ngosi Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Akara ngosi Solidity template" +} \ No newline at end of file diff --git a/src/intl/it/common.json b/src/intl/it/common.json index 33d333e58a9..bc3db8773b2 100644 --- a/src/intl/it/common.json +++ b/src/intl/it/common.json @@ -250,6 +250,8 @@ "nav-emerging-description": "Conoscere altri casi d'uso più recenti di Ethereum", "nav-emerging-label": "Casi d'uso emergenti", "nav-ethereum-org-description": "Questo sito web è alimentato dalla community: unisciti e contribuisci anche tu", + "nav-ethereum-networks": "Reti Ethereum", + "nav-ethereum-networks-description": "Transazioni più economiche e rapide per Ethereum", "nav-ethereum-wallets-description": "Un'app per interagire con il proprio conto di Ethereum", "nav-events-description": "Decentralizzazione e libertà di partecipazione per chiunque", "nav-events-irl-description": "Ogni mese ci sono importanti eventi Ethereum di persona e online", @@ -275,16 +277,23 @@ "nav-guides-label": "Guide esplicative", "nav-history-description": "Un viaggio nel tempo per illustrare tutte le principali diramazioni e gli aggiornamenti", "nav-history-label": "La storia tecnica di Ethereum", - "nav-layer-2-description": "Transazioni più economiche e veloci per Ethereum", "nav-learn-by-coding-description": "Strumenti che ti aiutano a sperimentare con Ethereum", "nav-local-env-description": "Scegliere e impostare il proprio stack di sviluppo Ethereum", "nav-mainnet-description": "Le applicazioni aziendali della blockchain possono essere costruite sulla Rete pubblica di Ethereum", + "nav-networks-home-description": "Transazioni più economiche e rapide per Ethereum", + "nav-networks-introduction-label": "Introduzione", + "nav-networks-introduction-description": "Ethereum si è espansa divenendo una rete di reti", + "nav-networks-explore-networks-label": "Esplora le reti", + "nav-networks-explore-networks-description": "Scegli quale rete utilizzare", + "nav-networks-learn-label": "Cosa sono le reti di livello 2?", + "nav-networks-learn-description": "Scopri perché sono necessarie", "nav-nft-description": "Un modo per rappresentare qualsiasi cosa unica come un asset basato su Ethereum", "nav-open-research-description": "Uno dei principali punti di forza di Ethereum è la sua attiva comunità di ricerca", "nav-open-research-label": "Ricerca aperta", "nav-overview-description": "Tutto ciò che riguarda la formazione su Ethereum", "nav-overview-label": "Panoramica", "nav-participate-overview-description": "Panoramica sulle modalità di partecipazione", + "nav-payments-description": "I pagamenti tramite Ethereum stanno cambiando il modo in cui inviamo e riceviamo denaro", "nav-primary": "Principale", "nav-quizzes-description": "Scopri quanto ne sai su Ethereum e le criptovalute", "nav-quizzes-label": "Metti alla prova le tue conoscenze", @@ -356,6 +365,7 @@ "page-last-updated": "Ultimo aggiornamento pagina", "participate": "Partecipa", "participate-menu": "Menu partecipa", + "payments-page": "Pagamenti", "pbs": "Separazione proponente-sviluppatore", "pools": "Staking in pool", "privacy-policy": "Politica sulla privacy", diff --git a/src/intl/it/glossary-tooltip.json b/src/intl/it/glossary-tooltip.json index 9e4149089ca..3a7f6565a3b 100644 --- a/src/intl/it/glossary-tooltip.json +++ b/src/intl/it/glossary-tooltip.json @@ -101,8 +101,8 @@ "node-definition": "Un client software che partecipa alla rete. Maggiori informazioni sui nodi e i client.", "ommer-term": "Blocco ommer (zio)", "ommer-definition": "Quando un miner di proof-of-work trova un blocco valido, un altro miner potrebbe aver pubblicato un blocco concorrente che viene aggiunto prima alla testa della catena. Questo blocco valido, ma obsoleto, può essere incluso in blocchi più recenti come ommer e ricevere una ricompensa parziale del blocco. Il termine \"ommer\" è il termine preferito, neutro dal punto di vista di genere, per lo stesso livello di un blocco genitore, ma talvolta è anche indicato come \"zio\". Questo era comune per Ethereum quando era una rete di proof-of-work. Ora che Ethereum utilizza il proof-of-stake, viene selezionato soltanto un propositore del blocco per slot.", - "onchain-term": "Sulla catena", - "onchain-definition": "Si riferisce alle azioni o transazioni che si verificano sulla blockchain e sono disponibili pubblicamente.", + "on-chain-term": "Sulla catena", + "on-chain-definition": "Si riferisce alle azioni o transazioni che si verificano sulla blockchain e sono disponibili pubblicamente.", "optimistic-rollup-term": "Optimistic rollup", "optimistic-rollup-definition": "Un rollup ottimistico è una soluzione del Livello 2 che velocizza le transazioni su Ethereum, supponendo che siano valide di default se non contestate. Maggiori informazioni sui rollup ottimistici.", "peer-to-peer-network-term": "Rete peer-to-peer", diff --git a/src/intl/it/glossary.json b/src/intl/it/glossary.json index 138a5ccc6eb..adae58e61cc 100644 --- a/src/intl/it/glossary.json +++ b/src/intl/it/glossary.json @@ -136,7 +136,7 @@ "erc-20-term": "ERC-20", "erc-20-definition": "ERC-20 è lo standard utilizzato per la creazione di gran parte dei token sulla rete di Ethereum.
                                        Esempi popolari sono le stablecoin, come DAI e USDC, o i token di scambio come UNI da Uniswap. È affine a qualsiasi forma di denaro alternativo presente nei sistemi tradizionali…, ad esempio, i punti di ricompensa, i sistemi di credito o persino le azioni, ecc.", "erc-721-term": "ERC-721", - "erc-721-definition": "I NFT (token non fungibili) sono creati utilizzando una serie standard di regole, nota come ERC-721.
                                        I token NFT possono rappresentare la proprietà di qualsiasi cosa unica, come arte digitale o articoli da collezione, con ogni token che ha caratteristiche speciali e un valore propri. Ogni NFT è unico e facilmente distinguibile da qualsiasi altro NFT.", + "erc-721-definition": "Gli NFT (non fungible token, token non fungibili) possono essere creati utilizzando un insieme standard di regole chiamato ERC-721.
                                        I token NFT possono rappresentare la proprietà di qualsiasi oggetto unico, come opere d'arte digitali o articoli da collezione; ciascun token possiede un valore e caratteristiche propri e speciali. Ogni NFT è univoco e facilmente distinguibile da qualsiasi altro NFT.", "execution-client-term": "Client di esecuzione", "execution-client-definition": "I client di esecuzione (precedentemente noti come \"client Eth1\"), come Besu, Erigon, Go-Ethereum (Geth), Nethermind, sono incaricati dell'elaborazione e trasmissione delle transazioni, e della gestione dello stato di Ethereum. Eseguono i calcoli per ogni transazione utilizzando la Macchina Virtuale di Ethereum per assicurarsi che le regole del protocollo siano seguite.", "execution-layer-term": "Livello di esecuzione", @@ -257,12 +257,12 @@ "node-definition": "Un client software che partecipa alla rete. Maggiori informazioni sui nodi e i client.", "nonce-term": "Nonce", "nonce-definition": "In crittografia, un valore utilizzabile una sola volta. Il nonce di un conto è un contatore di transazioni in ogni conto, utilizzato per impedire gli attacchi di riproduzione.", - "offchain-term": "Esterno alla catena", - "offchain-definition": "Esterno alla catena si riferisce a qualsiasi transazione o dato che esiste al di fuori della blockchain. Poiché effettuare il commit di ogni transazione su catena può essere costoso e inefficiente, strumenti di terze parti come gli oracoli che gestiscono i dati sui prezzi, o le soluzioni di livello 2 che eseguono un volume maggiore di transazioni, gestiscono molto del lavoro di elaborazione all'esterno della catena, e invieranno le informazioni sulla catena a intervalli meno frequenti.", + "off-chain-term": "Esterno alla catena", + "off-chain-definition": "Esterno alla catena si riferisce a qualsiasi transazione o dato che esiste al di fuori della blockchain. Poiché effettuare il commit di ogni transazione su catena può essere costoso e inefficiente, strumenti di terze parti come gli oracoli che gestiscono i dati sui prezzi, o le soluzioni di livello 2 che eseguono un volume maggiore di transazioni, gestiscono molto del lavoro di elaborazione all'esterno della catena, e invieranno le informazioni sulla catena a intervalli meno frequenti.", "ommer-term": "Blocco ommer (zio)", "ommer-definition": "Quando un miner di proof-of-work trova un blocco valido, un altro miner potrebbe aver pubblicato un blocco concorrente che viene aggiunto prima alla testa della catena. Questo blocco valido, ma obsoleto, può essere incluso in blocchi più recenti come ommer e ricevere una ricompensa parziale del blocco. Il termine \"ommer\" è il termine preferito, neutro dal punto di vista di genere, per lo stesso livello di un blocco genitore, ma talvolta è anche indicato come \"zio\". Questo era comune per Ethereum quando era una rete di proof-of-work. Ora che Ethereum utilizza il proof-of-stake, viene selezionato soltanto un propositore del blocco per slot.", - "onchain-term": "Sulla catena", - "onchain-definition": "Si riferisce alle azioni o transazioni che si verificano sulla blockchain e sono disponibili pubblicamente.

                                        Immaginalo come scrivere qualcosa su un grande taccuino condiviso che tutti possono leggere e controllare, assicurandosi che qualsiasi cosa sia stata scritta (come inviare moneta digitale o stipulare un contratto) sia permanente e non possa essere modificata o cancellata.", + "on-chain-term": "Sulla catena", + "on-chain-definition": "Si riferisce alle azioni o transazioni che si verificano sulla blockchain e sono disponibili pubblicamente.

                                        Immaginalo come scrivere qualcosa su un grande taccuino condiviso che tutti possono leggere e controllare, assicurandosi che qualsiasi cosa sia stata scritta (come inviare moneta digitale o stipulare un contratto) sia permanente e non possa essere modificata o cancellata.", "optimistic-rollup-term": "Optimistic rollup", "optimistic-rollup-definition": "Un rollup ottimistico è una soluzione del Livello 2 che velocizza le transazioni su Ethereum, supponendo che siano valide di default se non contestate. Maggiori informazioni sui rollup ottimistici.", "oracle-term": "Oracolo", diff --git a/src/intl/it/learn-quizzes.json b/src/intl/it/learn-quizzes.json index 65d113a3d30..b4878da3672 100644 --- a/src/intl/it/learn-quizzes.json +++ b/src/intl/it/learn-quizzes.json @@ -58,10 +58,10 @@ "what-is-ethereum-3-d-explanation": "Chiunque esegua un nodo è una parte fondamentale dell'infrastruttura di Ethereum. Se non lo hai già fatto, valuta di eseguirne uno.", "what-is-ethereum-4-prompt": "Dal lancio di Ethereum, quante volte la rete è stata offline?", "what-is-ethereum-4-a-label": "Mai", + "what-is-ethereum-4-a-explanation": "Ethereum non è mai andata completamente offline (interrompendo la produzione dei blocchi) dal suo lancio.", "what-is-ethereum-4-b-label": "Una volta", "what-is-ethereum-4-c-label": "Quattro volte", "what-is-ethereum-4-d-label": "Più di dieci volte", - "what-is-ethereum-4-explanation": "Ethereum non è mai andata completamente offline (interrompendo la produzione dei blocchi) dal suo lancio.", "what-is-ethereum-5-prompt": "Ethereum consuma più elettricità di:", "what-is-ethereum-5-a-label": "Estrazione dell'oro", "what-is-ethereum-5-a-explanation": "L'estrazione di oro consuma circa 131 terawatt/ora l'anno. Ethereum consuma circa 0,0026 terawatt/ora l'anno.", diff --git a/src/intl/it/page-contributing-translation-program-acknowledgements.json b/src/intl/it/page-contributing-translation-program-acknowledgements.json index 2524ce0c828..098457eb741 100644 --- a/src/intl/it/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/it/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "Parole totali", "page-contributing-translation-program-acknowledgements-oats-title": "OAT", "page-contributing-translation-program-acknowledgements-1": "I collaboratori al Programma di Traduzione sono idonei per differenti OAT (token di traguardo su catena), token non fungibili che dimostrano la loro partecipazione al Programma di Traduzione di ethereum.org.", - "page-contributing-translation-program-acknowledgements-2": "Disponiamo di svariati OAT disponibili per i traduttori, a seconda della loro attività", + "page-contributing-translation-program-acknowledgements-2": "Offriamo svariati OAT per i traduttori a seconda della loro attività.", "page-contributing-translation-program-acknowledgements-3": "Se hai contribuito allo sforzo di traduzione su Crowdin, un OAT ti sta aspettando!", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Come reclamare", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Unisciti al nostro", diff --git a/src/intl/it/page-dapps.json b/src/intl/it/page-dapps.json index 1dcf5a24cbd..da9ada49d97 100644 --- a/src/intl/it/page-dapps.json +++ b/src/intl/it/page-dapps.json @@ -78,6 +78,7 @@ "page-dapps-dapp-description-cryptovoxels": "Crea gallerie d'arte e negozi e acquista terreni: un mondo virtuale di Ethereum.", "page-dapps-dapp-description-cyberconnect": "Protocollo di grafico sociale decentralizzato che aiuta le dApp ad avviare gli effetti della rete e a creare esperienze social personalizzate", "page-dapps-dapp-description-dark-forest": "Conquista pianeti in un universo infinito, generato proceduralmente e con specifiche crittografiche.", + "page-dapps-dapp-description-crack-and-stack": "Entra nelle miniere con altri giocatori, raccogli diamanti di ETH e prova a fuggire con il tuo bottino.", "page-dapps-dapp-description-decentraland": "Colleziona e scambia terreni virtuali in un mondo virtuale, tutto da esplorare.", "page-dapps-dapp-description-ens": "Nomi intuitivi per gli utenti, per indirizzi di Ethereum e siti decentralizzati.", "page-dapps-dapp-description-foundation": "Investi in edizioni uniche di opere d'arte digitali, e scambia articoli con altri acquirenti.", @@ -127,6 +128,7 @@ "page-dapps-docklink-dapps": "Introduzione alle dApp", "page-dapps-docklink-smart-contracts": "Contratti intelligenti", "page-dapps-dark-forest-logo-alt": "Logo di Dark Forest", + "page-dapps-crack-and-stack-logo-alt": "Logo di Crack & Stack", "page-dapps-decentraland-logo-alt": "Logo di Decentraland", "page-dapps-index-coop-logo-alt": "Logo di Index Coop", "page-dapps-nexus-mutual-logo-alt": "Logo di Nexus Mutual", diff --git a/src/intl/it/page-developers-index.json b/src/intl/it/page-developers-index.json index 0c76e02dbbc..d458dbbb48c 100644 --- a/src/intl/it/page-developers-index.json +++ b/src/intl/it/page-developers-index.json @@ -1,5 +1,5 @@ { - "page-developer-meta-title": "Risorse per Sviluppatori di Ethereum", + "page-developer-meta-title": "Risorse per sviluppatori di Ethereum", "page-developers-about": "Informazioni su queste risorse per sviluppatori", "page-developers-about-desc": "ethereum.org è qui per aiutarti a sviluppare con Ethereum con la documentazione sui concetti fondamentali nonché sullo stack di sviluppo. In più, esistono dei tutorial per muovere i primi passi.", "page-developers-about-desc-2": "Sull'onda della Rete di Sviluppatori di Mozilla, abbiamo pensato che Ethereum necessitasse di un luogo per ospitare utili contenuti e risorse per sviluppatori. Come i nostri amici a Mozilla, anche qui tutto è open source e disponibile per esser esteso e migliorato.", diff --git a/src/intl/it/page-developers-local-environment.json b/src/intl/it/page-developers-local-environment.json index dfe35408ba3..213fcfa55c6 100644 --- a/src/intl/it/page-developers-local-environment.json +++ b/src/intl/it/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Ecco gli strumenti e i framework che puoi utilizzare per creare un'applicazione Ethereum.", "page-local-environment-setup-title": "Configura il tuo ambiente di sviluppo locale", "page-local-environment-solidity-template-desc": "Un modello di GitHub per una configurazione predefinita per i tuoi contratti intelligenti in Solidity. Include una rete locale Hardhat, Waffle per i test, Ether per l'implementazione del portafoglio, e molto altro.", - "page-local-environment-solidity-template-logo-alt": "Logo del modello Solidity", - "page-local-environment-waffle-desc": "La libreria di test più avanzata per i contratti intelligenti. Da usare da sola o con Scaffold-eth o Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo di Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo del modello Solidity" +} \ No newline at end of file diff --git a/src/intl/it/page-gas.json b/src/intl/it/page-gas.json index 4e1c6160bbe..a9aef5f24fa 100644 --- a/src/intl/it/page-gas.json +++ b/src/intl/it/page-gas.json @@ -1,5 +1,5 @@ { - "page-gas-meta-title": "Commissioni sul gas di Ethereum: come funzionano?", + "page-gas-meta-title": "Commissioni Ethereum: cos'è il gas e come pagarne meno?", "page-gas-meta-description": "Approfondisci il gas su Ethereum: come funziona e come pagare meno in commissioni sul gas", "page-gas-hero-title": "Commissioni sul gas", "page-gas-hero-header": "Commissioni di rete", diff --git a/src/intl/it/page-get-eth.json b/src/intl/it/page-get-eth.json index ad3acce7d60..b0cb5690a45 100644 --- a/src/intl/it/page-get-eth.json +++ b/src/intl/it/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Ottieni l'immagine dell'eroe di ETH", "page-get-eth-keep-it-safe": "Proteggere i tuoi ETH", "page-get-eth-meta-description": "Come acquistare ETH a seconda di dove vivi e consigli su come prendersene cura.", - "page-get-eth-meta-title": "Come ottenere ETH", + "page-get-eth-meta-title": "Come acquistare Ether (ETH)", "page-get-eth-need-wallet": "Ti servirà un portafoglio per usare una DEX.", "page-get-eth-new-to-eth": "Alle prime armi con ETH? Ecco una panoramica per muovere i primi passi.", "page-get-eth-other-cryptos": "Acquista con altre criptovalute", diff --git a/src/intl/it/page-layer-2.json b/src/intl/it/page-layer-2.json index db66dada739..0967ef424bc 100644 --- a/src/intl/it/page-layer-2.json +++ b/src/intl/it/page-layer-2.json @@ -1,139 +1 @@ -{ - "layer-2-arbitrum-note": "A prova di frode solo per gli utenti in whitelist, whitelist non ancora aperta", - "layer-2-boba-note": "Validazione dello stato in sviluppo", - "layer-2-optimism-note": "Prove di errore in sviluppo", - "layer-2-base-note": "Il sistema di prova di frode è attualmente in via di sviluppo", - "layer-2-metadata-description": "Pagina di introduzione al livello 2", - "layer-2-hero-title": "Livello 2", - "layer-2-hero-header": "Ethereum per tutti", - "layer-2-hero-subtitle": "Ridimensionare Ethereum per l'adozione di massa.", - "layer-2-hero-alt-text": "Illustrazione delle transazioni che vengono eseguite sul livello 2 e spedite sulla Rete principale Ethereum", - "layer-2-hero-button-1": "Cos'è il livello 2", - "layer-2-hero-button-2": "Usa il livello 2", - "layer-2-hero-button-3": "Spostarsi al livello 2", - "layer-2-statsbox-1": "TVL bloccato nel livello 2 (USD)", - "layer-2-statsbox-2": "Commissione di trasferimento media in ETH nel livello 2 (USD)", - "layer-2-statsbox-3": "Variazione TVL livello 2 (30 giorni)", - "layer-2-what-is-layer-2-title": "Cos'è il livello 2?", - "layer-2-what-is-layer-2-1": "Livello 2 (L2) è un termine collettivo per descrivere una serie specifica di soluzioni di ridimensionamento di Ethereum. Un livello 2 è una blockchain separata che estende Ethereum e ne eredita le garanzie di sicurezza.", - "layer-2-what-is-layer-2-2": "Ora approfondiamo un po' la questione. Per farlo, dobbiamo innanzitutto spiegare il livello 1 (L1).", - "layer-2-what-is-layer-1-title": "Cos'è il livello 1?", - "layer-2-what-is-layer-1-1": "Il livello 1 è la blockchain di base. Ethereum e Bitcoin sono entrambe blockchain di livello 1 perché sono le fondamenta sottostanti su cui si basano varie reti di livello 2. Esempi di progetti di livello 2 includono i \"rollup\" su Ethereum e la Lightning Network su Bitcoin. Tutta l'attività delle transazioni degli utenti su questi progetti di livello 2 può infine tornare alla blockchain di livello 1.", - "layer-2-what-is-layer-1-2": "Ethereum opera anche come un livello di disponibilità dei dati per i livelli 2. I progetti di livello 2 pubblicheranno i propri dati delle transazioni su Ethereum, facendo affidamento su Ethereum per la disponibilità dei dati. Questi dati possono essere utilizzati per ottenere lo stato del livello 2, o per contestare le transazioni nel livello 2.", - "layer-2-what-is-layer-1-list-title": "Ethereum come livello 1 include:", - "layer-2-what-is-layer-1-list-1": "Una rete di operatori di nodi per proteggere e validare la rete", - "layer-2-what-is-layer-1-list-2": "Una rete di produttori di blocchi", - "layer-2-what-is-layer-1-list-3": "La blockchain stessa e lo storico dei dati delle transazioni", - "layer-2-what-is-layer-1-list-4": "Il meccanismo di consenso per la rete", - "layer-2-what-is-layer-1-list-link-1": "Ancora confuso su Ethereum?", - "layer-2-what-is-layer-1-list-link-2": "Scopri cos'è Ethereum.", - "layer-2-why-do-we-need-layer-2-title": "Perché abbiamo bisogno del livello 2?", - "layer-2-why-do-we-need-layer-2-1": "Tre proprietà desiderabili di una blockchain sono che essa è decentralizzata, sicura e scalabile. Il trilemma della blockchain afferma che un'architettura semplice della blockchain può ottenerne solo due di queste tre proprietà. Vuoi una blockchain sicura e decentralizzata? Devi sacrificare la scalabilità.", - "layer-2-why-do-we-need-layer-2-2": "Attualmente Ethereum elabora oltre 1 milione di transazioni al giorno. La domanda per l'utilizzo di Ethereum può far sì che i prezzi delle commissioni sulle transazioni siano elevati. È qui che entrano in gioco le reti di livello 2.", - "layer-2-why-do-we-need-layer-2-scalability": "Scalabilità", - "layer-2-why-do-we-need-layer-2-scalability-1": "L'obiettivo principale del livello 2 è aumentare la velocità di una maggiore velocità e il volume delle transazioni (più transazioni al secondo), senza sacrificare la decentralizzazione o la sicurezza.", - "layer-2-why-do-we-need-layer-2-scalability-2": "La Rete Principale di Ethereum (livello 1) è in grado di elaborare solo 15 transazioni circa al secondo. Quando la domanda per l'utilizzo di Ethereum è elevata, la rete si congestiona, aumentando le commissioni sulla transazione ed escludendo gli utenti che non possono permettersi tali commissioni. I livelli 2 sono soluzioni che riducono quelle commissioni elaborando le transazioni al di fuori della blockchain di livello 1.", - "layer-2-why-do-we-need-layer-2-scalability-3": "Approfondisci la visione di Ethereum", - "layer-2-benefits-of-layer-2-title": "Benefici del livello 2", - "layer-2-lower-fees-title": "Commissioni più basse", - "layer-2-lower-fees-description": "Combinando molteplici transazioni fuori dalla catena (off-chain) in una singola transazione di livello 1, le commissioni di transazione calano notevolmente, rendendo Ethereum più accessibile per tutti.", - "layer-2-maintain-security-title": "Mantenere la sicurezza", - "layer-2-maintain-security-description": "Le blockchain di livello 2 regolano le proprie transazioni sulla rete principale Ethereum, consentendo agli utenti di poter beneficiare della sicurezza della rete Ethereum.", - "layer-2-expand-use-cases-title": "Espandi i casi d'uso", - "layer-2-expand-use-cases-description": "Con più transazioni al secondo, basse commissioni, e una nuova tecnologia, i progetti si espanderanno in nuove applicazioni con una migliore esperienza utente.", - "layer-2-how-does-layer-2-work-title": "Come funzione il livello 2?", - "layer-2-how-does-layer-2-work-1": "Come menzionato sopra, livello 2 è un termine collettivo per le soluzioni di ridimensionamento di Ethereum che gestiscono le transazioni al di fuori del livello 1 di Ethereum, sfruttando comunque la robusta sicurezza decentralizzata del livello 1 di Ethereum. Un livello 2 è una blockchain separata che estende Ethereum. Come funziona?", - "layer-2-how-does-layer-2-work-2": "Esistono diversi tipi di livello 2, ognuno ha i suoi compromessi e i suoi modelli di sicurezza. I livelli 2 tolgono l'onere delle transazioni ai livelli 1 rendendoli meno congestionati e rendendoli più scalabili.", - "layer-2-rollups-title": "Rollup", - "layer-2-rollups-1": "I rollup (o “roll up”) elaborano centinaia di transazioni in una singola transazione di livello 1. In questo modo le commissioni delle transazioni L1 vengono distribuite tra tutti i membri nel rollup, rendendole più convenienti per ciascun utente.", - "layer-2-rollups-2": "I dati sulla transazione nel rollup sono inviati al livello 1, ma l'esecuzione avviene separatamente dal rollup. Inviando i dati sulla transazione al livello 1, i rollup ereditano la sicurezza di Ethereum. Questo perché una volta caricati i dati sul livello 1, l'annullamento della transazione di un rollup richiede l'annullamento di Ethereum. Esistono due approcci differenti ai rollup, ottimistici e a conoscenza zero, che differiscono principalmente nella modalità di invio di questi dati sulla transazione al L1.", - "layer-2-optimistic-rollups-title": "Rollup ottimistici", - "layer-2-optimistic-rollups-description": "I rollup ottimistici sono \"ottimistici\" nel senso che si presume che le transazioni siano valide, ma possono essere contestate se necessario. Se si sospetta una transazione non valida, si esegue una prova di errore per verificare se è avvenuta.", - "layer-2-optimistic-rollups-childSentance": "Approfondimento più sui rollup ottimistici", - "layer-2-zk-rollups-title": "Rollup a conoscenza zero (zero-knowledge)", - "layer-2-zk-rollups-description": "I rollup a conoscenza zero usano le prove di validità in cui le transazioni vengono calcolate al di fuori della catena e forniscono poi i dati compressi alla rete principale di Ethereum come prova della loro validità.", - "layer-2-zk-rollups-childSentance": "Maggiori informazioni sui rollup ZK", - "layer-2-dyor-title": "Fai delle verifiche: i rischi del livello 2", - "layer-2-dyor-1": "Molti progetti di livello 2 sono relativamente recenti e richiedono ancora che gli utenti si fidino dell'onestà di alcuni operatori che lavorano per decentralizzare le proprie reti. Fai sempre le tue ricerche per decidere se sei a tuo agio con i rischi connessi.", - "layer-2-dyor-2": "Per ulteriori informazioni sulla tecnologia, i rischi e i presupposti di fiducia dei livelli 2, consigliamo di dare un'occhiata a L2BEAT, che fornisce un quadro di valutazione completo dei rischi di ogni progetto.", - "layer-2-dyor-3": "Vai a L2BEAT", - "layer-2-use-layer-2-title": "Usa il livello 2", - "layer-2-use-layer-2-1": "Adesso che hai capito perché esiste il livello 2 e come funziona, inizia ad operare!", - "layer-2-contract-accounts": "Se stai usando un portafoglio con un contratto intelligente come Safe o Argent, non avrai il controllo di questo indirizzo sul livello 2 fino a che non ridistribuirai il tuo conto del contratto su questo indirizzo di livello 2. I conti classici con la frase di recupero possiederanno automaticamente lo stesso conto su tutte le reti di livello 2.", - "layer-2-use-layer-2-generalized-title": "Livelli 2 generalizzati", - "layer-2-use-layer-2-generalized-1": "I livelli 2 generalizzati si comportano proprio come Ethereum, ma sono più economici. Qualsiasi cosa tu possa fare sul livello 1 di Ethereum, puoi farla anche sul livello 2. Molte dapp hanno già iniziato a migrare su queste reti o hanno saltato del tutto la Rete Principale per costruitre progetti direttamente sul livello 2.", - "layer-2-use-layer-2-application-specific-title": "Livelli 2 specifici dell'applicazione", - "layer-2-use-layer-2-application-specific-1": "I livelli 2 specifici dell'applicazione sono progetti che si specializzano nell'ottimizzazione dello spazio specifico di un'applicazione, migliorando così le prestazioni.", - "layer-2-sidechains-title": "Una nota su catene secondarie, validium e blockchain alternative", - "layer-2-sidechains-1": "Le catene secondarie e i Validium sono blockchain che consentono alle risorse provenienti da Ethereum di varcare i confini ed essere usate su un'altra blockchain. Le catene secondarie e i Validium sono eseguiti in parallelo con Ethereum e interagiscono con esso tramite i ponti, ma non ne ereditano la sicurezza o la disponibilità dei dati.", - "layer-2-sidechains-2": "Entrambi scalano similmente ai livelli 2: offrono minori commissioni di transazione e maggiore volume di transazione, ma hanno presupposti di fiducia differenti.", - "layer-2-more-on-sidechains": "Maggiori informazioni sulle catene secondarie", - "layer-2-more-on-validiums": "Maggiori informazioni sui validium", - "layer-2-sidechains-4": "Alcune blockchain di livello 1 riferiscono volumi maggiori e commissioni sulle transazioni più basse rispetto a Ethereum, ma in genere con compromessi altrove, ad esempio maggiori requisiti hardware per l'esecuzione dei nodi.", - "layer-2-onboard-title": "Come arrivare a un livello 2", - "layer-2-onboard-1": "Esistono due modi principali per portare le tue risorse su un livello 2: collegare i fondi da Ethereum tramite un contratto intelligente o prelevarli su una borsa, direttamente alla rete di livello 2.", - "layer-2-onboard-wallet-title": "Fondi nel tuo portafoglio?", - "layer-2-onboard-wallet-1": "Se hai già i tuoi ETH nel tuo portafoglio, dovrai usare un ponte per spostarli dalla Rete Principale di Ethereum a un livello 2.", - "layer-2-more-on-bridges": "Maggiori informazioni sui ponti", - "layer-2-onboard-wallet-input-placeholder": "Seleziona il L2 verso cui effettuare il ponte", - "layer-2-onboard-wallet-selected-1": "Puoi connetterti a", - "layer-2-onboard-wallet-selected-2": "usando questi portafogli:", - "layer-2-bridge": "Ponte", - "layer-2-onboard-exchange-title": "Fondi su una borsa?", - "layer-2-onboard-exchange-1": "Alcune borse centralizzate offrono ora prelievi e depositi diretti ai livelli 2. Verifica quali borse supportano i prelievi di livello 2 e quali livelli 2 supportano.", - "layer-2-onboard-exchange-2": "Avrai anche bisogno di un portafoglio da cui prelevare i tuoi fondi.", - "layer-2-onboard-find-a-wallet": "Trova un portafoglio di Ethereum.", - "layer-2-onboard-exchange-input-placeholder": "Verifica le borse che supportano L2", - "layer-2-deposits": "Depositi", - "layer-2-withdrawals": "Prelievi", - "layer-2-go-to": "Vai a", - "layer-2-tools-title": "Strumenti per essere efficienti sul livello 2", - "layer-2-tools-l2beat-description": "L2BEAT è un'ottima risorsa per esaminare le valutazioni di rischio tecnico dei progetti di livello 2. Consigliamo di verificare le loro risorse ricercando i progetti dello specifico livello 2.", - "layer-2-tools-growthepie-description": "Analisi curate sui livelli 2 di Ethereum", - "layer-2-tools-ethereumecosystem-description": "Pagina non ufficiale dell'ecosistema di Ethereum e dei suoi Livelli 2, inclusi Base, Optimism e Starknet, con centinaiaa di dApp e strumenti.", - "layer-2-tools-l2fees-description": "Le commissioni del L2 ti consentono di vedere il costo corrente (denominato in USD) per effettuare le transazioni su diversi livelli 2.", - "layer-2-tools-chainlist-description": "Chainlist è un'ottima risorsa per importare RPC della rete nei portafogli che le supportano. Troverai le RPC per i progetti di livello 2 qui, per aiutarti a connetterti.", - "layer-2-tools-zapper-description": "Gestisci il tuo intero portafoglio web3, dalle DeFi agli NFT e qualsiasi altra cosa verrà in futuro. Investi nelle opportunità più recenti da un posto solo.", - "layer-2-tools-zerion-description": "Crea e gestisci il tuo intero portafoglio DeFi da un posto solo. Scopri il mondo della finanza decentralizzata oggi.", - "layer-2-tools-debank-description": "Tieniti aggiornato su tutti gli eventi importanti nel mondo web3", - "layer-2-faq-title": "Domande frequenti", - "layer-2-faq-question-1-title": "Perché non esiste un L2 di Ethereum \"ufficiale\"?", - "layer-2-faq-question-1-description-1": "Proprio come non esiste un client di Ethereum \"ufficiale\", non esiste alcun livello 2 di Ethereum \"ufficiale\". Ethereum non prevede permessi: tecnicamente chiunque può creare un livello 2! Diversi team implementeranno la propria versione di un livello 2 e l'ecosistema intero beneficerà di una diversità di approcci di design ottimizzati per diversi casi d'uso. Proprio come abbiamo diversi client di Ethereum sviluppati da diversi team per poter avere diversità nella rete, allo stesso modo si svilupperanno i livelli 2 in futuro.", - "layer-2-faq-question-2-title": "Qual è la differenza tra i rollup ottimistici e a conoscenza zero?", - "layer-2-faq-question-2-description-1": "Sia i rollup ottimistici che a conoscenza zero impacchettano (o \"avvolgono\") centinaia di transazioni in una sola transazione sul livello 1. Le transazioni di rollup sono eseguite al di fuori del livello 1, ma i dati delle transazioni sono pubblicati nel livello 1.", - "layer-2-faq-question-2-description-2": "La differenza principale consiste in quali dati sono pubblicati al livello 1 e come sono verificati i dati. Le prove di validità (usate dai rollup a conoscenza zero) eseguono i calcoli al di fuori della catena e pubblicano una prova, mentre le prove di errore (usate dai rollup ottimistici) eseguono i calcoli solo sulla catena, quando vi è un sospetto di errore che deve essere verificato.", - "layer-2-faq-question-2-description-3": "Al momento, gran parte dei rollup ZK sono specifici per le applicazioni, rispetto ai rollup ottimistici, che sono stati largamente generalizzabili.", - "layer-2-more-info-on-optimistic-rollups": "Maggiori informazioni sui rollup ottimistici", - "layer-2-more-info-on-zk-rollups": "Maggiori informazioni sui rollup a conoscenza zero (zero-knowledge)", - "layer-2-faq-question-4-title": "Quali sono i rischi con il livello 2?", - "layer-2-faq-question-4-description-1": "I progetti di livello 2 presentano rischi aggiuntivi rispetto al possesso di fondi e alla conclusione di transazioni direttamente sulla Rete Principale di Ethereum. Ad esempio, i sequenziatori potrebbero smettere di funzionare, causando un ritardo nell'accesso ai fondi.", - "layer-2-faq-question-4-description-2": "Ti invitiamo fare delle verifiche prima di trasferire fondi significativi a un livello 2. Per ulteriori informazioni sulla tecnologia, i rischi e i presupposti di fiducia dei livelli 2, consigliamo di dare un'occhiata a L2BEAT, che fornisce un quadro di valutazione completo dei rischi di ogni progetto.", - "layer-2-faq-question-4-description-3": "I ponti della blockchain, che facilitano i trasferimenti di risorse al livello 2, sono nelle loro fasi iniziali di sviluppo ed è possibile che il design ottimale del ponte non sia ancora stato scoperto. Si sono verificate degli attacchi recenti ai ponti.", - "layer-2-faq-question-5-title": "Perché alcuni progetti del livello 2 non sono elencati qui?", - "layer-2-faq-question-5-description-1": "Vogliamo assicurarci di elencare le migliori risorse possibili, così che gli utenti possano muoversi nello spazio del livello 2 in un modo sicuro e comodo. Manteniamo un quadro di criteri di valutazione dei progetti ai fini dell'inclusione.", - "layer-2-faq-question-5-view-listing-policy": "Visualizza qui la nostra politica di inserzione nel livello 2.", - "layer-2-faq-question-5-description-2": "Chiunque è libero di suggerire l'aggiunta di un livello 2 su ethereum.org. Se esiste un livello 2 che ci siamo persi, ti invitiamo di suggerirlo.", - "layer-2-further-reading-title": "Lettura consigliate", - "a-rollup-centric-ethereum-roadmap": "Una tabella di marcia di Ethereum incentrata sui rollup", - "an-incomplete-guide-to-rollups": "Una guida incompleta ai rollup", - "polygon-sidechain-vs-ethereum-rollups": "Catena secondaria di Polygon vs. rollup di Ethereum: approcci di ridimensionamento del livello 2| Vitalik Buterin e Lex Fridman", - "rollups-the-ultimate-ethereum-scaling-strategy": "ROLLUP - La strategia definitiva di ridimensionamento di Ethereum? Arbitrum e Optimism Spiegati", - "scaling-layer-1-with-shard-chains": "Ridimensionamento del livello 1 con le catene di shard", - "understanding-rollup-economics-from-first-principals": "Comprendere l'economia dei rollup dalle basi", - "arbitrum-description": "Arbitrum è un rollup ottimistico che punta a dare la sensazione di interagire con Ethereum, ma con transazioni che costano una frazione di quanto costano sul L1.", - "optimism-description": "Optimism è un rollup ottimistico equivalente all'EVM veloce, semplice e sicuro. Scala la tecnologia di Ethereum ridimensionandone anche i valori tramite il finanziamento retroattivo di beni pubblici.", - "boba-description": "Boba è un Rollup Ottimistico, biforcato originariamente da Optimism, una soluzione di ridimensionamento mirata a ridurre le commissioni sul gas, migliorare il volume delle transazioni ed estendere le capacità dei contratti intelligenti.", - "base-description": "Base è un L2 di Ethereum sicuro, a basso costo e pensato per gli sviluppatori, per portare il prossimo miliardo di utenti sul web3. È un L2 di Ethereum, incubato da Coinbase e basato sullo Stack OP open source.", - "loopring-description": "La soluzione di L2 zkRollup di Loopring mira a offrire le stesse garanzie di sicurezza della rete principale di Ethereum, con un grande aumento di scalabilità: volume aumentato del 1000x e costo ridotto allo 0,1% di L1.", - "zksync-description": "ZKsync è un Rollup ZK che mira a ridimensionare Ethereum e i suoi valori per l'adozione di massa, senza degradarne la sicurezza o la decentralizzazione.", - "zkspace-description": "La piattaforma ZKSpace è composta da tre parti principali: un DEX AMM di livello 2 che utilizza la tecnologia ZK-Rollups chiamata ZKSwap, un servizio di pagamento chiamato ZKSquare e un marketplace NFT chiamato ZKSea.", - "aztec-description": "Aztec Network è il primo rollup zk privato su Ethereum, che consente alle applicazioni decentralizzate di avere accesso alla privacy e di scalare.", - "starknet-description": "Starknet è un rollup di validità di livello 2. Fornisce un volume elevato, costi del gas ridotti e mantiene i livelli di sicurezza del livello 1 di Ethereum.", - "layer-2-note": "Nota:", - "layer-2-ecosystem-portal": "Portale dell'Ecosistema", - "layer-2-token-lists": "Elenchi di Token", - "layer-2-explore": "Esplora", - "page-dapps-ready-button": "Via!", - "layer-2-information": "Informazioni", - "layer-2-wallet-managers": "Gestori di portafogli" -} +{} diff --git a/src/intl/it/page-learn.json b/src/intl/it/page-learn.json index f26106cba94..146bee5b59a 100644 --- a/src/intl/it/page-learn.json +++ b/src/intl/it/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "Informazioni su Ethereum", "hero-subtitle": "La tua guida educativa al mondo di Ethereum. Scopri come funziona e come connetterti. Questa pagina include articoli, guide e risorse tecnici e non tecnici.", "hero-button-lets-get-started": "Iniziamo", + "page-learn-meta-title": "Ethereum: una guida completa", "what-is-crypto-1": "Potresti aver sentito parlare di criptovalute, blockchain e Bitcoin. I link che seguono ti aiuteranno a capire cosa sono e come si relazionano con Ethereum.", "what-is-crypto-2": "Le criptovalute, come i bitcoin, consentono a chiunque di trasferire denaro a livello globale. Anche Ethereum lo fa, ma può anche eseguire del codice che consenta alle persone di creare app e organizzazioni. È sia resiliente che flessibile: qualsiasi programma informatico può essere eseguito su Ethereum. Scopri di più e scopri come iniziare:", "what-is-ethereum-card-title": "Cos'è Ethereum?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Trova un portafoglio", "find-a-wallet-card-description": "Dai un'occhiata ai portafogli in base alle caratteristiche che ti interessano.", "find-a-wallet-button": "Elenco di portafogli", - "crypto-security-basics-card-title": "Fondamenti di sicurezza", - "crypto-security-basics-card-description": "Scopri come identificare le truffe e come evitare i trucchi più comuni.", - "crypto-security-basics-card-button": "Mantieni la sicurezza", + "ethereum-networks-card-title": "Reti Ethereum", + "ethereum-networks-card-description": "Risparmia utilizzando estensioni di Ethereum più economiche e veloci.", + "ethereum-networks-card-button": "Scegli la rete", "things-to-consider-banner-title": "Cose da considerare utilizzando Ethereum", "things-to-consider-banner-1": "Ogni transazione di Ethereum richiede una commissione nella forma di ETH, anche se devi spostare token differenti basati su Ethereum, come gli stablecoin USDC o DAI.", "things-to-consider-banner-2": "Le commissioni possono essere elevate a seconda del numero di persone che sta provando a utilizzare Ethereum, quindi consigliamo di utilizzare i", @@ -85,7 +86,7 @@ "ethereum-whitepaper-card-button": "Leggi il whitepaper", "more-on-ethereum-protocol-title": "Maggiori informazioni sul protocollo di Ethereum", "more-on-ethereum-protocol-ethereum-for-developers": "Ethereum per sviluppatori", - "more-on-ethereum-protocol-consensus": "Il meccanismo di consenso basato sul proof-of-stake di Ethereum.", + "more-on-ethereum-protocol-consensus": "Il meccanismo di consenso di Ethereum basato sul proof-of-stake", "more-on-ethereum-protocol-evm": "Il computer incorporato di Ethereum (La EVM)", "more-on-ethereum-protocol-nodes-and-clients": "Nodi e client Ethereum", "ethereum-community-description": "Il successo di Ethereum è dovuto alla sua community incredibilmente impegnata. Migliaia di persone ispirate e motivate contribuiscono a far progredire la visione di Ethereum, garantendo al tempo stesso la sicurezza della rete attraverso lo staking e la governance. Unisciti a noi!", diff --git a/src/intl/it/page-run-a-node.json b/src/intl/it/page-run-a-node.json index 0b062142888..d4de8a7e725 100644 --- a/src/intl/it/page-run-a-node.json +++ b/src/intl/it/page-run-a-node.json @@ -111,6 +111,7 @@ "page-run-a-node-sovereignty-1": "Un portafoglio Ethereum ti permette di assumere la piena custodia e il controllo dei tuoi attivi digitali detenendo le chiavi private dei tuoi indirizzi. Queste chiavi però non ti dicono lo stato attuale della blockchain, come il saldo del tuo portafoglio.", "page-run-a-node-sovereignty-2": "Come impostazione predefinita, i portafogli Ethereum di solito raggiungono un nodo di terze parti, come Infura o Alchemy, per la consultazione dei tuoi saldi. Eseguire il proprio nodo autonomamente permette di avere la propria copia della blockchain di Ethereum.", "page-run-a-node-title": "Esegui un nodo", + "page-run-a-node-meta-title": "Come gestire un nodo di Ethereum", "page-run-a-node-voice-your-choice-title": "Dai voce alla tua scelta", "page-run-a-node-voice-your-choice-preview": "Non rinunciare al controllo in caso di fork.", "page-run-a-node-voice-your-choice-1": "In caso di fork della catena, ovvero qualora emergessero due catene con due serie di regole diverse, l'esecuzione del proprio nodo garantisce la possibilità di scegliere quale set di regole supportare. Sta a te decidere se adeguarti o meno alle nuove regole e se supportare o meno i cambiamenti proposti.", diff --git a/src/intl/it/page-stablecoins.json b/src/intl/it/page-stablecoins.json index 44bb334cb80..903915d4921 100644 --- a/src/intl/it/page-stablecoins.json +++ b/src/intl/it/page-stablecoins.json @@ -131,6 +131,7 @@ "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metalli preziosi", "page-stablecoins-table-error": "Impossibile caricare le Stablecoin. Prova ad aggiornare la pagina.", "page-stablecoins-title": "Stablecoin", + "page-stablecoins-meta-title": "Guida alle stablecoin: a cosa servono?", "page-stablecoins-top-coins": "Stablecoin più popolari per capitalizzazioni di mercato", "page-stablecoins-top-coins-intro": "La capitalizzazione di mercato è", "page-stablecoins-top-coins-intro-code": "il numero totale di token esistenti, moltiplicato per il valore per token. Questo elenco è dinamico e i progetti qui elencati non sono necessariamente sponsorizzati dal team di ethereum.org.", diff --git a/src/intl/it/page-staking.json b/src/intl/it/page-staking.json index 4d0e2f39e00..db0b2df2934 100644 --- a/src/intl/it/page-staking.json +++ b/src/intl/it/page-staking.json @@ -232,7 +232,7 @@ "page-staking-join-community": "Unisciti alla community degli staker", "page-staking-join-community-desc": "EthStaker è una community in cui tutti possono discutere e conoscere lo staking su Ethereum. Unisciti a decine di migliaia di membri da tutto il mondo per consigli, supporto e per parlare di tutto quello che riguarda lo staking.", "page-staking-meta-description": "Panoramica sullo staking su Ethereum: rischi, ricompense, requisiti e dove farlo.", - "page-staking-meta-title": "Staking su Ethereum", + "page-staking-meta-title": "Staking su Ethereum: come funziona?", "page-staking-withdrawals-important-notices": "Avvisi importanti", "page-staking-withdrawals-important-notices-desc": "I prelievi non sono ancora disponibili. Per ulteriori informazioni, si prega di leggere le FAQ sulla fusione e post-fusione di Eth2.", "page-upgrades-merge-btn": "Maggiori informazioni sulla fusione", diff --git a/src/intl/it/page-wallets-find-wallet.json b/src/intl/it/page-wallets-find-wallet.json index 838a389f660..ccfa963f5a5 100644 --- a/src/intl/it/page-wallets-find-wallet.json +++ b/src/intl/it/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "I portafogli conservano gli ETH e permettono di svolgere transazioni con essi. Puoi scegliere tra un'ampia gamma di prodotti che più si adattano alle tue esigenze.", "page-find-wallet-last-updated": "Ultimo aggiornamento", "page-find-wallet-meta-description": "Trova e confronta portafogli Ethereum in base alle caratteristiche che cerchi.", - "page-find-wallet-meta-title": "Trova un portafoglio Ethereum", + "page-find-wallet-meta-title": "Elenco portafogli Ethereum | ethereum.org", "page-find-wallet-title": "Scegliere il proprio portafoglio", "page-find-wallet-try-removing": "Prova rimuovere una o due funzionalità", "page-stake-eth": "Fai staking con gli ETH", diff --git a/src/intl/it/page-wallets.json b/src/intl/it/page-wallets.json index 4fdcbcc50d3..5008b00a220 100644 --- a/src/intl/it/page-wallets.json +++ b/src/intl/it/page-wallets.json @@ -28,7 +28,7 @@ "page-wallets-manage-funds": "Un'app per gestire i tuoi fondi", "page-wallets-manage-funds-desc": "Il tuo portafoglio mostra il tuo saldo, la cronologia delle transazioni e ti offre la possibilità di inviare o ricevere fondi. Alcuni portafogli possono offrire funzioni aggiuntive.", "page-wallets-meta-description": "Cosa devi sapere per utilizzare portafogli Ethereum.", - "page-wallets-meta-title": "Portafogli Ethereum", + "page-wallets-meta-title": "Portafogli Ethereum: acquista, conserva e invia criptovalute", "page-wallets-mobile": "Applicazioni mobili che rendono i tuoi fondi accessibili ovunque", "page-wallets-more-on-dapps-btn": "Maggiori informazioni sulle dapp", "page-wallets-most-wallets": "Gran parte dei portafogli ti consentiranno di generare un conto di Ethereum. Quindi, non ne necessiti uno, prima di scaricare un portafoglio.", diff --git a/src/intl/it/page-what-is-ethereum.json b/src/intl/it/page-what-is-ethereum.json index cfe43fd77a8..591cb7eeb90 100644 --- a/src/intl/it/page-what-is-ethereum.json +++ b/src/intl/it/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Il motivo per cui le risorse come bitcoin ed ether sono dette \"criptovalute\" è che la sicurezza dei tuoi dati e delle tue risorse è garantita dalla crittografia, non dall'affidarsi al fatto che un'istituzione o una società agisca onestamente.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum ha la propria criptovaluta nativa, ether (ETH), utilizzata per pagare per certe attività sulla rete. Può essere trasferita ad altri utenti o scambiata per altri token su Ethereum. Ether è speciale perché è utilizzata per pagare per il calcolo necessario alla creazione ed esecuzione di app e organizzazioni su Ethereum.", "page-what-is-ethereum-summary-title": "Riepilogo", - "page-what-is-ethereum-summary-desc-1": "Ethereum è una rete di computer presenti in tutto il mondo che seguono una serie di regole dette protocollo di Ethereum. La rete di Ethereum agisce da fondamenta per le comunità, applicazioni, organizzazioni e risorse digitali che chiunque può creare e utilizzare.", - "page-what-is-ethereum-summary-desc-2": "Puoi creare un conto Ethereum da qualsiasi parte, in qualsiasi momento, ed esplorare un mondo di app, o creare le tue. L'innovazione fondamentale è che puoi fare tutto ciò senza doverti fidare di un'autorità centrale, che potrebbe modificare le regole o limitare il tuo accesso.", - "page-what-is-ethereum-summary-desc-3": "Continua a leggere per scoprire di più…", + "page-what-is-ethereum-summary-desc-1": "Ethereum è la piattaforma principale per migliaia di app e blockchain, tutte basate sul protocollo di Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Questo vivace ecosistema favorisce l'innovazione e la creazione di un'ampia gamma di app e servizi decentralizzati.", + "page-what-is-ethereum-summary-bullet-1": "Conti Ethereum gratuiti e globali", + "page-what-is-ethereum-summary-bullet-2": "Pseudo-privato, nessuna informazione personale necessaria", + "page-what-is-ethereum-summary-bullet-3": "Senza restrizioni, chiunque può partecipare", + "page-what-is-ethereum-summary-bullet-4": "Nessuna azienda controlla Ethereum né può decidere il suo futuro", "page-what-is-ethereum-btc-eth-diff-title": "Qual è la differenza tra Ethereum e Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Lanciato nel 2015, Ethereum si basa sull'innovazione di Bitcoin, con alcune grandi differenze.", "page-what-is-ethereum-btc-eth-diff-2": "Entrambi ti consentono di usare il denaro digitale senza fornitori di pagamento o banche. Ma Ethereum è programmabile, così puoi anche creare e distribuire delle applicazioni decentralizzate sulla sua rete.", diff --git a/src/intl/it/template-usecase.json b/src/intl/it/template-usecase.json index ed144a9f436..94a0740ba40 100644 --- a/src/intl/it/template-usecase.json +++ b/src/intl/it/template-usecase.json @@ -2,6 +2,7 @@ "template-usecase-dropdown-defi": "Finanza decentralizzata (DeFi)", "template-usecase-dropdown-nft": "Token non fungibili (NFT)", "template-usecase-dropdown-dao": "Organizzazioni autonome decentralizzate (DAO)", + "template-usecase-dropdown-payments": "Pagamenti su Ethereum", "template-usecase-dropdown-social-networks": "Social network decentralizzati", "template-usecase-dropdown-identity": "Identità decentralizzata", "template-usecase-dropdown-desci": "Scienza Decentralizzata (DeSci)", @@ -10,4 +11,4 @@ "template-usecase-banner": "Gli utilizzi di Ethereum si sviluppano ed evolvono costantemente. Aggiungi qualsiasi informazione pensi possa chiarire o aggiornare i contenuti.", "template-usecase-edit-link": "Modifica pagina", "template-usecase-dropdown-aria": "Menu a discesa dei casi d'uso" -} +} \ No newline at end of file diff --git a/src/intl/ja/page-developers-local-environment.json b/src/intl/ja/page-developers-local-environment.json index b35d33df7d0..deef2fbff5b 100644 --- a/src/intl/ja/page-developers-local-environment.json +++ b/src/intl/ja/page-developers-local-environment.json @@ -28,8 +28,6 @@ "page-local-environment-setup-subtitle": "構築を開始する準備ができたら、スタックを選択する時間です。", "page-local-environment-setup-subtitle-2": " ここでは、Ethereumアプリケーションの構築に役立つツールとフレームワークを紹介します。", "page-local-environment-setup-title": "ローカル開発環境をセットアップする", - "page-local-environment-solidity-template-desc": "Solidityスマートコントラクト用のビルド済みセットアップ用のGitHubテンプレート。 Hardhatローカルネットワーク、テストのためのワッフル、財布の実装のためのEtherなどが含まれています。", - "page-local-environment-solidity-template-logo-alt": "Solidityテンプレートのロゴ", - "page-local-environment-waffle-desc": "スマートコントラクトのための最も高度なテストリブ。単独またはScaffoldethまたはHardhatで使用してください。", - "page-local-environment-waffle-logo-alt": "Waffleロゴ" + "page-local-environment-solidity-template-desc": "Solidityスマートコントラクト用の事前構築されたセットアップのためのGitHubテンプレート。Hardhatローカルネットワーク、ウォレット実装のためのEthersなどが含まれています。", + "page-local-environment-solidity-template-logo-alt": "Solidityテンプレートのロゴ" } diff --git a/src/intl/kn/page-developers-local-environment.json b/src/intl/kn/page-developers-local-environment.json index f47037dbfb1..958a66fddd1 100644 --- a/src/intl/kn/page-developers-local-environment.json +++ b/src/intl/kn/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "ಇಲ್ಲಿ ನಿಮ್ಮ ಎಥೆರಿಯಂ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ನೀವು ಬಳಸಬಹುದಾದ ಉಪಕರಣಗಳು ಮತ್ತು ಫ್ರೇಮವರ್ಕ್‌ಗಳಿವೆ.", "page-local-environment-setup-title": "ನಿಮ್ಮ ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವನ್ನು ಹೊಂದಿಸಿ", "page-local-environment-solidity-template-desc": "ನಿಮ್ಮ ಸಾಲಿಡಿಟಿ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳಿಗೆ ಪೂರ್ವ-ನಿರ್ಮಿತ ಸೆಟಪ್‌ಗಾಗಿ GitHub ಟೆಂಪ್ಲೇಟ್. ಹರ್ಧತ್ ಸ್ಥಳೀಯ ನೆಟ್‌ವರ್ಕ್, ಪರೀಕ್ಷೆಗಳಿಗಾಗಿ ದೋಸೆ, ವ್ಯಾಲೆಟ್ ಅನುಷ್ಠಾನಕ್ಕಾಗಿ ಈಥರ್‌ಗಳು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಒಳಗೊಂಡಿದೆ.", - "page-local-environment-solidity-template-logo-alt": "ಘನತೆ ಟೆಂಪ್ಲೇಟ್ ಲೋಗೋ", - "page-local-environment-waffle-desc": "ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳಿಗಾಗಿ ಅತ್ಯಂತ ಮುಂದುವರಿದ ಟೆಸ್ಟಿಂಗ್ ಲೈಬ್ರರಿ. ಸ್ಕ್ಯಾಫೋಲ್ಡ್-ಎಥ್ ಅಥವಾ ಹಾರ್ಡ್ಹ್ಯಾಟ್‌ನೊಂದಿಗೆ ಒಂಟಿಯಾಗಿ ಅಥವಾ ಬಳಸಿ.", - "page-local-environment-waffle-logo-alt": "ವ್ಯಾಫ್ಲ್ ಲೋಗೋ" -} + "page-local-environment-solidity-template-logo-alt": "ಘನತೆ ಟೆಂಪ್ಲೇಟ್ ಲೋಗೋ" +} \ No newline at end of file diff --git a/src/intl/ko/page-developers-local-environment.json b/src/intl/ko/page-developers-local-environment.json index 6701d8972e6..3aba2001d17 100644 --- a/src/intl/ko/page-developers-local-environment.json +++ b/src/intl/ko/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "이더리움 애플리케이션을 만들기 위해 사용할 수 있는 도구와 프레임워크는 다음과 같습니다.", "page-local-environment-setup-title": "로컬 개발 환경을 설정하기", "page-local-environment-solidity-template-desc": "Solidity 스마트 계약을 위해 미리 빌드된 설정의 GitHub 템플릿입니다. 여기에는 Hardhat 로컬 네트워크, 테스트용 Waffle, 지갑 실행용 Ethers 등이 포함됩니다.", - "page-local-environment-solidity-template-logo-alt": "Solidity 템플릿 로고", - "page-local-environment-waffle-desc": "스마트 계약을 위한 가장 진화된 테스팅 라이브러리입니다. 단독으로 사용하거나, Scaffold-eth 또는 Hardhat과 함께 사용합니다.", - "page-local-environment-waffle-logo-alt": "Waffle 로고" -} + "page-local-environment-solidity-template-logo-alt": "Solidity 템플릿 로고" +} \ No newline at end of file diff --git a/src/intl/ml/page-developers-local-environment.json b/src/intl/ml/page-developers-local-environment.json index 0898c1020f6..37174c7e376 100644 --- a/src/intl/ml/page-developers-local-environment.json +++ b/src/intl/ml/page-developers-local-environment.json @@ -25,7 +25,5 @@ "page-local-environment-setup-subtitle-2": " നിങ്ങളുടെ Ethereum അപ്ലിക്കേഷൻ നിർമ്മിക്കാൻ സഹായിക്കുന്നതിന് നിങ്ങൾക്ക് ഉപയോഗിക്കാവുന്ന ഉപകരണങ്ങളും ചട്ടക്കൂടുകളും ഇവിടെയുണ്ട്.", "page-local-environment-setup-title": "നിങ്ങളുടെ പ്രാദേശിക വികസന അന്തരീക്ഷം സജ്ജമാക്കുക", "page-local-environment-solidity-template-desc": "നിങ്ങളുടെ സോളിഡിറ്റി സ്മാർട്ട് കരാറുകൾക്കായി മുൻകൂട്ടി നിർമ്മിച്ച സജ്ജീകരണത്തിനായുള്ള ഒരു GitHub ടെംപ്ലേറ്റ്. ഒരു ഹാർഡ്‌ഹാറ്റ് ലോക്കൽ നെറ്റ്‌വർക്ക്, ടെസ്റ്റുകൾക്കുള്ള വാഫിൾ, വാലറ്റ് നടപ്പിലാക്കുന്നതിനുള്ള ഈഥറുകൾ എന്നിവയും അതിലേറെയും ഉൾപ്പെടുന്നു.", - "page-local-environment-solidity-template-logo-alt": "സോളിഡാരിറ്റി ടെംപ്ലേറ്റ് ലോഗോ", - "page-local-environment-waffle-desc": "സ്മാർട്ട് കരാറുകൾക്കായുള്ള ഏറ്റവും നൂതനമായ ടെസ്റ്റിംഗ് ലിബ്. ഒറ്റയ്ക്കോ സ്കാർഫോൾഡ്-എത്ത് അല്ലെങ്കിൽ ഹാർദത്ത് ഉപയോഗിച്ചോ ഉപയോഗിക്കുക.", - "page-local-environment-waffle-logo-alt": "വാഫ്‌ൾ ലോഗോ" -} + "page-local-environment-solidity-template-logo-alt": "സോളിഡാരിറ്റി ടെംപ്ലേറ്റ് ലോഗോ" +} \ No newline at end of file diff --git a/src/intl/mr/page-developers-local-environment.json b/src/intl/mr/page-developers-local-environment.json index 1ef8d0ef2b3..fd6e05697c7 100644 --- a/src/intl/mr/page-developers-local-environment.json +++ b/src/intl/mr/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "तुमचा Ethereum अनुप्रयोग तयार करण्यात मदत करण्यासाठी तुम्ही वापरू शकता अशी साधने आणि फ्रेमवर्क येथे आहेत.", "page-local-environment-setup-title": "आपले स्थानिक विकास वातावरण सेट करा", "page-local-environment-solidity-template-desc": "तुमच्या Solidity स्मार्ट कॉन्ट्रॅक्ट्ससाठी पूर्व-निर्मित सेटअपसाठी एक GitHub टेम्पलेट. Hardhat स्थानिक नेटवर्क, चाचण्यांसाठी Waffle, वॉलेट अंमलबजावणीसाठी इथर्स आणि बरेच काही समाविष्ट आहे.", - "page-local-environment-solidity-template-logo-alt": "Solidity टेम्पलेट लोगो", - "page-local-environment-waffle-desc": "स्मार्ट करारांसाठी सर्वात प्रगत चाचणी लिब. एकट्याने किंवा Scaffold-eth किंवा Hardhat सह वापरा.", - "page-local-environment-waffle-logo-alt": "Waffle लोगो" -} + "page-local-environment-solidity-template-logo-alt": "Solidity टेम्पलेट लोगो" +} \ No newline at end of file diff --git a/src/intl/ms/page-developers-local-environment.json b/src/intl/ms/page-developers-local-environment.json index 32d8a99e0a3..195c5006dab 100644 --- a/src/intl/ms/page-developers-local-environment.json +++ b/src/intl/ms/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Berikut ialah alat dan rangka kerja yang boleh anda gunakan untuk membantu anda membina aplikasi Ethereum anda.", "page-local-environment-setup-title": "Sediakan persekitaran pembangunan tempatan anda", "page-local-environment-solidity-template-desc": "Templat GitHub untuk persediaan pra-dibina untuk kontrak pintar Solidity anda. Termasuk rangkaian tempatan Hardhat, Waffle untuk ujian, Ethers untuk pelaksanaan dompet, dan banyak lagi.", - "page-local-environment-solidity-template-logo-alt": "Logo Solidity template", - "page-local-environment-waffle-desc": "Lib ujian paling maju untuk kontrak pintar. Gunakan bersendirian atau dengan Scaffold-eth atau Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo Solidity template" +} \ No newline at end of file diff --git a/src/intl/nl/common.json b/src/intl/nl/common.json index efcaa373a3b..8d7dbd09dee 100644 --- a/src/intl/nl/common.json +++ b/src/intl/nl/common.json @@ -249,6 +249,8 @@ "nav-emerging-description": "Maak kennis met andere nieuwere gebruiksscenario's voor Ethereum", "nav-emerging-label": "Opkomende gebruikssituaties", "nav-ethereum-org-description": "Deze website wordt door de gemeenschap aangestuurd — doe mee en draag ook bij", + "nav-ethereum-networks": "Ethereum-netwerken", + "nav-ethereum-networks-description": "Goedkopere en snellere transacties voor Ethereum", "nav-ethereum-wallets-description": "Een app om te communiceren met je Ethereum-account", "nav-events-description": "Decentralisatie en vrijheid om te participeren voor iedereen", "nav-events-irl-description": "Elke maand zijn er grote Ethereum-evenementen, zowel persoonlijk als online", @@ -274,16 +276,23 @@ "nav-guides-label": "Handleidingen", "nav-history-description": "Een tijdlijn van alle belangrijke vorken en updates", "nav-history-label": "Technische geschiedenis van Ethereum", - "nav-layer-2-description": "Goedkopere en snellere transacties voor Ethereum", "nav-learn-by-coding-description": "Tools die je helpen met Ethereum te experimenteren", "nav-local-env-description": "Kies en configureer je Ethereum-ontwikkelstack", "nav-mainnet-description": "Enterprise blockchain-applicaties kunnen worden gebouwd op het openbare Ethereum Mainnet", + "nav-networks-home-description": "Goedkopere en snellere transacties voor Ethereum", + "nav-networks-introduction-label": "Introductie", + "nav-networks-introduction-description": "Ethereum uitgebreid tot netwerk van netwerken", + "nav-networks-explore-networks-label": "Verken netwerken", + "nav-networks-explore-networks-description": "Kies welk netwerk je wilt gebruiken", + "nav-networks-learn-label": "Wat zijn laag 2-netwerken?", + "nav-networks-learn-description": "Kom erachter waarom we ze nodig hebben", "nav-nft-description": "Een manier om iets unieks te vertegenwoordigen als een op Ethereum gebaseerd activum", "nav-open-research-description": "Een van de belangrijkste sterke punten van Ethereum is de actieve onderzoeksgemeenschap", "nav-open-research-label": "Onderzoek openen", "nav-overview-description": "Alles wat met Ethereum-voorlichting te maken heeft", "nav-overview-label": "Overzicht", "nav-participate-overview-description": "Overzicht van hoe je kunt deelnemen", + "nav-payments-description": "Ethereum-betalingen veranderen de manier waarop we geld versturen en ontvangen", "nav-primary": "Primair", "nav-quizzes-description": "Ontdek hoe goed je Ethereum en cryptocurrencies begrijpt", "nav-quizzes-label": "Test je kennis", @@ -355,6 +364,7 @@ "page-last-updated": "Pagina laatst bijgewerkt", "participate": "Doe mee", "participate-menu": "Deelnamemenu", + "payments-page": "Betalingen", "pbs": "Scheiding proposer-builder", "pools": "Gepoolde staking", "privacy-policy": "Privacybeleid", diff --git a/src/intl/nl/page-developers-local-environment.json b/src/intl/nl/page-developers-local-environment.json index 297d59b26eb..c7aa1282a05 100644 --- a/src/intl/nl/page-developers-local-environment.json +++ b/src/intl/nl/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Hier zijn de tools en frameworks die u kunt gebruiken om uw Ethereum-applicatie te bouwen.", "page-local-environment-setup-title": "Stel u lokale ontwikkelingsomgeving in", "page-local-environment-solidity-template-desc": "Een GitHub-template voor vooraf gebouwde instellingen voor uw Solidity slimme contracten. Bevat een lokaal Hardhat-netwerk, Waffle voor tests, Ethers voor portemonnee-implementaties, en meer.", - "page-local-environment-solidity-template-logo-alt": "Logo van Solidity-template", - "page-local-environment-waffle-desc": "De meest geavanceerde testbibliotheek voor slimme contracten. Gebruik alleen of met Scaffold-eth of Hardhat.", - "page-local-environment-waffle-logo-alt": "Waffle logo" -} + "page-local-environment-solidity-template-logo-alt": "Logo van Solidity-template" +} \ No newline at end of file diff --git a/src/intl/nl/page-get-eth.json b/src/intl/nl/page-get-eth.json index ce89cd23f39..18dd3ab2248 100644 --- a/src/intl/nl/page-get-eth.json +++ b/src/intl/nl/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Krijg ETH-heldafbeelding", "page-get-eth-keep-it-safe": "Houd je ETH veilig", "page-get-eth-meta-description": "Hoe ETH te kopen op basis van waar u woont en advies over hoe u ervoor moet zorgen.", - "page-get-eth-meta-title": "Zo koopt u EHT", + "page-get-eth-meta-title": "Zo koop je Ethereum (ETH)", "page-get-eth-need-wallet": "Om een DEX te gebruiken heeft u een wallet nodig.", "page-get-eth-new-to-eth": "Nieuw bij ETH? Hier is een overzicht om te beginnen.", "page-get-eth-other-cryptos": "Koop met andere crypto", diff --git a/src/intl/nl/page-index.json b/src/intl/nl/page-index.json index 6a063d53c51..37f77d6a001 100644 --- a/src/intl/nl/page-index.json +++ b/src/intl/nl/page-index.json @@ -65,7 +65,7 @@ "page-index-learn-tag": "Info", "page-index-learn-header": "Krijg inzicht in Ethereum", "page-index-meta-description": "Ethereum is een wereldwijd, gedecentraliseerd platform voor geld en nieuwe soorten toepassingen. Op Ethereum kun je code schrijven die geld controleert en toepassingen bouwen die overal ter wereld toegankelijk zijn.", - "page-index-meta-title": "De volledige handleiding van Ethereum", + "page-index-meta-title": "Ethereum.org: De volledige gids tot Ethereum", "page-index-network-stats-total-eth-staked": "Waarde die Ethereum beschermt", "page-index-network-stats-tx-cost-description": "Gemiddelde transactiekosten", "page-index-network-stats-tx-day-description": "Transacties in de afgelopen 24 uur", diff --git a/src/intl/nl/page-staking.json b/src/intl/nl/page-staking.json index a1dae35d271..a98de3e3c4f 100644 --- a/src/intl/nl/page-staking.json +++ b/src/intl/nl/page-staking.json @@ -232,7 +232,7 @@ "page-staking-join-community": "Word lid van de staker-gemeenschap", "page-staking-join-community-desc": "EthStaker is een gemeenschap waar iedereen kan discussiëren en meer informatie kan krijgen over staking op Ethereum. Sluit je aan bij tienduizenden leden van over de hele wereld voor advies, steun en om over alle andere staking-onderwerpen te praten.", "page-staking-meta-description": "Een overzicht van staking op Ethereum: de risico's, beloningen, vereisten en waar u het kunt doen.", - "page-staking-meta-title": "Staking op Ethereum", + "page-staking-meta-title": "Ethereum-staking: Hoe werkt het?", "page-staking-withdrawals-important-notices": "Belangrijke opmerkingen", "page-staking-withdrawals-important-notices-desc": "Opnames zijn nog niet beschikbaar. Lees de Eth2 Merge en post-merge FAQ voor meer informatie.", "page-upgrades-merge-btn": "Meer over de merge", diff --git a/src/intl/nl/page-wallets-find-wallet.json b/src/intl/nl/page-wallets-find-wallet.json index ff85b1abd9d..ba5c8ee443f 100644 --- a/src/intl/nl/page-wallets-find-wallet.json +++ b/src/intl/nl/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Portemonnees bewaren en verhandelen je ETH. Je kunt kiezen uit verschillende producten die passen bij jouw behoeften.", "page-find-wallet-last-updated": "Laatst gewijzigd op", "page-find-wallet-meta-description": "Zoek en vergelijk Ethereum-portemonnees op basis van de functies die je wilt.", - "page-find-wallet-meta-title": "Vind een Ethereum-portemonnee", + "page-find-wallet-meta-title": "Lijst van Ethereum-portemonnees | ethereum.org", "page-find-wallet-title": "Kies je portemonnee", "page-find-wallet-try-removing": "Probeer een functie of twee te verwijderen", "page-stake-eth": "Stake ETH", diff --git a/src/intl/nl/page-wallets.json b/src/intl/nl/page-wallets.json index 7f5b4c23ea5..22b66122fb4 100644 --- a/src/intl/nl/page-wallets.json +++ b/src/intl/nl/page-wallets.json @@ -28,7 +28,7 @@ "page-wallets-manage-funds": "Een app voor het beheren van uw fondsen", "page-wallets-manage-funds-desc": "Uw wallet toont uw saldi, transactiegeschiedenis en biedt u een manier om geld te verzenden/ontvangen. Sommige wallets kunnen meer bieden.", "page-wallets-meta-description": "Wat u moet weten om Ethereum wallets te gebruiken.", - "page-wallets-meta-title": "Ethereum wallets", + "page-wallets-meta-title": "Ethereum-portemonnees: Crypto kopen, opslaan en verzenden", "page-wallets-mobile": "Mobiele applicaties die je overal ter wereld toegang geven tot je fondsen", "page-wallets-more-on-dapps-btn": "Meer over dapps", "page-wallets-most-wallets": "De meeste wallet-producten laten u een Ethereum account aanmaken. Dus u hebt er geen nodig voordat u een wallet downloadt.", diff --git a/src/intl/pcm/page-developers-local-environment.json b/src/intl/pcm/page-developers-local-environment.json index 68e0cbd37d0..6b0ab4e8e0c 100644 --- a/src/intl/pcm/page-developers-local-environment.json +++ b/src/intl/pcm/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Na the tools and frameworks wey you fit use build your ethereum application.", "page-local-environment-setup-title": "Set up ya local development environment", "page-local-environment-solidity-template-desc": "GitHub template wey dem don pre built the setup ffor your solidity smart contracts. E include hardhat loca network, waffle for tests, Ethers for wallet implementation, and more.", - "page-local-environment-solidity-template-logo-alt": "Solidity template logo", - "page-local-environment-waffle-desc": "Library wey advance pass if you dey test smart contracts. Use alone abi scaffold-eth abi Hardhat.", - "page-local-environment-waffle-logo-alt": "Waffle logo" -} + "page-local-environment-solidity-template-logo-alt": "Solidity template logo" +} \ No newline at end of file diff --git a/src/intl/pl/page-developers-local-environment.json b/src/intl/pl/page-developers-local-environment.json index 123cf10bc81..3dfd0461e11 100644 --- a/src/intl/pl/page-developers-local-environment.json +++ b/src/intl/pl/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Oto narzędzia i frameworki, których możesz użyć, aby łatwiej zbudować swoją aplikację Ethereum.", "page-local-environment-setup-title": "Skonfiguruj swoje lokalne środowisko programistyczne", "page-local-environment-solidity-template-desc": "Szablon GitHub gotowej konfiguracji inteligentnych kontraktów Solidity. Zawiera sieć lokalną Hardhat, Waffle do testów, etery do implementacji portfela i wiele innych.", - "page-local-environment-solidity-template-logo-alt": "Logo Solidity template", - "page-local-environment-waffle-desc": "Najbardziej zaawansowana baza testowa inteligentnych kontraktów. Używaj samodzielnie lub ze Scaffold-eth lub Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo Solidity template" +} \ No newline at end of file diff --git a/src/intl/pt-br/common.json b/src/intl/pt-br/common.json index 45a5c98b950..726ec28812a 100644 --- a/src/intl/pt-br/common.json +++ b/src/intl/pt-br/common.json @@ -250,6 +250,8 @@ "nav-emerging-description": "Conheça outros casos de uso mais recentes do Ethereum", "nav-emerging-label": "Casos de uso emergentes", "nav-ethereum-org-description": "Este website é dedicado à comunidade: participe e contribua", + "nav-ethereum-networks": "Redes Ethereum", + "nav-ethereum-networks-description": "Transações mais rápidas e econômicas para Ethereum", "nav-ethereum-wallets-description": "Um app para interagir com sua conta Ethereum", "nav-events-description": "Descentralização e liberdade para participar", "nav-events-irl-description": "Há eventos importantes, presenciais e online, sobre o Ethereum todos os meses", @@ -275,16 +277,23 @@ "nav-guides-label": "Guias explicativos", "nav-history-description": "Uma linha do tempo de todos os forks e atualizações mais importantes", "nav-history-label": "História técnica do Ethereum", - "nav-layer-2-description": "Transações mais rápidas e econômicas para Ethereum", "nav-learn-by-coding-description": "Ferramentas que o ajudam a usar Ethereum", "nav-local-env-description": "Escolha e configure sua pilha de desenvolvimento Ethereum", "nav-mainnet-description": "É possível criar aplicações blockchain empresariais na rede principal pública do Ethereum", + "nav-networks-home-description": "Transações mais rápidas e econômicas para Ethereum", + "nav-networks-introduction-label": "Introdução", + "nav-networks-introduction-description": "O Ethereum se expandiu para uma rede de redes", + "nav-networks-explore-networks-label": "Explore redes", + "nav-networks-explore-networks-description": "Escolha qual rede usar", + "nav-networks-learn-label": "O que são redes de camada 2?", + "nav-networks-learn-description": "Entenda por que precisamos delas", "nav-nft-description": "Uma forma de representar qualquer coisa única como um ativo baseado no Ethereum", "nav-open-research-description": "Um dos pontos fortes do Ethereum é sua comunidade ativa de pesquisa", "nav-open-research-label": "Pesquisa aberta", "nav-overview-description": "Tudo sobre o Ethereum: informações", "nav-overview-label": "Visão geral", "nav-participate-overview-description": "Descrição geral de como participar", + "nav-payments-description": "Os pagamentos em Ethereum estão mudando a forma como enviamos e recebemos dinheiro", "nav-primary": "Principal", "nav-quizzes-description": "Comprove seus conhecimentos sobre Ethereum e criptomoedas", "nav-quizzes-label": "Teste seus conhecimentos", @@ -356,6 +365,7 @@ "page-last-updated": "Última atualização da página", "participate": "Participar", "participate-menu": "Menu Participe", + "payments-page": "Pagamentos", "pbs": "Separação de Proponente-Construtor", "pools": "Staking em pool (combinado)", "privacy-policy": "Política de privacidade", diff --git a/src/intl/pt-br/page-developers-local-environment.json b/src/intl/pt-br/page-developers-local-environment.json index e10822b81bb..35681f8b96a 100644 --- a/src/intl/pt-br/page-developers-local-environment.json +++ b/src/intl/pt-br/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Estas são as ferramentas e frameworks que você pode usar para desenvolver seu aplicativo Ethereum.", "page-local-environment-setup-title": "Configure seu ambiente de desenvolvimento local", "page-local-environment-solidity-template-desc": "Um modelo GitHub para uma configuração predefinida para seus contratos inteligentes Solidity. Inclui uma rede local de Hardhat, Waffle para testes, Ethers para implementação de carteira e muito mais.", - "page-local-environment-solidity-template-logo-alt": "Logotipo de modelo Solidity", - "page-local-environment-waffle-desc": "A biblioteca de testes mais avançada para contratos inteligentes. Use-a de maneira exclusiva ou com Scaffold-eth ou Hardhat.", - "page-local-environment-waffle-logo-alt": "Logotipo Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logotipo de modelo Solidity" +} \ No newline at end of file diff --git a/src/intl/pt-br/page-index.json b/src/intl/pt-br/page-index.json index 4416337aabe..290fdba1701 100644 --- a/src/intl/pt-br/page-index.json +++ b/src/intl/pt-br/page-index.json @@ -65,7 +65,7 @@ "page-index-learn-tag": "Aprenda", "page-index-learn-header": "Entenda Ethereum", "page-index-meta-description": "Ethereum é uma plataforma global e descentralizada para dinheiro e novos tipos de aplicativos. No Ethereum, você pode escrever um código para controlar dinheiro e criar aplicativos acessíveis de qualquer lugar do mundo.", - "page-index-meta-title": "Um guia completo sobre Ethereum", + "page-index-meta-title": "Ethereum.org: O guia completo sobre o Ethereum", "page-index-network-stats-total-eth-staked": "O valor que protege Ethereum", "page-index-network-stats-tx-cost-description": "Custo médio de transação", "page-index-network-stats-tx-day-description": "Transações nas últimas 24 horas", diff --git a/src/intl/pt-br/page-learn.json b/src/intl/pt-br/page-learn.json index 66a2ec7c7eb..2938babc6dc 100644 --- a/src/intl/pt-br/page-learn.json +++ b/src/intl/pt-br/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "Saiba mais sobre o Ethereum", "hero-subtitle": "Seu guia educacional para o mundo do Ethereum. Aprenda como o Ethereum funciona e como se conectar a ele. Esta página inclui artigos, guias e recursos técnicos e não técnicos.", "hero-button-lets-get-started": "Vamos começar", + "page-learn-meta-title": "Ethereum: Um guia de aprendizado abrangente", "what-is-crypto-1": "Você já deve ter ouvido falar sobre criptomoedas, blockchains e Bitcoin. Os links abaixo ajudarão você a saber o que são e como se relacionam com o Ethereum.", "what-is-crypto-2": "As criptomoedas, como o bitcoin, permitem que qualquer pessoa transfira dinheiro globalmente. Além de fazer isso, o Ethereum pode executar códigos que permitem que as pessoas criem aplicativos e organizações. O sistema é resiliente e flexível: qualquer programa de computador pode ser executado no Ethereum. Saiba mais e descubra como começar:", "what-is-ethereum-card-title": "O que é o Ethereum?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Encontre uma carteira", "find-a-wallet-card-description": "Procure carteiras com base nos recursos que são importantes para você.", "find-a-wallet-button": "Lista de carteiras", - "crypto-security-basics-card-title": "Noções básicas de segurança", - "crypto-security-basics-card-description": "Aprenda a identificar golpes e como evitar os truques mais comuns.", - "crypto-security-basics-card-button": "Fique protegido", + "ethereum-networks-card-title": "Redes Ethereum", + "ethereum-networks-card-description": "Economize dinheiro usando extensões da Ethereum mais baratas e rápidas.", + "ethereum-networks-card-button": "Escolha uma rede", "things-to-consider-banner-title": "Coisas a considerar ao usar o Ethereum", "things-to-consider-banner-1": "Cada transação Ethereum requer uma taxa na forma de ETH, mesmo que você precise mover tokens diferentes construídos no Ethereum, como as stablecoins USDC ou DAI.", "things-to-consider-banner-2": "As taxas podem ser altas dependendo do número de pessoas que tentam usar o Ethereum, por isso recomendamos usar", diff --git a/src/intl/pt-br/page-what-is-ethereum.json b/src/intl/pt-br/page-what-is-ethereum.json index bfc9a7debea..0b7c67513a8 100644 --- a/src/intl/pt-br/page-what-is-ethereum.json +++ b/src/intl/pt-br/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "A razão pela qual ativos como bitcoin e ether são chamados de “criptomoedas” é que a segurança de seus dados e ativos é garantida pela criptografia, não por confiar em uma instituição ou corporação para agir honestamente.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "O Ethereum tem sua própria criptomoeda nativa, o ether (ETH), que é usado para pagar por certas atividades na rede. Ele pode ser transferido para outros usuários ou trocado por outros tokens no Ethereum. O Ether é especial porque é usado para pagar a computação necessária para criar e executar aplicativos e organizações no Ethereum.", "page-what-is-ethereum-summary-title": "Resumo", - "page-what-is-ethereum-summary-desc-1": "Ethereum é uma rede de computadores em todo o mundo que segue um conjunto de regras chamado protocolo Ethereum. A rede Ethereum atua como base para comunidades, aplicativos, organizações e ativos digitais que qualquer pessoa pode construir e usar.", - "page-what-is-ethereum-summary-desc-2": "Você pode criar uma conta Ethereum de qualquer lugar, a qualquer momento, e explorar um mundo de aplicativos ou construir o seu próprio. A principal inovação é que você pode fazer tudo isso sem confiar em uma autoridade central que poderia alterar as regras ou restringir seu acesso.", - "page-what-is-ethereum-summary-desc-3": "Continue lendo para aprender mais…", + "page-what-is-ethereum-summary-desc-1": "Ethereum é a principal plataforma para milhares de aplicativos e blockchains, todos alimentados pelo protocolo Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Esse ecossistema vibrante impulsiona a inovação e uma ampla gama de aplicativos e serviços descentralizados.", + "page-what-is-ethereum-summary-bullet-1": "Contas no Ethereum gratuitas e globais", + "page-what-is-ethereum-summary-bullet-2": "Pseudo-privadas, nenhuma informação pessoal necessária", + "page-what-is-ethereum-summary-bullet-3": "Sem restrições, qualquer pessoa pode participar", + "page-what-is-ethereum-summary-bullet-4": "Nenhuma empresa é dona do Ethereum ou decide seu futuro", "page-what-is-ethereum-btc-eth-diff-title": "Qual é a diferença entre Ethereum e Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Lançado em 2015, o Ethereum baseia-se na inovação do Bitcoin, com algumas grandes diferenças.", "page-what-is-ethereum-btc-eth-diff-2": "Ambos permitem que você use dinheiro digital sem provedores de pagamento ou bancos. Mas o Ethereum é programável, então você também pode construir e implantar aplicativos descentralizados em sua rede.", diff --git a/src/intl/pt/page-developers-local-environment.json b/src/intl/pt/page-developers-local-environment.json index 3b570f3189b..b982767636f 100644 --- a/src/intl/pt/page-developers-local-environment.json +++ b/src/intl/pt/page-developers-local-environment.json @@ -29,6 +29,5 @@ "page-local-environment-setup-subtitle-2": "Eis as ferramentas e plataformas que pode utilizar para o ajudar a criar a sua própria aplicação Ethereum.", "page-local-environment-setup-title": "Configurar o seu ambiente de programação local", "page-local-environment-solidity-template-desc": "Um modelo GitHub para uma configuração previamente construída para os seus contratos inteligentes Solidity. Inclui uma rede local Hardhat, Waffle para testes, Ethers para implementação de carteiras e muito mais.", - "page-local-environment-solidity-template-logo-alt": "Logótipo do template Solidity", - "page-local-environment-waffle-desc": "A biblioteca de testes mais avançada para contratos inteligentes. Pode ser usada sozinha ou com Scaffold-eth ou Hardhat." -} + "page-local-environment-solidity-template-logo-alt": "Logótipo do template Solidity" +} \ No newline at end of file diff --git a/src/intl/ro/page-developers-local-environment.json b/src/intl/ro/page-developers-local-environment.json index f32dafd2ccb..22f26b1cd5b 100644 --- a/src/intl/ro/page-developers-local-environment.json +++ b/src/intl/ro/page-developers-local-environment.json @@ -25,7 +25,5 @@ "page-local-environment-setup-subtitle-2": "Iată instrumentele și framework-urile pe care le puteți utiliza ca să vă ajute la crearea aplicației Ethereum.", "page-local-environment-setup-title": "Configurați-vă mediul de dezvoltare locală", "page-local-environment-solidity-template-desc": "Un șablon GitHub pentru o configurație preconstruită pentru contractele dvs. inteligente Solidity. Include o rețea locală Hardhat, Waffle pentru testare, Ethers pentru implementarea portofelului și multe altele.", - "page-local-environment-solidity-template-logo-alt": "Sigla șablonului Solidity", - "page-local-environment-waffle-desc": "Cea mai avansată bibliotecă de testare pentru contractele inteligente. Se utilizează singură sau împreună cu Scafold-eth sau Hardhat.", - "page-local-environment-waffle-logo-alt": "Sigla Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Sigla șablonului Solidity" +} \ No newline at end of file diff --git a/src/intl/ru/page-developers-local-environment.json b/src/intl/ru/page-developers-local-environment.json index 103ef4b601f..567163d29bf 100644 --- a/src/intl/ru/page-developers-local-environment.json +++ b/src/intl/ru/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Вот инструменты и фреймворки, которые вы можете использовать, чтобы создать приложение Ethereum.", "page-local-environment-setup-title": "Настройте локальную среду разработки", "page-local-environment-solidity-template-desc": "Шаблон GitHub для предварительной установки ваших смарт-контрактов Solidity. Включает в себя локальную сеть Hardhat, Waffle для тестирования, Ethers для применения кошелька и многое другое.", - "page-local-environment-solidity-template-logo-alt": "Логотип шаблона Solidity", - "page-local-environment-waffle-desc": "Самая продвинутая тестовая версия для смарт-контрактов. Используйте отдельно или со Scaffold-eth или Hardhat.", - "page-local-environment-waffle-logo-alt": "Логотип Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Логотип шаблона Solidity" +} \ No newline at end of file diff --git a/src/intl/sl/page-developers-local-environment.json b/src/intl/sl/page-developers-local-environment.json index b74c79c8f87..93e9a0cf7b3 100644 --- a/src/intl/sl/page-developers-local-environment.json +++ b/src/intl/sl/page-developers-local-environment.json @@ -25,7 +25,5 @@ "page-local-environment-setup-subtitle-2": " Tukaj so orodja in ogrodja, ki jih lahko uporabite za lažji razvoj svoje aplikacije na Ethereumu.", "page-local-environment-setup-title": "Nastavite svoje lokalno razvojno okolje", "page-local-environment-solidity-template-desc": "GitHubova predloga za vnaprej pripravljeno namestitev za pametne pogodbe Solidity. Vključuje lokalno omrežje Hardhat, Waffle za preskuse, Ethers za uvedbo denarnice in več.", - "page-local-environment-solidity-template-logo-alt": "Logotip predloge Solidity", - "page-local-environment-waffle-desc": "Najnaprednejša knjižnica za preskušanje pametnih pogodb. Uporabite jo samo ali s storitvijo Scaffold-eth ali Hardhat.", - "page-local-environment-waffle-logo-alt": "Logotip Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logotip predloge Solidity" +} \ No newline at end of file diff --git a/src/intl/sr/page-developers-local-environment.json b/src/intl/sr/page-developers-local-environment.json index 859c45dca72..36401a47f45 100644 --- a/src/intl/sr/page-developers-local-environment.json +++ b/src/intl/sr/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Ovde se nalaze alati i okviri koji Vam mogu pomoći u razvijanju Vaše Ethereum aplikacije.", "page-local-environment-setup-title": "Postavite svoje lokalno razvojno okruženje", "page-local-environment-solidity-template-desc": "GitHub-ov šablon za unapred izgrađenu postavku za Vaše Solidity pametne ugovore. Uključuje Hardhat lokalnu mrežu, Waffle za testiranje, Ethers za implementaciju novčanika, i mnogo toga.", - "page-local-environment-solidity-template-logo-alt": "Solidity probni logo", - "page-local-environment-waffle-desc": "Najnaprednija biblioteka za testiranje pametnih ugovora. Koristite je samostalno ili sa Scaffold-eth-om ili Hardhat-om.", - "page-local-environment-waffle-logo-alt": "Waffle-ov logo" -} + "page-local-environment-solidity-template-logo-alt": "Solidity probni logo" +} \ No newline at end of file diff --git a/src/intl/sw/page-developers-local-environment.json b/src/intl/sw/page-developers-local-environment.json index 470d99f1bbe..8d8ee9f373e 100644 --- a/src/intl/sw/page-developers-local-environment.json +++ b/src/intl/sw/page-developers-local-environment.json @@ -25,7 +25,5 @@ "page-local-environment-setup-subtitle-2": "Vifaa na mifumo inayoweza kukusaidia kujenga programu za Ethereum ziko hapa.", "page-local-environment-setup-title": "Anzisha eneo lako rafiki kwaajili ya uundaji", "page-local-environment-solidity-template-desc": "Kiolezo cha GitHub kilichojengwa tayari kwa ajili ya mikataba erevu ya Solidity utakayojenga. Inajumuisha mtandao wa Hardhat, Waffle kwa ajili ya kufanya majaribio, Ethers kwa ajili ya utekelezaji wa pochi, na mengine mengi.", - "page-local-environment-solidity-template-logo-alt": "Nembo kiolezo cha Solidity", - "page-local-environment-waffle-desc": "Maktaba ya juu zaidi ya majaribio kwa mikataba mahiri. Tumia peke yako au kwa Scaffold-eth au Hardhat.", - "page-local-environment-waffle-logo-alt": "Nembo ya Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Nembo kiolezo cha Solidity" +} \ No newline at end of file diff --git a/src/intl/tl/page-developers-local-environment.json b/src/intl/tl/page-developers-local-environment.json index 8b5763f349f..dbf860f0673 100644 --- a/src/intl/tl/page-developers-local-environment.json +++ b/src/intl/tl/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Narito ang mga tool at framework na iyong magagamit at makakatulong sa iyo na gawin ang iyong Ethereum application.", "page-local-environment-setup-title": "I-set up ang iyong lokal na kapaligiran sa pagbuo", "page-local-environment-solidity-template-desc": "Isang GitHub template para sa naunang itinayo na setup para sa iyong Solidity smart contracts. Kabilang dito ang Hardhat local network, Waffle para sa mga pagsusuri, Ethers para sa implementasyon ng wallet, at iba pa.", - "page-local-environment-solidity-template-logo-alt": "Logo ng Solidity template", - "page-local-environment-waffle-desc": "Ang pinakamasulong na testing lib para sa mga smart contract. Gamitin mag-isa o kasama ang Scaffold-eth o Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo ng Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo ng Solidity template" +} \ No newline at end of file diff --git a/src/intl/tr/page-developers-local-environment.json b/src/intl/tr/page-developers-local-environment.json index 6a229b6d4ee..3a4621c41e5 100644 --- a/src/intl/tr/page-developers-local-environment.json +++ b/src/intl/tr/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Ethereum uygulamanızı oluşturmanıza yardımcı olmak için kullanabileceğiniz araçlar ve framework'ler.", "page-local-environment-setup-title": "Sanal geliştirme ortamınızı oluşturun", "page-local-environment-solidity-template-desc": "Solidity akıllı sözleşmeleriniz için önceden oluşturulmuş bir GitHub şablonu. Hardhat yerel ağı, testler için Waffle, cüzdan uygulaması için Etherler ve daha fazlasını içerir.", - "page-local-environment-solidity-template-logo-alt": "Solidity template logosu", - "page-local-environment-waffle-desc": "Akıllı sözleşmeler için en gelişmiş test laboratuvarı. Tek başına veya Scaffold-eth veya Hardhat ile kullanın.", - "page-local-environment-waffle-logo-alt": "Waffle logosu" -} + "page-local-environment-solidity-template-logo-alt": "Solidity template logosu" +} \ No newline at end of file diff --git a/src/intl/uk/page-developers-local-environment.json b/src/intl/uk/page-developers-local-environment.json index c2660eea253..ea6fa30a56e 100644 --- a/src/intl/uk/page-developers-local-environment.json +++ b/src/intl/uk/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": " Ось інструменти та фреймворки, які ви можете використовувати для створення власної програми в мережі Ethereum.", "page-local-environment-setup-title": "Налаштування локального середовища розробки", "page-local-environment-solidity-template-desc": "Шаблон GitHub для попередньо вбудованих налаштувань розумних контрактів мовою Solidity. Включає локальну мережу Hardhat, Waffle для тестування, Ether для запуску гаманця тощо.", - "page-local-environment-solidity-template-logo-alt": "Solidity template logo", - "page-local-environment-waffle-desc": "Найдосконаліша тестова бібліотека для розумних контрактів. Використовуйте окремо або разом із Scaffold-eth або Hardhat.", - "page-local-environment-waffle-logo-alt": "Waffle logo" -} + "page-local-environment-solidity-template-logo-alt": "Solidity template logo" +} \ No newline at end of file diff --git a/src/intl/uz/page-developers-local-environment.json b/src/intl/uz/page-developers-local-environment.json index 46d6c339928..57717619265 100644 --- a/src/intl/uz/page-developers-local-environment.json +++ b/src/intl/uz/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Bu yerda Ethereum ilovasini yaratishda yordam berish uchun foydalanishingiz mumkin bo‘lgan vositalar va freymvorklar keltirilgan.", "page-local-environment-setup-title": "Mahalliy dasturlash muhitini sozlang", "page-local-environment-solidity-template-desc": "Solidity aqlli shartnomalari uchun oldindan yaratilgan sozlash uchun GitHub andozasi. Hardhat mahalliy tarmog‘i, testlar uchun Waffle, hamyonni amalga oshirish uchun efirlar va boshqalarni o‘z ichiga oladi.", - "page-local-environment-solidity-template-logo-alt": "Mustahkamlik andozasi logotipi", - "page-local-environment-waffle-desc": "Aqlli shartnomalar uchun eng zamonaviy sinov kutubxonasi. Uni yakka o‘zi yoki Scaffold-eth yoxud Hardhat bilan birgalikda ishlatishingiz mumkin.", - "page-local-environment-waffle-logo-alt": "Waffle logotipi" -} + "page-local-environment-solidity-template-logo-alt": "Mustahkamlik andozasi logotipi" +} \ No newline at end of file diff --git a/src/intl/vi/page-developers-local-environment.json b/src/intl/vi/page-developers-local-environment.json index 4e697d7507f..105f7ac7c58 100644 --- a/src/intl/vi/page-developers-local-environment.json +++ b/src/intl/vi/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Dưới đây là các công cụ và khung mà bạn có thể sử dụng để xây dựng ứng dụng Ethereum.", "page-local-environment-setup-title": "Thiết lập môi trường phát triển cục bộ của bạn", "page-local-environment-solidity-template-desc": "Mẫu GitHub cho cấu hình hợp đồng thông minh Solidity được tạo sẵn. Chứa mạng cục bộ Hardhat, Waffle để thử nghiệm, Ethers để triển khai ví và các thành phần khác.", - "page-local-environment-solidity-template-logo-alt": "Logo của mẫu Solidity", - "page-local-environment-waffle-desc": "Thư viện tiên tiến nhất để thử nghiệm hợp đồng thông minh. Sử dụng riêng hoặc kết hợp với Scaffold-eth hoặc Hardhat.", - "page-local-environment-waffle-logo-alt": "Logo của Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Logo của mẫu Solidity" +} \ No newline at end of file diff --git a/src/intl/yo/page-developers-local-environment.json b/src/intl/yo/page-developers-local-environment.json index 7f4c271670e..d473965408b 100644 --- a/src/intl/yo/page-developers-local-environment.json +++ b/src/intl/yo/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "Eyi ni awọn irinṣẹ ati awọn ìṣètò ìlànà ti o le lo ti o le ṣe iranlọwọ fun ọ lati kọ ohun elo Ethereum rẹ.", "page-local-environment-setup-title": "Ṣeto ayika idagbasoke agbegbe rẹ", "page-local-environment-solidity-template-desc": "Awose GitHub fún ohún èlò aṣesilẹ fún adehún ọlọgbọn Solidity rẹ. O ni afikun nẹtiwọọki agbegbe Hardhat, Waffle fún igbeyẹwo, Ethers fún iṣamulo wọlẹẹti ati bẹ́ẹ bẹ lọ.", - "page-local-environment-solidity-template-logo-alt": "Àwòrán ìdánimọ̀ Solidity", - "page-local-environment-waffle-desc": "Ohún elo to dara julọ lati ṣayẹwo adehun ọlọgbọn. O le lo lasan tabi pẹlu Scaffol-eth tabi Hardhat.", - "page-local-environment-waffle-logo-alt": "Àwòrán ìdánimọ̀ Waffle" -} + "page-local-environment-solidity-template-logo-alt": "Àwòrán ìdánimọ̀ Solidity" +} \ No newline at end of file diff --git a/src/intl/zh-tw/common.json b/src/intl/zh-tw/common.json index 02fdacf27a0..a287211f94f 100644 --- a/src/intl/zh-tw/common.json +++ b/src/intl/zh-tw/common.json @@ -250,6 +250,8 @@ "nav-emerging-description": "瞭解其他比較新的以太坊使用案例", "nav-emerging-label": "新興使用案例", "nav-ethereum-org-description": "本網站由社群共同推動—請加入我們,一同作出貢獻", + "nav-ethereum-networks": "以太坊網路", + "nav-ethereum-networks-description": "適用以太坊的更便宜且更快速的交易", "nav-ethereum-wallets-description": "與你的以太坊帳戶互動的應用程式", "nav-events-description": "擁有去集中化及自由度,任何人皆可參與", "nav-events-irl-description": "每月皆有可以親自參與及線上參與的主要以太坊事件", @@ -275,16 +277,23 @@ "nav-guides-label": "使用指南", "nav-history-description": "所有主要分叉與升級的時間表", "nav-history-label": "以太坊的技術歷史沿革", - "nav-layer-2-description": "適用以太坊的更便宜且更快速的交易", "nav-learn-by-coding-description": "協助你用以太坊進行實驗的工具", "nav-local-env-description": "選擇並設定你的以太坊開發堆棧", "nav-mainnet-description": "可以將企業區塊鏈應用程式建造於公開的以太坊主網", + "nav-networks-home-description": "適用以太坊的更便宜且更快速的交易", + "nav-networks-introduction-label": "簡介", + "nav-networks-introduction-description": "擴展為網路之網路的以太坊", + "nav-networks-explore-networks-label": "探索網路", + "nav-networks-explore-networks-description": "選擇想使用的網路", + "nav-networks-learn-label": "第二層網路是什麼?", + "nav-networks-learn-description": "了解我們需要它的原因", "nav-nft-description": "一種用以太坊資產來呈現任何獨特事物的方式", "nav-open-research-description": "以太坊的主要優勢之一是其活躍的研究社群", "nav-open-research-label": "開放研究", "nav-overview-description": "以太坊教育的一切", "nav-overview-label": "概觀", "nav-participate-overview-description": "參與方式概覽", + "nav-payments-description": "以太坊支付正在改變我們發送和接收資金的方式", "nav-primary": "主要導覽", "nav-quizzes-description": "瞭解你對以太坊和加密貨幣的理解有多少", "nav-quizzes-label": "測試你的知識", @@ -356,6 +365,7 @@ "page-last-updated": "頁面上次更新", "participate": "參與方式", "participate-menu": "參與選單", + "payments-page": "付款", "pbs": "提交者-建置者分離", "pools": "聯合質押", "privacy-policy": "隱私條款", diff --git a/src/intl/zh-tw/glossary-tooltip.json b/src/intl/zh-tw/glossary-tooltip.json index 5ff8f15e3f1..bfc02d5d4b9 100644 --- a/src/intl/zh-tw/glossary-tooltip.json +++ b/src/intl/zh-tw/glossary-tooltip.json @@ -57,7 +57,7 @@ "erc-20-definition": "是以太坊網路上大多數代幣建立時所使用的標準規則集。", "erc-721-term": "ERC-721", "erc-721-definition": "用於建立 NFT(非同質化代幣)的標準規則集。", - "ether-term": "以太幣", + "ether-term": "以太幣 (Ether)", "ether-definition": "以太坊的原生加密貨幣,通常稱為「以太幣」。它用於支付使用以太坊生態系統和應用程式時的交易費。更多關於以太幣的資訊。", "events-term": "事件", "events-definition": "允許使用以太坊虛擬機器日誌記錄工具。去中心化應用程式可以監聽事件並使用它們在使用者介面中觸發 JavaScript 回調。更多關於事件和日誌的資訊", @@ -101,8 +101,8 @@ "node-definition": "參與網路的軟體用戶端。更多關於節點和用戶端的資訊。", "ommer-term": "Ommer(叔)區塊", "ommer-definition": "當工作量證明礦工發現有效的區塊時,另一個礦工可能已經發布了首先新增到區塊鏈頂端的競爭區塊。這個有效但過時的區塊可以作為 ommer 被新區塊包含,並獲得部分區塊獎勵。術語「ommer」是對父塊的兄弟姐妹區塊的首選中性術語,但有時也被稱為「叔」。當以太坊仍是工作證明網路時,這對於以太坊來說很常見。現在以太坊使用權益證明,每個時隙只會選擇一個區塊提議者。", - "onchain-term": "鏈上", - "onchain-definition": "指在區塊鏈上發生且公開的操作或交易。", + "on-chain-term": "鏈上", + "on-chain-definition": "指在區塊鏈上發生且公開的操作或交易。", "optimistic-rollup-term": "樂觀卷軸", "optimistic-rollup-definition": "樂觀卷軸是一種二層網路解決方案,可以加速以太坊上的交易,假設除非受到挑戰,否則預設交易都是有效的。更多關於樂觀卷軸的資訊。", "peer-to-peer-network-term": "點對點網路", diff --git a/src/intl/zh-tw/glossary.json b/src/intl/zh-tw/glossary.json index b92580ef626..5ee821f0479 100644 --- a/src/intl/zh-tw/glossary.json +++ b/src/intl/zh-tw/glossary.json @@ -123,9 +123,9 @@ "epoch-definition": "32 個時隙組成的期間,每個時隙為 12 秒,共有 6.4 分鐘。基於安全性考量,驗證者委員會每個時期都會重新洗牌。每個時期都有讓區塊鏈達到最終確定的機會。每個驗證者在時期開始時都會被分配新的職責。關於權益證明的更多資訊。", "equivocation-term": "模稜兩可", "equivocation-definition": "驗證者發送兩則互相矛盾的訊息。舉個簡單的例子,交易的發送者同時發送兩則具有相同隨機數的交易。另一個例子是區塊提議者在同個區塊高度(或相同的時隙)提議兩個區塊。", - "eth1-term": "以太坊 1", + "eth1-term": "Eth1", "eth1-definition": "「Eth1」指主網以太坊,即現有的工作量證明區塊鏈的術語。此後該術語已被棄用,取而代之的是「執行層」。詳細了解此名稱變更。", - "eth2-term": "以太坊 2", + "eth2-term": "Eth2", "eth2-definition": "「Eth2」指的是一系列以太坊協議升級的術語,包括以太坊過渡成權益證明。此後該術語已被棄用,取而代之的是「共識層」。詳細了解此名稱變更。", "eip-term": "以太坊改進提案 (EIP)", "eip-definition": "向以太坊社群提供資訊的設計文件,描述擬議的新功能或其流程或環境(請參閱以太坊開發者公開徵求意見 (ERC))。以太坊改進提案簡介", @@ -147,7 +147,7 @@ "erc-definition": "ERC(以太坊開發者公開徵求意見)是以太坊社群使用的一種技術文檔,旨在為以太坊網路提出新的使用標準。

                                        這些提案可以涵蓋廣泛的主題,包括新的代幣標準(例如用於代幣的 ERC-20 和用於非同質化代幣的 ERC-721)。", "ethash-term": "Ethash", "ethash-definition": "在轉換為權益證明之前在以太坊上使用的工作量證明演算法。了解更多", - "ether-term": "以太幣", + "ether-term": "以太幣 (Ether)", "ether-definition": "以太坊的原生加密貨幣,通常稱為「以太幣」。它用於支付使用以太坊生態系統和應用程式時的交易費。更多關於以太幣的資訊。", "events-term": "事件", "events-definition": "允許使用以太坊虛擬機器日誌記錄工具。去中心化應用程式可以監聽事件並使用它們在使用者介面中觸發 JavaScript 回調。更多關於事件和日誌的資訊", @@ -257,12 +257,12 @@ "node-definition": "參與網路的軟體用戶端。更多關於節點和用戶端的資訊。", "nonce-term": "隨機數", "nonce-definition": "在密碼學裏,只能使用一次的值。帳戶隨機數是每個帳戶中的交易計數器,用於防止重播攻擊。", - "offchain-term": "鏈下", - "offchain-definition": "鏈下是指存在於區塊鏈以外的任何交易或資料。由於在鏈上提交每筆交易可能成本高昂且效率低下,因此第三方工具(例如處理定價資料的預言機)或執行更高吞吐量交易的二層網路解決方案,在鏈下處理大量工作並會以較低的頻率提交資訊到鏈上。", + "off-chain-term": "鏈下", + "off-chain-definition": "鏈下是指存在於區塊鏈以外的任何交易或資料。由於在鏈上提交每筆交易可能成本高昂且效率低下,因此第三方工具(例如處理定價資料的預言機)或執行更高吞吐量交易的二層網路解決方案,在鏈下處理大量工作並會以較低的頻率提交資訊到鏈上。", "ommer-term": "Ommer(叔)區塊", "ommer-definition": "當工作量證明礦工發現有效的區塊時,另一個礦工可能已經發布了首先新增到區塊鏈頂端的競爭區塊。這個有效但過時的區塊可以作為 ommer 被新區塊包含,並獲得部分區塊獎勵。術語「ommer」是對父塊的兄弟姐妹區塊的首選中性術語,但有時也被稱為「叔」。當以太坊仍是工作證明網路時,這對於以太坊來說很常見。現在以太坊使用權益證明,每個時隙只會選擇一個區塊提議者。", - "onchain-term": "鏈上", - "onchain-definition": "指在區塊鏈上發生且公開的操作或交易。

                                        可以將其視為在一個共享大筆記本中寫一些東西,每個人都可以看到和檢查,確保所寫的內容(例如傳送數位貨幣或簽訂合約)是永久性的並且無法更改或刪除。", + "on-chain-term": "鏈上", + "on-chain-definition": "指在區塊鏈上發生且公開的操作或交易。

                                        可以將其視為在一個共享大筆記本中寫一些東西,每個人都可以看到和檢查,確保所寫的內容(例如傳送數位貨幣或簽訂合約)是永久性的並且無法更改或刪除。", "optimistic-rollup-term": "樂觀卷軸", "optimistic-rollup-definition": "樂觀卷軸是一種二層網路解決方案,可以加速以太坊上的交易,假設除非受到挑戰,否則預設交易都是有效的。更多關於樂觀卷軸的資訊。", "oracle-term": "預言機", diff --git a/src/intl/zh-tw/learn-quizzes.json b/src/intl/zh-tw/learn-quizzes.json index cf5ae38b49d..91f86998cdb 100644 --- a/src/intl/zh-tw/learn-quizzes.json +++ b/src/intl/zh-tw/learn-quizzes.json @@ -30,17 +30,17 @@ "your-results": "你的成績", "your-total": "你的總分", "what-is-ethereum-1-prompt": "以太坊和比特幣最大的區別:", - "what-is-ethereum-1-a-label": "以太坊不能讓你付款給別人", + "what-is-ethereum-1-a-label": "以太坊不讓你付款給他人", "what-is-ethereum-1-a-explanation": "比特幣和以太坊都能讓你付款給他人。", "what-is-ethereum-1-b-label": "可以在以太坊上執行電腦程式", - "what-is-ethereum-1-b-explanation": "以太坊經由程式控制,這意味著可以在以太坊區塊鏈上使用任何電腦程式。", - "what-is-ethereum-1-c-label": "你可以在 Bitcoin 上執行電腦程式", + "what-is-ethereum-1-b-explanation": "以太坊可以初始化,這意味著可以在以太坊區塊鏈上使用任何電腦程式。", + "what-is-ethereum-1-c-label": "可以在比特幣上執行電腦程式", "what-is-ethereum-1-c-explanation": "與以太坊不同,比特幣不可程式化,無法任意執行電腦程式。", "what-is-ethereum-1-d-label": "它們的標誌不同", "what-is-ethereum-1-d-explanation": "它們的標誌確實不同!但這不是它們之間最大的差異。", "what-is-ethereum-2-prompt": "以太坊的原生加密貨幣稱為:", - "what-is-ethereum-2-a-label": "以太幣", - "what-is-ethereum-2-a-explanation": "以太幣是以太坊網路的原生加密貨幣。", + "what-is-ethereum-2-a-label": "以太幣 (Ether)", + "what-is-ethereum-2-a-explanation": "以太幣 (Ether) 是以太坊網路的原生加密貨幣。", "what-is-ethereum-2-b-label": "Ethereum", "what-is-ethereum-2-b-explanation": "以太坊是區塊鏈,而它的原生加密貨幣並不稱為「以太坊」,這是個常見的誤解。", "what-is-ethereum-2-c-label": "Ethercoin", @@ -55,13 +55,13 @@ "what-is-ethereum-3-c-label": "以太坊基金會", "what-is-ethereum-3-c-explanation": "以太坊基金會在以太坊節點的日常運行中不扮演任何重要角色。", "what-is-ethereum-3-d-label": "運行節點的任何人", - "what-is-ethereum-3-d-explanation": "運行節點的所有人都在以太坊基礎建設中扮演了重要的角色。如果你還沒有運行過以太坊節點,可以考慮看看。", + "what-is-ethereum-3-d-explanation": "運行節點的所有人都在以太坊基礎設施中扮演了重要的角色。如果你還沒有運行過以太坊節點,可以考慮看看。", "what-is-ethereum-4-prompt": "自上線以來,以太坊網路離線了幾次?", "what-is-ethereum-4-a-label": "從來沒有", + "what-is-ethereum-4-a-explanation": "自上線以來,以太坊從未完全離線(停止出塊)。", "what-is-ethereum-4-b-label": "一次", "what-is-ethereum-4-c-label": "四次", "what-is-ethereum-4-d-label": "超過十次", - "what-is-ethereum-4-explanation": "自上線以來,以太坊從未完全離線(停止出塊)。", "what-is-ethereum-5-prompt": "電能消耗少於以太坊的有:", "what-is-ethereum-5-a-label": "開採金礦", "what-is-ethereum-5-a-explanation": "開採金礦每年耗費約 131 太瓦時。以太坊每年耗費約 0.0026 太瓦時。", @@ -70,50 +70,50 @@ "what-is-ethereum-5-c-label": "PayPal", "what-is-ethereum-5-c-explanation": "PayPal 每年耗費約 0.26 太瓦時。以太坊每年耗費約 0.0026 太瓦時。", "what-is-ethereum-5-d-label": "以上皆非", - "what-is-ethereum-5-d-explanation": "以太坊每年耗費約 0.0026 太瓦時,遠低於金礦開採(每年約 131 太瓦時)、Netflix (每年約 0.451 太瓦時)以及 Paypal(每年約 0.26 太瓦時)。", + "what-is-ethereum-5-d-explanation": "以太坊每年耗費約 0.0026 太瓦時,遠低於金礦開採(每年約 131 太瓦時)、Netflix(每年約 0.451 太瓦時)以及 Paypal(每年約 0.26 太瓦時)。", "what-is-ether-1-prompt": "以太幣又稱:", "what-is-ether-1-a-label": "ETC", - "what-is-ether-1-a-explanation": "ETC 是以太坊經典的貨幣程式碼。", + "what-is-ether-1-a-explanation": "ETC 是以太坊經典的代幣名稱。", "what-is-ether-1-b-label": "ETR", - "what-is-ether-1-b-explanation": "ETR 並不是以太幣或任何主流加密貨幣的貨幣程式碼。", + "what-is-ether-1-b-explanation": "ETR 並不是以太幣或任何主流加密貨幣的代幣名稱。", "what-is-ether-1-c-label": "以太幣", - "what-is-ether-1-c-explanation": "ETH 是以太坊上以太幣的貨幣程式碼。", + "what-is-ether-1-c-explanation": "ETH 是以太坊上以太幣的代幣名稱。", "what-is-ether-1-d-label": "BTC", - "what-is-ether-1-d-explanation": "BTC 是比特幣網路上比特幣的貨幣程式碼。", + "what-is-ether-1-d-explanation": "BTC 是比特幣網路上比特幣的代幣名稱。", "what-is-ether-2-prompt": "在以太坊,網路費用使用什麼支付:", "what-is-ether-2-a-label": "比特幣", "what-is-ether-2-a-explanation": "首字母小寫的「bitcoin」是比特幣網路的原生加密貨幣。", "what-is-ether-2-b-label": "以太幣", - "what-is-ether-2-b-explanation": "以太幣 (ETH) 是以太坊的原生加密貨幣。以太坊上所有交易費都以以太幣支付。", + "what-is-ether-2-b-explanation": "以太幣 (ETH) 是以太坊的原生加密貨幣。以太坊上所有網路費用都以以太幣支付。", "what-is-ether-2-c-label": "美元", "what-is-ether-2-c-explanation": "在以太坊,不能使用美金(美元)或其他法定貨幣支付網路費用。", "what-is-ether-2-d-label": "Ethereum", "what-is-ether-2-d-explanation": "以太坊是指網路,而以太坊的網路費用應以以太幣支付。", "what-is-ether-3-prompt": "在以太坊上質押有助於鞏固網路安全,因為:", - "what-is-ether-3-a-label": "如果質押者不喜歡某人正在做的事,可以直接封鎖此人。", + "what-is-ether-3-a-label": "如果質押者不喜歡某人正在做的事,可以直接封禁此人", "what-is-ether-3-a-explanation": "質押者無法任意審查使用者。", - "what-is-ether-3-b-label": "如果某質押者嘗試欺騙網路,他們需承擔損失質押中以太幣的風險。", - "what-is-ether-3-b-explanation": "若質押者對網路做出可疑行為,將可能損失大量以太幣,這稱為「罰沒」。", + "what-is-ether-3-b-label": "如果某質押者嘗試欺騙網路,他們需承擔損失以太幣的風險", + "what-is-ether-3-b-explanation": "若質押者對網路做出惡意行為,將可能損失大量以太幣,這稱為「罰沒」。", "what-is-ether-3-c-label": "質押者運行強大的電腦以展示工作量證明", "what-is-ether-3-c-explanation": "質押者並不需要強大的硬體來質押他們的以太幣。合併後以太坊已停止使用工作量證明。", - "what-is-ether-3-d-label": "質押者在被接受為驗證者前需經過「認識客戶」驗證。", - "what-is-ether-3-d-explanation": "在以太坊上質押無需許可且不需要「認識客戶」驗證。", + "what-is-ether-3-d-label": "質押者在被接受為驗證者前需經過「了解你的客戶」(KYC) 驗證", + "what-is-ether-3-d-explanation": "在以太坊上質押無需許可且不需要「了解你的客戶」(KYC) 驗證。", "what-is-ether-4-prompt": "以太幣可以用於:", "what-is-ether-4-a-label": "支付以太坊上的交易費", "what-is-ether-4-a-explanation": "部分正確,但這僅是以太幣的眾多用途之一。", "what-is-ether-4-b-label": "抗審查的點對點支付系統", "what-is-ether-4-b-explanation": "部分正確,但這僅是以太幣的眾多用途之一。", - "what-is-ether-4-c-label": "用於借貸加密貨幣的抵押品", + "what-is-ether-4-c-label": "借貸加密貨幣的抵押品", "what-is-ether-4-c-explanation": "部分正確,但這僅是以太幣的眾多用途之一。", "what-is-ether-4-d-label": "以上皆是", - "what-is-ether-4-d-explanation": "以太坊交易無法被審查,在以太坊上進行任何轉帳都需要以太幣。這對去中心化金融生態系統的穩定性非常重要。", - "web3-1-prompt": "Web3 可以透過什麼讓使用者直接擁有數位資產:", + "what-is-ether-4-d-explanation": "以太坊交易無法被審查,在以太坊上進行任何交易都需要以太幣。這對去中心化金融生態系統的穩定性至關重要。", + "web3-1-prompt": "Web3 可以透過什麼讓使用者擁有數位資產:", "web3-1-a-label": "代幣", "web3-1-a-explanation": "代幣提供了一種方式來表示可互換的價值單位,且由以太坊帳戶擁有。雖然代幣可以代表所有權,但在以太坊上擁有數位資產的方式還有很多。", "web3-1-b-label": "非同質化代幣", "web3-1-b-explanation": "NFT(非同質化代幣)提供了一種方式,能夠將任何獨特的事物用以太坊資產來表示。雖然非同質化代幣可以代表所有權,但在以太坊上擁有數位資產的方式還有很多。", - "web3-1-c-label": "以太坊名稱服務", - "web3-1-c-explanation": "ENS(以太坊域名服務)是一種以太坊區塊鏈上的去中心化的域名服務。它們可以代表擁有權,但在以太坊上擁有數位資產的方式還有很多。", + "web3-1-c-label": "以太坊域名服務(ENS)", + "web3-1-c-explanation": "ENS(以太坊域名服務)是一種以太坊區塊鏈上的去中心化域名服務。它們可以代表擁有權,但在以太坊上擁有數位資產的方式還有很多。", "web3-1-d-label": "以上皆是", "web3-1-d-explanation": "所有這些選項都提供了在以太坊上擁有數字資產的方式。代幣、非同質化代幣和以太坊域名服務都是表示數字資產所有權的方式。", "web3-2-prompt": "Web1 是唯讀,Web2 是可讀寫,Web3 則描述為:", @@ -154,9 +154,9 @@ "web3-5-d-explanation": "使用推特登入並不抗審查。", "wallets-1-prompt": "最安全的錢包類型為:", "wallets-1-a-label": "移動端錢包", - "wallets-1-a-explanation": "移動端錢包將私密金鑰儲存在手機上,一般來說是連網的,因此可能會受到其他惡意軟體的攻擊。", + "wallets-1-a-explanation": "移動端錢包將私密金鑰儲存在移動裝置上,一般來說是連網的,因此可能會受到其他惡意軟體的攻擊。", "wallets-1-b-label": "硬體錢包", - "wallets-1-b-explanation": "硬體錢包的私密金鑰儲存在專用且可保持斷網的裝置上,同時也獨立於你常用裝置上的應用程式。", + "wallets-1-b-explanation": "硬體錢包的私密金鑰儲存在專用且可保持斷網的裝置上,同時也獨立於你常用裝置上的其他應用程式。", "wallets-1-c-label": "網頁版錢包", "wallets-1-c-explanation": "網頁版錢包的安全性低於硬體錢包,因為私密金鑰儲存在連網裝置上。", "wallets-1-d-label": "桌面版錢包", @@ -165,53 +165,53 @@ "wallets-2-a-label": "截圖存在手機上", "wallets-2-a-explanation": "這不是最安全的選項。若此照片被上傳到雲端儲存空間,駭客就有可能拿到這張圖片並取得存取你帳戶的權限。", "wallets-2-b-label": "存在你電腦的檔案中", - "wallets-2-b-explanation": "這不是最安全的選項。駭客越來越常在目標裝置上搜尋加密貨幣相關資訊。如果駭客存取內有你種子助記詞的檔案,那他就有權存取你的以太坊帳戶。", + "wallets-2-b-explanation": "這不是最安全的選項。駭客越來越常在目標裝置上搜尋加密貨幣相關資訊。如果駭客存取內有你種子助記詞的檔案,那他就會取得存取你帳戶的權限。", "wallets-2-c-label": "儲存在你傳送給你信任的家庭成員的簡訊中", - "wallets-2-c-explanation": "你永遠不該將你的種子助記詞傳給任何人。因為訊息可能被第三方攔截,即使你絕對相信這個人,你也沒有辦法確定誰會使用他們的手機。", + "wallets-2-c-explanation": "你永遠不該將你的種子助記詞傳給任何人。因為訊息可能被第三方攔截,並且即使你絕對相信這個人,你也沒有辦法確定誰會使用他們的手機。", "wallets-2-d-label": "以上皆非", - "wallets-2-d-explanation": "你的種子助記詞應該以安全、最好是離線的方式儲存。因此,通常建議將它寫在紙上,但安全的密碼管理器是個不錯的選擇。", + "wallets-2-d-explanation": "你的種子助記詞應該以安全、最好是離線的方式儲存。因此,通常建議將它寫在紙上,但安全的密碼管理器也是個不錯的選擇。", "wallets-3-prompt": "你應該將你的種子助記詞 / 私密金鑰交給誰?", "wallets-3-a-label": "你付款的對象", - "wallets-3-a-explanation": "永遠不該將你的種子助記詞或私密金鑰傳給任何人。你應該透過交易傳送對應的代幣至他們的錢包地址。", + "wallets-3-a-explanation": "你永遠不該將你的種子助記詞或私密金鑰傳給任何人。而是應該透過交易傳送對應的代幣至他們的錢包地址。", "wallets-3-b-label": "用來登入某個去中心化應用程式或錢包", "wallets-3-b-explanation": "你永遠不該將你的種子助記詞 / 私密金鑰提供給欲登入的錢包或去中心化應用程式。", "wallets-3-c-label": "客服", "wallets-3-c-explanation": "你永遠不該將你的種子助記詞 / 私密金鑰提供給任何聲稱自己是客服的人。任何向你索取這些資訊的都是騙子。", "wallets-3-d-label": "不給任何人", - "wallets-3-d-explanation": "理想情況下,永遠不該將你的種子助記詞 / 私密金鑰提供給任何人。若你絕對信任某人,使其有存取你資產的完整權限(例如配偶),那麼你可以選擇與其共享此資訊。", + "wallets-3-d-explanation": "理想情況下,你永遠不該將你的種子助記詞 / 私密金鑰提供給任何人。若你絕對信任某人,使其有存取你資產的完整權限(例如配偶),那麼你可以選擇與其共享此資訊。", "wallets-4-prompt": "以太坊上錢包和帳戶是一樣的東西。", "wallets-4-a-label": "是", "wallets-4-a-explanation": "錢包是與以太坊帳戶互動的視覺化介面。", "wallets-4-b-label": "否", "wallets-4-b-explanation": "錢包是與以太坊帳戶互動的視覺化介面。", "security-1-prompt": "為什麼應為不同帳戶設定不同密碼?", - "security-1-a-label": "以防其中某個平臺發生資料洩漏", + "security-1-a-label": "以防其中某個平台發生資料洩漏", "security-1-a-explanation": "回答正確,但還有其他正確的答案。", "security-1-b-label": "以防某人在你背後偷看你的密碼", "security-1-b-explanation": "回答正確,但還有其他正確的答案。", "security-1-c-label": "以防惡意軟體如鍵盤記錄器,偷走你的密碼", "security-1-c-explanation": "回答正確,但還有其他正確的答案。", "security-1-d-label": "以上皆是", - "security-1-d-explanation": "所有答案皆正確。使用不重複的密碼是防止除你以外的任何人存取自身帳戶的最佳選擇。", + "security-1-d-explanation": "所有答案皆正確。使用不重複的密碼是防止除你以外的任何人存取你的帳戶的最佳選擇。", "security-2-prompt": "合併後,以太幣必須升級到以太幣 2。", "security-2-a-label": "是", "security-2-a-explanation": "不需要將你的以太幣升級至以太幣 2。並沒有以太幣 2 這種東西,這是騙子常用的話術。", "security-2-b-label": "否", "security-2-b-explanation": "不需要將你的以太幣升級至以太幣 2。並沒有以太幣 2 這種東西,這是騙子常用的話術。", - "security-3-prompt": "以太幣贈送活動是:", + "security-3-prompt": "以太幣贈獎活動是:", "security-3-a-label": "獲得更多以太幣的好方法", - "security-3-a-explanation": "以太幣贈送活動是由詐騙者設計的,目的是盜取你的以太幣及其他代幣。這絕對不是一個獲得更多以太幣的好方法。", + "security-3-a-explanation": "以太幣贈獎活動是由詐騙者設計的,目的是盜取你的以太幣及其他代幣。這絕對不是一個獲得更多以太幣的好方法。", "security-3-b-label": "一定是真的", - "security-3-b-explanation": "以太坊贈送活動絕對不是真的。", + "security-3-b-explanation": "以太坊贈獎活動絕對不是真的。", "security-3-c-label": "常由社群中重要的成員舉辦", - "security-3-c-explanation": "社群中的重要成員並不會舉辦以太幣贈送活動。詐騙者會偽裝成名人,如 Elon Musk,讓大家認為這個活動或許是真的。", + "security-3-c-explanation": "社群中的重要成員並不會舉辦以太幣贈獎活動。詐騙者會偽裝成名人,如 Elon Musk,讓大家認為這個活動或許是真的。", "security-3-d-label": "非常有可能是詐騙", - "security-3-d-explanation": "以太幣贈送活動一定是詐騙。檢舉並忽略詐騙者是最佳選擇。", - "security-4-prompt": "以太坊交易是可逆轉的。", + "security-3-d-explanation": "以太幣贈獎活動一定是詐騙。檢舉並忽略詐騙者是最佳選擇。", + "security-4-prompt": "以太坊交易是可逆的。", "security-4-a-label": "是", - "security-4-a-explanation": "以太坊交易不可逆。任何告訴你可逆的人很可能是騙子。", + "security-4-a-explanation": "以太坊交易是不可逆的。任何告訴你可逆的人很可能是騙子。", "security-4-b-label": "否", - "security-4-b-explanation": "以太坊交易不可逆。任何告訴你可逆的人很可能是騙子。", + "security-4-b-explanation": "以太坊交易是不可逆的。任何告訴你可逆的人很可能是騙子。", "nfts-1-prompt": "非同質化代幣最完整的定義為:", "nfts-1-a-label": "獨一無二的數位資產", "nfts-1-a-explanation": "非同質化代幣代表獨一無二的數位資產。", @@ -223,18 +223,18 @@ "nfts-1-d-explanation": "雖然具有法律約束力的合約可以非同質化代幣的形式呈現,但非同質化代幣的用途不限於具法律約束力的合約。", "nfts-2-prompt": "代表同一藝術品的兩個非同質化代幣是一樣的東西。", "nfts-2-a-label": "是", - "nfts-2-a-explanation": "非同質化代幣,顧名思義為非同質化。這表示即使代表同一件數位藝術品,它們仍具有獨一無二的可辨別性。在傳統藝術領域,這類似於真品和複製品的差異。", + "nfts-2-a-explanation": "非同質化代幣,顧名思義為非同質化。這表示即使代表同一件數位藝術品,它們仍具有獨一無二的可辨別性。在傳統藝術領域,這可能類似於真品和複製品的差異。", "nfts-2-b-label": "否", - "nfts-2-b-explanation": "非同質化代幣,顧名思義為非同質化。這表示即使代表同一件數位藝術品,它們仍具有獨一無二的可辨別性。在傳統藝術領域,這類似於真品和複製品的差異。", + "nfts-2-b-explanation": "非同質化代幣,顧名思義為非同質化。這表示即使代表同一件數位藝術品,它們仍具有獨一無二的可辨別性。在傳統藝術領域,這可能類似於真品和複製品的差異。", "nfts-3-prompt": "非同質化代幣最常用於表示:", "nfts-3-a-label": "你錢包的密碼", "nfts-3-a-explanation": "這是個充滿安全風險的壞主意!", "nfts-3-b-label": "唯一數位物品的所有權", - "nfts-3-b-explanation": "非同質化代幣常用於象徵唯一數位物品的所有權。", + "nfts-3-b-explanation": "非同質化代幣常用於表示唯一數位物品的所有權。", "nfts-3-c-label": "你目前的以太幣餘額", "nfts-3-c-explanation": "非同質化代幣無法隨意表示你的以太幣餘額。", "nfts-3-d-label": "以上皆是", - "nfts-3-d-explanation": "非同質化代幣常用於象徵唯一數位物品的所有權,而非你的以太幣餘額或錢包密碼。", + "nfts-3-d-explanation": "非同質化代幣常用於表示唯一數位物品的所有權,而非你的以太幣餘額或錢包密碼。", "nfts-4-prompt": "非同質化代幣有助於創造新的:", "nfts-4-a-label": "策展人經濟", "nfts-4-a-explanation": "非同質化代幣有助於創造新的創作者經濟,而非策展人經濟。", @@ -243,7 +243,7 @@ "nfts-4-c-label": "創作者經濟", "nfts-4-c-explanation": "非同質化代幣有助於創造創作者經濟。", "nfts-4-d-label": "狗狗幣經濟", - "nfts-4-d-explanation": "非同質化代幣有助於創造新的創作者經濟,而非狗狗幣經濟🐶。", + "nfts-4-d-explanation": "非同質化代幣有助於創造新的創作者經濟,而非狗狗幣經濟 🐶。", "nfts-5-prompt": "以太坊上的非同質化代幣對環境有害", "nfts-5-a-label": "是", "nfts-5-a-explanation": "在合併(過渡到權益證明)後,每筆交易對環境的影響微乎其微。", @@ -252,21 +252,21 @@ "rollups-1-prompt": "二層區塊鏈網路用於:", "rollups-1-a-label": "以太坊擴容", "rollups-1-a-explanation": "卷軸與其他二層網路解決方案主要是為了以太坊的擴容。", - "rollups-1-b-label": "付款", + "rollups-1-b-label": "進行付款", "rollups-1-b-explanation": "卷軸與其他二層網路解決方案主要是為了以太坊的擴容。", "rollups-1-c-label": "購買非同質化代幣", "rollups-1-c-explanation": "卷軸與其他二層網路解決方案主要是為了以太坊的擴容。", "rollups-1-d-label": "使以太坊去中心化", "rollups-1-d-explanation": "卷軸與其他二層網路解決方案主要是為了以太坊的擴容。", - "rollups-2-prompt": "為了擴容,大部分同類型一層網路主要會犧牲:", + "rollups-2-prompt": "為了擴容,大部分替代的一層網路主要會犧牲:", "rollups-2-a-label": "安全性", - "rollups-2-a-explanation": "為了擴容,大部分同類型一層網路主要會犧牲安全性以及其他方面。", + "rollups-2-a-explanation": "為了擴容,大部分替代的一層網路主要會犧牲安全性以及其他方面。", "rollups-2-b-label": "去中心化", - "rollups-2-b-explanation": "為了擴容,大部分同類型一層網路主要會犧牲去中心化程度以及其他方面。", - "rollups-2-c-label": "幣價", - "rollups-2-c-explanation": "幣價對擴容能力並沒有任何影響。", + "rollups-2-b-explanation": "為了擴容,大部分替代的一層網路主要會犧牲去中心化程度以及其他方面。", + "rollups-2-c-label": "代幣價格", + "rollups-2-c-explanation": "代幣價格對擴容能力並沒有任何影響。", "rollups-2-d-label": "安全性及去中心化程度", - "rollups-2-d-explanation": "為了擴容,大部分同類型一層網路主要會犧牲安全性以及去中心化程度。", + "rollups-2-d-explanation": "為了擴容,大部分替代的一層網路主要會犧牲安全性以及去中心化程度。", "rollups-3-prompt": "下列何者不被視為二層網路?", "rollups-3-a-label": "Validium", "rollups-3-a-explanation": "Validium 不被視為二層網路解決方案,因為它們並沒有繼承以太坊的安全性或資料可用性。這不是唯一的正確答案。", @@ -275,16 +275,16 @@ "rollups-3-c-label": "其他一層網路區塊鏈", "rollups-3-c-explanation": "其他一層網路區塊鏈不被視為二層網路解決方案。這不是唯一的正確答案。", "rollups-3-d-label": "以上皆是", - "rollups-3-d-explanation": "Validiums、側鏈以及其他一層網路區塊鏈不被視為二層網路解決方案,因為它們並沒有從以太坊獲得安全性或資料可用性。", + "rollups-3-d-explanation": "Validiums、側鏈以及其他一層網路區塊鏈均不被視為二層網路解決方案,因為它們並沒有繼承以太坊的安全性或資料可用性。", "rollups-4-prompt": "為什麼以太坊沒有「官方」的二層網路?", "rollups-4-a-label": "核心開發者忙於開發以太坊", - "rollups-4-a-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的多種設計方式。", + "rollups-4-a-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的眾多設計方式。", "rollups-4-b-label": "作為一層網路,以太坊最終會自行完成大規模擴容", - "rollups-4-b-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的多種設計方式。", + "rollups-4-b-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的眾多設計方式。", "rollups-4-c-label": "核心開發者仍在討論樂觀卷軸與零知識卷軸何者較佳", - "rollups-4-c-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的多種設計方式。", - "rollups-4-d-label": "以太坊將受益於二層網路的多種設計方式。", - "rollups-4-d-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的多種設計方式。", + "rollups-4-c-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的眾多設計方式。", + "rollups-4-d-label": "以太坊將受益於二層網路的眾多設計方式", + "rollups-4-d-explanation": "目前以太坊沒有「官方」二層網路的計劃,因為我們將受益於二層網路解決方案的眾多設計方式。", "merge-1-prompt": "合併後以太坊改用了哪種共識機制?", "merge-1-a-label": "工作量證明", "merge-1-a-explanation": "工作量證明是合併前使用的共識機制。", @@ -293,7 +293,7 @@ "merge-1-c-label": "權威證明", "merge-1-c-explanation": "以太坊目前沒有,也從未在以太坊主網上使用權威證明機制。", "merge-1-d-label": "以上皆是", - "merge-1-d-explanation": "以太坊不可能同時使用這些共識機制。", + "merge-1-d-explanation": "以太坊不可能同時使用所有這些共識機制。", "merge-2-prompt": "合併後以太坊能源消耗降低了多少:", "merge-2-a-label": "50%", "merge-2-a-explanation": "合併後,以太坊從工作量證明過渡到權益證明,能源消耗降低了 99.95%。", @@ -311,34 +311,34 @@ "merge-3-c-label": "2013 年 11 月 27 日", "merge-3-c-explanation": "合併發生在這之後。2013 年 11 月 27 日是以太坊白皮書發佈的日子。", "merge-3-d-label": "2008 年 10 月 31 日", - "merge-3-d-explanation": "合併發生在這之後。 10 月 31 日是比特幣白皮書發佈的日子。", + "merge-3-d-explanation": "合併發生在這之後。10 月 31 日是比特幣白皮書發佈的日子。", "merge-4-prompt": "合併表示使用者必須將它們的以太幣換成以太幣 2:", "merge-4-a-label": "是", - "merge-4-a-explanation": "不論是合併前、合併時或者合併後,以太幣都沒有任何改變。以太幣要「升級」到以太幣 2 是騙子常用的話術。", + "merge-4-a-explanation": "不論是合併前、合併時或者合併後,以太幣都沒有任何改變。以太幣要「升級」到以太幣 2 是惡意行為者欺騙使用者常用的話術。", "merge-4-b-label": "否", - "merge-4-b-explanation": "不論是合併前、合併時或者合併後,以太幣都沒有任何改變。以太幣要「升級」到以太幣 2 是騙子常用的話術。", + "merge-4-b-explanation": "不論是合併前、合併時或者合併後,以太幣都沒有任何改變。以太幣要「升級」到以太幣 2 是惡意行為者欺騙使用者常用的話術。", "merge-5-prompt": "以太坊共識層以前稱為:", "merge-5-a-label": "工作量證明", "merge-5-a-explanation": "工作量證明是合併前使用的共識機制。", - "merge-5-b-label": "以太坊 2", - "merge-5-b-explanation": "在重新命名為共識層前,它被稱為「以太坊 2」。", - "merge-5-c-label": "以太坊 1", - "merge-5-c-explanation": "以太坊 1 是執行層而非共識層的原有名稱。", + "merge-5-b-label": "Eth2", + "merge-5-b-explanation": "在重新命名為共識層前,它被稱為「Eth2」。", + "merge-5-c-label": "Eth1", + "merge-5-c-explanation": "Eth1 是執行層而非共識層的原有名稱。", "merge-5-d-label": "質押", - "merge-5-d-explanation": "質押是指將以太幣存入智慧型合約以協助保護區塊鏈網路的安全。", - "daos-1-prompt": "關於去中心化自治組織的真實情況是甚麼?", + "merge-5-d-explanation": "質押是指將以太幣存入智慧型合約以協助保護區塊鏈的安全。", + "daos-1-prompt": "關於去中心化自治組織的敘述,哪些是真實的?", "daos-1-a-label": "去中心化自治組織是透過治理代幣集體所擁有", - "daos-1-a-explanation": "去中心化自治組織是集體擁有的,但是這不是唯一的正確答案。", + "daos-1-a-explanation": "去中心化自治組織是集體擁有的,但是這不是唯一的正確敘述。", "daos-1-b-label": "去中心化自治組織由其成員治理", - "daos-1-b-explanation": "去中心化自治組織由其成員治理,但是這不是唯一的正確答案。", + "daos-1-b-explanation": "去中心化自治組織由其成員治理,但是這不是唯一的正確敘述。", "daos-1-c-label": "他們為一個共同的使命而努力", - "daos-1-c-explanation": "去中心化自治組織為一個共同的使命而努力,但這不是唯一的正確答案。", + "daos-1-c-explanation": "去中心化自治組織為一個共同的使命而努力,但這不是唯一的正確敘述。", "daos-1-d-label": "以上皆是", "daos-1-d-explanation": "正確,去中心化自治組織為一種集體擁有、由區塊鏈治理,並致力於一個共同使命的組織。", - "daos-2-prompt": "有哪些關於如何使用去中心化自治組織的實際範例?", - "daos-2-a-label": "去中心化協議,成員投票決定協議相關事務或產品該如何開發", - "daos-2-a-explanation": "協議去中心化自治組織是其中一個例子,但是去中心化自治組織並不限於此類型。", - "daos-2-b-label": "集體擁有,如非同質化代幣或實體資產", + "daos-2-prompt": "使用去中心化自治組織的實際範例有哪些?", + "daos-2-a-label": "去中心化協定,成員投票決定協定相關事務或產品該如何開發", + "daos-2-a-explanation": "協定去中心化自治組織是其中一個例子,但是去中心化自治組織並不限於此類型。", + "daos-2-b-label": "集體所有權,如非同質化代幣或實體資產", "daos-2-b-explanation": "收藏品去中心化自治組織是其中一個例子,但是去中心化自治組織並不限於此類型。", "daos-2-c-label": "風險投資和資助,匯集資本並投票決定要資助的專案", "daos-2-c-explanation": "風險投資或資助去中心化自治組織是其中一個例子,但去中心化自治組織並不限於此類型。", @@ -347,16 +347,16 @@ "daos-3-prompt": "跟傳統組織不同,去中心化自治組織是…", "daos-3-a-label": "通常等級分明", "daos-3-a-explanation": "去中心化自治組織通常是扁平且完全民主化的。", - "daos-3-b-label": "他們的活動透明且完全公開", - "daos-3-b-explanation": "由於使用鏈上投票,決策在區塊鏈上變得透明。討論和決策過程中的其他要素對所有成員都是公開的。", + "daos-3-b-label": "它們的活動透明且完全公開", + "daos-3-b-explanation": "由於使用鏈上投票,決策在區塊鏈上是透明的。討論和決策過程中的其他要素對所有成員都是公開的。", "daos-3-c-label": "由核心一方控制", "daos-3-c-explanation": "變更需要由成員投票決定。提供的服務以去中心化的方式自動處理。", - "daos-3-d-label": "對於誰可以提出變更建議有限制", + "daos-3-d-label": "對於誰可以提出變更建議設有限制", "daos-3-d-explanation": "通常,每位去中心化自治組織成員都可以提出變更建議。", "daos-4-prompt": "智慧型合約對去中心化自治組織有哪些重要意義?", "daos-4-a-label": "智慧型合約的程式碼可以被修改", "daos-4-a-explanation": "一旦合約在以太坊上啟動,除了透過投票外沒有人可以改變規則。這使得去中心化自治組織能夠按照其編程時設定的規則運行。", - "daos-4-b-label": "它有一個保留了對資金庫進行變更和發送資金權限的個人擁有者。", + "daos-4-b-label": "它有一個個人擁有者,保留了變更資金庫和從資金庫傳送資金的權限。", "daos-4-b-explanation": "資金庫由智慧型合約定義。要使用資金,需要得到團體的批准。", "daos-4-c-label": "對底層區塊鏈的分散式共識的信任", "daos-4-c-explanation": "對於去中心化自治組織來說,底層區塊鏈不被操控是非常重要的。以太坊自身的共識機制是分散式的而且已經足夠成熟,使得組織可以信任該網路。", @@ -364,9 +364,9 @@ "daos-4-d-explanation": "去中心化自治組織背後的運作架構為其智慧型合約,智慧型合約定義組織的規則,並持有該團體的資金庫。", "daos-5-prompt": "哪一個並非去中心化自治組織的治理機制?", "daos-5-a-label": "代幣型成員", - "daos-5-a-explanation": "基於代幣的治理得到廣泛使用。它通常是完全無需許可的,並且通常用於治理廣泛的去中心化協議和/或代幣本身。", + "daos-5-a-explanation": "基於代幣的治理得到廣泛使用。它通常是完全無需許可的,並且通常用於治理廣泛的去中心化協定和/或代幣本身。", "daos-5-b-label": "股份型成員", - "daos-5-b-explanation": "股份型去中心化自治組織需要擁有更多權力,但仍然相當公開。任何潛在成員都可以提交加入去中心化自治組織的提案,通常需要以代幣或工作形式提供一定價值的貢獻。", + "daos-5-b-explanation": "股份型去中心化自治組織需要更多許可,但仍然相當公開。任何潛在成員都可以提交加入去中心化自治組織的提案,通常需要以代幣或工作形式提供一定價值的貢獻。", "daos-5-c-label": "信譽型成員", "daos-5-c-explanation": "與基於代幣或股份的成員資格不同,信譽型去中心化自治組織不會將所有權轉移給貢獻者。去中心化自治組織成員必須通過參與來獲得信譽。", "daos-5-d-label": "執行董事會和鏈下資金庫管理", @@ -378,74 +378,74 @@ "staking-solo-1-b-explanation": "離線並不會導致罰沒。罰沒會導致驗證者被永久禁止且無法再次證明,並最終被強制踢出網路,而離線並「不會」導致被踢出網路。", "staking-solo-1-c-label": "作為違反特定共識規則的處罰,獎勵會在罰沒後恢復", "staking-solo-1-c-explanation": "罰沒是違反特定共識規則並威脅到網路時會受到的嚴厲處罰。因此,一旦驗證者遭到罰沒,它們會立即被禁止且無法再次證明,並最終被強制踢出網路,剩餘的以太幣則會提取至擁有者的帳戶。", - "staking-solo-1-d-label": "作為違反特定共識規則的處罰,驗證者將立即被禁止且無法再次證明", + "staking-solo-1-d-label": "作為違反特定共識規則的處罰,驗證者將立即被永久禁止且無法再次證明", "staking-solo-1-d-explanation": "罰沒是違反特定共識規則並威脅到網路時會受到的嚴厲處罰。因此,一旦驗證者遭到罰沒,它們會立即被禁止且無法再次證明,並最終被強制踢出網路,剩餘的以太幣則會提取至擁有者的帳戶。", "staking-solo-2-prompt": "驗證者離線時會發生什麼事?", "staking-solo-2-a-label": "不影響獎勵", "staking-solo-2-a-explanation": "當驗證者不可用,無法證明任意給定時期的鏈狀態時會發生處罰。處罰的金額約等於正常證明時所獲得獎勵的 75%。獎勵會在驗證者重新上線時恢復,且不會導致罰沒。", "staking-solo-2-b-label": "只有在不可用時才會受到怠工處罰", - "staking-solo-2-b-explanation": "當驗證者不可用時,會受到小額的怠工處罰,約等於正常證明時所獲獎勵的 75%。在某些罕見/極端情況下,如網路無法最終確定(即網路上 1/3 的驗證者離線)時,處罰金額會顯著提升。獎勵會在驗證者重新上線時恢復,且不會導致罰沒。", + "staking-solo-2-b-explanation": "當驗證者不可用時,會受到小額的怠工處罰,約等於正常證明時所獲獎勵的 75%。在某些罕見/極端情況下,如網路無法最終確定(即網路上超過 1/3 的驗證者離線)時,處罰金額會顯著提高。獎勵會在驗證者重新上線時恢復,且不會導致罰沒。", "staking-solo-2-c-label": "立即受到罰沒,並被踢出網路", - "staking-solo-2-c-explanation": "這是常見的誤解,離線並不會導致罰沒!罰沒是針對更嚴重違規的特定處罰類型,處罰更重,且驗證者將被踢出驗證者群體。", + "staking-solo-2-c-explanation": "這是常見的誤解,離線並不會導致罰沒!罰沒是針對更嚴重違規的特定處罰類型,其處罰更重,且驗證者將被踢出驗證者群體。", "staking-solo-2-d-label": "罰沒和踢出前有一週的延遲", "staking-solo-2-d-explanation": "即使在離線很長一段時間後,也不會導致罰沒。驗證者理論上可以離線數年而不遭受罰沒,但如果驗證者不退出,怠工處罰將會增加。", "staking-solo-3-prompt": "驗證者的最大有效餘額為何?", "staking-solo-3-a-label": "16", "staking-solo-3-a-explanation": "有效餘額降至 16 以太幣之驗證者將自動退出信標鏈。", "staking-solo-3-b-label": "32", - "staking-solo-3-b-explanation": "32 以太幣是啟用新驗證者的最低限制,同時也是該驗證者的最大「有效餘額」(投票加權)。超過 32 以太幣的獎勵可以累積,但此餘額並不增加驗證者在網路上投票的權重,且獎勵不會因此增加。", - "staking-solo-3-c-label": "變數依節點運行者而定", - "staking-solo-3-c-explanation": "共識規則平等地適用於所有驗證者帳戶,且不受到運行節點的個人影響。所有驗證者的最大有效餘額為 32 以太幣。", + "staking-solo-3-b-explanation": "32 以太幣是啟用新驗證者的最低要求,同時也是該驗證者的「有效餘額」上限(投票加權)。超過 32 以太幣的獎勵可以累積,但此餘額並不增加驗證者在網路上投票的權重,且獎勵不會因此增加。", + "staking-solo-3-c-label": "變數,依節點運行者而定", + "staking-solo-3-c-explanation": "共識規則平等地適用於所有驗證者帳戶,且不受到運行節點的個人影響。所有驗證者的有效餘額上限均為 32 以太幣。", "staking-solo-3-d-label": "無限制", - "staking-solo-3-d-explanation": "每個驗證者帳戶的有效餘額被限制在 32 以太幣,這限制了網路上單個驗證者的總體能力。這也限制了一段時間內可質押/退出質押的以太幣數量,因為驗證者的啟用和退出程序是透過有速率限制的佇列完成的。", + "staking-solo-3-d-explanation": "每個驗證者帳戶的有效餘額都被限制在 32 以太幣,這限制了網路上單個驗證者的總體能力。這也限制了給定一段時間內可質押/退出質押的以太幣數量,因為驗證者的啟用和退出程序是透過有速率限制的佇列完成的。", "staking-solo-4-prompt": "何者不是驗證者會收到的獎勵?", "staking-solo-4-a-label": "區塊獎勵", "staking-solo-4-a-explanation": "由協定隨機選出的驗證者在提交有效區塊時會獲得新發行的以太幣作為獎勵。這些獎勵與提交區塊時也能獲得的手續費獎勵及最大可提取價值 (MEV) 是分開的。", "staking-solo-4-b-label": "小費 / 最大可提取價值 (MEV)", "staking-solo-4-b-explanation": "小費(未銷毀的部分費用)及最大可提取價值收益會透過驗證者提供的費用接收地址發放給區塊提交者(質押者/驗證者)。這些獎勵與提交區塊時也能獲得的區塊獎勵是分開的。", "staking-solo-4-c-label": "鏈頭證明獎勵", - "staking-solo-4-c-explanation": "驗證者會在正確且即時證明鏈頭、目前已證明的時期頭部以及目前最終確定的時期頭部時,獲得新發行的以太幣作為獎勵。", + "staking-solo-4-c-explanation": "驗證者會在正確且即時地證明鏈頭、目前證明的時期頭部和目前最終確定的時期頭部時,獲得新發行的以太幣作為獎勵。", "staking-solo-4-d-label": "Uniswap 交易手續費", - "staking-solo-4-d-explanation": "交易平台和交易所產生的交易手續費並不會發放給以太坊驗證者。", + "staking-solo-4-d-explanation": "以太坊驗證者沒有收到交易平台和交易所產生的交易手續費。", "staking-solo-5-prompt": "驗證者需要維持上線多久才能獲利?", "staking-solo-5-a-label": "100%", "staking-solo-5-a-explanation": "驗證者達到 100% 的上線時間是最理想的情況,但這並不是驗證者維持獲利的最低要求。", "staking-solo-5-b-label": "約 99%", - "staking-solo-5-b-explanation": "驗證者達到 99% 的上線時間是很好的目標,但這並不是驗證者維持獲利的最低要求。", + "staking-solo-5-b-explanation": "驗證者達到 99% 的上線時間是很出色的目標,但這並不是驗證者維持獲利的最低要求。", "staking-solo-5-c-label": "約 50%", - "staking-solo-5-c-explanation": "驗證者會被處以的罰款,數額約等於它們即時正確地證明鏈狀態時所獲得獎勵的 75%。這表示在給定一段時間內,驗證者 50% 的時間都離線仍可獲利,但利潤會低於可靠、總是在線上的驗證者。", + "staking-solo-5-c-explanation": "驗證者會被處以罰款,數額約等於它們即時且正確地證明鏈狀態時所獲得獎勵的 75%。這表示在給定一段時間內,驗證者在 50% 的時間離線仍可獲利,但利潤會低於更可靠、總是在線上的驗證者。", "staking-solo-5-d-label": "約 25%", - "staking-solo-5-d-explanation": "如果驗證者只有 25% 的時間上線,那麼它就會由於剩下的 75% 離線時間受到處罰。由於獎勵和處罰的規模相近,當離線時間為上線時間的 3 倍時,該段時間內會受到以太幣的淨損失。", + "staking-solo-5-d-explanation": "如果驗證者只有 25% 的時間上線,那麼它就會由於剩下的 75% 離線時間受到處罰。由於獎勵和處罰的數額相近,當離線時間為上線時間的 3 倍時,該段時間內會受到以太幣的淨損失。", "staking-solo-6-prompt": "下列何者不是會受到罰沒的行為?", "staking-solo-6-a-label": "離線", "staking-solo-6-a-explanation": "離線並不會導致罰沒。離線會受到小額的怠工處罰,但會在驗證者重新上線並證明時恢復。", "staking-solo-6-b-label": "在同一個時隙提交並簽署兩個不同的區塊", "staking-solo-6-b-explanation": "此舉會威脅網路的完整性並導致罰沒,以及被踢出網路。", - "staking-solo-6-c-label": "證明「包含」了另一個區塊的區塊(有效地改變歷史)", + "staking-solo-6-c-label": "證明「包含」了另一個區塊的區塊(實際上改變了歷史記錄)", "staking-solo-6-d-label": "在同區塊中證明兩個候選人以達到「雙重投票」", "staking-solo-7-prompt": "何者不是保護你的驗證者免於罰沒的方法?", - "staking-solo-7-a-label": "避免過於冗餘的設定,並一次只在一個驗證者客戶端上儲存你的金鑰", + "staking-solo-7-a-label": "避免過於冗餘的設定,並且一次只在一個驗證者用戶端上儲存你的金鑰", "staking-solo-7-a-explanation": "至今為止,大多數罰沒的原因是操作者將他們的簽名金鑰作為冗餘備份,儲存在一個以上的機器上。這是風險非常高的行為,任何故障都可能導致雙重投票和罰沒。", - "staking-solo-7-b-label": "按原樣執行客戶端軟體,而不自己修改程式碼", - "staking-solo-7-b-explanation": "客戶端軟體經開發和測試,可以防止使用者進行會受到罰沒的行為。要執行會被罰沒的行為,通常需要自行惡意地修改客戶端程式碼。", - "staking-solo-7-c-label": "運行其他大多數驗證者使用的客戶端", - "staking-solo-7-c-explanation": "運行與網路上其餘大多數驗證者相同的客戶端時,若客戶端出現軟體錯誤,會有受到罰沒的風險。運行小眾客戶端可以防範這種情況。", + "staking-solo-7-b-label": "按原樣執行用戶端軟體,而不自己修改程式碼", + "staking-solo-7-b-explanation": "用戶端軟體經編寫和測試,可以防止使用者進行會受到罰沒的行為。要執行會受到罰沒的行為,通常需要自行惡意地修改用戶端程式碼。", + "staking-solo-7-c-label": "運行其他大多數驗證者所使用的用戶端", + "staking-solo-7-c-explanation": "運行與網路上其餘大多數驗證者相同的用戶端時,若該用戶端出現軟體錯誤,會有受到罰沒的風險。運行小眾用戶端可以防範這種情況。", "staking-solo-7-d-label": "將金鑰遷移至新機器之前,停用驗證者 2 至 4 個時期", - "staking-solo-7-d-explanation": "這樣你的節點離線時,就讓鏈有足夠的時間可以最終確定,以最小化金鑰遷移時發生意外的雙重投票及罰沒的風險。", - "staking-solo-8-prompt": "何者不是接收獎勵付款/部分提款的必備項目?", - "staking-solo-8-a-label": "一次提供一個執行提款地址", - "staking-solo-8-a-explanation": "這是必要的,這樣提款流程才知道要將共識層資金發送到何處", + "staking-solo-7-d-explanation": "這樣在你的節點離線時,就讓鏈有足夠的時間可以最終確定,以最小化金鑰遷移時發生意外的雙重投票及罰沒的風險。", + "staking-solo-8-prompt": "何者不是接收獎勵付款/部分提款的必要條件?", + "staking-solo-8-a-label": "提供一次執行提款地址", + "staking-solo-8-a-explanation": "需要一次,這樣提款流程就知道要將共識層資金發送到何處", "staking-solo-8-b-label": "擁有 32 以太幣的有效餘額", "staking-solo-8-b-explanation": "在觸發任何部分提款前,你的有效餘額必須達到上限 32 以太幣。", "staking-solo-8-c-label": "總餘額超過 32 以太幣", "staking-solo-8-c-explanation": "在觸發任何部分提款前,你的總餘額中必須有 32 以太幣以上的獎勵。", - "staking-solo-8-d-label": "提交所要求的提款金額並支付燃料費。", - "staking-solo-8-d-explanation": "一旦符合其他標準,獎勵將自動支付。接收者不需要提交交易或支付燃料費。提款金額即為驗證者超過 32 以太幣的部分。不支援自訂提款金額。", - "scaling-1-prompt": "何者是以太坊用於擴容的方式?", + "staking-solo-8-d-label": "提交所要求的提款金額並支付燃料費", + "staking-solo-8-d-explanation": "一旦符合其他標準,獎勵將自動支付。接收者不需要提交交易或支付燃料費。提款金額即為驗證者餘額中超過 32 以太幣的部分。不支援自訂要求的金額。", + "scaling-1-prompt": "以太坊使用以下哪種方法進行擴容?", "scaling-1-a-label": "二層網路卷軸", - "scaling-1-a-explanation": "這些卷軸透過捆綁交易、執行交易並將結果上傳至以太坊進行驗證和保護,幫助以太坊擴容。Arbitrum 和 Optimism 都是卷軸的範例。這不是以太坊擴容的唯一方法。", + "scaling-1-a-explanation": "這些卷軸透過捆綁交易、執行交易並將結果發佈至以太坊進行驗證和保護,幫助以太坊擴容。Arbitrum 和 Optimism 都是卷軸的範例。這不是以太坊擴容的唯一方法。", "scaling-1-b-label": "Proto-Danksharding", - "scaling-1-b-explanation": "這為將卷軸資料儲存至主網提供了一個臨時、低廉的儲存選項,使用者使用卷軸時,約 90% 的成本皆用於此。這不是以太坊擴容的唯一方法。", + "scaling-1-b-explanation": "這為儲存卷軸資料至主網提供了一個臨時、低廉的儲存選項,目前使用者使用卷軸時,約 90% 的成本皆用於此。這不是以太坊擴容的唯一方法。", "scaling-1-c-label": "Danksharding", "scaling-1-c-explanation": "這使得網路上的所有驗證者和節點不再需要 100% 儲存所有卷軸的資料,降低了節點運行者的硬體需求。這不是以太坊擴容的唯一方法。", "scaling-1-d-label": "以上皆是", @@ -454,63 +454,63 @@ "scaling-2-a-label": "將資料儲存於私有伺服器上", "scaling-2-a-explanation": "將結果發佈到主網上,以達成透明性及公開可用性,且不依賴私有伺服器。", "scaling-2-b-label": "將證明發送給使用者儲存", - "scaling-2-b-explanation": "使用者預計不會保留他們的交易結果。此資訊將上傳至主網。", + "scaling-2-b-explanation": "使用者預計不會保留他們的交易結果。此資訊將發佈至主網。", "scaling-2-c-label": "將結果提交至以太坊", "scaling-2-c-explanation": "二層網路卷軸將其交易執行結果發佈至主網,並安全地寫入以太坊的歷史記錄中", "scaling-2-d-label": "刪除結果以降低成本", "scaling-2-d-explanation": "二層網路卷軸將其交易執行結果發佈至主網。此方法節省成本的方式是,捆綁及壓縮交易資料,並最終將其儲存於便宜的儲存空間,需要資料的人一旦取得該資料,儲存空間便會失效。", "scaling-3-prompt": "Proto-Danksharding 如何降低卷軸上的卷軸交易成本?", "scaling-3-a-label": "直接增加區塊大小", - "scaling-3-a-explanation": "Proto-Danksharding 並不會直接提高燃料限制,而是透過實現臨時儲存空間,降低儲存卷軸資料的成本", + "scaling-3-a-explanation": "Proto-Danksharding 並不會直接提高燃料限制,而是透過獲取臨時儲存空間,降低儲存卷軸資料的成本", "scaling-3-b-label": "儲存資料需要劃分哪些驗證者", - "scaling-3-b-explanation": "雖然完整的 Danksharding 預計會減少所有驗證者儲存所有資料的需求,但這之前,會透過 Proto-Danksharding 提供成本較低的臨時儲存選項,用於存放由卷軸產生的資料。", + "scaling-3-b-explanation": "雖然完整的 Danksharding 預計會減少所有驗證者儲存所有資料的需求,但這之前,會透過 Proto-Danksharding 提供成本較低的臨時儲存方案,用於存放由卷軸產生的資料。", "scaling-3-c-label": "顯著提升節點運行者的硬體需求", - "scaling-3-c-explanation": "這通常不被認為是可接受的以太坊擴容方案。開發者付出了許多心力以將運行節點的硬體需求最小化,以儘可能讓所有人能夠使用。", + "scaling-3-c-explanation": "這通常不被認為是可接受的以太坊擴容方案。開發者付出了許多心力將運行節點的硬體需求最小化,以儘可能讓所有人能夠使用。", "scaling-3-d-label": "將其資料儲存在更實惠的臨時「二進位大型物件」儲存空間中", "scaling-3-d-explanation": "Proto-Danksharding 為卷軸引入臨時資料儲存方案,允許其以更實惠的方式將結果發佈至主網", "scaling-4-prompt": "卷軸進行以太坊擴容的下一關鍵步驟為何?", "scaling-4-a-label": "激勵實體使用性能強大的電腦來排序所有交易", "scaling-4-a-explanation": "目前卷軸的其中一個問題是排序者(決定如何將交易納入卷軸並排序)過於中心化。目標是讓任何人都能參與,且不依賴單一群體或實體。", "scaling-4-b-label": "將運行排序者和證明者的責任分配給更多人", - "scaling-4-b-explanation": "卷軸的控制權一開始通常是中心化的,這樣有助於前期的發展,不過會使網路的抗審查性降低。讓納入交易的過程更加去中心化以便任何人都能參與,對防止網路可能遭到破壞非常重要。", + "scaling-4-b-explanation": "卷軸的控制權一開始通常是中心化的,這樣有助於前期的發展,不過會使網路的抗審查性降低。讓納入交易的過程去中心化以便任何人都能參與,對防止網路可能遭到破壞至關重要。", "scaling-4-c-label": "使所有卷軸都符合相同的安全規範", "scaling-4-c-explanation": "以太坊受益於其卷軸生態系統中的眾多安全方法,這為網路提供了韌性。", "scaling-4-d-label": "透過資料預言機來確認交易資料儲存在私有伺服器上", "scaling-4-d-explanation": "卷軸資料儲存在以太坊上,且不依賴私有伺服器或資料庫。", - "run-a-node-1-prompt": "何者為運行節點所需要的?", - "run-a-node-1-a-label": "以一般硬體運行客戶端軟體並維持在線狀態。", + "run-a-node-1-prompt": "下列何者為運行節點的必要條件?", + "run-a-node-1-a-label": "以一般硬體運行用戶端軟體並維持在線狀態。", "run-a-node-1-a-explanation": "運行節點包括運行透過以太坊協定的語言與其他同樣功能的電腦互相通訊的軟體。此軟體會下載以太坊區塊鏈的副本,驗證每個區塊的有效性,並使其與新區塊及交易保持同步,同時也會幫助其他節點下載並更新它們自己的區塊鏈副本。", "run-a-node-1-b-label": "存入 32 以太幣以賺取獎勵", - "run-a-node-1-b-explanation": "此為質押要求 — 即成為活躍的網路共識參與者的過程。單純運行獨立的區塊鏈副本時(無需任何以太幣即可運行)則沒有此限制。", + "run-a-node-1-b-explanation": "此為質押要求 — 即成為活躍的網路共識參與者的過程。單純運行獨立的區塊鏈副本時(無需任何以太幣即可運行)則沒有此要求。", "run-a-node-1-c-label": "運行強大的專用積體電路礦機以達成網路共識", - "run-a-node-1-c-explanation": "以太坊先前透過挖礦及強大的電腦以達成共識,但此流程已被質押完全取代。無論是以前的挖礦,或現在的質押,都不是運行獨立的區塊鏈副本所必需的。", + "run-a-node-1-c-explanation": "以太坊先前透過挖礦及強大的電腦以達成共識,但此流程已被質押完全取代。無論是以前的挖礦,或現在的質押,都不是單純運行獨立的區塊鏈副本所必需的。", "run-a-node-1-d-label": "全職投入區塊鏈基礎設施", "run-a-node-1-d-explanation": "隨著軟體工具的持續進步,新手在家自行運行節點也變得更加容易。全職投入區塊鏈基礎設施並非參與節點運行的必要條件。", "run-a-node-2-prompt": "運行節點需要質押多少以太幣?", "run-a-node-2-a-label": "0", - "run-a-node-2-a-explanation": "運行以太坊節點並不需要任何以太幣。相較於運行質押驗證者(在節點設定時設定),任何人都可自由運行客戶端軟體,並同步它們自己的獨立區塊鏈副本,而無需任何以太幣。", + "run-a-node-2-a-explanation": "運行以太坊節點並不需要任何以太幣。相較於運行質押驗證者(在設定節點時),任何人都可自由運行用戶端軟體,並同步它們自己的獨立區塊鏈副本,而無需任何以太幣。", "run-a-node-2-b-label": "8", "run-a-node-2-c-label": "16", "run-a-node-2-d-label": "32", - "run-a-node-2-d-explanation": "運行以太坊節點並不需要任何以太幣。相較於能夠直接參與網路共識的質押驗證者在啟動時需要 32 以太幣,任何人都可自由運行客戶端軟體,並同步它們自己的獨立區塊鏈副本,而無需任何以太幣。", + "run-a-node-2-d-explanation": "運行以太坊節點並不需要任何以太幣。相較於能夠直接參與網路共識的質押驗證者在啟動時需要 32 以太幣,任何人都可自由運行用戶端軟體,並同步它們自己的獨立區塊鏈副本,而無需任何以太幣。", "run-a-node-3-prompt": "運行自己的節點有何益處?", "run-a-node-3-a-label": "抗審查性", - "run-a-node-3-a-explanation": "這對使用者有益,且不是唯一的好處。透過運行與網路中其他節點直接通訊的節點軟體,你的交易會與你的節點正在傳播的其他每一筆交易混在一起。因此,幾乎無法區分並審查你的節點分享的有效交易。", + "run-a-node-3-a-explanation": "這對使用者有益,且不是唯一的好處。透過運行節點軟體與網路中其他節點直接通訊,你的交易會與你的節點正在傳播的其他每一筆交易混在一起。因此,幾乎無法區分並審查你的節點分享的有效交易。", "run-a-node-3-b-label": "主權", - "run-a-node-3-b-explanation": "這對使用者有益,且不是唯一的好處。透過擁有自己的以太坊區塊鏈副本,你不再需要依賴任何單一外部方與區塊鏈網路互動。你永遠不需要請求權限以查詢你的餘額或執行交易,所有交易都由你自己運行的軟體進行驗證。當網路升級發生時,你可以自行決定是否要支持網路升級。", + "run-a-node-3-b-explanation": "這對使用者有益,且不是唯一的好處。透過擁有自己的以太坊區塊鏈副本,你不再需要依賴任何單一外部方與區塊鏈網路互動。你永遠不需要請求權限以查詢你的餘額或執行交易,所有交易都由你自己運行的軟體進行驗證。當網路升級發生時,你可以自行決定是否要支援網路升級。", "run-a-node-3-c-label": "隱私", - "run-a-node-3-c-explanation": "這對使用者有益,且不是唯一的好處。若沒有你自己的節點,單純查詢帳戶餘額通常就需要傳送你錢包中的帳戶列表至受信任的第三方提供者並附上你的 IP 位址,以為你提供正確的資訊。", + "run-a-node-3-c-explanation": "這對使用者有益,且不是唯一的好處。若沒有你自己的節點,單純查詢帳戶餘額通常就需要傳送你錢包中的帳戶清單至受信任的第三方提供者並附上你的 IP 位址,以為你提供正確的資訊。", "run-a-node-3-d-label": "以上皆是", "run-a-node-3-d-explanation": "運行節點為你提供了對所依賴的資料的完整控制權和自主權,允許你私下檢視並驗證鏈上內容,並有效保障任何有效交易不被審查。", "run-a-node-4-prompt": "下列何者是以太坊節點所需的硬碟儲存空間?", - "run-a-node-4-a-label": "512GB 固態硬碟", + "run-a-node-4-a-label": "512 GB 固態硬碟", "run-a-node-4-a-explanation": "目前沒有客戶端軟體能只用 512 GB 來儲存鏈", "run-a-node-4-b-label": "2 TB 傳統機械硬碟", "run-a-node-4-b-explanation": "一般來說,傳統機械硬碟跟不上以太坊節點所需的讀/寫處理速度,推薦使用固態硬碟。", "run-a-node-4-c-label": "2 TB 固態硬碟", - "run-a-node-4-c-explanation": "撰文時,2 TB 的固態硬碟應符合一個以太坊全節點的儲存和讀寫速度需求。", + "run-a-node-4-c-explanation": "寫入時,2 TB 的固態硬碟應能滿足一個以太坊全節點的儲存和讀寫速度需求。", "run-a-node-4-d-label": "8 TB 固態硬碟", - "run-a-node-4-d-explanation": "撰文時,2 TB 的固態硬碟應符合一個以太坊全節點的儲存和讀寫速度需求。8 TB 的固態硬碟可滿足未來擴容需求,並具備同時同步二層網路區塊鏈的能力,但目前仍不是主網的必備需求。", + "run-a-node-4-d-explanation": "寫入時,2 TB 的固態硬碟應能滿足一個以太坊全節點的儲存和讀寫速度需求。8 TB 的固態硬碟可滿足未來擴容需求,並具備同時同步二層網路區塊鏈的能力,但目前仍不是主網的必備需求。", "run-a-node-5-prompt": "節點離線時會發生什麼事?", "run-a-node-5-a-label": "你的節點將會與目前網路狀態失去同步", "run-a-node-5-a-explanation": "當你的節點離線時,則無法從其他節點接收新的交易及區塊,因此會與目前鏈上狀態失去同步。重新上線時,你的節點軟體會重新同步並恢復正常運作。", @@ -518,100 +518,100 @@ "run-a-node-5-b-explanation": "冷儲存中持有的以太幣與你的節點是否上線無關。若你的節點離線,則無法透過它查詢你的帳戶最新餘額,但節點離線並不會使你的安全資金處於風險中。若你做為質押者也在節點上運行了驗證者軟體,此驗證者的餘額會因為離線而受到小額處罰。", "run-a-node-5-c-label": "用來尋找工作量證明的能量被浪費了", "run-a-node-5-c-explanation": "以太坊不再使用工作量證明,且這一直都不是所有節點運行者的必備條件。離線僅表示你的節點不再與區塊鏈的最新變更同步,可以透過回到線上重新同步。", - "run-a-node-5-d-label": "鏈上資料已被移除,且需要重新同步", + "run-a-node-5-d-label": "鏈上資料已被移除,且需要從頭開始重新同步", "run-a-node-5-d-explanation": "單純離線通常並不會刪除任何已儲存的鏈上資料。重新連網會讓軟體從上次中斷的地方繼續同步最新的交易。", "run-a-node-6-prompt": "運行節點可以賺取網路獎勵", "run-a-node-6-a-label": "是", - "run-a-node-6-a-explanation": "你無法透過單純運行客戶端軟體來獲得獎勵。要贏得獎勵,你還必須同時質押。", + "run-a-node-6-a-explanation": "單純運行用戶端軟體無法獲得獎勵。要贏得獎勵,你還必須同時質押。", "run-a-node-6-b-label": "否", "stablecoins-1-prompt": "什麼是穩定幣?", - "stablecoins-1-a-label": "低波動性的加密貨幣,其價值穩定,與傳統貨幣相似", - "stablecoins-1-a-explanation": "正確!穩定幣的目的即為解決許多加密貨幣的共同問題——高波動性。", - "stablecoins-1-b-label": "數位黃金的代表", - "stablecoins-1-b-explanation": "不正確。雖然有些穩定幣可能由貴金屬擔保其價值,但法幣及其他加密貨幣也可作為擔保物。", + "stablecoins-1-a-label": "價格波動小的加密貨幣,其價值穩定,與傳統貨幣相似", + "stablecoins-1-a-explanation": "正確!穩定幣的目的即為解決許多加密貨幣共有的波動性問題。", + "stablecoins-1-b-label": "數位黃金表示", + "stablecoins-1-b-explanation": "不正確。雖然有些穩定幣可能由貴金屬擔保其價值,但法定貨幣及其他加密貨幣也可作為擔保物。", "stablecoins-1-c-label": "一種新型的信用卡", "stablecoins-1-c-explanation": "不正確。穩定幣是加密貨幣的一種,而非信用卡。", "stablecoins-1-d-label": "以太幣的替代品", - "stablecoins-1-d-explanation": "不正確。穩定幣並非為取代以太幣(ETH)而設計。穩定幣是一種以太坊網路上的代幣,其價值可長時間保持穩定。", + "stablecoins-1-d-explanation": "不正確。穩定幣並非為取代以太幣 (ETH) 而設計。穩定幣是一種以太坊網路上的代幣,其價值可長時間保持穩定。", "stablecoins-2-prompt": "下列何者是穩定幣?", "stablecoins-2-a-label": "美元", "stablecoins-2-a-explanation": "不正確。雖然穩定幣可以表示美元價值,但美元並非加密貨幣的一種。", - "stablecoins-2-b-label": "Aave 代幣", - "stablecoins-2-b-explanation": "不正確。AAVE 代幣是 Aave 協議的治理代幣,該協議提供了穩定幣的交易市場,但 AAVE 本身並非穩定幣。", + "stablecoins-2-b-label": "AAVE 代幣", + "stablecoins-2-b-explanation": "不正確。AAVE 代幣是 Aave 協定的治理代幣,該協定提供了穩定幣的交易市場,但 AAVE 本身並非穩定幣。", "stablecoins-2-c-label": "Dai", "stablecoins-2-c-explanation": "正確!Dai 可能是最知名的去中心化穩定幣,且其價值約為 1 美元。", - "stablecoins-2-d-label": "以太幣", + "stablecoins-2-d-label": "以太幣 (Ether)", "stablecoins-2-d-explanation": "不正確。以太幣是以太坊網路的原生代幣,但並不具有穩定的特性。", "stablecoins-3-prompt": "穩定幣的用途為何?", "stablecoins-3-a-label": "保護使用者免於價格波動的影響", "stablecoins-3-a-explanation": "不完全對。這個答案部分正確,不過這只是穩定幣的眾多用途之一。", - "stablecoins-3-b-label": "在世界上任何一個角落網購東西", + "stablecoins-3-b-label": "在世界任何地方進行網路購物", "stablecoins-3-b-explanation": "不完全對。這個答案部分正確,不過這只是穩定幣的眾多用途之一。", "stablecoins-3-c-label": "透過借貸給別人賺錢", "stablecoins-3-c-explanation": "不完全對。這個答案部分正確,不過這只是穩定幣的眾多用途之一。", "stablecoins-3-d-label": "以上皆是", - "stablecoins-3-d-explanation": "正確!穩定幣可以在低波動性的情況下持有加密貨幣,在網路上進行全球性的交易,並在您借出時獲得利息。", - "stablecoins-4-prompt": "穩定幣的特別之處為何?", + "stablecoins-3-d-explanation": "正確!穩定幣可以在低波動性的情況下持有加密貨幣,在網路上進行全球性的交易,並在你借出時獲得利息。", + "stablecoins-4-prompt": "穩定幣有何特別之處?", "stablecoins-4-a-label": "它是一種與現實世界資產綁定的代幣", "stablecoins-4-a-explanation": "不正確。雖然許多穩定幣與現實世界資產掛鉤,但此特性並非穩定幣獨有的(如使用以太幣作為抵押品的代幣)。", "stablecoins-4-b-label": "是一種專為保持價值穩定而設計的加密貨幣", "stablecoins-4-b-explanation": "正確!穩定幣的目標是使其價值保持相對穩定,常與貨幣等資產掛鉤(如:1 USDC = 1 美元),但不是所有穩定幣都如此運作(如:RAI)。", - "stablecoins-4-c-label": "可以透過網路傳送", + "stablecoins-4-c-label": "可以透過網際網路傳送", "stablecoins-4-c-explanation": "不正確。雖然確實可行,但並不是穩定幣獨有的。", "stablecoins-4-d-label": "可在以太坊網路上使用。", "stablecoins-4-d-explanation": "不正確。許多其他的加密貨幣也都能在以太坊網路上使用。", - "stablecoins-5-prompt": "何者不是取得穩定幣的方式?", - "stablecoins-5-a-label": "用穩定幣交換其他代幣", - "stablecoins-5-a-explanation": "不正確,這是取得穩定幣的方法。取得穩定幣最常見的方法之一是,將目前持有的加密貨幣交換成穩定幣。", + "stablecoins-5-prompt": "下列何者不是取得穩定幣的方式?", + "stablecoins-5-a-label": "用其他代幣交換穩定幣", + "stablecoins-5-a-explanation": "不正確,這是取得穩定幣的方法之一。取得穩定幣最常見的方法之一是,用目前持有的加密貨幣交換穩定幣。", "stablecoins-5-b-label": "借入穩定幣", - "stablecoins-5-b-explanation": "不正確,這是取得穩定幣的一種方式。您可以使用目前持有的加密貨幣(如以太幣)作為抵押物,以借入一些穩定幣。您需要將借入的穩定幣還回去才能取得鎖定的抵押物。", + "stablecoins-5-b-explanation": "不正確,這是取得穩定幣的方法之一。您可以使用目前持有的加密貨幣(如以太幣)作為抵押物,以借入一些穩定幣。您需要將借入的穩定幣還回去才能取得鎖定的抵押物。", "stablecoins-5-c-label": "從交易所購買", - "stablecoins-5-c-explanation": "不正確,這是取得穩定幣的方法之一。許多交易所或錢包中都可直接購買穩定幣。使用中心化交易所的話,可能會受到地區限制。", + "stablecoins-5-c-explanation": "不正確,這是取得穩定幣的方法之一。許多交易所或錢包都可直接購買穩定幣。使用中心化交易所的話,可能會受到地區限制。", "stablecoins-5-d-label": "透過挖礦取得", - "stablecoins-5-d-explanation": "正確!和比特幣不同,您無法透過挖礦取得穩定幣。", - "defi-1-prompt": "DeFi代表什麼?", + "stablecoins-5-d-explanation": "正確!和比特幣不同,你無法透過挖礦取得穩定幣。", + "defi-1-prompt": "DeFi 代表什麼?", "defi-1-a-label": "去中心化金融", - "defi-1-a-explanation": "正確!DeFi指的是去中心化金融,這是個建立在以太坊上的金融系統,當中沒有任何銀行或金融機構等中介機構組織。", + "defi-1-a-explanation": "正確!DeFi 指的是去中心化金融,這是個建立在以太坊上的金融系統,當中沒有任何銀行或金融機構等中介機構組織。", "defi-1-b-label": "數位金融", - "defi-1-b-explanation": "這是不對的。數位金融指的是通過數位平台所提供的金融服務,但這並不一定意味著去中心化。", + "defi-1-b-explanation": "不正確。數位金融指的是通過數位平台提供的金融服務,但這並不一定意味著去中心化。", "defi-1-c-label": "分散式金融", "defi-1-c-explanation": "不正確。雖然「分散式」有點去中心化的味道,但是業界採用的術語是「去中心化金融」,而非分散式金融。", "defi-1-d-label": "發展金融", - "defi-1-d-explanation": "不正確。發展金融(Development Finance)一般指的是對經濟發展相關專案的金融資助,一般發生在開發中國家,且與區塊鏈活去中心化金融沒有關聯性。", - "defi-2-prompt": "您無法透過 DeFi 做什麼?", - "defi-2-a-label": "匯款到世界各地.", - "defi-2-a-explanation": "不正確,透過 DeFi,您可以不受限制的發送任意金額給全球各地的任何人。", - "defi-2-b-label": "請聯繫客服來糾正您的錯誤", - "defi-2-b-explanation": "對的!在DeFi中,交易最終的結果是由代碼,而不是某個公司而控制的。如果有錯誤發生,列入說將基金發送到錯誤的地址的話,將不會有客戶支持來糾正它。所以您需要額外小心。", - "defi-2-c-label": "抵押借款.", - "defi-2-c-explanation": "這是不正確的。有了DeFi,您可以立即借錢,避免了傳統銀行長達數幾天的審批過程。", - "defi-2-d-label": "每時每刻交易您的代幣。", - "defi-2-d-explanation": "這是不對的。DeFi能讓您隨時交易代幣。市場是一直開放的,您可以隨時將ETH與USDT或任何其他貨幣進行交易。", - "defi-3-prompt": "下列哪個 DeFi 平臺可讓使用者直接交換兩個不同代幣?", + "defi-1-d-explanation": "不正確。發展金融 (Development Finance) 一般指的是對經濟發展相關專案的金融資助,一般發生在開發中國家,且與區塊鏈和去中心化金融沒有關聯性。", + "defi-2-prompt": "您無法透過去中心化金融做什麼?", + "defi-2-a-label": "匯款到世界各地。", + "defi-2-a-explanation": "不正確。透過去中心化金融,你可以不受限制地發送任意金額給全球各地的任何人。", + "defi-2-b-label": "聯繫客服人員來還原你的錯誤。", + "defi-2-b-explanation": "正確!在去中心化金融中,交易是最終的並且是由代碼而不是某個公司所控制。如果有錯誤發生,比如將資金發送到錯誤的地址的話,將不會有客服人員來糾正它。所以你需要格外小心。", + "defi-2-c-label": "抵押借款。", + "defi-2-c-explanation": "不正確。有了去中心化金融,你可以立即借錢,避免了傳統銀行長達數幾天的審批過程。", + "defi-2-d-label": "每時每刻交易代幣。", + "defi-2-d-explanation": "不正確。去中心化金融能讓你每時每刻交易代幣。市場是一直開放的,您可以隨時將以太幣與 USDT 或任何其他貨幣進行交易。", + "defi-3-prompt": "下列哪個去中心化金融平台可讓使用者直接交換兩個不同的代幣?", "defi-3-a-label": "Uniswap", - "defi-3-a-explanation": "正確!Uniswap 是去中心化交易所,透過自動化做市機制(AMM),使用者可以在平臺上直接交易(交換)兩個不同的代幣。", + "defi-3-a-explanation": "正確!Uniswap 是一個去中心化交易所,使用者可以透過自動化做市機制直接交易(交換)兩個不同的代幣。", "defi-3-b-label": "Aave", - "defi-3-b-explanation": "不正確。Aave 是專注於借貸而非代幣交換的 DeFi 協議。", + "defi-3-b-explanation": "不正確。Aave 是專注於借貸而非代幣交換的去中心化金融協定。", "defi-3-c-label": "PoolTogether", - "defi-3-c-explanation": "不正確。PoolTogether 營運了無損彩券的服務,並提供一種創新的儲蓄方法。", + "defi-3-c-explanation": "不正確。PoolTogether 運行無損彩券服務,提供一種創新的儲蓄方法。", "defi-3-d-label": "MakerDao", - "defi-3-d-explanation": "不正確。MakerDAO 主要是讓使用者發行和管理 DAI 穩定幣的去中心化平臺,而非代幣交換。", - "defi-4-prompt": "當您使用一個 DeFi 應用程式完成了一筆交易,該交易的資料儲存在何處?", + "defi-3-d-explanation": "不正確。MakerDAO 是一個讓使用者發行和管理 DAI 穩定幣的去中心化平台,而非專注於代幣交換。", + "defi-4-prompt": "當你使用一個去中心化金融應用程式完成了一筆交易,該交易的資訊儲存在何處?", "defi-4-a-label": "以太幣", - "defi-4-a-explanation": "不正確。資料並非儲存在以太幣(ETH)中。以太幣是以太坊區塊鏈的原生資產。", + "defi-4-a-explanation": "不正確。資料並非儲存在以太幣 (ETH) 中。以太幣是以太坊區塊鏈的原生資產。", "defi-4-b-label": "我的錢包中", - "defi-4-b-explanation": "不正確。錢包是一個應用程式,透過連接到以太坊區塊鏈來管理您的以太坊帳戶。錢包並不會儲存您交易記錄的相關資訊。", - "defi-4-c-label": "DeFi 應用程式", - "defi-4-c-explanation": "不正確。DeFi 應用程式不直接儲存您的交易歷史,交易詳細是存在以太坊區塊鏈上。", + "defi-4-b-explanation": "不正確。錢包是一個應用程式,透過連接到以太坊區塊鏈來管理你的以太坊帳戶。錢包並不會儲存你的任何交易歷史記錄資料。", + "defi-4-c-label": "去中心化金融應用程式", + "defi-4-c-explanation": "不正確。去中心化金融應用程式不會直接儲存你的交易歷史記錄,交易詳情是記錄在以太坊區塊鏈上。", "defi-4-d-label": "以太坊區塊鏈", - "defi-4-d-explanation": "正確!以太坊區塊鏈儲存了其所有使用者和應用程式的資料,並讓驗證者透過 P2P 網路維護相同的狀態。", - "defi-5-prompt": "何者讓去中心化金融(DeFi)在以太坊上成為可能?", + "defi-4-d-explanation": "正確!以太坊區塊鏈會儲存其所有使用者和應用程式的資料。這讓驗證者可以透過點對點網路維護相同的狀態。", + "defi-5-prompt": "下列何者讓去中心化金融 (DeFi) 在以太坊上成為可能?", "defi-5-a-label": "智慧型合約", - "defi-5-a-explanation": "正確!智能合約就像是寫入以太坊的「如果...則...」語句。這取代了傳統的合約和中間人,在特定狀況發生時可以自動執行交易。", + "defi-5-a-explanation": "正確!智慧型合約就像是寫入以太坊的「如果...則...」數位敘述。這取代了傳統的合約和中間人,在特定狀況發生時可以自動執行交易。", "defi-5-b-label": "中間人", - "defi-5-b-explanation": "不正確。以太坊上執行交易並不需要中間人。所有邏輯都透過智能合約在鏈上運行。", + "defi-5-b-explanation": "不正確。以太坊上執行交易並不需要中間人。所有邏輯都透過智慧型合約在鏈上運行。", "defi-5-c-label": "比特幣", - "defi-5-c-explanation": "不正確。比特幣是單純用於價值儲存的網路,並不是用來運行較進階的程式。實現去中心化金融需要彈性較高的系統,如以太坊等能夠自動運行複雜的程式來處理借貸以及交易。", + "defi-5-c-explanation": "不正確。比特幣是單純用於價值儲存的網路,並不是用來運行進階程式。實現去中心化金融需要彈性較高,能夠自動運行複雜的程式來處理借貸及交易的系統,如以太坊等。", "defi-5-d-label": "傳統金融機構", - "defi-5-d-explanation": "不正確。DeFi 應用程式不需要傳統金融機構,而是透過區塊鏈上被成為智能合約的程式來自動處理交易。" + "defi-5-d-explanation": "不正確。去中心化金融應用程式不需要傳統金融機構,而是透過區塊鏈上被稱為智慧型合約的程式來自動處理交易。" } diff --git a/src/intl/zh-tw/page-contributing-translation-program-acknowledgements.json b/src/intl/zh-tw/page-contributing-translation-program-acknowledgements.json index 83f06d6ca48..24647afd958 100644 --- a/src/intl/zh-tw/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/zh-tw/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "總字數", "page-contributing-translation-program-acknowledgements-oats-title": "鏈上成就代幣 (OAT)", "page-contributing-translation-program-acknowledgements-1": "翻譯計劃的貢獻者有資格獲得不同的 OAT(鏈上成就代幣),這是一種能夠證明其參與了 ethereum.org 翻譯計劃的非同質化代幣。", - "page-contributing-translation-program-acknowledgements-2": "我們根據譯者的活躍度,提供不同的鏈上成就代幣。", + "page-contributing-translation-program-acknowledgements-2": "我們根據譯者的活躍度,提供了多種不同的鏈上成就代幣 (OAT)。", "page-contributing-translation-program-acknowledgements-3": "如果你在 Crowdin 中為翻譯工作做出貢獻,我們將向你發放鏈上成就代幣!", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "如何領取", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "加入我們的", diff --git a/src/intl/zh-tw/page-dapps.json b/src/intl/zh-tw/page-dapps.json index 047dfb459f7..aa8fa4d9321 100644 --- a/src/intl/zh-tw/page-dapps.json +++ b/src/intl/zh-tw/page-dapps.json @@ -78,6 +78,7 @@ "page-dapps-dapp-description-cryptovoxels": "在以太坊虛擬世界中,建立藝廊、開店和購買土地。", "page-dapps-dapp-description-cyberconnect": "去中心化社交圖譜協定,幫助去中心化應用程式啟動網路效應並構建個人化社交體驗。", "page-dapps-dapp-description-dark-forest": "在無垠、程序化生成、特定加密的宇宙中征服眾多行星。", + "page-dapps-dapp-description-crack-and-stack": "與其他玩家一起進入礦井,堆疊以太幣鑽石,並嘗試帶著懸賞逃離。", "page-dapps-dapp-description-decentraland": "在無盡探索的虛擬世界中收集、交易虛擬土地。", "page-dapps-dapp-description-ens": "使用者友善的以太坊位址名稱,以及去中心化網站。", "page-dapps-dapp-description-foundation": "投資獨一無二版本的數位藝術品,並與其他買家交易。", @@ -127,6 +128,7 @@ "page-dapps-docklink-dapps": "去中心化應用程式簡介", "page-dapps-docklink-smart-contracts": "智慧型合約", "page-dapps-dark-forest-logo-alt": "Dark Forest 標誌", + "page-dapps-crack-and-stack-logo-alt": "Crack & Stack 標誌", "page-dapps-decentraland-logo-alt": "Decentraland 標誌", "page-dapps-index-coop-logo-alt": "Index Coop 標誌", "page-dapps-nexus-mutual-logo-alt": "Nexus Mutual 標誌", diff --git a/src/intl/zh-tw/page-developers-learning-tools.json b/src/intl/zh-tw/page-developers-learning-tools.json index 60bf03ff13a..ef8ae060dcd 100644 --- a/src/intl/zh-tw/page-developers-learning-tools.json +++ b/src/intl/zh-tw/page-developers-learning-tools.json @@ -54,7 +54,7 @@ "page-learning-tools-platzi-logo-alt": "Platzi 標誌", "page-learning-tools-alchemy-university-description": "透過課程、專案、和程式碼發展你的 Web3 職涯。", "page-learning-tools-alchemy-university-logo-alt": "Alchemy 大學標誌", - "page-learning-tools-learnweb3-description": "LearnWeb3 是一個免費、高質量的教育平台,助益從零開始學習 Web3 開發。", + "page-learning-tools-learnweb3-description": "LearbWeb3 是一個免費、高質量的教育平台,助益從零開始學習 Web3 開發。", "page-learning-tools-learnweb3-logo-alt": "LearnWeb3 標誌", "page-learning-tools-cyfrin-updraft-description": "學習適合所有技能水平和安全審核的智慧型合約開發。", "page-learning-tools-cyfrin-updraft-logo-alt": "Cyfrin Updraft 標誌", diff --git a/src/intl/zh-tw/page-developers-local-environment.json b/src/intl/zh-tw/page-developers-local-environment.json index 6b347907e29..c6d9ca2c0bf 100644 --- a/src/intl/zh-tw/page-developers-local-environment.json +++ b/src/intl/zh-tw/page-developers-local-environment.json @@ -29,7 +29,5 @@ "page-local-environment-setup-subtitle-2": "你可以使用這些工具及架構幫助開發以太坊應用程式。", "page-local-environment-setup-title": "設定你的本機開發環境", "page-local-environment-solidity-template-desc": "預先設置的 Solidity 智慧型合約 GitHub 模板。包括 Hardhat 本機網路、Waffle 測試、Ethers 錢包實作以及更多。", - "page-local-environment-solidity-template-logo-alt": "Solidity 模板標誌", - "page-local-environment-waffle-desc": "最先進的智慧型合約測試區。可單獨使用,或是與 Scaffold-eth、Hardhat 一起使用。", - "page-local-environment-waffle-logo-alt": "Waffle 標誌" -} + "page-local-environment-solidity-template-logo-alt": "Solidity 模板標誌" +} \ No newline at end of file diff --git a/src/intl/zh-tw/page-gas.json b/src/intl/zh-tw/page-gas.json index 3d83dea4d02..9d04e70d3fd 100644 --- a/src/intl/zh-tw/page-gas.json +++ b/src/intl/zh-tw/page-gas.json @@ -1,5 +1,5 @@ { - "page-gas-meta-title": "以太坊上的燃料費:它們如何運作?", + "page-gas-meta-title": "以太坊費用:什麽是燃料?如何支付較少的燃料?", "page-gas-meta-description": "瞭解以太坊上的燃料:它們如何運作以及如何節省燃料費", "page-gas-hero-title": "燃料費", "page-gas-hero-header": "網路費用", diff --git a/src/intl/zh-tw/page-get-eth.json b/src/intl/zh-tw/page-get-eth.json index 3f22563e867..969da9e5175 100644 --- a/src/intl/zh-tw/page-get-eth.json +++ b/src/intl/zh-tw/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "取得以太幣主頁橫幅圖檔", "page-get-eth-keep-it-safe": "讓你的以太幣保持安全", "page-get-eth-meta-description": "如何根據你的居住地購買以太幣,以及如何管理的相關建議。", - "page-get-eth-meta-title": "如何取得以太幣", + "page-get-eth-meta-title": "如何購買以太幣 (ETH)", "page-get-eth-need-wallet": "你必須擁有錢包,才能使用去中心化交易所。", "page-get-eth-new-to-eth": "剛開始接觸以太幣?這裡有一份入門指南。", "page-get-eth-other-cryptos": "使用其他加密貨幣購買", diff --git a/src/intl/zh-tw/page-index.json b/src/intl/zh-tw/page-index.json index 90ada00ac13..e6ff4444e82 100644 --- a/src/intl/zh-tw/page-index.json +++ b/src/intl/zh-tw/page-index.json @@ -65,7 +65,7 @@ "page-index-learn-tag": "學習", "page-index-learn-header": "瞭解以太坊", "page-index-meta-description": "以太坊是一個全球化、去中心化平台,提供營利商機和新型應用程式。你可以在以太坊撰寫程式碼控制資金,並建立可從全球各地存取的應用程式。", - "page-index-meta-title": "以太坊完整指引", + "page-index-meta-title": "Ethereum.org:以太坊完整指南", "page-index-network-stats-total-eth-staked": "保護以太坊的價值", "page-index-network-stats-tx-cost-description": "平均交易成本", "page-index-network-stats-tx-day-description": "最近 24 小時的交易", diff --git a/src/intl/zh-tw/page-layer-2.json b/src/intl/zh-tw/page-layer-2.json index 68ea573822e..0967ef424bc 100644 --- a/src/intl/zh-tw/page-layer-2.json +++ b/src/intl/zh-tw/page-layer-2.json @@ -1,139 +1 @@ -{ - "layer-2-arbitrum-note": "欺詐證明僅適用於白名單使用者,白名單尚未開放", - "layer-2-boba-note": "狀態驗證正在開發中", - "layer-2-optimism-note": "錯誤性證明正在開發中", - "layer-2-base-note": "欺詐證明系統正在開發中", - "layer-2-metadata-description": "二層網路介紹頁面", - "layer-2-hero-title": "二層網路", - "layer-2-hero-header": "以太坊為所有人而生", - "layer-2-hero-subtitle": "擴容以太坊以實現大規模採用。", - "layer-2-hero-alt-text": "交易彙總於二層網路並發佈到以太坊主網的插圖", - "layer-2-hero-button-1": "什麼是二層網路", - "layer-2-hero-button-2": "使用二層網路", - "layer-2-hero-button-3": "移動到二層網路", - "layer-2-statsbox-1": "二層網路中鎖定的總價值 (USD)", - "layer-2-statsbox-2": "二層網路平均的以太幣轉帳費用 (USD)", - "layer-2-statsbox-3": "二層網路總價值變化(30天)", - "layer-2-what-is-layer-2-title": "什麼是二層網路", - "layer-2-what-is-layer-2-1": "二層網路 (L2) 是個統稱,用於描述一組特定的以太坊擴容方案。二層網路是單獨的區塊鏈,擴展了以太坊並承襲了以太坊的安全保證。", - "layer-2-what-is-layer-2-2": "現在讓我們再深入一點。為此,我們得先解釋一層網路 (L1)。", - "layer-2-what-is-layer-1-title": "什麼是一層網路?", - "layer-2-what-is-layer-1-1": "一層網路是區塊鏈的底層。以太坊與比特幣皆屬於一層網路的區塊鏈,因為它們是整個網路的基石,讓各式各樣的二層網路得以建立在它們之上。二層網路專案的例子包括以太坊上的「卷軸」和基於比特幣的閃電網路。這些二層網路專案上的所有使用者交易活動最終都可以傳輸回一層網路區塊鏈。", - "layer-2-what-is-layer-1-2": "以太坊也可以用作二層網路的資料可用性層。二層網路專案會將其交易資料發佈到以太坊,依賴以太坊實現資料可用性。此資料可用來取得二層網路的狀態,或對二層網路上的交易提出異議。", - "layer-2-what-is-layer-1-list-title": "以太坊作為一層網路還包括:", - "layer-2-what-is-layer-1-list-1": "節點運行者網路,用於保護和驗證網路", - "layer-2-what-is-layer-1-list-2": "區塊生產者網路", - "layer-2-what-is-layer-1-list-3": "區塊鏈本身及交易資料的歷史", - "layer-2-what-is-layer-1-list-4": "網路的共識機制", - "layer-2-what-is-layer-1-list-link-1": "依然對以太坊感到困惑嗎?", - "layer-2-what-is-layer-1-list-link-2": "了解什麼是以太坊。", - "layer-2-why-do-we-need-layer-2-title": "為什麼我們需要二層網路?", - "layer-2-why-do-we-need-layer-2-1": "區塊鏈三個令人滿意的屬性是去中心化、安全和可擴展性區塊鏈不可能三角中指出,簡單的區塊鏈架構只能實現三個屬性中的兩個,想要安全和去中心化的區塊鏈?你可能需要犧牲可擴展性。", - "layer-2-why-do-we-need-layer-2-2": "以太坊目前每天能處理 100 多萬筆交易。以太坊的使用需求增加令交易費價格居高不下,這時二層網路就能派上用場了。", - "layer-2-why-do-we-need-layer-2-scalability": "可擴展性", - "layer-2-why-do-we-need-layer-2-scalability-1": "二層網路的主要目標是在不犧牲去中心化或安全性的情況下提高交易吞吐量(每秒更高的交易量)。", - "layer-2-why-do-we-need-layer-2-scalability-2": "以太坊主網(一層網路)每秒僅能處理約 15 筆交易。當以太坊使用需求增加時,網路會變得擁擠,導致了交易費升高,並使無法負擔高昂費用的使用者卻步。二層網路可以解決這個問題,透過在一層網路區塊鏈的鏈下處理交易,降低了上述費用。", - "layer-2-why-do-we-need-layer-2-scalability-3": "關於以太坊願景的更多訊息", - "layer-2-benefits-of-layer-2-title": "二層網路的優點", - "layer-2-lower-fees-title": "降低費用", - "layer-2-lower-fees-description": "透過將多筆鏈下交易合併成一筆單獨的一層網路交易,交易費將大幅降低,從而使所有人都能夠更容易參與以太坊。", - "layer-2-maintain-security-title": "維護安全", - "layer-2-maintain-security-description": "二層網路區塊鏈在以太坊主網上結算交易,令使用者能夠受益於以太坊網路的安全性。", - "layer-2-expand-use-cases-title": "擴展使用案例", - "layer-2-expand-use-cases-description": "隨著每秒的交易量增加、交易費用降低和新技術發展,方案將擴展到新的應用程式,並改善使用者體驗。", - "layer-2-how-does-layer-2-work-title": "二層網路是如何工作的?", - "layer-2-how-does-layer-2-work-1": "正如我們上面提到的,二層網路是以太坊擴容解決方案的統稱,這些解決方案在處理以太坊一層網路以外的交易時,仍能享有以太坊一層網路穩健的去中心化安全性。二層網路的獨立區塊鏈擴展了以太坊。那麼它是如何運作的?", - "layer-2-how-does-layer-2-work-2": "市面上有各種類型的二層網路,各有各的權衡取捨及安全模型。二層網路分掉了一層網路的交易負荷,使一層網路不再那麼擁擠,可擴展性變得更高。", - "layer-2-rollups-title": "卷軸", - "layer-2-rollups-1": "卷軸將數百筆交易捆綁打包(或稱「匯總」)成單筆交易,並發佈到一層網路。這讓卷軸中的所有人共同分攤了一層網路上的交易費,也降低了每位使用者須負擔的費用。", - "layer-2-rollups-2": "卷軸中的交易資料會提交到一層網路,但交易的執行是由卷軸單獨完成的。藉由將交易資料提交到一層網路上,卷軸即繼承了以太坊的安全性。這是因為一旦資料上傳至一層網路,要逆轉一筆卷軸交易就必須逆轉以太坊的狀態。有 2 種不同的卷軸方法:樂觀卷軸及零知識證明卷軸—它們的主要差異為交易資料提交到一層網路的方式。", - "layer-2-optimistic-rollups-title": "樂觀卷軸", - "layer-2-optimistic-rollups-description": "樂觀卷軸之所以「樂觀」是因為其假定交易皆有效,但可以在必要時提出質疑。如果懷疑某交易無效,便會進行錯誤性證明,驗證是否發生無效交易。", - "layer-2-optimistic-rollups-childSentance": "更多樂觀卷軸相關資訊", - "layer-2-zk-rollups-title": "零知識證明卷軸", - "layer-2-zk-rollups-description": "零知識證明卷軸使用有效性證明,其交易在鏈下計算,然後將壓縮後的資料提供給以太坊主網作為有效性證明。", - "layer-2-zk-rollups-childSentance": "關於零知識證明卷軸的更多資訊", - "layer-2-dyor-title": "自行研究:二層網路的風險", - "layer-2-dyor-1": "許多二層網路的專案相對年輕,且仍要使用者片面相信某些營運者能以誠實可靠的作法來實現其網路的去中心化。請一律自己做好研究 (DYOR),以決定你是否願意承擔可能包含的任何風險。", - "layer-2-dyor-2": "如需關於二層網路技術、風險及信任假設的更多資訊,推薦你了解一下 L2BEAT,其提供了每個專案的完整風險評估框架。", - "layer-2-dyor-3": "前往 L2BEAT", - "layer-2-use-layer-2-title": "使用二層網路", - "layer-2-use-layer-2-1": "現在你知道了為什麼二層網路會存在和它是如何工作的,讓我們開始行動吧!", - "layer-2-contract-accounts": "如果你使用的是智慧型合約錢包,如 Safe 或 Argent,在重新部署合約帳戶到二層網路上該地址前,你將無法控制此地址。具有恢復短語的傳統帳戶會自動擁有所有二層網路上的相同地址。", - "layer-2-use-layer-2-generalized-title": "廣義二層網路", - "layer-2-use-layer-2-generalized-1": "廣義二層網路的行為和以太坊並無區別,但更經濟實惠。你在以太坊一層網路上能做的事情,在二層網路上同樣能做。許多去中心化應用程式已開始遷移至這些網路,或者跳過主網,直接在二層網路上建構專案。", - "layer-2-use-layer-2-application-specific-title": "應用程式特定的二層網路", - "layer-2-use-layer-2-application-specific-1": "特定於應用程式的二層網路是專門針對特定應用程式空間進行優化以提高性能的計畫。", - "layer-2-sidechains-title": "關於側鏈、Validium 和替代區塊鏈的注釋。", - "layer-2-sidechains-1": "側鏈和 Validium 是一種區塊鏈,能讓以太坊的資產橋接到另一個區塊鏈並在其上使用該資產。側鏈和 Validium 與以太坊平行運作,並透過跨鏈橋與以太坊互動,但它們並沒有從以太坊取得安全性或資料可用性。", - "layer-2-sidechains-2": "這兩種擴容方式與二層網路相似 - 它們均提供更低的交易費和更高的交易吞吐量 - 但具有不同的信任假設。", - "layer-2-more-on-sidechains": "關於側鏈的更多資訊", - "layer-2-more-on-validiums": "關於 Validium 的更多資訊", - "layer-2-sidechains-4": "據報,某些一層網路的區塊鏈有高於以太坊的吞吐量和低於它的交易費,但通常在其他地方做了取捨,例如運行節點的硬體需求更高。", - "layer-2-onboard-title": "如何實現二層網路", - "layer-2-onboard-1": "目前主要有兩種方法能夠將你的資產放到二層網路:透過智慧型合約將以太坊上的資金橋接到二層網路,或將你的資金直接從交易所提取到二層網路。", - "layer-2-onboard-wallet-title": "在你錢包中的資金?", - "layer-2-onboard-wallet-1": "如果你的錢包中已經有以太幣了,你需要使用跨鏈橋將它從以太坊主網轉移到二層網路。", - "layer-2-more-on-bridges": "關於跨鏈橋的更多資訊", - "layer-2-onboard-wallet-input-placeholder": "選擇你想要橋接到的二層網路", - "layer-2-onboard-wallet-selected-1": "你可以連線到", - "layer-2-onboard-wallet-selected-2": "使用這些錢包:", - "layer-2-bridge": "跨鏈橋", - "layer-2-onboard-exchange-title": "資金在交易所內?", - "layer-2-onboard-exchange-1": "一些中心化交易所現在提供直接存款和提款到二層網路的功能。查閱哪些交易所支援二層網路提款和它們支援哪些二層網路。", - "layer-2-onboard-exchange-2": "你也會需要一個錢包以接收你所提現的資產。", - "layer-2-onboard-find-a-wallet": "尋找以太坊錢包。", - "layer-2-onboard-exchange-input-placeholder": "查看支援二層網路的交易所", - "layer-2-deposits": "存款", - "layer-2-withdrawals": "提款", - "layer-2-go-to": "前往", - "layer-2-tools-title": "在二層網路上有效的工具", - "layer-2-tools-l2beat-description": "L2BEAT 是對二層網路計畫進行技術風險評估的一個重要資源。我們推薦在研究特定的二層網路計畫時查閱他們的資源。", - "layer-2-tools-growthepie-description": "精選以太坊二層網路分析", - "layer-2-tools-ethereumecosystem-description": "以太坊及其二層網路(包括 Base、Optimism 及 Starknet)的非官方生態系統頁面,具有數百個去中心化應用程式及工具。", - "layer-2-tools-l2fees-description": "L2 Fees 使你能夠看到當前在不同二層網路上進行交易的費用(以美元計價)。", - "layer-2-tools-chainlist-description": "Chainlist 是一個重要的資源,用於匯入網路的遠端程序呼叫協定到支援的錢包中。你將在這裡找到二層網路計畫的遠端程序呼叫協定,幫助你建立連線。", - "layer-2-tools-zapper-description": "管理你整個 web3 資產組合,從去中心化金融到非同質化代幣,以及之後出現的任何東西。從這裡方便地找到投資的最新機會。", - "layer-2-tools-zerion-description": "從這裡建倉並管理你的整個去中心化金融資產組合。探索當前的去中心化金融世界。", - "layer-2-tools-debank-description": "追蹤 web3 世界中的所有重要事件", - "layer-2-faq-title": "常見問題", - "layer-2-faq-question-1-title": "為什麼沒有「官方的」以太坊二層網路?", - "layer-2-faq-question-1-description-1": "正如沒有「官方的」以太坊用戶端一樣,也不存在「官方的」以太坊二層網路。以太坊是無需許可的 - 從技術上講,任何人都可以建立二層網路!多個團隊將落實他們的二層網路版本,整個生態系統將受益於針對不同的使用場景而進行優化的多種設計方法。就像我們擁有多個由不同團隊開發的以太坊用戶端,以便讓網路具有多樣性一樣,這也將是未來二層網路的發展方式。", - "layer-2-faq-question-2-title": "樂觀和零知識證明卷軸有什麼不同?", - "layer-2-faq-question-2-description-1": "樂觀和零知識證明卷軸均可以將數百筆交易綑綁(或稱「打包」)為一層網路上的單筆交易。打包交易於一層網路之外執行,但交易資料會發布到一層網路。", - "layer-2-faq-question-2-description-2": "主要區別在於將哪些資料發佈到一層網路以及如何驗證資料。有效性證明(用於零知識證明卷軸)在鏈外運行計算並發布證明,而錯誤性證明(用於樂觀卷軸)僅在懷疑存在錯誤且必須檢查錯誤時才在鏈上運行計算。", - "layer-2-faq-question-2-description-3": "目前,大部分零知識證明卷軸是特定於應用程式的,而樂觀卷軸則基本上可以被廣泛應用。", - "layer-2-more-info-on-optimistic-rollups": "更多樂觀卷軸相關資訊", - "layer-2-more-info-on-zk-rollups": "關於零知識卷軸的更多資訊", - "layer-2-faq-question-4-title": "二層網路的風險是什麼?", - "layer-2-faq-question-4-description-1": "與在以太坊主網上直接持有資金並進行交易相比,二層網路專案有著額外的風險。舉例來說,排序者可能會離線,你不得不等待其重新上線才能存取資金。", - "layer-2-faq-question-4-description-2": "我們鼓勵你在轉移大筆資金到二層網路之前,自行進行研究。更多關於二層網路的技術、風險和信任假設的資訊,我們建議你查閱 L2BEAT,它為每個專案提供了一個全面性風險評估框架。", - "layer-2-faq-question-4-description-3": "促進資產轉移到二層網路的區塊鏈跨鏈橋處於早期開發階段,很可能尚未發現最佳的跨鏈橋設計。近期已有跨鏈橋被駭。", - "layer-2-faq-question-5-title": "為什麼這裡沒有列出一些二層網路計畫?", - "layer-2-faq-question-5-description-1": "我們希望確保列出可能最佳的資源,令使用者能夠以安全和自信的方式悠遊在二層網路的世界。我們維護了一個標準框架,用於評估是否將計畫包含在內。", - "layer-2-faq-question-5-view-listing-policy": "在此處查看我們的二層網路上架政策。", - "layer-2-faq-question-5-description-2": "任何人都可以自由地在 ethereum.org 提議添加一個二層網路。如果有我們未收錄的二層網路,請提供建議。", - "layer-2-further-reading-title": "延伸閱讀", - "a-rollup-centric-ethereum-roadmap": "以卷軸為中心的以太坊路線圖", - "an-incomplete-guide-to-rollups": "不完全的卷軸指南", - "polygon-sidechain-vs-ethereum-rollups": "Polygon 側鏈與以太坊卷軸對比:二層網路擴容方案 | Vitalik Buterin 和 Lex Fridman", - "rollups-the-ultimate-ethereum-scaling-strategy": "卷軸 - 終極以太坊擴容策略?解釋了 Arbitrum 與樂觀卷軸", - "scaling-layer-1-with-shard-chains": "利用分片鏈擴容一層網路", - "understanding-rollup-economics-from-first-principals": "從第一原則了解卷軸經濟", - "arbitrum-description": "Arbitrum One 是一種樂觀卷軸,目標是讓使用者感覺就像與以太坊互動一樣,但交易成本只是一層網路的一小部分而已。", - "optimism-description": "Optimism 是一種快速、簡單且安全的與以太坊虛擬機等效的樂觀卷軸。它擴展了以太坊的技術,同時通過追溯公共財產資金來擴展其價值。", - "boba-description": "Boba 是一種樂觀卷軸,最初從樂觀分叉而來。「樂觀」是一種擴容解決方案,旨在減少燃料費,提高交易吞吐量,並擴展智慧型合約的功能。", - "base-description": "Base 是安全、低成本及開發者友善的以太坊二層網路,目標是帶領 10 億使用者進入 Web3。它是由 Coinbase 孵化,建構於開源 OP 堆棧上的以太坊二層網路。", - "loopring-description": "路印 (Loopring) 是零知識證明卷軸的二層網路解決方案,旨在提供與以太坊主網相同的安全性保障,並大規模提升可擴展性:交易吞吐量增加 1000 倍,交易費減低至一層網路的 0.1%。", - "zksync-description": "ZkSync 是一種零知識卷軸,目的是在不降低以太坊安全性及去中心化程度的情況下,對以太坊及其價值進行擴容,以促進主流採用。", - "zkspace-description": "ZKSpace 平台由三個主要部分所組成:使用零知識證明卷軸技術建立的二層網路自動化做市商去中心化交易所(名為 ZKSwap);名為 ZKSquare 的支付服務;以及名為 ZKSea 的非同質化代幣交易市場。", - "aztec-description": "Aztec 網路是第一個在以太坊上的私有零知識證明卷軸,使去中心化應用程式能存取隱私和擴張。", - "starknet-description": "Starknet 是一個驗證卷軸二層網路。它不僅提供高流量、低燃料成本,并且保持了以太坊一層網路的安全等級。", - "layer-2-note": "備註:", - "layer-2-ecosystem-portal": "生態系統相關入口網站", - "layer-2-token-lists": "代幣清單", - "layer-2-explore": "探索", - "page-dapps-ready-button": "開始", - "layer-2-information": "資訊", - "layer-2-wallet-managers": "錢包管理工具" -} +{} diff --git a/src/intl/zh-tw/page-learn.json b/src/intl/zh-tw/page-learn.json index 5d13a262bd8..869c412506f 100644 --- a/src/intl/zh-tw/page-learn.json +++ b/src/intl/zh-tw/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "了解以太坊", "hero-subtitle": "你進入以太坊世界的學習指南,協助你理解以太坊的工作原理以及如何參與。本頁面包含了技術與非技術文章、指南和相關資源。", "hero-button-lets-get-started": "開始吧", + "page-learn-meta-title": "以太坊:全面學習指南", "what-is-crypto-1": "你可能有聽過加密貨幣、區塊鏈跟比特幣。下方連結可以幫助你學習這些概念,並了解它們與以太坊的關聯性。", "what-is-crypto-2": "加密貨幣(如比特幣)讓任何人都可以轉帳至全世界。以太坊也可以,它還能運行程式碼,使人們建立應用程式和組織。它兼具彈性與靈活性:任何電腦程式都可在以太坊上運行。了解更多詳細資訊以及如何開始:", "what-is-ethereum-card-title": "Ethereum 是什麼呢?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "尋找錢包", "find-a-wallet-card-description": "根據你所重視的功能瀏覽錢包。", "find-a-wallet-button": "錢包列表", - "crypto-security-basics-card-title": "安全基礎知識", - "crypto-security-basics-card-description": "學會如何辨識詐騙以及避免最常見的騙局。", - "crypto-security-basics-card-button": "保障安全", + "ethereum-networks-card-title": "以太坊網路", + "ethereum-networks-card-description": "使用更便宜、更快捷的以太坊擴充功能來節省資金。", + "ethereum-networks-card-button": "選擇網路", "things-to-consider-banner-title": "使用以太坊時需考慮的事項", "things-to-consider-banner-1": "每筆以太坊交易都需要用以太幣支付費用,即使你僅需要移動r建置於以太坊的不同代幣,如穩定幣 USDC 或 DAI。", "things-to-consider-banner-2": "根據嘗試使用以太坊的人數,費用可能會很高,因此我們建議使用", diff --git a/src/intl/zh-tw/page-run-a-node.json b/src/intl/zh-tw/page-run-a-node.json index e3fe378df31..dfa33a14733 100644 --- a/src/intl/zh-tw/page-run-a-node.json +++ b/src/intl/zh-tw/page-run-a-node.json @@ -111,6 +111,7 @@ "page-run-a-node-sovereignty-1": "以太坊錢包讓你可以持有位址的私密金鑰,取得數位資產的全面監護與控制,但是這些金鑰不會告知你區塊鏈的目前狀態,例如你的錢包餘額。", "page-run-a-node-sovereignty-2": "在預設情況下,以太坊錢包在查詢你的餘額時通常會連結第三方節點,例如 Infura 或是 Alchemy。運行你自己的節點讓你有自己的以太坊區塊鏈副本。", "page-run-a-node-title": "運行節點", + "page-run-a-node-meta-title": "如何運行以太坊節點", "page-run-a-node-voice-your-choice-title": "透過投票選擇發聲", "page-run-a-node-voice-your-choice-preview": "發生分叉時不要放棄控制。", "page-run-a-node-voice-your-choice-1": "如果發生鏈分叉,兩條鏈會出現不同規則設定,運行你自己的節點保證你可以選擇支持的規則設定。更新新規則或提議變更與否都取決於你。", diff --git a/src/intl/zh-tw/page-stablecoins.json b/src/intl/zh-tw/page-stablecoins.json index 250ada73018..15044312319 100644 --- a/src/intl/zh-tw/page-stablecoins.json +++ b/src/intl/zh-tw/page-stablecoins.json @@ -131,6 +131,7 @@ "page-stablecoins-stablecoins-table-type-precious-metals-backed": "貴金屬", "page-stablecoins-table-error": "無法載入穩定幣,請嘗試更新頁面。", "page-stablecoins-title": "穩定幣", + "page-stablecoins-meta-title": "穩定幣詳解:它們有什麽用?", "page-stablecoins-top-coins": "依據市值之穩定幣排名", "page-stablecoins-top-coins-intro": "市值為", "page-stablecoins-top-coins-intro-code": "存在的代幣總額乘上每枚代幣的價值。此列表是動態的,列於此的專案未必由 ethereum.org 團隊背書。", diff --git a/src/intl/zh-tw/page-staking.json b/src/intl/zh-tw/page-staking.json index 232b995f47c..28c45913db5 100644 --- a/src/intl/zh-tw/page-staking.json +++ b/src/intl/zh-tw/page-staking.json @@ -232,7 +232,7 @@ "page-staking-join-community": "加入質押者社群", "page-staking-join-community-desc": "EthStaker 是讓大家討論及學習以太坊質押的社群。歡迎加入數萬名來自全球各地的成員,以獲得建議、支援及討論關於質押的話題。", "page-staking-meta-description": "以太坊質押概覽:風險、酬勞、要求以及如何執行。", - "page-staking-meta-title": "以太坊質押", + "page-staking-meta-title": "以太坊質押:它是如何運作的?", "page-staking-withdrawals-important-notices": "重要通知", "page-staking-withdrawals-important-notices-desc": "現在尚未提供提款服務,如欲瞭解更多,請閲讀以太坊 2 合併及合併後階段的常見問題。", "page-upgrades-merge-btn": "合併案的相關細節", diff --git a/src/intl/zh-tw/page-wallets-find-wallet.json b/src/intl/zh-tw/page-wallets-find-wallet.json index 6476a89017a..660e5144253 100644 --- a/src/intl/zh-tw/page-wallets-find-wallet.json +++ b/src/intl/zh-tw/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "錢包可以儲存並交易你的以太幣。你可以根據自己的需求選擇不同的產品。", "page-find-wallet-last-updated": "最後更新", "page-find-wallet-meta-description": "根據你想要的功能尋找與比較以太坊錢包。", - "page-find-wallet-meta-title": "尋找以太坊錢包", + "page-find-wallet-meta-title": "以太坊錢包清單 | ethereum.org", "page-find-wallet-title": "選擇你的錢包", "page-find-wallet-try-removing": "嘗試移除一兩項功能", "page-stake-eth": "質押以太幣", diff --git a/src/intl/zh-tw/page-wallets.json b/src/intl/zh-tw/page-wallets.json index e5b5c47aac4..854e03dd4d0 100644 --- a/src/intl/zh-tw/page-wallets.json +++ b/src/intl/zh-tw/page-wallets.json @@ -28,7 +28,7 @@ "page-wallets-manage-funds": "為你管理資金的應用程式", "page-wallets-manage-funds-desc": "你的錢包會顯示餘額、交易歷史,並讓你能夠傳送/接收資金。某些錢包有更多功能。", "page-wallets-meta-description": "使用以太坊錢包事前須知。", - "page-wallets-meta-title": "以太坊錢包", + "page-wallets-meta-title": "以太坊錢包:購買、儲存和傳送加密貨幣", "page-wallets-mobile": "手機應用程式能夠讓你隨時隨地存取你的資產", "page-wallets-more-on-dapps-btn": "更多關於去中心化應用程式的資訊", "page-wallets-most-wallets": "多數錢包產品會自動產生一個以太坊帳戶。所以你不需要在下載錢包前申辦帳戶。", diff --git a/src/intl/zh-tw/page-what-is-ethereum.json b/src/intl/zh-tw/page-what-is-ethereum.json index 152ad9e9f88..95eb41fe6d8 100644 --- a/src/intl/zh-tw/page-what-is-ethereum.json +++ b/src/intl/zh-tw/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "比特幣及以太幣等資產被稱為「加密貨幣」的原因是,你的資料和資產安全是透過加密技術保障的,而不必依賴機構或公司會誠實行事。", "page-what-is-ethereum-cryptocurrency-tab-content-3": "以太坊有自己的原生加密貨幣,稱為以太幣 (ETH),用於支付網路上進行的特定活動。以太幣可以在以太坊上轉讓給其他使用者或與其他代幣兌換。以太幣的特殊之處在於它用來支付在以太坊上建立和運行應用程式及組織所需的計算。", "page-what-is-ethereum-summary-title": "總結", - "page-what-is-ethereum-summary-desc-1": "以太坊是一個由世界各地的電腦組成的網路,遵循一套稱為以太坊協議的規則。以太坊網路提供了一個基礎,任何人都可以在上面建立和使用社群、應用程式、組織和數位資產。", - "page-what-is-ethereum-summary-desc-2": "你可以隨時隨地建立一個以太坊帳戶,並探索應用程式世界,或建構自己的應用程式。核心創新在於你可以進行上述任何操作,而無需信任一個中心化機構,因為後者可能會改變規則,或限制你的使用權限。", - "page-what-is-ethereum-summary-desc-3": "繼續閱讀以了解更多…", + "page-what-is-ethereum-summary-desc-1": "以太坊是數以千計的去中心化應用程式和區塊鏈的主要平台,它們都由以太坊協議提供支援。", + "page-what-is-ethereum-summary-desc-2": "這個充滿活力的生態系統激發了創新和各種去中心化應用程式與服務。", + "page-what-is-ethereum-summary-bullet-1": "免費且全球性的以太坊帳戶", + "page-what-is-ethereum-summary-bullet-2": "僞私有,無需個人資訊", + "page-what-is-ethereum-summary-bullet-3": "不受限制,任何人都可以參與", + "page-what-is-ethereum-summary-bullet-4": "沒有一家公司擁有以太坊或決定其未來", "page-what-is-ethereum-btc-eth-diff-title": "以太坊和比特幣之間有什麼不同?", "page-what-is-ethereum-btc-eth-diff-1": "以太坊於 2015 年推出,建立在比特幣的創新之上,但兩者之間有一些顯著不同。", "page-what-is-ethereum-btc-eth-diff-2": "兩者都允許你使用數位貨幣,而無需支付提供商或銀行。但以太坊是可編程的,因此你也可以在其網路上構建和部署去中心化應用程式。", diff --git a/src/intl/zh-tw/template-usecase.json b/src/intl/zh-tw/template-usecase.json index 9d627e8b5d0..ab87aa260f1 100644 --- a/src/intl/zh-tw/template-usecase.json +++ b/src/intl/zh-tw/template-usecase.json @@ -2,6 +2,7 @@ "template-usecase-dropdown-defi": "去中心化金融 (DeFi)", "template-usecase-dropdown-nft": "非同質化代幣 (NFT)", "template-usecase-dropdown-dao": "去中心化自治組織 (DAO)", + "template-usecase-dropdown-payments": "以太坊支付", "template-usecase-dropdown-social-networks": "去中心化社群網路", "template-usecase-dropdown-identity": "去中心化身分", "template-usecase-dropdown-desci": "去中心化科研 (DeSci)", @@ -10,4 +11,4 @@ "template-usecase-banner": "以太坊使用案例日益發展及進化。歡迎添增任何新資訊於此頁!", "template-usecase-edit-link": "編輯頁面", "template-usecase-dropdown-aria": "使用案例下拉選單" -} +} \ No newline at end of file diff --git a/src/intl/zh/page-developers-index.json b/src/intl/zh/page-developers-index.json index 33a0eebf075..d51a3dd23c1 100644 --- a/src/intl/zh/page-developers-index.json +++ b/src/intl/zh/page-developers-index.json @@ -1,14 +1,14 @@ { "page-developer-meta-title": "以太坊开发者资源", "page-developers-about": "关于这些开发者资源", - "page-developers-about-desc": "ethereum.org 帮助你通过以太坊编写关于基本概念和开发堆栈的相关文档,还有一些教程让你开始和运行。", + "page-developers-about-desc": "ethereum.org 提供有关基本概念和开发堆栈的文档,帮助你使用以太坊进行构建。另外还有一些教程来帮助你入门和运行。", "page-developers-about-desc-2": "在 Mozilla 开发者网络的启发下,我们认为以太坊需要一个地方来容纳伟大的开发者内容和资源。像我们在 Mozilla 的朋友一样,这里的一切都是开源的,并准备好让你扩展和改进。", "page-developers-account-desc": "网络上的合约或人员", "page-developers-accounts-link": "帐户", "page-developers-advanced": "高级", "page-developers-api-desc": "使用库与智能合约互动", "page-developers-api-link": "后端应用程序接口", - "page-developers-block-desc": "交易批量添加到区块链中", + "page-developers-block-desc": "添加到区块链的交易批次", "page-developers-block-explorers-desc": "你的以太坊数据门户网站", "page-developers-block-explorers-link": "区块浏览器", "page-developers-blocks-link": "区块", @@ -41,7 +41,7 @@ "page-developers-intro-stack-desc": "关于以太坊堆栈的介绍", "page-developers-js-libraries-desc": "使用 JavaScript 与智能合约进行交互", "page-developers-js-libraries-link": "JavaScript 库", - "page-developers-language-desc": "使用熟悉语言的以太坊", + "page-developers-language-desc": "以熟悉的语言使用以太坊", "page-developers-languages": "编程语言", "page-developers-learn": "学习以太坊开发", "page-developers-learn-desc": "阅读我们的相关文档,了解核心概念和以太坊堆栈。", @@ -59,7 +59,7 @@ "page-developers-networks-link": "网络", "page-developers-node-clients-desc": "如何在网络中验证块和交易", "page-developers-node-clients-link": "节点和客户端", - "page-developers-oracle-desc": "正在获取链下数据到你的智能合约", + "page-developers-oracle-desc": "获取链下数据到你的智能合约", "page-developers-oracles-link": "预言机", "page-developers-play-code": "使用代码播放", "page-developers-read-docs": "阅读文档", diff --git a/src/intl/zh/page-developers-local-environment.json b/src/intl/zh/page-developers-local-environment.json index 70d60404fd6..d4aa44cdeca 100644 --- a/src/intl/zh/page-developers-local-environment.json +++ b/src/intl/zh/page-developers-local-environment.json @@ -1,7 +1,7 @@ { "page-local-environment-brownie-desc": "基于Python的智能合约开发和测试框架,针对以太坊虚拟机为目标。", "page-local-environment-brownie-logo-alt": "Brownie徽标", - "page-local-environment-kurtosis-desc": "这是一个基于容器的工具包,用于轻松配置和启动多客户端以太坊测试网,以便快速进行本地分布式应用程序(dApp)的开发、原型构建和测试。", + "page-local-environment-kurtosis-desc": "这是一个基于容器的工具包,用于轻松配置和启动多客户端以太坊测试网,以便快速进行本地去中心化应用程序(dApp)的开发、原型构建和测试。", "page-local-environment-kurtosis-logo-alt": "Kurtosis 标志", "page-local-environment-epirus-desc": "用于在 Java 虚拟机上开发、部署和监测区块链应用的平台。", "page-local-environment-epirus-logo-alt": "Epirus徽标", @@ -28,8 +28,6 @@ "page-local-environment-setup-subtitle": "如果你准备好开始建造,就选择你的堆栈。", "page-local-environment-setup-subtitle-2": "这里是你可以用来帮助你构建你的以太坊应用的工具和框架。", "page-local-environment-setup-title": "设置你的本地开发环境", - "page-local-environment-solidity-template-desc": "一个GitHub模板,用于为Solidity智能合约预构建设置。包括一个安全帽本地网络,用于测试的华夫饼,用于钱包实现的以太等等。", - "page-local-environment-solidity-template-logo-alt": "Solidity template徽标", - "page-local-environment-waffle-desc": "智能合约最先进的测试版块。单独使用或使用Scaffold-eth或安全帽。", - "page-local-environment-waffle-logo-alt": "Waffle徽标" + "page-local-environment-solidity-template-desc": "GitHub模板,用于为您的Solidity智能合约预先构建设置。包括Hardhat本地网络、Ethers钱包实现等。", + "page-local-environment-solidity-template-logo-alt": "Solidity template徽标" } diff --git a/src/layouts/BaseLayout.tsx b/src/layouts/BaseLayout.tsx index 965da0677c9..59d9d55208a 100644 --- a/src/layouts/BaseLayout.tsx +++ b/src/layouts/BaseLayout.tsx @@ -1,5 +1,4 @@ // import { join } from "path" -import { useContext } from "react" import dynamic from "next/dynamic" import type { Root } from "@/lib/types" @@ -8,8 +7,6 @@ import Footer from "@/components/Footer" import Nav from "@/components/Nav" import { SkipLink } from "@/components/SkipLink" -import { FeedbackWidgetContext } from "@/contexts/FeedbackWidgetContext" - // import TranslationBanner from "@/components/TranslationBanner" // import TranslationBannerLegal from "@/components/TranslationBannerLegal" // import { toPosixPath } from "@/lib/utils/relativePath" @@ -25,7 +22,6 @@ export const BaseLayout = ({ // contentNotTranslated, lastDeployLocaleTimestamp, }: Root) => { - const { showFeedbackWidget } = useContext(FeedbackWidgetContext) // const { locale, asPath } = useRouter() // const CONTRIBUTING = "/contributing/" @@ -79,7 +75,7 @@ export const BaseLayout = ({ * layout on initial load. */} - {showFeedbackWidget && } + ) } diff --git a/src/layouts/Docs.tsx b/src/layouts/Docs.tsx index c9abf47bf2e..adbcf952545 100644 --- a/src/layouts/Docs.tsx +++ b/src/layouts/Docs.tsx @@ -34,8 +34,6 @@ import YouTube from "@/components/YouTube" import { cn } from "@/lib/utils/cn" import { getEditPath } from "@/lib/utils/editPath" -import { usePathname } from "@/i18n/routing" - const baseHeadingClasses = "font-mono uppercase font-bold scroll-mt-40 break-words" @@ -107,6 +105,7 @@ type DocsLayoutProps = Pick< export const DocsLayout = ({ children, + slug, frontmatter, tocItems, lastEditLocaleTimestamp, @@ -114,12 +113,11 @@ export const DocsLayout = ({ contentNotTranslated, }: DocsLayoutProps) => { const isPageIncomplete = !!frontmatter.incomplete - const pathname = usePathname() - const absoluteEditPath = getEditPath(pathname) + const absoluteEditPath = getEditPath(slug) return (
                                        - + {isPageIncomplete && ( @@ -129,7 +127,7 @@ export const DocsLayout = ({ className="flex justify-between bg-background-highlight lg:pe-8" dir={contentNotTranslated ? "ltr" : "unset"} > - +

                                        {frontmatter.title}

                                        ) => ( @@ -90,13 +89,12 @@ export const StaticLayout = ({ contentNotTranslated, }: StaticLayoutProps) => { const locale = useLocale() - const pathname = usePathname() const absoluteEditPath = getEditPath(slug) return (
                                        - + - {!pathname.includes("/whitepaper") && ( + {!slug.includes("/whitepaper") && (

                                        ) => ( & + Pick< + MdPageContent, + "tocItems" | "contributors" | "contentNotTranslated" | "slug" + > & Required> & { frontmatter: TutorialFrontmatter timeToRead: number @@ -95,6 +96,7 @@ type TutorialLayoutProps = ChildOnlyProp & export const TutorialLayout = ({ children, + slug, frontmatter, tocItems, timeToRead, @@ -102,8 +104,7 @@ export const TutorialLayout = ({ contributors, contentNotTranslated, }: TutorialLayoutProps) => { - const pathname = usePathname() - const absoluteEditPath = getEditPath(pathname) + const absoluteEditPath = getEditPath(slug) return (

                                        diff --git a/src/layouts/index.ts b/src/layouts/index.ts index 4e484ab20d6..c0bc3130aef 100644 --- a/src/layouts/index.ts +++ b/src/layouts/index.ts @@ -1,5 +1,26 @@ +import * as mdLayouts from "./md" +import { staticComponents, StaticLayout } from "./Static" + export * from "./BaseLayout" export * from "./Docs" export * from "./md" export * from "./Static" export * from "./Tutorial" + +export const layoutMapping = { + static: StaticLayout, + "use-cases": mdLayouts.UseCasesLayout, + staking: mdLayouts.StakingLayout, + roadmap: mdLayouts.RoadmapLayout, + upgrade: mdLayouts.UpgradeLayout, + translatathon: mdLayouts.TranslatathonLayout, +} + +export const componentsMapping = { + ...staticComponents, + ...mdLayouts.useCasesComponents, + ...mdLayouts.stakingComponents, + ...mdLayouts.roadmapComponents, + ...mdLayouts.upgradeComponents, + ...mdLayouts.translatathonComponents, +} as const diff --git a/src/layouts/md/UseCases.tsx b/src/layouts/md/UseCases.tsx index 5a5e61b065b..972f74c084e 100644 --- a/src/layouts/md/UseCases.tsx +++ b/src/layouts/md/UseCases.tsx @@ -16,7 +16,6 @@ import { getSummaryPoints } from "@/lib/utils/getSummaryPoints" import { ContentLayout } from "../ContentLayout" import { useTranslation } from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" // UseCases layout components export const useCasesComponents = { @@ -35,12 +34,11 @@ export const UseCasesLayout = ({ tocItems, contentNotTranslated, }: UseCasesLayoutProps) => { - const pathname = usePathname() const { t } = useTranslation("template-usecase") const summaryPoints = getSummaryPoints(frontmatter) - const absoluteEditPath = getEditPath(pathname) + const absoluteEditPath = getEditPath(slug) const dropdownLinks: ButtonDropdownList = { text: t("template-usecase:template-usecase-dropdown"), diff --git a/src/layouts/stories/BaseLayout.stories.tsx b/src/layouts/stories/BaseLayout.stories.tsx index c72db420fd2..180ce6e27a5 100644 --- a/src/layouts/stories/BaseLayout.stories.tsx +++ b/src/layouts/stories/BaseLayout.stories.tsx @@ -43,8 +43,8 @@ export const BaseLayout: StoryObj = { Content Here ), - contentIsOutdated: false, - contentNotTranslated: false, + // contentIsOutdated: false, + // contentNotTranslated: false, lastDeployLocaleTimestamp: "May 14, 2021", }, } diff --git a/src/lib/api/ghRepoData.ts b/src/lib/api/ghRepoData.ts index ab544fdd147..1a753a65904 100644 --- a/src/lib/api/ghRepoData.ts +++ b/src/lib/api/ghRepoData.ts @@ -6,20 +6,8 @@ import FoundryImage from "@/public/images/dev-tools/foundry.png" import HardhatImage from "@/public/images/dev-tools/hardhat.png" import KurtosisImage from "@/public/images/dev-tools/kurtosis.png" import ScaffoldEthImage from "@/public/images/dev-tools/scaffoldeth.png" -import WaffleImage from "@/public/images/dev-tools/waffle.png" const frameworksList: Array = [ - { - id: "waffle", - url: "https://getwaffle.io/", - githubUrl: "https://github.com/EthWorks/waffle", - background: "#ffffff", - name: "Waffle", - description: - "page-developers-local-environment:page-local-environment-waffle-desc", - alt: "page-developers-local-environment:page-local-environment-waffle-logo-alt", - image: WaffleImage, - }, { id: "Kurtosis Ethereum Package", url: "https://github.com/kurtosis-tech/ethereum-package", diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 4149b2465c9..b80a194756a 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -8,6 +8,7 @@ import type { CommunityBlog } from "./types" export const OLD_CONTENT_DIR = "src/content" // For old git commit history -- do not remove export const CONTENT_DIR = "public/content" +export const CONTENT_PATH = "/content" export const TRANSLATIONS_DIR = "public/content/translations" export const TRANSLATED_IMAGES_DIR = "/content/translations" export const PLACEHOLDER_IMAGE_DIR = "src/data/placeholders" @@ -28,7 +29,7 @@ export const LOCALES_CODES = BUILD_LOCALES export const SITE_URL = "https://ethereum.org" export const DISCORD_PATH = "/discord/" export const GITHUB_REPO_URL = - "https://github.com/ethereum/ethereum-org-website" + "https://github.com/ethereum/ethereum-org-website/" export const EDIT_CONTENT_URL = `https://github.com/ethereum/ethereum-org-website/tree/dev/` export const MAIN_CONTENT_ID = "main-content" export const WEBSITE_EMAIL = "website@ethereum.org" diff --git a/src/lib/md/compile.ts b/src/lib/md/compile.ts new file mode 100644 index 00000000000..6aa64f5ea74 --- /dev/null +++ b/src/lib/md/compile.ts @@ -0,0 +1,82 @@ +import fs from "fs" +import { join } from "path" + +import { SerializeOptions } from "next-mdx-remote/dist/types" +import { compileMDX, MDXRemoteProps } from "next-mdx-remote/rsc" +import { getPlaiceholder } from "plaiceholder" +import remarkSlug from "rehype-slug" +import remarkGfm from "remark-gfm" +import remarkHeadingId from "remark-heading-id" + +import { CONTENT_DIR, CONTENT_PATH } from "../constants" +import { Frontmatter, TocNodeType } from "../types" + +import rehypeImg from "@/lib/md/rehypeImg" +import remarkInferToc from "@/lib/md/remarkInferToc" +import { remarkPreserveJsx } from "@/lib/md/remarkPreserveJsx" + +// Preprocess the markdown content +function preprocessMarkdown(content: string) { + // Replace heading IDs without escaping to escaped version + // TODO: move to a separate file and test it more + return content.replace(/^(#{1,6}.*?)\{(#[\w-]+)\}/gm, "$1\\{$2\\}") +} + +export const compile = async ({ + markdown, + slugArray, + locale, + components = {}, + scope = {}, +}: { + markdown: string + slugArray: string[] + locale: string + components: MDXRemoteProps["components"] + scope?: Record +}) => { + let tocNodeItems: TocNodeType[] = [] + const tocCallback = (toc: TocNodeType): void => { + tocNodeItems = "items" in toc ? toc.items : [] + } + + const mdPath = join(CONTENT_PATH, ...slugArray) + const mdDir = join(CONTENT_DIR, ...slugArray) + + const mdxOptions = { + remarkPlugins: [ + remarkGfm, + remarkHeadingId, + remarkSlug, + [remarkInferToc, { callback: tocCallback }], + remarkPreserveJsx, + ], + rehypePlugins: [[rehypeImg, { dir: mdDir, srcPath: mdPath, locale }]], + } satisfies SerializeOptions["mdxOptions"] + + const source = preprocessMarkdown(markdown) + + const { content, frontmatter } = await compileMDX({ + source, + components, + options: { + parseFrontmatter: true, + mdxOptions, + scope, + }, + }) + + // If the page has a hero image, generate a blurDataURL for it + if ("image" in frontmatter) { + const heroImagePath = join(process.cwd(), "public", frontmatter.image) + const imageBuffer = fs.readFileSync(heroImagePath) + const { base64 } = await getPlaiceholder(imageBuffer, { size: 16 }) + frontmatter.blurDataURL = base64 + } + + return { + content, + frontmatter, + tocNodeItems, + } +} diff --git a/src/lib/md/data.ts b/src/lib/md/data.ts new file mode 100644 index 00000000000..43612cba478 --- /dev/null +++ b/src/lib/md/data.ts @@ -0,0 +1,87 @@ +import { MDXRemoteProps } from "next-mdx-remote" + +import { + CommitHistory, + FileContributor, + Frontmatter, + Lang, + Layout, + ToCItem, +} from "@/lib/types" + +import { getFileContributorInfo } from "@/lib/utils/contributors" +import { getLocaleTimestamp } from "@/lib/utils/time" + +import { compile } from "./compile" +import { importMd } from "./import" + +const commitHistoryCache: CommitHistory = {} + +interface GetPageDataParams { + locale: string + slug: string + components: MDXRemoteProps["components"] + layout?: Layout + scope?: Record +} + +interface PageData { + content: React.ReactNode + frontmatter: Frontmatter + tocItems: ToCItem[] + lastEditLocaleTimestamp: string + contributors: FileContributor[] + isTranslated: boolean +} + +export async function getPageData({ + locale, + slug, + components, + layout: layoutFromProps, + scope, +}: GetPageDataParams): Promise { + const slugArray = slug.split("/") + + // Import and compile markdown + const { markdown, isTranslated } = await importMd(locale, slug) + const { content, frontmatter, tocNodeItems } = await compile({ + markdown, + slugArray, + locale, + components, + scope, + }) + + const layout = layoutFromProps || frontmatter.template || "static" + + // Process TOC items + const tocItems = + tocNodeItems.length === 1 && "items" in tocNodeItems[0] + ? tocNodeItems[0].items + : tocNodeItems + + // Get contributor information + const { contributors, lastUpdatedDate } = await getFileContributorInfo( + slug, + locale, + frontmatter.lang as string, + layout, + commitHistoryCache + ) + + // Format timestamp + const lastEditLocaleTimestamp = getLocaleTimestamp( + locale as Lang, + lastUpdatedDate + ) + + return { + content, + frontmatter, + tocItems: tocItems as ToCItem[], + lastEditLocaleTimestamp, + contributors, + isTranslated, + } +} diff --git a/src/lib/md/import.ts b/src/lib/md/import.ts new file mode 100644 index 00000000000..e545953d4f6 --- /dev/null +++ b/src/lib/md/import.ts @@ -0,0 +1,32 @@ +import { DEFAULT_LOCALE } from "../constants" + +export const importMd = async (locale: string, slug: string) => { + let markdown = "" + + if (locale === DEFAULT_LOCALE) { + markdown = (await import(`../../../public/content/${slug}/index.md`)) + .default + } else { + try { + markdown = ( + await import( + `../../../public/content/translations/${locale}/${slug}/index.md` + ) + ).default + } catch (error) { + const markdown = ( + await import(`../../../public/content/${slug}/index.md`) + ).default + + return { + markdown, + isTranslated: false, + } + } + } + + return { + markdown, + isTranslated: true, + } +} diff --git a/src/lib/md/metadata.ts b/src/lib/md/metadata.ts new file mode 100644 index 00000000000..130a444dea2 --- /dev/null +++ b/src/lib/md/metadata.ts @@ -0,0 +1,36 @@ +import { getMetadata } from "../utils/metadata" + +import { compile } from "./compile" +import { importMd } from "./import" + +export const getMdMetadata = async ({ + locale, + slug: slugArray, +}: { + locale: string + slug: string[] +}) => { + const slug = slugArray.join("/") + + const { markdown } = await importMd(locale, slug) + const { frontmatter } = await compile({ + markdown, + slugArray: slug.split("/"), + locale, + components: {}, + }) + + const title = frontmatter.metaTitle ?? frontmatter.title + const description = frontmatter.description + const image = frontmatter.image + const author = frontmatter.author + + return await getMetadata({ + locale, + slug: slugArray, + title, + description, + image, + author, + }) +} diff --git a/src/lib/rehype/rehypeImg.ts b/src/lib/md/rehypeImg.ts similarity index 97% rename from src/lib/rehype/rehypeImg.ts rename to src/lib/md/rehypeImg.ts index 7b83c3a7e9a..0362373281f 100644 --- a/src/lib/rehype/rehypeImg.ts +++ b/src/lib/md/rehypeImg.ts @@ -1,10 +1,8 @@ import fs from "fs" import path from "path" -import type { Root } from "hast" import sizeOf from "image-size" import { getPlaiceholder } from "plaiceholder" -import type { Plugin } from "unified" import { visit } from "unist-util-visit" import { getHashFromBuffer } from "@/lib/utils/crypto" @@ -152,7 +150,7 @@ const setImagePlaceholders = async ( * @param options.srcDir Directory where the image src attr is going to point */ -const setImageSize: Plugin<[Options], Root> = (options) => { +const rehypeImg = (options: Options) => { const opts = options || {} const dir = opts.dir const srcPath = opts.srcPath @@ -195,4 +193,4 @@ const setImageSize: Plugin<[Options], Root> = (options) => { } } -export default setImageSize +export default rehypeImg diff --git a/src/lib/rehype/remarkInferToc.ts b/src/lib/md/remarkInferToc.ts similarity index 94% rename from src/lib/rehype/remarkInferToc.ts rename to src/lib/md/remarkInferToc.ts index 71bffd880bd..01ccc05e06c 100644 --- a/src/lib/rehype/remarkInferToc.ts +++ b/src/lib/md/remarkInferToc.ts @@ -1,12 +1,11 @@ import type { BlockContent, DefinitionContent, ListItem } from "mdast" import { toc } from "mdast-util-toc" import type { List, Nodes } from "mdast-util-toc/lib" -import type { Plugin } from "unified" import { visit } from "unist-util-visit" import type { IRemarkTocOptions, ToCNodeEntry, TocNodeType } from "@/lib/types" -const remarkInferToc: Plugin<[IRemarkTocOptions]> = (options) => { +const remarkInferToc = (options: IRemarkTocOptions) => { const { callback, maxDepth }: IRemarkTocOptions = { maxDepth: 6, ...options, diff --git a/src/lib/md/remarkPreserveJsx.ts b/src/lib/md/remarkPreserveJsx.ts new file mode 100644 index 00000000000..e1b97d58043 --- /dev/null +++ b/src/lib/md/remarkPreserveJsx.ts @@ -0,0 +1,20 @@ +import { visit } from "unist-util-visit" + +// TODO: migrate all md files to use v2 or v3 mdx syntax + +// this is a temporary solution to preserve JSX nodes in v1 mdx syntax +// ref. https://mdxjs.com/migrating/v2/#jsx +export function remarkPreserveJsx() { + return (tree) => { + visit(tree, "mdxJsxFlowElement", (node) => { + // Remove paragraph wrapper from JSX nodes + if ( + node.children && + node.children.length === 1 && + node.children[0].type === "paragraph" + ) { + Object.assign(node.children, node.children[0].children) + } + }) + } +} diff --git a/src/lib/rehype/rehypeHeadingIds.ts b/src/lib/rehype/rehypeHeadingIds.ts deleted file mode 100644 index cde0473eb41..00000000000 --- a/src/lib/rehype/rehypeHeadingIds.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { ElementContent, Root } from "hast" -import type { Plugin } from "unified" -import { visit } from "unist-util-visit" - -import { parseHeadingId, trimmedTitle } from "@/lib/utils/toc" - -/** - * Parses DOM elements to find all headings, setting an `id` attribute on each one. - * The `parseHeadingId` Table of Contents utility functions is used to generate the `id` - * for each, allowing ToC links to match. - * The `trimmedTitle` function is used to remove any trailing `{#id}` from the heading - * @returns Plugin<[{}], Root>, a rehype plugin that can be used in [...dynamic-md-pages].tsx - */ -const setMarkdownHeadingIds: Plugin<[Record], Root> = - () => (tree) => { - visit(tree, "element", (node) => { - // Ignore non-heading elements - const headingElements = ["h1", "h2", "h3", "h4", "h5", "h6"] - if (!headingElements.includes(node.tagName as string)) return - const concatenated: string = node.children.reduce( - (acc: string, child: ElementContent) => - ("value" in child ? acc + child.value : acc) as string, - "" - ) - node.properties.id = parseHeadingId(concatenated) - const lastIndex = node.children.length - 1 - const lastChild = node.children[lastIndex] as ElementContent - if ("value" in lastChild) { - const lastChildValue: string = lastChild.value as string - node.children[lastIndex] = { - type: "text", - value: trimmedTitle(lastChildValue), - } - } - }) - } - -export default setMarkdownHeadingIds diff --git a/src/lib/types.ts b/src/lib/types.ts index 0ddcade77bc..37191cf8a48 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -27,7 +27,7 @@ import allQuestionData from "@/data/quizzes/questionBank" import { screens } from "./utils/screen" import { WALLETS_FILTERS_DEFAULT } from "./constants" -import { layoutMapping } from "@/pages/[locale]/[...slug]" +import { layoutMapping } from "@/layouts" // Credit: https://stackoverflow.com/a/52331580 export type Unpacked = T extends (infer U)[] ? U : T @@ -49,15 +49,10 @@ export type AppPropsWithLayout = AppProps & { export type Root = { children: ReactNode - contentIsOutdated: boolean - contentNotTranslated: boolean lastDeployLocaleTimestamp: string } -export type BasePageProps = Pick< - Root, - "contentNotTranslated" | "lastDeployLocaleTimestamp" -> +export type BasePageProps = Pick export type Params = { locale: string @@ -72,7 +67,7 @@ export type Frontmatter = RoadmapFrontmatter & TutorialFrontmatter export type LayoutMappingType = typeof layoutMapping -export type Layout = keyof LayoutMappingType +export type Layout = keyof LayoutMappingType | "docs" | "tutorial" export type Lang = | "en" diff --git a/src/lib/utils/contributors.ts b/src/lib/utils/contributors.ts index c3055d5f53b..bb1ad128d6c 100644 --- a/src/lib/utils/contributors.ts +++ b/src/lib/utils/contributors.ts @@ -2,7 +2,7 @@ import { join } from "path" import type { CommitHistory, FileContributor, Lang, Layout } from "@/lib/types" -import { DEFAULT_LOCALE } from "@/lib/constants" +import { CONTENT_DIR, CONTENT_PATH, DEFAULT_LOCALE } from "@/lib/constants" import { convertToFileContributorFromCrowdin, @@ -13,14 +13,15 @@ import { getLastModifiedDate } from "./gh" import { fetchAndCacheGitContributors } from "@/lib/api/fetchGitHistory" export const getFileContributorInfo = async ( - mdDir: string, - mdPath: string, slug: string, locale: string, fileLang: string, layout: Layout, cache: CommitHistory ) => { + const mdPath = join(CONTENT_PATH, slug) + const mdDir = join(CONTENT_DIR, slug) + const gitContributors = await fetchAndCacheGitContributors( join("/", mdDir, "index.md"), cache diff --git a/src/lib/utils/data/dataLoader.ts b/src/lib/utils/data/dataLoader.ts index 4a0a882e2a3..10101394a58 100644 --- a/src/lib/utils/data/dataLoader.ts +++ b/src/lib/utils/data/dataLoader.ts @@ -2,6 +2,7 @@ import { cacheAsyncFn } from "./cacheAsyncFn" import { loadMockData } from "./loadMockData" const USE_MOCK_DATA = process.env.USE_MOCK_DATA === "true" +if (USE_MOCK_DATA) console.warn("Using mock data") type DataLoaderFunction = () => Promise @@ -28,7 +29,6 @@ export function dataLoader( }, cacheTimeout?: number ): () => Promise { - if (USE_MOCK_DATA) console.warn("Using mock data") const cachedLoaders = loaders.map(([key, loader]) => { const cachedLoader = cacheAsyncFn(key, loader, { cacheTimeout, diff --git a/src/lib/utils/i18n.ts b/src/lib/utils/i18n.ts index ff645f556f0..0d39297510b 100644 --- a/src/lib/utils/i18n.ts +++ b/src/lib/utils/i18n.ts @@ -1,23 +1,7 @@ import { existsSync } from "fs" import { join } from "path" -import { DEFAULT_LOCALE, TRANSLATED_IMAGES_DIR } from "../constants" - -// If content is not translated, read it from english path as fallback -export const getFallbackEnglishPath = (path: string) => { - const splittedPath = path.split("translations/") - - return join(splittedPath[0], ...splittedPath[1].split("/").slice(1)) -} - -// If content is in english, remove en/ prefix so filepath can be read correctly -export const removeEnglishPrefix = (slug: string) => { - const contentIsInEnglish = slug.split("/").includes(DEFAULT_LOCALE) - - return contentIsInEnglish - ? join(slug.split("en/")[1], "index.md") - : join(slug, "index.md") -} +import { TRANSLATED_IMAGES_DIR } from "../constants" export const getTranslatedImgPath = (originalPath: string, locale: string) => join( diff --git a/src/lib/utils/md.ts b/src/lib/utils/md.ts index 08dd074f9f8..0847cf2f00b 100644 --- a/src/lib/utils/md.ts +++ b/src/lib/utils/md.ts @@ -1,18 +1,17 @@ import fs from "fs" +import fsp from "fs/promises" import { extname, join } from "path" import matter from "gray-matter" import readingTime from "reading-time" import type { Frontmatter } from "@/lib/types" -import type { MdPageContent } from "@/lib/interfaces" import { Skill } from "@/components/TutorialMetadata" import { dateToString } from "@/lib/utils/date" -import { getFallbackEnglishPath, removeEnglishPrefix } from "@/lib/utils/i18n" -import { CONTENT_DIR, DEFAULT_LOCALE, LOCALES_CODES } from "@/lib/constants" +import { CONTENT_DIR } from "@/lib/constants" import { toPosixPath } from "./relativePath" @@ -22,30 +21,35 @@ function getContentRoot() { return join(process.cwd(), CONTENT_DIR) } -const getPostSlugs = (dir: string, files: string[] = []) => { +export const getPostSlugs = async (dir: string, filterRegex?: RegExp) => { const contentRoot = getContentRoot() const _dir = join(contentRoot, dir) // Get an array of all files and directories in the passed directory using `fs.readdirSync` - const dirContents = fs.readdirSync(_dir) + const dirContents = await fsp.readdir(_dir) + + const files: string[] = [] // Create the full path of the file/directory by concatenating the passed directory and file/directory name for (const fileOrDir of dirContents) { // file = "about", "bridges".... "translations" (<-- skip that one)... const path = join(_dir, fileOrDir) - // Check if the current file/directory is a directory using fs.statSync - if (fs.statSync(path).isDirectory()) { + const stats = await fsp.stat(path) + if (stats.isDirectory()) { // Skip nested translations directory if (fileOrDir === "translations") continue // If it is a directory, recursively call the `getPostSlugs` function with the // directory path and the files array const nestedDir = join(dir, fileOrDir) - getPostSlugs(nestedDir, files) + const nestedFiles = await getPostSlugs(nestedDir, filterRegex) + files.push(...nestedFiles) continue } + if (filterRegex?.test(path)) continue + // If the current file is not a markdown file, skip it if (extname(path) !== ".md") continue @@ -59,53 +63,6 @@ const getPostSlugs = (dir: string, files: string[] = []) => { return files } -export const getContentBySlug = (slug: string) => { - // If content is in english, remove en/ prefix so filepath can be read correctly - let realSlug = removeEnglishPrefix(slug) - - for (const code of LOCALES_CODES) { - // Adds `translations/` prefix for translated content so file path can be read correctly - if (code !== DEFAULT_LOCALE && slug.split("/").includes(code)) { - realSlug = join("translations", slug, "index.md") - } - } - - const contentRoot = getContentRoot() - let fullPath = toPosixPath(join(contentRoot, realSlug)) - let contentNotTranslated = false - - // If content is not translated, use english content fallback - if (!fs.existsSync(fullPath)) { - fullPath = getFallbackEnglishPath(fullPath) - contentNotTranslated = true - } - - const fileContents = fs.readFileSync(fullPath, "utf8") - const { data, content } = matter(fileContents) - const frontmatter = data as Frontmatter - const items: Omit< - MdPageContent, - | "tocItems" - | "contributors" - | "lastEditLocaleTimestamp" - | "lastDeployLocaleTimestamp" - > = { - slug, - content, - frontmatter, - contentNotTranslated, - } - - return items -} - -export const getContent = (dir: string) => { - const slugs = getPostSlugs(dir) - const content = slugs.map(getContentBySlug) - - return content -} - export const getTutorialsData = (locale: string): ITutorial[] => { const contentRoot = getContentRoot() const fullPath = join( diff --git a/src/lib/utils/metadata.ts b/src/lib/utils/metadata.ts index b6b4423953d..23920c65f2b 100644 --- a/src/lib/utils/metadata.ts +++ b/src/lib/utils/metadata.ts @@ -1,5 +1,11 @@ +import type { Metadata } from "next" +import { getTranslations } from "next-intl/server" + import { DEFAULT_OG_IMAGE } from "@/lib/constants" +import { getFullUrl } from "./url" + +import { routing } from "@/i18n/routing" /** * List of default og images for different sections */ @@ -25,3 +31,80 @@ export const getOgImage = (slug: string[]): string => { } return result } + +export const getMetadata = async ({ + locale, + slug, + title, + description: descriptionProp, + image, + author, +}: { + locale: string + slug: string[] + title: string + description?: string + image?: string + author?: string +}): Promise => { + const slugString = slug.join("/") + const t = await getTranslations({ locale, namespace: "common" }) + + const description = descriptionProp || t("site-description") + const siteTitle = t("site-title") + + // Set canonical URL w/ language path to avoid duplicate content + const url = getFullUrl(locale, slugString) + + // Set x-default URL for hreflang + const xDefault = getFullUrl(routing.defaultLocale, slugString) + + /* Set fallback ogImage based on path */ + const ogImage = image || getOgImage(slug) + + return { + title, + description, + metadataBase: new URL(url), + alternates: { + canonical: url, + languages: { + "x-default": xDefault, + ...Object.fromEntries( + routing.locales.map((locale) => [ + locale, + getFullUrl(locale, slugString), + ]) + ), + }, + }, + openGraph: { + title, + description, + locale, + type: "website", + url, + siteName: siteTitle, + images: [ + { + url: ogImage, + }, + ], + }, + twitter: { + title, + description, + card: "summary_large_image", + creator: author || siteTitle, + site: author || siteTitle, + images: [ + { + url: ogImage, + }, + ], + }, + other: { + "docsearch:description": description, + }, + } +} diff --git a/src/lib/utils/toc.ts b/src/lib/utils/toc.ts index 41484a0000e..46b75d42102 100644 --- a/src/lib/utils/toc.ts +++ b/src/lib/utils/toc.ts @@ -1,9 +1,6 @@ -import type { ToCItem, TocNodeType } from "@/lib/types" - // RegEx patterns const customIdRegEx = /^.+(\s*\{#([^}]+?)\}\s*)$/ const emojiRegEx = //g -const h1RegEx = /mdx\("h1"/g /** * Creates a slug from a string (Hello world => hello-world) @@ -37,46 +34,3 @@ export const trimmedTitle = (title: string): string => { const emojiMatch = emojiRegEx.exec(trimmedTitle) return emojiMatch ? trimmedTitle.replaceAll(emojiRegEx, "") : trimmedTitle } - -/** - * Recursive function to sanitize original `title` property, and extract appropriate heading id - * title comes in form 'A note on names {#a-note-on-names}' - * url is in form '#a-note-on-names'... if no {#name} exists, call slugify(title) for url - * @param item: Of ToCItem type, { title: string, url: string, items?: ToCItem[] } - * @returns Updated ToCItem with cleaned up title, url, and any subitems - */ -const parseItem = (item: ToCItem): ToCItem => { - const { title, items: subItems } = item - const parsedItem = { - title: trimmedTitle(title), - url: `#${parseHeadingId(title)}`, - } - if (!subItems) return parsedItem - return { - ...parsedItem, - items: subItems.map(parseItem), - } -} - -/** - * Remaps the ToC generated by remarkInferToc plugin (@/lib/rehype/remarkInferToc.ts) - * Note: each file should only have one h1, and it is not included in the ToC - * @param tocNodeItems Array of TocNodeType objects generated by remarkInferToc - * @returns Modified array of ToCItem objects - */ - -export const remapTableOfContents = ( - tocNodeItems: TocNodeType[], - compiledSource: string -): ToCItem[] => { - const h1Count = Array.from(compiledSource.matchAll(h1RegEx)).length - if (h1Count > 1 && "url" in tocNodeItems[0]) { - console.warn("More than one h1 found in file at id:", tocNodeItems[0].url) - } - const items = ( - h1Count > 0 && "items" in tocNodeItems[0] - ? tocNodeItems[0].items - : tocNodeItems - ) as ToCItem[] - return items.map(parseItem) -} diff --git a/src/lib/utils/translations.ts b/src/lib/utils/translations.ts index 14e1542a005..32da511c533 100644 --- a/src/lib/utils/translations.ts +++ b/src/lib/utils/translations.ts @@ -41,6 +41,7 @@ export const getRequiredNamespacesForPage = ( const baseNamespaces = ["common"] const requiredNamespacesForPath = getRequiredNamespacesForPath(path) + // TODO remove layout case since we can't use it anymore const requiredNamespacesForLayout = getRequiredNamespacesForLayout(layout) return [ @@ -97,6 +98,10 @@ const getRequiredNamespacesForPath = (relativePath: string) => { primaryNamespace = "page-history" } + if (path.startsWith("/resources/")) { + primaryNamespace = "page-resources" + } + if (path.startsWith("/stablecoins/")) { primaryNamespace = "page-stablecoins" } @@ -181,6 +186,10 @@ const getRequiredNamespacesForPath = (relativePath: string) => { requiredNamespaces = [...requiredNamespaces, "table"] } + if (path.startsWith("/start/")) { + requiredNamespaces = [...requiredNamespaces] + } + if (path.startsWith("/contributing/translation-program/translatathon/")) { primaryNamespace = "page-translatathon" } diff --git a/src/lib/utils/url.ts b/src/lib/utils/url.ts index 2f332055bb3..8dd41cb9905 100644 --- a/src/lib/utils/url.ts +++ b/src/lib/utils/url.ts @@ -49,3 +49,8 @@ export const addSlashes = (href: string): string => { export const getFullUrl = (locale: string | undefined, path: string) => addSlashes(new URL(join(locale || DEFAULT_LOCALE, path), SITE_URL).href) + +// Remove trailing slash from slug and add leading slash +export const normalizeSlug = (slug: string) => { + return `/${slug.replace(/^\/+|\/+$/g, "")}` +} diff --git a/src/lib/utils/wallets.ts b/src/lib/utils/wallets.ts index 0d63f5b6b43..492b0c1e836 100644 --- a/src/lib/utils/wallets.ts +++ b/src/lib/utils/wallets.ts @@ -3,6 +3,7 @@ import { shuffle, union } from "lodash" import { getLanguageCodeName } from "@/lib/utils/intl" import { capitalize } from "@/lib/utils/string" +import { newToCrypto } from "@/data/wallets/new-to-crypto" import walletsData from "@/data/wallets/wallet-data" import { @@ -28,6 +29,10 @@ export const getNonSupportedLocaleWallets = (locale: string) => ) ) +export const getNewToCryptoWallets = () => { + return walletsData.filter((wallet) => newToCrypto.includes(wallet.name)) +} + // Get a list of a wallet supported Personas (new to crypto, nfts, long term, finance, developer) export const getWalletPersonas = (wallet: WalletData) => { const walletPersonas: string[] = [] diff --git a/src/middleware.ts b/src/middleware.ts index 8437cf57f9c..7d84c15ef43 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -5,6 +5,12 @@ import { routing } from "./i18n/routing" export default createMiddleware(routing) export const config = { - // Skip all paths that should not be internationalized - matcher: ["/((?!api|_next|_vercel|.*\\..*).*)"], + matcher: [ + // Enable a redirect to a matching locale at the root + "/", + + // Enable redirects that add missing locales + // (e.g. `/pathnames` -> `/en/pathnames`) + "/((?!api|_next|_vercel|.*\\..*).*)", + ], } diff --git a/src/pages/[locale]/[...slug].tsx b/src/pages/[locale]/[...slug].tsx deleted file mode 100644 index eba8b57aa2e..00000000000 --- a/src/pages/[locale]/[...slug].tsx +++ /dev/null @@ -1,279 +0,0 @@ -import fs from "fs" -import { join } from "path" -import { ParsedUrlQuery } from "querystring" - -import type { - GetStaticPaths, - GetStaticProps, - InferGetStaticPropsType, -} from "next/types" -import { MDXRemote, type MDXRemoteSerializeResult } from "next-mdx-remote" -import { serialize } from "next-mdx-remote/serialize" -import { getPlaiceholder } from "plaiceholder" -import readingTime from "reading-time" -import remarkGfm from "remark-gfm" - -import type { - CommitHistory, - Lang, - Layout, - LayoutMappingType, - NextPageWithLayout, - TocNodeType, -} from "@/lib/types" - -import mdComponents from "@/components/MdComponents" -import PageMetadata from "@/components/PageMetadata" - -import { getFileContributorInfo } from "@/lib/utils/contributors" -import { dataLoader } from "@/lib/utils/data/dataLoader" -import { dateToString } from "@/lib/utils/date" -import { getLastDeployDate } from "@/lib/utils/getLastDeployDate" -import { getContent, getContentBySlug } from "@/lib/utils/md" -import { getLocaleTimestamp } from "@/lib/utils/time" -import { remapTableOfContents } from "@/lib/utils/toc" -import { getRequiredNamespacesForPage } from "@/lib/utils/translations" - -import { LOCALES_CODES } from "@/lib/constants" - -import loadNamespaces from "@/i18n/loadNamespaces" -import { - docsComponents, - DocsLayout, - roadmapComponents, - RoadmapLayout, - stakingComponents, - StakingLayout, - staticComponents, - StaticLayout, - translatathonComponents, - TranslatathonLayout, - TutorialLayout, - tutorialsComponents, - upgradeComponents, - UpgradeLayout, - useCasesComponents, - UseCasesLayout, -} from "@/layouts" -import { fetchGFIs } from "@/lib/api/fetchGFIs" -import rehypeHeadingIds from "@/lib/rehype/rehypeHeadingIds" -import rehypeImg from "@/lib/rehype/rehypeImg" -import remarkInferToc from "@/lib/rehype/remarkInferToc" - -interface Params extends ParsedUrlQuery { - slug: string[] - locale: string -} - -export const layoutMapping = { - static: StaticLayout, - "use-cases": UseCasesLayout, - staking: StakingLayout, - roadmap: RoadmapLayout, - upgrade: UpgradeLayout, - docs: DocsLayout, - translatathon: TranslatathonLayout, - tutorial: TutorialLayout, -} - -const componentsMapping = { - static: staticComponents, - "use-cases": useCasesComponents, - staking: stakingComponents, - roadmap: roadmapComponents, - upgrade: upgradeComponents, - docs: docsComponents, - translatathon: translatathonComponents, - tutorial: tutorialsComponents, -} as const - -export const getStaticPaths = (() => { - const contentFiles = getContent("/") - - // Generate page paths for each supported locale - const paths = LOCALES_CODES.flatMap((locale) => - contentFiles.map((file) => ({ - params: { - // Splitting nested paths to generate proper slug - slug: file.slug.split("/").slice(1), - locale, - }, - })) - ) - - return { - paths, - fallback: false, - } -}) satisfies GetStaticPaths - -type Props = Omit[0], "children"> & { - mdxSource: MDXRemoteSerializeResult - gfissues: Awaited> -} - -const commitHistoryCache: CommitHistory = {} - -const loadData = dataLoader([["gfissues", fetchGFIs]]) - -export const getStaticProps = (async (context) => { - const params = context.params! - const { locale } = params - - const markdown = getContentBySlug(`${locale}/${params.slug.join("/")}`) - const frontmatter = markdown.frontmatter - const contentNotTranslated = markdown.contentNotTranslated - - const mdPath = join("/content", ...params.slug) - const mdDir = join("public", mdPath) - - let tocNodeItems: TocNodeType[] = [] - const tocCallback = (toc: TocNodeType): void => { - tocNodeItems = "items" in toc ? toc.items : [] - } - const mdxSource = await serialize(markdown.content, { - mdxOptions: { - remarkPlugins: [ - // Required since MDX v2 to compile tables (see https://mdxjs.com/migrating/v2/#gfm) - remarkGfm, - [remarkInferToc, { callback: tocCallback }], - ], - rehypePlugins: [ - [rehypeImg, { dir: mdDir, srcPath: mdPath, locale }], - [rehypeHeadingIds], - ], - }, - }) - - if ("image" in frontmatter) { - const heroImagePath = join(process.cwd(), "public", frontmatter.image) - const imageBuffer = fs.readFileSync(heroImagePath) - const { base64 } = await getPlaiceholder(imageBuffer, { size: 16 }) - frontmatter.blurDataURL = base64 - } - - const timeToRead = readingTime(markdown.content) - const tocItems = remapTableOfContents(tocNodeItems, mdxSource.compiledSource) - const slug = `/${params.slug.join("/")}/` - - // Get corresponding layout - let layout = (frontmatter.template as Layout) ?? "static" - - if (!frontmatter.template) { - if (params.slug.includes("docs")) { - layout = "docs" - } - - if (params.slug.includes("tutorials")) { - layout = "tutorial" - if ("published" in frontmatter) { - frontmatter.published = dateToString(frontmatter.published) - } - } - } - - const requiredNamespaces = getRequiredNamespacesForPage(slug, layout) - - const { contributors, lastUpdatedDate } = await getFileContributorInfo( - mdDir, - mdPath, - slug, - locale!, - frontmatter.lang, - layout, - commitHistoryCache - ) - - const lastDeployDate = getLastDeployDate() - const lastEditLocaleTimestamp = getLocaleTimestamp( - locale as Lang, - lastUpdatedDate - ) - const lastDeployLocaleTimestamp = getLocaleTimestamp( - locale as Lang, - lastDeployDate - ) - - const [gfissues] = await loadData() - - const messages = await loadNamespaces(locale, requiredNamespaces) - - return { - props: { - messages, - mdxSource, - slug, - frontmatter, - lastEditLocaleTimestamp, - lastDeployLocaleTimestamp, - contentNotTranslated, - layout, - timeToRead: Math.round(timeToRead.minutes), - tocItems, - contributors, - gfissues, - }, - } -}) satisfies GetStaticProps - -const ContentPage: NextPageWithLayout< - InferGetStaticPropsType -> = ({ mdxSource, layout, gfissues }) => { - // TODO: Address component typing error here (flip `FC` types to prop object types) - // @ts-expect-error Incompatible component function signatures - const components: Record = { - ...mdComponents, - ...componentsMapping[layout], - } - - // Global scope for MDX components - const scope = { gfissues } - return ( - <> - - - ) -} - -// Per-Page Layouts: https://nextjs.org/docs/pages/building-your-application/routing/pages-and-layouts#with-typescript -ContentPage.getLayout = (page) => { - // values returned by `getStaticProps` method and passed to the page component - const { - slug, - frontmatter, - lastEditLocaleTimestamp, - lastDeployLocaleTimestamp, - layout, - timeToRead, - tocItems, - contributors, - contentNotTranslated, - } = page.props - - const layoutProps = { - slug, - frontmatter, - lastEditLocaleTimestamp, - lastDeployLocaleTimestamp, - timeToRead, - tocItems, - contributors, - contentNotTranslated, - } - const Layout = layoutMapping[layout] - - return ( - - - {page} - - ) -} - -export default ContentPage diff --git a/src/pages/[locale]/index.tsx b/src/pages/[locale]/index.tsx index 0b7b9523b1e..fa7033af847 100644 --- a/src/pages/[locale]/index.tsx +++ b/src/pages/[locale]/index.tsx @@ -218,7 +218,6 @@ const HomePage = ({ const { t, locale, - asPath, dir, isModalOpen, setModalOpen, @@ -241,7 +240,7 @@ const HomePage = ({ title={t("page-index:page-index-meta-title")} description={t("page-index:page-index-meta-description")} /> - +
                                        @@ -364,6 +363,18 @@ const HomePage = ({ }> + {/* className="mt-12 mx-auto" */} + +
                                        + + {t("page-index:page-index-activity-action")} + +
                                        diff --git a/src/pages/[locale]/resources.tsx b/src/pages/[locale]/resources.tsx new file mode 100644 index 00000000000..129e12ae176 --- /dev/null +++ b/src/pages/[locale]/resources.tsx @@ -0,0 +1,227 @@ +import { motion } from "framer-motion" +import { GetStaticProps } from "next" +import { FaGithub } from "react-icons/fa6" + +import type { BasePageProps, Lang, Params } from "@/lib/types" + +import BannerNotification from "@/components/Banners/BannerNotification" +import { HubHero } from "@/components/Hero" +import StackIcon from "@/components/icons/stack.svg" +import MainArticle from "@/components/MainArticle" +import PageMetadata from "@/components/PageMetadata" +import { ResourceItem, ResourcesContainer } from "@/components/Resources" +import { useResources } from "@/components/Resources/useResources" +import Translation from "@/components/Translation" +import { ButtonLink } from "@/components/ui/buttons/Button" +import Link from "@/components/ui/Link" +import { Section } from "@/components/ui/section" + +import { cn } from "@/lib/utils/cn" +import { dataLoader } from "@/lib/utils/data/dataLoader" +import { existsNamespace } from "@/lib/utils/existsNamespace" +import { getLastDeployDate } from "@/lib/utils/getLastDeployDate" +import { getLocaleTimestamp } from "@/lib/utils/time" +import { getRequiredNamespacesForPage } from "@/lib/utils/translations" + +import { + BASE_TIME_UNIT, + DEFAULT_LOCALE, + GITHUB_REPO_URL, + LOCALES_CODES, +} from "@/lib/constants" + +import { useActiveHash } from "@/hooks/useActiveHash" +import { useTranslation } from "@/hooks/useTranslation" +import loadNamespaces from "@/i18n/loadNamespaces" +import { fetchGrowThePie } from "@/lib/api/fetchGrowThePie" +import heroImg from "@/public/images/heroes/guides-hub-hero.jpg" + +// In seconds +const REVALIDATE_TIME = BASE_TIME_UNIT * 1 + +const loadData = dataLoader( + [["growThePieData", fetchGrowThePie]], + REVALIDATE_TIME * 1000 +) + +export async function getStaticPaths() { + return { + paths: LOCALES_CODES.map((locale) => ({ params: { locale } })), + fallback: false, + } +} + +export const getStaticProps = (async ({ params }) => { + const { locale = DEFAULT_LOCALE } = params || ({} as { locale: string }) + + const [growThePieData] = await loadData() + const { txCostsMedianUsd } = growThePieData + + const requiredNamespaces = getRequiredNamespacesForPage("/resources") + + const contentNotTranslated = !existsNamespace(locale!, requiredNamespaces[2]) + + const lastDeployDate = getLastDeployDate() + const lastDeployLocaleTimestamp = getLocaleTimestamp( + locale as Lang, + lastDeployDate + ) + + const messages = await loadNamespaces(locale as string, requiredNamespaces) + + return { + props: { + messages, + contentNotTranslated, + lastDeployLocaleTimestamp, + txCostsMedianUsd, + }, + } +}) satisfies GetStaticProps + +const ResourcesPage = ({ txCostsMedianUsd }) => { + const { t } = useTranslation("page-resources") + const resourceSections = useResources({ txCostsMedianUsd }) + const activeSection = useActiveHash( + resourceSections.map(({ key }) => key), + "0% 0% -70% 0%" + ).replace(/^#/, "") + + return ( + + + + + {t("page-resources-banner-notification-message")}{" "} + + {t("page-resources-share-feedback")} + + + + + +
                                        +
                                        + {t("page-resources-whats-on-this-page")} +
                                        + +
                                        + + {resourceSections.map(({ key, icon, title: sectionTitle, boxes }) => ( +
                                        +
                                        +
                                        + {icon || } +
                                        +

                                        {sectionTitle}

                                        +
                                        +
                                        + {boxes.map(({ title, metric, items, className }) => ( +
                                        +
                                        + {title} +
                                        +
                                        + {metric && metric} + + {items.map((item) => ( + + ))} + +
                                        +
                                        + ))} +
                                        +
                                        + ))} + +
                                        + +
                                        + +
                                        +
                                        +
                                        +

                                        {t("page-resources-contribute-title")}

                                        +

                                        {t("page-resources-contribute-description")}

                                        +
                                        +
                                        + {/* TODO: Add issue template for resource listing and redirect to new template */} + + {t("page-resources-suggest-resource")} + + + {t("page-resources-found-bug")} + +
                                        +
                                        +
                                        +
                                        + ) +} + +export default ResourcesPage diff --git a/src/pages/[locale]/stablecoins.tsx b/src/pages/[locale]/stablecoins.tsx index 2becd320063..85eea8329c2 100644 --- a/src/pages/[locale]/stablecoins.tsx +++ b/src/pages/[locale]/stablecoins.tsx @@ -255,7 +255,7 @@ const StablecoinsPage = ({ markets, marketsHasError }) => { ], links: [ { text: "USDC", url: "https://www.coinbase.com/usdc" }, - { text: "TrueUSD", url: "https://www.trusttoken.com/trueusd" }, + { text: "TrueUSD", url: "https://tusd.io/" }, ], }, { diff --git a/src/pages/[locale]/start/index.tsx b/src/pages/[locale]/start/index.tsx new file mode 100644 index 00000000000..3ba5ab90a75 --- /dev/null +++ b/src/pages/[locale]/start/index.tsx @@ -0,0 +1,135 @@ +import { GetStaticProps } from "next" +import dynamic from "next/dynamic" +import { useLocale } from "next-intl" +import { QueryClient, QueryClientProvider } from "@tanstack/react-query" + +import { BasePageProps, Lang, Wallet } from "@/lib/types" + +import { Image } from "@/components/Image" +import MainArticle from "@/components/MainArticle" +import PageMetadata from "@/components/PageMetadata" +import StartWithEthereumFlow from "@/components/StartWithEthereumFlow" +import ShareModal from "@/components/StartWithEthereumFlow/ShareModal" + +import { existsNamespace } from "@/lib/utils/existsNamespace" +import { getLastDeployDate } from "@/lib/utils/getLastDeployDate" +import { getLocaleTimestamp } from "@/lib/utils/time" +import { getRequiredNamespacesForPage } from "@/lib/utils/translations" +import { getNewToCryptoWallets } from "@/lib/utils/wallets" + +import { DEFAULT_LOCALE, LOCALES_CODES } from "@/lib/constants" + +import loadNamespaces from "@/i18n/loadNamespaces" +import HeroImage from "@/public/images/heroes/developers-hub-hero.jpg" +import ManDogeImage from "@/public/images/start-with-ethereum/man-doge-playing.png" + +// Dynamically import Wagmi/RainbowKit components +const WalletProviders = dynamic(() => import("@/components/WalletProviders"), { + ssr: false, +}) + +const queryClient = new QueryClient() + +export async function getStaticPaths() { + return { + paths: LOCALES_CODES.map((locale) => ({ params: { locale } })), + fallback: false, + } +} + +export const getStaticProps = (async ({ params }) => { + const { locale = DEFAULT_LOCALE } = params || {} + + const lastDeployDate = getLastDeployDate() + const lastDeployLocaleTimestamp = getLocaleTimestamp( + locale as Lang, + lastDeployDate + ) + + const requiredNamespaces = getRequiredNamespacesForPage("/start") + + const contentNotTranslated = !existsNamespace( + locale! as string, + requiredNamespaces[2] + ) + + const messages = await loadNamespaces(locale as string, requiredNamespaces) + + const newToCryptoWallets = getNewToCryptoWallets() + + return { + props: { + messages, + contentNotTranslated, + lastDeployLocaleTimestamp, + newToCryptoWallets, + }, + } +}) satisfies GetStaticProps + +const StartWithCryptoPage = ({ + newToCryptoWallets, +}: { + newToCryptoWallets: Wallet[] +}) => { + const locale = useLocale() + + return ( + + + + + +
                                        + {"Start +
                                        + +
                                        +
                                        +

                                        Get started with Ethereum

                                        +

                                        + Ethereum is so much more than just trading tokens on an + exchange. Step into the new world yourself and learn all the + basics in just few steps. +

                                        +
                                        + +
                                        + +
                                        + +
                                        +
                                        +

                                        + Do you know anyone who needs help to onboard? +

                                        +

                                        + Billions can’t open bank accounts or freely use their money. + Ethereum’s financial system is always open and unbiased. +

                                        +
                                        + +
                                        +
                                        +
                                        + Man Doge +
                                        +
                                        +
                                        +
                                        +
                                        +
                                        + ) +} + +export default StartWithCryptoPage diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index d75992747ff..0136454beef 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -48,8 +48,8 @@ const App = ({ Component, pageProps }: AppPropsWithLayout) => { {getLayout()} diff --git a/src/styles/global.css b/src/styles/global.css index 2898047b069..8ddb8b9ebdb 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -7,6 +7,7 @@ @import "@/styles/semantic-tokens.css"; @import "@/styles/fonts.css"; @import "@/styles/docsearch.css"; +@import "@rainbow-me/rainbowkit/styles.css"; @layer base { :root { @@ -81,7 +82,7 @@ @layer base { * { - @apply border-border; + @apply border-border scroll-smooth; } body { diff --git a/src/styles/semantic-tokens.css b/src/styles/semantic-tokens.css index 7e5b99e4b09..8f97e469fa4 100644 --- a/src/styles/semantic-tokens.css +++ b/src/styles/semantic-tokens.css @@ -25,7 +25,7 @@ --border: var(--gray-200); --border-high-contrast: var(--gray-400); - --border-low-contrast: var(--gray-50); + --border-low-contrast: var(--gray-100); --border-hover: var(--gray-300); --primary: var(--purple-600); @@ -152,7 +152,7 @@ --border: var(--gray-600); --border-high-contrast: var(--gray-300); - --border-low-contrast: var(--black); + --border-low-contrast: var(--gray-900); --border-hover: var(--gray-500); --primary: var(--purple-400); diff --git a/tsconfig.json b/tsconfig.json index f7ded6cb397..675d5977e7e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,8 +20,20 @@ "@/public/*": ["./public/*"], "@/storybook-utils": ["./.storybook/utils.ts"], "@/storybook/*": ["./.storybook/*"] - } + }, + "plugins": [ + { + "name": "next" + } + ] }, - "include": ["./src/**/*", "next-env.d.ts", "**/*.ts", "**/*.tsx", ".storybook/**/*"], + "include": [ + "./src/**/*", + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".storybook/**/*", + ".next/types/**/*.ts" + ], "exclude": ["node_modules", "./public", "./src/intl"] } diff --git a/yarn.lock b/yarn.lock index af96bdd2d2e..70b0d9e6372 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,11 @@ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ== +"@adraffy/ens-normalize@^1.10.1": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33" + integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg== + "@algolia/autocomplete-core@1.9.3": version "1.9.3" resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" @@ -189,28 +194,6 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== -"@babel/core@7.12.9": - version "7.12.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" - integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.7" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.9" - "@babel/types" "^7.12.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/core@^7.18.9", "@babel/core@^7.24.4": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" @@ -253,7 +236,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.12.5", "@babel/generator@^7.23.6": +"@babel/generator@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== @@ -466,7 +449,7 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.23.3": +"@babel/helper-module-transforms@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== @@ -502,11 +485,6 @@ dependencies: "@babel/types" "^7.24.7" -"@babel/helper-plugin-utils@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" @@ -646,7 +624,7 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.23.9": +"@babel/helpers@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ== @@ -687,7 +665,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== -"@babel/parser@^7.12.7", "@babel/parser@^7.23.0", "@babel/parser@^7.23.9": +"@babel/parser@^7.23.0", "@babel/parser@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== @@ -748,15 +726,6 @@ "@babel/helper-environment-visitor" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-proposal-object-rest-spread@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" - integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" @@ -853,13 +822,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" - integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" @@ -895,7 +857,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -1507,7 +1469,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.23.3": +"@babel/plugin-transform-parameters@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== @@ -2093,28 +2055,14 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" - integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.24.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" - integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.9.2": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.0.tgz#584c450063ffda59697021430cb47101b085951e" - integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw== +"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.24.4", "@babel/runtime@^7.26.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" + integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.12.7", "@babel/template@^7.22.15", "@babel/template@^7.23.9": +"@babel/template@^7.22.15", "@babel/template@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== @@ -2132,22 +2080,6 @@ "@babel/parser" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/traverse@^7.12.9", "@babel/traverse@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" - integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.23.9" - debug "^4.3.1" - globals "^11.1.0" - "@babel/traverse@^7.18.9", "@babel/traverse@^7.24.1", "@babel/traverse@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" @@ -2164,6 +2096,22 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" + integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.24.0", "@babel/types@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" @@ -2173,7 +2121,7 @@ "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" -"@babel/types@^7.12.7", "@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.4.4": +"@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.4.4": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== @@ -2198,6 +2146,16 @@ react-confetti "^6.1.0" strip-ansi "^7.1.0" +"@coinbase/wallet-sdk@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.3.0.tgz#03b8fce92ac2b3b7cf132f64d6008ac081569b4e" + integrity sha512-T3+SNmiCw4HzDm4we9wCHCxlP0pqCiwKe4sOwPH3YAK2KSKjxPRydKu6UQJrdONFVLG7ujXvbd/6ZqmvJb8rkw== + dependencies: + "@noble/hashes" "^1.4.0" + clsx "^1.2.1" + eventemitter3 "^5.0.1" + preact "^10.24.2" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -2242,6 +2200,11 @@ "@docsearch/css" "3.5.2" algoliasearch "^4.19.1" +"@ecies/ciphers@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@ecies/ciphers/-/ciphers-0.2.2.tgz#82a15b10a6e502b63fb30915d944b2eaf3ff17ff" + integrity sha512-ylfGR7PyTd+Rm2PqQowG08BCKA22QuX8NzrL+LxAAvazN10DMwdJ2fWwAzRj05FI/M8vNFGm3cv9Wq/GFWCBLg== + "@emotion/babel-plugin@^11.11.0": version "11.11.0" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" @@ -2270,6 +2233,11 @@ "@emotion/weak-memoize" "^0.3.1" stylis "4.2.0" +"@emotion/hash@^0.9.0": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b" + integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== + "@emotion/hash@^0.9.1": version "0.9.1" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" @@ -2494,6 +2462,38 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@ethereumjs/common@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-3.2.0.tgz#b71df25845caf5456449163012074a55f048e0a0" + integrity sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA== + dependencies: + "@ethereumjs/util" "^8.1.0" + crc-32 "^1.2.0" + +"@ethereumjs/rlp@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== + +"@ethereumjs/tx@^4.1.2", "@ethereumjs/tx@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-4.2.0.tgz#5988ae15daf5a3b3c815493bc6b495e76009e853" + integrity sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw== + dependencies: + "@ethereumjs/common" "^3.2.0" + "@ethereumjs/rlp" "^4.0.1" + "@ethereumjs/util" "^8.1.0" + ethereum-cryptography "^2.0.0" + +"@ethereumjs/util@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" + "@fal-works/esbuild-plugin-global-externals@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" @@ -2693,35 +2693,47 @@ resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw== -"@mdx-js/mdx@^1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" - integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== - dependencies: - "@babel/core" "7.12.9" - "@babel/plugin-syntax-jsx" "7.12.1" - "@babel/plugin-syntax-object-rest-spread" "7.8.3" - "@mdx-js/util" "1.6.22" - babel-plugin-apply-mdx-type-prop "1.6.22" - babel-plugin-extract-import-names "1.6.22" - camelcase-css "2.0.1" - detab "2.0.4" - hast-util-raw "6.0.1" - lodash.uniq "4.5.0" - mdast-util-to-hast "10.0.1" - remark-footnotes "2.0.0" - remark-mdx "1.6.22" - remark-parse "8.0.3" - remark-squeeze-paragraphs "4.0.0" - style-to-object "0.3.0" - unified "9.2.0" - unist-builder "2.0.3" - unist-util-visit "2.0.3" - -"@mdx-js/react@^1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" - integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz#a28799c463177d1a0b0e5cefdc173da5ac859eb4" + integrity sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ== + +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.3.tgz#25b4eece2592132845d303e091bad9b04cdcfe03" + integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + +"@mdx-js/mdx@^3.0.1": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.1.0.tgz#10235cab8ad7d356c262e8c21c68df5850a97dc3" + integrity sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdx" "^2.0.0" + collapse-white-space "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-util-scope "^1.0.0" + estree-walker "^3.0.0" + hast-util-to-jsx-runtime "^2.0.0" + markdown-extensions "^2.0.0" + recma-build-jsx "^1.0.0" + recma-jsx "^1.0.0" + recma-stringify "^1.0.0" + rehype-recma "^1.0.0" + remark-mdx "^3.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + source-map "^0.7.0" + unified "^11.0.0" + unist-util-position-from-estree "^2.0.0" + unist-util-stringify-position "^4.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" "@mdx-js/react@^3.0.0": version "3.0.1" @@ -2730,10 +2742,258 @@ dependencies: "@types/mdx" "^2.0.0" -"@mdx-js/util@1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" - integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== +"@mdx-js/react@^3.0.1": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.0.tgz#c4522e335b3897b9a845db1dbdd2f966ae8fb0ed" + integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ== + dependencies: + "@types/mdx" "^2.0.0" + +"@metamask/eth-json-rpc-provider@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-1.0.1.tgz#3fd5316c767847f4ca107518b611b15396a5a32c" + integrity sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA== + dependencies: + "@metamask/json-rpc-engine" "^7.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^5.0.1" + +"@metamask/json-rpc-engine@^7.0.0": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz#f2b30a2164558014bfcca45db10f5af291d989af" + integrity sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg== + dependencies: + "@metamask/rpc-errors" "^6.2.1" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^8.3.0" + +"@metamask/json-rpc-engine@^8.0.1", "@metamask/json-rpc-engine@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz#29510a871a8edef892f838ee854db18de0bf0d14" + integrity sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA== + dependencies: + "@metamask/rpc-errors" "^6.2.1" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^8.3.0" + +"@metamask/json-rpc-middleware-stream@^7.0.1": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz#2e8b2cbc38968e3c6239a9144c35bbb08a8fb57d" + integrity sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg== + dependencies: + "@metamask/json-rpc-engine" "^8.0.2" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^8.3.0" + readable-stream "^3.6.2" + +"@metamask/object-multiplex@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz#5e2e908fc46aee581cbba809870eeee0e571cbb6" + integrity sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA== + dependencies: + once "^1.4.0" + readable-stream "^3.6.2" + +"@metamask/onboarding@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@metamask/onboarding/-/onboarding-1.0.1.tgz#14a36e1e175e2f69f09598e2008ab6dc1b3297e6" + integrity sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ== + dependencies: + bowser "^2.9.0" + +"@metamask/providers@16.1.0": + version "16.1.0" + resolved "https://registry.yarnpkg.com/@metamask/providers/-/providers-16.1.0.tgz#7da593d17c541580fa3beab8d9d8a9b9ce19ea07" + integrity sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g== + dependencies: + "@metamask/json-rpc-engine" "^8.0.1" + "@metamask/json-rpc-middleware-stream" "^7.0.1" + "@metamask/object-multiplex" "^2.0.0" + "@metamask/rpc-errors" "^6.2.1" + "@metamask/safe-event-emitter" "^3.1.1" + "@metamask/utils" "^8.3.0" + detect-browser "^5.2.0" + extension-port-stream "^3.0.0" + fast-deep-equal "^3.1.3" + is-stream "^2.0.0" + readable-stream "^3.6.2" + webextension-polyfill "^0.10.0" + +"@metamask/rpc-errors@^6.2.1": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz#a7ce01c06c9a347ab853e55818ac5654a73bd006" + integrity sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg== + dependencies: + "@metamask/utils" "^9.0.0" + fast-safe-stringify "^2.0.6" + +"@metamask/safe-event-emitter@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" + integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== + +"@metamask/safe-event-emitter@^3.0.0", "@metamask/safe-event-emitter@^3.1.1": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz#bfac8c7a1a149b5bbfe98f59fbfea512dfa3bad4" + integrity sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA== + +"@metamask/sdk-communication-layer@0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.32.0.tgz#89710e807806836138ea5018b087731d6acab627" + integrity sha512-dmj/KFjMi1fsdZGIOtbhxdg3amxhKL/A5BqSU4uh/SyDKPub/OT+x5pX8bGjpTL1WPWY/Q0OIlvFyX3VWnT06Q== + dependencies: + bufferutil "^4.0.8" + date-fns "^2.29.3" + debug "^4.3.4" + utf-8-validate "^5.0.2" + uuid "^8.3.2" + +"@metamask/sdk-install-modal-web@0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.0.tgz#86f80420ca364fa0d7710016fa5c81f95537ab23" + integrity sha512-TFoktj0JgfWnQaL3yFkApqNwcaqJ+dw4xcnrJueMP3aXkSNev2Ido+WVNOg4IIMxnmOrfAC9t0UJ0u/dC9MjOQ== + dependencies: + "@paulmillr/qr" "^0.2.1" + +"@metamask/sdk@0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.32.0.tgz#f0e179746fe69dccd032a9026884b45b519c1975" + integrity sha512-WmGAlP1oBuD9hk4CsdlG1WJFuPtYJY+dnTHJMeCyohTWD2GgkcLMUUuvu9lO1/NVzuOoSi1OrnjbuY1O/1NZ1g== + dependencies: + "@babel/runtime" "^7.26.0" + "@metamask/onboarding" "^1.0.1" + "@metamask/providers" "16.1.0" + "@metamask/sdk-communication-layer" "0.32.0" + "@metamask/sdk-install-modal-web" "0.32.0" + "@paulmillr/qr" "^0.2.1" + bowser "^2.9.0" + cross-fetch "^4.0.0" + debug "^4.3.4" + eciesjs "^0.4.11" + eth-rpc-errors "^4.0.3" + eventemitter2 "^6.4.9" + obj-multiplex "^1.0.0" + pump "^3.0.0" + readable-stream "^3.6.2" + socket.io-client "^4.5.1" + tslib "^2.6.0" + util "^0.12.4" + uuid "^8.3.2" + +"@metamask/superstruct@^3.0.0", "@metamask/superstruct@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@metamask/superstruct/-/superstruct-3.1.0.tgz#148f786a674fba3ac885c1093ab718515bf7f648" + integrity sha512-N08M56HdOgBfRKkrgCMZvQppkZGcArEop3kixNEtVbJKm6P9Cfg0YkI6X0s1g78sNrj2fWUwvJADdZuzJgFttA== + +"@metamask/utils@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-5.0.2.tgz#140ba5061d90d9dac0280c19cab101bc18c8857c" + integrity sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g== + dependencies: + "@ethereumjs/tx" "^4.1.2" + "@types/debug" "^4.1.7" + debug "^4.3.4" + semver "^7.3.8" + superstruct "^1.0.3" + +"@metamask/utils@^8.3.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-8.5.0.tgz#ddd0d4012d5191809404c97648a837ea9962cceb" + integrity sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ== + dependencies: + "@ethereumjs/tx" "^4.2.0" + "@metamask/superstruct" "^3.0.0" + "@noble/hashes" "^1.3.1" + "@scure/base" "^1.1.3" + "@types/debug" "^4.1.7" + debug "^4.3.4" + pony-cause "^2.1.10" + semver "^7.5.4" + uuid "^9.0.1" + +"@metamask/utils@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-9.3.0.tgz#4726bd7f5d6a43ea8425b6d663ab9207f617c2d1" + integrity sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g== + dependencies: + "@ethereumjs/tx" "^4.2.0" + "@metamask/superstruct" "^3.1.0" + "@noble/hashes" "^1.3.1" + "@scure/base" "^1.1.3" + "@types/debug" "^4.1.7" + debug "^4.3.4" + pony-cause "^2.1.10" + semver "^7.5.4" + uuid "^9.0.1" + +"@motionone/animation@^10.15.1", "@motionone/animation@^10.18.0": + version "10.18.0" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.18.0.tgz#868d00b447191816d5d5cf24b1cafa144017922b" + integrity sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw== + dependencies: + "@motionone/easing" "^10.18.0" + "@motionone/types" "^10.17.1" + "@motionone/utils" "^10.18.0" + tslib "^2.3.1" + +"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": + version "10.18.0" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.18.0.tgz#7fd25dac04cab72def6d2b92b8e0cdc091576527" + integrity sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A== + dependencies: + "@motionone/animation" "^10.18.0" + "@motionone/generators" "^10.18.0" + "@motionone/types" "^10.17.1" + "@motionone/utils" "^10.18.0" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/easing@^10.18.0": + version "10.18.0" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.18.0.tgz#7b82f6010dfee3a1bb0ee83abfbaff6edae0c708" + integrity sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg== + dependencies: + "@motionone/utils" "^10.18.0" + tslib "^2.3.1" + +"@motionone/generators@^10.18.0": + version "10.18.0" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.18.0.tgz#fe09ab5cfa0fb9a8884097feb7eb60abeb600762" + integrity sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg== + dependencies: + "@motionone/types" "^10.17.1" + "@motionone/utils" "^10.18.0" + tslib "^2.3.1" + +"@motionone/svelte@^10.16.2": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" + integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" + +"@motionone/types@^10.15.1", "@motionone/types@^10.17.1": + version "10.17.1" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.17.1.tgz#cf487badbbdc9da0c2cb86ffc1e5d11147c6e6fb" + integrity sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A== + +"@motionone/utils@^10.15.1", "@motionone/utils@^10.18.0": + version "10.18.0" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.18.0.tgz#a59ff8932ed9009624bca07c56b28ef2bb2f885e" + integrity sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw== + dependencies: + "@motionone/types" "^10.17.1" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/vue@^10.16.2": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" + integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" "@ndelangen/get-tarball@^3.0.7": version "3.0.9" @@ -2744,10 +3004,10 @@ pump "^3.0.0" tar-fs "^2.1.1" -"@netlify/plugin-nextjs@^5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-5.8.0.tgz#4b8e630d43868cd0cb8cdb8f1f6de2ea60b36df4" - integrity sha512-1hduTMFYkZRSqRAPK1+5A6T/uc543PfxX0erzJEVWb9fKgPlY24ZQMi2nXBwlQ6JlBYjZJcMEtN2vhhNqyjgXA== +"@netlify/plugin-nextjs@^5.10.0": + version "5.10.0" + resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-5.10.0.tgz#5c8ff56732213edba6f52c99e98ad768bed4c195" + integrity sha512-h2ugfCAQRhp6NIYABW+20AvVkrM/ReuELBfgkH+5DALfrKrsQXYeS1YPZi9y4bCfNFj8Zxdhu4DtuVFDiUONiA== "@next/bundle-analyzer@^14.2.5": version "14.2.5" @@ -2756,10 +3016,10 @@ dependencies: webpack-bundle-analyzer "4.10.1" -"@next/env@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.21.tgz#09ff0813d29c596397e141205d4f5fd5c236bdd0" - integrity sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A== +"@next/env@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.25.tgz#936d10b967e103e49a4bcea1e97292d5605278dd" + integrity sha512-JnzQ2cExDeG7FxJwqAksZ3aqVJrHjFwZQAEJ9gQZSoEhIow7SNoKZzju/AwQ+PLIR4NY8V0rhcVozx/2izDO0w== "@next/env@^13.4.3": version "13.5.6" @@ -2773,50 +3033,79 @@ dependencies: glob "10.3.10" -"@next/swc-darwin-arm64@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.21.tgz#32a31992aace1440981df9cf7cb3af7845d94fec" - integrity sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g== - -"@next/swc-darwin-x64@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.21.tgz#5ab4b3f6685b6b52f810d0f5cf6e471480ddffdb" - integrity sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA== - -"@next/swc-linux-arm64-gnu@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.21.tgz#8a0e1fa887aef19ca218af2af515d0a5ee67ba3f" - integrity sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA== - -"@next/swc-linux-arm64-musl@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.21.tgz#ddad844406b42fa8965fe11250abc85c1fe0fd05" - integrity sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw== - -"@next/swc-linux-x64-gnu@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.21.tgz#db55fd666f9ba27718f65caa54b622a912cdd16b" - integrity sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg== - -"@next/swc-linux-x64-musl@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.21.tgz#dddb850353624efcd58c4c4e30ad8a1aab379642" - integrity sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg== - -"@next/swc-win32-arm64-msvc@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.21.tgz#290012ee57b196d3d2d04853e6bf0179cae9fbaf" - integrity sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ== - -"@next/swc-win32-ia32-msvc@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.21.tgz#c959135a78cab18cca588d11d1e33bcf199590d4" - integrity sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA== - -"@next/swc-win32-x64-msvc@14.2.21": - version "14.2.21" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.21.tgz#21ff892286555b90538a7d1b505ea21a005d6ead" - integrity sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA== +"@next/swc-darwin-arm64@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.25.tgz#7bcccfda0c0ff045c45fbe34c491b7368e373e3d" + integrity sha512-09clWInF1YRd6le00vt750s3m7SEYNehz9C4PUcSu3bAdCTpjIV4aTYQZ25Ehrr83VR1rZeqtKUPWSI7GfuKZQ== + +"@next/swc-darwin-x64@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.25.tgz#b489e209d7b405260b73f69a38186ed150fb7a08" + integrity sha512-V+iYM/QR+aYeJl3/FWWU/7Ix4b07ovsQ5IbkwgUK29pTHmq+5UxeDr7/dphvtXEq5pLB/PucfcBNh9KZ8vWbug== + +"@next/swc-linux-arm64-gnu@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.25.tgz#ba064fabfdce0190d9859493d8232fffa84ef2e2" + integrity sha512-LFnV2899PJZAIEHQ4IMmZIgL0FBieh5keMnriMY1cK7ompR+JUd24xeTtKkcaw8QmxmEdhoE5Mu9dPSuDBgtTg== + +"@next/swc-linux-arm64-musl@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.25.tgz#bf0018267e4e0fbfa1524750321f8cae855144a3" + integrity sha512-QC5y5PPTmtqFExcKWKYgUNkHeHE/z3lUsu83di488nyP0ZzQ3Yse2G6TCxz6nNsQwgAx1BehAJTZez+UQxzLfw== + +"@next/swc-linux-x64-gnu@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.25.tgz#64f5a6016a7148297ee80542e0fd788418a32472" + integrity sha512-y6/ML4b9eQ2D/56wqatTJN5/JR8/xdObU2Fb1RBidnrr450HLCKr6IJZbPqbv7NXmje61UyxjF5kvSajvjye5w== + +"@next/swc-linux-x64-musl@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.25.tgz#58dc636d7c55828478159546f7b95ab1e902301c" + integrity sha512-sPX0TSXHGUOZFvv96GoBXpB3w4emMqKeMgemrSxI7A6l55VBJp/RKYLwZIB9JxSqYPApqiREaIIap+wWq0RU8w== + +"@next/swc-win32-arm64-msvc@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.25.tgz#93562d447c799bded1e89c1a62d5195a2a8c6c0d" + integrity sha512-ReO9S5hkA1DU2cFCsGoOEp7WJkhFzNbU/3VUF6XxNGUCQChyug6hZdYL/istQgfT/GWE6PNIg9cm784OI4ddxQ== + +"@next/swc-win32-ia32-msvc@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.25.tgz#ad85a33466be1f41d083211ea21adc0d2c6e6554" + integrity sha512-DZ/gc0o9neuCDyD5IumyTGHVun2dCox5TfPQI/BJTYwpSNYM3CZDI4i6TOdjeq1JMo+Ug4kPSMuZdwsycwFbAw== + +"@next/swc-win32-x64-msvc@14.2.25": + version "14.2.25" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.25.tgz#3969c66609e683ec63a6a9f320a855f7be686a08" + integrity sha512-KSznmS6eFjQ9RJ1nEc66kJvtGIL1iZMYmGEXsZPh2YtnLtqrgdVvKXJY2ScjjoFnG6nGLyPFR0UiEvDwVah4Tw== + +"@noble/ciphers@^1.0.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.2.1.tgz#3812b72c057a28b44ff0ad4aff5ca846e5b9cdc9" + integrity sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA== + +"@noble/curves@1.4.2", "@noble/curves@~1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.2.tgz#40309198c76ed71bc6dbf7ba24e81ceb4d0d1fe9" + integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/curves@1.8.1", "@noble/curves@^1.6.0", "@noble/curves@~1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.8.1.tgz#19bc3970e205c99e4bdb1c64a4785706bce497ff" + integrity sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ== + dependencies: + "@noble/hashes" "1.7.1" + +"@noble/hashes@1.4.0", "@noble/hashes@~1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@noble/hashes@1.7.1", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.1.tgz#5738f6d765710921e7a751e00c20ae091ed8db0f" + integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2839,6 +3128,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@paulmillr/qr@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@paulmillr/qr/-/qr-0.2.1.tgz#76ade7080be4ac4824f638146fd8b6db1805eeca" + integrity sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ== + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -3493,11 +3787,89 @@ resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438" integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg== +"@rainbow-me/rainbowkit@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@rainbow-me/rainbowkit/-/rainbowkit-2.2.3.tgz#f1b5c146e6a4f30f1d0792eb3c755b167be1bfda" + integrity sha512-kXZ+zmKSPZhZdNHey+4TwOIW4p2vIRv5B9+5FoTJv1xktru1RykfAAQY5z+nLUdvc0l6M5hiYH4X88Jl1foXGQ== + dependencies: + "@vanilla-extract/css" "1.15.5" + "@vanilla-extract/dynamic" "2.1.2" + "@vanilla-extract/sprinkles" "1.6.3" + clsx "2.1.1" + qrcode "1.5.4" + react-remove-scroll "2.6.2" + ua-parser-js "^1.0.37" + "@rushstack/eslint-patch@^1.3.3": version "1.7.2" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz#2d4260033e199b3032a08b41348ac10de21c47e9" integrity sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA== +"@safe-global/safe-apps-provider@0.18.5": + version "0.18.5" + resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.5.tgz#745a932bda3739a8a298ae44ec6c465f6c4773b7" + integrity sha512-9v9wjBi3TwLsEJ3C2ujYoexp3pFJ0omDLH/GX91e2QB+uwCKTBYyhxFSrTQ9qzoyQd+bfsk4gjOGW87QcJhf7g== + dependencies: + "@safe-global/safe-apps-sdk" "^9.1.0" + events "^3.3.0" + +"@safe-global/safe-apps-sdk@9.1.0", "@safe-global/safe-apps-sdk@^9.1.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz#0e65913e0f202e529ed3c846e0f5a98c2d35aa98" + integrity sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q== + dependencies: + "@safe-global/safe-gateway-typescript-sdk" "^3.5.3" + viem "^2.1.1" + +"@safe-global/safe-gateway-typescript-sdk@^3.5.3": + version "3.22.9" + resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.22.9.tgz#7f6571aaf1aecbe1217f6dd294ad2f3d90c2c8c2" + integrity sha512-7ojVK/crhOaGowEO8uYWaopZzcr5rR76emgllGIfjCLR70aY4PbASpi9Pbs+7jIRzPDBBkM0RBo+zYx5UduX8Q== + +"@scure/base@^1.1.3", "@scure/base@~1.2.2", "@scure/base@~1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.4.tgz#002eb571a35d69bdb4c214d0995dff76a8dcd2a9" + integrity sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ== + +"@scure/base@~1.1.6": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1" + integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg== + +"@scure/bip32@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67" + integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== + dependencies: + "@noble/curves" "~1.4.0" + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@scure/bip32@1.6.2", "@scure/bip32@^1.5.0": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.6.2.tgz#093caa94961619927659ed0e711a6e4bf35bffd0" + integrity sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw== + dependencies: + "@noble/curves" "~1.8.1" + "@noble/hashes" "~1.7.1" + "@scure/base" "~1.2.2" + +"@scure/bip39@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" + integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== + dependencies: + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@scure/bip39@1.5.4", "@scure/bip39@^1.4.0": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.5.4.tgz#07fd920423aa671be4540d59bdd344cc1461db51" + integrity sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA== + dependencies: + "@noble/hashes" "~1.7.1" + "@scure/base" "~1.2.4" + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -3513,6 +3885,145 @@ resolved "https://registry.yarnpkg.com/@socialgouv/matomo-next/-/matomo-next-1.8.0.tgz#1dee455a440b84bc135381a85fef33d000698222" integrity sha512-00EdsbW0u/VrKFa7DfVjnXV4oXA6Ag3kkCisSL2nFseRQhEsds5T8xsAgvNQAtiMW9AR6Mz3TNZt7A2/mIb9kA== +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== + +"@stablelib/aead@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/chacha20poly1305@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== + dependencies: + "@stablelib/aead" "^1.0.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/chacha" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/poly1305" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/chacha@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + +"@stablelib/ed25519@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" + integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== + dependencies: + "@stablelib/random" "^1.0.2" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/hkdf@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" + integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== + dependencies: + "@stablelib/hash" "^1.0.1" + "@stablelib/hmac" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hmac@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" + integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/random@1.0.2", "@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha256@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" + integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@stablelib/x25519@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" + integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + "@storybook/addon-actions@8.1.10": version "8.1.10" resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-8.1.10.tgz#4bf4b0a2918ffd3be52a2f1d27cd68fbbf64e799" @@ -4375,6 +4886,18 @@ "@swc/counter" "^0.1.3" tslib "^2.4.0" +"@tanstack/query-core@5.66.4": + version "5.66.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.66.4.tgz#44b87bff289466adbfa0de8daa5756cbd2d61c61" + integrity sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA== + +"@tanstack/react-query@^5.66.7": + version "5.66.7" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.66.7.tgz#ee96c42cc5b4a4447b602eee6e67653268b0ed3a" + integrity sha512-qd3q/tUpF2K1xItfPZddk1k/8pSXnovg41XyCqJgPoyYEirMBtB0sVEVVQ/CsAOngzgWtBPXimVf4q4kM9uO6A== + dependencies: + "@tanstack/query-core" "5.66.4" + "@tanstack/react-table@^8.19.3": version "8.19.3" resolved "https://registry.yarnpkg.com/@tanstack/react-table/-/react-table-8.19.3.tgz#be1d9ee991ac06b7d4d17cc5c66469ac157bfd8a" @@ -4445,6 +4968,13 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + "@types/aria-query@^5.0.1": version "5.0.4" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" @@ -4556,7 +5086,7 @@ resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== -"@types/debug@^4.0.0": +"@types/debug@^4.0.0", "@types/debug@^4.1.7": version "4.1.12" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== @@ -4605,6 +5135,18 @@ resolved "https://registry.yarnpkg.com/@types/escodegen/-/escodegen-0.0.6.tgz#5230a9ce796e042cda6f086dbf19f22ea330659c" integrity sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig== +"@types/estree-jsx@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" + integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== + dependencies: + "@types/estree" "*" + +"@types/estree@*": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + "@types/estree@^0.0.51": version "0.0.51" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" @@ -4635,13 +5177,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/hast@^2.0.0": - version "2.3.9" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.9.tgz#a9a1b5bbce46e8a1312e977364bacabc8e93d2cf" - integrity sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw== - dependencies: - "@types/unist" "^2" - "@types/hast@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.3.tgz#7f75e6b43bc3f90316046a287d9ad3888309f7e1" @@ -4669,18 +5204,23 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/lodash.pick@^4.4.9": + version "4.4.9" + resolved "https://registry.yarnpkg.com/@types/lodash.pick/-/lodash.pick-4.4.9.tgz#06f7d88faa81a6c5665584778aea7b1374a1dc5b" + integrity sha512-hDpr96x9xHClwy1KX4/RXRejqjDFTEGbEMT3t6wYSYeFDzxmMnSKB/xHIbktRlPj8Nii2g8L5dtFDRaNFBEzUQ== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.15.tgz#12d4af0ed17cc7600ce1f9980cec48fc17ad1e89" + integrity sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw== + "@types/lodash@^4.14.167": version "4.14.202" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== -"@types/mdast@^3.0.0": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" - integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== - dependencies: - "@types/unist" "^2" - "@types/mdast@^4.0.0": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.3.tgz#1e011ff013566e919a4232d1701ad30d70cab333" @@ -4732,11 +5272,6 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== -"@types/parse5@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" - integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== - "@types/pretty-hrtime@^1.0.0": version "1.0.3" resolved "https://registry.yarnpkg.com/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#ee1bd8c9f7a01b3445786aad0ef23aba5f511a44" @@ -4841,6 +5376,11 @@ dependencies: swiper "*" +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + "@types/ungap__structured-clone@^0.3.0": version "0.3.3" resolved "https://registry.yarnpkg.com/@types/ungap__structured-clone/-/ungap__structured-clone-0.3.3.tgz#cf7e1252f18f5ee39291a8f52fa83c31b0102fc6" @@ -4851,7 +5391,7 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== -"@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": +"@types/unist@^2.0.0": version "2.0.10" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== @@ -5053,14 +5593,49 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@vitest/expect@1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.3.1.tgz#d4c14b89c43a25fd400a6b941f51ba27fe0cb918" - integrity sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw== +"@vanilla-extract/css@1.15.5": + version "1.15.5" + resolved "https://registry.yarnpkg.com/@vanilla-extract/css/-/css-1.15.5.tgz#06782b98b4d1478baec578fb06c223bde589d4b3" + integrity sha512-N1nQebRWnXvlcmu9fXKVUs145EVwmWtMD95bpiEKtvehHDpUhmO1l2bauS7FGYKbi3dU1IurJbGpQhBclTr1ng== dependencies: - "@vitest/spy" "1.3.1" - "@vitest/utils" "1.3.1" - chai "^4.3.10" + "@emotion/hash" "^0.9.0" + "@vanilla-extract/private" "^1.0.6" + css-what "^6.1.0" + cssesc "^3.0.0" + csstype "^3.0.7" + dedent "^1.5.3" + deep-object-diff "^1.1.9" + deepmerge "^4.2.2" + lru-cache "^10.4.3" + media-query-parser "^2.0.2" + modern-ahocorasick "^1.0.0" + picocolors "^1.0.0" + +"@vanilla-extract/dynamic@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@vanilla-extract/dynamic/-/dynamic-2.1.2.tgz#b1d1c1e0e392934c5a3bbb53f99069a7721311ac" + integrity sha512-9BGMciD8rO1hdSPIAh1ntsG4LPD3IYKhywR7VOmmz9OO4Lx1hlwkSg3E6X07ujFx7YuBfx0GDQnApG9ESHvB2A== + dependencies: + "@vanilla-extract/private" "^1.0.6" + +"@vanilla-extract/private@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@vanilla-extract/private/-/private-1.0.6.tgz#f10bbf3189f7b827d0bd7f804a6219dd03ddbdd4" + integrity sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw== + +"@vanilla-extract/sprinkles@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@vanilla-extract/sprinkles/-/sprinkles-1.6.3.tgz#733968d653cc2395538b5c29f04dcdb0a2ca15c5" + integrity sha512-oCHlQeYOBIJIA2yWy2GnY5wE2A7hGHDyJplJo4lb+KEIBcJWRnDJDg8ywDwQS5VfWJrBBO3drzYZPFpWQjAMiQ== + +"@vitest/expect@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.3.1.tgz#d4c14b89c43a25fd400a6b941f51ba27fe0cb918" + integrity sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw== + dependencies: + "@vitest/spy" "1.3.1" + "@vitest/utils" "1.3.1" + chai "^4.3.10" "@vitest/spy@1.3.1": version "1.3.1" @@ -5096,6 +5671,289 @@ loupe "^2.3.7" pretty-format "^29.7.0" +"@wagmi/connectors@5.7.7": + version "5.7.7" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.7.7.tgz#35fe03d69ca3f1494c0e97a758884e06e535eefd" + integrity sha512-hveKxuR35ZQQyteLo7aiN/TBVECYKVbLNTYGGgqzTNHJ8vVoblTP9PwPrRPGOPi5ji8raYSFWShxNK7QpGL+Kg== + dependencies: + "@coinbase/wallet-sdk" "4.3.0" + "@metamask/sdk" "0.32.0" + "@safe-global/safe-apps-provider" "0.18.5" + "@safe-global/safe-apps-sdk" "9.1.0" + "@walletconnect/ethereum-provider" "2.17.0" + cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3" + +"@wagmi/core@2.16.4": + version "2.16.4" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.16.4.tgz#96f1a2803dbf3ca110938402bdf2d99ab8da638e" + integrity sha512-E4jY4A98gwuHCjzuEajHIG/WhNDY5BChVHMjflV9Bx5CO7COqYRG2dcRLuF6Bo0LQNvVvXDAFUwR2JShJnT5pA== + dependencies: + eventemitter3 "5.0.1" + mipd "0.0.7" + zustand "5.0.0" + +"@walletconnect/core@2.17.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.17.0.tgz#bf490e85a4702eff0f7cf81ba0d3c1016dffff33" + integrity sha512-On+uSaCfWdsMIQsECwWHZBmUXfrnqmv6B8SXRRuTJgd8tUpEvBkLQH4X7XkSm3zW6ozEkQTCagZ2ox2YPn3kbw== + dependencies: + "@walletconnect/heartbeat" "1.2.2" + "@walletconnect/jsonrpc-provider" "1.0.14" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "1.1.1" + "@walletconnect/logger" "2.1.2" + "@walletconnect/relay-api" "1.0.11" + "@walletconnect/relay-auth" "1.0.4" + "@walletconnect/safe-json" "1.0.2" + "@walletconnect/time" "1.0.2" + "@walletconnect/types" "2.17.0" + "@walletconnect/utils" "2.17.0" + events "3.3.0" + lodash.isequal "4.5.0" + uint8arrays "3.1.0" + +"@walletconnect/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" + integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== + dependencies: + tslib "1.14.1" + +"@walletconnect/ethereum-provider@2.17.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.17.0.tgz#d74feaaed6180a6799e96760d7ee867ff3a083d2" + integrity sha512-b+KTAXOb6JjoxkwpgYQQKPUcTwENGmdEdZoIDLeRicUmZTn/IQKfkMoC2frClB4YxkyoVMtj1oMV2JAax+yu9A== + dependencies: + "@walletconnect/jsonrpc-http-connection" "1.0.8" + "@walletconnect/jsonrpc-provider" "1.0.14" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/modal" "2.7.0" + "@walletconnect/sign-client" "2.17.0" + "@walletconnect/types" "2.17.0" + "@walletconnect/universal-provider" "2.17.0" + "@walletconnect/utils" "2.17.0" + events "3.3.0" + +"@walletconnect/events@1.0.1", "@walletconnect/events@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" + integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" + +"@walletconnect/heartbeat@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz#e8dc5179db7769950c6f9cf59b23516d9b95227d" + integrity sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + events "^3.3.0" + +"@walletconnect/jsonrpc-http-connection@1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz#2f4c3948f074960a3edd07909560f3be13e2c7ae" + integrity sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.1" + cross-fetch "^3.1.4" + events "^3.3.0" + +"@walletconnect/jsonrpc-provider@1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz#696f3e3b6d728b361f2e8b853cfc6afbdf2e4e3e" + integrity sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" + +"@walletconnect/jsonrpc-types@1.0.4", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz#ce1a667d79eadf2a2d9d002c152ceb68739c230c" + integrity sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ== + dependencies: + events "^3.3.0" + keyvaluestorage-interface "^1.0.0" + +"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" + integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== + dependencies: + "@walletconnect/environment" "^1.0.1" + "@walletconnect/jsonrpc-types" "^1.0.3" + tslib "1.14.1" + +"@walletconnect/jsonrpc-ws-connection@1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" + integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" + ws "^7.5.1" + +"@walletconnect/keyvaluestorage@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" + integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== + dependencies: + "@walletconnect/safe-json" "^1.0.1" + idb-keyval "^6.2.1" + unstorage "^1.9.0" + +"@walletconnect/logger@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.1.2.tgz#813c9af61b96323a99f16c10089bfeb525e2a272" + integrity sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw== + dependencies: + "@walletconnect/safe-json" "^1.0.2" + pino "7.11.0" + +"@walletconnect/modal-core@2.7.0": + version "2.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.7.0.tgz#73c13c3b7b0abf9ccdbac9b242254a86327ce0a4" + integrity sha512-oyMIfdlNdpyKF2kTJowTixZSo0PGlCJRdssUN/EZdA6H6v03hZnf09JnwpljZNfir2M65Dvjm/15nGrDQnlxSA== + dependencies: + valtio "1.11.2" + +"@walletconnect/modal-ui@2.7.0": + version "2.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.7.0.tgz#dbbb7ee46a5a25f7d39db622706f2d197b268cbb" + integrity sha512-gERYvU7D7K1ANCN/8vUgsE0d2hnRemfAFZ2novm9aZBg7TEd/4EgB+AqbJ+1dc7GhOL6dazckVq78TgccHb7mQ== + dependencies: + "@walletconnect/modal-core" "2.7.0" + lit "2.8.0" + motion "10.16.2" + qrcode "1.5.3" + +"@walletconnect/modal@2.7.0": + version "2.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.7.0.tgz#55f969796d104cce1205f5f844d8f8438b79723a" + integrity sha512-RQVt58oJ+rwqnPcIvRFeMGKuXb9qkgSmwz4noF8JZGUym3gUAzVs+uW2NQ1Owm9XOJAV+sANrtJ+VoVq1ftElw== + dependencies: + "@walletconnect/modal-core" "2.7.0" + "@walletconnect/modal-ui" "2.7.0" + +"@walletconnect/relay-api@1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.11.tgz#80ab7ef2e83c6c173be1a59756f95e515fb63224" + integrity sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.2" + +"@walletconnect/relay-auth@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" + integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== + dependencies: + "@stablelib/ed25519" "^1.0.2" + "@stablelib/random" "^1.0.1" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + uint8arrays "^3.0.0" + +"@walletconnect/safe-json@1.0.2", "@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" + integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== + dependencies: + tslib "1.14.1" + +"@walletconnect/sign-client@2.17.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.17.0.tgz#efe811b1bb10082d964e2f0378aaa1b40f424503" + integrity sha512-sErYwvSSHQolNXni47L3Bm10ptJc1s1YoJvJd34s5E9h9+d3rj7PrhbiW9X82deN+Dm5oA8X9tC4xty1yIBrVg== + dependencies: + "@walletconnect/core" "2.17.0" + "@walletconnect/events" "1.0.1" + "@walletconnect/heartbeat" "1.2.2" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "2.1.2" + "@walletconnect/time" "1.0.2" + "@walletconnect/types" "2.17.0" + "@walletconnect/utils" "2.17.0" + events "3.3.0" + +"@walletconnect/time@1.0.2", "@walletconnect/time@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" + integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== + dependencies: + tslib "1.14.1" + +"@walletconnect/types@2.17.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.17.0.tgz#20eda5791e3172f8ab9146caa3f317701d4b3232" + integrity sha512-i1pn9URpvt9bcjRDkabuAmpA9K7mzyKoLJlbsAujRVX7pfaG7wur7u9Jz0bk1HxvuABL5LHNncTnVKSXKQ5jZA== + dependencies: + "@walletconnect/events" "1.0.1" + "@walletconnect/heartbeat" "1.2.2" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/keyvaluestorage" "1.1.1" + "@walletconnect/logger" "2.1.2" + events "3.3.0" + +"@walletconnect/universal-provider@2.17.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.17.0.tgz#c9d4bbd9b8f0e41b500b2488ccbc207dc5f7a170" + integrity sha512-d3V5Be7AqLrvzcdMZSBS8DmGDRdqnyLk1DWmRKAGgR6ieUWykhhUKlvfeoZtvJrIXrY7rUGYpH1X41UtFkW5Pw== + dependencies: + "@walletconnect/jsonrpc-http-connection" "1.0.8" + "@walletconnect/jsonrpc-provider" "1.0.14" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "2.1.2" + "@walletconnect/sign-client" "2.17.0" + "@walletconnect/types" "2.17.0" + "@walletconnect/utils" "2.17.0" + events "3.3.0" + +"@walletconnect/utils@2.17.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.17.0.tgz#02b3af0b80d0c1a994d692d829d066271b04d071" + integrity sha512-1aeQvjwsXy4Yh9G6g2eGmXrEl+BzkNjHRdCrGdMYqFTFa8ROEJfTGsSH3pLsNDlOY94CoBUvJvM55q/PMoN/FQ== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "1.0.3" + "@walletconnect/relay-api" "1.0.11" + "@walletconnect/relay-auth" "1.0.4" + "@walletconnect/safe-json" "1.0.2" + "@walletconnect/time" "1.0.2" + "@walletconnect/types" "2.17.0" + "@walletconnect/window-getters" "1.0.1" + "@walletconnect/window-metadata" "1.0.1" + detect-browser "5.3.0" + elliptic "^6.5.7" + query-string "7.1.3" + uint8arrays "3.1.0" + +"@walletconnect/window-getters@1.0.1", "@walletconnect/window-getters@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" + integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== + dependencies: + tslib "1.14.1" + +"@walletconnect/window-metadata@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" + integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== + dependencies: + "@walletconnect/window-getters" "^1.0.1" + tslib "1.14.1" + "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" @@ -5250,6 +6108,11 @@ "@types/emscripten" "^1.39.6" tslib "^1.13.0" +abitype@1.0.8, abitype@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.8.tgz#3554f28b2e9d6e9f35eb59878193eabd1b9f46ba" + integrity sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -5270,7 +6133,7 @@ acorn-import-attributes@^1.9.5: resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== -acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: +acorn-jsx@^5.0.0, acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -5297,6 +6160,11 @@ acorn@^7.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + acorn@^8.0.4, acorn@^8.11.0: version "8.12.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" @@ -5438,7 +6306,7 @@ any-promise@^1.0.0: resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== -anymatch@~3.1.2: +anymatch@^3.1.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -5615,6 +6483,18 @@ ast-types@^0.16.1: dependencies: tslib "^2.0.1" +astring@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" + integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg== + +async-mutex@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.2.6.tgz#0d7a3deb978bc2b984d5908a2038e1ae2e54ff40" + integrity sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw== + dependencies: + tslib "^2.0.0" + async@^3.2.3: version "3.2.5" resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" @@ -5632,6 +6512,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + autoprefixer@^10.4.19: version "10.4.19" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" @@ -5688,21 +6573,6 @@ babel-loader@^9.1.3: find-cache-dir "^4.0.0" schema-utils "^4.0.0" -babel-plugin-apply-mdx-type-prop@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" - integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - "@mdx-js/util" "1.6.22" - -babel-plugin-extract-import-names@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" - integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - babel-plugin-macros@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" @@ -5760,11 +6630,6 @@ babel-plugin-polyfill-regenerator@^0.6.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.6.2" -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -5885,6 +6750,11 @@ boolbase@^1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== +bowser@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + bplist-parser@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" @@ -6062,6 +6932,13 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" +bufferutil@^4.0.8: + version "4.0.9" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" + integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== + dependencies: + node-gyp-build "^4.3.0" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -6117,11 +6994,16 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase-css@2.0.1, camelcase-css@^2.0.1: +camelcase-css@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" @@ -6137,10 +7019,20 @@ case-sensitive-paths-webpack-plugin@^2.4.0: resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== +"cbw-sdk@npm:@coinbase/wallet-sdk@3.9.3": + version "3.9.3" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.9.3.tgz#daf10cb0c85d0363315b7270cb3f02bedc408aab" + integrity sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw== + dependencies: + bn.js "^5.2.1" + buffer "^6.0.3" + clsx "^1.2.1" + eth-block-tracker "^7.1.0" + eth-json-rpc-filters "^6.0.0" + eventemitter3 "^5.0.1" + keccak "^3.0.3" + preact "^10.16.0" + sha.js "^2.4.11" ccount@^2.0.0: version "2.0.1" @@ -6190,25 +7082,25 @@ chalk@~5.3.0: resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== chart.js@^4.4.2: version "4.4.3" @@ -6244,6 +7136,21 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" +chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -6349,6 +7256,15 @@ client-only@0.0.1: resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -6377,11 +7293,16 @@ clsx@2.0.0: resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== -clsx@^2.0.0, clsx@^2.1.1: +clsx@2.1.1, clsx@^2.0.0, clsx@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + cmdk@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cmdk/-/cmdk-1.0.0.tgz#0a095fdafca3dfabed82d1db78a6262fb163ded9" @@ -6390,10 +7311,10 @@ cmdk@^1.0.0: "@radix-ui/react-dialog" "1.0.5" "@radix-ui/react-primitive" "1.0.3" -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== +collapse-white-space@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz#640257174f9f42c740b40f3b55ee752924feefca" + integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== color-convert@^1.9.0: version "1.9.3" @@ -6447,10 +7368,10 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== commander@^2.20.0, commander@^2.8.1: version "2.20.3" @@ -6554,6 +7475,11 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +cookie-es@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.2.2.tgz#18ceef9eb513cac1cb6c14bcbf8bdb2679b34821" + integrity sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg== + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -6619,6 +7545,11 @@ cosmiconfig@^9.0.0: js-yaml "^4.1.0" parse-json "^5.2.0" +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -6655,6 +7586,20 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + +cross-fetch@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.1.0.tgz#8f69355007ee182e47fa692ecbaa37a52e43c3d2" + integrity sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw== + dependencies: + node-fetch "^2.7.0" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" @@ -6664,6 +7609,13 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crossws@^0.3.3: + version "0.3.4" + resolved "https://registry.yarnpkg.com/crossws/-/crossws-0.3.4.tgz#06164c6495ea99152ea7557c99310b52d9be9b29" + integrity sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw== + dependencies: + uncrypto "^0.1.3" + crypto-browserify@^3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -6762,7 +7714,7 @@ csso@^5.0.5: dependencies: css-tree "~2.2.0" -csstype@^3.0.2: +csstype@^3.0.2, csstype@^3.0.7: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== @@ -6843,6 +7795,13 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== +date-fns@^2.29.3: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + debounce@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" @@ -6876,6 +7835,18 @@ debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3 dependencies: ms "2.1.2" +debug@~4.3.1, debug@~4.3.2: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + decimal.js-light@^2.4.1: version "2.5.1" resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" @@ -6893,6 +7864,11 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" +decode-uri-component@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -6958,6 +7934,11 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +dedent@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" @@ -6999,6 +7980,11 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deep-object-diff@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.9.tgz#6df7ef035ad6a0caa44479c536ed7b02570f4595" + integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA== + deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" @@ -7051,7 +8037,7 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -defu@^6.1.3: +defu@^6.1.3, defu@^6.1.4: version "6.1.4" resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== @@ -7079,17 +8065,20 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destr@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449" + integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== + destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detab@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== - dependencies: - repeat-string "^1.5.4" +detect-browser@5.3.0, detect-browser@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== detect-indent@^6.1.0: version "6.1.0" @@ -7121,6 +8110,13 @@ detect-port@^1.3.0: address "^1.0.1" debug "4" +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" @@ -7136,11 +8132,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== - diff@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" @@ -7155,6 +8146,11 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dijkstrajs@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" + integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -7299,6 +8295,26 @@ duplexify@^3.5.0, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +duplexify@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" + integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.2" + +eciesjs@^0.4.11: + version "0.4.13" + resolved "https://registry.yarnpkg.com/eciesjs/-/eciesjs-0.4.13.tgz#89fbe2bc37d6dced8c3d1bccac21cceb20bcdcf3" + integrity sha512-zBdtR4K+wbj10bWPpIOF9DW+eFYQu8miU5ypunh0t4Bvt83ZPlEWgT5Dq/0G6uwEXumZKjfb5BZxYUZQ2Hzn/Q== + dependencies: + "@ecies/ciphers" "^0.2.2" + "@noble/ciphers" "^1.0.0" + "@noble/curves" "^1.6.0" + "@noble/hashes" "^1.5.0" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -7334,6 +8350,19 @@ elliptic@^6.5.3, elliptic@^6.5.5: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.5.7: + version "6.6.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^10.3.0: version "10.3.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" @@ -7354,6 +8383,11 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -7364,7 +8398,7 @@ encodeurl@~2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -7380,6 +8414,22 @@ endent@^2.0.1: fast-json-parse "^1.0.3" objectorarray "^1.0.5" +engine.io-client@~6.6.1: + version "6.6.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.6.3.tgz#815393fa24f30b8e6afa8f77ccca2f28146be6de" + integrity sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.17.1" + xmlhttprequest-ssl "~2.1.1" + +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== + enhanced-resolve@^5.12.0, enhanced-resolve@^5.7.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -7552,6 +8602,26 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esast-util-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz#8d1cfb51ad534d2f159dc250e604f3478a79f1ad" + integrity sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + unist-util-position-from-estree "^2.0.0" + +esast-util-from-js@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz#5147bec34cc9da44accf52f87f239a40ac3e8225" + integrity sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw== + dependencies: + "@types/estree-jsx" "^1.0.0" + acorn "^8.0.0" + esast-util-from-estree "^2.0.0" + vfile-message "^4.0.0" + esbuild-plugin-alias@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" @@ -7564,11 +8634,6 @@ esbuild-register@^3.5.0: dependencies: debug "^4.3.4" -esbuild@^0.12.9: - version "0.12.29" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.29.tgz#be602db7c4dc78944a9dbde0d1ea19d36c1f882d" - integrity sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g== - "esbuild@^0.18.0 || ^0.19.0 || ^0.20.0": version "0.20.2" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" @@ -7890,7 +8955,54 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-walker@^3.0.3: +estree-util-attach-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz#344bde6a64c8a31d15231e5ee9e297566a691c2d" + integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz#b6d0bced1dcc4f06f25cf0ceda2b2dcaf98168f1" + integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + +estree-util-scope@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-util-scope/-/estree-util-scope-1.0.0.tgz#9cbdfc77f5cb51e3d9ed4ad9c4adbff22d43e585" + integrity sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + +estree-util-to-js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz#10a6fb924814e6abb62becf0d2bc4dea51d04f17" + integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-visit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" + integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^3.0.0" + +estree-walker@^3.0.0, estree-walker@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== @@ -7907,6 +9019,43 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +eth-block-tracker@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-7.1.0.tgz#dfc16085c6817cc30caabba381deb8d204c1c766" + integrity sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg== + dependencies: + "@metamask/eth-json-rpc-provider" "^1.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^5.0.1" + json-rpc-random-id "^1.0.1" + pify "^3.0.0" + +eth-json-rpc-filters@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-6.0.1.tgz#0b3e370f017f5c6f58d3e7bd0756d8099ed85c56" + integrity sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig== + dependencies: + "@metamask/safe-event-emitter" "^3.0.0" + async-mutex "^0.2.6" + eth-query "^2.1.2" + json-rpc-engine "^6.1.0" + pify "^5.0.0" + +eth-query@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" + integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== + dependencies: + json-rpc-random-id "^1.0.0" + xtend "^4.0.1" + +eth-rpc-errors@^4.0.2, eth-rpc-errors@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" + integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== + dependencies: + fast-safe-stringify "^2.0.6" + ethereum-blockies-base64@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" @@ -7914,22 +9063,37 @@ ethereum-blockies-base64@^1.0.2: dependencies: pnglib "0.0.1" +ethereum-cryptography@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf" + integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== + dependencies: + "@noble/curves" "1.4.2" + "@noble/hashes" "1.4.0" + "@scure/bip32" "1.4.0" + "@scure/bip39" "1.3.0" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@^4.0.1: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter2@^6.4.9: + version "6.4.9" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125" + integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg== -eventemitter3@^5.0.1: +eventemitter3@5.0.1, eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== -events@^3.2.0, events@^3.3.0: +eventemitter3@^4.0.1: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@3.3.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -8026,6 +9190,14 @@ extend@^3.0.0: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +extension-port-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extension-port-stream/-/extension-port-stream-3.0.0.tgz#00a7185fe2322708a36ed24843c81bd754925fef" + integrity sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw== + dependencies: + readable-stream "^3.6.2 || ^4.4.2" + webextension-polyfill ">=0.10.0 <1.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -8067,6 +9239,16 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-redact@^3.0.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.5.0.tgz#e9ea02f7e57d0cd8438180083e93077e496285e4" + integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== + +fast-safe-stringify@^2.0.6: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + fastq@^1.6.0: version "1.17.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.0.tgz#ca5e1a90b5e68f97fc8b61330d5819b82f5fab03" @@ -8135,6 +9317,11 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + filter-obj@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-2.0.2.tgz#fff662368e505d69826abb113f0f6a98f56e9d5f" @@ -8379,11 +9566,16 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-east-asian-width@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" @@ -8625,6 +9817,22 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" +h3@^1.13.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.15.0.tgz#1a149cbe8c0418691cae331d5744c0c65fbf42b3" + integrity sha512-OsjX4JW8J4XGgCgEcad20pepFQWnuKH+OwkCJjogF3C+9AZ1iYdtB4hX6vAb5DskBiu5ljEXqApINjR8CqoCMQ== + dependencies: + cookie-es "^1.2.2" + crossws "^0.3.3" + defu "^6.1.4" + destr "^2.0.3" + iron-webcrypto "^1.2.1" + node-mock-http "^1.0.0" + ohash "^1.1.4" + radix3 "^1.1.2" + ufo "^1.5.4" + uncrypto "^0.1.3" + handlebars@^4.7.7: version "4.7.8" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" @@ -8715,31 +9923,6 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" -hast-to-hyperscript@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" - integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== - dependencies: - "@types/unist" "^2.0.3" - comma-separated-tokens "^1.0.0" - property-information "^5.3.0" - space-separated-tokens "^1.0.0" - style-to-object "^0.3.0" - unist-util-is "^4.0.0" - web-namespaces "^1.0.0" - -hast-util-from-parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" - integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== - dependencies: - "@types/parse5" "^5.0.0" - hastscript "^6.0.0" - property-information "^5.0.0" - vfile "^4.0.0" - vfile-location "^3.2.0" - web-namespaces "^1.0.0" - hast-util-heading-rank@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz#2d5c6f2807a7af5c45f74e623498dd6054d2aba8" @@ -8754,37 +9937,48 @@ hast-util-is-element@^3.0.0: dependencies: "@types/hast" "^3.0.0" -hast-util-parse-selector@^2.0.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== - -hast-util-raw@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" - integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== - dependencies: - "@types/hast" "^2.0.0" - hast-util-from-parse5 "^6.0.0" - hast-util-to-parse5 "^6.0.0" - html-void-elements "^1.0.0" - parse5 "^6.0.0" - unist-util-position "^3.0.0" - vfile "^4.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hast-util-to-parse5@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" - integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== +hast-util-to-estree@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.2.tgz#29dc022d47483e53ed28de0a2831a079aba932e8" + integrity sha512-94SDoKOfop5gP8RHyw4vV1aj+oChuD42g08BONGAaWFbbO6iaWUqxk7SWfGybgcVzhK16KifZr3zD2dqQgx3jQ== dependencies: - hast-to-hyperscript "^9.0.0" - property-information "^5.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-attach-comments "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^1.0.0" + unist-util-position "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.3.tgz#62c8fc474cc955765189c21d7c419378b34fa893" + integrity sha512-pdpkP8YD4v+qMKn2lnKSiJvZvb3FunDmFYQvVOsoO08+eTNWdaWKPMrC5wwNICtU3dQWHhElj5Sf5jPEnv4qJg== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" hast-util-to-string@^3.0.0: version "3.0.0" @@ -8793,22 +9987,23 @@ hast-util-to-string@^3.0.0: dependencies: "@types/hast" "^3.0.0" -hastscript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" - integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" + "@types/hast" "^3.0.0" he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hey-listen@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" + integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -8863,11 +10058,6 @@ html-tags@^3.1.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== - html-webpack-plugin@^5.5.0: version "5.6.0" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" @@ -8940,6 +10130,11 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== +idb-keyval@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== + ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -8988,7 +10183,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -8998,10 +10193,10 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== +inline-style-parser@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" + integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.6" @@ -9039,23 +10234,28 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +iron-webcrypto@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz#aa60ff2aa10550630f4c0b11fd2442becdb35a6f" + integrity sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== + is-absolute-url@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-4.0.1.tgz#16e4d487d4fded05cfe0685e53ec86804a5e94dc" integrity sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A== -is-alphabetical@1.0.4, is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" @@ -9137,10 +10337,10 @@ is-date-object@^1.0.1, is-date-object@^1.0.5: dependencies: has-tostringtag "^1.0.0" -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== is-deflate@^1.0.0: version "1.0.0" @@ -9205,10 +10405,10 @@ is-gzip@^1.0.0: resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" integrity sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ== -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== is-interactive@^1.0.0: version "1.0.0" @@ -9255,11 +10455,6 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-plain-obj@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" @@ -9358,16 +10553,6 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -9395,6 +10580,11 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +isows@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7" + integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw== + iterator.prototype@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" @@ -9510,6 +10700,19 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-rpc-engine@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393" + integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== + dependencies: + "@metamask/safe-event-emitter" "^2.0.0" + eth-rpc-errors "^4.0.2" + +json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" + integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -9556,6 +10759,15 @@ jsonfile@^6.0.1, jsonfile@^6.1.0: object.assign "^4.1.4" object.values "^1.1.6" +keccak@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + keyv@^4.5.3: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -9563,6 +10775,11 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" +keyvaluestorage-interface@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" + integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== + kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -9573,11 +10790,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.0.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - klona@^2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" @@ -9660,6 +10872,31 @@ listr2@~8.2.1: rfdc "^1.4.1" wrap-ansi "^9.0.0" +lit-element@^3.3.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" + integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" + "@lit/reactive-element" "^1.3.0" + lit-html "^2.8.0" + +lit-html@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" + integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" + integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== + dependencies: + "@lit/reactive-element" "^1.6.0" + lit-element "^3.3.0" + lit-html "^2.8.0" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -9718,6 +10955,11 @@ lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== +lodash.isequal@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" @@ -9728,6 +10970,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + lodash.shuffle@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b" @@ -9738,12 +10985,7 @@ lodash.union@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== -lodash.uniq@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9793,7 +11035,7 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lru-cache@^10.2.0: +lru-cache@^10.2.0, lru-cache@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== @@ -9861,10 +11103,10 @@ map-or-similar@^1.5.0: resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== markdown-table@^3.0.0: version "3.0.3" @@ -9885,149 +11127,190 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdast-squeeze-paragraphs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" - integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== +mdast-util-find-and-replace@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== dependencies: - unist-util-remove "^2.0.0" + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== +mdast-util-from-markdown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz#4850390ca7cf17413a9b9a0fbefcd1bc0eb4160a" + integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz#abd557630337bd30a6d5a4bd8252e1c2dc0875d5" + integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== dependencies: - unist-util-visit "^2.0.0" + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" -mdast-util-find-and-replace@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1" - integrity sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw== +mdast-util-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== dependencies: - "@types/mdast" "^3.0.0" - escape-string-regexp "^5.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" -mdast-util-from-markdown@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" - integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - decode-named-character-reference "^1.0.0" - mdast-util-to-string "^3.1.0" - micromark "^3.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-decode-string "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - unist-util-stringify-position "^3.0.0" - uvu "^0.5.0" + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" -mdast-util-gfm-autolink-literal@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06" - integrity sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA== +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== dependencies: - "@types/mdast" "^3.0.0" - ccount "^2.0.0" - mdast-util-find-and-replace "^2.0.0" - micromark-util-character "^1.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" -mdast-util-gfm-footnote@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e" - integrity sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ== +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" - micromark-util-normalize-identifier "^1.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" -mdast-util-gfm-strikethrough@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7" - integrity sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ== +mdast-util-gfm@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz#43f0abac9adc756e2086f63822a38c8d3c3a5096" + integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" -mdast-util-gfm-table@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46" - integrity sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg== +mdast-util-mdx-jsx@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz#fd04c67a2a7499efb905a8a5c578dddc9fdada0d" + integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q== dependencies: - "@types/mdast" "^3.0.0" - markdown-table "^3.0.0" - mdast-util-from-markdown "^1.0.0" - mdast-util-to-markdown "^1.3.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" + integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + mdast-util-to-markdown "^2.0.0" -mdast-util-gfm-task-list-item@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b" - integrity sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ== +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" -mdast-util-gfm@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6" - integrity sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg== - dependencies: - mdast-util-from-markdown "^1.0.0" - mdast-util-gfm-autolink-literal "^1.0.0" - mdast-util-gfm-footnote "^1.0.0" - mdast-util-gfm-strikethrough "^1.0.0" - mdast-util-gfm-table "^1.0.0" - mdast-util-gfm-task-list-item "^1.0.0" - mdast-util-to-markdown "^1.0.0" - -mdast-util-phrasing@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" - integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== dependencies: - "@types/mdast" "^3.0.0" - unist-util-is "^5.0.0" + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" -mdast-util-to-hast@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" - integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== +mdast-util-to-hast@^13.0.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" + integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" - mdurl "^1.0.0" - unist-builder "^2.0.0" - unist-util-generated "^1.0.0" - unist-util-position "^3.0.0" - unist-util-visit "^2.0.0" - -mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" - integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz#f910ffe60897f04bb4b7e7ee434486f76288361b" + integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" longest-streak "^3.0.0" - mdast-util-phrasing "^3.0.0" - mdast-util-to-string "^3.0.0" - micromark-util-decode-string "^1.0.0" - unist-util-visit "^4.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" zwitch "^2.0.0" -mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" - integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" @@ -10058,10 +11341,12 @@ mdn-data@2.0.30: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== +media-query-parser@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29" + integrity sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w== + dependencies: + "@babel/runtime" "^7.12.5" media-typer@0.3.0: version "0.3.0" @@ -10107,278 +11392,379 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" - integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== +micro-ftch@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== + +micromark-core-commonmark@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz#6a45bbb139e126b3f8b361a10711ccc7c6e15e93" + integrity sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w== dependencies: decode-named-character-reference "^1.0.0" - micromark-factory-destination "^1.0.0" - micromark-factory-label "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-factory-title "^1.0.0" - micromark-factory-whitespace "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-chunked "^1.0.0" - micromark-util-classify-character "^1.0.0" - micromark-util-html-tag-name "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-subtokenize "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.1" - uvu "^0.5.0" - -micromark-extension-gfm-autolink-literal@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" - integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz#6286aee9686c4462c1e3552a9d505feddceeb935" + integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== dependencies: - micromark-util-character "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-extension-gfm-footnote@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" - integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== - dependencies: - micromark-core-commonmark "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-gfm-strikethrough@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" - integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== +micromark-extension-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz#4dab56d4e398b9853f6fe4efac4fc9361f3e0750" + integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz#86106df8b3a692b5f6a92280d3879be6be46d923" + integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-classify-character "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-extension-gfm-table@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" - integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== +micromark-extension-gfm-table@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz#fac70bcbf51fe65f5f44033118d39be8a9b5940b" + integrity sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg== dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-extension-gfm-tagfilter@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7" - integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g== +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== dependencies: - micromark-util-types "^1.0.0" + micromark-util-types "^2.0.0" -micromark-extension-gfm-task-list-item@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" - integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz#bcc34d805639829990ec175c3eea12bb5b781f2c" + integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-extension-gfm@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf" - integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ== - dependencies: - micromark-extension-gfm-autolink-literal "^1.0.0" - micromark-extension-gfm-footnote "^1.0.0" - micromark-extension-gfm-strikethrough "^1.0.0" - micromark-extension-gfm-table "^1.0.0" - micromark-extension-gfm-tagfilter "^1.0.0" - micromark-extension-gfm-task-list-item "^1.0.0" - micromark-util-combine-extensions "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-destination@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" - integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" + integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz#5abb83da5ddc8e473a374453e6ea56fbd66b59ad" + integrity sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg== dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdx-md@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" + integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== + dependencies: + micromark-util-types "^2.0.0" -micromark-factory-label@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" - integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== +micromark-extension-mdxjs-esm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" + integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdxjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" + integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^3.0.0" + micromark-extension-mdx-jsx "^3.0.0" + micromark-extension-mdx-md "^2.0.0" + micromark-extension-mdxjs-esm "^3.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz#8fef8e0f7081f0474fbdd92deb50c990a0264639" + integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-factory-space@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" - integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== +micromark-factory-label@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz#5267efa97f1e5254efc7f20b459a38cb21058ba1" + integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== dependencies: - micromark-util-character "^1.0.0" - micromark-util-types "^1.0.0" + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-factory-title@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" - integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== +micromark-factory-mdx-expression@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz#2afaa8ba6d5f63e0cead3e4dee643cad184ca260" + integrity sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw== dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz#36d0212e962b2b3121f8525fc7a3c7c029f334fc" + integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" -micromark-factory-whitespace@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" - integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== +micromark-factory-title@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz#237e4aa5d58a95863f01032d9ee9b090f1de6e94" + integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-util-character@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" - integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== +micromark-factory-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz#06b26b2983c4d27bfcc657b33e25134d4868b0b1" + integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== dependencies: - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-util-chunked@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" - integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== +micromark-util-character@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== dependencies: - micromark-util-symbol "^1.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-util-classify-character@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" - integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== +micromark-util-chunked@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz#47fbcd93471a3fccab86cff03847fc3552db1051" + integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" + micromark-util-symbol "^2.0.0" -micromark-util-combine-extensions@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" - integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== +micromark-util-classify-character@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz#d399faf9c45ca14c8b4be98b1ea481bced87b629" + integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-types "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-util-decode-numeric-character-reference@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" - integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== +micromark-util-combine-extensions@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz#2a0f490ab08bff5cc2fd5eec6dd0ca04f89b30a9" + integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== dependencies: - micromark-util-symbol "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" -micromark-util-decode-string@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" - integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz#fcf15b660979388e6f118cdb6bf7d79d73d26fe5" + integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz#6cb99582e5d271e84efca8e61a807994d7161eb2" + integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== dependencies: decode-named-character-reference "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-symbol "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" -micromark-util-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" - integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== +micromark-util-encode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== -micromark-util-html-tag-name@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" - integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== +micromark-util-events-to-acorn@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz#4275834f5453c088bd29cd72dfbf80e3327cec07" + integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" -micromark-util-normalize-identifier@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" - integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== +micromark-util-html-tag-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz#e40403096481986b41c106627f98f72d4d10b825" + integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz#c30d77b2e832acf6526f8bf1aa47bc9c9438c16d" + integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== dependencies: - micromark-util-symbol "^1.0.0" + micromark-util-symbol "^2.0.0" -micromark-util-resolve-all@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" - integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== +micromark-util-resolve-all@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz#e1a2d62cdd237230a2ae11839027b19381e31e8b" + integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== dependencies: - micromark-util-types "^1.0.0" + micromark-util-types "^2.0.0" -micromark-util-sanitize-uri@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" - integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== +micromark-util-sanitize-uri@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== dependencies: - micromark-util-character "^1.0.0" - micromark-util-encode "^1.0.0" - micromark-util-symbol "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" -micromark-util-subtokenize@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" - integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== +micromark-util-subtokenize@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz#50d8ca981373c717f497dc64a0dbfccce6c03ed2" + integrity sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ== dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -micromark-util-symbol@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" - integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== -micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" - integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== +micromark-util-types@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.1.tgz#a3edfda3022c6c6b55bfb049ef5b75d70af50709" + integrity sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ== -micromark@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" - integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== +micromark@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.1.tgz#294c2f12364759e5f9e925a767ae3dfde72223ff" + integrity sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" decode-named-character-reference "^1.0.0" - micromark-core-commonmark "^1.0.1" - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-chunked "^1.0.0" - micromark-util-combine-extensions "^1.0.0" - micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-encode "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" - micromark-util-subtokenize "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.1" - uvu "^0.5.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@~4.0.7: version "4.0.8" @@ -10506,6 +11892,11 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" +mipd@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mipd/-/mipd-0.0.7.tgz#bb5559e21fa18dc3d9fe1c08902ef14b7ce32fd9" + integrity sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg== + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -10516,10 +11907,22 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== +modern-ahocorasick@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz#9b1fa15d4f654be20a2ad7ecc44ec9d7645bb420" + integrity sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ== + +motion@10.16.2: + version "10.16.2" + resolved "https://registry.yarnpkg.com/motion/-/motion-10.16.2.tgz#7dc173c6ad62210a7e9916caeeaf22c51e598d21" + integrity sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/dom" "^10.16.2" + "@motionone/svelte" "^10.16.2" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + "@motionone/vue" "^10.16.2" mrmime@^2.0.0: version "2.0.0" @@ -10536,11 +11939,16 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -10589,15 +11997,17 @@ next-intl@^3.26.3: negotiator "^1.0.0" use-intl "^3.26.4" -next-mdx-remote@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/next-mdx-remote/-/next-mdx-remote-3.0.8.tgz#ea2e7f9f3c99a0ce8167976c547e621d5930e1e0" - integrity sha512-WFSxt0crxG5PN/0WvaunzxzqV3wh3dPBZyhkclxwyQfLSRKzsNSArzot/4gYTOOZ/GtyRfNjbI/HtDsW2S4fqQ== +next-mdx-remote@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/next-mdx-remote/-/next-mdx-remote-5.0.0.tgz#028a2cf5cf7f814d988d7ab11a401bed0f31b4ee" + integrity sha512-RNNbqRpK9/dcIFZs/esQhuLA8jANqlH694yqoDBK8hkVdJUndzzGmnPHa2nyi90N4Z9VmzuSWNRpr5ItT3M7xQ== dependencies: - "@mdx-js/mdx" "^1.6.22" - "@mdx-js/react" "^1.6.22" - esbuild "^0.12.9" - pkg-dir "^5.0.0" + "@babel/code-frame" "^7.23.5" + "@mdx-js/mdx" "^3.0.1" + "@mdx-js/react" "^3.0.1" + unist-util-remove "^3.1.0" + vfile "^6.0.1" + vfile-matter "^5.0.0" next-sitemap@^4.2.3: version "4.2.3" @@ -10614,12 +12024,12 @@ next-themes@^0.3.0: resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.3.0.tgz#b4d2a866137a67d42564b07f3a3e720e2ff3871a" integrity sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w== -next@^14.2.21: - version "14.2.21" - resolved "https://registry.yarnpkg.com/next/-/next-14.2.21.tgz#f6da9e2abba1a0e4ca7a5273825daf06632554ba" - integrity sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg== +next@^14.2.25: + version "14.2.25" + resolved "https://registry.yarnpkg.com/next/-/next-14.2.25.tgz#0657551fde6a97f697cf9870e9ccbdaa465c6008" + integrity sha512-N5M7xMc4wSb4IkPvEV5X2BRRXUmhVHNyaXwEM86+voXthSZz8ZiRyQW4p9mwAoAPIm6OzuVZtn7idgEJeAJN3Q== dependencies: - "@next/env" "14.2.21" + "@next/env" "14.2.25" "@swc/helpers" "0.5.5" busboy "1.6.0" caniuse-lite "^1.0.30001579" @@ -10627,15 +12037,15 @@ next@^14.2.21: postcss "8.4.31" styled-jsx "5.1.1" optionalDependencies: - "@next/swc-darwin-arm64" "14.2.21" - "@next/swc-darwin-x64" "14.2.21" - "@next/swc-linux-arm64-gnu" "14.2.21" - "@next/swc-linux-arm64-musl" "14.2.21" - "@next/swc-linux-x64-gnu" "14.2.21" - "@next/swc-linux-x64-musl" "14.2.21" - "@next/swc-win32-arm64-msvc" "14.2.21" - "@next/swc-win32-ia32-msvc" "14.2.21" - "@next/swc-win32-x64-msvc" "14.2.21" + "@next/swc-darwin-arm64" "14.2.25" + "@next/swc-darwin-x64" "14.2.25" + "@next/swc-linux-arm64-gnu" "14.2.25" + "@next/swc-linux-arm64-musl" "14.2.25" + "@next/swc-linux-x64-gnu" "14.2.25" + "@next/swc-linux-x64-musl" "14.2.25" + "@next/swc-win32-arm64-msvc" "14.2.25" + "@next/swc-win32-ia32-msvc" "14.2.25" + "@next/swc-win32-x64-msvc" "14.2.25" no-case@^3.0.4: version "3.0.4" @@ -10657,6 +12067,11 @@ node-abort-controller@^3.0.1: resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + node-addon-api@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" @@ -10674,13 +12089,28 @@ node-fetch-native@^1.6.1: resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== -node-fetch@^2.0.0: +node-fetch-native@^1.6.4: + version "1.6.6" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.6.tgz#ae1d0e537af35c2c0b0de81cbff37eedd410aa37" + integrity sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ== + +node-fetch@^2.0.0, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.8.4" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" + integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== + +node-mock-http@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-mock-http/-/node-mock-http-1.0.0.tgz#4b32cd509c7f46d844e68ea93fb8be405a18a42a" + integrity sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ== + node-polyfill-webpack-plugin@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz#141d86f177103a8517c71d99b7c6a46edbb1bb58" @@ -10768,6 +12198,15 @@ nypm@^0.3.3: pathe "^1.1.2" ufo "^1.3.2" +obj-multiplex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/obj-multiplex/-/obj-multiplex-1.0.0.tgz#2f2ae6bfd4ae11befe742ea9ea5b36636eabffc1" + integrity sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA== + dependencies: + end-of-stream "^1.4.0" + once "^1.4.0" + readable-stream "^2.3.3" + object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -10856,11 +12295,30 @@ objectorarray@^1.0.5: resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.5.tgz#2c05248bbefabd8f43ad13b41085951aac5e68a5" integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg== +ofetch@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.4.1.tgz#b6bf6b0d75ba616cef6519dd8b6385a8bae480ec" + integrity sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw== + dependencies: + destr "^2.0.3" + node-fetch-native "^1.6.4" + ufo "^1.5.4" + ohash@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== +ohash@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.4.tgz#ae8d83014ab81157d2c285abf7792e2995fadd72" + integrity sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g== + +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -10940,6 +12398,19 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== +ox@0.6.7: + version "0.6.7" + resolved "https://registry.yarnpkg.com/ox/-/ox-0.6.7.tgz#afd53f2ecef68b8526660e9d29dee6e6b599a832" + integrity sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA== + dependencies: + "@adraffy/ens-normalize" "^1.10.1" + "@noble/curves" "^1.6.0" + "@noble/hashes" "^1.5.0" + "@scure/bip32" "^1.5.0" + "@scure/bip39" "^1.4.0" + abitype "^1.0.6" + eventemitter3 "5.0.1" + p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -11036,17 +12507,18 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.7: pbkdf2 "^3.1.2" safe-buffer "^5.2.1" -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== +parse-entities@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.2.tgz#61d46f5ed28e4ee62e9ddc43d6b010188443f159" + integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" + "@types/unist" "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" @@ -11058,11 +12530,6 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -11217,6 +12684,11 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -11229,6 +12701,36 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== +pino-abstract-transport@v0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" + integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== + dependencies: + duplexify "^4.1.2" + split2 "^4.0.0" + +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== + +pino@7.11.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" + pirates@^4.0.1, pirates@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" @@ -11267,6 +12769,11 @@ plaiceholder@^3.0.0: resolved "https://registry.yarnpkg.com/plaiceholder/-/plaiceholder-3.0.0.tgz#bd0a3ea0613523e4b8a8239ab7566432880d7fc3" integrity sha512-jwHxxHPnr1BwRzPCeZgEK2BMsEy2327sWynw3qb6XC/oGgGDUTPtR8pFxFQmNArhMBwhkUbUr5OPhhIJpCa8eQ== +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + pnglib@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" @@ -11286,6 +12793,11 @@ polished@^4.2.2: dependencies: "@babel/runtime" "^7.17.8" +pony-cause@^2.1.10: + version "2.1.11" + resolved "https://registry.yarnpkg.com/pony-cause/-/pony-cause-2.1.11.tgz#d69a20aaccdb3bdb8f74dd59e5c68d8e6772e4bd" + integrity sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg== + postcss-import@^15.1.0: version "15.1.0" resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" @@ -11393,6 +12905,11 @@ postcss@^8.2.14, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4 picocolors "^1.0.1" source-map-js "^1.2.0" +preact@^10.16.0, preact@^10.24.2: + version "10.26.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.26.2.tgz#d737055584a4d8004ec273e425fb4c30960aa512" + integrity sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg== + prebuild-install@^7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" @@ -11416,7 +12933,7 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -"prettier-fallback@npm:prettier@^3", prettier@^3.1.1: +"prettier-fallback@npm:prettier@^3": version "3.3.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== @@ -11482,6 +12999,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -11502,14 +13024,12 @@ prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" - react-is "^16.13.1" - -property-information@^5.0.0, property-information@^5.3.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" - integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== - dependencies: - xtend "^4.0.0" + react-is "^16.13.1" + +property-information@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.0.0.tgz#3508a6d6b0b8eb3ca6eb2c6623b164d2ed2ab112" + integrity sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg== proxy-addr@~2.0.7: version "2.0.7" @@ -11519,6 +13039,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-compare@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600" + integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA== + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" @@ -11571,6 +13096,25 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +qrcode@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" + integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== + dependencies: + dijkstrajs "^1.0.1" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" + +qrcode@1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.4.tgz#5cb81d86eb57c675febb08cf007fff963405da88" + integrity sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg== + dependencies: + dijkstrajs "^1.0.1" + pngjs "^5.0.0" + yargs "^15.3.1" + qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -11599,6 +13143,16 @@ qs@^6.11.2: dependencies: side-channel "^1.0.6" +query-string@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" + integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== + dependencies: + decode-uri-component "^0.2.2" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + querystring-es3@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -11621,6 +13175,16 @@ queue@6.0.2: dependencies: inherits "~2.0.3" +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +radix3@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.2.tgz#fd27d2af3896c6bf4bcdfab6427c69c2afc69ec0" + integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== + ramda@0.29.0: version "0.29.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.0.tgz#fbbb67a740a754c8a4cbb41e2a6e0eb8507f55fb" @@ -11801,6 +13365,14 @@ react-remove-scroll-bar@^2.3.3, react-remove-scroll-bar@^2.3.4: react-style-singleton "^2.2.1" tslib "^2.0.0" +react-remove-scroll-bar@^2.3.7: + version "2.3.8" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz#99c20f908ee467b385b68a3469b4a3e750012223" + integrity sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q== + dependencies: + react-style-singleton "^2.2.2" + tslib "^2.0.0" + react-remove-scroll@2.5.5: version "2.5.5" resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz#1e31a1260df08887a8a0e46d09271b52b3a37e77" @@ -11823,6 +13395,17 @@ react-remove-scroll@2.5.7: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" +react-remove-scroll@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz#2518d2c5112e71ea8928f1082a58459b5c7a2a97" + integrity sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw== + dependencies: + react-remove-scroll-bar "^2.3.7" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.3" + use-sidecar "^1.1.2" + react-select@5.8.0: version "5.8.0" resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.0.tgz#bd5c467a4df223f079dd720be9498076a3f085b5" @@ -11856,6 +13439,14 @@ react-style-singleton@^2.2.1: invariant "^2.2.4" tslib "^2.0.0" +react-style-singleton@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.3.tgz#4265608be69a4d70cfe3047f2c6c88b2c3ace388" + integrity sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ== + dependencies: + get-nonce "^1.0.0" + tslib "^2.0.0" + react-transition-group@^4.3.0, react-transition-group@^4.4.5: version "4.4.5" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" @@ -11906,7 +13497,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.8, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.8, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -11919,7 +13510,7 @@ readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -11928,6 +13519,17 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" +"readable-stream@^3.6.2 || ^4.4.2": + version "4.7.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.7.0.tgz#cedbd8a1146c13dfff8dab14068028d58c15ac91" + integrity sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readable-stream@^4.0.0: version "4.5.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" @@ -11951,6 +13553,11 @@ reading-time@^1.5.0: resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== + recast@^0.23.3: version "0.23.4" resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.4.tgz#ca1bac7bfd3011ea5a28dfecb5df678559fb1ddf" @@ -11994,6 +13601,46 @@ recharts@^2.13.3: tiny-invariant "^1.3.1" victory-vendor "^36.6.8" +recma-build-jsx@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz#c02f29e047e103d2fab2054954e1761b8ea253c4" + integrity sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew== + dependencies: + "@types/estree" "^1.0.0" + estree-util-build-jsx "^3.0.0" + vfile "^6.0.0" + +recma-jsx@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-jsx/-/recma-jsx-1.0.0.tgz#f7bef02e571a49d6ba3efdfda8e2efab48dbe3aa" + integrity sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q== + dependencies: + acorn-jsx "^5.0.0" + estree-util-to-js "^2.0.0" + recma-parse "^1.0.0" + recma-stringify "^1.0.0" + unified "^11.0.0" + +recma-parse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-parse/-/recma-parse-1.0.0.tgz#c351e161bb0ab47d86b92a98a9d891f9b6814b52" + integrity sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ== + dependencies: + "@types/estree" "^1.0.0" + esast-util-from-js "^2.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +recma-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-stringify/-/recma-stringify-1.0.0.tgz#54632030631e0c7546136ff9ef8fde8e7b44f130" + integrity sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g== + dependencies: + "@types/estree" "^1.0.0" + estree-util-to-js "^2.0.0" + unified "^11.0.0" + vfile "^6.0.0" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -12083,6 +13730,15 @@ rehype-external-links@^3.0.0: space-separated-tokens "^2.0.0" unist-util-visit "^5.0.0" +rehype-recma@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rehype-recma/-/rehype-recma-1.0.0.tgz#d68ef6344d05916bd96e25400c6261775411aa76" + integrity sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + hast-util-to-estree "^3.0.0" + rehype-slug@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/rehype-slug/-/rehype-slug-6.0.0.tgz#1d21cf7fc8a83ef874d873c15e6adaee6344eaf1" @@ -12099,63 +13755,63 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== -remark-footnotes@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" - integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== +remark-gfm@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" -remark-gfm@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" - integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-gfm "^2.0.0" - micromark-extension-gfm "^2.0.0" - unified "^10.0.0" - -remark-mdx@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" - integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== - dependencies: - "@babel/core" "7.12.9" - "@babel/helper-plugin-utils" "7.10.4" - "@babel/plugin-proposal-object-rest-spread" "7.12.1" - "@babel/plugin-syntax-jsx" "7.12.1" - "@mdx-js/util" "1.6.22" - is-alphabetical "1.0.4" - remark-parse "8.0.3" - unified "9.2.0" - -remark-parse@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== - dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" +remark-heading-id@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-heading-id/-/remark-heading-id-1.0.1.tgz#5500b8cbc12ba6cc36fc5ccc2a3ff3d6e5cf981e" + integrity sha512-GmJjuCeEkYvwFlvn/Skjc/1Qafj71412gbQnrwUmP/tKskmAf1cMRlZRNoovV+aIvsSRkTb2rCmGv2b9RdoJbQ== + dependencies: + lodash "^4.17.21" + unist-util-visit "^1.4.0" -remark-squeeze-paragraphs@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" - integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== +remark-mdx@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.0.tgz#f979be729ecb35318fa48e2135c1169607a78343" + integrity sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA== + dependencies: + mdast-util-mdx "^3.0.0" + micromark-extension-mdxjs "^3.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@^11.0.0: + version "11.1.1" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.1.tgz#f864dd2947889a11997c0a2667cd6b38f685bca7" + integrity sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== dependencies: - mdast-squeeze-paragraphs "^4.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" renderkid@^3.0.0: version "3.0.0" @@ -12168,16 +13824,21 @@ renderkid@^3.0.0: lodash "^4.17.21" strip-ansi "^6.0.1" -repeat-string@^1.5.4: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + requireindex@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -12209,7 +13870,7 @@ resolve-url-loader@^5.0.0: postcss "^8.2.14" source-map "0.6.1" -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.22.8, resolve@^1.3.2: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.22.8: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -12282,13 +13943,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -sade@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - safe-array-concat@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" @@ -12318,6 +13972,11 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.2.2" is-regex "^1.1.4" +safe-stable-stringify@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" + integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== + "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -12384,7 +14043,7 @@ seek-bzip@^1.0.5: dependencies: commander "^2.8.1" -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -12406,6 +14065,11 @@ semver@^7.3.7, semver@^7.5.4: dependencies: lru-cache "^6.0.0" +semver@^7.3.8: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -12461,6 +14125,11 @@ serve-static@1.16.0: parseurl "~1.3.3" send "0.18.0" +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + set-function-length@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" @@ -12503,7 +14172,7 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.4.0, sha.js@^2.4.8: +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== @@ -12642,6 +14311,31 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" +socket.io-client@^4.5.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.8.1.tgz#1941eca135a5490b94281d0323fe2a35f6f291cb" + integrity sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.6.1" + socket.io-parser "~4.2.4" + +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +sonic-boom@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== + dependencies: + atomic-sleep "^1.0.0" + source-map-js@^1.0.1, source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -12665,21 +14359,16 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.5.0, source-map@^0.5.7: +source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.7.3: +source-map@^0.7.0, source-map@^0.7.3: version "0.7.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - space-separated-tokens@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" @@ -12711,6 +14400,16 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -12721,11 +14420,6 @@ stackframe@^1.3.4: resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -12780,7 +14474,7 @@ stream-http@^3.2.0: readable-stream "^3.6.0" xtend "^4.0.2" -stream-shift@^1.0.0: +stream-shift@^1.0.0, stream-shift@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== @@ -12801,6 +14495,11 @@ streamx@^2.15.0, streamx@^2.18.0: optionalDependencies: bare-events "^2.2.0" +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== + string-argv@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" @@ -12889,6 +14588,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -12959,12 +14666,12 @@ style-loader@^3.3.1: resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== -style-to-object@0.3.0, style-to-object@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" - integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== +style-to-object@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.8.tgz#67a29bca47eaa587db18118d68f9d95955e81292" + integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g== dependencies: - inline-style-parser "0.1.1" + inline-style-parser "0.2.4" styled-jsx@5.1.1: version "5.1.1" @@ -12991,6 +14698,11 @@ sucrase@^3.32.0: pirates "^4.0.1" ts-interface-checker "^0.1.9" +superstruct@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.4.tgz#0adb99a7578bd2f1c526220da6571b2d485d91ca" + integrity sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -13242,6 +14954,13 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== + dependencies: + real-require "^0.1.0" + through2@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -13314,20 +15033,10 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -trim-trailing-lines@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" - integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trough@^2.0.0: version "2.1.0" @@ -13401,16 +15110,16 @@ tsconfig-paths@^4.0.0, tsconfig-paths@^4.1.2, tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tslib@^1.13.0, tslib@^1.8.1: +tslib@1.14.1, tslib@^1.13.0, tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@2, tslib@^2.3.1, tslib@^2.6.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -13529,16 +15238,40 @@ typescript@^5.5.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.2.tgz#c26f023cb0054e657ce04f72583ea2d85f8d0507" integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew== +ua-parser-js@^1.0.37: + version "1.0.40" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.40.tgz#ac6aff4fd8ea3e794a6aa743ec9c2fc29e75b675" + integrity sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew== + ufo@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== +ufo@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" + integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +uint8arrays@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" + integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== + dependencies: + multiformats "^9.4.2" + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -13557,19 +15290,16 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -13598,18 +15328,6 @@ unicorn-magic@^0.1.0: resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== -unified@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - unified@^10.0.0: version "10.1.2" resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" @@ -13623,6 +15341,19 @@ unified@^10.0.0: trough "^2.0.0" vfile "^5.0.0" +unified@^11.0.0: + version "11.0.5" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + unique-string@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" @@ -13630,20 +15361,10 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" -unist-builder@2.0.3, unist-builder@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" - integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-is@^5.0.0: version "5.2.1" @@ -13659,31 +15380,28 @@ unist-util-is@^6.0.0: dependencies: "@types/unist" "^3.0.0" -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== - -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== +unist-util-position-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" + integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== dependencies: - unist-util-visit "^2.0.0" + "@types/unist" "^3.0.0" -unist-util-remove@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" - integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== dependencies: - unist-util-is "^4.0.0" + "@types/unist" "^3.0.0" -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== +unist-util-remove@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-3.1.1.tgz#8bfa181aff916bd32a4ed30b3ed76d0c21c077df" + integrity sha512-kfCqZK5YVY5yEa89tvpl7KnBBHu2c6CzMkqHUrlOqaRgGOMp0sMvwWOVrbAtj03KhovQB7i96Gda72v/EFE0vw== dependencies: - "@types/unist" "^2.0.2" + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" unist-util-stringify-position@^3.0.0: version "3.0.3" @@ -13692,15 +15410,21 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" + "@types/unist" "^3.0.0" -unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: +unist-util-visit-parents@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" + +unist-util-visit-parents@^5.0.0: version "5.1.3" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== @@ -13716,23 +15440,12 @@ unist-util-visit-parents@^6.0.0: "@types/unist" "^3.0.0" unist-util-is "^6.0.0" -unist-util-visit@2.0.3, unist-util-visit@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -unist-util-visit@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" - integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== +unist-util-visit@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.1.1" + unist-util-visit-parents "^2.0.0" unist-util-visit@^5.0.0: version "5.0.0" @@ -13763,6 +15476,20 @@ unplugin@^1.3.1: webpack-sources "^3.2.3" webpack-virtual-modules "^0.6.1" +unstorage@^1.9.0: + version "1.14.4" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.14.4.tgz#620dd68997a3245fca1e04c0171335817525bc3d" + integrity sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg== + dependencies: + anymatch "^3.1.3" + chokidar "^3.6.0" + destr "^2.0.3" + h3 "^1.13.0" + lru-cache "^10.4.3" + node-fetch-native "^1.6.4" + ofetch "^1.4.1" + ufo "^1.5.4" + untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" @@ -13806,6 +15533,13 @@ use-callback-ref@^1.3.0: dependencies: tslib "^2.0.0" +use-callback-ref@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.3.tgz#98d9fab067075841c5b2c6852090d5d0feabe2bf" + integrity sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg== + dependencies: + tslib "^2.0.0" + use-intl@^3.26.4: version "3.26.4" resolved "https://registry.yarnpkg.com/use-intl/-/use-intl-3.26.4.tgz#ec05127ea7f32fb0d3ac46614423d4c8d8576326" @@ -13827,6 +15561,16 @@ use-sidecar@^1.1.2: detect-node-es "^1.1.0" tslib "^2.0.0" +use-sync-external-store@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + +use-sync-external-store@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz#adbc795d8eeb47029963016cefdf89dc799fcebc" + integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw== + usehooks-ts@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/usehooks-ts/-/usehooks-ts-3.1.0.tgz#156119f36efc85f1b1952616c02580f140950eca" @@ -13834,6 +15578,13 @@ usehooks-ts@^3.1.0: dependencies: lodash.debounce "^4.0.8" +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -13860,21 +15611,16 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^9.0.0: +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0, uuid@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== -uvu@^0.5.0: - version "0.5.6" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" - integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== - dependencies: - dequal "^2.0.0" - diff "^5.0.0" - kleur "^4.0.3" - sade "^1.7.3" - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -13888,6 +15634,14 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +valtio@1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" + integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== + dependencies: + proxy-compare "2.5.1" + use-sync-external-store "1.2.0" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -13900,18 +15654,13 @@ vaul@^1.0.0: dependencies: "@radix-ui/react-dialog" "^1.1.1" -vfile-location@^3.0.0, vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== +vfile-matter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/vfile-matter/-/vfile-matter-5.0.0.tgz#4f8d6476a432f9556784a8b538f7da0ba25e053d" + integrity sha512-jhPSqlj8hTSkTXOqyxbUeZAFFVq/iwu/jukcApEqc/7DOidaAth6rDc0Zgg0vWpzUnWkwFP7aK28l6nBmxMqdQ== dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" + vfile "^6.0.0" + yaml "^2.0.0" vfile-message@^3.0.0: version "3.1.4" @@ -13921,15 +15670,13 @@ vfile-message@^3.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" vfile@^5.0.0: version "5.3.7" @@ -13941,6 +15688,14 @@ vfile@^5.0.0: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" +vfile@^6.0.0, vfile@^6.0.1: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + victory-vendor@^36.6.8: version "36.9.2" resolved "https://registry.yarnpkg.com/victory-vendor/-/victory-vendor-36.9.2.tgz#668b02a448fa4ea0f788dbf4228b7e64669ff801" @@ -13961,11 +15716,34 @@ victory-vendor@^36.6.8: d3-time "^3.0.0" d3-timer "^3.0.1" +viem@^2.1.1, viem@^2.23.3: + version "2.23.3" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.23.3.tgz#3b8af9490f8f453a17e849d774bea1b5c992738c" + integrity sha512-ON/Uybteajqxn3iFyhV/6Ybm+QKhcrsVyTZf/9v2w0CvYQIoyJYCfHSsQR9zpsbOGrR7d2p62w6jzb6fqzzacg== + dependencies: + "@noble/curves" "1.8.1" + "@noble/hashes" "1.7.1" + "@scure/bip32" "1.6.2" + "@scure/bip39" "1.5.4" + abitype "1.0.8" + isows "1.0.6" + ox "0.6.7" + ws "8.18.0" + vm-browserify@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +wagmi@^2.14.11: + version "2.14.11" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.14.11.tgz#bfdd479e88bb3907efb412d04b5135a0017d5090" + integrity sha512-Qj79cq+9MAcnKict9QLo60Lc4S2IXVVE94HBwCmczDrFtoM31NxfX4uQP73Elj2fV9lXH4/dw3jlb8eDhlm6iQ== + dependencies: + "@wagmi/connectors" "5.7.7" + "@wagmi/core" "2.16.4" + use-sync-external-store "1.4.0" + watchpack@^2.2.0, watchpack@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" @@ -13981,10 +15759,15 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-namespaces@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" - integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== +"webextension-polyfill@>=0.10.0 <1.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.12.0.tgz#f62c57d2cd42524e9fbdcee494c034cae34a3d69" + integrity sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q== + +webextension-polyfill@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz#ccb28101c910ba8cf955f7e6a263e662d744dbb8" + integrity sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g== webidl-conversions@^3.0.0: version "3.0.1" @@ -14121,6 +15904,11 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2, which-typed-array@^1.1.9: version "1.1.13" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" @@ -14144,6 +15932,15 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -14176,12 +15973,17 @@ write-file-atomic@^2.3.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -ws@^7.3.1: +ws@8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + +ws@^7.3.1, ws@^7.5.1: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== -ws@^8.2.3: +ws@^8.2.3, ws@~8.17.1: version "8.17.1" resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== @@ -14199,11 +16001,21 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== +xmlhttprequest-ssl@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz#e9e8023b3f29ef34b97a859f584c5e6c61418e23" + integrity sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ== + xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -14238,6 +16050,31 @@ yaml@^2.3.4, yaml@~2.4.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" @@ -14261,10 +16098,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== +zustand@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.0.tgz#71f8aaecf185592a3ba2743d7516607361899da9" + integrity sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ== zwitch@^2.0.0: version "2.0.4"