From 1700c1cc479fb9b8bf0e1379a8d3e6d94e3c45f9 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 08:58:31 +0800 Subject: [PATCH 0001/2513] New translations code.json (Chinese Traditional) --- i18n/zh-TW/code.json | 238 +++++++++++++++++++++---------------------- 1 file changed, 119 insertions(+), 119 deletions(-) diff --git a/i18n/zh-TW/code.json b/i18n/zh-TW/code.json index 997b6130223c..bfdd9fccbec5 100644 --- a/i18n/zh-TW/code.json +++ b/i18n/zh-TW/code.json @@ -3,41 +3,41 @@ "message": "{title}" }, "{tagline}": { - "message": "{tagline}" + "message": "歡迎來到 Kaia 文檔" }, "Getting Started": { - "message": "開始使用" + "message": "開始" }, "Node Operators": { - "message": "節點操作員" + "message": "節點操作符" }, "API references": { - "message": "API 參考資料" + "message": "應用程序接口引用" }, "APIs and libraries": { - "message": "API 與函式庫" + "message": "應用程序接口和庫" }, "Got a question? Visit our forum!": { - "message": "有問題嗎?請造訪我們的論壇!" + "message": "有問題?請訪問我們的論壇!" }, "theme.ErrorPageContent.title": { - "message": "此頁面崩潰。", + "message": "該頁面崩潰。", "description": "The title of the fallback page when the page crashed" }, "theme.BackToTopButton.buttonAriaLabel": { - "message": "捲回頂端", + "message": "返回頂部", "description": "The ARIA label for the back to top button" }, "theme.blog.archive.title": { - "message": "存檔", + "message": "檔案", "description": "The page & hero title of the blog archive page" }, "theme.blog.archive.description": { - "message": "存檔", + "message": "檔案", "description": "The page & hero description of the blog archive page" }, "theme.blog.paginator.navAriaLabel": { - "message": "部落格清單頁導覽", + "message": "博客列表頁面導航", "description": "The ARIA label for the blog pagination" }, "theme.blog.paginator.newerEntries": { @@ -49,7 +49,7 @@ "description": "The label used to navigate to the older blog posts page (next page)" }, "theme.blog.post.plurals": { - "message": "一個帖子|{count} 個帖子", + "message": "一個職位|{count} 職位", "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" }, "theme.blog.tagTitle": { @@ -57,11 +57,11 @@ "description": "The title of the page for a blog tag" }, "theme.tags.tagsPageLink": { - "message": "檢視所有標籤", + "message": "查看所有標籤", "description": "The label of the link targeting the tag list page" }, "theme.colorToggle.ariaLabel": { - "message": "在深色和淺色模式之間切換 (目前為 {mode})", + "message": "在暗模式和亮模式之間切換(當前為 {mode})", "description": "The ARIA label for the navbar color mode toggle" }, "theme.colorToggle.ariaLabel.mode.dark": { @@ -69,11 +69,11 @@ "description": "The name for the dark color mode" }, "theme.colorToggle.ariaLabel.mode.light": { - "message": "光模式", + "message": "燈光模式", "description": "The name for the light color mode" }, "theme.blog.post.paginator.navAriaLabel": { - "message": "部落格文章頁面導覽", + "message": "博文頁面導航", "description": "The ARIA label for the blog posts pagination" }, "theme.blog.post.paginator.newerPost": { @@ -81,7 +81,7 @@ "description": "The blog post button label to navigate to the newer/previous post" }, "theme.blog.post.paginator.olderPost": { - "message": "較舊的文章", + "message": "舊版", "description": "The blog post button label to navigate to the older/next post" }, "theme.docs.breadcrumbs.navAriaLabel": { @@ -105,26 +105,26 @@ "description": "The label used to navigate to the next doc" }, "theme.docs.tagDocListPageTitle.nDocsTagged": { - "message": "一個已標籤的文件|{count} 已標籤的文件", + "message": "一個文檔被標記|{count} 文檔被標記", "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" }, "theme.docs.tagDocListPageTitle": { - "message": "{nDocsTagged} 與 \"{tagName}\"", + "message": "{nDocsTagged} 用 \"{tagName}\"", "description": "The title of the page for a docs tag" }, "theme.docs.versionBadge.label": { - "message": "版本: {versionLabel}" + "message": "版本: {versionLabel}" }, "theme.docs.versions.unreleasedVersionLabel": { - "message": "這是 {siteTitle} {versionLabel} 版本的未釋出文件。", + "message": "這是 {siteTitle} {versionLabel} 版本的未發佈文檔。", "description": "The label used to tell the user that he's browsing an unreleased doc version" }, "theme.docs.versions.unmaintainedVersionLabel": { - "message": "這是 {siteTitle} {versionLabel}的說明文件,目前已不再維護。", + "message": "這是 {siteTitle} {versionLabel}的文檔,目前已不再維護。", "description": "The label used to tell the user that he's browsing an unmaintained doc version" }, "theme.docs.versions.latestVersionSuggestionLabel": { - "message": "如需最新文件,請參閱 {latestVersionLink} ({versionLabel})。", + "message": "有關最新文檔,請參見 {latestVersionLink} ({versionLabel})。", "description": "The label used to tell the user to check the latest version" }, "theme.docs.versions.latestVersionLinkLabel": { @@ -132,11 +132,11 @@ "description": "The label used for the latest version suggestion link label" }, "theme.common.editThisPage": { - "message": "編輯此頁面", + "message": "編輯本頁", "description": "The link label to edit the current page" }, "theme.common.headingLinkTitle": { - "message": "直接連結至 {heading}", + "message": "直接鏈接 {heading}", "description": "Title for link to heading" }, "theme.lastUpdated.atDate": { @@ -164,23 +164,23 @@ "description": "The label alongside a tag list" }, "theme.admonition.caution": { - "message": "警告", + "message": "注意事項", "description": "The default label used for the Caution admonition (:::caution)" }, "theme.admonition.danger": { - "message": "危險", + "message": "險", "description": "The default label used for the Danger admonition (:::danger)" }, "theme.admonition.info": { - "message": "資訊", + "message": "信息", "description": "The default label used for the Info admonition (:::info)" }, "theme.admonition.note": { - "message": "注意", + "message": "備註", "description": "The default label used for the Note admonition (:::note)" }, "theme.admonition.tip": { - "message": "提示", + "message": "溫馨提示", "description": "The default label used for the Tip admonition (:::tip)" }, "theme.admonition.warning": { @@ -192,15 +192,15 @@ "description": "The ARIA label for close button of announcement bar" }, "theme.blog.sidebar.navAriaLabel": { - "message": "部落格最新文章導覽", + "message": "博客最新文章導航", "description": "The ARIA label for recent posts in the blog sidebar" }, "theme.CodeBlock.copied": { - "message": "複製", + "message": "複製的", "description": "The copied button label on code blocks" }, "theme.CodeBlock.copyButtonAriaLabel": { - "message": "複製代碼到剪貼簿", + "message": "將代碼複製到剪貼板", "description": "The ARIA label for copy code blocks button" }, "theme.CodeBlock.copy": { @@ -208,15 +208,15 @@ "description": "The copy button label on code blocks" }, "theme.CodeBlock.wordWrapToggle": { - "message": "切換換字", + "message": "切換換行", "description": "The title attribute for toggle word wrapping button of code block lines" }, "theme.DocSidebarItem.expandCategoryAriaLabel": { - "message": "展開側邊列分類 '{label}'", + "message": "擴展側邊欄類別 '{label}'", "description": "The ARIA label to expand the sidebar category" }, "theme.DocSidebarItem.collapseCategoryAriaLabel": { - "message": "折疊側邊欄類別 '{label}'", + "message": "摺疊邊欄類別 '{label}'", "description": "The ARIA label to collapse the sidebar category" }, "theme.NavBar.navAriaLabel": { @@ -228,63 +228,63 @@ "description": "The label for the mobile language switcher dropdown" }, "theme.TOCCollapsible.toggleButtonLabel": { - "message": "在此頁面上", + "message": "在本頁", "description": "The label used by the button on the collapsible TOC component" }, "theme.blog.post.readMore": { - "message": "閱讀更多", + "message": "更多信息", "description": "The label used in blog post item excerpts to link to full blog posts" }, "theme.blog.post.readMoreLabel": { - "message": "閱讀更多關於 {title}", + "message": "更多信息 {title}", "description": "The ARIA label for the link to full blog posts from excerpts" }, "theme.NotFound.p1": { - "message": "我們找不到您要的東西。", + "message": "我們找不到您要找的東西。", "description": "The first paragraph of the 404 page" }, "theme.NotFound.p2": { - "message": "請與連結您原始 URL 的網站擁有者聯絡,讓他們知道他們的連結已損毀。", + "message": "請聯繫將您鏈接到原始 URL 的網站所有者,讓他們知道他們的鏈接已損壞。", "description": "The 2nd paragraph of the 404 page" }, "theme.docs.breadcrumbs.home": { - "message": "首頁", + "message": "主頁", "description": "The ARIA label for the home page in the breadcrumbs" }, "theme.docs.sidebar.collapseButtonTitle": { - "message": "折疊側欄", + "message": "摺疊側邊欄", "description": "The title attribute for collapse button of doc sidebar" }, "theme.docs.sidebar.collapseButtonAriaLabel": { - "message": "折疊側欄", + "message": "摺疊側邊欄", "description": "The title attribute for collapse button of doc sidebar" }, "theme.docs.sidebar.closeSidebarButtonAriaLabel": { - "message": "關閉導覽列", + "message": "關閉導航欄", "description": "The ARIA label for close button of mobile sidebar" }, "theme.blog.post.readingTime.plurals": { - "message": "一分鐘閱讀|{readingTime} 一分鐘閱讀", + "message": "一分鐘讀完{readingTime} 分鐘讀完", "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" }, "theme.docs.sidebar.navAriaLabel": { - "message": "文件側邊欄", + "message": "文檔側邊欄", "description": "The ARIA label for the sidebar navigation" }, "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { - "message": "← 返回主功能表", + "message": "← 返回主菜單", "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" }, "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { - "message": "切換導覽列", + "message": "切換導航欄", "description": "The ARIA label for hamburger menu button of mobile navigation" }, "theme.docs.sidebar.expandButtonTitle": { - "message": "展開側邊欄", + "message": "擴展側邊欄", "description": "The ARIA label and title attribute for expand button of doc sidebar" }, "theme.docs.sidebar.expandButtonAriaLabel": { - "message": "展開側邊欄", + "message": "擴展側邊欄", "description": "The ARIA label and title attribute for expand button of doc sidebar" }, "theme.SearchBar.seeAll": { @@ -295,23 +295,23 @@ "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" }, "theme.SearchPage.existingResultsTitle": { - "message": "搜尋結果為 \"{query}\"", + "message": "搜索結果為 \"{query}\"", "description": "The search page title for non-empty query" }, "theme.SearchPage.emptyResultsTitle": { - "message": "搜尋文件", + "message": "搜索文檔", "description": "The search page title for empty query" }, "theme.SearchPage.inputPlaceholder": { - "message": "在此輸入您的搜尋", + "message": "在此輸入您的搜索", "description": "The placeholder for search page input" }, "theme.SearchPage.inputLabel": { - "message": "搜尋", + "message": "搜索", "description": "The ARIA label for search page input" }, "theme.SearchPage.algoliaLabel": { - "message": "依 Algolia 搜尋", + "message": "按 Algolia 搜索", "description": "The ARIA label for Algolia mention" }, "theme.SearchPage.noResultsText": { @@ -319,11 +319,11 @@ "description": "The paragraph for empty search result" }, "theme.SearchPage.fetchingNewResults": { - "message": "擷取新結果...", + "message": "獲取新結果...", "description": "The paragraph for fetching new search results" }, "theme.SearchBar.label": { - "message": "搜尋", + "message": "搜索", "description": "The ARIA label and placeholder for search button" }, "theme.SearchModal.searchBox.resetButtonTitle": { @@ -339,15 +339,15 @@ "description": "The title for recent searches" }, "theme.SearchModal.startScreen.noRecentSearchesText": { - "message": "沒有最近的搜尋", + "message": "無最近搜索", "description": "The text when no recent searches" }, "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { - "message": "儲存此搜尋", + "message": "保存此搜索", "description": "The label for save recent search button" }, "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { - "message": "從歷史中移除此搜尋", + "message": "從歷史記錄中刪除此搜索", "description": "The label for remove recent search button" }, "theme.SearchModal.startScreen.favoriteSearchesTitle": { @@ -355,15 +355,15 @@ "description": "The title for favorite searches" }, "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { - "message": "將此搜尋從我的最愛移除", + "message": "將此搜索從收藏夾中移除", "description": "The label for remove favorite search button" }, "theme.SearchModal.errorScreen.titleText": { - "message": "無法取得結果", + "message": "無法獲取結果", "description": "The title for error screen of search modal" }, "theme.SearchModal.errorScreen.helpText": { - "message": "您可能需要檢查網路連線。", + "message": "您可能需要檢查網絡連接。", "description": "The help text for error screen of search modal" }, "theme.SearchModal.footer.selectText": { @@ -371,15 +371,15 @@ "description": "The explanatory text of the action for the enter key" }, "theme.SearchModal.footer.selectKeyAriaLabel": { - "message": "Enter 鍵", + "message": "回車鍵", "description": "The ARIA label for the Enter key button that makes the selection" }, "theme.SearchModal.footer.navigateText": { - "message": "導航", + "message": "瀏覽", "description": "The explanatory text of the action for the Arrow up and Arrow down key" }, "theme.SearchModal.footer.navigateUpKeyAriaLabel": { - "message": "向上箭頭", + "message": "箭頭向上", "description": "The ARIA label for the Arrow up key button that makes the navigation" }, "theme.SearchModal.footer.navigateDownKeyAriaLabel": { @@ -395,35 +395,35 @@ "description": "The ARIA label for the Escape key button that close the modal" }, "theme.SearchModal.footer.searchByText": { - "message": "搜尋方式", + "message": "搜索方式", "description": "The text explain that the search is making by Algolia" }, "theme.SearchModal.noResultsScreen.noResultsText": { - "message": "沒有結果", + "message": "無結果", "description": "The text explains that there are no results for the following search" }, "theme.SearchModal.noResultsScreen.suggestedQueryText": { - "message": "試著搜尋", + "message": "嘗試搜索", "description": "The text for the suggested query when no results are found for the following search" }, "theme.SearchModal.noResultsScreen.reportMissingResultsText": { - "message": "相信這個查詢應該會傳回結果嗎?", + "message": "您認為這個查詢會返回結果嗎?", "description": "The text for the question where the user thinks there are missing results" }, "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { - "message": "讓我們知道。", + "message": "請告訴我們。", "description": "The text for the link to report missing results" }, "theme.SearchModal.placeholder": { - "message": "搜尋文件", + "message": "搜索文檔", "description": "The placeholder of the input of the DocSearch pop-up modal" }, "theme.CodeBlock.expanded": { - "message": "已擴充", + "message": "已擴展", "description": "The expanded button label on code blocks" }, "theme.CodeBlock.expandButtonAriaLabel": { - "message": "將程式碼展開至全螢幕", + "message": "將代碼擴展到全屏", "description": "The ARIA label for expand code blocks button" }, "theme.CodeBlock.expand": { @@ -431,7 +431,7 @@ "description": "The expand button label on code blocks" }, "theme.CodeBlock.exitButtonAriaLabel": { - "message": "退出擴充檢視", + "message": "退出擴展視圖", "description": "The ARIA label for exit expanded view button" }, "theme.ErrorPageContent.tryAgain": { @@ -447,30 +447,30 @@ "description": "The title of the tag list page" }, "theme.unlistedContent.title": { - "message": "未列出頁面", + "message": "未列名頁面", "description": "The unlisted content banner title" }, "theme.unlistedContent.message": { - "message": "此頁面未列出。搜尋引擎不會索引它,只有擁有直接連結的使用者才能存取。", + "message": "本頁面未列入列表。搜索引擎不會將其收錄,只有擁有直接鏈接的用戶才能訪問。", "description": "The unlisted content banner message" }, "Kaia Overview": { - "message": "Kaia 概觀" + "message": "卡婭概述" }, "Want to know about Kaia?": { - "message": "想要瞭解 Kaia?" + "message": "想了解 Kaia 的情況嗎?" }, "Want to start building on Kaia?": { - "message": "想要在 Kaia 上開始建構嗎?" + "message": "想要在 Kaia 上開始建設?" }, "Instructions on running Kaia's nodes": { - "message": "執行 Kaia 節點的說明" + "message": "運行 Kaia 節點的說明" }, "Kaia Developer Hub": { "message": "Kaia 開發人員中心" }, "Kaia's Developer portal": { - "message": "Kaia 的開發人員入口網站" + "message": "Kaia 的開發者門戶網站" }, "Kaia Developer Forum": { "message": "Kaia 開發人員論壇" @@ -488,15 +488,15 @@ "description": "The title of the authors page" }, "theme.blog.authorsList.viewAll": { - "message": "檢視所有作者", + "message": "查看所有作者", "description": "The label of the link targeting the blog authors page" }, "theme.contentVisibility.unlistedBanner.title": { - "message": "未列出頁面", + "message": "未列名頁面", "description": "The unlisted content banner title" }, "theme.contentVisibility.unlistedBanner.message": { - "message": "此頁面未列出。搜尋引擎不會索引它,只有擁有直接連結的使用者才能存取。", + "message": "本頁面未列入列表。搜索引擎不會將其收錄,只有擁有直接鏈接的用戶才能訪問。", "description": "The unlisted content banner message" }, "theme.contentVisibility.draftBanner.title": { @@ -504,129 +504,129 @@ "description": "The draft content banner title" }, "theme.contentVisibility.draftBanner.message": { - "message": "此頁面為草稿。它只會在開發版本中顯示,而不會出現在生產版本中。", + "message": "本頁為草稿。它將只在開發階段可見,而不會出現在生產版本中。", "description": "The draft content banner message" }, "disclaimer.message": { - "message": "本頁面使用英文機器翻譯,可能存在錯誤或語言不清。如需最準確的資訊,請參閱英文原文。由於更新頻繁,有些內容可能是英文原文。請加入我們在 Crowdin 上的努力,幫助我們改善本頁的翻譯。", + "message": "本頁面使用機器翻譯自英語,可能包含錯誤或不清楚的語言。如需最準確的信息,請參閱英文原文。由於更新頻繁,部分內容可能與英文原文有出入。請加入我們在 Crowdin 上的努力,幫助我們改進本頁面的翻譯。", "description": "Machine translation disclaimer for non-English documentation pages" }, "JSON-RPC API Reference": { - "message": "JSON-RPC API Reference" + "message": "JSON-RPC API 參考" }, "Discover and Engage with Kaia's JSON-RPC APIs": { - "message": "Discover and Engage with Kaia's JSON-RPC APIs" + "message": "發現並使用 Kaia 的 JSON-RPC API" }, "Unlock Kaia's full potential with our interactive API documentation. Test API calls directly in the docs, explore detailed request and response examples, and generate code snippets in curl, Python, Node.js, and Java. Whether developing new applications or integrating with existing systems, our comprehensive API reference provides the tools for efficient development on the Kaia platform.": { - "message": "Unlock Kaia's full potential with our interactive API documentation. Test API calls directly in the docs, explore detailed request and response examples, and generate code snippets in curl, Python, Node.js, and Java. Whether developing new applications or integrating with existing systems, our comprehensive API reference provides the tools for efficient development on the Kaia platform." + "message": "通過我們的交互式 API 文檔,充分挖掘 Kaia 的潛力。直接在文檔中測試 API 調用,探索詳細的請求和響應示例,並生成 curl、Python、Node.js 和 Java 代碼片段。無論是開發新的應用程序還是與現有系統集成,我們全面的 API 參考資料都為在 Kaia 平臺上進行高效開發提供了工具。" }, "Get started with Kaia's JSON RPC APIs": { - "message": "Get started with Kaia's JSON RPC APIs" + "message": "開始使用 Kaia 的 JSON RPC API" }, "homepage.favorites.gettingStarted.title": { - "message": "Getting Started", + "message": "開始使用", "description": "Title for Getting Started guide" }, "homepage.favorites.gettingStarted.description": { - "message": "Deploy your first smart contract using Hardhat.", + "message": "使用 Hardhat 部署您的第一個智能合約。", "description": "Description for Getting Started guide" }, "homepage.favorites.metamask.title": { - "message": "MetaMask Guide", + "message": "MetaMask指南", "description": "Title for MetaMask guide" }, "homepage.favorites.metamask.description": { - "message": "Connect MetaMask to Kaia.", + "message": "將 MetaMask 連接到 Kaia。", "description": "Description for MetaMask guide" }, "homepage.favorites.snapshot.title": { - "message": "Node Snapshot Guide", + "message": "節點快照指南", "description": "Title for Node Snapshot guide" }, "homepage.favorites.snapshot.description": { - "message": "Use Chaindata Snapshots.", + "message": "使用 Chaindata 快照。", "description": "Description for Node Snapshot guide" }, "homepage.favorites.rpc.title": { - "message": "Public JSON RPC Endpoints", + "message": "公共 JSON RPC 端點", "description": "Title for Public JSON RPC Endpoints" }, "homepage.favorites.rpc.description": { - "message": "Build and test your products without running your own node.", + "message": "無需運行自己的節點,即可構建和測試您的產品。", "description": "Description for Public JSON RPC Endpoints" }, "homepage.favorites.wallets.title": { - "message": "Wallets", + "message": "錢包", "description": "Title for Wallets section" }, "homepage.favorites.wallets.description": { - "message": "Integrate and secure digital assets seamlessly.", + "message": "無縫整合數字資產並確保其安全。", "description": "Description for Wallets section" }, "homepage.favorites.indexers.title": { - "message": "Indexers", + "message": "索引", "description": "Title for Indexers section" }, "homepage.favorites.indexers.description": { - "message": "Query and index blockchain data for efficient dApp performance.", + "message": "查詢和索引區塊鏈數據,提高 dApp 性能。", "description": "Description for Indexers section" }, "homepage.favorites.guides.title": { - "message": "Popular Guides", + "message": "熱門指南", "description": "Title for the Popular Guides section" }, "homepage.favorites.guides.viewMore": { - "message": "View More Guides", + "message": "查看更多指南", "description": "Link text to view more guides" }, "homepage.favorites.resources.title": { - "message": "Popular Resources", + "message": "熱門資源", "description": "Title for the Popular Resources section" }, "homepage.favorites.resources.viewMore": { - "message": "View More Resources", + "message": "查看更多資源", "description": "Link text to view more resources" }, "DApp Developers": { - "message": "DApp Developers" + "message": "dApp 開發者" }, "API References": { - "message": "API References" + "message": "API 參考:" }, "homepage.sdk.ethersjs.name": { - "message": "Ethers.js Extension", + "message": "Ethers.js 擴展", "description": "Name of the Ethers.js Extension SDK" }, "homepage.sdk.web3js.name": { - "message": "Web3.js Extension", + "message": "Web3.js 擴展", "description": "Name of the Web3.js Extension SDK" }, "homepage.sdk.web3j.name": { - "message": "Web3j Extension", + "message": "Web3j 擴展", "description": "Name of the Web3j Extension SDK" }, "homepage.sdk.web3py.name": { - "message": "Web3.py Extension", + "message": "Web3.py 擴展", "description": "Name of the Web3.py Extension SDK" }, "homepage.sdk.section.title": { - "message": "SDK Documentation", + "message": "SDK文檔", "description": "Title of the SDK documentation section" }, "homepage.sdk.section.heading": { - "message": "Build freely with tools tailored for your language.", + "message": "使用專為您的語言定製的工具自由構建。", "description": "Main heading of the SDK section" }, "homepage.sdk.section.description": { - "message": "Seamlessly integrate with Kaia Network using our enhanced SDKs for JavaScript, Java, Python and more. Built on trusted foundations like Ethers, Web3.js, Web3j, and Web3.py, our libraries give you the power to submit transactions, read smart contracts, and develop complex applications with extended functionality - all in your preferred programming language.", + "message": "使用我們增強的 JavaScript、Java、Python 等 SDK,與 Kaia Network 無縫集成。我們的庫建立在 Ethers、Web3.js、Web3j 和 Web3.py 等值得信賴的基礎之上,可讓您使用自己喜歡的編程語言提交交易、讀取智能合約並開發具有擴展功能的複雜應用程序。", "description": "Description of Kaia Network's SDK offerings" }, "homepage.sdk.section.viewMore": { - "message": "View More SDKs", + "message": "查看更多 SDK", "description": "Link text to view additional SDKs" }, "theme.blog.author.noPosts": { - "message": "This author has not written any posts yet.", + "message": "該作者尚未發表任何文章。", "description": "The text for authors with 0 blog post" } } From 3e3b2f556c55ed28ee83898d3fbd7b65f8fba6d8 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 08:58:32 +0800 Subject: [PATCH 0002/2513] New translations options.json (Chinese Traditional) --- i18n/zh-TW/docusaurus-plugin-content-blog/options.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/zh-TW/docusaurus-plugin-content-blog/options.json b/i18n/zh-TW/docusaurus-plugin-content-blog/options.json index c03dfd1f78ec..5c5765a41fab 100644 --- a/i18n/zh-TW/docusaurus-plugin-content-blog/options.json +++ b/i18n/zh-TW/docusaurus-plugin-content-blog/options.json @@ -1,10 +1,10 @@ { "title": { - "message": "部落格", + "message": "博客", "description": "The title for the blog used in SEO" }, "description": { - "message": "部落格", + "message": "博客", "description": "The description for the blog used in SEO" }, "sidebar.title": { From 8ad4783a1869415bc07515cde6974ca8430e9364 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 08:58:33 +0800 Subject: [PATCH 0003/2513] New translations current.json (Chinese Traditional) --- .../current.json | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current.json b/i18n/zh-TW/docusaurus-plugin-content-docs/current.json index ee68fcf2492f..c5f8707215d3 100644 --- a/i18n/zh-TW/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current.json @@ -1,6 +1,6 @@ { "version.label": { - "message": "當前", + "message": "當前版本", "description": "The label for version current" }, "sidebar.learnSidebar.category.Transactions": { @@ -12,27 +12,27 @@ "description": "The label for category Computation in sidebar learnSidebar" }, "sidebar.buildSidebar.category.Get Started": { - "message": "開始使用", + "message": "開始", "description": "The label for category Get Started in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Account Basics": { - "message": "帳戶基本資料", + "message": "賬戶基礎知識", "description": "The label for category Account Basics in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Smart Contracts": { - "message": "智慧型契約", + "message": "智能合約", "description": "The label for category Smart Contracts in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Deploy Smart Contracts": { - "message": "部署智慧型契約", + "message": "部署智能合約", "description": "The label for category Deploy Smart Contracts in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Sample Contracts": { - "message": "合約範本", + "message": "合同樣本", "description": "The label for category Sample Contracts in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Tutorials": { - "message": "教學", + "message": "教程", "description": "The label for category Tutorials in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Tools": { @@ -40,11 +40,11 @@ "description": "The label for category Tools in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Wallets": { - "message": "皮夾", + "message": "錢包", "description": "The label for category Wallets in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Wallet Libraries": { - "message": "錢包庫", + "message": "錢包圖書館", "description": "The label for category Wallet Libraries in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Oracles": { @@ -60,7 +60,7 @@ "description": "The label for category Cross-chain in sidebar buildSidebar" }, "sidebar.buildSidebar.category.Block Explorers": { - "message": "積木探索者", + "message": "積木探險家", "description": "The label for category Block Explorers in sidebar buildSidebar" }, "sidebar.nodeSidebar.category.Endpoint Node": { @@ -68,7 +68,7 @@ "description": "The label for category Endpoint Node in sidebar nodeSidebar" }, "sidebar.nodeSidebar.category.Core Cell": { - "message": "核心細胞", + "message": "核心單元", "description": "The label for category Core Cell in sidebar nodeSidebar" }, "sidebar.nodeSidebar.category.Install Core Cell": { @@ -80,27 +80,27 @@ "description": "The label for category Service Chain in sidebar nodeSidebar" }, "sidebar.nodeSidebar.category.Quick Start": { - "message": "快速啟動", + "message": "快速入門", "description": "The label for category Quick Start in sidebar nodeSidebar" }, "sidebar.nodeSidebar.category.Configure Service Chain": { - "message": "設定服務鏈", + "message": "配置服務鏈", "description": "The label for category Configure Service Chain in sidebar nodeSidebar" }, "sidebar.nodeSidebar.category.Node Package Downloads": { - "message": "Node 套件下載", + "message": "節點軟件包下載", "description": "The label for category Node Package Downloads in sidebar nodeSidebar" }, "sidebar.refSidebar.category.RPC API Reference": { - "message": "RPC API 參考資料", + "message": "RPC API 參考", "description": "The label for category RPC API Reference in sidebar refSidebar" }, "sidebar.refSidebar.category.SDKs and Libraries": { - "message": "SDK 和程式庫", + "message": "SDK 和庫", "description": "The label for category SDKs and Libraries in sidebar refSidebar" }, "sidebar.refSidebar.category.API References": { - "message": "API 參考資料", + "message": "應用程序接口參考", "description": "The label for category API References in sidebar refSidebar" }, "sidebar.refSidebar.category.caver.wallet": { @@ -116,7 +116,7 @@ "description": "The label for category caver.rpc in sidebar refSidebar" }, "sidebar.refSidebar.link.API References": { - "message": "API 參考資料", + "message": "應用程序接口參考", "description": "The label for link API References in sidebar refSidebar, linking to https://javadoc.io/doc/com.klaytn.caver/core/" }, "sidebar.learnSidebar.category.Transaction Fees": { @@ -124,7 +124,7 @@ "description": "The label for category Transaction Fees in sidebar learnSidebar" }, "sidebar.buildSidebar.category.Verify Smart Contracts": { - "message": "驗證智慧型契約", + "message": "驗證智能合約", "description": "The label for category Verify Smart Contracts in sidebar buildSidebar" }, "sidebar.refSidebar.category.caver.kct": { @@ -132,11 +132,11 @@ "description": "The label for category caver.kct in sidebar refSidebar" }, "sidebar.learnSidebar.category.Data Management": { - "message": "資料管理", + "message": "數據管理", "description": "The label for category Data Management in sidebar learnSidebar" }, "sidebar.learnSidebar.category.Governance": { - "message": "治理", + "message": "管理", "description": "The label for category Governance in sidebar learnSidebar" }, "sidebar.learnSidebar.category.Node Quick Reference": { @@ -176,11 +176,11 @@ "description": "The label for category ethers-ext < v1.0.1 in sidebar refSidebar" }, "sidebar.refSidebar.category.Account Management": { - "message": "帳戶管理", + "message": "賬戶管理", "description": "The label for category Account Management in sidebar refSidebar" }, "sidebar.refSidebar.category.Account Key": { - "message": "帳戶鑰匙", + "message": "賬戶密鑰", "description": "The label for category Account Key in sidebar refSidebar" }, "sidebar.refSidebar.category.Sign Transaction": { @@ -188,11 +188,11 @@ "description": "The label for category Sign Transaction in sidebar refSidebar" }, "sidebar.refSidebar.category.Sign Message": { - "message": "標誌訊息", + "message": "標誌信息", "description": "The label for category Sign Message in sidebar refSidebar" }, "sidebar.refSidebar.category.keystore": { - "message": "keystore", + "message": "鑰匙庫", "description": "The label for category keystore in sidebar refSidebar" }, "sidebar.refSidebar.category.Basic Transaction": { @@ -200,11 +200,11 @@ "description": "The label for category Basic Transaction in sidebar refSidebar" }, "sidebar.refSidebar.category.Fee Delegated Transaction": { - "message": "授權交易費用", + "message": "收費 委託交易", "description": "The label for category Fee Delegated Transaction in sidebar refSidebar" }, "sidebar.refSidebar.category.Smart Contract": { - "message": "智慧型契約", + "message": "智能合約", "description": "The label for category Smart Contract in sidebar refSidebar" }, "sidebar.refSidebar.category.ethers-ext": { @@ -216,7 +216,7 @@ "description": "The label for category v5 in sidebar refSidebar" }, "sidebar.refSidebar.category.Utils": { - "message": "工具", + "message": "實用工具", "description": "The label for category Utils in sidebar refSidebar" }, "sidebar.refSidebar.category.v6": { @@ -232,7 +232,7 @@ "description": "The label for category web3j-ext in sidebar refSidebar" }, "sidebar.refSidebar.category.Keystore": { - "message": "鑰匙店", + "message": "鑰匙存儲", "description": "The label for category Keystore in sidebar refSidebar" }, "sidebar.refSidebar.category.web3py-ext": { @@ -244,7 +244,7 @@ "description": "The label for category caver-js in sidebar refSidebar" }, "sidebar.refSidebar.category.caver-java": { - "message": "岩洞-Java", + "message": "caver-java", "description": "The label for category caver-java in sidebar refSidebar" }, "sidebar.refSidebar.category.Node Quick Reference": { @@ -256,23 +256,23 @@ "description": "The label for category Transition to Kaia in sidebar refSidebar" }, "sidebar.refSidebar.doc.Getting-Started": { - "message": "開始使用", + "message": "入門", "description": "The label for the doc item Getting-Started in sidebar refSidebar, linking to the doc references/sdk/web3py-ext/getting-started" }, "sidebar.buildSidebar.category.Hardware Wallets": { - "message": "Hardware Wallets", + "message": "硬件錢包", "description": "The label for category Hardware Wallets in sidebar buildSidebar" }, "sidebar.miniDappSidebar.category.Build Mini dApps on LINE with Unity": { - "message": "Build Mini dApps on LINE with Unity", + "message": "使用 Unity 在 LINE 上構建迷你 dApps", "description": "The label for category Build Mini dApps on LINE with Unity in sidebar miniDappSidebar" }, "sidebar.miniDappSidebar.category.Node Quick Reference": { - "message": "Node Quick Reference", + "message": "節點快速參考", "description": "The label for category Node Quick Reference in sidebar miniDappSidebar" }, "sidebar.miniDappSidebar.category.Transition to Kaia": { - "message": "Transition to Kaia", + "message": "過渡到 Kaia", "description": "The label for category Transition to Kaia in sidebar miniDappSidebar" } } From 383f03ea46cbd0b4f77ecdcf4094f10db6976b79 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 08:58:35 +0800 Subject: [PATCH 0004/2513] New translations footer.json (Chinese Traditional) --- i18n/zh-TW/docusaurus-theme-classic/footer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/zh-TW/docusaurus-theme-classic/footer.json b/i18n/zh-TW/docusaurus-theme-classic/footer.json index 7ca3e734eadb..d05b80728e3a 100644 --- a/i18n/zh-TW/docusaurus-theme-classic/footer.json +++ b/i18n/zh-TW/docusaurus-theme-classic/footer.json @@ -8,11 +8,11 @@ "description": "The title of the footer links column with title=Community in the footer" }, "link.title.More": { - "message": "更多資訊", + "message": "更多信息", "description": "The title of the footer links column with title=More in the footer" }, "link.title.Legal": { - "message": "法律條款", + "message": "法律", "description": "The title of the footer links column with title=Legal in the footer" }, "link.item.label.Kaia Developer Hub": { @@ -52,7 +52,7 @@ "description": "The label of footer link with label=Terms of Use linking to https://docs.kaia.io/misc/terms-of-use/" }, "link.item.label.Open Source": { - "message": "開放原始碼", + "message": "開放源代碼", "description": "The label of footer link with label=Open Source linking to https://docs.kaia.io/misc/opensource/" }, "copyright": { From 9ce6209b45f701f8c1eac79ced3e0a77039ebf11 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 08:58:36 +0800 Subject: [PATCH 0005/2513] New translations navbar.json (Chinese Traditional) --- .../docusaurus-theme-classic/navbar.json | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/i18n/zh-TW/docusaurus-theme-classic/navbar.json b/i18n/zh-TW/docusaurus-theme-classic/navbar.json index 195566945e03..206784c32a19 100644 --- a/i18n/zh-TW/docusaurus-theme-classic/navbar.json +++ b/i18n/zh-TW/docusaurus-theme-classic/navbar.json @@ -4,7 +4,7 @@ "description": "The title in the navbar" }, "logo.alt": { - "message": "Kaia 標誌", + "message": "卡伊婭標誌", "description": "The alt text of navbar logo" }, "item.label.Learn": { @@ -12,7 +12,7 @@ "description": "Navbar item with label Learn" }, "item.label.Build": { - "message": "建立", + "message": "建設", "description": "Navbar item with label Build" }, "item.label.Nodes": { @@ -24,83 +24,83 @@ "description": "Navbar item with label References" }, "item.label.Mini dApps": { - "message": "Mini dApps", + "message": "迷你dApps", "description": "Navbar item with label Mini dApps" }, "item.label.Why Kaia": { - "message": "Why Kaia", + "message": "為什麼選擇 Kaia", "description": "Navbar item with label Why Kaia" }, "item.label.Accounts": { - "message": "Accounts", + "message": "帳戶", "description": "Navbar item with label Accounts" }, "item.label.Consensus Mechanism": { - "message": "Consensus Mechanism", + "message": "共識機制", "description": "Navbar item with label Consensus Mechanism" }, "item.label.Kaia Native Token": { - "message": "Kaia Native Token", + "message": "Kaia 原生代幣", "description": "Navbar item with label Kaia Native Token" }, "item.label.Token Economy": { - "message": "Token Economy", + "message": "代幣經濟", "description": "Navbar item with label Token Economy" }, "item.label.Deploy Your First Smart Contract": { - "message": "Deploy Your First Smart Contract", + "message": "部署您的首個智能合約", "description": "Navbar item with label Deploy Your First Smart Contract" }, "item.label.Get Testnet KAIA": { - "message": "Get Testnet KAIA", + "message": "獲取測試網 KAIA", "description": "Navbar item with label Get Testnet KAIA" }, "item.label.Build Fee Delegation Example": { - "message": "Build Fee Delegation Example", + "message": "建設費委託示例", "description": "Navbar item with label Build Fee Delegation Example" }, "item.label.Verify Smart Contracts": { - "message": "Verify Smart Contracts", + "message": "驗證智能合約", "description": "Navbar item with label Verify Smart Contracts" }, "item.label.Connect MetaMask to Kaia": { - "message": "Connect MetaMask to Kaia", + "message": "將 MetaMask 連接到 Kaia", "description": "Navbar item with label Connect MetaMask to Kaia" }, "item.label.Install Endpoint Nodes": { - "message": "Install Endpoint Nodes", + "message": "安裝端點節點", "description": "Navbar item with label Install Endpoint Nodes" }, "item.label.Download Node Packages": { - "message": "Download Node Packages", + "message": "下載節點軟件包", "description": "Navbar item with label Download Node Packages" }, "item.label.Node Quick Reference": { - "message": "Node Quick Reference", + "message": "節點快速參考", "description": "Navbar item with label Node Quick Reference" }, "item.label.Use Chaindata Snapshots": { - "message": "Use Chaindata Snapshots", + "message": "使用 Chaindata 快照。", "description": "Navbar item with label Use Chaindata Snapshots" }, "item.label.Public RPC Endpoints": { - "message": "Public RPC Endpoints", + "message": "公共 RPC 端點", "description": "Navbar item with label Public RPC Endpoints" }, "item.label.RPC API References": { - "message": "RPC API References", + "message": "RPC API 參考", "description": "Navbar item with label RPC API References" }, "item.label.Web3.js Extension": { - "message": "Web3.js Extension", + "message": "Web3.js 擴展", "description": "Navbar item with label Web3.js Extension" }, "item.label.Ethers.js Extension": { - "message": "Ethers.js Extension", + "message": "Ethers.js 擴展", "description": "Navbar item with label Ethers.js Extension" }, "item.label.Contract Addresses": { - "message": "Contract Addresses", + "message": "合約地址", "description": "Navbar item with label Contract Addresses" } } From 59f2b6af8afe0e583fbf2e496f3f63d5dda1f2cd Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:31 +0800 Subject: [PATCH 0006/2513] New translations account.md (Chinese Simplified) --- .../build/get-started/account/account.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/account.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/account.md index 560c1df4f89b..d3d8c391dfbe 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/account.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/account.md @@ -1,12 +1,12 @@ -# 账户基础知识 +# 賬戶基礎知識 -**警告**\*:记住您的密码。 如果您丢失了账户密码,您将无法访问该账户。 **这里没有** _**忘记密码**_ \*\*选项。 永远不要忘记。 +**警告**\*:記住您的密碼。 如果您丟失了賬戶密碼,您將無法訪問該賬戶。 **這裡沒有** _**忘記密碼**_ \*\*選項。 永遠不要忘記。 -Kaia 为开发人员提供了两个方便的命令行工具:"ken "和 "JavaScript 控制台",用于管理账户。 请注意,不支持以未加密格式导出私人密钥。 +Kaia 為開發人員提供了兩個方便的命令行工具:"ken "和 "JavaScript 控制檯",用於管理賬戶。 請注意,不支持以未加密格式導出私人密鑰。 ## ken -Kaia 端点节点二进制程序 `ken` 通过 `account` 命令提供账户管理。 通过命令 `account` 可以创建新账户、列出所有现有账户、将私钥导入新账户、迁移到最新的密钥格式以及更改密码。 +Kaia 端點節點二進制程序 `ken` 通過 `account` 命令提供賬戶管理。 通過命令 `account` 可以創建新賬戶、列出所有現有賬戶、將私鑰導入新賬戶、遷移到最新的密鑰格式以及更改密碼。 ### 使用方法 @@ -27,7 +27,7 @@ COMMANDS: ... ``` -你可以通过 `ken account --help` 获取子命令的信息。 +你可以通過 `ken account --help` 獲取子命令的信息。 ```text $ ken account list --help @@ -44,23 +44,23 @@ DATABASE OPTIONS: --db.no-partitioning Disable partitioned databases for persistent storage ``` -### 数据目录 +### 數據目錄 -密钥存储文件存储在`/keystore`下。 您可以按如下方式指定数据目录。 强烈建议在执行 "ken account "命令时使用"--datadir "选项。 让数据目录指向在`kend.conf`中设置的`DATA_DIR`,以便与端点节点无缝共享账户。 +密鑰存儲文件存儲在`/keystore`下。 您可以按如下方式指定數據目錄。 強烈建議在執行 "ken account "命令時使用"--datadir "選項。 讓數據目錄指向在`kend.conf`中設置的`DATA_DIR`,以便與端點節點無縫共享賬戶。 ```bash $ ken account new --datadir $ ken account new --datadir "~/kend_home" ``` -如果未指定数据目录,默认位置如下。 +如果未指定數據目錄,默認位置如下。 - Mac: `~/Library/KEN` - Linux: `~/.ken` -## JavaScript 控制台 +## JavaScript 控制檯 -要连接 JavaScript 控制台,EN 必须处于运行状态。 更多信息,请参阅 [启动 EN](./../smart-contracts/deploy/ken.md)。 启动 EN 并连接到控制台,如下所示。 +要連接 JavaScript 控制檯,EN 必須處於運行狀態。 更多信息,請參閱 [啟動 EN](./../smart-contracts/deploy/ken.md)。 啟動 EN 並連接到控制檯,如下所示。 ### 使用方法 @@ -80,7 +80,7 @@ instance:Kaia/vX.X.X/XXXX-XXXX/goX.X.X **命令** -输入 `personal` 或 `kaia` 可获得可用功能列表。 在本教程中,我们将访问以下函数。 +輸入 `personal` 或 `kaia` 可獲得可用功能列表。 在本教程中,我們將訪問以下函數。 ```bash > personal.newAccount() @@ -90,6 +90,6 @@ instance:Kaia/vX.X.X/XXXX-XXXX/goX.X.X > kaia.getBalance() ``` -### 数据目录 +### 數據目錄 -创建账户时,密钥存储文件存储在`/keystore` 下。 ``是在 "kend.conf "中设置的 "DATA_DIR"。 如果按照快速入门指南中的示例,则必须是 `~/kend_home`。 +創建賬戶時,密鑰存儲文件存儲在`/keystore` 下。 ``是在 "kend.conf "中設置的 "DATA_DIR"。 如果按照快速入門指南中的示例,則必須是 `~/kend_home`。 From 34a8ce08e733f84738086770d3cd8635bf8497cd Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:33 +0800 Subject: [PATCH 0007/2513] New translations creating-accounts.md (Chinese Simplified) --- .../get-started/account/creating-accounts.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md index d36c26ebc0d7..df6c10e94df8 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md @@ -1,16 +1,16 @@ -# 创建账户 +# 創建賬戶 -## 创建新账户 +## 創建新賬戶 -这将创建一个新账户,并在屏幕上打印地址。 在数据目录下创建密钥存储文件。 +這將創建一個新賬戶,並在屏幕上打印地址。 在數據目錄下創建密鑰存儲文件。 -**Kaia密钥存储文件** +**Kaia密鑰存儲文件** -创建账户时,会创建一个密钥存储文件。 密钥存储文件是您唯一的 Kaia 私钥的加密版本,您将用它来签署您的交易。 密钥存储文件名的格式如下: +創建賬戶時,會創建一個密鑰存儲文件。 密鑰存儲文件是您唯一的 Kaia 私鑰的加密版本,您將用它來簽署您的交易。 密鑰存儲文件名的格式如下: - `UTC---
` -在 Kaia 节点之间传输整个目录或其中的单个密钥存储文件是安全的。 请注意,如果您从其他节点向您的节点添加密钥,账户的顺序可能会改变。 因此,请确保不要在脚本或代码片段中依赖索引。 +在 Kaia 節點之間傳輸整個目錄或其中的單個密鑰存儲文件是安全的。 請注意,如果您從其他節點向您的節點添加密鑰,賬戶的順序可能會改變。 因此,請確保不要在腳本或代碼片段中依賴索引。 ### ken @@ -20,7 +20,7 @@ $ ken account new --password --datadir $ ken account new --password <(echo $mypassword) --datadir ``` -**`WARNING`**:请注意,使用密码文件仅供测试之用;将密码保存在文件中或以任何其他方式暴露密码都不是好主意。 如果在密码文件中使用密码标志,最好确保该文件除了你之外,任何人都无法读取,甚至无法列出。 您可以通过以下方式实现这一目标 +**`WARNING`**:請注意,使用密碼文件僅供測試之用;將密碼保存在文件中或以任何其他方式暴露密碼都不是好主意。 如果在密碼文件中使用密碼標誌,最好確保該文件除了你之外,任何人都無法讀取,甚至無法列出。 您可以通過以下方式實現這一目標 ```bash $ touch /path/to/password @@ -30,23 +30,23 @@ I type my pass here ^D ``` -### JavaScript 控制台 +### JavaScript 控制檯 -在控制台中,您可以调用以下函数来创建账户: +在控制檯中,您可以調用以下函數來創建賬戶: ```javascript > personal.newAccount("passphrase") ``` -账户以加密格式保存。 您**必须**记住这个密码,以便将来解锁您的账户。 +賬戶以加密格式保存。 您**必須**記住這個密碼,以便將來解鎖您的賬戶。 -## 导入账户 +## 導入賬戶 -您可以使用密钥文件导入账户。 密钥文件假定包含未加密的私人密钥,以十六进制编码的 EC 原始字节形式表示。 简单地说,它是一个不带前缀 "0x "的纯文本私人密钥。 +您可以使用密鑰文件導入賬戶。 密鑰文件假定包含未加密的私人密鑰,以十六進制編碼的 EC 原始字節形式表示。 簡單地說,它是一個不帶前綴 "0x "的純文本私人密鑰。 -从给定的密钥文件中导入未加密的私钥,创建新账户,在数据目录下生成密钥存储文件,并在控制台中打印地址。 您必须记住密码,以便将来解锁账户。 +從給定的密鑰文件中導入未加密的私鑰,創建新賬戶,在數據目錄下生成密鑰存儲文件,並在控制檯中打印地址。 您必須記住密碼,以便將來解鎖賬戶。 -**注意**:如果可以直接将密钥存储文件复制到另一个 Kaia 实例,则不需要此导入/导出机制。 +**注意**:如果可以直接將密鑰存儲文件複製到另一個 Kaia 實例,則不需要此導入/導出機制。 ### ken @@ -55,7 +55,7 @@ $ ken account import --datadir $ ken account import --password --datadir ``` -### JavaScript 控制台 +### JavaScript 控制檯 ```bash > personal.importRawKey('{private key}', 'mypassword') From 248318665e1d3200fe95d2c63e7c41115e937fed Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:37 +0800 Subject: [PATCH 0008/2513] New translations managing-accounts.md (Chinese Simplified) --- .../get-started/account/managing-accounts.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md index 273308179cd7..08aa83efd47a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md @@ -1,12 +1,12 @@ -# 管理账户 +# 管理賬戶 -## 列出您的账户 +## 列出您的賬戶 -这将返回在数据目录下创建的所有账户列表。 +這將返回在數據目錄下創建的所有賬戶列表。 ### ken -从命令行调用 CLI: +從命令行調用 CLI: ```bash $ ken account list --datadir @@ -15,33 +15,33 @@ Account #0: {bfc22a57999459b0c2ce6337deb9287e7a970e02} keystore:///Users/usernam Account #1: {47bd2e9565cbe1789454718d6cf1778d7ea557aa} keystore:///Users/username/kend_home/keystore/UTC--2019-03-26T07-04-44.840061000Z--47bd2e9565cbe1789454718d6cf1778d7ea557aa ``` -**注意**:如果从其他节点复制密钥存储文件或删除文件,返回的账户列表顺序可能会发生变化。 因此,请确保不依赖索引,或者确保在复制或删除密钥存储文件时,检查并更新脚本中的账户索引。 +**注意**:如果從其他節點複製密鑰存儲文件或刪除文件,返回的賬戶列表順序可能會發生變化。 因此,請確保不依賴索引,或者確保在複製或刪除密鑰存儲文件時,檢查並更新腳本中的賬戶索引。 -### JavaScript 控制台 +### JavaScript 控制檯 -使用控制台时: +使用控制檯時: ```javascript > kaia.accounts ["bfc22a57999459b0c2ce6337deb9287e7a970e02", "47bd2e9565cbe1789454718d6cf1778d7ea557aa"] ``` -## 解锁账户 +## 解鎖賬戶 -如果想非交互式地使用账户,则需要解锁。 +如果想非交互式地使用賬戶,則需要解鎖。 ### ken -你可以使用`--unlock "{address},{address}"`选项在命令行上解锁账户并启动 EN,该选项以逗号分隔的账户(十六进制或索引)列表作为参数,因此你可以在一个会话中以编程方式解锁账户。 如果您想通过 RPC 从 dApps 使用您的账户,这将非常有用。 `--unlock` 将解锁列表中的第一个账户。 这在以编程方式创建账户时非常有用,不需要知道实际账户就能解锁。 +你可以使用`--unlock "{address},{address}"`選項在命令行上解鎖賬戶並啟動 EN,該選項以逗號分隔的賬戶(十六進制或索引)列表作為參數,因此你可以在一個會話中以編程方式解鎖賬戶。 如果您想通過 RPC 從 dApps 使用您的賬戶,這將非常有用。 `--unlock` 將解鎖列表中的第一個賬戶。 這在以編程方式創建賬戶時非常有用,不需要知道實際賬戶就能解鎖。 -创建一个账户,并在账户未锁定的情况下启动一个节点: +創建一個賬戶,並在賬戶未鎖定的情況下啟動一個節點: ```bash $ ken account new --password <(echo this is not secret) --datadir $ ken --password <(echo "this is not secret") --unlock primary --datadir --rpccorsdomain localhost --verbosity 6 2>> log.log ``` -如果要启动一个已解锁特定账户的节点,可以使用一个地址或索引,该地址或索引指的是账户列表中的地址位置(并与创建顺序相对应)。 +如果要啟動一個已解鎖特定賬戶的節點,可以使用一個地址或索引,該地址或索引指的是賬戶列表中的地址位置(並與創建順序相對應)。 ```bash $ ken --unlock "0" --datadir @@ -49,40 +49,40 @@ $ ken --unlock "2" --datadir $ ken --unlock "bfc22a57999459b0c2ce6337deb9287e7a970e02" --datadir ``` -通过命令行可以解锁多个账户。 在这种情况下,解锁参数是一个以逗号分隔的账户地址或索引列表。 +通過命令行可以解鎖多個賬戶。 在這種情況下,解鎖參數是一個以逗號分隔的賬戶地址或索引列表。 ```bash $ ken --unlock "0x407d73d8a49eeb85d32cf465507dd71d507100c1,0,5,e470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32" --datadir ``` -如果非交互式地使用这种结构,密码文件需要包含相关账户的密码,每行一个。 +如果非交互式地使用這種結構,密碼文件需要包含相關賬戶的密碼,每行一個。 -### JavaScript 控制台 +### JavaScript 控制檯 -在控制台上,你还可以解锁账户(一次一个),解锁时间(以秒为单位)。 +在控制檯上,你還可以解鎖賬戶(一次一個),解鎖時間(以秒為單位)。 ```javascript > personal.unlockAccount(address, "password", 300) ``` -请注意,我们不建议在此处使用密码参数,因为控制台历史记录会被记录下来,这样可能会危及您的账户安全。 我已经警告过你了。 +請注意,我們不建議在此處使用密碼參數,因為控制檯歷史記錄會被記錄下來,這樣可能會危及您的賬戶安全。 我已經警告過你了。 -## 查询账户余额 +## 查詢賬戶餘額 ### ken -不适用 +不適用 -### JavaScript 控制台 +### JavaScript 控制檯 -查看账户余额: +查看賬戶餘額: ```javascript > kaia.fromPeb(kaia.getBalance("{account}"), "KAIA") 6.5 ``` -使用 JavaScript 函数打印所有余额: +使用 JavaScript 函數打印所有餘額: ```javascript function checkAllBalances() { @@ -101,7 +101,7 @@ function checkAllBalances() { }; ``` -然后就可以用 +然後就可以用 ```javascript > checkAllBalances(); @@ -111,13 +111,13 @@ kaia.accounts[2]: 0xe470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32 balance: 1 KAIA kaia.accounts[3]: 0xf4dd5c3794f1fd0cdc0327a83aa472609c806e99 balance: 6 KAIA ``` -由于该函数会在重启 `ken` 后消失,因此存储常用函数以便以后调用会很有帮助。 +由於該函數會在重啟 `ken` 後消失,因此存儲常用函數以便以後調用會很有幫助。 -首先,将 `checkAllBalances()`函数定义保存到计算机上的一个文件中。 例如,`/Users/username/klayload.js`。 然后从交互式控制台加载文件: +首先,將 `checkAllBalances()`函數定義保存到計算機上的一個文件中。 例如,`/Users/username/klayload.js`。 然後從交互式控制檯加載文件: ```javascript > loadScript("/Users/username/klayload.js") true ``` -该文件将修改 JavaScript 环境,就像手动输入命令一样。 请随意尝试! +該文件將修改 JavaScript 環境,就像手動輸入命令一樣。 請隨意嘗試! From 672a6ee2f5d86d2217cc78bcc91a5e0c9c3d7729 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:39 +0800 Subject: [PATCH 0009/2513] New translations before-you-start.md (Chinese Simplified) --- .../build/get-started/before-you-start.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md index 1629f5b6d3f2..4156275f9b0d 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md @@ -1,31 +1,31 @@ -# 开始之前 +# 開始之前 -**凯亚网络** +**凱亞網絡** -- 启明星测试网 -- 主网 +- 啟明星測試網 +- 主網 -**终端节点** +**終端節點** -- 您的[端点节点](../../nodes/endpoint-node/endpoint-node.md)需要连接到 Kaia 网络并发出 API 调用或发送事务。 -- `ken` 是 Kaia 端点节点二进制文件。 `ken` 公开了两个接口:[命令行接口](../../nodes/endpoint-node/ken-cli-commands.md)和[JSON-RPC APIs](../../references/json-rpc/klay/account-created)。 `ken` 可在 Linux 和 MacOS 上运行。 -- `ken` CLI 附带多种实用程序和节点管理功能。 +- 您的[端點節點](../../nodes/endpoint-node/endpoint-node.md)需要連接到 Kaia 網絡併發出 API 調用或發送事務。 +- `ken` 是 Kaia 端點節點二進制文件。 `ken` 公開了兩個接口:[命令行接口](../../nodes/endpoint-node/ken-cli-commands.md)和[JSON-RPC APIs](../../references/json-rpc/klay/account-created)。 `ken` 可在 Linux 和 MacOS 上運行。 +- `ken` CLI 附帶多種實用程序和節點管理功能。 -**智能合同开发** +**智能合同開發** -- [Kaia Plugin for Remix](https://ide.kaia.io) - 基于浏览器的编译器和集成开发环境 Kaia Plugin for Remix。 -- [Truffle](https://github.com/trufflesuite/truffle) - 用于在 Solidity 中开发智能合约的开源工具。 -- [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started) - 智能合约和 dApp 的开发环境。 -- [Foundry](https://book.getfoundry.sh/) - Foundry 是一个智能合约开发工具链。 -- [Thirdweb](https://portal.thirdweb.com/) - Thirdweb 是一个完整的 web3 开发框架,提供构建、管理和分析 web3 应用程序的服务。 +- [Kaia Plugin for Remix](https://ide.kaia.io) - 基於瀏覽器的編譯器和集成開發環境 Kaia Plugin for Remix。 +- [Truffle](https://github.com/trufflesuite/truffle) - 用於在 Solidity 中開發智能合約的開源工具。 +- [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started) - 智能合約和 dApp 的開發環境。 +- [Foundry](https://book.getfoundry.sh/) - Foundry 是一個智能合約開發工具鏈。 +- [Thirdweb](https://portal.thirdweb.com/) - Thirdweb 是一個完整的 web3 開發框架,提供構建、管理和分析 web3 應用程序的服務。 **Kaia SDK** -- [caver-js](../../references/sdk/caver-js/caver-js.md) :实现 Kaia JSON-RPC API 的 JavaScript 库。 -- [caver-java](../../references/sdk/caver-java/caver-java.md):实现 Kaia JSON-RPC API 的 Java 库。 +- [caver-js](../../references/sdk/caver-js/caver-js.md) :實現 Kaia JSON-RPC API 的 JavaScript 庫。 +- [caver-java](../../references/sdk/caver-java/caver-java.md):實現 Kaia JSON-RPC API 的 Java 庫。 -**凯亚工具包** +**凱亞工具包** -- [Kaiascope](https://kaiascope.com/) - 区块和事务浏览器。 -- [Kaia Wallet](https://www.kaiawallet.io/) - Kaia 网络的浏览器扩展钱包。 -- [Kaia Contracts Wizard](https://wizard.klaytn.foundation/) - 用于引导智能合约和了解 Kaia Contracts 的交互式生成器。 +- [Kaiascope](https://kaiascope.com/) - 區塊和事務瀏覽器。 +- [Kaia Wallet](https://www.kaiawallet.io/) - Kaia 網絡的瀏覽器擴展錢包。 +- [Kaia Contracts Wizard](https://wizard.klaytn.foundation/) - 用於引導智能合約和了解 Kaia Contracts 的交互式生成器。 From a7a9fc4e814b9d7d07b3edff669f0a6bc9d2fbd6 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:42 +0800 Subject: [PATCH 0010/2513] New translations get-started.md (Chinese Simplified) --- .../current/build/get-started/get-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/get-started.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/get-started.md index 8f522cffab7b..c079856c8465 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/get-started.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/get-started.md @@ -1,6 +1,6 @@ -# 入门指南 +# 入門指南 -试着熟悉 Kaia。 本章是您使用 Kaia dApps 的起点。 +試著熟悉 Kaia。 本章是您使用 Kaia dApps 的起點。 ```mdx-code-block import DocCardList from '@theme/DocCardList'; From 799e4f526e0e04e0b1cebb62b68975fd02513a26 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:45 +0800 Subject: [PATCH 0011/2513] New translations getting-kaia.md (Chinese Simplified) --- .../current/build/get-started/getting-kaia.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md index c7777b2fd5d4..c1a89877ecd4 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md @@ -1,15 +1,15 @@ -# 获取 KAIA +# 獲取 KAIA -## 凯洛斯测试网和水龙头 +## 凱洛斯測試網和水龍頭 -**testnet KAIA** 龙头在 Kairos 网络上运行。 该龙头可通过 [Kairos Kaia Faucet](https://faucet.kaia.io)访问。 要接收 KAIA 测试网,您必须拥有一个有效的 Kaia 帐户。 +**testnet KAIA** 龍頭在 Kairos 網絡上運行。 該龍頭可通過 [Kairos Kaia Faucet](https://faucet.kaia.io)訪問。 要接收 KAIA 測試網,您必須擁有一個有效的 Kaia 帳戶。 -- 使用私人密钥或密钥存储文件将账户加载到钱包中。 Testnet KAIA 将发送到已加载的帐户。 -- 点击 "运行水龙头 "按钮将发送 50 个测试网 KAIA 并更新您的余额。 请注意,每个账户的水龙头每 24 小时可运行一次。 +- 使用私人密鑰或密鑰存儲文件將賬戶加載到錢包中。 Testnet KAIA 將發送到已加載的帳戶。 +- 點擊 "運行水龍頭 "按鈕將發送 50 個測試網 KAIA 並更新您的餘額。 請注意,每個賬戶的水龍頭每 24 小時可運行一次。 -## KAIA 交流名单 +## KAIA 交流名單 -KAIA 在多家交易所上市。 请通过以下链接查看韩国国际交流协会的交流名单。 +KAIA 在多家交易所上市。 請通過以下鏈接查看韓國國際交流協會的交流名單。 - [KAIA交易所在CoinGecko上市](https://www.coingecko.com/en/coins/klay#markets) - [KAIA交易所在CoinMarketCap上市](https://coinmarketcap.com/currencies/klaytn/markets/) From 18c4a4554bde41f04a6c7c36169103c06d529d3e Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:49 +0800 Subject: [PATCH 0012/2513] New translations hardhat.md (Chinese Simplified) --- .../current/build/get-started/hardhat.md | 176 +++++++++--------- 1 file changed, 88 insertions(+), 88 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md index 43de175052b0..9ca5cbfd94f6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md @@ -1,117 +1,117 @@ -# 使用 Hardhat 部署第一个智能合约 +# 使用 Hardhat 部署第一個智能合約 ![](/img/banners/kaia-hardhat.png) -## 导言 +## 導言 -本节将指导你使用 [Hardhat](https://hardhat.org/) 向凯亚-凯罗斯网络部署灵魂令牌。 +本節將指導你使用 [Hardhat](https://hardhat.org/) 向凱亞-凱羅斯網絡部署靈魂令牌。 -Hardhat 是一个智能合约开发环境,它将为您提供帮助: +Hardhat 是一個智能合約開發環境,它將為您提供幫助: -- 开发和编译智能合约。 -- 调试、测试和部署智能合约和 dApp。 +- 開發和編譯智能合約。 +- 調試、測試和部署智能合約和 dApp。 -灵魂绑定令牌(SBT)是不可转让的 NFT。 也就是说,一旦获得,就不得出售或转让给其他用户。 要了解有关 SBT、其工作原理和使用案例的更多信息,可以查看 Vitalik Buterin 发表的这篇 [参考文章](https://vitalik.eth.limo/general/2022/01/26/soulbound.html)。 +靈魂綁定令牌(SBT)是不可轉讓的 NFT。 也就是說,一旦獲得,就不得出售或轉讓給其他用戶。 要了解有關 SBT、其工作原理和使用案例的更多信息,可以查看 Vitalik Buterin 發表的這篇 [參考文章](https://vitalik.eth.limo/general/2022/01/26/soulbound.html)。 -完成本指南后,您将能够 +完成本指南後,您將能夠 -- 在 Kaia 上建立一个 "Hardhat "项目。 -- 创建一个简单的灵魂绑定令牌。 -- 使用 Hardhat 编译智能合约。 -- 使用 Hardhat 测试、部署智能合约并与之交互。 +- 在 Kaia 上建立一個 "Hardhat "項目。 +- 創建一個簡單的靈魂綁定令牌。 +- 使用 Hardhat 編譯智能合約。 +- 使用 Hardhat 測試、部署智能合約並與之交互。 - 探索 Hardhat 分叉功能。 -## 先决条件 +## 先決條件 -学习本教程的前提条件如下: +學習本教程的前提條件如下: -- 代码编辑器:源代码编辑器,如 [VS Code](https://code.visualstudio.com/download)。 -- [Metamask](../tutorials/connecting-metamask.mdx#install-metamask):用于部署合约、签署事务和与合约交互。 -- RPC 端点:可从支持的[端点提供程序](../../references/public-en.md)中获取。 -- 从 [水龙头](https://faucet.kaia.io)测试 KAIA:为账户注入足够的 KAIA。 +- 代碼編輯器:源代碼編輯器,如 [VS Code](https://code.visualstudio.com/download)。 +- [Metamask](../tutorials/connecting-metamask.mdx#install-metamask):用於部署合約、簽署事務和與合約交互。 +- RPC 端點:可從支持的[端點提供程序](../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 - [NodeJS和NPM](https://nodejs.org/en/) -## 设置开发环境 +## 設置開發環境 -要使用 hardhat,我们需要建立开发环境并安装 hardhat。 让我们按以下步骤来做: +要使用 hardhat,我們需要建立開發環境並安裝 hardhat。 讓我們按以下步驟來做: -**第 1**步创建项目目录 +**第 1**步創建項目目錄 ```bash mkdir soulbound-tokens cd soulbound-tokens ``` -**步骤 2**:初始化 npm 项目 +**步驟 2**:初始化 npm 項目 -在终端中粘贴此命令以创建 package.json 文件 +在終端中粘貼此命令以創建 package.json 文件 ```bash npm init -y ``` -**第 3 步**:安装 hardhat 和其他依赖项: +**第 3 步**:安裝 hardhat 和其他依賴項: -- 在终端中粘贴下面的代码安装 hardhat +- 在終端中粘貼下面的代碼安裝 hardhat ```bash npm install --save-dev hardhat ``` -- 粘贴下面的代码以安装其他依赖项 +- 粘貼下面的代碼以安裝其他依賴項 ```bash npm install dotenv @kaiachain/contracts ``` -> 注意:这将安装本项目所需的其他依赖项,包括 `hardhat`、`klaytn/contract`、`dotenv` 等。 +> 注意:這將安裝本項目所需的其他依賴項,包括 `hardhat`、`klaytn/contract`、`dotenv` 等。 -**第 4 步**:初始化硬头盔项目: +**第 4 步**:初始化硬頭盔項目: -运行以下命令启动硬头盔项目 +運行以下命令啟動硬頭盔項目 ```bash npx hardhat ``` -在本指南中,您将选择一个排版脚本项目,如下所示: +在本指南中,您將選擇一個排版腳本項目,如下所示: ![](/img/build/get-started/hardhat-init.png) ![](/img/build/get-started/hardhat-init-ii.png) -> 注意:初始化项目时,系统会提示安装 `hardhat-toolbox` 插件。 该插件捆绑了所有常用软件包和 Hardhat 插件,建议在开始使用 Hardhat 进行开发时使用。 +> 注意:初始化項目時,系統會提示安裝 `hardhat-toolbox` 插件。 該插件捆綁了所有常用軟件包和 Hardhat 插件,建議在開始使用 Hardhat 進行開發時使用。 -初始化硬帽项目后,当前目录应包括 +初始化硬帽項目後,當前目錄應包括 -**contracts/** - 此文件夹包含智能合约代码。 +**contracts/** - 此文件夾包含智能合約代碼。 -**ignition/modules/** - 该文件夹包含在区块链网络上部署合约的代码。 +**ignition/modules/** - 該文件夾包含在區塊鏈網絡上部署合約的代碼。 -**test/** - 该文件夹包含测试智能合约的所有单元测试。 +**test/** - 該文件夾包含測試智能合約的所有單元測試。 -**hardhat.config.js** - 该文件包含对 Hardhat 工作和部署灵魂绑定令牌非常重要的配置。 +**hardhat.config.js** - 該文件包含對 Hardhat 工作和部署靈魂綁定令牌非常重要的配置。 -**第 5** 步创建 .env 文件 +**第 5** 步創建 .env 文件 -现在,在项目文件夹中创建 .env 文件。 该文件可帮助我们将 .env 文件中的环境变量加载到 process.env 文件中。 +現在,在項目文件夾中創建 .env 文件。 該文件可幫助我們將 .env 文件中的環境變量加載到 process.env 文件中。 -- 在终端中粘贴此命令以创建 .env 文件 +- 在終端中粘貼此命令以創建 .env 文件 ```bash touch .env ``` -- 创建文件后,让我们将 .env 文件配置为如下所示: +- 創建文件後,讓我們將 .env 文件配置為如下所示: ```js - KAIROS_TESTNET_URL= "您的 Kairos RPC 链接" - PRIVATE_KEY= "从 MetaMask 钱包复制的您的私人密钥" + KAIROS_TESTNET_URL= "您的 Kairos RPC 鏈接" + PRIVATE_KEY= "從 MetaMask 錢包複製的您的私人密鑰" ``` -> 注:你也可以选择使用 hardhat 提供的[配置变量](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables) 功能来配置不应包含在代码库中的变量。 +> 注:你也可以選擇使用 hardhat 提供的[配置變量](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables) 功能來配置不應包含在代碼庫中的變量。 -**第 6 步**:设置Hardhat配置 +**第 6 步**:設置Hardhat配置 用以下配置修改 `hardhat.config.js`: @@ -134,17 +134,17 @@ module.exports = { ``` -现在,我们的开发环境已经准备就绪,让我们开始编写我们的灵魂绑定令牌智能合约吧。 +現在,我們的開發環境已經準備就緒,讓我們開始編寫我們的靈魂綁定令牌智能合約吧。 -## 创建 SBT 智能合约 +## 創建 SBT 智能合約 -在本节中,您将使用 [Kaia Contracts](https://github.com/kaiachain/kaia-contracts):这是一个建立在社区验证代码坚实基础上的安全智能合约开发库。 它是开放式齐柏林合同的分叉。 +在本節中,您將使用 [Kaia Contracts](https://github.com/kaiachain/kaia-contracts):這是一個建立在社區驗證代碼堅實基礎上的安全智能合約開發庫。 它是開放式齊柏林合同的分叉。 -> 注意:您已在 "设置开发环境 "一节的第 3\*\* 步安装了该库。 +> 注意:您已在 "設置開發環境 "一節的第 3\*\* 步安裝了該庫。 -**步骤 1**:在资源管理器窗格中选择合同文件夹,单击 "新建文件 "按钮并创建名为 "SBT.sol "的新文件 +**步驟 1**:在資源管理器窗格中選擇合同文件夾,單擊 "新建文件 "按鈕並創建名為 "SBT.sol "的新文件 -**第 2**步打开文件并粘贴以下代码: +**第 2**步打開文件並粘貼以下代碼: ```js // SPDX-License-Identifier: MIT @@ -178,21 +178,21 @@ contract SoulBoundToken is KIP17, Ownable { } ``` -**代码演练** +**代碼演練** -这就是你的智能合约。 **第 1** 行显示 Hardhat 使用的是 0.8.7 或更高版本的 Solidity。 除此之外,它还导入了 KIP17.sol 和其他辅助合同。 从第6-12\*\*行开始,创建了一个继承KIP17的智能合约。 此外,构造函数中还传递了标记名称和符号。 +這就是你的智能合約。 **第 1** 行顯示 Hardhat 使用的是 0.8.7 或更高版本的 Solidity。 除此之外,它還導入了 KIP17.sol 和其他輔助合同。 從第6-12\*\*行開始,創建了一個繼承KIP17的智能合約。 此外,構造函數中還傳遞了標記名稱和符號。 -如上代码所示,令牌名称和符号已分别设置为 **SoulBoundToken** 和 **SBT**。 您可以随意更改令牌名称和符号。 +如上代碼所示,令牌名稱和符號已分別設置為 **SoulBoundToken** 和 **SBT**。 您可以隨意更改令牌名稱和符號。 -该合约的一个主要特点是禁止代币转让,这使得发行的代币成为灵魂债券。 +該合約的一個主要特點是禁止代幣轉讓,這使得發行的代幣成為靈魂債券。 -## 测试 SBT 智能合约 +## 測試 SBT 智能合約 -在本节中,我们将测试一些合同功能。 +在本節中,我們將測試一些合同功能。 -**步骤 1**:在资源管理器窗格中,选择测试文件夹并单击 "新建文件 "按钮,创建一个名为 "sbtTest.js "的新文件。 +**步驟 1**:在資源管理器窗格中,選擇測試文件夾並單擊 "新建文件 "按鈕,創建一個名為 "sbtTest.js "的新文件。 -**步骤 2**:在 `sbtTest.js` 文件中复制以下代码。 +**步驟 2**:在 `sbtTest.js` 文件中複製以下代碼。 ```js // This is an example test file. Hardhat will run every *.js file in `test/`, @@ -280,32 +280,32 @@ describe("Token contract", function () { }) ``` -在你刚刚复制的代码中,第 7 行和第 12 行显示你从 hardhat-network-helpers 的 [Chai](https://www.chaijs.com/api/bdd/) 和 [loadFixture](https://hardhat.org/tutorial/testing-contracts#reusing-common-test-setups-with-fixtures) 中导入了 expect。 +在你剛剛複製的代碼中,第 7 行和第 12 行顯示你從 hardhat-network-helpers 的 [Chai](https://www.chaijs.com/api/bdd/) 和 [loadFixture](https://hardhat.org/tutorial/testing-contracts#reusing-common-test-setups-with-fixtures) 中導入了 expect。 -上述测试可检查以下内容: +上述測試可檢查以下內容: -- 特定代币 ID 的所有者是否与该代币的铸造者相同? -- 是否禁止在账户之间转移代币? +- 特定代幣 ID 的所有者是否與該代幣的鑄造者相同? +- 是否禁止在賬戶之間轉移代幣? -**第 3 步**:要运行测试,请运行以下命令: +**第 3 步**:要運行測試,請運行以下命令: ```bash -npx 硬帽测试 test/sbtTest.js +npx 硬帽測試 test/sbtTest.js ``` ![](/img/build/get-started/sbtTest.png) -如需更深入的测试指南,请查看 [Hardhat 测试](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)。 +如需更深入的測試指南,請查看 [Hardhat 測試](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)。 -## 部署智能合约 +## 部署智能合約 -脚本是 JavaScript/Typescript 文件,可帮助您将合约部署到区块链网络。 在本节中,您将为智能合约创建一个脚本。 +腳本是 JavaScript/Typescript 文件,可幫助您將合約部署到區塊鏈網絡。 在本節中,您將為智能合約創建一個腳本。 -**步骤 1**:在资源管理器窗格中,选择 "scripts "文件夹,然后单击 "新建文件 "按钮,创建一个名为 "sbtDeploy.js "的新文件。 +**步驟 1**:在資源管理器窗格中,選擇 "scripts "文件夾,然後單擊 "新建文件 "按鈕,創建一個名為 "sbtDeploy.js "的新文件。 -**第 2**步将以下代码复制并粘贴到文件中。 +**第 2**步將以下代碼複製並粘貼到文件中。 -> 注意:在 `deployerAddr` 变量中输入您的 MetaMask 钱包地址。 +> 注意:在 `deployerAddr` 變量中輸入您的 MetaMask 錢包地址。 ```js const { ethers } = require("hardhat"); @@ -334,7 +334,7 @@ main().catch((error) => { }); ``` -\*\*第 3 步在终端运行以下命令,让 Hardhat 在 Kaia 测试网络 (Kairos) 上部署 SBT 令牌 +\*\*第 3 步在終端運行以下命令,讓 Hardhat 在 Kaia 測試網絡 (Kairos) 上部署 SBT 令牌 ```bash npx hardhat run ignition/modules/sbtDeploy.js --network kairos @@ -342,21 +342,21 @@ npx hardhat run ignition/modules/sbtDeploy.js --network kairos ![](/img/build/get-started/sbtDeploy.png) -**第 4 步**:打开 [Kaiascope](https://kairos.kaiascope.com/),检查 SBT 令牌是否已成功部署。 +**第 4 步**:打開 [Kaiascope](https://kairos.kaiascope.com/),檢查 SBT 令牌是否已成功部署。 -**第 5 步**:在搜索栏中复制并粘贴部署的合同地址,然后按 Enter 键。 您应该能看到最近部署的合同。 +**第 5 步**:在搜索欄中複製並粘貼部署的合同地址,然後按 Enter 鍵。 您應該能看到最近部署的合同。 ![](/img/build/get-started/sbtKS.png) ## 硬帽叉 -Hardhat 为开发人员提供了在本地开发网络中模拟主网(任何给定区块)的功能。 这一功能的主要好处之一是,它能让开发人员与已部署的合同进行交互,还能为复杂的案例编写测试。 +Hardhat 為開發人員提供了在本地開發網絡中模擬主網(任何給定區塊)的功能。 這一功能的主要好處之一是,它能讓開發人員與已部署的合同進行交互,還能為複雜的案例編寫測試。 -要使该功能有效运行,您需要连接到存档节点。 您可在 [此处](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks#forking-other-networks) 阅读有关此功能的更多信息。 +要使該功能有效運行,您需要連接到存檔節點。 您可在 [此處](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks#forking-other-networks) 閱讀有關此功能的更多信息。 -### 分叉主网 +### 分叉主網 -现在,我们已经建立了 Hardhat 项目,让我们使用 Hardhat fork Kaia 主网。 打开终端,运行以下命令 +現在,我們已經建立了 Hardhat 項目,讓我們使用 Hardhat fork Kaia 主網。 打開終端,運行以下命令 ```bash npx hardhat node --fork @@ -364,7 +364,7 @@ npx hardhat node --fork npx hardhat node --fork https://archive-en.node.kaia.io ``` -您也可以配置 `hardhat.config.js` - Hardhat Network 始终这样做: +您也可以配置 `hardhat.config.js` - Hardhat Network 始終這樣做: ``` networks: { @@ -376,27 +376,27 @@ networks: { } ``` -**输出** +**輸出** ![](/img/build/get-started/hardhat-fork.png) -成功运行该命令后,您的终端看起来就像上图一样。 您将拥有 20 个开发账户,这些账户预存了 10,000 个测试代币。 +成功運行該命令後,您的終端看起來就像上圖一樣。 您將擁有 20 個開發賬戶,這些賬戶預存了 10,000 個測試代幣。 -分叉链的 RPC 服务器正在`http://127.0.0.1:8545/`监听。 您可以通过查询最新的区块编号来验证分叉网络。 让我们尝试使用 cURL 访问 RPC,以获取区块编号。 打开一个新的终端窗口,使用以下命令: +分叉鏈的 RPC 服務器正在`http://127.0.0.1:8545/`監聽。 您可以通過查詢最新的區塊編號來驗證分叉網絡。 讓我們嘗試使用 cURL 訪問 RPC,以獲取區塊編號。 打開一個新的終端窗口,使用以下命令: ```bash curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545 ``` -**输出** +**輸出** ![](/img/build/get-started/hardhat-fork-bn.png) -输出结果为十六进制,如上图所示。 要从十六进制中获取块编号,请使用此 [工具](https://www.rapidtables.com/convert/number/hex-to-decimal.html) 将十六进制转换为十进制。 您应该从分叉网络时获得最新的区块编号。 您可以通过 [kaiascope](https://kaiascope.com/)确认区块编号。 +輸出結果為十六進制,如上圖所示。 要從十六進制中獲取塊編號,請使用此 [工具](https://www.rapidtables.com/convert/number/hex-to-decimal.html) 將十六進制轉換為十進制。 您應該從分叉網絡時獲得最新的區塊編號。 您可以通過 [kaiascope](https://kaiascope.com/)確認區塊編號。 -### 在街区分叉 +### 在街區分叉 -使用硬头盔,您可以在特定区块分叉主网。 在这种情况下,让我们在区块编号 "105701850 "处分叉链。 +使用硬頭盔,您可以在特定區塊分叉主網。 在這種情況下,讓我們在區塊編號 "105701850 "處分叉鏈。 ```bash npx hardhat node --fork --fork-block-number 105701850 @@ -404,7 +404,7 @@ npx hardhat node --fork --fork-block-number 105701850 npx hardhat node --fork https://archive-en.node.kaia.io --fork-block-number 105701850 ``` -要在指定区块确认分叉链,请打开一个新的终端窗口并使用以下命令: +要在指定區塊確認分叉鏈,請打開一個新的終端窗口並使用以下命令: ```bash curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545 @@ -412,6 +412,6 @@ curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H ![](/img/build/get-started/hardhat-fork-bnII.png) -输出返回十六进制,使用此 [工具](https://www.rapidtables.com/convert/number/hex-to-decimal.html) 转换后应等于 `105701850`。 +輸出返回十六進制,使用此 [工具](https://www.rapidtables.com/convert/number/hex-to-decimal.html) 轉換後應等於 `105701850`。 -有关 Hardhat 的更深入指南,请参阅 [Hardhat 文档](https://hardhat.org/hardhat-runner/docs/getting-started)。 此外,您还可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/hardhat/soulbound-tokens) 上找到本指南的完整代码实现。 +有關 Hardhat 的更深入指南,請參閱 [Hardhat 文檔](https://hardhat.org/hardhat-runner/docs/getting-started)。 此外,您還可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/hardhat/soulbound-tokens) 上找到本指南的完整代碼實現。 From 9cd56f8c83ad65667d9e7a4282cfe5075cd057e1 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:53 +0800 Subject: [PATCH 0013/2513] New translations deploy.md (Chinese Simplified) --- .../build/smart-contracts/deploy/deploy.md | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md index b23b9696e253..0cc837c9181c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md @@ -1,16 +1,16 @@ -# 部署智能合约 +# 部署智能合約 -在 Kaia 上部署智能合约有多种方法。 本文档提供了使用各种工具部署合同样本的分步指南。 我们假定您的 Kaia 账户有足够的 KAIA 支付交易费。 要创建账户,您可以使用 [Kaia 在线工具包](https://toolkit.kaia.io/account/accountKeyLegacy)"。 +在 Kaia 上部署智能合約有多種方法。 本文檔提供了使用各種工具部署合同樣本的分步指南。 我們假定您的 Kaia 賬戶有足夠的 KAIA 支付交易費。 要創建賬戶,您可以使用 [Kaia 在線工具包](https://toolkit.kaia.io/account/accountKeyLegacy)"。 -## Remix 在线集成开发环境 +## Remix 在線集成開發環境 -打开互联网浏览器,进入 [Kaia Plugin for Remix](https://ide.kaia.io)。 +打開互聯網瀏覽器,進入 [Kaia Plugin for Remix](https://ide.kaia.io)。 1. 添加新文件。 ![](/img/build/smart-contracts/01_deployment_ide.png) -2. 复制并粘贴以下示例代码(或任何您想部署的代码)到新文件中。 代码由两个名为 Mortal 和 KaiaGreeter 的合约组成,可以运行一个简单的 "Hello World!"。 +2. 複製並粘貼以下示例代碼(或任何您想部署的代碼)到新文件中。 代碼由兩個名為 Mortal 和 KaiaGreeter 的合約組成,可以運行一個簡單的 "Hello World!"。 ``` pragma solidity 0.5.12; @@ -38,42 +38,42 @@ contract KaiaGreeter is Mortal { } ``` -3. 在图标面板中选择 "编译器"。 选择所需的 EVM 环境。 对于 Kaia 网络,您可以选择 Kairos(测试网络)和 Mainnet。 当示例代码准备好在实际部署前编译时,单击 "编译"。 +3. 在圖標面板中選擇 "編譯器"。 選擇所需的 EVM 環境。 對於 Kaia 網絡,您可以選擇 Kairos(測試網絡)和 Mainnet。 當示例代碼準備好在實際部署前編譯時,單擊 "編譯"。 ![](/img/build/smart-contracts/02_deployment_compile.png) -4. 现在我们可以部署合同了。 点击图标面板中的 Kaia 徽标。 单击 "账户 "旁边的加号按钮,导入一个账户。 确保账户有足够的 KAIA 来支付部署所需的智能合约的交易费用。 +4. 現在我們可以部署合同了。 點擊圖標面板中的 Kaia 徽標。 單擊 "賬戶 "旁邊的加號按鈕,導入一個賬戶。 確保賬戶有足夠的 KAIA 來支付部署所需的智能合約的交易費用。 ![](/img/build/smart-contracts/05_deployment_account.png) -5. 设置气体限值和发送值。 +5. 設置氣體限值和發送值。 -- 如果部署的是更复杂的合同,可能需要设置更高的气体限值。 在本例中,可以保持原样。 -- 将 `Value` 设为 0,除非您想在部署时向合同发送 `KAIA`。 +- 如果部署的是更復雜的合同,可能需要設置更高的氣體限值。 在本例中,可以保持原樣。 +- 將 `Value` 設為 0,除非您想在部署時向合同發送 `KAIA`。 -6. 输入 "Hello World!"作为构造函数的参数,然后点击 "部署 "按钮。 +6. 輸入 "Hello World!"作為構造函數的參數,然後點擊 "部署 "按鈕。 ![](/img/build/smart-contracts/03_deployment_hello.png) -7. 如果合同部署成功,您将在终端看到相应的交易收据和详细结果。 +7. 如果合同部署成功,您將在終端看到相應的交易收據和詳細結果。 -8. 您可以通过点击功能按钮与合同互动。 这些功能用不同的颜色表示。 Solidity中的 "constant "或 "pure "函数有蓝色的底色(示例中的 "greet"),不会创建新的事务,因此不耗费任何气体。 红色按钮(示例中的 "kill")代表 "可支付 "功能,可改变区块链上的状态、消耗气体并可接受价值。 橙色按钮用于更改合同状态但不接受值的 "非支付 "功能。 +8. 您可以通過點擊功能按鈕與合同互動。 這些功能用不同的顏色表示。 Solidity中的 "constant "或 "pure "函數有藍色的底色(示例中的 "greet"),不會創建新的事務,因此不耗費任何氣體。 紅色按鈕(示例中的 "kill")代表 "可支付 "功能,可改變區塊鏈上的狀態、消耗氣體並可接受價值。 橙色按鈕用於更改合同狀態但不接受值的 "非支付 "功能。 ![](/img/build/smart-contracts/06_deployment_functions.png) -有关详细信息,请参阅此 [链接](../ide-and-tools/ide-and-tools.md)。 +有關詳細信息,請參閱此 [鏈接](../ide-and-tools/ide-and-tools.md)。 ## VVISP -vvisp 是一种易于使用的 CLI 工具/框架,用于开发智能合约,由 HEACHI LABS 提供。 只需一个命令,您就可以轻松设置环境、部署和执行 Kaia 智能合约。 详情请参考以下链接。 +vvisp 是一種易於使用的 CLI 工具/框架,用於開發智能合約,由 HEACHI LABS 提供。 只需一個命令,您就可以輕鬆設置環境、部署和執行 Kaia 智能合約。 詳情請參考以下鏈接。 - https://henesis.gitbook.io/vvisp/deploying-smart-contracts ## solc & caver-js -另一种部署合同的方法是使用 solc 手动编译合同,然后使用 caver-js 进行部署。 +另一種部署合同的方法是使用 solc 手動編譯合同,然後使用 caver-js 進行部署。 -1. 创建 `KaiaGreeter.sol` 并编写以下代码。 +1. 創建 `KaiaGreeter.sol` 並編寫以下代碼。 ``` pragma solidity 0.5.6; @@ -101,25 +101,25 @@ contract KaiaGreeter is Mortal { } ``` -2. 安装 solc 0.5.6。 +2. 安裝 solc 0.5.6。 ``` $ sudo npm install -g solc@0.5.6 ``` -3. 编制合同。 +3. 編制合同。 ``` $ solcjs KaiaGreeter.sol --bin ``` -4. 安装 caver-js。 +4. 安裝 caver-js。 ``` $ npm install caver-js. ``` -5. 使用以下代码在同一目录下创建 `deploy.js`。 +5. 使用以下代碼在同一目錄下創建 `deploy.js`。 ``` const Caver = require("caver-js"); @@ -151,9 +151,9 @@ caver.kaia.sendTransaction({ }) ``` -_注_:此示例不建议用于生产。 处理私人密钥时要非常小心。 +_注_:此示例不建議用於生產。 處理私人密鑰時要非常小心。 -6. 使用节点环境部署合同。 +6. 使用節點環境部署合同。 ``` $ node deploy.js From a8dbb05d34e6e2d57daf4661226228e2e0f054ef Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:26:56 +0800 Subject: [PATCH 0014/2513] New translations foundry.md (Chinese Simplified) --- .../build/smart-contracts/deploy/foundry.md | 188 +++++++++--------- 1 file changed, 94 insertions(+), 94 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md index 2bf73e2b5da4..2e91969b4669 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md @@ -1,73 +1,73 @@ -# 使用 Foundry 部署智能合约 +# 使用 Foundry 部署智能合約 ![](/img/banners/kaia-foundry.png) -## 导言 +## 導言 -Foundry 是一个用 Rust 编写的智能合约开发框架,开发人员可以通过 solidity 脚本从命令行管理和编译合约、运行测试、部署合约并与网络交互。 +Foundry 是一個用 Rust 編寫的智能合約開發框架,開發人員可以通過 solidity 腳本從命令行管理和編譯合約、運行測試、部署合約並與網絡交互。 -Foundry 由四个主要 CLI 工具组成,可实现快速、模块化的智能合约开发,它们是 +Foundry 由四個主要 CLI 工具組成,可實現快速、模塊化的智能合約開發,它們是 -- [Forge](https://github.com/foundry-rs/foundry/tree/master/forge): 您可以使用 Forge 部署、测试和编译智能合约。 -- [Cast](https://github.com/foundry-rs/foundry/tree/master/cast):Cast 使与 EVM 智能合约的交互变得简单。 这包括获取链数据、发送交易等。 -- [Anvil](https://github.com/foundry-rs/foundry/tree/master/anvil):您需要启动本地节点吗? Anvil 是 Foundry 提供的本地节点环境。 -- [Chisel](https://github.com/foundry-rs/foundry/blob/master/chisel):快速、实用、冗长的 solidity REPL。 +- [Forge](https://github.com/foundry-rs/foundry/tree/master/forge): 您可以使用 Forge 部署、測試和編譯智能合約。 +- [Cast](https://github.com/foundry-rs/foundry/tree/master/cast):Cast 使與 EVM 智能合約的交互變得簡單。 這包括獲取鏈數據、發送交易等。 +- [Anvil](https://github.com/foundry-rs/foundry/tree/master/anvil):您需要啟動本地節點嗎? Anvil 是 Foundry 提供的本地節點環境。 +- [Chisel](https://github.com/foundry-rs/foundry/blob/master/chisel):快速、實用、冗長的 solidity REPL。 -在本指南中,您将 +在本指南中,您將 -- 创建一个简单的铸造项目。 -- 使用 Foundry 编译和测试示例智能合约。 -- 使用 Foundry 向 Kaia Kairos 网络部署智能合约。 -- 探索使用铸铁和铁砧分叉主网。 +- 創建一個簡單的鑄造項目。 +- 使用 Foundry 編譯和測試示例智能合約。 +- 使用 Foundry 向 Kaia Kairos 網絡部署智能合約。 +- 探索使用鑄鐵和鐵砧分叉主網。 -## 先决条件 +## 先決條件 -学习本教程的前提条件如下: +學習本教程的前提條件如下: -- 代码编辑器:源代码编辑器,如 [VS Code](https://code.visualstudio.com/download)。 -- [MetaMask](../../tutorials/connecting-metamask.mdx#install-metamask):用于部署合约、签署事务和与合约交互。 -- RPC 端点:您可以从支持的[端点提供者](../../../references/public-en.md)中获取。 -- 从 [水龙头](https://faucet.kaia.io)测试 KAIA:为账户注入足够的 KAIA。 -- 安装 [Rust](https://www.rust-lang.org/tools/install) 和 [Foundry](https://github.com/foundry-rs/foundry#installation)。 +- 代碼編輯器:源代碼編輯器,如 [VS Code](https://code.visualstudio.com/download)。 +- [MetaMask](../../tutorials/connecting-metamask.mdx#install-metamask):用於部署合約、簽署事務和與合約交互。 +- RPC 端點:您可以從支持的[端點提供者](../../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 +- 安裝 [Rust](https://www.rust-lang.org/tools/install) 和 [Foundry](https://github.com/foundry-rs/foundry#installation)。 -## 设置开发环境 +## 設置開發環境 -要检查 foundry 安装是否成功,请运行下面的命令: +要檢查 foundry 安裝是否成功,請運行下面的命令: ```bash forge -V ``` -**输出** +**輸出** ![](/img/build/get-started/forge-version.png) -成功安装 Foundry 后,您现在可以使用 Foundry 中的 CLI 工具(锻造、铸造、铁砧、凿子)。 让我们按以下步骤建立一个代工厂项目: +成功安裝 Foundry 後,您現在可以使用 Foundry 中的 CLI 工具(鍛造、鑄造、鐵砧、鑿子)。 讓我們按以下步驟建立一個代工廠項目: -**步骤 1**:要启动一个新项目,请运行以下命令: +**步驟 1**:要啟動一個新項目,請運行以下命令: ```bash forge init foundry_example ``` -**第 2 步**:进入项目文件夹。 +**第 2 步**:進入項目文件夾。 ```bash cd foundry_example ls ``` -初始化 foundry 项目后,当前目录应包括 +初始化 foundry 項目後,當前目錄應包括 -- **src**:智能合约的默认目录。 -- **测试**:测试的默认目录。 -- **foundry.toml**:默认项目配置文件。 -- **lib**:项目依赖项的默认目录。 -- **script**:solidity 脚本文件的默认目录。 +- **src**:智能合約的默認目錄。 +- **測試**:測試的默認目錄。 +- **foundry.toml**:默認項目配置文件。 +- **lib**:項目依賴項的默認目錄。 +- **script**:solidity 腳本文件的默認目錄。 -## 智能合约样本 +## 智能合約樣本 -在本节中,我们将在初始化的代工厂项目中使用示例计数器合同。 src/`文件夹中的`counter.sol\` 文件应如下所示: +在本節中,我們將在初始化的代工廠項目中使用示例計數器合同。 src/`文件夾中的`counter.sol\` 文件應如下所示: ```solidity // SPDX-License-Identifier: UNLICENSED @@ -83,13 +83,13 @@ contract Counter { } ``` -**代码演练** +**代碼演練** -这就是你的智能合约。 **第 1** 行显示它使用的是 0.8.13 或更高版本的 Solidity。 从第4-12**行开始,创建一个智能合约 "Counter"。 该合约只需使用**setNumber**函数存储一个新数字,并通过调用**increment\*\*函数将其递增。 +這就是你的智能合約。 **第 1** 行顯示它使用的是 0.8.13 或更高版本的 Solidity。 從第4-12**行開始,創建一個智能合約 "Counter"。 該合約只需使用**setNumber**函數存儲一個新數字,並通過調用**increment\*\*函數將其遞增。 -## 测试智能合约 +## 測試智能合約 -Foundry allows us to write tests in solidity as opposed to writing tests in javascript in other smart contract development frameworks. 在我们初始化的 foundry 项目中,"test/Counter.t.sol "就是一个用 solidity 编写的测试示例。 代码如下 +Foundry allows us to write tests in solidity as opposed to writing tests in javascript in other smart contract development frameworks. 在我們初始化的 foundry 項目中,"test/Counter.t.sol "就是一個用 solidity 編寫的測試示例。 代碼如下 ```solidity // SPDX-License-Identifier: UNLICENSED @@ -113,28 +113,28 @@ contract CounterTest is Test { } ``` -上面的代码显示您导入了 forge 标准库和 Counter.sol。 +上面的代碼顯示您導入了 forge 標準庫和 Counter.sol。 -上述测试可检查以下内容: +上述測試可檢查以下內容: -- 人数是否在增加? -- 数字是否等于设定的数字? +- 人數是否在增加? +- 數字是否等於設定的數字? -要检查测试是否正常,请运行以下命令: +要檢查測試是否正常,請運行以下命令: ```bash forge test ``` -**输出** +**輸出** ![](/img/build/get-started/forge-test.png) -要了解有关编写测试、高级测试和其他功能的更多信息,请参阅 [Foundry 文档](https://book.getfoundry.sh/forge/tests)。 +要了解有關編寫測試、高級測試和其他功能的更多信息,請參閱 [Foundry 文檔](https://book.getfoundry.sh/forge/tests)。 -## 编制合同 +## 編制合同 -使用此命令编译合同: +使用此命令編譯合同: ```bash forge build @@ -142,151 +142,151 @@ forge build ## 部署您的合同 -要使用 foundry 部署合同,必须提供 RPC URL 和将部署合同的账户的私钥。 请查看 Kaia 上的 [rpc-providers](../../../references/public-en.md) 列表,找到您的 rpc-url,并使用 [MetaMask](../../tutorials/connecting-metamask.mdx#install-metamask) 创建一个账户。 +要使用 foundry 部署合同,必須提供 RPC URL 和將部署合同的賬戶的私鑰。 請查看 Kaia 上的 [rpc-providers](../../../references/public-en.md) 列表,找到您的 rpc-url,並使用 [MetaMask](../../tutorials/connecting-metamask.mdx#install-metamask) 創建一個賬戶。 -**第 1 步**:要将合同部署到 Kaia Kairos 网络,请运行以下命令: +**第 1 步**:要將合同部署到 Kaia Kairos 網絡,請運行以下命令: ```bash $ forge create --rpc-url --private-key src/Counter.sol:Counter ``` -**举例** +**舉例** ```bash forge create --rpc-url https://public-en-kairos.node.kaia.io --private-key hhdhdhdhprivatekeyhdhdhud src/Counter.sol:Counter ``` -**警告:用 MetaMask 中的私人密钥替换私人密钥参数。 请务必小心,不要暴露您的私人密钥**。 +**警告:用 MetaMask 中的私人密鑰替換私人密鑰參數。 請務必小心,不要暴露您的私人密鑰**。 -**输出** +**輸出** ![](/img/build/get-started/foundry-create.png) -**第 2 步**:打开 [Kaiascope](https://kairos.kaiascope.com/tx/0x83c8b55f3fd90110f9b83cd20df2b2bed76cfeb42447725af2d60b2885f479d3?tabId=internalTx),检查计数器合约是否部署成功。 +**第 2 步**:打開 [Kaiascope](https://kairos.kaiascope.com/tx/0x83c8b55f3fd90110f9b83cd20df2b2bed76cfeb42447725af2d60b2885f479d3?tabId=internalTx),檢查計數器合約是否部署成功。 -**第 3 步**:在搜索栏中复制并粘贴交易哈希值,然后按 Enter 键。 您应该能看到最近部署的合同。 +**第 3 步**:在搜索欄中複製並粘貼交易哈希值,然後按 Enter 鍵。 您應該能看到最近部署的合同。 ![](/img/build/get-started/forge-scope.png) -## 与合同互动 +## 與合同互動 -成功部署智能合约后,您需要正确调用和执行函数。 让我们使用 [Cast](https://book.getfoundry.sh/reference/cast/cast-send.html) 与 Kaia Kairos Network 上部署的合约互动吧。 在本节中,您将学习如何使用 [cast call](https://book.getfoundry.sh/reference/cast/cast-call) 执行 "只读 "函数和 [cast send](https://book.getfoundry.sh/reference/cast/cast-send) 执行 "写入 "函数。 +成功部署智能合約後,您需要正確調用和執行函數。 讓我們使用 [Cast](https://book.getfoundry.sh/reference/cast/cast-send.html) 與 Kaia Kairos Network 上部署的合約互動吧。 在本節中,您將學習如何使用 [cast call](https://book.getfoundry.sh/reference/cast/cast-call) 執行 "只讀 "函數和 [cast send](https://book.getfoundry.sh/reference/cast/cast-send) 執行 "寫入 "函數。 -**A. 调用**:要获取存储在合约中的数字,需要调用 `number` 函数。 运行下面的命令查看实际操作。 +**A. 調用**:要獲取存儲在合約中的數字,需要調用 `number` 函數。 運行下面的命令查看實際操作。 ```bash cast call YOUR_CONTRACT_ADDRESS "number()" --rpc-url RPC-API-ENDPOINT-HERE ``` -**举例** +**舉例** ```bash cast call 0x7E80F70EeA1aF481b80e2F128490cC9F7322e164 "number()" --rpc-url https://public-en-kairos.node.kaia.io ``` -**输出** +**輸出** ![](/img/build/get-started/cast-call-number.png) -您应该得到十六进制格式的数据: +您應該得到十六進制格式的數據: ```bash 0x0000000000000000000000000000000000000000000000000000000000000000 ``` -不过,为了得到您想要的结果,请使用投影法转换上述结果。 在这种情况下,数据是一个数字,因此可以将其转换为基数 10,得到结果 0: +不過,為了得到您想要的結果,請使用投影法轉換上述結果。 在這種情況下,數據是一個數字,因此可以將其轉換為基數 10,得到結果 0: ```bash cast --to-base 0x0000000000000000000000000000000000000000000000000000000000000000 10 ``` -**输出** +**輸出** ![](/img/build/get-started/cast-call-0.png) -**B. 发送**:要签署并发布一个事务,例如在计数器合约中执行一个 `setNumber` 函数,请运行下面的命令: +**B. 發送**:要簽署併發佈一個事務,例如在計數器合約中執行一個 `setNumber` 函數,請運行下面的命令: ```bash cast send --rpc-url= “setNumber(uint256)” arg --private-key= ``` -**举例** +**舉例** ```bash cast send --rpc-url=https://public-en-kairos.node.kaia.io 0x7E80F70EeA1aF481b80e2F128490cC9F7322e164 "setNumber(uint256)" 10 --private-key= ``` -**输出** +**輸出** ![](/img/build/get-started/cast-send-setNum.png) -**交叉检查编号** +**交叉檢查編號** ```bash cast call 0x7E80F70EeA1aF481b80e2F128490cC9F7322e164 "number()" --rpc-url https://public-en-kairos.node.kaia.io ``` -**输出** +**輸出** ![](/img/build/get-started/cast-call-10.png) -您应该得到十六进制格式的数据: +您應該得到十六進制格式的數據: ```bash 0x000000000000000000000000000000000000000000000000000000000000000a ``` -不过,为了得到您想要的结果,请使用投影法转换上述结果。 在本例中,数据是一个数字,因此可以将其转换为基数 10,得到结果 10: +不過,為了得到您想要的結果,請使用投影法轉換上述結果。 在本例中,數據是一個數字,因此可以將其轉換為基數 10,得到結果 10: ```bash cast --to-base 0x000000000000000000000000000000000000000000000000000000000000000a 10 ``` -**输出** +**輸出** ![](/img/build/get-started/cast-call-result-10.png) -## 使用 Cast 和 Anvil 分叉主网 +## 使用 Cast 和 Anvil 分叉主網 -Foundry 允许我们将主网分叉到本地开发网络([Anvil](https://book.getfoundry.sh/reference/anvil/))。 此外,您还可以使用 [Cast](https://book.getfoundry.sh/reference/cast/),在真实网络上与合同进行交互和测试。 +Foundry 允許我們將主網分叉到本地開發網絡([Anvil](https://book.getfoundry.sh/reference/anvil/))。 此外,您還可以使用 [Cast](https://book.getfoundry.sh/reference/cast/),在真實網絡上與合同進行交互和測試。 -### 开始 +### 開始 -现在,您已经启动并运行了 Foundry 项目,可以运行下面的命令 fork 主网: +現在,您已經啟動並運行了 Foundry 項目,可以運行下面的命令 fork 主網: ```bash anvil --fork-url rpc-url ``` -**举例** +**舉例** ```bash anvil --fork-url https://archive-en.node.kaia.io ``` -**输出** +**輸出** ![](/img/build/get-started/anvil-localnode.png) -成功运行该命令后,您的终端看起来就像上图一样。 您将拥有 10 个账户,这些账户拥有公钥和私钥以及 10,000 个预付代币。 分叉链的 RPC 服务器正在侦听 `127.0.0.1:8545`。 +成功運行該命令後,您的終端看起來就像上圖一樣。 您將擁有 10 個賬戶,這些賬戶擁有公鑰和私鑰以及 10,000 個預付代幣。 分叉鏈的 RPC 服務器正在偵聽 `127.0.0.1:8545`。 -要验证您是否已分叉网络,可以查询最新的区块编号: +要驗證您是否已分叉網絡,可以查詢最新的區塊編號: ```bash curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545 ``` -您可以使用 [十六进制转十进制](https://www.rapidtables.com/convert/number/hex-to-decimal.html)转换上述任务的结果。 您应该从分叉网络时获得最新的区块编号。 要验证这一点,请对照 [Kaiascope](https://kaiascope.com/block/118704896?tabId=txList)上的区块编号。 +您可以使用 [十六進制轉十進制](https://www.rapidtables.com/convert/number/hex-to-decimal.html)轉換上述任務的結果。 您應該從分叉網絡時獲得最新的區塊編號。 要驗證這一點,請對照 [Kaiascope](https://kaiascope.com/block/118704896?tabId=txList)上的區塊編號。 -### 插图 +### 插圖 -在本节中,您将了解如何将 oUSDC 代币从持有 oUSDC 的人转入 Anvil 创建的账户 (0x70997970C51812dc3A010C7d01b50e0d17dc79C8 - Bob) +在本節中,您將瞭解如何將 oUSDC 代幣從持有 oUSDC 的人轉入 Anvil 創建的賬戶 (0x70997970C51812dc3A010C7d01b50e0d17dc79C8 - Bob) -**转移 oUSDC** +**轉移 oUSDC** -访问 Kaiascope 并搜索 oUSDC 代币持有者(此处)。 让我们随便选一个账户。 在本例中,我们将使用 `0x8e61241e0525bd45cfc43dd7ba0229b422545bca`。 +訪問 Kaiascope 並搜索 oUSDC 代幣持有者(此處)。 讓我們隨便選一個賬戶。 在本例中,我們將使用 `0x8e61241e0525bd45cfc43dd7ba0229b422545bca`。 -让我们将合同和账户导出为环境变量: +讓我們將合同和賬戶導出為環境變量: ```bash export BOB=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 @@ -294,7 +294,7 @@ export oUSDC=0x754288077d0ff82af7a5317c7cb8c444d421d103 export oUSDCHolder=0x8e61241e0525bd45cfc43dd7ba0229b422545bca ``` -我们可以使用投币电话查看鲍勃的余额: +我們可以使用投幣電話查看鮑勃的餘額: ```bash cast call $oUSDC \ @@ -302,11 +302,11 @@ cast call $oUSDC \ $BOB ``` -**输出** +**輸出** ![](/img/build/get-started/oUsdcBob4.png) -同样,我们也可以使用调用功能查看 oUSDC 持有者的余额: +同樣,我們也可以使用調用功能查看 oUSDC 持有者的餘額: ```bash cast call $oUSDC \ @@ -314,11 +314,11 @@ cast call $oUSDC \ $oUSDCHolder ``` -**输出** +**輸出** ![](/img/build/get-started/oUsdcHolder4.png) -让我们使用 "发送 "功能将一些代币从幸运用户转给 Alice: +讓我們使用 "發送 "功能將一些代幣從幸運用戶轉給 Alice: ````bash cast rpc anvil_impersonateAccount $oUSDCHolder @@ -331,11 +331,11 @@ cast send $oUSDC \ ```0000 ```` -**输出** +**輸出** ![](/img/build/get-started/cast-send.png) -让我们检查一下转账是否成功: +讓我們檢查一下轉賬是否成功: ```bash cast call $oUSDC \ @@ -343,7 +343,7 @@ cast call $oUSDC \ $BOB ``` -**输出** +**輸出** ![](/img/build/get-started/oUsdcBobAfter.png) @@ -353,8 +353,8 @@ cast call $oUSDC \ $oUSDCHolder ``` -**输出** +**輸出** ![](/img/build/get-started/oUsdcHolderAfter.png) -有关代工的更深入指南,请参阅 [Foundry Docs](https://book.getfoundry.sh/)。 此外,您还可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/foundry) 上找到本指南的完整实现代码。 +有關代工的更深入指南,請參閱 [Foundry Docs](https://book.getfoundry.sh/)。 此外,您還可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/foundry) 上找到本指南的完整實現代碼。 From 27c3fefd33f1321f8e0cfebd0ab10a69bfed572a Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:00 +0800 Subject: [PATCH 0015/2513] New translations thirdweb.md (Chinese Simplified) --- .../build/smart-contracts/deploy/thirdweb.md | 128 +++++++++--------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md index 97c8889113bf..0fe25e125832 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md @@ -1,78 +1,78 @@ -# 使用 Thirdweb 部署智能合约 +# 使用 Thirdweb 部署智能合約 ![](/img/banners/kaia-thirdweb.png) -## 导言 +## 導言 -本节将指导您使用 [ThirdWeb](https://portal.thirdweb.com/),在 Kaia Network 上部署 Marketplace 合同和相应的 NFT 收集合同。 Thirdweb 是一个完整的 Web3 开发框架,可为您提供将应用程序和游戏连接到去中心化网络所需的一切。 +本節將指導您使用 [ThirdWeb](https://portal.thirdweb.com/),在 Kaia Network 上部署 Marketplace 合同和相應的 NFT 收集合同。 Thirdweb 是一個完整的 Web3 開發框架,可為您提供將應用程序和遊戲連接到去中心化網絡所需的一切。 -市场合约允许用户列出 NFT 进行直接销售或拍卖,从而加强了 NFT 的买卖,就像在 OpenSea 上所做的那样。 +市場合約允許用戶列出 NFT 進行直接銷售或拍賣,從而加強了 NFT 的買賣,就像在 OpenSea 上所做的那樣。 -完成本指南后,您将能够 +完成本指南後,您將能夠 -- 使用 thirdweb 创建和定制合同。 -- 使用 thirdweb 对智能合约进行编译、部署和交互。 +- 使用 thirdweb 創建和定製合同。 +- 使用 thirdweb 對智能合約進行編譯、部署和交互。 -## 入门 +## 入門 -在本文中,我们将探讨使用 thirdweb 创建、自定义和部署合同的不同方法,即 +在本文中,我們將探討使用 thirdweb 創建、自定義和部署合同的不同方法,即 -- 使用第三网络仪表板 +- 使用第三網絡儀表板 - 使用 thirdweb CLI -在本指南中,我们将演示如何使用 thirdweb 控制面板部署 MarketPlace 合同,并使用 thirdweb CLI 部署相应的 nft 集合,以便在市场上列出。 +在本指南中,我們將演示如何使用 thirdweb 控制面板部署 MarketPlace 合同,並使用 thirdweb CLI 部署相應的 nft 集合,以便在市場上列出。 -> 注:我们将不解释市场合约的机制,因为我们的重点是探索用于创建、部署和与智能合约交互的 thirdweb 面板和 CLI。 +> 注:我們將不解釋市場合約的機制,因為我們的重點是探索用於創建、部署和與智能合約交互的 thirdweb 面板和 CLI。 -## 使用 thirdweb 仪表板创建和部署市场合同 +## 使用 thirdweb 儀表板創建和部署市場合同 -在本节中,我们将使用 thirdweb 面板创建并部署市场合同。 为此,请按照以下步骤操作: +在本節中,我們將使用 thirdweb 面板創建並部署市場合同。 為此,請按照以下步驟操作: -1. 前往 [thirdweb dashboard](https://thirdweb.com/dashboard?ref=blog.thirdweb.com),从合同列表中选择 **MarketPlace** 合同。 +1. 前往 [thirdweb dashboard](https://thirdweb.com/dashboard?ref=blog.thirdweb.com),從合同列表中選擇 **MarketPlace** 合同。 ![](/img/build/get-started/marketplace-explore.png) -2. 在合同概览仪表板中单击**立即部署**。 +2. 在合同概覽儀表板中單擊**立即部署**。 ![](/img/build/get-started/marketplace-deploy.png) -3. 配置市场合同,使其包含以下参数:市场的**名称**、**描述**和**图像**。 +3. 配置市場合同,使其包含以下參數:市場的**名稱**、**描述**和**圖像**。 ![](/img/build/get-started/marketplace-contract-details.png) -4. 点击 **立即部署**,如上图所示,然后等待交易完成。 +4. 點擊 **立即部署**,如上圖所示,然後等待交易完成。 ![](/img/build/get-started/marketplace-deployed.png) -交易成功执行后,您可以在 [Kaiascope](https://kaiascope.com/)的搜索栏中粘贴合同地址,以验证您的部署。 +交易成功執行後,您可以在 [Kaiascope](https://kaiascope.com/)的搜索欄中粘貼合同地址,以驗證您的部署。 -## 使用 thirdweb CLI 创建和部署 NFT 收集合同 +## 使用 thirdweb CLI 創建和部署 NFT 收集合同 -在本节中,我们将使用 [thirdweb CLI](https://portal.thirdweb.com/cli?ref=blog.thirdweb.com)创建和部署将在 Marketplace 中列出的 NFT 程序集。 为此,请按照以下步骤操作: +在本節中,我們將使用 [thirdweb CLI](https://portal.thirdweb.com/cli?ref=blog.thirdweb.com)創建和部署將在 Marketplace 中列出的 NFT 程序集。 為此,請按照以下步驟操作: -### 创建合同 +### 創建合同 -1. 在终端中运行此命令来创建合同: +1. 在終端中運行此命令來創建合同: ```bash npx thirdweb create --contract ``` -2. 输入您喜欢的命令行提示值: +2. 輸入您喜歡的命令行提示值: - i. 为项目命名 + i. 為項目命名 - ii. 选择您喜欢的框架:**Hardhat** 或 **Foundry**. + ii. 選擇您喜歡的框架:**Hardhat** 或 **Foundry**. - iii. 为智能合约命名 + iii. 為智能合約命名 - iv. 选择基本合同类型:**空**、**ERC20**、**ERC721** 或 **ERC1155**。 添加任何所需的**扩展名**。 在本教程中,我们将选择 ERC721,并将扩展名设置为 "无"。 + iv. 選擇基本合同類型:**空**、**ERC20**、**ERC721** 或 **ERC1155**。 添加任何所需的**擴展名**。 在本教程中,我們將選擇 ERC721,並將擴展名設置為 "無"。 ![](/img/build/get-started/thirdweb-cli-info.png) -3. 创建完成后,请导航至项目根目录,并在首选代码编辑器中打开项目。 +3. 創建完成後,請導航至項目根目錄,並在首選代碼編輯器中打開項目。 -4. 打开合同文件夹,合同应该是这样的: +4. 打開合同文件夾,合同應該是這樣的: ```js // SPDX-License-Identifier: MIT @@ -97,73 +97,73 @@ contract nftcollection is ERC721Base { } ``` -上述合约演示了[ERC721Base](https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol) 的基本功能。 它导入并继承了 **ERC721Base** 合约,还实现了所需的方法,包括构造函数及其从属参数。 +上述合約演示了[ERC721Base](https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol) 的基本功能。 它導入並繼承了 **ERC721Base** 合約,還實現了所需的方法,包括構造函數及其從屬參數。 -您可以根据自己需要的自定义逻辑修改合同,一旦完成,您的合同就可以部署了。 +您可以根據自己需要的自定義邏輯修改合同,一旦完成,您的合同就可以部署了。 ### 部署合同 -1. 导航至项目根文件夹,在终端中运行该命令: +1. 導航至項目根文件夾,在終端中運行該命令: ```bash npx thirdweb deploy ``` -执行该命令将触发以下操作: +執行該命令將觸發以下操作: -- 检测框架(硬帽、代工厂) -- 编译当前目录下的所有合同。 -- 允许您选择要部署的合同。 -- 将编译好的智能合约代码(以应用程序二进制接口(ABI)的形式)上传到 IPFS。 +- 檢測框架(硬帽、代工廠) +- 編譯當前目錄下的所有合同。 +- 允許您選擇要部署的合同。 +- 將編譯好的智能合約代碼(以應用程序二進制接口(ABI)的形式)上傳到 IPFS。 -2. 部署完成后,将打开一个仪表板界面,填写其余参数。 - - **_name**:合同名称 - - **_symbol**:符号或 "股票代码" - - **_版税收款人**:接收二次销售版税的钱包地址 - - **_特许权使用费基点**:每次二次销售将给予特许权使用费收取人的基点 (bps),如 500 = 5%。 +2. 部署完成後,將打開一個儀表板界面,填寫其餘參數。 + - **_name**:合同名稱 + - **_symbol**:符號或 "股票代碼" + - **_版稅收款人**:接收二次銷售版稅的錢包地址 + - **_特許權使用費基點**:每次二次銷售將給予特許權使用費收取人的基點 (bps),如 500 = 5%。 -3. 选择 "Kaia Mainnet "作为部署合同的网络。 +3. 選擇 "Kaia Mainnet "作為部署合同的網絡。 ![](/img/build/get-started/nft-collection-deploy.png) -4. 智能合约部署完成后,您可以通过其仪表板管理其他设置和功能。 例如,您可以上传 NFT、配置权限和访问控制以及添加新功能。 +4. 智能合約部署完成後,您可以通過其儀表板管理其他設置和功能。 例如,您可以上傳 NFT、配置權限和訪問控制以及添加新功能。 -有关 thirdweb 部署命令的更多信息,请参阅 [deploy guide](https://portal.thirdweb.com/deploy/getting-started) 。 +有關 thirdweb 部署命令的更多信息,請參閱 [deploy guide](https://portal.thirdweb.com/deploy/getting-started) 。 -## 与已部署的合同互动 +## 與已部署的合同互動 -在本节中,我们将分别使用**mint**和**transferfrom**函数铸造一个 NFT 并将其转入另一个账户。 让我们按以下步骤来了解一下: +在本節中,我們將分別使用**mint**和**transferfrom**函數鑄造一個 NFT 並將其轉入另一個賬戶。 讓我們按以下步驟來了解一下: -### 铸币厂 +### 鑄幣廠 -1. 导航至新部署的合同 (**puppyKlan-NC**) 面板。 -2. 点击合同仪表板下**NFTs**选项卡中的**mint**功能。 +1. 導航至新部署的合同 (**puppyKlan-NC**) 面板。 +2. 點擊合同儀表板下**NFTs**選項卡中的**mint**功能。 ![](/img/build/get-started/puppy-mint-btn.png) -3. 填写铸造 NFT 所需的参数:**名称**、媒体\*\*、描述**和属性**。 +3. 填寫鑄造 NFT 所需的參數:**名稱**、媒體\*\*、描述**和屬性**。 ![](/img/build/get-started/puppy-mint-details.png) -4. 核对输入内容,然后点击 **Mint NFT** 按钮。 -5. 确认交易,等待交易完成。 完成后,您会看到仪表板上添加了 NFT,如下图所示: +4. 核對輸入內容,然後點擊 **Mint NFT** 按鈕。 +5. 確認交易,等待交易完成。 完成後,您會看到儀表板上添加了 NFT,如下圖所示: ![](/img/build/get-started/puppy-minted.png) -### 向新业主转让 NFT +### 向新業主轉讓 NFT -1. 前往合同 (**puppyKlan-NC**) 面板中的资源管理器选项卡。 -2. 在 "写 "选项卡下选择 **transferFrom** 功能,如下图所示。 -3. 填写必要的函数参数:from(地址)、to(地址)和 id(uint256)。 +1. 前往合同 (**puppyKlan-NC**) 面板中的資源管理器選項卡。 +2. 在 "寫 "選項卡下選擇 **transferFrom** 功能,如下圖所示。 +3. 填寫必要的函數參數:from(地址)、to(地址)和 id(uint256)。 ![](/img/build/get-started/puppy-transferfrom.png) -4. 确认交易,等待交易完成。 +4. 確認交易,等待交易完成。 -## 结论 +## 結論 -祝贺你 如果您读到了本指南的结尾。 如果您有任何问题,请访问 [Kaia 论坛](https://devforum.kaia.io/) 或联系 [官方第三网络支持](https://support.thirdweb.com/)。 不过,以下是您在 Kaia 上进一步使用 Thirdweb 时可能需要的有用资源列表。 +祝賀你 如果您讀到了本指南的結尾。 如果您有任何問題,請訪問 [Kaia 論壇](https://devforum.kaia.io/) 或聯繫 [官方第三網絡支持](https://support.thirdweb.com/)。 不過,以下是您在 Kaia 上進一步使用 Thirdweb 時可能需要的有用資源列表。 -- [Thirdweb文档](https://portal.thirdweb.com/) -- [如何使用 Thirdweb 构建 dApp](https://blog.thirdweb.com/guides/how-to-build-a-dapp/) -- [使用 NextJS 和 TypeScript 创建自己的 NFT 市场](https://blog.thirdweb.com/guides/nft-marketplace-with-typescript-next/) +- [Thirdweb文檔](https://portal.thirdweb.com/) +- [如何使用 Thirdweb 構建 dApp](https://blog.thirdweb.com/guides/how-to-build-a-dapp/) +- [使用 NextJS 和 TypeScript 創建自己的 NFT 市場](https://blog.thirdweb.com/guides/nft-marketplace-with-typescript-next/) From 922dca4ec3c8cc4d3c48f5d6019a7830509e840c Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:04 +0800 Subject: [PATCH 0016/2513] New translations ide-and-tools.md (Chinese Simplified) --- .../ide-and-tools/ide-and-tools.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md index c84185f3a377..13794b81724e 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md @@ -1,23 +1,23 @@ -# 集成开发环境和工具 +# 集成開發環境和工具 -本页包含可用于帮助在 Kaia 上开发智能合约的开发工具列表。 +本頁包含可用於幫助在 Kaia 上開發智能合約的開發工具列表。 #### [Remix Online IDE](https://remix.ethereum.org/) -Remix Online IDE 是一个功能强大的工具集,用于开发、部署、调试和测试与 EVM 兼容的智能合约。 您可以使用 Kaia Plugin 在 Remix IDE 上编写、编译、部署和执行智能合约。 +Remix Online IDE 是一個功能強大的工具集,用於開發、部署、調試和測試與 EVM 兼容的智能合約。 您可以使用 Kaia Plugin 在 Remix IDE 上編寫、編譯、部署和執行智能合約。 -#### [凯亚契约精灵](https://wizard.klaytn.foundation/) +#### [凱亞契約精靈](https://wizard.klaytn.foundation/) -Kaia Contracts Wizard 是一个交互式生成器,用于引导智能合约并了解 Kaia Contracts。 它基于 OpenZeppelin 向导。 +Kaia Contracts Wizard 是一個交互式生成器,用於引導智能合約並瞭解 Kaia Contracts。 它基於 OpenZeppelin 嚮導。 #### [Thirdweb](../deploy/thirdweb.md) -Thirdweb 是一个完整的 Web3 开发框架,可为您提供将应用程序和游戏连接到去中心化网络所需的一切。 +Thirdweb 是一個完整的 Web3 開發框架,可為您提供將應用程序和遊戲連接到去中心化網絡所需的一切。 #### [Kaia Wallet](../../tools/wallets/kaia-wallet.md) -Kaia 钱包是 Kaia 网络的浏览器扩展钱包。 Kaia 钱包使您能够存储 KAIA 和基于 Kaia 的代币并与之互动。 Kaia 钱包还能让您实时签署来自基于网络的 Kaia dApps 的交易。 +Kaia 錢包是 Kaia 網絡的瀏覽器擴展錢包。 Kaia 錢包使您能夠存儲 KAIA 和基於 Kaia 的代幣並與之互動。 Kaia 錢包還能讓您即時簽署來自基於網絡的 Kaia dApps 的交易。 #### [Kaiascope](../../tools/block-explorers/kaiascope.md) -Kaiascope 是 Kaia 网络的区块资源管理器。 您可以在浏览器上浏览和检查您的交易。 +Kaiascope 是 Kaia 網絡的區塊資源管理器。 您可以在瀏覽器上瀏覽和檢查您的交易。 From 8d6c8079af10cc050fe084bc80f23ac4189e7868 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:07 +0800 Subject: [PATCH 0017/2513] New translations porting-ethereum-contract.md (Chinese Simplified) --- .../porting-ethereum-contract.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md index 513275b563fe..484caaa4b429 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md @@ -1,34 +1,34 @@ -# 导入以太坊合约 +# 導入以太坊合約 -在大多数情况下,您可以在 Kaia 上使用以太坊合约,无需做任何修改。 -不过,要注意以下两个问题。 +在大多數情況下,您可以在 Kaia 上使用以太坊合約,無需做任何修改。 +不過,要注意以下兩個問題。 -## 稳固支持 +## 穩固支持 -- Kairos 网络目前与**伦敦**以太坊虚拟机 (EVM) 兼容。 -- Mainnet 目前与**伦敦**以太坊虚拟机 (EVM) 兼容。 +- Kairos 網絡目前與**倫敦**以太坊虛擬機 (EVM) 兼容。 +- Mainnet 目前與**倫敦**以太坊虛擬機 (EVM) 兼容。 :::note -v1.7.0 协议升级 - 不兼容的更改,包括**伊斯坦布尔**硬分叉项目和 Kaia 自己的项目。 -如果是 Kairos 网络,则从区块编号 "#75,373,312 "开始启用,如果是主网络,则从区块编号 "#86,816,005 "开始启用。 +v1.7.0 協議升級 - 不兼容的更改,包括**伊斯坦布爾**硬分叉項目和 Kaia 自己的項目。 +如果是 Kairos 網絡,則從區塊編號 "#75,373,312 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 -v1.7.3 协议升级 - 包括伦敦\*\*\*硬分叉产生的基本费用在内的不兼容变更。 -如果是 Kairos 网络,则从区块编号 "#80,295,291 "开始启用,如果是主网络,则从区块编号 "#86,816,005 "开始启用。 +v1.7.3 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#80,295,291 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 -v1.8.0 协议升级 - 包括伦敦\*\*\*硬分叉产生的基本费用在内的不兼容变更。 -如果是 Kairos 网络,则从区块编号 "#86,513,895 "开始启用,如果是主网,则从区块编号 "#86,816,005 "开始启用。 +v1.8.0 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#86,513,895 "開始啟用,如果是主網,則從區塊編號 "#86,816,005 "開始啟用。 ::: -不保证向后兼容 Kaia 上的其他 EVM 版本。 -因此,强烈建议根据协议升级状态使用正确的目标选项编译 Solidity 代码。 +不保證向後兼容 Kaia 上的其他 EVM 版本。 +因此,強烈建議根據協議升級狀態使用正確的目標選項編譯 Solidity 代碼。 - Kairos: --evm-version london - Mainnet: --evm-version london -- 其他(私有/服务链):根据协议升级状态确定 +- 其他(私有/服務鏈):根據協議升級狀態確定 -请参阅 [如何设置 Solc 的 EVM 版本](https://solidity.readthedocs.io/en/latest/using-the-compiler.html#setting-the-evm-version-to-target)。 +請參閱 [如何設置 Solc 的 EVM 版本](https://solidity.readthedocs.io/en/latest/using-the-compiler.html#setting-the-evm-version-to-target)。 命令示例如下: @@ -36,6 +36,6 @@ v1.8.0 协议升级 - 包括伦敦\*\*\*硬分叉产生的基本费用在内的 $ solc --evm-version london contract.sol ``` -## 解耦密钥对 +## 解耦密鑰對 -Kaia [decouples key pairs from addresses](../../learn/accounts.md#decoupling-key-pairs-from-addresses). 如果用户[更新账户](../../learn/transactions/basic.md#txtypeaccountupdate),特定账户的私钥会被替换为另一个账户的私钥。 大多数情况下,这不会影响您的业务逻辑。 但是,如果您的业务逻辑包括 ecrecover,则应考虑使用 validateSender。 更多详情,请参阅 [此处](../../learn/computation/precompiled-contracts.md)。 +Kaia [decouples key pairs from addresses](../../learn/accounts.md#decoupling-key-pairs-from-addresses). 如果用戶[更新賬戶](../../learn/transactions/basic.md#txtypeaccountupdate),特定賬戶的私鑰會被替換為另一個賬戶的私鑰。 大多數情況下,這不會影響您的業務邏輯。 但是,如果您的業務邏輯包括 ecrecover,則應考慮使用 validateSender。 更多詳情,請參閱 [此處](../../learn/computation/precompiled-contracts.md)。 From 4e8a318252890912d8ccb5c0eb84db13b8c7b374 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:11 +0800 Subject: [PATCH 0018/2513] New translations erc-20.md (Chinese Simplified) --- .../build/smart-contracts/samples/erc-20.md | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md index fa86ce4c73d8..1c9666967644 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md @@ -1,10 +1,10 @@ # ERC-20 -## 导言 +## 導言 -本教程帮助你创建一个符合[Kaia 代币标准](../token-standard.md),尤其是[Fungible Token Standard (ERC-20)](../token-standard.md#fungible-token-standard-kip-7)的ERC-20 兼容代币示例。 +本教程幫助你創建一個符合[Kaia 代幣標準](../token-standard.md),尤其是[Fungible Token Standard (ERC-20)](../token-standard.md#fungible-token-standard-kip-7)的ERC-20 兼容代幣示例。 -[ERC-20令牌标准](https://eips.ethereum.org/EIPS/eip-20) 定义了以下 2 个事件和 9 个方法(包括 3 个可选方法)。 与 ERC-20 兼容的代币是实现以下接口的代币合约。 +[ERC-20令牌標準](https://eips.ethereum.org/EIPS/eip-20) 定義了以下 2 個事件和 9 個方法(包括 3 個可選方法)。 與 ERC-20 兼容的代幣是實現以下接口的代幣合約。 ```text function name() public view returns (string) //optional @@ -21,22 +21,22 @@ event Transfer(address indexed _from, address indexed _to, uint256 _value) event Approval(address indexed _owner, address indexed _spender, uint256 _value) ``` -在上述界面的基础上,开发人员可以通过添加新功能和逻辑来定制令牌,并将其部署到 Kaia 网络上。 更多信息,请参阅官方 [ERC-20 文档](https://eips.ethereum.org/EIPS/eip-20)。 +在上述界面的基礎上,開發人員可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 更多信息,請參閱官方 [ERC-20 文檔](https://eips.ethereum.org/EIPS/eip-20)。 -在本教程中,您将实现与 ERC-20 兼容的令牌 `MyERC20.sol`。 该代币将发行预定数量的代币,并在部署时将所有代币发送给合约所有者。 +在本教程中,您將實現與 ERC-20 兼容的令牌 `MyERC20.sol`。 該代幣將發行預定數量的代幣,並在部署時將所有代幣發送給合約所有者。 -MyERC20.sol "基于 OpenZeppelin 的 ERC20 实现。 本教程的大部分代码来自 [OpenZeppelin 2.3 ](https://github.com/OpenZeppelin/openzeppelin-solidity/releases/tag/v2.3.0),以下 Solidity 文件用于实现 `MyERC20.sol`。 +MyERC20.sol "基於 OpenZeppelin 的 ERC20 實現。 本教程的大部分代碼來自 [OpenZeppelin 2.3 ](https://github.com/OpenZeppelin/openzeppelin-solidity/releases/tag/v2.3.0),以下 Solidity 文件用於實現 `MyERC20.sol`。 - [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/IERC20.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/IERC20.sol) - [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20.sol) - [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Detailed.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Detailed.sol) - [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/math/SafeMath.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/math/SafeMath.sol) -## 1. 编写 ERC-20 智能合约 +## 1. 編寫 ERC-20 智能合約 -### 1.1 MyERC20 的总体结构 +### 1.1 MyERC20 的總體結構 -MyERC20.sol "的完整源代码如下。 在此实现中,"构造器 "调用 "铸币",在部署合约时铸入预定数量的代币。 +MyERC20.sol "的完整源代碼如下。 在此實現中,"構造器 "調用 "鑄幣",在部署合約時鑄入預定數量的代幣。 ```text pragma solidity ^0.5.0; @@ -426,20 +426,20 @@ contract MyERC20 is IERC20 { } ``` -MyERC20.sol "由一个接口 "IERC20"、一个库 "SafeMath "和一个实现 "IERC20 "接口的合约 "MyERC20 "组成。 +MyERC20.sol "由一個接口 "IERC20"、一個庫 "SafeMath "和一個實現 "IERC20 "接口的合約 "MyERC20 "組成。 -- IERC20 "接口定义了[ERC-20 规范](https://eips.ethereum.org/EIPS/eip-20) 中描述的强制接口。 -- SafeMath "库定义了 Solidity 算术运算的包装器,并增加了溢出检查功能,可安全计算 Solidity 的 "uint256 "类型。 -- MyERC20 "实现了 "IERC20 "接口,还定义了三个可选方法,详见[ERC-20 规范](https://eips.ethereum.org/EIPS/eip-20)。 - - 除 ERC20 外,还定义了 "构造器",该构造器用于定义新的 ERC20 令牌名称和符号,并铸造预定数量的令牌。 `constructor` 在首次部署时被调用一次。 +- IERC20 "接口定義了[ERC-20 規範](https://eips.ethereum.org/EIPS/eip-20) 中描述的強制接口。 +- SafeMath "庫定義了 Solidity 算術運算的包裝器,並增加了溢出檢查功能,可安全計算 Solidity 的 "uint256 "類型。 +- MyERC20 "實現了 "IERC20 "接口,還定義了三個可選方法,詳見[ERC-20 規範](https://eips.ethereum.org/EIPS/eip-20)。 + - 除 ERC20 外,還定義了 "構造器",該構造器用於定義新的 ERC20 令牌名稱和符號,並鑄造預定數量的令牌。 `constructor` 在首次部署時被調用一次。 ### 1.2 看看重要的方法 -让我们来详细了解一些重要的方法。 +讓我們來詳細瞭解一些重要的方法。 #### \(1\) `function balanceOf(address account) external view returns (uint256);` -balanceOf "是 ERC-20 的强制方法。 `balanceOf` 返回给定地址的余额。 +balanceOf "是 ERC-20 的強制方法。 `balanceOf` 返回給定地址的餘額。 ```text function balanceOf(address account) public view returns (uint256) { @@ -447,19 +447,19 @@ balanceOf "是 ERC-20 的强制方法。 `balanceOf` 返回给定地址的余额 } ``` -`balanceOf` 只返回存储在 `_balances`中的 key`account` 的值,它是 `mapping (address => uint256)`类型,如下所示。 +`balanceOf` 只返回存儲在 `_balances`中的 key`account` 的值,它是 `mapping (address => uint256)`類型,如下所示。 ```text mapping (address => uint256) private _balances; ``` -如果 `_balances`中没有可用的 key `account` ,则只会返回 `0`。 +如果 `_balances`中沒有可用的 key `account` ,則只會返回 `0`。 #### \(2\) `function transfer(address recipient, uint256 amount) external returns (bool);` -转让 "是 ERC-20 的强制性方法。 transfer "会将 "数量 "代币转移给 "接收方",并且必须触发 "Transfer "事件。 如果消息调用者的账户余额没有足够的代币可供使用,函数应抛出。 +轉讓 "是 ERC-20 的強制性方法。 transfer "會將 "數量 "代幣轉移給 "接收方",並且必須觸發 "Transfer "事件。 如果消息調用者的賬戶餘額沒有足夠的代幣可供使用,函數應拋出。 -transfer "只是调用内部方法"_transfer",它实现的实际传输和事件如下。 +transfer "只是調用內部方法"_transfer",它實現的實際傳輸和事件如下。 ```text function transfer(address recipient, uint256 amount) public returns (bool) { @@ -468,9 +468,9 @@ transfer "只是调用内部方法"_transfer",它实现的实际传输和事 } ``` -`_transfer` 实现 ERC-20 的 `transfer` 方法的实际行为。 +`_transfer` 實現 ERC-20 的 `transfer` 方法的實際行為。 -此外,它还能防止使用下面的 `require` 从零地址或向零地址发送令牌。 +此外,它還能防止使用下面的 `require` 從零地址或向零地址發送令牌。 ```text function _transfer(address sender, address recipient, uint256 amount) internal { @@ -485,9 +485,9 @@ transfer "只是调用内部方法"_transfer",它实现的实际传输和事 #### \(3\) `function approve(address spender, uint256 amount) external returns (bool);` -批准 "是 ERC-20 的强制性方法。 批准 "允许 "支出人 "多次从您的账户中提款,但以 "金额 "为限。 如果多次调用此函数,则会将津贴重置为 `amount`。 +批准 "是 ERC-20 的強制性方法。 批准 "允許 "支出人 "多次從您的賬戶中提款,但以 "金額 "為限。 如果多次調用此函數,則會將津貼重置為 `amount`。 -approve "只是调用内部方法"_approve",它实现了 "approve "的实际行为。 msg.sender "作为账户 "owner "传递。 +approve "只是調用內部方法"_approve",它實現了 "approve "的實際行為。 msg.sender "作為賬戶 "owner "傳遞。 ```text function approve(address spender, uint256 value) public returns (bool) { @@ -504,7 +504,7 @@ approve "只是调用内部方法"_approve",它实现了 "approve "的实际 } ``` -批准 "更新 "允许值","允许值 "是一个二维字典,保存了特定 "地址 "的 "支出人 "的允许 "值"。 +批准 "更新 "允許值","允許值 "是一個二維字典,保存了特定 "地址 "的 "支出人 "的允許 "值"。 ```text mapping (address => mapping (address => uint256)) private _allowances; @@ -512,7 +512,7 @@ approve "只是调用内部方法"_approve",它实现了 "approve "的实际 #### \(4\) `function _mint(address account, uint256 amount) internal`. -`_mint` 不是 ERC-20 的一部分。 但是,我们需要一种方法来创建新的 ERC-20 令牌,因此在此实现中引入了 `_mint` 来创建新令牌,如下所示。 +`_mint` 不是 ERC-20 的一部分。 但是,我們需要一種方法來創建新的 ERC-20 令牌,因此在此實現中引入了 `_mint` 來創建新令牌,如下所示。 ```text function _mint(address account, uint256 amount) internal { @@ -524,58 +524,58 @@ approve "只是调用内部方法"_approve",它实现了 "approve "的实际 } ``` -`_mint` 是一个内部方法,可在本合同内部调用。 +`_mint` 是一個內部方法,可在本合同內部調用。 -在`MyERC20.sol`中,当部署智能合约以铸造预定数量的代币时,`_mint`只从`constructor`调用一次。 +在`MyERC20.sol`中,當部署智能合約以鑄造預定數量的代幣時,`_mint`只從`constructor`調用一次。 -如果想在部署智能合约后发行额外的代币,就必须引入一个新的公共方法,如 `mint`。 实施该方法时应小心谨慎,因为只有授权用户才能铸造令牌。 +如果想在部署智能合約後發行額外的代幣,就必須引入一個新的公共方法,如 `mint`。 實施該方法時應小心謹慎,因為只有授權用戶才能鑄造令牌。 -更多详情,请参阅 OpenZeppelin 示例 [ERC20Mintable.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Mintable.sol)。 +更多詳情,請參閱 OpenZeppelin 示例 [ERC20Mintable.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Mintable.sol)。 -## 2. 部署智能合约 +## 2. 部署智能合約 -在本节中,您将使用 Remix Online IDE 部署 MyERC20 智能合约。 MYERC20.sol 的完整源代码见 [编写 ERC-20 智能合约](https://docs.kaia.io/build/smart-contracts/samples/erc-20/#1-writing-erc-20-smart-contract)。 +在本節中,您將使用 Remix Online IDE 部署 MyERC20 智能合約。 MYERC20.sol 的完整源代碼見 [編寫 ERC-20 智能合約](https://docs.kaia.io/build/smart-contracts/samples/erc-20/#1-writing-erc-20-smart-contract)。 -### 2.1 先决条件 +### 2.1 先決條件 -- [Kaia Wallet](../../tools/wallets/kaia-wallet.md):用于部署合约、签署交易和与合约交互。 -- 从 [水龙头](https://faucet.kaia.io)测试 KAIA:为账户注入足够的 KAIA。 +- [Kaia Wallet](../../tools/wallets/kaia-wallet.md):用於部署合約、簽署交易和與合約交互。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 -你可以使用 Remix Online IDE 或 Truffle 来部署 `MyERC20` 智能合约。 +你可以使用 Remix Online IDE 或 Truffle 來部署 `MyERC20` 智能合約。 -### 2.2 使用 Remix 在线集成开发环境部署智能合约 +### 2.2 使用 Remix 在線集成開發環境部署智能合約 Remix IDE -- 导航至 [Kaia Remix 插件](https://ide.kaia.io/) -- 在合同文件夹中创建一个 `MyERC20.sol` 文件 -- 在 Remix 中,点击**编译**合同。 -- 安装插件后,点击左侧的 Kaia(前 Klaytn)选项卡 -- 选择 **环境** > **注入式提供商** - **Kaia Wallet**。 -- 在合同字段中,选择您的合同。 例如,MyERC20。 -- 在部署 **KAIROSTOKEN**、**KAIROS** 和 **8** 时分配以下参数 -- 点击 **部署**。 +- 導航至 [Kaia Remix 插件](https://ide.kaia.io/) +- 在合同文件夾中創建一個 `MyERC20.sol` 文件 +- 在 Remix 中,點擊**編譯**合同。 +- 安裝插件後,點擊左側的 Kaia(前 Klaytn)選項卡 +- 選擇 **環境** > **注入式提供商** - **Kaia Wallet**。 +- 在合同字段中,選擇您的合同。 例如,MyERC20。 +- 在部署 **KAIROSTOKEN**、**KAIROS** 和 **8** 時分配以下參數 +- 點擊 **部署**。 ![ERC20-1-deploy](/img/build/smart-contracts/remix-layout-erc20-example.png) -部署完成后,可以使用用于部署合同的账户调用 `balanceOf` 。 您会发现您的账户中有 `10000000000000` 代币,如下所示。 由于您在部署上述合约时将 `decimal` 设置为 `8`,因此它在构造器中铸造了固定数量的 `100000` 代币,其中一个代币的十进制值为 `10^8`。 totalSupply "方法将返回已铸造代币的总供应量,也应为 "10000000000000"。 +部署完成後,可以使用用於部署合同的賬戶調用 `balanceOf` 。 您會發現您的賬戶中有 `10000000000000` 代幣,如下所示。 由於您在部署上述合約時將 `decimal` 設置為 `8`,因此它在構造器中鑄造了固定數量的 `100000` 代幣,其中一個代幣的十進制值為 `10^8`。 totalSupply "方法將返回已鑄造代幣的總供應量,也應為 "10000000000000"。 ![ERC20-2-owner-token](/img/build/smart-contracts/bal-ts-erc20-example.png) -MyERC20 "现已上线! +MyERC20 "現已上線! -## 3. 与 Kaia 钱包中的 ERC-20 令牌互动 +## 3. 與 Kaia 錢包中的 ERC-20 令牌互動 -您可以使用 Kaia 钱包查看余额,并转移您刚刚部署的与 ERC-20 兼容的 KAIROSTOKEN。 要在 Kaia 钱包中查看令牌余额,请按以下步骤操作: +您可以使用 Kaia 錢包查看餘額,並轉移您剛剛部署的與 ERC-20 兼容的 KAIROSTOKEN。 要在 Kaia 錢包中查看令牌餘額,請按以下步驟操作: -Kaia 钱包 +Kaia 錢包 -- 打开 Kaia 钱包 -- 点击令牌列表图标,然后点击添加令牌按钮 +- 打開 Kaia 錢包 +- 點擊令牌列表圖標,然後點擊添加令牌按鈕 ![](/img/build/smart-contracts/kaia-add-token-kw.png) -- 在 "自定义令牌 "选项卡下的 "令牌合约地址 "字段中粘贴 myERC20.sol 合约的地址。 -- 然后按照提示添加令牌。 您的令牌列表模式应该是这样的: +- 在 "自定義令牌 "選項卡下的 "令牌合約地址 "字段中粘貼 myERC20.sol 合約的地址。 +- 然後按照提示添加令牌。 您的令牌列表模式應該是這樣的: ![](/img/build/smart-contracts/kaia-add-token-kw-ii.png) From 753aefca457b0143c04c409ceeec162be9b17fc2 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:15 +0800 Subject: [PATCH 0019/2513] New translations erc-721.md (Chinese Simplified) --- .../build/smart-contracts/samples/erc-721.md | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md index 2fc1fa18801b..c77d0ed875e0 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md @@ -1,11 +1,11 @@ # ERC-721 -## 导言 +## 導言 -本教程可帮助您创建一个符合[Kaia 令牌标准](../token-standard.md),尤其是[不可篡改令牌标准(ERC-721)](../token-standard.md#non-fungible-token-standard-kip-17)的ERC-721兼容令牌示例。 +本教程可幫助您創建一個符合[Kaia 令牌標準](../token-standard.md),尤其是[不可篡改令牌標準(ERC-721)](../token-standard.md#non-fungible-token-standard-kip-17)的ERC-721兼容令牌示例。 -[ERC-721不可封代币标准](https://eips.ethereum.org/EIPS/eip-721) 定义了以下三个事件和 10 种方法。 ERC-721 的 `supportsInterface` 源自 [ERC-165 标准接口检测](https://eips.ethereum.org/EIPS/eip-165),ERC-165 是 ERC-721 的一部分。 -ERC-721兼容代币是实施ERC-721和ERC-165接口的代币合约,具体如下。 +[ERC-721不可封代幣標準](https://eips.ethereum.org/EIPS/eip-721) 定義了以下三個事件和 10 種方法。 ERC-721 的 `supportsInterface` 源自 [ERC-165 標準接口檢測](https://eips.ethereum.org/EIPS/eip-165),ERC-165 是 ERC-721 的一部分。 +ERC-721兼容代幣是實施ERC-721和ERC-165接口的代幣合約,具體如下。 ```solidity event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); @@ -24,20 +24,20 @@ function isApprovedForAll(address _owner, address _operator) external view retur function supportsInterface(bytes4 interfaceID) external view returns (bool); ``` -在上述界面的基础上,开发人员可以通过添加新功能和逻辑来定制令牌,并将其部署到 Kaia 网络上。 -更多信息,请参阅官方[ERC-721 规范](https://eips.ethereum.org/EIPS/eip-721)。 +在上述界面的基礎上,開發人員可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 +更多信息,請參閱官方[ERC-721 規範](https://eips.ethereum.org/EIPS/eip-721)。 -在本教程中,您将实现 "MyERC721Card.sol",它将实现一种卡片类型的不可篡改令牌,即 "MyERC721Card",它是一种ERC-721令牌。 -每张 "MyERC721Card "都有名称和级别,例如 "King"(国王)的级别为 1,"Queen"(王后)的级别为 1。 +在本教程中,您將實現 "MyERC721Card.sol",它將實現一種卡片類型的不可篡改令牌,即 "MyERC721Card",它是一種ERC-721令牌。 +每張 "MyERC721Card "都有名稱和級別,例如 "King"(國王)的級別為 1,"Queen"(王后)的級別為 1。 -MyERC721Card.sol "基于 OpenZeppelin 的 ERC721 实现。 本教程的大部分代码来自 OpenZeppelin 2.3 +MyERC721Card.sol "基於 OpenZeppelin 的 ERC721 實現。 本教程的大部分代碼來自 OpenZeppelin 2.3 。 -## 1. 编写 ERC-721 智能合约 +## 1. 編寫 ERC-721 智能合約 -### 1.1 MyERC721Card 的总体结构 +### 1.1 MyERC721Card 的總體結構 -MyERC721Card.sol\` 的完整源代码如下。 +MyERC721Card.sol\` 的完整源代碼如下。 ```text pragma solidity ^0.5.0; @@ -668,25 +668,25 @@ contract MyERC721Card is ERC721{ } ``` -MyERC721Card.sol`包括一个接口(`IERC165`)、三个库(`Address`、`SafeMath`和`Counters`)和四个合约(`ERC165`、`IERC721`、`IERC721Receiver`和`MyERC721Card\`)。 +MyERC721Card.sol`包括一個接口(`IERC165`)、三個庫(`Address`、`SafeMath`和`Counters`)和四個合約(`ERC165`、`IERC721`、`IERC721Receiver`和`MyERC721Card\`)。 -- IERC165 "接口定义了[ERC-165 规范](https://eips.ethereum.org/EIPS/eip-165) 中描述的接口。 -- 地址 "库定义了 "isContract "方法,用于测试 "账户 "是否为合同。 -- SafeMath "库定义了 Solidity 算术运算的包装器,并增加了溢出检查功能,可安全计算 Solidity 的 "uint256 "类型。 -- 计数器库定义了只能递增或递减一个的计数器。 用于跟踪发行 ERC721 id 的元素数量。 -- ERC165 "实现了 "IERC165 "接口。 -- IERC721 "定义了[ERC-721 规范](https://eips.ethereum.org/EIPS/eip-721) 中描述的接口,其中还包括 ERC-165。 -- IERC721Receiver 定义了 `onERC721Received` 用于 `MyERC721Card` 合约。 -- ERC721 "实现了 "IERC721 "和 "ERC165"。 -- MyERC721Card "使用 "ERC721 "实现了一种带有名称和级别的卡片类型不可篡改令牌,只有 "MyERC721Card "合约的所有者才能铸造新卡。 +- IERC165 "接口定義了[ERC-165 規範](https://eips.ethereum.org/EIPS/eip-165) 中描述的接口。 +- 地址 "庫定義了 "isContract "方法,用於測試 "賬戶 "是否為合同。 +- SafeMath "庫定義了 Solidity 算術運算的包裝器,並增加了溢出檢查功能,可安全計算 Solidity 的 "uint256 "類型。 +- 計數器庫定義了只能遞增或遞減一個的計數器。 用於跟蹤發行 ERC721 id 的元素數量。 +- ERC165 "實現了 "IERC165 "接口。 +- IERC721 "定義了[ERC-721 規範](https://eips.ethereum.org/EIPS/eip-721) 中描述的接口,其中還包括 ERC-165。 +- IERC721Receiver 定義了 `onERC721Received` 用於 `MyERC721Card` 合約。 +- ERC721 "實現了 "IERC721 "和 "ERC165"。 +- MyERC721Card "使用 "ERC721 "實現了一種帶有名稱和級別的卡片類型不可篡改令牌,只有 "MyERC721Card "合約的所有者才能鑄造新卡。 ### 1.2 看看重要的方法 -让我们来详细了解一些重要的方法。 +讓我們來詳細瞭解一些重要的方法。 -#### \(1\)ERC721的 "构造函数 "和"_INTERFACE_ID_ERC721"。 +#### \(1\)ERC721的 "構造函數 "和"_INTERFACE_ID_ERC721"。 -constructor "会注册"_INTERFACE_ID_ERC721",这是一个从 ERC-721 接口导出的 4 字节哈希值,如下所示。 +constructor "會註冊"_INTERFACE_ID_ERC721",這是一個從 ERC-721 接口導出的 4 字節哈希值,如下所示。 ```text /* @@ -711,11 +711,11 @@ constructor "会注册"_INTERFACE_ID_ERC721",这是一个从 ERC-721 接口导 } ``` -注册后,当调用 `_INTERFACE_ID_ERC721` 时,ERC-721 和 ERC-165 的 `supportsInterface` 接口会返回 `true`,并告知此合约正在实现 ERC-721 接口。 +註冊後,當調用 `_INTERFACE_ID_ERC721` 時,ERC-721 和 ERC-165 的 `supportsInterface` 接口會返回 `true`,並告知此合約正在實現 ERC-721 接口。 #### \(2\) `function balanceOf(address owner) public view returns (uint256 balance);` -balanceOf "是ERC-721的强制方法。 `balanceOf` 返回 `owner` 账户中的 NFT 数量。 +balanceOf "是ERC-721的強制方法。 `balanceOf` 返回 `owner` 賬戶中的 NFT 數量。 ```text function balanceOf(address owner) public view returns (uint256) { @@ -725,7 +725,7 @@ balanceOf "是ERC-721的强制方法。 `balanceOf` 返回 `owner` 账户中的 } ``` -`balanceOf` 只是从 `owner` 在 `ownedTokensCount` 中维护的 `Counter` 对象中返回当前计数。 +`balanceOf` 只是從 `owner` 在 `ownedTokensCount` 中維護的 `Counter` 對象中返回當前計數。 ```text // Mapping from owner to number of owned token @@ -734,7 +734,7 @@ balanceOf "是ERC-721的强制方法。 `balanceOf` 返回 `owner` 账户中的 #### \(3\) `safeTransferFrom` 和 `transferFrom` -这些函数将给定令牌 ID 的所有权转移到另一个地址。 ERC-721要求使用两种 "safeTransferFrom "方法,一种包含 "数据",另一种不包含 "数据"。 除了不带 `data` 的方法只是将 `data` 设为 `""`,这两种方法的工作原理完全相同。 `safeTransferFrom` 在调用 `transferFrom` 时会进行更多检查,如下所示,与 `transferFrom` 相比,"safeTransferFrom "更受欢迎,后者也是 ERC-721 的强制方法。 +這些函數將給定令牌 ID 的所有權轉移到另一個地址。 ERC-721要求使用兩種 "safeTransferFrom "方法,一種包含 "數據",另一種不包含 "數據"。 除了不帶 `data` 的方法只是將 `data` 設為 `""`,這兩種方法的工作原理完全相同。 `safeTransferFrom` 在調用 `transferFrom` 時會進行更多檢查,如下所示,與 `transferFrom` 相比,"safeTransferFrom "更受歡迎,後者也是 ERC-721 的強制方法。 ```text function safeTransferFrom(address from, address to, uint256 tokenId) public { @@ -754,7 +754,7 @@ balanceOf "是ERC-721的强制方法。 `balanceOf` 返回 `owner` 账户中的 } ``` -`safeTransferFrom` 检查 `to` 地址是否能接收令牌。 `_checkOnERC721Received` 具有验证逻辑。 如果 `to` 地址是一个合约,则该合约应实现 ERC-721 的 `onERC721Received` 接口,并返回正确的 4 字节哈希值以接收 ERC-721 令牌,如下所示。 +`safeTransferFrom` 檢查 `to` 地址是否能接收令牌。 `_checkOnERC721Received` 具有驗證邏輯。 如果 `to` 地址是一個合約,則該合約應實現 ERC-721 的 `onERC721Received` 接口,並返回正確的 4 字節哈希值以接收 ERC-721 令牌,如下所示。 ```text function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) @@ -769,7 +769,7 @@ balanceOf "是ERC-721的强制方法。 `balanceOf` 返回 `owner` 账户中的 } ``` -transferFrom "实际上是转移给定 "tokenId "的所有权,如下所示。 +transferFrom "實際上是轉移給定 "tokenId "的所有權,如下所示。 ```text function _transferFrom(address from, address to, uint256 tokenId) internal { @@ -789,7 +789,7 @@ transferFrom "实际上是转移给定 "tokenId "的所有权,如下所示。 #### \(4\) `function _mint(address to, uint256 tokenId) internal`. -`_mint` 不是 ERC-721 的一部分。 不过,我们需要一种方法来创建新的 ERC-721 令牌,并在此实现中引入了 `_mint` 来创建新令牌,如下所示。 +`_mint` 不是 ERC-721 的一部分。 不過,我們需要一種方法來創建新的 ERC-721 令牌,並在此實現中引入了 `_mint` 來創建新令牌,如下所示。 ```text function _mint(address to, uint256 tokenId) internal { @@ -803,7 +803,7 @@ transferFrom "实际上是转移给定 "tokenId "的所有权,如下所示。 } ``` -`_mint` 是一个内部方法,可在本合同内部调用。 在`MyERC721Card.sol`中,`_mint`仅从`MyERC721Card`合约中的`mintCard`方法调用。 只有智能合约的所有者才能调用 "mintCard"。 +`_mint` 是一個內部方法,可在本合同內部調用。 在`MyERC721Card.sol`中,`_mint`僅從`MyERC721Card`合約中的`mintCard`方法調用。 只有智能合約的所有者才能調用 "mintCard"。 ```text function mintCard(string name, address account) public { @@ -814,30 +814,30 @@ transferFrom "实际上是转移给定 "tokenId "的所有权,如下所示。 } ``` -## 2. 部署智能合约 +## 2. 部署智能合約 -你可以使用 Remix Online IDE 或使用 truffle 来部署上述 `MyERC721Card` 智能合约。 +你可以使用 Remix Online IDE 或使用 truffle 來部署上述 `MyERC721Card` 智能合約。 -### 2.1 使用 Remix 在线 IDE 部署智能合约 +### 2.1 使用 Remix 在線 IDE 部署智能合約 -- 请访问 [Kaia Plugin for Remix](https://ide.kaia.io) 并创建 "MyERC721Card "合同。 完整源代码见 [Writing ERC-721 Smart Contract](#1-writing-erc-721-smart-contract)。 -- 创建一个账户来部署合同。 - - 如果您还没有账户,请在 [https://toolkit.kaia.io/account/accountKeyLegacy](https://toolkit.kaia.io/account/accountKeyLegacy) 上创建一个账户。 - - 从水龙头获取一些测试 KAIA - [https://faucet.kaia.io](https://faucet.kaia.io) -- 让我们如下部署 `MyERC721Card.sol`。 +- 請訪問 [Kaia Plugin for Remix](https://ide.kaia.io) 並創建 "MyERC721Card "合同。 完整源代碼見 [Writing ERC-721 Smart Contract](#1-writing-erc-721-smart-contract)。 +- 創建一個賬戶來部署合同。 + - 如果您還沒有賬戶,請在 [https://toolkit.kaia.io/account/accountKeyLegacy](https://toolkit.kaia.io/account/accountKeyLegacy) 上創建一個賬戶。 + - 從水龍頭獲取一些測試 KAIA - [https://faucet.kaia.io](https://faucet.kaia.io) +- 讓我們如下部署 `MyERC721Card.sol`。 ![ERC721-1-deploy](/img/build/smart-contracts/erc721-1-deploy.png) -现在,`MyERC721Card` 已上线! 您可以铸造和转移与 ERC-721 兼容的非赝品代币卡。 +現在,`MyERC721Card` 已上線! 您可以鑄造和轉移與 ERC-721 兼容的非贗品代幣卡。 -让我们为账户 "0x2645BA5Be42FeEe907ca8e9d88f6Ee6dAd8c1410 "铸造两张卡片,即 "国王 "卡和 "王后 "卡,如下所示。 +讓我們為賬戶 "0x2645BA5Be42FeEe907ca8e9d88f6Ee6dAd8c1410 "鑄造兩張卡片,即 "國王 "卡和 "王后 "卡,如下所示。 ![ERC721-2-mint-king](/img/build/smart-contracts/erc721-2-mint-king.png) ![ERC721-3-mint-queen](/img/build/smart-contracts/erc721-3-mint-queen.png) -现在我们已经铸造了两张卡片,让我们检查一下这些 `MyERC721Card` 不可篡改令牌的状态。 +現在我們已經鑄造了兩張卡片,讓我們檢查一下這些 `MyERC721Card` 不可篡改令牌的狀態。 ![ERC721-4-cards-status](/img/build/smart-contracts/erc721-4-cards-status.png) -- balanceOf`显示账户`0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410\` 有两张卡。 -- 参数为 `1` 的 `cards` 显示令牌 ID 为 `1` 的 `MyERC721Card` 是 1 级的 `Queen` 。 -- 参数 `0` 的 `ownerOf` 显示令牌 ID `0` 的 `MyERC721Card` 的所有者是 `0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410`。 +- balanceOf`顯示賬戶`0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410\` 有兩張卡。 +- 參數為 `1` 的 `cards` 顯示令牌 ID 為 `1` 的 `MyERC721Card` 是 1 級的 `Queen` 。 +- 參數 `0` 的 `ownerOf` 顯示令牌 ID `0` 的 `MyERC721Card` 的所有者是 `0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410`。 From 0d3a481761651aa5b7b6ed6e2bcfa0005435ef45 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:19 +0800 Subject: [PATCH 0020/2513] New translations kaiagreeter.md (Chinese Simplified) --- .../smart-contracts/samples/kaiagreeter.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md index d77f00748179..281dc12c2e98 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md @@ -1,8 +1,8 @@ # KaiaGreeter -`KaiaGreeter`是一个返回问候信息的简单合约。 问候信息在部署合同时设置。 +`KaiaGreeter`是一個返回問候信息的簡單合約。 問候信息在部署合同時設置。 -## 写作 KaiaGreeter +## 寫作 KaiaGreeter ``` pragma solidity 0.5.6; @@ -29,18 +29,18 @@ contract KaiaGreeter is Mortal { } ``` -## 使用 Remix 在线集成开发环境部署 KaiaGreeter +## 使用 Remix 在線集成開發環境部署 KaiaGreeter -- 请访问 [Kaia Plugin for Remix](https://ide.kaia.io) 并创建 "KaiaGreeter "合同。 上文提供了完整的源代码。 -- 准备用于部署合同的账户。 - - 如果您还没有账户,请在 [https://toolkit.kaia.io/account/accountKeyLegacy](https://toolkit.kaia.io/account/accountKeyLegacy) 上创建一个账户。 - - 从水龙头获取一些测试 KAIA - [https://kairos.wallet.kaia.io/faucet](https://kairos.wallet.kaia.io/faucet) -- 部署带有初始参数(问候语)的合同。 -- 部署完成后,可以在集成开发环境中调用 `greet`。 +- 請訪問 [Kaia Plugin for Remix](https://ide.kaia.io) 並創建 "KaiaGreeter "合同。 上文提供了完整的源代碼。 +- 準備用於部署合同的賬戶。 + - 如果您還沒有賬戶,請在 [https://toolkit.kaia.io/account/accountKeyLegacy](https://toolkit.kaia.io/account/accountKeyLegacy) 上創建一個賬戶。 + - 從水龍頭獲取一些測試 KAIA - [https://kairos.wallet.kaia.io/faucet](https://kairos.wallet.kaia.io/faucet) +- 部署帶有初始參數(問候語)的合同。 +- 部署完成後,可以在集成開發環境中調用 `greet`。 -## 参考资料 +## 參考資料 -有关合同部署详情和 Remix Online IDE 使用指南,请参阅以下文件。 +有關合同部署詳情和 Remix Online IDE 使用指南,請參閱以下文件。 -- [Remix 在线集成开发环境](../../smart-contracts/ide-and-tools/ide-and-tools.md#kaia-ide) +- [Remix 在線集成開發環境](../../smart-contracts/ide-and-tools/ide-and-tools.md#kaia-ide) - [部署指南](../deploy/deploy.md) From 0f83b3e3cb9ed65ff88c6e33a9032fbf14cb2455 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:21 +0800 Subject: [PATCH 0021/2513] New translations samples.md (Chinese Simplified) --- .../current/build/smart-contracts/samples/samples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md index 965780b2deca..615ebe34e111 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md @@ -1,4 +1,4 @@ -# 合同样本 +# 合同樣本 ```mdx-code-block import DocCardList from '@theme/DocCardList'; From 630928c3c0ba4b78e50685fff266a71980e76212 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:25 +0800 Subject: [PATCH 0022/2513] New translations smart-contracts.md (Chinese Simplified) --- .../current/build/smart-contracts/smart-contracts.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md index 96ae913266b5..cc58b8ff8a6a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md @@ -1,10 +1,10 @@ -# 智能合约 +# 智能合約 -本节介绍智能合约开发所需的开发资源。 +本節介紹智能合約開發所需的開發資源。 -为了编写智能合约,Kaia 目前支持 [Solidity](https://github.com/ethereum/solidity) 作为主要编程语言。 之所以在 Kaia 中采用 Solidity,是因为它是以太坊事实上的标准合约编程语言,拥有庞大的用户群和活跃的社区。 Kaia 团队决定为用户提供熟悉的开发体验,以便以太坊 DApp 开发人员可以轻松尝试或将其现有智能合约迁移到 Kaia。 +為了編寫智能合約,Kaia 目前支持 [Solidity](https://github.com/ethereum/solidity) 作為主要編程語言。 之所以在 Kaia 中採用 Solidity,是因為它是以太坊事實上的標準合約編程語言,擁有龐大的用戶群和活躍的社區。 Kaia 團隊決定為用戶提供熟悉的開發體驗,以便以太坊 DApp 開發人員可以輕鬆嘗試或將其現有智能合約遷移到 Kaia。 -未来,Kaia 还计划支持使用其他编程语言编写智能合约。 Kaia 团队正在研究开发人员可能接受的各种有利的编程语言。 +未來,Kaia 還計劃支持使用其他編程語言編寫智能合約。 Kaia 團隊正在研究開發人員可能接受的各種有利的編程語言。 ```mdx-code-block import DocCardList from '@theme/DocCardList'; From adc14bddbf36f6099ec943cfa3365a79297be103 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:28 +0800 Subject: [PATCH 0023/2513] New translations solidity-smart-contract-language.md (Chinese Simplified) --- .../solidity-smart-contract-language.md | 116 +++++++++--------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md index 494a1243bab9..bd7df5458a52 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md @@ -1,47 +1,47 @@ -# Solidity - 智能合约语言 +# Solidity - 智能合約語言 -本章只介绍高级概念、开发过程和用 Solidity 编写的示例,因为 Solidity 在其官方网站上已有详尽的文档说明。 有关语言规范或实现,请参阅下面的 [参考文献](#参考文献)。 本章内容基于 [参考文献](#参考文献)中列出的多个网站。 +本章只介紹高級概念、開發過程和用 Solidity 編寫的示例,因為 Solidity 在其官方網站上已有詳盡的文檔說明。 有關語言規範或實現,請參閱下面的 [參考文獻](#參考文獻)。 本章內容基於 [參考文獻](#參考文獻)中列出的多個網站。 -## 坚固和卡娅 +## 堅固和卡婭 -[Solidity](https://github.com/ethereum/solidity)是一种高级、静态类型化、面向合约的语言,用于在以太坊平台上实现智能合约。 虽然 Solidity 最初是为以太坊设计的,但它在编写智能合约方面具有足够的通用性;因此,它也可用于其他区块链平台,如 Kaia。 +[Solidity](https://github.com/ethereum/solidity)是一種高級、靜態類型化、面向合約的語言,用於在以太坊平臺上實現智能合約。 雖然 Solidity 最初是為以太坊設計的,但它在編寫智能合約方面具有足夠的通用性;因此,它也可用於其他區塊鏈平臺,如 Kaia。 -Kaia 正式兼容**伦敦**以太坊虚拟机(EVM)版本。 不保证向后兼容 Kaia 上的其他 EVM 版本。 因此,强烈建议使用 Istanbul 目标选项编译 Solidity 代码。 请参阅 [如何设置 Solc 的 EVM 版本](https://solidity.readthedocs.io/en/latest/using-the-compiler.html#setting-the-evm-version-to-target)。 +Kaia 正式兼容**倫敦**以太坊虛擬機(EVM)版本。 不保證向後兼容 Kaia 上的其他 EVM 版本。 因此,強烈建議使用 Istanbul 目標選項編譯 Solidity 代碼。 請參閱 [如何設置 Solc 的 EVM 版本](https://solidity.readthedocs.io/en/latest/using-the-compiler.html#setting-the-evm-version-to-target)。 :::note -v1.7.0 协议升级 - 不兼容的更改,包括**伊斯坦布尔**硬分叉项目和 Kaia 自己的项目。 -如果是 Kairos 网络,则从区块编号 "#75,373,312 "开始启用,如果是主网络,则从区块编号 "#86,816,005 "开始启用。 +v1.7.0 協議升級 - 不兼容的更改,包括**伊斯坦布爾**硬分叉項目和 Kaia 自己的項目。 +如果是 Kairos 網絡,則從區塊編號 "#75,373,312 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 -v1.7.3 协议升级 - 包括伦敦\*\*\*硬分叉产生的基本费用在内的不兼容变更。 -如果是 Kairos 网络,则从区块编号 "#80,295,291 "开始启用,如果是主网络,则从区块编号 "#86,816,005 "开始启用。 +v1.7.3 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#80,295,291 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 -v1.8.0 协议升级 - 包括伦敦\*\*\*硬分叉产生的基本费用在内的不兼容变更。 -如果是 Kairos 网络,则从区块编号 "#86,513,895 "开始启用,如果是主网,则从区块编号 "#86,816,005 "开始启用。 +v1.8.0 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#86,513,895 "開始啟用,如果是主網,則從區塊編號 "#86,816,005 "開始啟用。 ::: -在为Kaia开发智能合约时,可以使用[Remix](https://remix.ethereum.org/) (一种基于浏览器的 IDE)和[Truffle](https://github.com/trufflesuite/truffle) (一种开发框架)等开发工具。 Kaia 团队将努力保持以太坊开发工具与 Kaia 开发工具之间的兼容性,但在必要时可能会选择向 Kaia 智能合约开发人员提供这些工具的增强版或更新版。 +在為Kaia開發智能合約時,可以使用[Remix](https://remix.ethereum.org/) (一種基於瀏覽器的 IDE)和[Truffle](https://github.com/trufflesuite/truffle) (一種開發框架)等開發工具。 Kaia 團隊將努力保持以太坊開發工具與 Kaia 開發工具之間的兼容性,但在必要時可能會選擇向 Kaia 智能合約開發人員提供這些工具的增強版或更新版。 -使用 Remix 或 Truffle 开发智能合约非常方便,但 Solidity 编译器也可在本地使用,只需按照下面网页中的说明构建或安装即可: +使用 Remix 或 Truffle 開發智能合約非常方便,但 Solidity 編譯器也可在本地使用,只需按照下面網頁中的說明構建或安裝即可: -- [安装 Solidity 编译器](https://docs.soliditylang.org/en/latest/installing-solidity.html) +- [安裝 Solidity 編譯器](https://docs.soliditylang.org/en/latest/installing-solidity.html) -请注意,有两种命令行 Solidity 编译器: +請注意,有兩種命令行 Solidity 編譯器: -- _solc_:全功能编译器 - - 包含在 Solidity 文档中 -- _solcjs_:用于 _solc_ 的 Javascript 绑定 - - 作为独立项目 [solc-js] 维护(https://github.com/ethereum/solc-js) - - _solcjs_ 的命令行选项与 _solc_ 的命令行选项不兼容。 +- _solc_:全功能編譯器 + - 包含在 Solidity 文檔中 +- _solcjs_:用於 _solc_ 的 Javascript 綁定 + - 作為獨立項目 [solc-js] 維護(https://github.com/ethereum/solc-js) + - _solcjs_ 的命令行選項與 _solc_ 的命令行選項不兼容。 -其他有助于入门 Solidity 的资料包括以下内容: +其他有助於入門 Solidity 的資料包括以下內容: -- [顶级稳固性教程](https://medium.com/coinmonks/top-solidity-tutorials-4e7adcacced8) +- [頂級穩固性教程](https://medium.com/coinmonks/top-solidity-tutorials-4e7adcacced8) -## 如何编写智能合约 +## 如何編寫智能合約 -本节以 Solidity 源代码为例,让读者了解智能合约的外观以及如何编写合约。 请注意,此处包含的代码仅供解释之用,并不用于生产目的。 在代码中,"(require) "表示任何 Solidity 源文件都需要该行,而"(optional) "则表示不一定需要该行。 符号 `Ln:` 并非 Solidity 代码的一部分,在此加入只是为了显示行号。 请不要在实际使用的源代码中使用这些符号。 +本節以 Solidity 源代碼為例,讓讀者瞭解智能合約的外觀以及如何編寫合約。 請注意,此處包含的代碼僅供解釋之用,並不用於生產目的。 在代碼中,"(require) "表示任何 Solidity 源文件都需要該行,而"(optional) "則表示不一定需要該行。 符號 `Ln:` 並非 Solidity 代碼的一部分,在此加入只是為了顯示行號。 請不要在實際使用的源代碼中使用這些符號。 ```text L01: pragma solidity 0.5.12; // (required) version pragma @@ -66,72 +66,72 @@ L19: } L20: } ``` -上述代码不言自明,因此熟悉其他编程语言的人可以跳过本节的解释,直接跳到下一节。 不过,对于那些不清楚代码作用的人,或者对于 Solidity 是第一种编程语言的人,我们会在下面附上源代码的简短说明: +上述代碼不言自明,因此熟悉其他編程語言的人可以跳過本節的解釋,直接跳到下一節。 不過,對於那些不清楚代碼作用的人,或者對於 Solidity 是第一種編程語言的人,我們會在下面附上源代碼的簡短說明: -- 代码中以双斜线开头的部分是注释,而不是代码;它们用于注释和解释代码。 编译器会忽略注释。 -- L01 "中的 "pragma "语句表示编译器的最小版本。 -- L03`中的`import` 语句从"`filename\`"导入所有全局符号。 文件名 "应为实际文件名。 -- `L05` - `L20` 定义了一个名为 `UserStorage` 的智能合约。 关键字 `contract` 位于合约名称之前,声明代码代表一个智能合约。 Solidity 中的契约类似于面向对象语言中的类。 每个合约可包含状态变量、函数、函数修改器、事件、结构类型和枚举类型的声明。 此外,合同还可以继承其他合同。 示例代码包含一个合同定义,但一个 Solidity 文件可能包含多个合同定义。 -- 在`L07`中,`userData`是映射类型的状态变量。 状态变量永久保存在合约存储器中。 状态变量 `userData` 维护着 `address` 和 `uint` 值之间的映射。 地址 "类型保存一个 20 字节的地址(Kaia 使用的 20 字节地址与以太坊类似)。 -- `L09` 定义了一个公共函数 `set`,用于在 `userData` 中保存信息发送者的 `x` 值。 变量 "msg.sender "是 Solidity 中定义的一个特殊变量,表示消息(即当前呼叫)发送者的地址。 关键字 "public "表示该函数是合约接口的一部分,可在外部或内部调用。 -- L13`中的函数`get` 和 L17` 中的函数 `getUserData` 是用 `view` 声明的,这意味着函数承诺不修改任何状态变量。 它们的声明包括 `returns (uint)`,这意味着它们返回一个 `uint` 值。 +- 代碼中以雙斜線開頭的部分是註釋,而不是代碼;它們用於註釋和解釋代碼。 編譯器會忽略註釋。 +- L01 "中的 "pragma "語句表示編譯器的最小版本。 +- L03`中的`import` 語句從"`filename\`"導入所有全局符號。 文件名 "應為實際文件名。 +- `L05` - `L20` 定義了一個名為 `UserStorage` 的智能合約。 關鍵字 `contract` 位於合約名稱之前,聲明代碼代表一個智能合約。 Solidity 中的契約類似於面嚮對象語言中的類。 每個合約可包含狀態變量、函數、函數修改器、事件、結構類型和枚舉類型的聲明。 此外,合同還可以繼承其他合同。 示例代碼包含一個合同定義,但一個 Solidity 文件可能包含多個合同定義。 +- 在`L07`中,`userData`是映射類型的狀態變量。 狀態變量永久保存在合約存儲器中。 狀態變量 `userData` 維護著 `address` 和 `uint` 值之間的映射。 地址 "類型保存一個 20 字節的地址(Kaia 使用的 20 字節地址與以太坊類似)。 +- `L09` 定義了一個公共函數 `set`,用於在 `userData` 中保存信息發送者的 `x` 值。 變量 "msg.sender "是 Solidity 中定義的一個特殊變量,表示消息(即當前呼叫)發送者的地址。 關鍵字 "public "表示該函數是合約接口的一部分,可在外部或內部調用。 +- L13`中的函數`get` 和 L17` 中的函數 `getUserData` 是用 `view` 聲明的,這意味著函數承諾不修改任何狀態變量。 它們的聲明包括 `returns (uint)`,這意味著它們返回一個 `uint` 值。 -有关 Solidity 语言语法和语义的更多信息,请参阅 [Solidity 文档](https://docs.soliditylang.org/)。 +有關 Solidity 語言語法和語義的更多信息,請參閱 [Solidity 文檔](https://docs.soliditylang.org/)。 -## 如何编译、部署和执行 +## 如何編譯、部署和執行 -编译 Solidity 代码的一种方法是使用命令行编译器 _solc_。 这种编译器可以产生各种输出,从简单的二进制文件和汇编到抽象语法树(parse tree\ )。 假设上面的代码保存在 `UserStorage.sol`(上面显示的源文件中不包括 `L03`),编译文件 `UserStorage.sol`的一些示例如下。 +編譯 Solidity 代碼的一種方法是使用命令行編譯器 _solc_。 這種編譯器可以產生各種輸出,從簡單的二進制文件和彙編到抽象語法樹(parse tree\ )。 假設上面的代碼保存在 `UserStorage.sol`(上面顯示的源文件中不包括 `L03`),編譯文件 `UserStorage.sol`的一些示例如下。 ```bash $ solc --bin UserStorage.sol ``` -- 该命令将以二进制_即_字节码_的形式打印编译输出。 +- 該命令將以二進制_即_字節碼_的形式打印編譯輸出。 ```bash solc -o output --bin --ast --asm UserStorage.sol ``` -- 编译器会生成二进制文件、抽象语法树和汇编代码,并将它们作为单独的文件存放在 "输出 "目录下。 +- 編譯器會生成二進制文件、抽象語法樹和彙編代碼,並將它們作為單獨的文件存放在 "輸出 "目錄下。 ```bash solc --optimize --bin UserStorage.sol ``` -- 为提高性能,可在编译过程中使用 `--optimize` 标记激活优化器。 +- 為提高性能,可在編譯過程中使用 `--optimize` 標記激活優化器。 -下面列出了一些用于编译、部署和执行智能合约的资源。 +下面列出了一些用於編譯、部署和執行智能合約的資源。 -- [使用Solidity命令行编译器](https://docs.soliditylang.org/en/latest/using-the-compiler.html) -- [使用 Remix 编译合同](https://remix-ide.readthedocs.io/en/stable/compile.html) +- [使用Solidity命令行編譯器](https://docs.soliditylang.org/en/latest/using-the-compiler.html) +- [使用 Remix 編譯合同](https://remix-ide.readthedocs.io/en/stable/compile.html) - [Running transactions with Remix](https://remix-ide.readthedocs.io/en/stable/run.html) - [Remix Learneth 教程](https://remix-ide.readthedocs.io/en/latest/remix_tutorials_learneth.html) -- [用 Truffle 编译合同](https://trufflesuite.com/docs/truffle/getting-started/compiling-contracts) +- [用 Truffle 編譯合同](https://trufflesuite.com/docs/truffle/getting-started/compiling-contracts) - [使用 Truffle 部署合同](https://trufflesuite.com/docs/truffle/getting-started/running-migrations) -注:本部分内容今后将进行更新。 +注:本部分內容今後將進行更新。 -## 调试智能合约 +## 調試智能合約 -由于缺乏成熟的调试工具,调试 Solidity 代码比调试用其他编程语言编写的代码更加困难。 下面,我们列出了一些用于 Solidity 调试的资源。 +由於缺乏成熟的調試工具,調試 Solidity 代碼比調試用其他編程語言編寫的代碼更加困難。 下面,我們列出了一些用於 Solidity 調試的資源。 -- [使用 Remix 调试交易](https://remix-ide.readthedocs.io/en/latest/debugger.html) -- [使用 Remix 调试事务的教程](https://remix-ide.readthedocs.io/en/latest/tutorial_debug.html) -- [使用 Truffle 调试合同](https://trufflesuite.com/docs/truffle/getting-started/using-the-truffle-debugger/) +- [使用 Remix 調試交易](https://remix-ide.readthedocs.io/en/latest/debugger.html) +- [使用 Remix 調試事務的教程](https://remix-ide.readthedocs.io/en/latest/tutorial_debug.html) +- [使用 Truffle 調試合同](https://trufflesuite.com/docs/truffle/getting-started/using-the-truffle-debugger/) -注:本部分内容今后将进行更新。 +注:本部分內容今後將進行更新。 -## 智能合约最佳实践 +## 智能合約最佳實踐 -要消除智能合约中的安全问题和代码质量问题,必须学习并遵循 Solidity 编程的最佳实践。 在此,我们展示了 Solidity 最佳实践的参考资料。 +要消除智能合約中的安全問題和代碼質量問題,必須學習並遵循 Solidity 編程的最佳實踐。 在此,我們展示了 Solidity 最佳實踐的參考資料。 -- [智能合约安全最佳实践](https://github.com/ConsenSys/smart-contract-best-practices) +- [智能合約安全最佳實踐](https://github.com/ConsenSys/smart-contract-best-practices) -注:本部分内容今后将进行更新。 +注:本部分內容今後將進行更新。 -## 参考资料 +## 參考資料 -- [Solidity GitHub 页面](https://github.com/ethereum/solidity) -- [Solidity文档](https://solidity.readthedocs.io/en/latest/index.html) -- [混音文档](https://remix-ide.readthedocs.io/en/latest/) -- [松露文档](https://trufflesuite.com/docs/truffle/) +- [Solidity GitHub 頁面](https://github.com/ethereum/solidity) +- [Solidity文檔](https://solidity.readthedocs.io/en/latest/index.html) +- [混音文檔](https://remix-ide.readthedocs.io/en/latest/) +- [松露文檔](https://trufflesuite.com/docs/truffle/) From d22e8ab6da13bf6ad7ed552dc22c58aab7279191 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:32 +0800 Subject: [PATCH 0024/2513] New translations testing-guide.md (Chinese Simplified) --- .../build/smart-contracts/testing-guide.md | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md index fbfe99997ef5..bc6ae30cba28 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md @@ -1,21 +1,21 @@ -# 测试智能合约 +# 測試智能合約 -在本节中,我们将介绍如何测试智能合约。 由于区块链上的任何交易都是不可逆转的,因此在部署智能合约之前对其进行测试至关重要。 +在本節中,我們將介紹如何測試智能合約。 由於區塊鏈上的任何交易都是不可逆轉的,因此在部署智能合約之前對其進行測試至關重要。 -## 使用松露进行测试 +## 使用松露進行測試 -Truffle 提供了一个自动测试框架。 该框架可让您以两种不同的方式编写简单、易于管理的测试: +Truffle 提供了一個自動測試框架。 該框架可讓您以兩種不同的方式編寫簡單、易於管理的測試: -- 在 "Javascript "和 "TypeScript "中,用于从外部世界执行您的合约,就像应用程序一样。 -- 在 "Solidity "中,用于在预付款、裸机情况下执行合同。 +- 在 "Javascript "和 "TypeScript "中,用於從外部世界執行您的合約,就像應用程序一樣。 +- 在 "Solidity "中,用於在預付款、裸機情況下執行合同。 -### 1. 入门 +### 1. 入門 -我们将按照[使用 Truffle 的部署指南](./deploy/deploy.md#truffle)创建合约并进行部署。 不过,在部署之前,我们将在合约中添加一个设置函数 `setGreet` 以进行测试。 源代码如下。 +我們將按照[使用 Truffle 的部署指南](./deploy/deploy.md#truffle)創建合約並進行部署。 不過,在部署之前,我們將在合約中添加一個設置函數 `setGreet` 以進行測試。 源代碼如下。 -**注:** 我们对测试合同做了一些修改。 +**注:** 我們對測試合同做了一些修改。 -以下是 KaiaGreeting 合同源代码。 +以下是 KaiaGreeting 合同源代碼。 ``` pragma solidity 0.5.6; @@ -52,19 +52,19 @@ contract KaiaGreeter is Mortal { } ``` -我们将测试 1) `greet()`函数是否能正确返回 "Hello, Kaia "信息,2) `setGreet()`函数是否能正确设置新的问候语信息,并在非所有者账户尝试更新问候语时进行还原。 +我們將測試 1) `greet()`函數是否能正確返回 "Hello, Kaia "信息,2) `setGreet()`函數是否能正確設置新的問候語信息,並在非所有者賬戶嘗試更新問候語時進行還原。 -首先,我们将为通用断言安装 Chai 断言库(或你使用的任何其他断言库),为智能合约断言安装 truffle 断言库。 +首先,我們將為通用斷言安裝 Chai 斷言庫(或你使用的任何其他斷言庫),為智能合約斷言安裝 truffle 斷言庫。 ``` npm install --save-dev chai truffle-assertions ``` -### 2. 在 Solidity 中编写测试 +### 2. 在 Solidity 中編寫測試 -使用 Solidity 进行测试比 JavaScript 测试更直观。 Solidity 测试合同作为 .sol 文件与 JavaScript 测试并存。 +使用 Solidity 進行測試比 JavaScript 測試更直觀。 Solidity 測試合同作為 .sol 文件與 JavaScript 測試並存。 -在 "test "文件夹中创建名为 "TestKaiaGreeting.sol "的文件。 Truffle 套件为我们提供了用于测试的辅助库,因此我们需要导入这些库。 让我们来看看 Solidity 测试的示例: +在 "test "文件夾中創建名為 "TestKaiaGreeting.sol "的文件。 Truffle 套件為我們提供了用於測試的輔助庫,因此我們需要導入這些庫。 讓我們來看看 Solidity 測試的示例: ``` pragma solidity ^0.5.6; @@ -74,10 +74,10 @@ import "truffle/DeployedAddresses.sol"; import "../contracts/HashMarket.sol"; ``` -- Assert :它允许我们访问各种测试函数,如`Assert.equals()`、`Assert.g greaterThan()`等。 -- 部署地址(DeployedAddresses):每次更改合同时,都必须将其重新部署到新地址。 您可以通过该库获取已部署的合同地址。 +- Assert :它允許我們訪問各種測試函數,如`Assert.equals()`、`Assert.g greaterThan()`等。 +- 部署地址(DeployedAddresses):每次更改合同時,都必須將其重新部署到新地址。 您可以通過該庫獲取已部署的合同地址。 -现在,让我们编写一段测试代码。 +現在,讓我們編寫一段測試代碼。 ``` pragma solidity ^0.5.6; @@ -101,7 +101,7 @@ contract TestKaiaGreeter { } ``` -运行 Solidity 测试代码 +運行 Solidity 測試代碼 ``` $ truffle test @@ -137,8 +137,8 @@ Compiling your contracts... at process._tickCallback (internal/process/next_tick.js:68:7) ``` -哎呀,我们失败了。 让我们检查一下错误信息,"Error: greeting message should match (Tested: Hello, Kaia, Against: Hello Kaia)"。 我注意到 _string memory expectedGreet = "Hello Kaia"_.\ -处漏掉了"'',(逗号)'\`",请修改代码并再次运行测试。 +哎呀,我們失敗了。 讓我們檢查一下錯誤信息,"Error: greeting message should match (Tested: Hello, Kaia, Against: Hello Kaia)"。 我注意到 _string memory expectedGreet = "Hello Kaia"_.\ +處漏掉了"'',(逗號)'\`",請修改代碼並再次運行測試。 ``` $ truffle test @@ -159,15 +159,15 @@ Compiling your contracts... 1 passing (5s) ``` -祝贺你 您的测试已通过。 +祝賀你 您的測試已通過。 -### 3. 用 JavaScript 编写测试 +### 3. 用 JavaScript 編寫測試 -Truffle 使用 [Mocha](https://mochajs.org/) 测试框架和 [Chai](https://www.chaijs.com/) 断言库,为 JavaScript 测试提供了一个坚实的框架。 JavaScript 测试为您提供了更大的灵活性,使您能够编写更复杂的测试。 +Truffle 使用 [Mocha](https://mochajs.org/) 測試框架和 [Chai](https://www.chaijs.com/) 斷言庫,為 JavaScript 測試提供了一個堅實的框架。 JavaScript 測試為您提供了更大的靈活性,使您能夠編寫更復雜的測試。 -让我们在`test`目录下创建一个文件并命名为`0_KaiaGreeting.js`。 +讓我們在`test`目錄下創建一個文件並命名為`0_KaiaGreeting.js`。 -测试代码是 +測試代碼是 ```javascript // Interacting directly with KaiaGreeter contract @@ -210,24 +210,24 @@ contract("KaiaGreeter", async(accounts) => { }); ``` -如果您不熟悉 "Mocha "单元测试,请查阅[Mocha 文档](https://mochajs.org/#getting-started)。 +如果您不熟悉 "Mocha "單元測試,請查閱[Mocha 文檔](https://mochajs.org/#getting-started)。 - 使用 `contract()` 代替 `describe()` - 从结构上看,Truffle 测试代码应该与 Mocha 的常规测试代码没有太大区别。 您的测试应包含能被 Mocha 识别为自动测试的代码。 Mocha 和 Truffle 测试的区别在于 contract() 函数。 + 從結構上看,Truffle 測試代碼應該與 Mocha 的常規測試代碼沒有太大區別。 您的測試應包含能被 Mocha 識別為自動測試的代碼。 Mocha 和 Truffle 測試的區別在於 contract() 函數。 - **注意**使用`contract()`函数和`accounts`数组来指定可用的 Kaia 账户。 -- 测试中的合同抽象 + **注意**使用`contract()`函數和`accounts`數組來指定可用的 Kaia 賬戶。 +- 測試中的合同抽象 - 由于 Truffle 无法检测测试过程中需要与哪个合约交互,因此应明确指定合约。 一种方法是使用 `artifacts.require()` 方法。 -- it "语法 + 由於 Truffle 無法檢測測試過程中需要與哪個合約交互,因此應明確指定合約。 一種方法是使用 `artifacts.require()` 方法。 +- it "語法 - 这表示每个测试用例的描述。 说明将在试运行时打印在控制台上。 -- truffle-assertion\` 库 + 這表示每個測試用例的描述。 說明將在試運行時打印在控制檯上。 +- truffle-assertion\` 庫 - 通过提供 `truffleAssert.reverts()` 和 `truffleAssert.fails()` 函数,该库可让您轻松测试还原或其他失败。 + 通過提供 `truffleAssert.reverts()` 和 `truffleAssert.fails()` 函數,該庫可讓您輕鬆測試還原或其他失敗。 -输出结果如下 +輸出結果如下 ``` Using network 'development'. @@ -248,14 +248,14 @@ Compiling your contracts... 3 passing (158ms) ``` -祝贺你 您的测试已通过。 +祝賀你 您的測試已通過。 -### 4. 指定测试 +### 4. 指定測試 -您可以选择要执行的测试文件。 +您可以選擇要執行的測試文件。 ``` truffle test ./test/0_KaiaGreeting.js ``` -详情请查看 [Truffle 测试](https://www.trufflesuite.com/docs/truffle/testing/testing-your-contracts) 和 [Truffle 命令](https://www.trufflesuite.com/docs/truffle/reference/truffle-commands#test)。 +詳情請查看 [Truffle 測試](https://www.trufflesuite.com/docs/truffle/testing/testing-your-contracts) 和 [Truffle 命令](https://www.trufflesuite.com/docs/truffle/reference/truffle-commands#test)。 From c74c078fd8fd7f6c2c43f26fe3f878deed7fb50d Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:36 +0800 Subject: [PATCH 0025/2513] New translations token-standard.md (Chinese Simplified) --- .../build/smart-contracts/token-standard.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md index 7ba9d4ca77e3..c2e948f2c44c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md @@ -1,16 +1,16 @@ -# Kaia 兼容代币(KCT) +# Kaia 兼容代幣(KCT) -Kaia Compatible Token(KCT)是一种特殊类型的智能合约,它实现了某些技术规范。 每个想在 Kaia 上发行代币的人都必须遵守规范。 +Kaia Compatible Token(KCT)是一種特殊類型的智能合約,它實現了某些技術規範。 每個想在 Kaia 上發行代幣的人都必須遵守規範。 -Kaia 中定义了令牌标准,如 [KIP-7](https://kips.kaia.io/KIPs/kip-7) 和 [KIP-17](https://kips.kaia.io/KIPs/kip-17)。 +Kaia 中定義了令牌標準,如 [KIP-7](https://kips.kaia.io/KIPs/kip-7) 和 [KIP-17](https://kips.kaia.io/KIPs/kip-17)。 -还可以定义其他 KCT,以满足某些技术规格。 如果有人需要其他令牌标准,请访问 [Kaia Improvement Proposal](https://github.com/kaiachain/KIPs),提出新的令牌标准。 +還可以定義其他 KCT,以滿足某些技術規格。 如果有人需要其他令牌標準,請訪問 [Kaia Improvement Proposal](https://github.com/kaiachain/KIPs),提出新的令牌標準。 -## 可折叠令牌标准(KIP-7) +## 可摺疊令牌標準(KIP-7) -可变代币是具有均匀性和可分割性的代币。 每个可替代代币都可以互换,因为每个单位的代币都具有相同的价值。 就像每张一元纸币都有一元的价值一样。 在大多数情况下,可替代性是加密货币的基本特征,因此大部分区块链代币都是可替代代币。 +可變代幣是具有均勻性和可分割性的代幣。 每個可替代代幣都可以互換,因為每個單位的代幣都具有相同的價值。 就像每張一元紙幣都有一元的價值一樣。 在大多數情況下,可替代性是加密貨幣的基本特徵,因此大部分區塊鏈代幣都是可替代代幣。 -要通过智能合约实现这些属性,可以使用 KIP-7 令牌标准。 与 KIP-7 兼容的令牌实现了以下接口。 请注意,[KIP-13](https://kips.kaia.io/KIPs/kip-13) 必须同时执行。 对于钱包应用,可执行 [钱包接口](https://kips.kaia.io/KIPs/kip-7#wallet-interface)。 +要通過智能合約實現這些屬性,可以使用 KIP-7 令牌標準。 與 KIP-7 兼容的令牌實現了以下接口。 請注意,[KIP-13](https://kips.kaia.io/KIPs/kip-13) 必須同時執行。 對於錢包應用,可執行 [錢包接口](https://kips.kaia.io/KIPs/kip-7#wallet-interface)。 ```solidity // IKIP7 @@ -55,19 +55,19 @@ function addPauser(address _account) external; function renouncePauser() external; ``` -在上述界面的基础上,开发者可以通过添加新功能和逻辑来定制令牌,并将其部署到 Kaia 网络上。 +在上述界面的基礎上,開發者可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 -更多信息,请参阅官方 [KIP-7 文档](https://kips.kaia.io/KIPs/kip-7)。 +更多信息,請參閱官方 [KIP-7 文檔](https://kips.kaia.io/KIPs/kip-7)。 -- 实施示例见 [https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP7/KIP7.sol](https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP7/KIP7.sol)。 +- 實施示例見 [https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP7/KIP7.sol](https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP7/KIP7.sol)。 ## Non-fungible Token Standard\(KIP-17\) -Non-fungible token\(NFT\) 是一种特殊类型的代币,代表一种独特的资产。 正如 "不可篡改 "这个名字所暗示的,每一个代币都是独一无二、不可分割的。 不可篡改令牌的这种独特性为资产数字化开辟了新天地。 例如,它可以用来表示数字艺术、游戏物品或任何类型的独特资产,并允许人们进行交易。 +Non-fungible token\(NFT\) 是一種特殊類型的代幣,代表一種獨特的資產。 正如 "不可篡改 "這個名字所暗示的,每一個代幣都是獨一無二、不可分割的。 不可篡改令牌的這種獨特性為資產數字化開闢了新天地。 例如,它可以用來表示數字藝術、遊戲物品或任何類型的獨特資產,並允許人們進行交易。 -例如,区块链收集游戏[Cryptokitties](https://www.cryptokitties.co/)实现了不可篡改的代币,以代表具有不同遗传信息的不同小猫。 每只小猫都是独一无二的,不可互换,因此不同的小猫代币有不同的价值。 +例如,區塊鏈收集遊戲[Cryptokitties](https://www.cryptokitties.co/)實現了不可篡改的代幣,以代表具有不同遺傳信息的不同小貓。 每隻小貓都是獨一無二的,不可互換,因此不同的小貓代幣有不同的價值。 -要实现不可篡改令牌,可以使用 [KIP-17](https://kips.kaia.io/KIPs/kip-17)。 KIP-17 令牌合约执行以下接口。 请注意,[KIP-13](https://kips.kaia.io/KIPs/kip-13) 必须同时执行。 对于钱包应用,可执行 [钱包接口](https://kips.kaia.io/KIPs/kip-17#wallet-interface)。 +要實現不可篡改令牌,可以使用 [KIP-17](https://kips.kaia.io/KIPs/kip-17)。 KIP-17 令牌合約執行以下接口。 請注意,[KIP-13](https://kips.kaia.io/KIPs/kip-13) 必須同時執行。 對於錢包應用,可執行 [錢包接口](https://kips.kaia.io/KIPs/kip-17#wallet-interface)。 ```solidity // IKIP17 @@ -121,18 +121,18 @@ function addPauser(address _account) public; function renouncePauser() public; ``` -在上述界面的基础上,开发者可以通过添加新功能和逻辑来定制令牌,并将其部署到 Kaia 网络上。 +在上述界面的基礎上,開發者可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 -更多信息,请参阅官方 [KIP-17 文档](https://kips.kaia.io/KIPs/kip-17)。 +更多信息,請參閱官方 [KIP-17 文檔](https://kips.kaia.io/KIPs/kip-17)。 -- 实施示例见 [https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP17/KIP17.sol](https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP17/KIP17.sol)。 +- 實施示例見 [https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP17/KIP17.sol](https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP17/KIP17.sol)。 -## Kaia 服务链的令牌标准 +## Kaia 服務鏈的令牌標準 -服务链指的是锚定 Kaia 主区块链网络的 Kaia 侧链。 在实施服务链时,要使用特殊类型的合同来支持主链和服务链之间的价值转移。 这些合约目前正在开发中,一旦准备就绪,Kaia 服务链的令牌规格将在 KaiaDocs 上提供。 +服務鏈指的是錨定 Kaia 主區塊鏈網絡的 Kaia 側鏈。 在實施服務鏈時,要使用特殊類型的合同來支持主鏈和服務鏈之間的價值轉移。 這些合約目前正在開發中,一旦準備就緒,Kaia 服務鏈的令牌規格將在 KaiaDocs 上提供。 -## 关于 ERC-20 和 ERC-721 的说明 +## 關於 ERC-20 和 ERC-721 的說明 -由于 Kaia 发布了 KIP-7 和 KIP-17 作为其代币标准,因此建议分别根据 KIP-7 和 KIP-17 执行可替换和不可替换代币合约,而不是遵循 ERC-20 和 ERC-721。 -KIP-7 和 KIP-17 基于 ERC-20 和 ERC-721,但它们是为 Kaia 量身定制的,因此更适合 Kaia 生态系统。 尽管 Kaia 网络仍然支持 ERC-20 和 ERC-721,但它们可能与 Kaia 生态系统中的各种工具不兼容。 -有关令牌标准差异的更多信息,请访问 [KIP-7](https://kips.kaia.io/KIPs/kip-7#differences-with-erc-20) 和 [KIP-17](https://kips.kaia.io/KIPs/kip-17#differences-from-erc-721)。 +由於 Kaia 發佈了 KIP-7 和 KIP-17 作為其代幣標準,因此建議分別根據 KIP-7 和 KIP-17 執行可替換和不可替換代幣合約,而不是遵循 ERC-20 和 ERC-721。 +KIP-7 和 KIP-17 基於 ERC-20 和 ERC-721,但它們是為 Kaia 量身定製的,因此更適合 Kaia 生態系統。 儘管 Kaia 網絡仍然支持 ERC-20 和 ERC-721,但它們可能與 Kaia 生態系統中的各種工具不兼容。 +有關令牌標準差異的更多信息,請訪問 [KIP-7](https://kips.kaia.io/KIPs/kip-7#differences-with-erc-20) 和 [KIP-17](https://kips.kaia.io/KIPs/kip-17#differences-from-erc-721)。 From d3047a8d98f5473aeeadc917044924fbf52f6210 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:40 +0800 Subject: [PATCH 0026/2513] New translations block-explorers.md (Chinese Simplified) --- .../smart-contracts/verify/block-explorers.md | 152 +++++++++--------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md index 3c810b2fbf64..54d570b8f790 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md @@ -1,34 +1,34 @@ --- -sidebar_label: 使用积木探索器 +sidebar_label: 使用積木探索器 --- -# 如何使用区块探索器验证智能合约 +# 如何使用區塊探索器驗證智能合約 -## 导言 +## 導言 -通常情况下,智能合约的部署者是唯一能接触到实际部署代码的一方,在部署者验证之前,公众无法读取合约的源代码。 然而,这正是合约验证作为智能合约开发周期中一个重要步骤的作用所在,因为它有助于提高已部署合约的透明度(对用户而言)、便利性(对开发者而言)和安全性。 +通常情況下,智能合約的部署者是唯一能接觸到實際部署代碼的一方,在部署者驗證之前,公眾無法讀取合約的源代碼。 然而,這正是合約驗證作為智能合約開發週期中一個重要步驟的作用所在,因為它有助於提高已部署合約的透明度(對用戶而言)、便利性(對開發者而言)和安全性。 -尽管如此,一旦智能合约得到验证,Kaiascope 和 Kaiascan 等区块探索器还可以让公众使用区块探索器的用户界面与合约的公共方法进行交互。 除此之外,公众还可以直接访问经过验证的合同源代码。 +儘管如此,一旦智能合約得到驗證,Kaiascope 和 Kaiascan 等區塊探索器還可以讓公眾使用區塊探索器的用戶界面與合約的公共方法進行交互。 除此之外,公眾還可以直接訪問經過驗證的合同源代碼。 -在本指南中,我们将了解如何使用区块探索器验证 Kaia 网络上部署的智能合约。 +在本指南中,我們將瞭解如何使用區塊探索器驗證 Kaia 網絡上部署的智能合約。 -## 先决条件 +## 先決條件 -- [Remix IDE](https://ide.kaia.io/)和[Kaia 钱包](https://docs.kaiawallet.io/getting_started/quick_start#install-kaia-wallet) -- 从 [水龙头](https://faucet.kaia.io) 测试 KAIA 是否足够 +- [Remix IDE](https://ide.kaia.io/)和[Kaia 錢包](https://docs.kaiawallet.io/getting_started/quick_start#install-kaia-wallet) +- 從 [水龍頭](https://faucet.kaia.io) 測試 KAIA 是否足夠 -## 开始 +## 開始 -在本指南中,我们将介绍在 Kaia 生态系统中存在的区块探索器上验证单个合约和多部分合约的方法,这些探索器是: +在本指南中,我們將介紹在 Kaia 生態系統中存在的區塊探索器上驗證單個合約和多部分合約的方法,這些探索器是: - [Kaiascope](https://kaiascope.com/) - [Kaiascan](https://www.kaiascan.io/) -废话不多说,让我们开始吧! +廢話不多說,讓我們開始吧! -## 部署单一合同 +## 部署單一合同 -要验证智能合约,首先需要在目标网络上部署合约。 因此,在本指南中,我们将把合同部署到 Kaia Kairos Testnet。 此外,在本教程中,我们将在 Remix IDE 上部署一个名为 "Counter.sol "的简单计数器合约。 代码如下所示: +要驗證智能合約,首先需要在目標網絡上部署合約。 因此,在本指南中,我們將把合同部署到 Kaia Kairos Testnet。 此外,在本教程中,我們將在 Remix IDE 上部署一個名為 "Counter.sol "的簡單計數器合約。 代碼如下所示: ```solidity // SPDX-License-Identifier: MIT @@ -52,35 +52,35 @@ contract Counter { :::note -您可以在此页面查看 Kaia Kairos Testnet 上使用 [libaries](../../../references/sdk/sdk.md)部署智能合约的教程。 您也可以使用 [Hardhat](../../get-started/hardhat.md), [Foundry](../deploy/foundry.md), [Remix](../deploy/deploy.md#remix-ide) 等开发工具或其他工具,将智能合约部署到 Kaia Kairos Testnet。 +您可以在此頁面查看 Kaia Kairos Testnet 上使用 [libaries](../../../references/sdk/sdk.md)部署智能合約的教程。 您也可以使用 [Hardhat](../../get-started/hardhat.md), [Foundry](../deploy/foundry.md), [Remix](../deploy/deploy.md#remix-ide) 等開發工具或其他工具,將智能合約部署到 Kaia Kairos Testnet。 ::: -## 单一合同核查参数 +## 單一合同核查參數 -在区块探索器上验证合约需要一些参数,在部署智能合约时必须考虑这些参数。 以下是与合同编译器和部署有关的一些细节,以便成功验证合同: +在區塊探索器上驗證合約需要一些參數,在部署智能合約時必須考慮這些參數。 以下是與合同編譯器和部署有關的一些細節,以便成功驗證合同: Remix IDE : -- 在 Remix IDE 上,导航至**Solidity 编译器选项卡**。 +- 在 Remix IDE 上,導航至**Solidity 編譯器選項卡**。 - - 观察用于编译和部署合同的 \*\* 编译器版本\*\*。 - - 注意合同中使用的**开源许可类型**。 这意味着在 Solidity 源文件开头使用的 SPDX 许可证标识符。 在 `Counter.sol` 文件中,我们使用了 `// SPDX-License-Identifier:MIT` - - 注意用于部署合同的 **EVM 版本**。 - - (可选)如果在编译过程中启用了**优化**,请注意优化运行参数的值 + - 觀察用於編譯和部署合同的 \*\* 編譯器版本\*\*。 + - 注意合同中使用的**開源許可類型**。 這意味著在 Solidity 源文件開頭使用的 SPDX 許可證標識符。 在 `Counter.sol` 文件中,我們使用了 `// SPDX-License-Identifier:MIT` + - 注意用於部署合同的 **EVM 版本**。 + - (可選)如果在編譯過程中啟用了**優化**,請注意優化運行參數的值 ![](/img/build/tutorials/counter-veri-parameters.png) -- 在 Remix IDE 上,导航至 **Kaia 选项卡**。 +- 在 Remix IDE 上,導航至 **Kaia 選項卡**。 - - (可选) 如果合约构造函数方法接受参数,请注意构造函数参数的[ABI-编码形式](https://docs.soliditylang.org/en/develop/abi-spec.html) - - 成功部署后,在**已部署合约**选项卡上记下智能合约的合约地址。 + - (可選) 如果合約構造函數方法接受參數,請注意構造函數參數的[ABI-編碼形式](https://docs.soliditylang.org/en/develop/abi-spec.html) + - 成功部署後,在**已部署合約**選項卡上記下智能合約的合約地址。 ![](/img/build/tutorials/counter-veri-parametersII.png) ## 部署多部分合同 -值得注意的是,部署多部分合同的步骤与部署单部分合同的步骤相同。 在本指南中,我们将部署一个名为 `airdropToken.sol` 的简单 KIP7 空投合约。 代码如下所示: +值得注意的是,部署多部分合同的步驟與部署單部分合同的步驟相同。 在本指南中,我們將部署一個名為 `airdropToken.sol` 的簡單 KIP7 空投合約。 代碼如下所示: ```solidity //SPDX-License-Identifier: MIT @@ -114,86 +114,86 @@ contract TokenAirdrop is KIP7, Ownable { } ``` -## 多部分合同核查参数 +## 多部分合同核查參數 -验证多部分合同的参数与验证单部分合同的参数相同。 但是,由于它们是由多个从属合同组成的,我们需要将合同的所有从属关系预处理成一个单一的 solidity 文件。 这种预处理通常被称为智能合约扁平化。 +驗證多部分合同的參數與驗證單部分合同的參數相同。 但是,由於它們是由多個從屬合同組成的,我們需要將合同的所有從屬關係預處理成一個單一的 solidity 文件。 這種預處理通常被稱為智能合約扁平化。 -因此,我们必须将合约扁平化,以便在区块资源管理器上使用新的扁平化 Solidity 文件进行验证。 +因此,我們必須將合約扁平化,以便在區塊資源管理器上使用新的扁平化 Solidity 文件進行驗證。 Remix IDE: -- 在 Remix IDE 上,导航至**文件资源管理器选项卡**。 +- 在 Remix IDE 上,導航至**文件資源管理器選項卡**。 - - 在**合同**文件夹下选择新创建的合同 - - 点击或用双指轻点,即可查看合同上的所有可用命令。 - - 选择 \*\* 压平\*\* + - 在**合同**文件夾下選擇新創建的合同 + - 點擊或用雙指輕點,即可查看合同上的所有可用命令。 + - 選擇 \*\* 壓平\*\* ![](/img/build/tutorials/airdropToken-flattened.png) - - 一旦代码被扁平化,你将看到一个名为 `airdropTokens_flattened.sol` 的新合约。 + - 一旦代碼被扁平化,你將看到一個名為 `airdropTokens_flattened.sol` 的新合約。 ![](/img/build/tutorials/airdropToken-flattened-file.png) :::note -有不同的工具可以将多部分智能合约扁平化为一个单一的 Solidity 文件,如 [Hardhat Flattener](https://hardhat.org/hardhat-runner/docs/advanced/flattening)。 请参阅相关智能合约扁平化工具的文档,了解更详细的使用说明。 +有不同的工具可以將多部分智能合約扁平化為一個單一的 Solidity 文件,如 [Hardhat Flattener](https://hardhat.org/hardhat-runner/docs/advanced/flattening)。 請參閱相關智能合約扁平化工具的文檔,瞭解更詳細的使用說明。 ::: -## 核实合同 +## 核實合同 -在获得所有验证参数后,我们将在本节中详细介绍在区块资源管理器上验证单一智能合约(Counter.sol)和多部分智能合约(airdropTokens.sol)的步骤。 +在獲得所有驗證參數後,我們將在本節中詳細介紹在區塊資源管理器上驗證單一智能合約(Counter.sol)和多部分智能合約(airdropTokens.sol)的步驟。 ### 1. Kaiascope -要在 Kaiascope 上验证单份合同和多份合同,请按以下步骤操作: +要在 Kaiascope 上驗證單份合同和多份合同,請按以下步驟操作: -#### 1.1 验证单一合同 +#### 1.1 驗證單一合同 -1. 进入 [Kaiascope](https://kairos.kaiascope.com)的搜索栏,粘贴已部署的合同地址。 -2. 导航至该页面上的**合同选项卡**。 -3. 单击**匹配合同源代码**链接,提交合同代码以供验证。 +1. 進入 [Kaiascope](https://kairos.kaiascope.com)的搜索欄,粘貼已部署的合同地址。 +2. 導航至該頁面上的**合同選項卡**。 +3. 單擊**匹配合同源代碼**鏈接,提交合同代碼以供驗證。 ![](/img/build/tutorials/counter-contract-tab.png) -4. 在合同验证页面,确保您的账户已连接到 Kaia 钱包或 Metamask。 在本指南中,我们将使用 Kaia 钱包。 -5. 在**合同地址栏**中填写合同地址。 注:该字段通常会自动填写合同地址。 -6. 选择 "Counter.sol "示例使用的**编译器版本**。 -7. 选择用于 "Counter.sol "示例的**开源许可类型**。 在 "Counter.sol "示例中,选择 "**MIT License (MIT)**" 选项。 如果没有使用许可证,请选择 **无许可证(无)**。 -8. 在**源代码字段**中,选择**源文本**,然后在文本字段中粘贴 "Counter.sol "的源代码。 -9. 如果在编译过程中启用了**优化**,则为**优化**选择**真**,并在**优化运行**下填写运行次数为**200**。 -10. 为合同选择 **EVM 版本**。 以 "Counter.sol "为例,选择 "**伊斯坦布尔**"选项。 -11. 点击底部的验证码和**签名并提交**按钮,确认并开始验证。 +4. 在合同驗證頁面,確保您的賬戶已連接到 Kaia 錢包或 Metamask。 在本指南中,我們將使用 Kaia 錢包。 +5. 在**合同地址欄**中填寫合同地址。 注:該字段通常會自動填寫合同地址。 +6. 選擇 "Counter.sol "示例使用的**編譯器版本**。 +7. 選擇用於 "Counter.sol "示例的**開源許可類型**。 在 "Counter.sol "示例中,選擇 "**MIT License (MIT)**" 選項。 如果沒有使用許可證,請選擇 **無許可證(無)**。 +8. 在**源代碼字段**中,選擇**源文本**,然後在文本字段中粘貼 "Counter.sol "的源代碼。 +9. 如果在編譯過程中啟用了**優化**,則為**優化**選擇**真**,並在**優化運行**下填寫運行次數為**200**。 +10. 為合同選擇 **EVM 版本**。 以 "Counter.sol "為例,選擇 "**伊斯坦布爾**"選項。 +11. 點擊底部的驗證碼和**簽名並提交**按鈕,確認並開始驗證。 ![](/img/build/tutorials/counter-verification-page.png) -12. 签署验证请求后,您将收到验证状态通知 +12. 簽署驗證請求後,您將收到驗證狀態通知 ![](/img/build/tutorials/counter-success-popup.png) -13. 验证完成后,浏览器将显示验证结果,并显示包含合同地址的成功结果页面。 点击合同地址,查看**合同源代码**、**合同 ABI**和**字节码**。 +13. 驗證完成後,瀏覽器將顯示驗證結果,並顯示包含合同地址的成功結果頁面。 點擊合同地址,查看**合同源代碼**、**合同 ABI**和**字節碼**。 ![](/img/build/tutorials/counter-success-popup-I.png) ![](/img/build/tutorials/counter-full-verification.png) -#### 1.2 验证多部分合同 +#### 1.2 驗證多部分合同 -在 Kaiascope 上验证多部分合同与验证单部分合同一样简单,只是需要一些额外的步骤。 在本节中,我们将通过以下额外步骤验证 `airdropToken.sol` 合约: +在 Kaiascope 上驗證多部分合同與驗證單部分合同一樣簡單,只是需要一些額外的步驟。 在本節中,我們將通過以下額外步驟驗證 `airdropToken.sol` 合約: -- 您可以在**源代码**下选择**源文本**(Counter.sol 示例的第 3 步),或在**源代码**字段下选择**合并文件**。 在**源文本**的情况下,复制 "airdropToken_flattened.sol "中的代码并将其粘贴到文本字段中。 如果**固化文件**,可在 Remix IDE 上下载`airdropToken_flattened.sol`文件并上传到字段。 +- 您可以在**源代碼**下選擇**源文本**(Counter.sol 示例的第 3 步),或在**源代碼**字段下選擇**合併文件**。 在**源文本**的情況下,複製 "airdropToken_flattened.sol "中的代碼並將其粘貼到文本字段中。 如果**固化文件**,可在 Remix IDE 上下載`airdropToken_flattened.sol`文件並上傳到字段。 -a. 来源文本 +a. 來源文本 ![](/img/build/tutorials/airdrop-veri-field-I.png) -b. 固体文件 +b. 固體文件 ![](/img/build/tutorials/airdrop-veri-field-II.png) -在此之后,其他所有步骤都与验证单个合同相同。 填写验证参数后,点击**签署并提交**按钮进行确认并开始验证。 +在此之後,其他所有步驟都與驗證單個合同相同。 填寫驗證參數後,點擊**簽署並提交**按鈕進行確認並開始驗證。 -验证完成后,浏览器将显示验证结果,并显示包含合同地址的成功结果页面。 点击合同地址,查看**合同源代码**、**合同 ABI**和**字节码**。 +驗證完成後,瀏覽器將顯示驗證結果,並顯示包含合同地址的成功結果頁面。 點擊合同地址,查看**合同源代碼**、**合同 ABI**和**字節碼**。 ![](/img/build/tutorials/airdrop-success-popup.png) @@ -203,46 +203,46 @@ b. 固体文件 ### 2. Kaiascan -要在 Kaiascan 上验证单个合同和多部分合同,请浏览[合同提交申请页面](https://kairos.kaiascan.io/contract)。 +要在 Kaiascan 上驗證單個合同和多部分合同,請瀏覽[合同提交申請頁面](https://kairos.kaiascan.io/contract)。 :::note -目前,Kaiascan 上的合同验证还处于测试阶段。 +目前,Kaiascan 上的合同驗證還處於測試階段。 ::: ![](/img/build/tutorials/kaiascan-con-sub-page.png) -#### 2.1 核查单一合同 +#### 2.1 核查單一合同 -1. 填写已部署合同的**合同地址** (Counter.sol) -2. 选择 "Counter.sol "示例使用的**编译器版本** -3. 选择用于 "Counter.sol "示例的**开源许可类型**。 在 "Counter.sol "示例中,选择 "**MIT License (MIT)**" 选项。 如果没有使用,请选择 **无许可证(无)** -4. 确保从 Remix IDE 下载 "Counter.sol",并将其上载到\*\*源代码(Solidity 文件)\*\*字段中。 -5. 为合同选择 **EVM 版本**。 以 "Counter.sol "为例,选择 "**伊斯坦布尔**"选项。 -6. 如果在编译过程中启用了**优化**,则为**优化**选择**真**,并在**优化运行**下填写运行次数为**200**。 -7. (可选)要获取该字段的 ABI 编码构造函数参数,请访问 [abi.hashex.org](http://abi.hashex.org),获取下图所示的编码数据: +1. 填寫已部署合同的**合同地址** (Counter.sol) +2. 選擇 "Counter.sol "示例使用的**編譯器版本** +3. 選擇用於 "Counter.sol "示例的**開源許可類型**。 在 "Counter.sol "示例中,選擇 "**MIT License (MIT)**" 選項。 如果沒有使用,請選擇 **無許可證(無)** +4. 確保從 Remix IDE 下載 "Counter.sol",並將其上載到\*\*源代碼(Solidity 文件)\*\*字段中。 +5. 為合同選擇 **EVM 版本**。 以 "Counter.sol "為例,選擇 "**伊斯坦布爾**"選項。 +6. 如果在編譯過程中啟用了**優化**,則為**優化**選擇**真**,並在**優化運行**下填寫運行次數為**200**。 +7. (可選)要獲取該字段的 ABI 編碼構造函數參數,請訪問 [abi.hashex.org](http://abi.hashex.org),獲取下圖所示的編碼數據: ![](/img/build/tutorials/abi-hashex.png) -8. 点击**验证和发布**按钮开始验证。 +8. 點擊**驗證和發佈**按鈕開始驗證。 ![](/img/build/tutorials/counter-k-verification-page.png) -9. 验证完成后,您将收到**提交成功**信息。 现在,您可以在资源管理器搜索栏中粘贴合同地址,查看**合同源代码**、**合同 ABI**、**创建代码**和**ABI 编码值**。 +9. 驗證完成後,您將收到**提交成功**信息。 現在,您可以在資源管理器搜索欄中粘貼合同地址,查看**合同源代碼**、**合同 ABI**、**創建代碼**和**ABI 編碼值**。 > ![](/img/build/tutorials/counter-k-full-verification.png) -### 2.2 验证多部分合同 +### 2.2 驗證多部分合同 -在 Kaiascan 验证多部分合同的步骤与验证单个合同相同。 不过,需要注意的是,由于 Kaiascan 目前不支持上传文件进行验证,我们将在**下面输入 Solidity 合同代码**字段中复制并粘贴 "airdropToken_flattened.sol "文件。 +在 Kaiascan 驗證多部分合同的步驟與驗證單個合同相同。 不過,需要注意的是,由於 Kaiascan 目前不支持上傳文件進行驗證,我們將在**下面輸入 Solidity 合同代碼**字段中複製並粘貼 "airdropToken_flattened.sol "文件。 ![](/img/build/tutorials/airdrop-k-verification-page.png) -填写验证参数后,点击**验证和发布**按钮开始验证。 验证完成后,验证页面将刷新。 现在,您可以在资源管理器搜索栏中粘贴合同地址,查看**合同源代码**、**合同 ABI**和**创建代码**。 +填寫驗證參數後,點擊**驗證和發佈**按鈕開始驗證。 驗證完成後,驗證頁面將刷新。 現在,您可以在資源管理器搜索欄中粘貼合同地址,查看**合同源代碼**、**合同 ABI**和**創建代碼**。 ![](/img/build/tutorials/airdrop-k-full-verification.png) -## 结论 +## 結論 -恭喜您遵循本指南! 在本教程中,您将学习如何使用 Kaiascope 和 Kaiascan 来验证合同(单部分和多部分),以提高部署合同的透明度(对用户)、便利性(对开发人员)和安全性。 如需了解更多信息,请访问 [Kaia 文档](https://docs.kaia.io/);如有任何问题,请访问 [Kaia 论坛](https://devforum.kaia.io/)。 +恭喜您遵循本指南! 在本教程中,您將學習如何使用 Kaiascope 和 Kaiascan 來驗證合同(單部分和多部分),以提高部署合同的透明度(對用戶)、便利性(對開發人員)和安全性。 如需瞭解更多信息,請訪問 [Kaia 文檔](https://docs.kaia.io/);如有任何問題,請訪問 [Kaia 論壇](https://devforum.kaia.io/)。 From a136359ee73af3e46d9349821a52042d7776437d Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:43 +0800 Subject: [PATCH 0027/2513] New translations hardhat.md (Chinese Simplified) --- .../build/smart-contracts/verify/hardhat.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md index 132e8e0bbd5e..c607c7cd4391 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md @@ -1,14 +1,14 @@ --- -sidebar_label: 使用硬头盔 +sidebar_label: 使用硬頭盔 --- -# 如何使用 Hardhat 验证智能合约 +# 如何使用 Hardhat 驗證智能合約 -本指南允许您使用Hardhat Verify Plugin直接从 CLI 在 Kaiascope 上自动验证智能合约的源代码。 +本指南允許您使用Hardhat Verify Plugin直接從 CLI 在 Kaiascope 上自動驗證智能合約的源代碼。 -要在 klaytn 上验证您的合同,您需要在`hardhat.config.js`中添加以下配置: +要在 klaytn 上驗證您的合同,您需要在`hardhat.config.js`中添加以下配置: -## 主网 +## 主網 ``` module.exports = { @@ -65,7 +65,7 @@ module.exports = { } ``` -要验证合同,您需要运行验证命令,并输入已部署合同的地址、网络和参数(如有) 。 +要驗證合同,您需要運行驗證命令,並輸入已部署合同的地址、網絡和參數(如有) 。 ```bash npx hardhat verify -network @@ -75,14 +75,14 @@ npx hardhat verify -network npx hardhat verify --network kairos 0x131b54E65c99d34BCA738F29051fDAceEa91C969 1000000000000000 ``` -在您的终端中,您应该可以看到您的合同源代码已成功提交验证。 如果验证成功,您应看到 "成功验证合同",并在 -[Kaiascope] (https://kairos.kaiascope.com/account/0x131b54E65c99d34BCA738F29051fDAceEa91C969?tabId=contractCode) 上有一个指向合同代码的链接。 +在您的終端中,您應該可以看到您的合同源代碼已成功提交驗證。 如果驗證成功,您應看到 "成功驗證合同",並在 +[Kaiascope] (https://kairos.kaiascope.com/account/0x131b54E65c99d34BCA738F29051fDAceEa91C969?tabId=contractCode) 上有一個指向合同代碼的鏈接。 ![](/img/build/smart-contracts/verify/terminal-hh-verify-ss.png) ![](/img/build/smart-contracts/verify/scope-hh-verify-ss.png) -## 实用链接 +## 實用鏈接 -- [Hardhat验证插件配置](https://docs.klaytnscope.com/contract/configuration-for-hardhat-verify-plugin) -- [在 Kaiascope 上使用 Hardhat 验证合同](https://klaytn.foundation/verifying-contracts-using-hardhat-on-klaytnscope) +- [Hardhat驗證插件配置](https://docs.klaytnscope.com/contract/configuration-for-hardhat-verify-plugin) +- [在 Kaiascope 上使用 Hardhat 驗證合同](https://klaytn.foundation/verifying-contracts-using-hardhat-on-klaytnscope) From 5d7f39aa61561383916f00160c4816ab19cc7edf Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:46 +0800 Subject: [PATCH 0028/2513] New translations block-explorers.md (Chinese Simplified) --- .../current/build/tools/block-explorers/block-explorers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md index 87b7e057879d..d95081cf5307 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md @@ -1,8 +1,8 @@ -# 积木探险家 +# 積木探險家 -该区块链工具使用户和爱好者能够搜索有关区块链的实时和历史信息。 Kaia 上的区块探索器包含有关 Kaia 的信息,因此用户可以搜索 Kaia 上的区块、交易、余额、地址和合约。 +該區塊鏈工具使用戶和愛好者能夠搜索有關區塊鏈的即時和歷史信息。 Kaia 上的區塊探索器包含有關 Kaia 的信息,因此用戶可以搜索 Kaia 上的區塊、交易、餘額、地址和合約。 -由 Kaia 支持的探险家名单如下: +由 Kaia 支持的探險家名單如下: - [Kaiascope](https://kaiascope.com/) - [Kaiascan](https://www.kaiascan.io/) From 2d20e5634c1624546eca2b392d9dcd360efb3499 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:50 +0800 Subject: [PATCH 0029/2513] New translations kaiascope.md (Chinese Simplified) --- .../build/tools/block-explorers/kaiascope.md | 230 +++++++++--------- 1 file changed, 115 insertions(+), 115 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md index df8467c18eb2..39f9de5717e8 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md @@ -1,118 +1,118 @@ # Kaiascope -Kaiascope 是 Kaia 网络的区块资源管理器。 Kaiascope 通过监控网络健康状况和提供 Kaia 网络的各种统计数据,让您深入了解 Kaia 网络。 您还可以查看 Kaia 网络上的区块和交易数据以及智能合约列表。 +Kaiascope 是 Kaia 網絡的區塊資源管理器。 Kaiascope 通過監控網絡健康狀況和提供 Kaia 網絡的各種統計數據,讓您深入瞭解 Kaia 網絡。 您還可以查看 Kaia 網絡上的區塊和交易數據以及智能合約列表。 -- 有关 Kairos 网络,请访问 [https://kairos.kaiascope.com](https://kairos.kaiascope.com) -- 有关主网,请访问 [https://kaiascope.com/](https://kaiascope.com/) +- 有關 Kairos 網絡,請訪問 [https://kairos.kaiascope.com](https://kairos.kaiascope.com) +- 有關主網,請訪問 [https://kaiascope.com/](https://kaiascope.com/) ![](/img/build/tools/scope_01_main.png) -## 主要特点 +## 主要特點 -请注意,部分功能正在开发中。 +請注意,部分功能正在開發中。 -- 网络概览 -- 区块搜索 +- 網絡概覽 +- 區塊搜索 - 交易搜索 -- 账户搜索 -- 事件日志搜索 -- 整块提案人信息 +- 賬戶搜索 +- 事件日誌搜索 +- 整塊提案人信息 -在随后的章节中,我们将参观 Kaiascope 的主要功能和屏幕截图。 功能分为四类:仪表盘、列表视图、详细视图和搜索。 +在隨後的章節中,我們將參觀 Kaiascope 的主要功能和屏幕截圖。 功能分為四類:儀表盤、列表視圖、詳細視圖和搜索。 -## 仪表板 +## 儀表板 -网络信息显示在仪表板中。 这些信息包括平均区块生成时间、区块中的平均交易数量、共识节点数量以及交易的最新趋势。 +網絡信息顯示在儀表板中。 這些信息包括平均區塊生成時間、區塊中的平均交易數量、共識節點數量以及交易的最新趨勢。 ![](/img/build/tools/scope_02_main_indicator.png) -- 区块高度:最新的区块高度。 它显示了自创世以来已经生成了多少区块。 -- 网络性能:它通过四项指标显示 Kaia 的网络性能。 - - 共识节点:上图显示有 15 个节点参与了共识过程。 - - 平均块生成时间(1 小时):显示过去一小时内生成数据块的平均时间。 - - 平均块生成时间(24 小时):它显示了过去 24 小时内生成数据块的平均时间。 - - Avg TX Per Block (24 小时):过去 24 小时内包含在一个数据块中的平均交易次数。 -- 交易历史(14 天):图表显示过去 14 天内的每日交易次数。 您可以看到过去两周交易量的变化趋势。 +- 區塊高度:最新的區塊高度。 它顯示了自創世以來已經生成了多少區塊。 +- 網絡性能:它通過四項指標顯示 Kaia 的網絡性能。 + - 共識節點:上圖顯示有 15 個節點參與了共識過程。 + - 平均塊生成時間(1 小時):顯示過去一小時內生成數據塊的平均時間。 + - 平均塊生成時間(24 小時):它顯示了過去 24 小時內生成數據塊的平均時間。 + - Avg TX Per Block (24 小時):過去 24 小時內包含在一個數據塊中的平均交易次數。 +- 交易歷史(14 天):圖表顯示過去 14 天內的每日交易次數。 您可以看到過去兩週交易量的變化趨勢。 -### 最近的区块和交易 +### 最近的區塊和交易 -这些列表分别显示最近创建的区块和事务。 点击窗格右上角的刷新按钮,即可获得最新信息。 在列表底部,单击 "查看全部 "按钮将进入[列表视图](#list-view)。 +這些列表分別顯示最近創建的區塊和事務。 點擊窗格右上角的刷新按鈕,即可獲得最新信息。 在列表底部,單擊 "查看全部 "按鈕將進入[列表視圖](#list-view)。 ![](/img/build/tools/scope_03_main_list.png) -### 网络状态和网络选择器 +### 網絡狀態和網絡選擇器 ![](/img/build/tools/network_status.gif) -网站右上角有网络状态指示灯和网络选择器下拉菜单。 +網站右上角有網絡狀態指示燈和網絡選擇器下拉菜單。 -- 网络状态指示灯 - - 网络正常:Kaiascope 正常运行。 网络状态正常。 - - 数据延迟:Kaiascope 正在进行系统维护。 数据处于延迟状态。 - - 数据准确性:Kaiascope 正在同步数据,请稍候。 -- 网络选择器下拉菜单 - - 您可以从菜单中选择 Kaia 主网和 Kairos 测试网。 +- 網絡狀態指示燈 + - 網絡正常:Kaiascope 正常運行。 網絡狀態正常。 + - 數據延遲:Kaiascope 正在進行系統維護。 數據處於延遲狀態。 + - 數據準確性:Kaiascope 正在同步數據,請稍候。 +- 網絡選擇器下拉菜單 + - 您可以從菜單中選擇 Kaia 主網和 Kairos 測試網。 ## 列表查看 -如果您想进一步了解 Kaia 网络的状态,可以查看最近生成的区块和交易列表。 要访问列表页面,请单击屏幕左侧导航栏上的按钮。 +如果您想進一步瞭解 Kaia 網絡的狀態,可以查看最近生成的區塊和交易列表。 要訪問列表頁面,請單擊屏幕左側導航欄上的按鈕。 -### 块 +### 塊 ![](/img/build/tools/scope_04_block_list.png) -最近生成的区块列表。 要更新信息,请点击刷新。 +最近生成的區塊列表。 要更新信息,請點擊刷新。 -- 区块:区块的唯一编号。 从零开始(创世区块),每次生成一个区块时都会依次给出。 -- 时间:区块生成后的持续时间。 您可以通过鼠标悬停来查看确切的日期和时间。 -- TX 总数:区块中包含的交易总数。 -- 区块提议者:随机但确定地选择提出区块的共识节点。 点击地址,即可轻松进入详情页面。 -- 奖励:新铸币的 KAIA (9.6 KAIA/)和区块中使用的交易费的总和。 列表仅显示 Kaia 治理委员会奖励、贡献证明和 Kaia 生态系统基金的总和。 将鼠标悬停在区块详情页面上的区块奖励部分,即可查看详细信息。 有关区块奖励分配系统的更多详情,请参阅\[Kaia 代币经济]。 -- 大小:数据块的大小,以字节为单位。 包含的交易越多,区块大小就越大。 +- 區塊:區塊的唯一編號。 從零開始(創世區塊),每次生成一個區塊時都會依次給出。 +- 時間:區塊生成後的持續時間。 您可以通過鼠標懸停來查看確切的日期和時間。 +- TX 總數:區塊中包含的交易總數。 +- 區塊提議者:隨機但確定地選擇提出區塊的共識節點。 點擊地址,即可輕鬆進入詳情頁面。 +- 獎勵:新鑄幣的 KAIA (9.6 KAIA/)和區塊中使用的交易費的總和。 列表僅顯示 Kaia 治理委員會獎勵、貢獻證明和 Kaia 生態系統基金的總和。 將鼠標懸停在區塊詳情頁面上的區塊獎勵部分,即可查看詳細信息。 有關區塊獎勵分配系統的更多詳情,請參閱\[Kaia 代幣經濟]。 +- 大小:數據塊的大小,以字節為單位。 包含的交易越多,區塊大小就越大。 ### 交易 ![](/img/build/tools/scope_05_tx_list.png) -最近执行的事务列表。 要更新信息,请点击刷新。 +最近執行的事務列表。 要更新信息,請點擊刷新。 -- TX 哈希值:交易的唯一标识符。 如需了解更多信息,请点击散列进入详细页面。 如果交易失败,旁边会出现一个红色感叹号。 -- Block \#: 包含此交易的区块编号。 点击号码后,您将进入该区块的详细信息页面。 -- 时间:交易执行后的持续时间。 您可以通过鼠标悬停来查看确切的日期和时间。 -- 发件人 -> 收件人:发件人和收件人的地址。 点击地址,即可轻松进入详情页面。 如果文件图标显示在地址旁边,则表示该地址是一份合同。 -- TX 类型:交易类型。 您可以使用过滤器来获取特定类型的交易。 更多信息,请访问 \[交易]。 -- 金额:通过交易转移的价值量。 -- TX 费用:处理交易的实际费用。 +- TX 哈希值:交易的唯一標識符。 如需瞭解更多信息,請點擊散列進入詳細頁面。 如果交易失敗,旁邊會出現一個紅色感嘆號。 +- Block \#: 包含此交易的區塊編號。 點擊號碼後,您將進入該區塊的詳細信息頁面。 +- 時間:交易執行後的持續時間。 您可以通過鼠標懸停來查看確切的日期和時間。 +- 發件人 -> 收件人:發件人和收件人的地址。 點擊地址,即可輕鬆進入詳情頁面。 如果文件圖標顯示在地址旁邊,則表示該地址是一份合同。 +- TX 類型:交易類型。 您可以使用過濾器來獲取特定類型的交易。 更多信息,請訪問 \[交易]。 +- 金額:通過交易轉移的價值量。 +- TX 費用:處理交易的實際費用。 -## 详细查看 +## 詳細查看 -有关单个区块、交易、账户和合约的详细信息,请参见本页。 要转到详细信息视图,可以从搜索栏中搜索实体,或从列表视图中单击项目。 +有關單個區塊、交易、賬戶和合約的詳細信息,請參見本頁。 要轉到詳細信息視圖,可以從搜索欄中搜索實體,或從列表視圖中單擊項目。 -### 街区 +### 街區 ![](/img/build/tools/scope_08_block_detail.png) #### 概述 -区块的总体信息。 +區塊的總體信息。 -- 时间: 生成区块后的时间。 旁边还会显示确切的日期时间。 -- 哈希值:区块的唯一标识符。 按下复制按钮,就可以轻松复制哈希值。 -- 父哈希值:前一个区块的唯一标识符。 点击散列可进入父散列的详细视图。 -- TX 总数:区块中包含的交易总数。 -- 区块奖励:新铸币的 KAIA (9.6 KAIA/)和区块中收取的交易费的总和。 将鼠标悬停,您将看到有关 Kaia 治理委员会奖励、贡献证明和 Kaia 生态系统基金的详细信息。 有关区块奖励分配系统的更多详情,请参阅\[Kaia 代币经济]。 -- 数据块大小:数据块的大小(以字节为单位)。 包含的交易越多,区块大小就越大。 +- 時間: 生成區塊後的時間。 旁邊還會顯示確切的日期時間。 +- 哈希值:區塊的唯一標識符。 按下複製按鈕,就可以輕鬆複製哈希值。 +- 父哈希值:前一個區塊的唯一標識符。 點擊散列可進入父散列的詳細視圖。 +- TX 總數:區塊中包含的交易總數。 +- 區塊獎勵:新鑄幣的 KAIA (9.6 KAIA/)和區塊中收取的交易費的總和。 將鼠標懸停,您將看到有關 Kaia 治理委員會獎勵、貢獻證明和 Kaia 生態系統基金的詳細信息。 有關區塊獎勵分配系統的更多詳情,請參閱\[Kaia 代幣經濟]。 +- 數據塊大小:數據塊的大小(以字節為單位)。 包含的交易越多,區塊大小就越大。 -#### 委员会 +#### 委員會 -提出并验证区块的共识节点列表。 +提出並驗證區塊的共識節點列表。 -- 区块提议者:随机但确定地选择提出区块的共识节点。 点击地址,就可以轻松进入节点的详细视图。 -- 验证者:验证区块的共识节点。 点击地址,就可以轻松进入节点的详细视图。 +- 區塊提議者:隨機但確定地選擇提出區塊的共識節點。 點擊地址,就可以輕鬆進入節點的詳細視圖。 +- 驗證者:驗證區塊的共識節點。 點擊地址,就可以輕鬆進入節點的詳細視圖。 #### 交易 -区块中包含的交易列表。 +區塊中包含的交易列表。 ### 交易 @@ -120,42 +120,42 @@ Kaiascope 是 Kaia 网络的区块资源管理器。 Kaiascope 通过监控网 #### 概述 -交易的总体信息。 +交易的總體信息。 -- 状态指示器:在右上角。 交易是否成功的指标。 -- TX 类型:交易类型。 更多信息,请参阅 \[交易]。 -- Block \#:包含此交易的区块编号。 点击数字可进入区块的详细视图。 -- 发件人 -> 收件人:发件人和收件人的地址。 点击地址,即可进入账户的详细视图。 如果地址旁边显示文件图标,则表示该地址已签约。 -- 费用支付人:当 TX 类型为 "收费委托 "或 "按比例收费委托 "时显示。 点击缴费人地址后,即可进入账户的详细视图。 -- Time(时间):交易执行后的时间。 -- Nonce:发件人地址发送的交易编号。 从零开始,每次发送交易时,它都会依次增加。 -- 金额:本次交易中转移的价值金额。 -- 天然气价格:单位为 KAIA 的天然气成本。 在 Kaia 网络中,天然气价格是固定的。 -- 使用的气体:执行交易时使用的确切气体。 -- 汽油限额:发件人愿意为此次交易支付的最大汽油量。 -- TX 费用:处理交易的实际费用。 计算方法:天然气价格乘以天然气用量。 -- 发件人 TX 费用:当 TX 类型为带比率的收费委托时显示。 发件人支付的 TX 费用部分。 -- TX 费用(按费用支付方):TX 类型为按比例收费委托时显示。 TX 费用中由付费者支付的部分。 +- 狀態指示器:在右上角。 交易是否成功的指標。 +- TX 類型:交易類型。 更多信息,請參閱 \[交易]。 +- Block \#:包含此交易的區塊編號。 點擊數字可進入區塊的詳細視圖。 +- 發件人 -> 收件人:發件人和收件人的地址。 點擊地址,即可進入賬戶的詳細視圖。 如果地址旁邊顯示文件圖標,則表示該地址已簽約。 +- 費用支付人:當 TX 類型為 "收費委託 "或 "按比例收費委託 "時顯示。 點擊繳費人地址後,即可進入賬戶的詳細視圖。 +- Time(時間):交易執行後的時間。 +- Nonce:發件人地址發送的交易編號。 從零開始,每次發送交易時,它都會依次增加。 +- 金額:本次交易中轉移的價值金額。 +- 天然氣價格:單位為 KAIA 的天然氣成本。 在 Kaia 網絡中,天然氣價格是固定的。 +- 使用的氣體:執行交易時使用的確切氣體。 +- 汽油限額:發件人願意為此次交易支付的最大汽油量。 +- TX 費用:處理交易的實際費用。 計算方法:天然氣價格乘以天然氣用量。 +- 發件人 TX 費用:當 TX 類型為帶比率的收費委託時顯示。 發件人支付的 TX 費用部分。 +- TX 費用(按費用支付方):TX 類型為按比例收費委託時顯示。 TX 費用中由付費者支付的部分。 -#### 输入数据 +#### 輸入數據 -发件人或合同提供的额外数据。 +發件人或合同提供的額外數據。 -### 账户 +### 賬戶 ![](/img/build/tools/scope_10_account_detail.png) #### 概述 -账户的总体信息。 +賬戶的總體信息。 -- 地址(Hex\ ):账户的唯一地址。 -- 余额:该账户拥有的 KAIA 总额。 -- TX 总数:该账户发送或接收的交易总数。 +- 地址(Hex\ ):賬戶的唯一地址。 +- 餘額:該賬戶擁有的 KAIA 總額。 +- TX 總數:該賬戶發送或接收的交易總數。 #### 交易 -与该账户相关的交易列表。 箭头的颜色表示账户是发送方还是接收方。 +與該賬戶相關的交易列表。 箭頭的顏色表示賬戶是發送方還是接收方。 ### 合同 @@ -163,67 +163,67 @@ Kaiascope 是 Kaia 网络的区块资源管理器。 Kaiascope 通过监控网 #### 概述 -合同的总体信息。 +合同的總體信息。 - Account\(Hex\):合同的唯一地址。 -- 余额:该合同的 KAIA 总金额。 -- 合同创建者:部署此合同的账户。 点击地址,即可进入账户的详细视图。 -- TX 总数:该合同收到的交易总数。 -- 合同创建 TX:部署此合同的交易。 点击哈希值可进入交易的详细视图。 +- 餘額:該合同的 KAIA 總金額。 +- 合同創建者:部署此合同的賬戶。 點擊地址,即可進入賬戶的詳細視圖。 +- TX 總數:該合同收到的交易總數。 +- 合同創建 TX:部署此合同的交易。 點擊哈希值可進入交易的詳細視圖。 #### 交易 -与本合同有关的交易清单。 +與本合同有關的交易清單。 ## 搜索 -通过 Kaiascope,您可以搜索有关账户、合约、交易和区块的信息。 搜索栏位于每个页面上,方便用户访问。 输入一个有效的关键字,就可以进入实体的详细视图。 +通過 Kaiascope,您可以搜索有關賬戶、合約、交易和區塊的信息。 搜索欄位於每個頁面上,方便用戶訪問。 輸入一個有效的關鍵字,就可以進入實體的詳細視圖。 ![](/img/build/tools/scope_06_search.png) -### 搜索关键词 +### 搜索關鍵詞 -在主网版本中,可搜索的关键字如下: +在主網版本中,可搜索的關鍵字如下: -- 区块 -- 德克萨斯州哈希 -- Address (账户,合同) +- 區塊 +- 德克薩斯州哈希 +- Address (賬戶,合同) -### 关键词格式 +### 關鍵詞格式 -每个关键词的独特特征如下: +每個關鍵詞的獨特特徵如下: -#### 街区 +#### 街區 -- 仅限十进制数 \[0~9\] +- 僅限十進制數 \[0~9\] -#### 德克萨斯州哈希 +#### 德克薩斯州哈希 -- 66 个字符长 -- 以前缀 `0x` 开头 -- 仅限十六进制数 ([0~9, a~f\] +- 66 個字符長 +- 以前綴 `0x` 開頭 +- 僅限十六進制數 ([0~9, a~f\] #### 地址 -- 42 个字符长 -- 以前缀 `0x` 开始 -- 仅限十六进制数 ([0~9, a~f\] +- 42 個字符長 +- 以前綴 `0x` 開始 +- 僅限十六進制數 ([0~9, a~f\] -### 搜索错误 +### 搜索錯誤 ![](/img/build/tools/scope_07_noresult.png) -如果搜索的关键字不符合指定格式或信息尚未生成,则不会出现任何数据。 +如果搜索的關鍵字不符合指定格式或信息尚未生成,則不會出現任何數據。 -#### 错误格式 (TX Hash / Address\) +#### 錯誤格式 (TX Hash / Address\) -- 字符数错误 -- 不以前缀 `0x` 开头 -- 包含特殊字符或非十六进制字符 +- 字符數錯誤 +- 不以前綴 `0x` 開頭 +- 包含特殊字符或非十六進制字符 #### 不存在 -- 尚未生成的区块(如果输入的区块编号高于最近生成的区块编号) +- 尚未生成的區塊(如果輸入的區塊編號高於最近生成的區塊編號) - 不存在 TX 哈希值 [Transactions]: ../../../learn/transactions/transactions.md From 4608f792b8f9a7baa2e6cd04fd01a0440c3c5b31 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:53 +0800 Subject: [PATCH 0030/2513] New translations cross-chain.md (Chinese Simplified) --- .../build/tools/cross-chain/cross-chain.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md index a825cda32595..8e2d56a1f1fa 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md @@ -1,24 +1,24 @@ -# 跨链互操作性 +# 跨鏈互操作性 -跨链互操作性协议旨在将原本孤立和独立的区块链网络连接起来。 这些协议使不同的链能够互动,让流动性和状态在它们之间流动。 通过建立在不同区块链网络之间传输资产和数据的规则和流程,跨链互操作性协议促进了原本独立的系统之间的无缝协作和信息交换。 +跨鏈互操作性協議旨在將原本孤立和獨立的區塊鏈網絡連接起來。 這些協議使不同的鏈能夠互動,讓流動性和狀態在它們之間流動。 通過建立在不同區塊鏈網絡之間傳輸資產和數據的規則和流程,跨鏈互操作性協議促進了原本獨立的系統之間的無縫協作和信息交換。 -## 范围广泛的跨链解决方案 +## 範圍廣泛的跨鏈解決方案 -跨链互操作性是一个包含各种技术的综合概念: +跨鏈互操作性是一個包含各種技術的綜合概念: -1. **跨链消息协议**:这些协议可实现广泛的互操作性,支持数据交换和跨链智能合约执行等多种操作。 +1. **跨鏈消息協議**:這些協議可實現廣泛的互操作性,支持數據交換和跨鏈智能合約執行等多種操作。 -2. **跨链桥梁**:跨链桥是跨链解决方案的一个特定子集,主要侧重于链之间的资产转移。 它们在连接不同区块链生态系统中的资产方面发挥着至关重要的作用,但与一般的消息传递协议相比,它们的功能更为专业。 +2. **跨鏈橋樑**:跨鏈橋是跨鏈解決方案的一個特定子集,主要側重於鏈之間的資產轉移。 它們在連接不同區塊鏈生態系統中的資產方面發揮著至關重要的作用,但與一般的消息傳遞協議相比,它們的功能更為專業。 -## 凯亚的兼容性 +## 凱亞的兼容性 -Kaia 网络目前与领先的跨链解决方案兼容,增强了其在更广泛的区块链环境中的连接性。 Kaia 目前支持以下功能: +Kaia 網絡目前與領先的跨鏈解決方案兼容,增強了其在更廣泛的區塊鏈環境中的連接性。 Kaia 目前支持以下功能: -### 跨链消息传递协议 +### 跨鏈消息傳遞協議 - [LayerZero](https://layerzero.network/) -- [虫洞](https://wormhole.com/) +- [蟲洞](https://wormhole.com/) -### 跨链桥梁 +### 跨鏈橋樑 -- [星际之门](https://stargate.finance/) +- [星際之門](https://stargate.finance/) From d0ac7a6eb4b1162bfa7da5a35614a4f73dfb038b Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:56 +0800 Subject: [PATCH 0031/2513] New translations indexers.md (Chinese Simplified) --- .../current/build/tools/indexers/indexers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md index ec2b34d7b44e..fbc0d460e357 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md @@ -1,8 +1,8 @@ # Indexers -区块链索引器是区块链技术中使用的工具,用于提高搜索、查询和访问存储在区块链上的数据的效率和速度。 它们创建并维护区块链数据的有序数据库,使用户能够快速检索信息,而无需从头开始处理整个区块链。 +區塊鏈索引器是區塊鏈技術中使用的工具,用於提高搜索、查詢和訪問存儲在區塊鏈上的數據的效率和速度。 它們創建並維護區塊鏈數據的有序數據庫,使用戶能夠快速檢索信息,而無需從頭開始處理整個區塊鏈。 -以下供应商已与 Kaia 集成,提供区块链索引服务: +以下供應商已與 Kaia 集成,提供區塊鏈索引服務: -- [图表](https://thegraph.com/) +- [圖表](https://thegraph.com/) - [SubQuery Network](https://academy.subquery.network/) From 2f5a0ee13ff56590d18125698acedc645c3169f3 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:27:58 +0800 Subject: [PATCH 0032/2513] New translations subquery.md (Japanese) --- .../current/build/tools/indexers/subquery.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md b/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md index 201ae765e388..4447a02686d5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md @@ -30,9 +30,9 @@ You can publish it to the decentralized SubQuery Network, the most open, perform Here are some additional resources to help you get started with SubQuery: -- [SubQuery Website](https://subquery.network/?utm_source=klaytn\\\\&utm_medium=partner-docs) -- [Documentation](https://academy.subquery.network/?utm_source=klaytn\\\\&utm_medium=partner-docs) -- [SubQuery Klaytn Support Announcement](https://subquery.medium.com/subquerys-data-indexing-supports-builders-on-klaytn-e5a3aec4bc14?utm_source=klaytn\\\\&utm_medium=partner-docs) -- [Klaytn Quick Start](https://academy.subquery.network/quickstart/quickstart_chains/klaytn.html/?utm_source=klaytn\\\\&utm_medium=partner-docs) +- [SubQuery Website](https://subquery.network/?utm_source=klaytn\\\\\&utm_medium=partner-docs) +- [Documentation](https://academy.subquery.network/?utm_source=klaytn\\\\\&utm_medium=partner-docs) +- [SubQuery Klaytn Support Announcement](https://subquery.medium.com/subquerys-data-indexing-supports-builders-on-klaytn-e5a3aec4bc14?utm_source=klaytn\\\\\&utm_medium=partner-docs) +- [Klaytn Quick Start](https://academy.subquery.network/quickstart/quickstart_chains/klaytn.html/?utm_source=klaytn\\\\\&utm_medium=partner-docs) - [Klaytn Starter Project](https://github.com/subquery/ethereum-subql-starter/tree/main/Klaytn/klaytn-starter) -- [Discord Support](https://discord.com/invite/subquery/?utm_source=klaytn\\\\&utm_medium=partner-docs) +- [Discord Support](https://discord.com/invite/subquery/?utm_source=klaytn\\\\\&utm_medium=partner-docs) From 070202aead3e58bd5059b9f1695835bcfaf28bf9 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:00 +0800 Subject: [PATCH 0033/2513] New translations subquery.md (Chinese Simplified) --- .../current/build/tools/indexers/subquery.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md index d106fb6f2d7c..457991d652a7 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md @@ -2,37 +2,37 @@ sidebar_label: SubQuery --- -# SubQuery多链索引器 +# SubQuery多鏈索引器 -SubQuery 是领先的区块链数据索引器,为开发人员的 Web3 项目提供快速、灵活、通用、开源和去中心化的 API。 SubQuery SDK 允许开发人员获取丰富的索引数据,并以更快、更高效的方式构建直观、身临其境的去中心化应用程序。 SubQuery 支持 100 多个生态系统,包括 Kaia 的 EVM、Cosmos、以太坊、Polygon、Polkadot、Algorand、NEAR 和 Avalanche。 +SubQuery 是領先的區塊鏈數據索引器,為開發人員的 Web3 項目提供快速、靈活、通用、開源和去中心化的 API。 SubQuery SDK 允許開發人員獲取豐富的索引數據,並以更快、更高效的方式構建直觀、身臨其境的去中心化應用程序。 SubQuery 支持 100 多個生態系統,包括 Kaia 的 EVM、Cosmos、以太坊、Polygon、Polkadot、Algorand、NEAR 和 Avalanche。 -SubQuery 的另一个竞争优势是,它不仅能在一个链上汇总数据,还能在一个项目中汇总多个区块链上的数据。 这样就可以创建功能丰富的仪表盘分析或多链块扫描仪。 +SubQuery 的另一個競爭優勢是,它不僅能在一個鏈上彙總數據,還能在一個項目中彙總多個區塊鏈上的數據。 這樣就可以創建功能豐富的儀表盤分析或多鏈塊掃描儀。 -其他优势还包括多个 RPC 端点配置的卓越性能、多工作站功能和可配置的缓存架构。 要了解更多信息,请访问我们的 [文档](https://academy.subquery.network/)。 +其他優勢還包括多個 RPC 端點配置的卓越性能、多工作站功能和可配置的緩存架構。 要了解更多信息,請訪問我們的 [文檔](https://academy.subquery.network/)。 -## 开始 +## 開始 -看看这个[SubQuery 入门项目](https://github.com/subquery/ethereum-subql-starter/tree/main/Kaia/klaytn-starter),它通过索引来自 Kaia Network 上 Orbit ETH 的所有转账和批准事件,介绍了 SubQuery 对 Kaia 的支持。 +看看這個[SubQuery 入門項目](https://github.com/subquery/ethereum-subql-starter/tree/main/Kaia/klaytn-starter),它通過索引來自 Kaia Network 上 Orbit ETH 的所有轉賬和批准事件,介紹了 SubQuery 對 Kaia 的支持。 -你也可以跟着这个 [step by step guide](https://academy.subquery.network/quickstart/quickstart.html) 来熟悉 SubQuery,或者查看 [Kaia x SubQuery workshop](https://www.youtube.com/watch?v=40R5O1kL3v4) 来观看实际演示。 +你也可以跟著這個 [step by step guide](https://academy.subquery.network/quickstart/quickstart.html) 來熟悉 SubQuery,或者查看 [Kaia x SubQuery workshop](https://www.youtube.com/watch?v=40R5O1kL3v4) 來觀看實際演示。 -## 运行和托管 Kaia 子查询 API +## 運行和託管 Kaia 子查詢 API -SubQuery 是开源的,这意味着你可以通过以下三种方式自由运行它: +SubQuery 是開源的,這意味著你可以通過以下三種方式自由運行它: -- 在您自己的电脑上或您选择的云服务提供商上运行。 查看如何在本地运行 SubQuery 的说明 [此处](https://academy.subquery.network/run_publish/run.html)。 +- 在您自己的電腦上或您選擇的雲服務提供商上運行。 查看如何在本地運行 SubQuery 的說明 [此處](https://academy.subquery.network/run_publish/run.html)。 -您可以将其发布到 SubQuery 的企业级 [托管服务](https://managedservice.subquery.network/login),我们将在生产准备就绪的服务中托管您的 SubQuery 项目,为关键任务数据提供零停机时间的蓝色/绿色部署。 甚至还有慷慨的免费层级。 [了解方法](https://academy.subquery.network/run_publish/publish.html)。 +您可以將其發佈到 SubQuery 的企業級 [託管服務](https://managedservice.subquery.network/login),我們將在生產準備就緒的服務中託管您的 SubQuery 項目,為關鍵任務數據提供零停機時間的藍色/綠色部署。 甚至還有慷慨的免費層級。 [瞭解方法](https://academy.subquery.network/run_publish/publish.html)。 -您可以将其发布到去中心化的 SubQuery 网络,这是面向 dApp 开发人员的最开放、性能最好、最可靠和可扩展的数据服务。 SubQuery 网络以激励和可验证的方式为全球社区提供数据索引和服务,并从 Kaia 推出之初就为其提供支持。 +您可以將其發佈到去中心化的 SubQuery 網絡,這是面向 dApp 開發人員的最開放、性能最好、最可靠和可擴展的數據服務。 SubQuery 網絡以激勵和可驗證的方式為全球社區提供數據索引和服務,並從 Kaia 推出之初就為其提供支持。 -## 资源 +## 資源 -下面是一些帮助您开始使用 SubQuery 的其他资源: +下面是一些幫助您開始使用 SubQuery 的其他資源: -- [子查询网站](https://subquery.network/?utm_source=klaytn\&utm_medium=partner-docs) +- [子查詢網站](https://subquery.network/?utm_source=klaytn\&utm_medium=partner-docs) - [文件](https://academy.subquery.network/?utm_source=klaytn\&utm_medium=partner-docs) - [SubQuery Kaia 支持公告](https://subquery.medium.com/subquerys-data-indexing-supports-builders-on-klaytn-e5a3aec4bc14?utm_source=klaytn\&utm_medium=partner-docs) -- [Kaia快速启动](https://academy.subquery.network/quickstart/quickstart_chains/klaytn.html/?utm_source=klaytn\&utm_medium=partner-docs) -- [Kaia启动项目](https://github.com/subquery/ethereum-subql-starter/tree/main/Kaia/klaytn-starter) +- [Kaia快速啟動](https://academy.subquery.network/quickstart/quickstart_chains/klaytn.html/?utm_source=klaytn\&utm_medium=partner-docs) +- [Kaia啟動項目](https://github.com/subquery/ethereum-subql-starter/tree/main/Kaia/klaytn-starter) - [Discord支持](https://discord.com/invite/subquery/?utm_source=klaytn\&utm_medium=partner-docs) From 58dc1d77c55f8cc3e293c49aeed5b542ae199bf4 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:02 +0800 Subject: [PATCH 0034/2513] New translations kaia-contracts-wizard.md (Japanese) --- .../current/build/tools/kaia-contracts-wizard.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md b/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md index 3c2529911098..606e0def2fe6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md @@ -4,7 +4,7 @@ ## Introduction -Kaia prioritizes providing a seamless developer experience, which is the driving force behind the creation of the Kaia Contracts Wizard (KCW). It's worth noting that the Kaia contracts wizard is built on the foundation of the OpenZeppelin Wizard, further bolstering the security of smart contract development. KCW serves as an interactive tool for effortlessly bootstrapping your smart contracts and utilizing the secure, tested components available in [Kaia Contracts](https://github.com/kaiachain/kaia-contracts). In essence, it simplifies the process of developing smart contracts by leveraging the components of Kaia contracts. +Kaia prioritizes providing a seamless developer experience, which is the driving force behind the creation of the Kaia Contracts Wizard (KCW). In essence, it simplifies the process of developing smart contracts by leveraging the components of Kaia contracts. It's worth noting that the Kaia contracts wizard is built on the foundation of the OpenZeppelin Wizard, further bolstering the security of smart contract development. KCW serves as an interactive tool for effortlessly bootstrapping your smart contracts and utilizing the secure, tested components available in [Kaia Contracts](https://github.com/kaiachain/kaia-contracts). In this guide you will: From 5b5ac481edc686391445276672fa9471f7f5f34f Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:04 +0800 Subject: [PATCH 0035/2513] New translations kaia-contracts-wizard.md (Chinese Simplified) --- .../build/tools/kaia-contracts-wizard.md | 202 +++++++++--------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md index ce822b814ec0..9752b799724d 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md @@ -2,84 +2,84 @@ ![](/img/banners/kaia-kcw.png) -## 导言 +## 導言 -Kaia 优先考虑提供无缝的开发人员体验,这也是创建 Kaia 合同向导(KCW)的驱动力。 KCW 是一种交互式工具,可让您毫不费力地启动智能合约,并利用 [Kaia Contracts](https://github.com/kaiachain/kaia-contracts) 中经过测试的安全组件。 从本质上讲,它通过利用 Kaia 合约的组件简化了智能合约的开发过程。 值得注意的是,Kaia 合约向导建立在 OpenZeppelin 向导的基础之上,进一步加强了智能合约开发的安全性。 +Kaia 優先考慮提供無縫的開發人員體驗,這也是創建 Kaia 合同嚮導(KCW)的驅動力。 KCW 是一種交互式工具,可讓您毫不費力地啟動智能合約,並利用 [Kaia Contracts](https://github.com/kaiachain/kaia-contracts) 中經過測試的安全組件。 從本質上講,它通過利用 Kaia 合約的組件簡化了智能合約的開發過程。 值得注意的是,Kaia 合約嚮導建立在 OpenZeppelin 嚮導的基礎之上,進一步加強了智能合約開發的安全性。 -在本指南中,您将 +在本指南中,您將 -- 了解 Kaia 合同向导的基本功能。 -- 使用 Kaia Contracts Wizard 生成和定制智能合约代码。 -- 使用 Foundry 脚本系统将 Kaia 合同部署到 Kaia 网络 (Kairos)。 +- 瞭解 Kaia 合同嚮導的基本功能。 +- 使用 Kaia Contracts Wizard 生成和定製智能合約代碼。 +- 使用 Foundry 腳本系統將 Kaia 合同部署到 Kaia 網絡 (Kairos)。 -## 探索 Kaia 合同向导 +## 探索 Kaia 合同嚮導 -Kaia Contracts Wizard 将自己定位为使用 Kaia Contracts 编写智能合约的最快、最简单的方法。 在本节中,我们将深入了解 Kaia 合同向导的各个组件和部分。 +Kaia Contracts Wizard 將自己定位為使用 Kaia Contracts 編寫智能合約的最快、最簡單的方法。 在本節中,我們將深入瞭解 Kaia 合同嚮導的各個組件和部分。 -目前,Kaia 合约向导支持以下令牌标准: +目前,Kaia 合約嚮導支持以下令牌標準: -- [KIP-7](https://kips.kaia.io/KIPs/kip-7) - 这是 Kaia 的可替代令牌标准。 可互换是指所有代币都可分割和互换,即具有相同的价值。 可替代代币的一个典型例子就是法定货币,每张等面值的钞票都具有相同的价值。 -- [KIP-17](https://kips.kaia.io/KIPs/kip-17) - 这是 Kaia 的不可篡改令牌标准。 不可窜改是指每个标记都是不可分割的,因此也是独一无二的。 KIP17 代币可以代表一个独特物品的所有权,无论是实物财产还是虚拟收藏品,如图片、游戏中的物品、不动产等。 -- [KIP-37](https://kips.kaia.io/KIPs/kip-37) - 这被称为 Kaia 的多令牌标准,因为它可以在单个智能合约中同时表示可替换令牌和不可替换令牌。 +- [KIP-7](https://kips.kaia.io/KIPs/kip-7) - 這是 Kaia 的可替代令牌標準。 可互換是指所有代幣都可分割和互換,即具有相同的價值。 可替代代幣的一個典型例子就是法定貨幣,每張等面值的鈔票都具有相同的價值。 +- [KIP-17](https://kips.kaia.io/KIPs/kip-17) - 這是 Kaia 的不可篡改令牌標準。 不可竄改是指每個標記都是不可分割的,因此也是獨一無二的。 KIP17 代幣可以代表一個獨特物品的所有權,無論是實物財產還是虛擬收藏品,如圖片、遊戲中的物品、不動產等。 +- [KIP-37](https://kips.kaia.io/KIPs/kip-37) - 這被稱為 Kaia 的多令牌標準,因為它可以在單個智能合約中同時表示可替換令牌和不可替換令牌。 -与我们的 [Ethereum Equivalence](https://medium.com/klaytn/toward-ethereum-equivalence-1-introducing-klaytn-v1-8-0-971911be7ff9) 支持一致,Kaia 合约向导也支持 [ERC20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)、[ERC721](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/)、[ERC1155](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155/)。 +與我們的 [Ethereum Equivalence](https://medium.com/klaytn/toward-ethereum-equivalence-1-introducing-klaytn-v1-8-0-971911be7ff9) 支持一致,Kaia 合約嚮導也支持 [ERC20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)、[ERC721](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/)、[ERC1155](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155/)。 -Kaia 合同向导由以下部分组成: +Kaia 合同嚮導由以下部分組成: -- **令牌标准部分**:该选项卡包含 Kaia 合约向导支持的所有不同令牌标准。 +- **令牌標準部分**:該選項卡包含 Kaia 合約嚮導支持的所有不同令牌標準。 -- **设置部分**:该部分提供每个代币标准的初步设置,如代币名称、符号、预铸币(合约部署时的代币供应)和 URI(针对不可兑换代币)。 +- **設置部分**:該部分提供每個代幣標準的初步設置,如代幣名稱、符號、預鑄幣(合約部署時的代幣供應)和 URI(針對不可兌換代幣)。 -- **功能部分**:包括每个令牌标准的所有功能。 您可以在以下链接中找到更多关于每种令牌可用的不同扩展名的信息: +- **功能部分**:包括每個令牌標準的所有功能。 您可以在以下鏈接中找到更多關於每種令牌可用的不同擴展名的信息: - [KIP7](https://github.com/kaiachain/kaia-contracts/tree/master/contracts/KIP/token/KIP7/extensions) - [KIP17](https://github.com/kaiachain/kaia-contracts/tree/master/contracts/KIP/token/KIP17/extensions) - [KIP37](https://github.com/kaiachain/kaia-contracts/tree/master/contracts/KIP/token/KIP37/extensions) -- **访问控制部分**:包括每个令牌标准的所有可用访问控制机制。 +- **訪問控制部分**:包括每個令牌標準的所有可用訪問控制機制。 -- **交互式代码显示部分**:显示根据用户设置的配置生成的智能合约代码。 +- **交互式代碼顯示部分**:顯示根據用戶設置的配置生成的智能合約代碼。 ![](/img/build/tools/kcw-image.png) -在了解了 Kaia 合约向导的各个部分后,您现在可以选择想要的合约类型(目前支持 **KIP7**、**KIP17**、**KIP37**、**ERC20**、**ERC721**、**ERC1155**、**Governor** 和自定义合约),设置参数和所需功能(令牌名称、符号、预铸币量、访问控制等),然后合约向导将生成所有必要的代码。 因此,生成的代码可以随时进行编译和部署,也可以作为起点,通过特定的应用逻辑进行进一步定制。 +在瞭解了 Kaia 合約嚮導的各個部分後,您現在可以選擇想要的合約類型(目前支持 **KIP7**、**KIP17**、**KIP37**、**ERC20**、**ERC721**、**ERC1155**、**Governor** 和自定義合約),設置參數和所需功能(令牌名稱、符號、預鑄幣量、訪問控制等),然後合約嚮導將生成所有必要的代碼。 因此,生成的代碼可以隨時進行編譯和部署,也可以作為起點,通過特定的應用邏輯進行進一步定製。 -## 在 Kaia 网络上定制和部署 Kaia 合约 +## 在 Kaia 網絡上定製和部署 Kaia 合約 -在本节中,您将使用 Foundry 将 kaia 合约向导生成的代码部署到 Kaia Testnet Kairos。 生成的代码将作为起点,并进一步定制,以适应 KIP7 和 KIP17 代币的空投合约。 而在另一端,生成的 KIP37 代码将按原样使用。 +在本節中,您將使用 Foundry 將 kaia 合約嚮導生成的代碼部署到 Kaia Testnet Kairos。 生成的代碼將作為起點,並進一步定製,以適應 KIP7 和 KIP17 代幣的空投合約。 而在另一端,生成的 KIP37 代碼將按原樣使用。 -让我们开始吧! +讓我們開始吧! -### 先决条件 +### 先決條件 -要跟上本教程,先决条件如下: +要跟上本教程,先決條件如下: -- 确保安装了 [foundry](https://book.getfoundry.sh/getting-started/installation)。 -- 克隆 [klaytn-foundry-starterkit](https://github.com/ayo-klaytn/klaytn-foundry-starterkit) 代码。 -- [MetaMask](../tutorials/connecting-metamask.mdx#install-metamask):用于部署合约、签署事务和与合约交互。 -- RPC 端点:您可以从支持的[端点提供程序](../../references/public-en.md)中获取。 -- 从 [水龙头](https://faucet.kaia.io)测试 KAIA:为账户注入足够的 KAIA。 +- 確保安裝了 [foundry](https://book.getfoundry.sh/getting-started/installation)。 +- 克隆 [klaytn-foundry-starterkit](https://github.com/ayo-klaytn/klaytn-foundry-starterkit) 代碼。 +- [MetaMask](../tutorials/connecting-metamask.mdx#install-metamask):用於部署合約、簽署事務和與合約交互。 +- RPC 端點:您可以從支持的[端點提供程序](../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 -### 开始 +### 開始 -本指南将指导您简单实现 KIP7 和 KIP17 令牌标准的空投合约。 在空投合约中,项目的创建者会直接向特定的钱包铸造各自的代币。 在接下来的章节中,我们将分别介绍如何定制和部署每种令牌空投合约。 +本指南將指導您簡單實現 KIP7 和 KIP17 令牌標準的空投合約。 在空投合約中,項目的創建者會直接向特定的錢包鑄造各自的代幣。 在接下來的章節中,我們將分別介紹如何定製和部署每種令牌空投合約。 -### 定制令牌合约 +### 定製令牌合約 -**将 KIP7 合同定制为 KIP7 空投合同。** +**將 KIP7 合同定製為 KIP7 空投合同。** -在将 KIP7 合同修改为空投合同之前,您需要对其进行定制。 为此,请按照以下步骤操作: +在將 KIP7 合同修改為空投合同之前,您需要對其進行定製。 為此,請按照以下步驟操作: -1. 导航至 [wizard.klaytn.foundation](https://wizard.klaytn.foundation/)。 -2. 在**合同**选项卡上选择**KIP7** -3. 下一步是在**设置**选项卡中填写名称(KIP7 代币空投)和符号(KTA)。 铸币前区域为空 -4. 随后,在**功能**选项卡上,勾选**可薄荷**功能框,它就会自动选择**访问控制**选项卡上的可拥有功能。 +1. 導航至 [wizard.klaytn.foundation](https://wizard.klaytn.foundation/)。 +2. 在**合同**選項卡上選擇**KIP7** +3. 下一步是在**設置**選項卡中填寫名稱(KIP7 代幣空投)和符號(KTA)。 鑄幣前區域為空 +4. 隨後,在**功能**選項卡上,勾選**可薄荷**功能框,它就會自動選擇**訪問控制**選項卡上的可擁有功能。 -进行这些配置后,Kaia 合同向导就会变成这样: +進行這些配置後,Kaia 合同嚮導就會變成這樣: ![](/img/build/tools/kip7-kcw.png) -以下是生成的代码: +以下是生成的代碼: ```solidity // SPDX-License-Identifier: MIT @@ -104,7 +104,7 @@ contract KIP7TokenAirdrop is KIP7, Ownable { } ``` -接下来要做的就是修改上面的代码,以适应我们的空投执行,看起来就像这样: +接下來要做的就是修改上面的代碼,以適應我們的空投執行,看起來就像這樣: ```solidity //SPDX-License-Identifier: MIT @@ -137,26 +137,26 @@ contract KIP7TokenAirdrop is KIP7, Ownable { } ``` -从上面修改的代码中可以看到,我们添加了一个名为 `airdropTokens()` 的新函数。 该函数向某些选定的地址铸造代币,且只能由合约的创建者--"onlyOwner"--调用。 +從上面修改的代碼中可以看到,我們添加了一個名為 `airdropTokens()` 的新函數。 該函數向某些選定的地址鑄造代幣,且只能由合約的創建者--"onlyOwner"--調用。 -随后,我们将_公共_ **mint()** _onlyOwner_函数修改为**_mintSingleTokens()** 私有。 +隨後,我們將_公共_ **mint()** _onlyOwner_函數修改為**_mintSingleTokens()** 私有。 -现在我们已经准备好 KIP7 空投合同代码,下一步是在项目目录的 src 文件夹中新建一个名为 airdropKIP7.sol 的文件,并将修改后的代码粘贴到该文件中。 +現在我們已經準備好 KIP7 空投合同代碼,下一步是在項目目錄的 src 文件夾中新建一個名為 airdropKIP7.sol 的文件,並將修改後的代碼粘貼到該文件中。 -**将 KIP17 合同定制为 KIP17 空投合同。** +**將 KIP17 合同定製為 KIP17 空投合同。** -在将 KIP17 合同修改为空投合同之前,您需要对其进行定制。 为此,请按照以下步骤操作: +在將 KIP17 合同修改為空投合同之前,您需要對其進行定製。 為此,請按照以下步驟操作: -1. 导航至 [wizard.klaytn.foundation](https://wizard.klaytn.foundation/)。 -2. 在**合同**选项卡上选择**KIP17** -3. 下一步是在**设置**选项卡中填写名称(KIP7 NFT Airdrop)和符号(KNA)。 基础 URI 字段应为空。 -4. 随后,在**特性**选项卡上,勾选**可编辑**、**自动递增索引**和**可数**特性框。 您会发现**访问控制**选项卡中的 "可拥有 "功能已被自动选中。 +1. 導航至 [wizard.klaytn.foundation](https://wizard.klaytn.foundation/)。 +2. 在**合同**選項卡上選擇**KIP17** +3. 下一步是在**設置**選項卡中填寫名稱(KIP7 NFT Airdrop)和符號(KNA)。 基礎 URI 字段應為空。 +4. 隨後,在**特性**選項卡上,勾選**可編輯**、**自動遞增索引**和**可數**特性框。 您會發現**訪問控制**選項卡中的 "可擁有 "功能已被自動選中。 -进行这些配置后,Kaia 合同向导就会变成这样: +進行這些配置後,Kaia 合同嚮導就會變成這樣: ![](/img/build/tools/kip17-kcw.png) -以下是生成的代码: +以下是生成的代碼: ```solidity // SPDX-License-Identifier: MIT @@ -192,7 +192,7 @@ contract KIP17NFTAirdrop is KIP17, KIP17Enumerable, Ownable { } ``` -接下来要做的就是修改上面的代码,以适应我们的空投执行,看起来就像这样: +接下來要做的就是修改上面的代碼,以適應我們的空投執行,看起來就像這樣: ```solidity // SPDX-License-Identifier: MIT @@ -235,26 +235,26 @@ contract KIP17NftAirdrop is KIP17, KIP17Enumerable, Ownable { } ``` -从上面修改的代码中可以看到,我们添加了一个名为 **airdropNfts()** 的新函数。 该函数向某些选定的地址铸造代币,并且只能由合约的创建者(onlyOwner)调用。 +從上面修改的代碼中可以看到,我們添加了一個名為 **airdropNfts()** 的新函數。 該函數向某些選定的地址鑄造代幣,並且只能由合約的創建者(onlyOwner)調用。 -随后,我们将 **safeMint()** _public onlyOwner_ 函数修改为 **_mintSingleTokens()** **private**。 +隨後,我們將 **safeMint()** _public onlyOwner_ 函數修改為 **_mintSingleTokens()** **private**。 -现在我们已经准备好 KIP17 空投合同代码,下一步是在项目目录的 src 文件夹中新建一个名为 airdropKIP17.sol 的文件,并将修改后的代码粘贴到该文件中。 +現在我們已經準備好 KIP17 空投合同代碼,下一步是在項目目錄的 src 文件夾中新建一個名為 airdropKIP17.sol 的文件,並將修改後的代碼粘貼到該文件中。 -**定制 KIP37 合同。** +**定製 KIP37 合同。** -由于 KIP37 支持批量铸币,我们将只对合同进行定制并按原样使用。 要定制我们的 KIP37Contract,请按以下步骤操作: +由於 KIP37 支持批量鑄幣,我們將只對合同進行定製並按原樣使用。 要定製我們的 KIP37Contract,請按以下步驟操作: -1. 导航至 [wizard.klaytn.foundation.](https://wizard.klaytn.foundation/) -2. 在**合同**选项卡上选择**KIP37** -3. 下一步是在**设置**选项卡中填写名称(KIP7 NFT Airdrop)和符号(KNA)。 基础 URI 字段应为空。 -4. 随后,在**特性**选项卡上,勾选**可编辑**、**自动递增索引**和**可数**特性框。 您会发现**访问控制**选项卡中的 "可拥有 "功能已被自动选中。 +1. 導航至 [wizard.klaytn.foundation.](https://wizard.klaytn.foundation/) +2. 在**合同**選項卡上選擇**KIP37** +3. 下一步是在**設置**選項卡中填寫名稱(KIP7 NFT Airdrop)和符號(KNA)。 基礎 URI 字段應為空。 +4. 隨後,在**特性**選項卡上,勾選**可編輯**、**自動遞增索引**和**可數**特性框。 您會發現**訪問控制**選項卡中的 "可擁有 "功能已被自動選中。 -进行这些配置后,Kaia 合同向导就会变成这样: +進行這些配置後,Kaia 合同嚮導就會變成這樣: ![](/img/build/tools/kip37-kcw.png) -以下是生成的代码: +以下是生成的代碼: ```solidity // SPDX-License-Identifier: MIT @@ -281,51 +281,51 @@ contract KIP37MultiToken is KIP37, Ownable { } ``` -现在我们已经准备好 KIP37 合约代码,下一步是在项目目录的 src 文件夹中新建一个名为 KIP37MultiToken.sol 的文件,并将生成的代码粘贴到其中。 +現在我們已經準備好 KIP37 合約代碼,下一步是在項目目錄的 src 文件夾中新建一個名為 KIP37MultiToken.sol 的文件,並將生成的代碼粘貼到其中。 -为所有 Kaia 合同生成合同代码后,下一步就是使用 Foundry solidity 脚本部署到 Kaia 测试网 Kairos。 +為所有 Kaia 合同生成合同代碼後,下一步就是使用 Foundry solidity 腳本部署到 Kaia 測試網 Kairos。 -## 使用 Foundry 脚本部署生成的智能合约代码 +## 使用 Foundry 腳本部署生成的智能合約代碼 -在本节中,我们将使用 Foundry 部署生成的智能合约代码,特别是在链上部署的 Foundry 脚本。 +在本節中,我們將使用 Foundry 部署生成的智能合約代碼,特別是在鏈上部署的 Foundry 腳本。 -### 开始 +### 開始 -在开始使用铸造时,您一定初步接触过使用 [forge create](https://book.getfoundry.sh/reference/forge/forge-create.html)来延迟合同的方法。 最近,Foundry 团队提出了一种使用 Solidity 声明式部署合约的更友好方法,称为 [Solidity Scripting](https://book.getfoundry.sh/tutorials/solidity-scripting#solidity-scripting),即用 solidity 而不是 JavaScript 编写部署脚本。 +在開始使用鑄造時,您一定初步接觸過使用 [forge create](https://book.getfoundry.sh/reference/forge/forge-create.html)來延遲合同的方法。 最近,Foundry 團隊提出了一種使用 Solidity 聲明式部署合約的更友好方法,稱為 [Solidity Scripting](https://book.getfoundry.sh/tutorials/solidity-scripting#solidity-scripting),即用 solidity 而不是 JavaScript 編寫部署腳本。 -在本节中,我们将在 Foundry 中使用 solidity 脚本部署我们的合约。 +在本節中,我們將在 Foundry 中使用 solidity 腳本部署我們的合約。 -### 环境配置 +### 環境配置 -我们将把生成的智能合约部署到 Kaia Kairos 测试网络,但为此我们需要对 Foundry 进行一些配置,比如设置 Kairos RPC URL、使用 KAIA 测试资金的账户私钥等。 +我們將把生成的智能合約部署到 Kaia Kairos 測試網絡,但為此我們需要對 Foundry 進行一些配置,比如設置 Kairos RPC URL、使用 KAIA 測試資金的賬戶私鑰等。 -完成所有步骤后,创建一个 .env 文件并添加变量。 Foundry 会自动加载项目目录中的 .env 文件。 +完成所有步驟後,創建一個 .env 文件並添加變量。 Foundry 會自動加載項目目錄中的 .env 文件。 -.env 文件应遵循以下格式: +.env 文件應遵循以下格式: ```code KAIROS_RPC_URL= -// 如果要部署到主网 +// 如果要部署到主網 MAINNET_RPC_URL= PRIVATE_KEY= ``` -现在我们需要编辑 `foundry.toml` 文件。 项目根目录中应该已经有一个。 将以下几行粘贴到文件末尾 +現在我們需要編輯 `foundry.toml` 文件。 項目根目錄中應該已經有一個。 將以下幾行粘貼到文件末尾 ```code [rpc_endpoints] kairos = "${KAIROS_RPC_URL}" -// 如果要部署到主网 +// 如果要部署到主網 mainnet = "${MAINNET_RPC_URL}" ``` -### 编写剧本 +### 編寫劇本 -接下来,我们必须创建一个文件夹,并将其命名为脚本(如果还不存在的话)。 然后,我们需要为合同创建一个脚本文件,即: +接下來,我們必須創建一個文件夾,並將其命名為腳本(如果還不存在的話)。 然後,我們需要為合同創建一個腳本文件,即: airdropKIP7.s.sol airdropKIP17.s.sol KIP37MultiToken.s.sol -这就是我们要编写的部署脚本。 每个文件的内容应如下所示: +這就是我們要編寫的部署腳本。 每個文件的內容應如下所示: 1. airdropKIP7.s.sol @@ -400,31 +400,31 @@ contract KIP37MultiTokenDeployScript is Script { } ``` -让我们来看看每行代码的作用。 +讓我們來看看每行代碼的作用。 -首先,我们为每个脚本文件声明了 SPDX 许可证和 pragma 版本。 请注意,由于每个脚本文件都是一个 solidity 程序,我们仍需声明 SPDX 许可证和 pragma 版本,使其像智能合约一样工作,但永远不会部署。 +首先,我們為每個腳本文件聲明瞭 SPDX 許可證和 pragma 版本。 請注意,由於每個腳本文件都是一個 solidity 程序,我們仍需聲明 SPDX 許可證和 pragma 版本,使其像智能合約一樣工作,但永遠不會部署。 -接下来,我们导入 [Forge Std/Script.sol](https://github.com/foundry-rs/forge-std/blob/master/src/Script.sol),它提供了一些用于部署合同的脚本工具。 随后,我们导入要部署的合同。 在这种情况下,每个脚本都需要 **airdropKIP7**、**airdropKIP17**、**KIP37MultiToken**。 +接下來,我們導入 [Forge Std/Script.sol](https://github.com/foundry-rs/forge-std/blob/master/src/Script.sol),它提供了一些用於部署合同的腳本工具。 隨後,我們導入要部署的合同。 在這種情況下,每個腳本都需要 **airdropKIP7**、**airdropKIP17**、**KIP37MultiToken**。 -然后,我们为每个脚本文件创建了名为 **KIP7AirdropDeployScript**、**KIP17AirdropDeployScript**、**KIP37MultiTokenDeployScript** 的合约,这些脚本文件继承了 Forge Std 库中的脚本。 +然後,我們為每個腳本文件創建了名為 **KIP7AirdropDeployScript**、**KIP17AirdropDeployScript**、**KIP37MultiTokenDeployScript** 的合約,這些腳本文件繼承了 Forge Std 庫中的腳本。 -接下来,我们声明了 **run()** 函数。 函数 run() 是执行脚本的入口点。 然后,我们在 -中声明了一个 **deployerPrivateKey** 变量,用于从 .env 文件中加载私钥。 +接下來,我們聲明瞭 **run()** 函數。 函數 run() 是執行腳本的入口點。 然後,我們在 +中聲明瞭一個 **deployerPrivateKey** 變量,用於從 .env 文件中加載私鑰。 -随后,我们调用了**vm.startBroadcast(deployerPrivateKey)** 特殊作弊代码,该代码记录了主脚本合约的调用和合约创建,并传递了用于签署事务的 deployerPrivateKey。 +隨後,我們調用了**vm.startBroadcast(deployerPrivateKey)** 特殊作弊代碼,該代碼記錄了主腳本合約的調用和合約創建,並傳遞了用於簽署事務的 deployerPrivateKey。 -然后,我们创建了相应的合同。 由于我们之前调用了 vm.startBroadcast() 作弊代码,因此 forge 将记录此合约创建过程。 +然後,我們創建了相應的合同。 由於我們之前調用了 vm.startBroadcast() 作弊代碼,因此 forge 將記錄此合約創建過程。 -现在,我们已经对每一行的内容有了大致的了解,您可以继续部署合同了。 点击此 [链接](https://book.getfoundry.sh/tutorials/solidity-scripting#writing-the-script),了解更多关于编写脚本和其他细节的信息。 +現在,我們已經對每一行的內容有了大致的瞭解,您可以繼續部署合同了。 點擊此 [鏈接](https://book.getfoundry.sh/tutorials/solidity-scripting#writing-the-script),瞭解更多關於編寫腳本和其他細節的信息。 -在项目根部运行 +在項目根部運行 ```bash // To load the variables in the .env file source .env ``` -要部署每份合同,请运行以下命令: +要部署每份合同,請運行以下命令: 1. airdropKIP7 @@ -444,18 +444,18 @@ forge script script/airdropKIP17.s.sol:KIP17AirdropDeployScript --rpc-url $KAIRO forge script script/KIP37MultiToken.s.sol:KIP37MultiTokenDeployScript --rpc-url $KAIROS_RPC_URL --broadcast -skip-simulation -vvvv ``` -如果每条命令都执行成功,终端应该如下所示: +如果每條命令都執行成功,終端應該如下所示: ![](/img/build/tools/deploy-kcw-contracts.png) -请参阅本 [指南](https://book.getfoundry.sh/reference/forge/forge-script),了解有关脚本命令的更多信息。 +請參閱本 [指南](https://book.getfoundry.sh/reference/forge/forge-script),瞭解有關腳本命令的更多信息。 -## 结论 +## 結論 -在本教程中,您将了解 Kaia 合同向导、其功能以及如何使用 KCW 自定义合同。 本指南还演示了如何生成智能合约代码,以及如何将生成的智能合约代码作为起点,并通过特定应用逻辑进一步定制。 +在本教程中,您將瞭解 Kaia 合同嚮導、其功能以及如何使用 KCW 自定義合同。 本指南還演示瞭如何生成智能合約代碼,以及如何將生成的智能合約代碼作為起點,並通過特定應用邏輯進一步定製。 -此外,我们还使用 Foundry solidity 脚本将生成的合同部署到 Kaia Kairos Testnet。 您可以使用 Remix IDE 或任何智能合约开发环境来部署从 Kaia Contracts Wizard 派生或定制的智能合约。 您可以在以下链接中找到相应的教程: +此外,我們還使用 Foundry solidity 腳本將生成的合同部署到 Kaia Kairos Testnet。 您可以使用 Remix IDE 或任何智能合約開發環境來部署從 Kaia Contracts Wizard 派生或定製的智能合約。 您可以在以下鏈接中找到相應的教程: -- [连接到 Remix](../tutorials/connecting-remix.md#connecting-kaia-remix-using-metamask) -- [使用 Hardhat 部署智能合约](../get-started/hardhat.md) -- [使用 Truffle 部署智能合约](../smart-contracts/samples/erc-20.md#2-2-deploying-smart-contract-using-truffle) +- [連接到 Remix](../tutorials/connecting-remix.md#connecting-kaia-remix-using-metamask) +- [使用 Hardhat 部署智能合約](../get-started/hardhat.md) +- [使用 Truffle 部署智能合約](../smart-contracts/samples/erc-20.md#2-2-deploying-smart-contract-using-truffle) From 59c7f861cf6f050aa6a084a93f74db8f6c236ccb Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:07 +0800 Subject: [PATCH 0036/2513] New translations kaia-online-toolkit.md (Chinese Simplified) --- .../current/build/tools/kaia-online-toolkit.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md index f458f5b4516a..6e25f1162130 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md @@ -1,19 +1,19 @@ # Kaia Online Toolkit -## 什么是 Kaia 在线工具包? +## 什麼是 Kaia 在線工具包? -- Kaia在线工具包 "提供代码示例,帮助您轻松使用 "Kaia SDK(caver-js)"。 此外,它还提供了一个 [演示页面](https://toolkit.klaytn.foundation),供开发人员使用简单的在线工具。 -- Kaia SDK(caver-js)\` 是一个 JavaScript API 库,允许开发人员使用 HTTP 或 Websocket 连接与 Kaia 节点进行交互。 -- 您可以直接试用 Kaia 的功能,而无需编写代码。 +- Kaia在線工具包 "提供代碼示例,幫助您輕鬆使用 "Kaia SDK(caver-js)"。 此外,它還提供了一個 [演示頁面](https://toolkit.klaytn.foundation),供開發人員使用簡單的在線工具。 +- Kaia SDK(caver-js)\` 是一個 JavaScript API 庫,允許開發人員使用 HTTP 或 Websocket 連接與 Kaia 節點進行交互。 +- 您可以直接試用 Kaia 的功能,而無需編寫代碼。 -> 为了帮助更多的人使用 "Kaia 在线工具包",我们编写了["使用 Kaia 在线工具包"](https://medium.com/klaytn/using-klaytn-online-toolkit-1-multisig-60399a0b0278) 系列。 +> 為了幫助更多的人使用 "Kaia 在線工具包",我們編寫了["使用 Kaia 在線工具包"](https://medium.com/klaytn/using-klaytn-online-toolkit-1-multisig-60399a0b0278) 系列。 -## 链接 +## 鏈接 -以下是 "Kaia 在线工具包 "的链接。 欢迎使用 :) +以下是 "Kaia 在線工具包 "的鏈接。 歡迎使用 :) - [Github Repository](https://github.com/kaiachain/kaia-online-toolkit) -- [工具包页面](https://toolkit.kaia.io) +- [工具包頁面](https://toolkit.kaia.io) - [Kaia SDK(caver-js)](../../references/sdk/caver-js/caver-js.md) ![Kaia Online Toolkit](/img/build/tools/klaytn-online-toolkit.png) From 7b89b02f8dd28c643f1ac7b4e9d16127c86b8bbe Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:10 +0800 Subject: [PATCH 0037/2513] New translations oracles.md (Chinese Simplified) --- .../current/build/tools/oracles/oracles.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md index e6cf526a59f3..5b9835d3c44c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md @@ -1,10 +1,10 @@ -# 神谕 +# 神諭 -区块链中枢是连接区块链和其他外部数据源的纽带。 实际上,区块链是一个封闭系统;因此,它无法从任何外部系统(链外数据)中获取数据,只能访问原始区块链上下文中已经存在的数据。 这就产生了一个区块链-账本问题,即区块链无法从实际发生的事件中获取数据。 然而,智能合约必须连接到广泛的外部数据源,才能实现许多有用的功能。 举例来说,一个[混合智能合约](https://chain.link/education-hub/hybrid-smart-contracts)可以利用神谕给出金融领域的资产价格、保险领域的天气数据、游戏领域的随机性、供应链管理领域的物联网传感器等。 +區塊鏈中樞是連接區塊鏈和其他外部數據源的紐帶。 實際上,區塊鏈是一個封閉系統;因此,它無法從任何外部系統(鏈外數據)中獲取數據,只能訪問原始區塊鏈上下文中已經存在的數據。 這就產生了一個區塊鏈-賬本問題,即區塊鏈無法從實際發生的事件中獲取數據。 然而,智能合約必須連接到廣泛的外部數據源,才能實現許多有用的功能。 舉例來說,一個[混合智能合約](https://chain.link/education-hub/hybrid-smart-contracts)可以利用神諭給出金融領域的資產價格、保險領域的天氣數據、遊戲領域的隨機性、供應鏈管理領域的物聯網傳感器等。 -区块链需要访问和连接外部数据源、遗留系统和高级计算,这带来了谕令。 不能低估区块链行业中谕令器的好处,因此在创建混合智能合约时,在选择谕令器之前进行研究至关重要。 因此,我们鼓励避免使用中心化算子,因为利用去中心化算子对开发去中心化应用程序非常重要。 一方面,中心化的示权器由单一实体控制,因此存在单点故障,使智能合约容易受到攻击。 另一方面,分散式计算器的设计消除了单点故障,从而超越了集中式计算器的局限性。 去中心化甲骨文由点对点网络中的多个参与者组成,在将链外数据发送给智能合约之前,这些参与者会就链外数据达成共识。 +區塊鏈需要訪問和連接外部數據源、遺留系統和高級計算,這帶來了諭令。 不能低估區塊鏈行業中諭令器的好處,因此在創建混合智能合約時,在選擇諭令器之前進行研究至關重要。 因此,我們鼓勵避免使用中心化算子,因為利用去中心化算子對開發去中心化應用程序非常重要。 一方面,中心化的示權器由單一實體控制,因此存在單點故障,使智能合約容易受到攻擊。 另一方面,分散式計算器的設計消除了單點故障,從而超越了集中式計算器的侷限性。 去中心化甲骨文由點對點網絡中的多個參與者組成,在將鏈外數據發送給智能合約之前,這些參與者會就鏈外數據達成共識。 -以下提供商已与 Kaia 集成,以提供分散式 Oracle 服务: +以下提供商已與 Kaia 集成,以提供分散式 Oracle 服務: - [Pyth Network](https://docs.pyth.network/home) - [Orakl Network](https://docs.orakl.network) From d05aba82fac08ad6a4b583d63759a2f49be2d85e Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:14 +0800 Subject: [PATCH 0038/2513] New translations orakl-network.md (Chinese Simplified) --- .../build/tools/oracles/orakl-network.md | 90 +++++++++---------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md index 80f1e89c5894..c412fe2c09a0 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md @@ -1,29 +1,29 @@ -# 奥拉克尔网络 +# 奧拉克爾網絡 ![](/img/banners/kaia-orakl.png) -## 导言 +## 導言 -[Orakl Network](https://docs.orakl.network) 是一个去中心化的甲骨文网络,允许智能合约安全地访问链外数据和其他资源。 它引以为豪的是,自己是一个提供 [Data Feed](https://docs.orakl.network/developers-guide/data-feed)、[VRF](https://docs.orakl.network/developers-guide/vrf)、[Request-Response](https://docs.orakl.network/developers-guide/request-response) 和 [Proof of Reserve](https://docs.orakl.network/developers-guide/proof-of-reserve) 解决方案的本地令牌交易系统。 +[Orakl Network](https://docs.orakl.network) 是一個去中心化的甲骨文網絡,允許智能合約安全地訪問鏈外數據和其他資源。 它引以為豪的是,自己是一個提供 [Data Feed](https://docs.orakl.network/developers-guide/data-feed)、[VRF](https://docs.orakl.network/developers-guide/vrf)、[Request-Response](https://docs.orakl.network/developers-guide/request-response) 和 [Proof of Reserve](https://docs.orakl.network/developers-guide/proof-of-reserve) 解決方案的本地令牌交易系統。 -有了 Orakl 网络,用户可以在智能合约中寻找不可预测、无偏见的随机性。 Orakl Network [Verifiable Random Function (VRF)](https://docs.orakl.network/developers-guide/vrf#what-is-verifiable-random-function)允许智能合约生成可验证的随机值,可用于各种需要随机性的 dApp。 Orakl Network 通过两种不同的账户类型为开发人员提供 VRF 服务访问权限,即[永久账户](https://docs.orakl.network/developers-guide/readme#permanent-account) 或[临时账户](https://docs.orakl.network/developers-guide/readme#temporary-account)。 +有了 Orakl 網絡,用戶可以在智能合約中尋找不可預測、無偏見的隨機性。 Orakl Network [Verifiable Random Function (VRF)](https://docs.orakl.network/developers-guide/vrf#what-is-verifiable-random-function)允許智能合約生成可驗證的隨機值,可用於各種需要隨機性的 dApp。 Orakl Network 通過兩種不同的賬戶類型為開發人員提供 VRF 服務訪問權限,即[永久賬戶](https://docs.orakl.network/developers-guide/readme#permanent-account) 或[臨時賬戶](https://docs.orakl.network/developers-guide/readme#temporary-account)。 -在本教程中,您将利用 Orakl Network 的 VRF 功能从智能合约内部请求随机单词。 +在本教程中,您將利用 Orakl Network 的 VRF 功能從智能合約內部請求隨機單詞。 -## 先决条件 +## 先決條件 -- [Kaia 钱包](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) +- [Kaia 錢包](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) - [Remix IDE](https://remix.ethereum.org/) - [Kaia Plugin on Remix](https://klaytn.foundation/using-klaytn-plugin-on-remix/) -- 测试来自 [龙头] 的 KAIA(https://faucet.kaia.io) +- 測試來自 [龍頭] 的 KAIA(https://faucet.kaia.io) -## 开始 +## 開始 -在以下步骤中,您将使用 Orakl 网络在智能合约中请求一个随机单词。 让我们开始吧! +在以下步驟中,您將使用 Orakl 網絡在智能合約中請求一個隨機單詞。 讓我們開始吧! -### 步骤 1:初始化合同状态变量 +### 步驟 1:初始化合同狀態變量 -在这一步中,我们将定义消费者合约,并初始化合约功能所需的状态变量。 我们的消费者合约依赖于 "VRFConsumerBase "合约和 "IVRFCoordinator "接口,"IVRFCoordinator "接口用于调用 "VRFCoordinator "合约。 接下来,我们定义用于存储随机单词结果的 `sRandomWord` 变量和在 `onlyOwner` 修饰符中使用的 `sOwner` 变量。 +在這一步中,我們將定義消費者合約,並初始化合約功能所需的狀態變量。 我們的消費者合約依賴於 "VRFConsumerBase "合約和 "IVRFCoordinator "接口,"IVRFCoordinator "接口用於調用 "VRFCoordinator "合約。 接下來,我們定義用於存儲隨機單詞結果的 `sRandomWord` 變量和在 `onlyOwner` 修飾符中使用的 `sOwner` 變量。 ```solidity pragma solidity ^0.8.16; @@ -44,9 +44,9 @@ contract VRFConsumer is VRFConsumerBase { } ``` -### 第 2 步:初始化 VRF 协调器 +### 第 2 步:初始化 VRF 協調器 -要在智能合约中请求随机词语,需要初始化 [`VRFCoordinator`](https://github.com/Bisonai/orakl/blob/master/contracts-v0.1/src/v0.1/VRFCoordinator.sol) 智能合约。 建议将 `VRFCoordinator` 接口与通过构造参数提供的 `VRFCoordinator` 地址绑定,并将其用于随机单词请求 (`requestRandomWords`)。 VRFCoordinator "合约同时部署在 Kaia Kairos [0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499](https://kairos.kaiascan.io/account/0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499) 和 Kaia Mainnet [0x3F247f70DC083A2907B8E76635986fd09AA80EFb](https://www.kaiascan.io/account/0x3F247f70DC083A2907B8E76635986fd09AA80EFb) 上。 +要在智能合約中請求隨機詞語,需要初始化 [`VRFCoordinator`](https://github.com/Bisonai/orakl/blob/master/contracts-v0.1/src/v0.1/VRFCoordinator.sol) 智能合約。 建議將 `VRFCoordinator` 接口與通過構造參數提供的 `VRFCoordinator` 地址綁定,並將其用於隨機單詞請求 (`requestRandomWords`)。 VRFCoordinator "合約同時部署在 Kaia Kairos [0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499](https://kairos.kaiascan.io/account/0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499) 和 Kaia Mainnet [0x3F247f70DC083A2907B8E76635986fd09AA80EFb](https://www.kaiascan.io/account/0x3F247f70DC083A2907B8E76635986fd09AA80EFb) 上。 ```solidity IVRFCoordinator COORDINATOR; @@ -57,9 +57,9 @@ contract VRFConsumer is VRFConsumerBase { } ``` -### 步骤 3:使用临时账户申请随机词语 +### 步驟 3:使用臨時賬戶申請隨機詞語 -要使用临时账户申请随机词语,用户需要发送 $KAIA 并使用 value 属性调用。 +要使用臨時賬戶申請隨機詞語,用戶需要發送 $KAIA 並使用 value 屬性調用。 ```solidity function requestRandomWordsDirect( @@ -82,11 +82,11 @@ contract VRFConsumer is VRFConsumerBase { } ``` -该函数调用 `COORDINATOR` 合约中定义的 `requestRandomWords()` 函数,并将 `keyHash`, `callbackGasLimit`, `numWords` 和 `refundRecipient` 作为参数传递。 服务费通过 `msg.value` 发送给 `COORDINATOR` 合约中的 `requestRandomWords()` 。 如果付款额大于预期付款额,超出部分将退回到 `refundRecipient` 地址。 最终,它会生成一个随机词语请求。 要准确指定 "requestRandomWords "函数的 "msg.value",请参阅[如何估算服务费](https://docs.orakl.network/developers-guide/vrf#get-estimated-service-fee)的说明。 +該函數調用 `COORDINATOR` 合約中定義的 `requestRandomWords()` 函數,並將 `keyHash`, `callbackGasLimit`, `numWords` 和 `refundRecipient` 作為參數傳遞。 服務費通過 `msg.value` 發送給 `COORDINATOR` 合約中的 `requestRandomWords()` 。 如果付款額大於預期付款額,超出部分將退回到 `refundRecipient` 地址。 最終,它會生成一個隨機詞語請求。 要準確指定 "requestRandomWords "函數的 "msg.value",請參閱[如何估算服務費](https://docs.orakl.network/developers-guide/vrf#get-estimated-service-fee)的說明。 -### 步骤 4:填写随机词语 +### 步驟 4:填寫隨機詞語 -满足随机词语请求时,`VRFCoordinator`合约会调用`fulfillRandomWords`函数。 +滿足隨機詞語請求時,`VRFCoordinator`合約會調用`fulfillRandomWords`函數。 ```solidity function fulfillRandomWords( @@ -102,27 +102,27 @@ function fulfillRandomWords( } ``` -现在我们有了 Orakl VRF 解决方案的代码,让我们来看看它的实际操作。 +現在我們有了 Orakl VRF 解決方案的代碼,讓我們來看看它的實際操作。 -## 具体实施 +## 具體實施 -在下面的示例中,合同允许我们请求随机词语并得到满足。 +在下面的示例中,合同允許我們請求隨機詞語並得到滿足。 -### 创建和部署示例代码 +### 創建和部署示例代碼 **Remix IDE** -- 导航至 [Remix IDE](https://remix.ethereum.org/)。 -- 单击**文件资源管理器**选项卡,在合同文件夹中新建一个名为 "consumer-vrf.sol "的文件。 -- 将下面的代码粘贴到新创建的文件中。 -- 在 Remix 中,点击 **编译合同**。 -- 安装插件后,点击左侧的 Kaia 选项卡。 -- 选择 **环境** > **注入式提供商** - **Kaia Wallet**。 -- 在**合同**中,选择您的合同。 例如,`VRFConsumer`。 -- 输入协调者合约地址 `0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499` (Kairos), `0x3F247f70DC083A2907B8E76635986fd09AA80EFb` (Mainnet). -- 点击 **部署**。 +- 導航至 [Remix IDE](https://remix.ethereum.org/)。 +- 單擊**文件資源管理器**選項卡,在合同文件夾中新建一個名為 "consumer-vrf.sol "的文件。 +- 將下面的代碼粘貼到新創建的文件中。 +- 在 Remix 中,點擊 **編譯合同**。 +- 安裝插件後,點擊左側的 Kaia 選項卡。 +- 選擇 **環境** > **注入式提供商** - **Kaia Wallet**。 +- 在**合同**中,選擇您的合同。 例如,`VRFConsumer`。 +- 輸入協調者合約地址 `0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499` (Kairos), `0x3F247f70DC083A2907B8E76635986fd09AA80EFb` (Mainnet). +- 點擊 **部署**。 -\*\* 示例代码\*\* +\*\* 示例代碼\*\* ```solidity // SPDX-License-Identifier: MIT @@ -178,31 +178,31 @@ contract VRFConsumer is VRFConsumerBase { ![](/img/build/tools/orakl-vrf-deploy.png) -### 与智能合约互动 +### 與智能合約互動 -要在智能合约中请求随机词语,必须先执行 `requestRandomWordsDirect()` 函数。 要成功执行该函数,用户必须如前所述发送 KAIA(最少 1 KAIA),并提供 `keyHash`, `callbackGasLimit`, `numWords` 和 `refundRecipient` 参数。 keyHash\` 参数唯一定义了谁可以执行请求。 Orakl Network VRF 为每个 Kaia 链提供一个密钥哈希值: +要在智能合約中請求隨機詞語,必須先執行 `requestRandomWordsDirect()` 函數。 要成功執行該函數,用戶必須如前所述發送 KAIA(最少 1 KAIA),並提供 `keyHash`, `callbackGasLimit`, `numWords` 和 `refundRecipient` 參數。 keyHash\` 參數唯一定義了誰可以執行請求。 Orakl Network VRF 為每個 Kaia 鏈提供一個密鑰哈希值: - Kairos: `0xd9af33106d664a53cb9946df5cd81a30695f5b72224ee64e798b278af812779c` - Mainnet: `0x6cff5233743b3c0321a19ae11ab38ae0ddc7ddfe1e91b162fa8bb657488fb157` -其余参数的设置方法如下: +其餘參數的設置方法如下: -- callbackGasLimit "为 "500000"、 -- 字数 "为 "1",以及 -- 将 `refundRecipient` 设为您的 EOA 地址。 +- callbackGasLimit "為 "500000"、 +- 字數 "為 "1",以及 +- 將 `refundRecipient` 設為您的 EOA 地址。 -之后,一旦请求得到满足,就可以执行`sRandomWord()`函数。 该 `sRandomWord()` 函数返回随机单词。 +之後,一旦請求得到滿足,就可以執行`sRandomWord()`函數。 該 `sRandomWord()` 函數返回隨機單詞。 -- **requestRandomWordsDirect()**:将发送 1 个 KAIA 以执行此函数。 下面的图片说明了这一点: +- **requestRandomWordsDirect()**:將發送 1 個 KAIA 以執行此函數。 下面的圖片說明了這一點: ![](/img/build/tools/orakl-vrf-request.png) -- **sRandomWord()**:在 `VRFCoordinator` 完成随机字请求后,响应将存储在 `sRandomWord` 变量中。 要获取响应,请调用`sRandomWord()`函数。 +- **sRandomWord()**:在 `VRFCoordinator` 完成隨機字請求後,響應將存儲在 `sRandomWord` 變量中。 要獲取響應,請調用`sRandomWord()`函數。 ![](/img/build/tools/orakl-vrf-response.png) -塔达 🎉! 您刚刚请求了一个随机单词,并在智能合约中收到了一个。 +塔達 🎉! 您剛剛請求了一個隨機單詞,並在智能合約中收到了一個。 -## 结论 +## 結論 -在本教程中,您将学习如何使用 Orakl Network VRF 解决方案在智能合约中生成随机单词。 Orakl 网络提供更多甲骨文服务,如数据反馈、请求-响应、储备证明。 有关 Orakl Network 及其工作原理的更多深入指南,请参阅 [Orakl Network 文档](https://docs.orakl.network)。 +在本教程中,您將學習如何使用 Orakl Network VRF 解決方案在智能合約中生成隨機單詞。 Orakl 網絡提供更多甲骨文服務,如數據反饋、請求-響應、儲備證明。 有關 Orakl Network 及其工作原理的更多深入指南,請參閱 [Orakl Network 文檔](https://docs.orakl.network)。 From 5dbb3fba63b7ff5c18175591a9318624d5e2e65a Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:18 +0800 Subject: [PATCH 0039/2513] New translations supraoracles.md (Chinese Simplified) --- .../build/tools/oracles/supraoracles.md | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md index 20cb95c0f17c..768296a2c457 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md @@ -2,26 +2,26 @@ ![](/img/banners/kaia-supra.png) -## 导言 +## 導言 -[SupraOracles](https://supraoracles.com/)是一种新颖、高吞吐量的 Oracle & IntraLayer:一种垂直整合的跨链解决方案工具包(数据oracles、资产桥、自动化网络等),可将所有区块链(公有链(L1s 和 L2s)或私有链(企业))相互连接起来。 它为智能合约提供了下一代跨链甲骨文解决方案,具有卓越的数据准确性、速度、可扩展性和安全性。 +[SupraOracles](https://supraoracles.com/)是一種新穎、高吞吐量的 Oracle & IntraLayer:一種垂直整合的跨鏈解決方案工具包(數據oracles、資產橋、自動化網絡等),可將所有區塊鏈(公有鏈(L1s 和 L2s)或私有鏈(企業))相互連接起來。 它為智能合約提供了下一代跨鍊甲骨文解決方案,具有卓越的數據準確性、速度、可擴展性和安全性。 -有了 SupraOracles,您的智能合约就可以访问价格数据源,从而构建各种去中心化金融(DeFi)用例。 在本教程中,您将使用 SupraOracles,使用 Remix IDE 在 Kaia 区块链上轻松获取价格信息。 +有了 SupraOracles,您的智能合約就可以訪問價格數據源,從而構建各種去中心化金融(DeFi)用例。 在本教程中,您將使用 SupraOracles,使用 Remix IDE 在 Kaia 區塊鏈上輕鬆獲取價格信息。 -## 先决条件 +## 先決條件 -- [Kaia 钱包](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) +- [Kaia 錢包](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) - [Remix IDE](https://remix.ethereum.org/) - [Kaia Plugin on Remix](https://klaytn.foundation/using-klaytn-plugin-on-remix/) -- 测试来自 [龙头] 的 KAIA(https://faucet.kaia.io) +- 測試來自 [龍頭] 的 KAIA(https://faucet.kaia.io) -## 开始 +## 開始 -在以下步骤中,您将使用 SupraOracles 在智能合约中请求 ETH/USD 价格反馈。 让我们开始吧! +在以下步驟中,您將使用 SupraOracles 在智能合約中請求 ETH/USD 價格反饋。 讓我們開始吧! -### 步骤 1:创建 S 值接口 +### 步驟 1:創建 S 值接口 -这将创建用于从 SupraOracles 获取价格的接口。 将以下代码添加到您希望获取 S 值的 solidity 智能合约中。 +這將創建用於從 SupraOracles 獲取價格的接口。 將以下代碼添加到您希望獲取 S 值的 solidity 智能合約中。 ```solidity interface ISupraSValueFeed { @@ -29,9 +29,9 @@ function checkPrice(string memory marketPair) external view returns (int256 pric } ``` -### 步骤 2:配置 S 值反馈地址 +### 步驟 2:配置 S 值反饋地址 -要从 SupraOracles 智能合约中获取 S-Value,首先要找到所选链的 S-Value Feed 地址。 有了正确的地址后,使用我们之前定义的接口创建一个 S-Value Feed 实例: +要從 SupraOracles 智能合約中獲取 S-Value,首先要找到所選鏈的 S-Value Feed 地址。 有了正確的地址後,使用我們之前定義的接口創建一個 S-Value Feed 實例: ```solidity contract ISupraSValueFeedExample { @@ -42,11 +42,11 @@ contract ISupraSValueFeedExample { } ``` -在本例中,我们在 Kaia Kairos TestNet 上实现了 S-Value Feed。 您可以在 [此处](https://supraoracles.com/docs/get-started/networks/) 验证 Kaia Kairos S-Value Feed 地址。 +在本例中,我們在 Kaia Kairos TestNet 上實現了 S-Value Feed。 您可以在 [此處](https://supraoracles.com/docs/get-started/networks/) 驗證 Kaia Kairos S-Value Feed 地址。 -### 第 3 步:获取 S-Value 加密货币价格 +### 第 3 步:獲取 S-Value 加密貨幣價格 -现在,您只需访问我们支持的市场货币对的 S-Value Crypto 价格即可。 在这一步中,您将在智能合约中应用以下代码,从而获得 ETH/USDT (eth_usdt) 的价格。 +現在,您只需訪問我們支持的市場貨幣對的 S-Value Crypto 價格即可。 在這一步中,您將在智能合約中應用以下代碼,從而獲得 ETH/USDT (eth_usdt) 的價格。 ```solidity function getEthUsdtPrice() external view returns (int) { @@ -58,24 +58,24 @@ return price; } ``` -## 具体实施 +## 具體實施 -在下面的示例中,我们将部署 S-Value 价格反馈合约,同时执行 getEthUsdtPrice() 函数来获取 ETH/USDT 货币对的价格。 +在下面的示例中,我們將部署 S-Value 價格反饋合約,同時執行 getEthUsdtPrice() 函數來獲取 ETH/USDT 貨幣對的價格。 -### 创建和部署示例代码 +### 創建和部署示例代碼 **Remix IDE** -- 导航至 [Remix IDE](https://remix.ethereum.org/) -- 单击 "文件资源管理器 "选项卡,在合同文件夹中新建一个名为 "demoSupraPriceFeed.sol "的文件。 -- 将下面的代码粘贴到新创建的文件中 -- 在 Remix 中,点击 **编译合同**。 -- 安装插件后,点击左侧的 Kaia 选项卡 -- 选择 **环境** > **注入式提供商** - **Kaia Wallet**。 -- 在**合同**中,选择您的合同。 例如,ISupraSValueFeedExample。 -- 点击 **部署**。 +- 導航至 [Remix IDE](https://remix.ethereum.org/) +- 單擊 "文件資源管理器 "選項卡,在合同文件夾中新建一個名為 "demoSupraPriceFeed.sol "的文件。 +- 將下面的代碼粘貼到新創建的文件中 +- 在 Remix 中,點擊 **編譯合同**。 +- 安裝插件後,點擊左側的 Kaia 選項卡 +- 選擇 **環境** > **注入式提供商** - **Kaia Wallet**。 +- 在**合同**中,選擇您的合同。 例如,ISupraSValueFeedExample。 +- 點擊 **部署**。 -\*\* 示例代码\*\* +\*\* 示例代碼\*\* ```solidity // SPDX-License-Identifier: MIT @@ -98,19 +98,19 @@ contract ISupraSValueFeedExample { } ``` -### 与智能合约互动 +### 與智能合約互動 -要获取所选货币对的价格信息,必须执行`getEthUsdtPrice()`函数。 +要獲取所選貨幣對的價格信息,必須執行`getEthUsdtPrice()`函數。 ![](/img/build/tools/sPriceFeed.png) -塔达 🎉! 您刚刚请求在智能合约中提供货币价格(ETH/USDT)。 +塔達 🎉! 您剛剛請求在智能合約中提供貨幣價格(ETH/USDT)。 -截至编写本报告时,getEthUsdtPrice() 返回了 "185795966200",一个 8 点精度的数字。 要获得 ETH/USD 的实际价值,您需要将该数字除以 10^8,等于 1857.95966200 美元。 +截至編寫本報告時,getEthUsdtPrice() 返回了 "185795966200",一個 8 點精度的數字。 要獲得 ETH/USD 的實際價值,您需要將該數字除以 10^8,等於 1857.95966200 美元。 ## 使用 SupraOracles Crypto Price Feeds 的更多方法 -### 使用 Web3.js 实现 S-Value Feeds +### 使用 Web3.js 實現 S-Value Feeds ```javascript // example assumes that the web3 library has been imported and is accessible within your scope @@ -143,6 +143,6 @@ console.log(`The price is: ${price.toString()}`) getEthUsdtPrice() ``` -## 结论 +## 結論 -在本教程中,您将学习如何使用 SupraOracle 价格馈送解决方案请求 ETH/USD 价格。 有了 SupraOracle,您还可以在智能合约中生成随机数。 如果您想了解这一过程,请访问有关在 Kaia 上集成 SupraVRF 的 [指南](https://metaverse-knowledge-kit.klaytn.foundation/docs/decentralized-oracle/oracle-providers/supraOracles-tutorial)。 有关 SupraOracles 的更多深入指南,请参阅 [SupraOracles 文档](https://supraoracles.com/docs/development-guides)。 +在本教程中,您將學習如何使用 SupraOracle 價格饋送解決方案請求 ETH/USD 價格。 有了 SupraOracle,您還可以在智能合約中生成隨機數。 如果您想了解這一過程,請訪問有關在 Kaia 上集成 SupraVRF 的 [指南](https://metaverse-knowledge-kit.klaytn.foundation/docs/decentralized-oracle/oracle-providers/supraOracles-tutorial)。 有關 SupraOracles 的更多深入指南,請參閱 [SupraOracles 文檔](https://supraoracles.com/docs/development-guides)。 From f783e9fa4532125e3683a4f5806c561eae537736 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:21 +0800 Subject: [PATCH 0040/2513] New translations witnet.md (Chinese Simplified) --- .../current/build/tools/oracles/witnet.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md index a4332172f1d9..9fb433328645 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md @@ -2,14 +2,14 @@ ![](/img/banners/kaia-witnet.png) -## 导言 +## 導言 -Witnet](https://docs.witnet.io/) 多链去中心化甲骨文使智能合约能够访问各种有价值的外部数据集,从而发挥其潜力。 这些有价值的数据集包括体育比赛成绩、股票价格、天气预报、随机性等。 -为了提供去中心化的甲骨文服务,Witnet 依赖于一个由对等节点(俗称证人)组成的分布式网络,这些节点通过检索网络数据并将其直接报告给智能合约来赚取 Wit 代币作为奖励。 见证人负责寻找、检索和验证数据集。 为确保透明度,每个匿名同行都会受到激励,如实报告检索到的数据,并对任何错误行为进行惩罚或削减。 +Witnet](https://docs.witnet.io/) 多鏈去中心化甲骨文使智能合約能夠訪問各種有價值的外部數據集,從而發揮其潛力。 這些有價值的數據集包括體育比賽成績、股票價格、天氣預報、隨機性等。 +為了提供去中心化的甲骨文服務,Witnet 依賴於一個由對等節點(俗稱證人)組成的分佈式網絡,這些節點通過檢索網絡數據並將其直接報告給智能合約來賺取 Wit 代幣作為獎勵。 見證人負責尋找、檢索和驗證數據集。 為確保透明度,每個匿名同行都會受到激勵,如實報告檢索到的數據,並對任何錯誤行為進行懲罰或削減。 ## 使用方法 -该甲骨文网络目前在 Kaia 主网和 Kaia Kairos 测试网上运行。 要开始连接 Kaia 上的数据源和随机性,请参阅以下指南: +該甲骨文網絡目前在 Kaia 主網和 Kaia Kairos 測試網上運行。 要開始連接 Kaia 上的數據源和隨機性,請參閱以下指南: -- [Witnet价格馈送教程](https://metaverse-knowledge-kit.klaytn.foundation/docs/decentralized-oracle/oracle-providers/witnet-tutorial) -- [利用 Witnet 在 Kaia 上生成随机数](https://medium.com/klaytn/random-number-generation-on-klaytn-with-witnet-ae136dad0562) +- [Witnet價格饋送教程](https://metaverse-knowledge-kit.klaytn.foundation/docs/decentralized-oracle/oracle-providers/witnet-tutorial) +- [利用 Witnet 在 Kaia 上生成隨機數](https://medium.com/klaytn/random-number-generation-on-klaytn-with-witnet-ae136dad0562) From 5f82cb7862543867c7b554df22942fd9ba25bc0d Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:24 +0800 Subject: [PATCH 0041/2513] New translations tools.md (Chinese Simplified) --- .../docusaurus-plugin-content-docs/current/build/tools/tools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/tools.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/tools.md index 2b36c809d848..48d000851136 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/tools.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/tools.md @@ -1,6 +1,6 @@ # 工具 -本页包含开发工具列表,可帮助您在 Kaia 上构建去中心化应用程序。 +本頁包含開發工具列表,可幫助您在 Kaia 上構建去中心化應用程序。 ```mdx-code-block import DocCardList from '@theme/DocCardList'; From 3f779e6072dc08ab73754b8b96a12b29c7697bf5 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:26 +0800 Subject: [PATCH 0042/2513] New translations contract-interaction.md (Chinese Simplified) --- .../wallets/kaia-safe/contract-interaction.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md index 1cf3bed9e887..4866a96201c5 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md @@ -1,27 +1,27 @@ -# 与合同互动 +# 與合同互動 -在本节中,您将使用我们新创建的多重签名钱包与部署在 Kairos 上的简单合约进行交互并向其发送一笔交易。 +在本節中,您將使用我們新創建的多重簽名錢包與部署在 Kairos 上的簡單合約進行交互並向其發送一筆交易。 -**先决条件** +**先決條件** - [Metamask](https://metamask.io/download/) & [Kaia Metamask Config](../../../tutorials/connecting-metamask.mdx#send-klay) - [混音](https://remix.ethereum.org/) 和[Kaia 混音插件](https://klaytn.foundation/using-klaytn-plugin-on-remix/) -- 从 [水龙头](https://faucet.kaia.io) 获取测试 KAIA +- 從 [水龍頭](https://faucet.kaia.io) 獲取測試 KAIA -**步骤 1:** 导航至 [混音](https://remix.ethereum.org/) +**步驟 1:** 導航至 [混音](https://remix.ethereum.org/) -**第 2 步:** 编译并部署**存储合同**示例。 +**第 2 步:** 編譯並部署**存儲合同**示例。 -必须先部署合约,然后才能在多重签名钱包中与之交互。 该示例合约包含一个简单的 uint "数字 "变量,可通过调用**store**方法进行更新,也可通过调用**retrieve**方法进行检索。 +必須先部署合約,然後才能在多重簽名錢包中與之交互。 該示例合約包含一個簡單的 uint "數字 "變量,可通過調用**store**方法進行更新,也可通過調用**retrieve**方法進行檢索。 ![](/img/build/tools/kaia-safe/ks-ic-deploy.gif) -**第 3 步:** 启动新交易。 +**第 3 步:** 啟動新交易。 -要与安全钱包中的智能合约互动,请点击\*\*"新建交易 "\*\*。 要完成这一步骤,您需要已部署的合同地址和 ABI,如上一步所示。 +要與安全錢包中的智能合約互動,請點擊\*\*"新建交易 "\*\*。 要完成這一步驟,您需要已部署的合同地址和 ABI,如上一步所示。 ![](/img/build/tools/kaia-safe/kaia-safe-ci-init.gif) -**第 4 步:** 审查并提交交易。 您需要用签名者钱包签署交易,一旦达到确认阈值,交易就会执行。 +**第 4 步:** 審查並提交交易。 您需要用簽名者錢包簽署交易,一旦達到確認閾值,交易就會執行。 ![](/img/build/tools/kaia-safe/kaia-safe-ci-review-send.gif) From af11b7b09ca1796470c74fc85e431e858141a97b Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:30 +0800 Subject: [PATCH 0043/2513] New translations faqs.md (Chinese Simplified) --- .../build/tools/wallets/kaia-safe/faqs.md | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md index b5fd3f68fb3a..07e21a3f5fdc 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md @@ -1,106 +1,106 @@ # 常见问题 -## 创建保险箱后可以添加新的所有者吗? +## 創建保險箱後可以添加新的所有者嗎? -是的! 创建保险箱账户后,Kaia Safe 会为您提供管理保险箱所有者的权限,即添加、删除、替换所有者或重命名现有所有者。 +是的! 創建保險箱賬戶後,Kaia Safe 會為您提供管理保險箱所有者的權限,即添加、刪除、替換所有者或重命名現有所有者。 -注意:要执行此更改,您需要与当前所有者之一建立联系。 +注意:要執行此更改,您需要與當前所有者之一建立聯繫。 -下面的步骤说明了如何在创建 Safe 账户后为其添加新的所有者或签名人。 +下面的步驟說明了如何在創建 Safe 賬戶後為其添加新的所有者或簽名人。 -**步骤 1:** 进入侧边栏菜单的**设置**,你会看到**设置**部分下的**管理安全账户签署人**卡。 +**步驟 1:** 進入側邊欄菜單的**設置**,你會看到**設置**部分下的**管理安全賬戶簽署人**卡。 -**步骤 2:** 点击卡片底部的**添加新签名人**按钮。 点击该按钮将打开一个新窗口。 +**步驟 2:** 點擊卡片底部的**添加新簽名人**按鈕。 點擊該按鈕將打開一個新窗口。 ![](/img/build/tools/kaia-safe/ks-add-signers.png) -**第 3 步:** 输入新所有人的**姓名**,并粘贴**所有人的地址**。 然后点击页面右下角的 "下一步 "按钮。 +**第 3 步:** 輸入新所有人的**姓名**,並粘貼**所有人的地址**。 然後點擊頁面右下角的 "下一步 "按鈕。 -**步骤 4:** 设置新的签名策略。 在这种情况下,您可以更改或保留现有的签名策略。 下图显示,在 4 位所有者中,有 2 位需要确认和执行任何交易。 +**步驟 4:** 設置新的簽名策略。 在這種情況下,您可以更改或保留現有的簽名策略。 下圖顯示,在 4 位所有者中,有 2 位需要確認和執行任何交易。 ![](/img/build/tools/kaia-safe/ks-add-signer-details.png) -**第 5 步:** 审查并提交交易。 +**第 5 步:** 審查並提交交易。 -确认所有更改无误后再提交。 因此,您可以点击**提交**按钮来提交更改。 +確認所有更改無誤後再提交。 因此,您可以點擊**提交**按鈕來提交更改。 -点击**提交**后,连接的钱包会要求您确认更改。 根据现有的签名政策,其他所有者必须像正常交易一样确认更改。 +點擊**提交**後,連接的錢包會要求您確認更改。 根據現有的簽名政策,其他所有者必須像正常交易一樣確認更改。 ![](/img/build/tools/kaia-safe/kaia-safe-change-owner-setup-review.gif) -## 我可以更改所需的签名确认人数吗? +## 我可以更改所需的簽名確認人數嗎? -是的! 您可以按照以下步骤更改所需的签名确认次数。 这一点很重要,因为您可能想更改确认与安全账户相关的交易所需的所有者或签名人。 +是的! 您可以按照以下步驟更改所需的簽名確認次數。 這一點很重要,因為您可能想更改確認與安全賬戶相關的交易所需的所有者或簽名人。 -**步骤 1:** 进入侧边栏菜单的**设置**,你会看到**设置**部分下的**所需确认**卡。 +**步驟 1:** 進入側邊欄菜單的**設置**,你會看到**設置**部分下的**所需確認**卡。 -这显示了您当前的签名政策,从下图中可以看出,任何交易都需要 4 位所有者中的 2 位进行确认。 +這顯示了您當前的簽名政策,從下圖中可以看出,任何交易都需要 4 位所有者中的 2 位進行確認。 ![](/img/build/tools/kaia-safe/ks-conf-policy.png) -**步骤 2:** 单击 \*\* 更改 \*\* 按钮。 +**步驟 2:** 單擊 \*\* 更改 \*\* 按鈕。 -这时会弹出一个新窗口,选择新的签名阈值。 +這時會彈出一個新窗口,選擇新的簽名閾值。 ![](/img/build/tools/kaia-safe/ks-conf-policy-btn.png) -**步骤 3:** 点击**提交**按钮。 +**步驟 3:** 點擊**提交**按鈕。 -请注意,根据您现有的签名政策,其他所有者必须像正常交易一样确认更改。 +請注意,根據您現有的簽名政策,其他所有者必須像正常交易一樣確認更改。 -## 如何添加现有保险箱? +## 如何添加現有保險箱? -导出的 Safe 数据包含已添加的 Safe 账户、通讯录和设置,使用这些数据,您可以轻松添加 Safe 账户。 +導出的 Safe 數據包含已添加的 Safe 賬戶、通訊錄和設置,使用這些數據,您可以輕鬆添加 Safe 賬戶。 -> 注意:您必须已下载 Safe 数据,如下图所示: +> 注意:您必須已下載 Safe 數據,如下圖所示: ![](/img/build/tools/kaia-safe/ks-export-btn.png) -在界面中添加或加载现有保险箱的需求各不相同。 这些可能包括 +在界面中添加或加載現有保險箱的需求各不相同。 這些可能包括 -- 您想从其他浏览器访问 Safe。 -- 您希望与 Safe 进行互动,而另一方让您成为 Safe 的所有者。 -- 您希望以只读模式添加任何现有的保险箱。 +- 您想從其他瀏覽器訪問 Safe。 +- 您希望與 Safe 進行互動,而另一方讓您成為 Safe 的所有者。 +- 您希望以只讀模式添加任何現有的保險箱。 -让我们通过以下步骤来了解添加现有保险箱的过程。 注意:请确保签名者的钱包已连接。 +讓我們通過以下步驟來了解添加現有保險箱的過程。 注意:請確保簽名者的錢包已連接。 -**步骤 1:** 导航至**设置**选项卡。 +**步驟 1:** 導航至**設置**選項卡。 -**步骤 2:** 滚动到**数据**部分下的**数据导入**卡。 +**步驟 2:** 滾動到**數據**部分下的**數據導入**卡。 ![](/img/build/tools/kaia-safe/ks-data-import-i.png) -在这里,你可以拖放 JSON 文件,也可以选择你的文件,如上图所示。 +在這裡,你可以拖放 JSON 文件,也可以選擇你的文件,如上圖所示。 -**第 3 步:** 单击**导入**按钮。 +**第 3 步:** 單擊**導入**按鈕。 ![](/img/build/tools/kaia-safe/ks-data-import-btn.png) ![](/img/build/tools/kaia-safe/kaia-safe-data-import.gif) -之后,您就可以访问 Safe 账户了。 +之後,您就可以訪問 Safe 賬戶了。 -## 普通安全设置 +## 普通安全設置 -这往往会为建立保险箱时的决策提供一些指导。 这些可能包括 +這往往會為建立保險箱時的決策提供一些指導。 這些可能包括 -- 有多少业主? +- 有多少業主? -- 什么门槛? +- 什麼門檻? -- 兼容哪些钱包? +- 兼容哪些錢包? -这三个问题没有一个最佳答案,因此也就没有一个最佳的 Safe 配置。 实际上,这完全取决于具体的使用情况。 尽管如此,我们还是努力提出一些建议,供大家参考: +這三個問題沒有一個最佳答案,因此也就沒有一個最佳的 Safe 配置。 實際上,這完全取決於具體的使用情況。 儘管如此,我們還是努力提出一些建議,供大家參考: -\*\*有多少业主? +\*\*有多少業主? -通常情况下,拥有多个所有者账户是一个明智的选择。 在团体管理资金时,良好的做法是几个人都能使用安全账户。 建议管理资金的个人拥有多个账户,以便使用多个身份验证因素。 +通常情況下,擁有多個所有者賬戶是一個明智的選擇。 在團體管理資金時,良好的做法是幾個人都能使用安全賬戶。 建議管理資金的個人擁有多個賬戶,以便使用多個身份驗證因素。 -\*\*什么门槛? +\*\*什麼門檻? -安全阈值是指在交易成功执行前必须获得批准的最小所有者账户数量。 建议使用大于 1 的阈值,以确保始终需要至少一个额外账户来验证和执行 Safe 交易,而不是允许单个账户执行交易。 因此,即使攻击者进入了一个账户,资金也无法转移。 +安全閾值是指在交易成功執行前必須獲得批准的最小所有者賬戶數量。 建議使用大於 1 的閾值,以確保始終需要至少一個額外賬戶來驗證和執行 Safe 交易,而不是允許單個賬戶執行交易。 因此,即使攻擊者進入了一個賬戶,資金也無法轉移。 -此外,建议选择占所有者 51%的阈值,例如 3 人中的 2 人、5 人中的 3 人等。 正因为如此,即使一位所有者失去了对其账户的访问权限,用户也不会立即被锁定其在保险箱中的所有资金;相反,其他所有者仍可进行交易,例如,替换该丢失的所有者账户。 可以说,这是一种恢复机制。 +此外,建議選擇佔所有者 51%的閾值,例如 3 人中的 2 人、5 人中的 3 人等。 正因為如此,即使一位所有者失去了對其賬戶的訪問權限,用戶也不會立即被鎖定其在保險箱中的所有資金;相反,其他所有者仍可進行交易,例如,替換該丟失的所有者賬戶。 可以說,這是一種恢復機制。 -**兼容哪些钱包?** +**兼容哪些錢包?** 目前,Kaia Safe兼容[Kaia Wallet](https://docs.kaiawallet.io/)、[MetaMask](../../../tutorials/connecting-metamask.mdx)。 From 29c939660258195f99943482b3a284b762fb5475 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:32 +0800 Subject: [PATCH 0044/2513] New translations kaia-safe.md (Chinese Simplified) --- .../tools/wallets/kaia-safe/kaia-safe.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md index 8e787211b14b..ccc9f3ecc997 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md @@ -1,37 +1,37 @@ # Kaia Safe -在 Kaia 这样的典型区块链平台中,大多数用户都熟悉单键钱包系统,如 Kaia Wallet 和 MetaMask,它们也被称为外部拥有账户(EOA)。 这些账户使用传统的密钥对,即公共密钥和私人密钥,这并不理想,因为私人密钥会造成单点故障。 +在 Kaia 這樣的典型區塊鏈平臺中,大多數用戶都熟悉單鍵錢包系統,如 Kaia Wallet 和 MetaMask,它們也被稱為外部擁有賬戶(EOA)。 這些賬戶使用傳統的密鑰對,即公共密鑰和私人密鑰,這並不理想,因為私人密鑰會造成單點故障。 -这就使得 EOA 不适合组织使用,因为私钥泄露可能导致组织损失全部加密货币资金--例如在 [Wintermute 黑客攻击](https://www.certik.com/resources/blog/uGiY0j3hwOzQOMcDPGoz9-wintermute-hack-) 事件中,1.625 亿美元的资金损失。 +這就使得 EOA 不適合組織使用,因為私鑰洩露可能導致組織損失全部加密貨幣資金--例如在 [Wintermute 黑客攻擊](https://www.certik.com/resources/blog/uGiY0j3hwOzQOMcDPGoz9-wintermute-hack-) 事件中,1.625 億美元的資金損失。 -这就是 Kaia Safe 等多 ID 钱包的用武之地。 与单密钥钱包不同,多签名钱包需要多方的私钥来签署和执行交易,从而消除了单点故障,为组织用例提供了更高的安全性。 +這就是 Kaia Safe 等多 ID 錢包的用武之地。 與單密鑰錢包不同,多簽名錢包需要多方的私鑰來簽署和執行交易,從而消除了單點故障,為組織用例提供了更高的安全性。 -## 什么是多重签名钱包? +## 什麼是多重簽名錢包? -顾名思义,多重签名钱包是一种需要两个、三个或更多不同来源的私钥来确认和执行加密交易的数字钱包。 +顧名思義,多重簽名錢包是一種需要兩個、三個或更多不同來源的私鑰來確認和執行加密交易的數字錢包。 -例如,你可以把多重签名钱包想象成一个有三把锁的保险箱。 打开保险箱所需的三把钥匙分别属于三个不同的人,因此需要他们共同同意才能打开。 +例如,你可以把多重簽名錢包想象成一個有三把鎖的保險箱。 打開保險箱所需的三把鑰匙分別屬於三個不同的人,因此需要他們共同同意才能打開。 -以下是多重签名钱包的主要优点: +以下是多重簽名錢包的主要優點: -- **安全存储资产/资金:** 公司和协议可以安全地存储资金,而不必担心私钥泄露或某个坏人未经授权转移资金。 +- **安全存儲資產/資金:** 公司和協議可以安全地存儲資金,而不必擔心私鑰洩露或某個壞人未經授權轉移資金。 -- \*\* 实现分散决策:\*\* 公司和企业高管可在链上决定执行哪些交易。 +- \*\* 實現分散決策:\*\* 公司和企業高管可在鏈上決定執行哪些交易。 -- **双因素身份验证:** 在多重签名钱包的帮助下,企业和个人可以确保只有获得必要密钥的人才能执行交易。 +- **雙因素身份驗證:** 在多重簽名錢包的幫助下,企業和個人可以確保只有獲得必要密鑰的人才能執行交易。 -接下来,我们将深入了解 Klatyn 的多 ID 钱包 Kaia Safe,以及如何使用它来管理您的资金和交易。 +接下來,我們將深入瞭解 Klatyn 的多 ID 錢包 Kaia Safe,以及如何使用它來管理您的資金和交易。 -## Kaia Safe 是什么? +## Kaia Safe 是什麼? -Kaia Safe 是 Kaia 生态系统的多 ID 钱包。 它是著名的多重签名钱包 [Gnosis Safe](https://gnosis-safe.io/) 的一个分叉。 +Kaia Safe 是 Kaia 生態系統的多 ID 錢包。 它是著名的多重簽名錢包 [Gnosis Safe](https://gnosis-safe.io/) 的一個分叉。 -## 益处 +## 益處 -- **存储和转移 KAIA 和 KCT(KIP7、KIP17)**:用户可以存入和转移加密货币(KAIA)和代币(可互换或不可互换)。 +- **存儲和轉移 KAIA 和 KCT(KIP7、KIP17)**:用戶可以存入和轉移加密貨幣(KAIA)和代幣(可互換或不可互換)。 -- **灵活性和安全性:** 确认阈值可让用户更灵活地控制应执行哪些交易,并消除单点故障。 +- **靈活性和安全性:** 確認閾值可讓用戶更靈活地控制應執行哪些交易,並消除單點故障。 -- **安全应用程序:** Kaia Safe 的功能通过添加自定义应用程序得到扩展,这些应用程序可进行批量交易并与其他 dApps 进行交互。 这种安全应用程序的一个例子是**交易生成器**,它可以将多个交易合并为一个批量交易执行。 +- **安全應用程序:** Kaia Safe 的功能通過添加自定義應用程序得到擴展,這些應用程序可進行批量交易並與其他 dApps 進行交互。 這種安全應用程序的一個例子是**交易生成器**,它可以將多個交易合併為一個批量交易執行。 -- **账户恢复:** 在丢失密钥的情况下,只要剩余密钥仍能满足确认阈值,Kaia Safe 账户就可以恢复。 +- **賬戶恢復:** 在丟失密鑰的情況下,只要剩餘密鑰仍能滿足確認閾值,Kaia Safe 賬戶就可以恢復。 From fb8b1b460d2bfd4bdb3c4e8fb32d2c974c77a378 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:36 +0800 Subject: [PATCH 0045/2513] New translations overview.md (Chinese Simplified) --- .../build/tools/wallets/kaia-safe/overview.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md index 04650c77f10a..3d3cf167bb8c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md @@ -1,15 +1,15 @@ -# Kaia Safe 设计公司 +# Kaia Safe 設計公司 -目前,Kaia Safe 是一套用于创建和管理多重签名钱包的工具,即 +目前,Kaia Safe 是一套用於創建和管理多重簽名錢包的工具,即 -- **Safe React:** 这是一个用于创建多签名钱包并与之交互的反应式网络应用程序。 +- **Safe React:** 這是一個用於創建多簽名錢包並與之交互的反應式網絡應用程序。 -- **安全交易服务:** 跟踪通过安全合约发送的交易,并监听主网和 Kairos 中最近区块的事件。 交易也可以发送到该服务,以便在链外收集签名,或通知所有者即将发送到区块链的交易。 +- **安全交易服務:** 跟蹤通過安全合約發送的交易,並監聽主網和 Kairos 中最近區塊的事件。 交易也可以發送到該服務,以便在鏈外收集簽名,或通知所有者即將發送到區塊鏈的交易。 -- **安全配置服务:** 提供 Kaia Safe 客户端环境的配置信息,例如所有链细节和应用程序接口的配置。 +- **安全配置服務:** 提供 Kaia Safe 客戶端環境的配置信息,例如所有鏈細節和應用程序接口的配置。 -- **安全客户端网关:** 这是 Kaia Safe 客户端与后端服务(交易服务和 Kaia 节点)之间的网关。 +- **安全客戶端網關:** 這是 Kaia Safe 客戶端與後端服務(交易服務和 Kaia 節點)之間的網關。 -- **安全基础设施:** 这是一个集群设置,用于部署后端服务(安全交易、安全配置、安全客户端网关)。 +- **安全基礎設施:** 這是一個集群設置,用於部署後端服務(安全交易、安全配置、安全客戶端網關)。 -请参阅此 [链接](https://github.com/kaiachain/kaia-safe-infrastructure) 获取更多信息。 +請參閱此 [鏈接](https://github.com/kaiachain/kaia-safe-infrastructure) 獲取更多信息。 From 5cdd7ebc873ceddaf42e60e64c1c602f33b9f8d2 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:38 +0800 Subject: [PATCH 0046/2513] New translations tx-builder.md (Korean) --- .../current/build/tools/wallets/kaia-safe/tx-builder.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md b/i18n/ko/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md index 1b7a5994736c..3af2660ebff6 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md @@ -4,7 +4,7 @@ Transaction Builder를 사용하면 토큰 전송부터 복잡한 컨트랙트 트랜잭션까지 트랜잭션을 구성하고 단일 트랜잭션으로 일괄 처리할 수 있습니다. -## KLAY Token Transfer +## KAIA 토큰 전송 You can perform token transfer using transaction builder by following the steps below: @@ -12,13 +12,13 @@ You can perform token transfer using transaction builder by following the steps ![](/img/build/tools/kaia-safe/ks-tx-builder.png) -**Step 2:** Enter the recipient wallet address. For this guide, kindly skip the ABI field as we are trying to execute KLAY transfer transaction. +**Step 2:** Enter the recipient wallet address. 이 가이드에서는 KAIA 송금 거래를 실행하려고 하므로 ABI 필드는 건너뛰셔도 됩니다. ![](/img/build/tools/kaia-safe/tx-builder-token-recipient-addr.png) -**Step 3:** Enter the KLAY value you want to send. +\*\*3단계: \*\*전송하려는 KAIA 값을 입력합니다. -> Note: In this guide, we are sending 1 KLAY, so we entered 1 in the **KLAY value** input field. You can input any amount here, depending on your Safe's KLAY balance. +> 참고: 이 가이드에서는 KAIA 1개를 전송하므로 **KAIA 값** 입력란에 1을 입력했습니다. 금고의 KAIA 잔액에 따라 여기에 원하는 금액을 입력할 수 있습니다. ![](/img/build/tools/kaia-safe/tx-builder-token-trf-value.png) From 2fd5e4302d26e991ab463c5d676efb6ca9e14020 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:40 +0800 Subject: [PATCH 0047/2513] New translations tx-builder.md (Chinese Simplified) --- .../tools/wallets/kaia-safe/tx-builder.md | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md index be78e2a1b5bc..bd4f70379bf6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md @@ -1,77 +1,77 @@ -# 使用事务生成器 +# 使用事務生成器 -这是 Kaia Safe 中的一个自定义应用程序,负责批处理交易。 这意味着您可以将几笔交易捆绑在一起,而不必一笔接一笔地确认。 您只需确认并执行一次。 +這是 Kaia Safe 中的一個自定義應用程序,負責批處理交易。 這意味著您可以將幾筆交易捆綁在一起,而不必一筆接一筆地確認。 您只需確認並執行一次。 -有了事务生成器,您就可以将从代币转账到复杂的合约交互等各种事务组合在一起,并将它们批量合并到单个事务中。 +有了事務生成器,您就可以將從代幣轉賬到複雜的合約交互等各種事務組合在一起,並將它們批量合併到單個事務中。 -## KLAY 代币转让 +## KAIA 代币转让 -您可以按照以下步骤,使用事务生成器执行令牌转移: +您可以按照以下步驟,使用事務生成器執行令牌轉移: -**步骤 1:** 导航至安全应用程序并打开交易生成器安全应用程序 +**步驟 1:** 導航至安全應用程序並打開交易生成器安全應用程序 ![](/img/build/tools/kaia-safe/ks-tx-builder.png) -**第 2 步:** 输入收件人钱包地址。 在本指南中,请跳过 ABI 字段,因为我们正在尝试执行 KLAY 传输事务。 +**第 2 步:** 輸入收件人錢包地址。 在本指南中,请跳过 ABI 字段,因为我们正试图执行 KAIA 传输事务。 ![](/img/build/tools/kaia-safe/tx-builder-token-recipient-addr.png) -**步骤 3:** 输入要发送的 KLAY 值。 +**步骤 3:** 输入您要发送的 KAIA 值。 -> 注意:在本指南中,我们发送的是 1 KLAY,因此在 **KLAY 值**输入框中输入了 1。 您可以根据 Safe 的 KLAY 余额在此输入任意金额。 +> 注意:在本指南中,我们发送的是 1 个 KAIA,因此在 **KAIA 值**输入框中输入了 1。 您可以根据 Safe 的 KAIA 余额在此输入任意金额。 ![](/img/build/tools/kaia-safe/tx-builder-token-trf-value.png) -**步骤 4:** 点击添加交易。 +**步驟 4:** 點擊添加交易。 -**步骤 5:** 对每个收件人地址重复步骤 2、3 和 4。 +**步驟 5:** 對每個收件人地址重複步驟 2、3 和 4。 -**步骤 6:** 将所有操作添加到批次后,单击 "创建批次"。 +**步驟 6:** 將所有操作添加到批次後,單擊 "創建批次"。 ![](/img/build/tools/kaia-safe/token-trf-tx-builder.gif) -**第 7 步:** 审查并提交交易 +**第 7 步:** 審查並提交交易 -您可以查看整个批次。 准备就绪后,单击 "发送批次",即可像其他安全交易一样提交和执行交易。 +您可以查看整個批次。 準備就緒後,單擊 "發送批次",即可像其他安全交易一樣提交和執行交易。 -## 合同互动 +## 合同互動 -比方说,您想向一长串地址空投令牌,比如向 5 个地址空投 10 个 CCT 令牌。 交易生成器可将所有这些转账合并到一个交易中,而无需创建 5 个交易,保险箱的所有者必须一个接一个地确认和执行这些交易。 +比方說,您想向一長串地址空投令牌,比如向 5 個地址空投 10 個 CCT 令牌。 交易生成器可將所有這些轉賬合併到一個交易中,而無需創建 5 個交易,保險箱的所有者必須一個接一個地確認和執行這些交易。 -在本指南中,我们将 CCT 代币铸造到安全地址,以作说明。 +在本指南中,我們將 CCT 代幣鑄造到安全地址,以作說明。 -让我们使用事务生成器开始这个示例! +讓我們使用事務生成器開始這個示例! -**步骤 1:** 打开安全应用程序。 +**步驟 1:** 打開安全應用程序。 ![](/img/build/tools/kaia-safe/ks-tx-builder.png) -**步骤 2:** 打开交易生成器安全应用程序 +**步驟 2:** 打開交易生成器安全應用程序 ![](/img/build/tools/kaia-safe/ks-use-tx-builder.png) -**第 3 步:** 输入您的**令牌合同地址**和**ABI**。 +**第 3 步:** 輸入您的**令牌合同地址**和**ABI**。 -在本例中,将使用 CCT 合同地址和 ABI。 您可以将 ABI 复制并粘贴到 **输入 ABI** 字段中。 +在本例中,將使用 CCT 合同地址和 ABI。 您可以將 ABI 複製並粘貼到 **輸入 ABI** 字段中。 ![](/img/build/tools/kaia-safe/kaia-safe-tx-builder-init.gif) -**第 4 步:** 选择一种方法并填写交易信息 +**第 4 步:** 選擇一種方法並填寫交易信息 -您可以从下拉菜单中选择一种方法。 在这种情况下,我们选择**转移**方法。 要完成这一步,您必须填写交易信息,如 **收件人(地址)** 和 **金额(uint256)**。 +您可以從下拉菜單中選擇一種方法。 在這種情況下,我們選擇**轉移**方法。 要完成這一步,您必須填寫交易信息,如 **收件人(地址)** 和 **金額(uint256)**。 -注:数值为无符号整数,不含小数。 在这个例子中,CCT 标记有 18 个小数。 因此,如果要发送 10 个 CCT,就必须输入 10000000000000000000。 +注:數值為無符號整數,不含小數。 在這個例子中,CCT 標記有 18 個小數。 因此,如果要發送 10 個 CCT,就必須輸入 10000000000000000000。 ![](/img/build/tools/kaia-safe/kaia-safe-tx-builder-details.gif) -**第 5 步:** 点击**添加交易** +**第 5 步:** 點擊**添加交易** -**步骤 6:** 对每个收件人地址重复步骤 **4**、**5** 和 **6**。 +**步驟 6:** 對每個收件人地址重複步驟 **4**、**5** 和 **6**。 -**第 7 步:** 将所有操作添加到批次后,单击**创建批次**。 +**第 7 步:** 將所有操作添加到批次後,單擊**創建批次**。 ![](/img/build/tools/kaia-safe/kaia-safe-tx-builder-batch.gif) -**第 8 步:** 审查并提交交易 +**第 8 步:** 審查並提交交易 -您可以查看整个批次。 准备就绪后,点击**发送批次**,即可像其他安全交易一样提交和执行交易。 +您可以查看整個批次。 準備就緒後,點擊**發送批次**,即可像其他安全交易一樣提交和執行交易。 From 5e64c908b4e4d586fe1f98f18d98ac488251cf85 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:41 +0800 Subject: [PATCH 0048/2513] New translations tx-builder.md (Vietnamese) --- .../current/build/tools/wallets/kaia-safe/tx-builder.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md b/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md index 233a4d6194d6..d78e230c8076 100644 --- a/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md +++ b/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md @@ -4,7 +4,7 @@ This is a custom app in Kaia Safe that is responsible for batching transactions. With transaction builder, you can compose transactions from token transfers to complex contract interactions and batch them into a single transaction. -## KLAY Token Transfer +## KAIA Token Transfer You can perform token transfer using transaction builder by following the steps below: @@ -12,13 +12,13 @@ You can perform token transfer using transaction builder by following the steps ![](/img/build/tools/kaia-safe/ks-tx-builder.png) -**Step 2:** Enter the recipient wallet address. For this guide, kindly skip the ABI field as we are trying to execute KLAY transfer transaction. +**Step 2:** Enter the recipient wallet address. For this guide, kindly skip the ABI field as we are trying to execute KAIA transfer transaction. ![](/img/build/tools/kaia-safe/tx-builder-token-recipient-addr.png) -**Step 3:** Enter the KLAY value you want to send. +**Step 3:** Enter the KAIA value you want to send. -> Note: In this guide, we are sending 1 KLAY, so we entered 1 in the **KLAY value** input field. You can input any amount here, depending on your Safe's KLAY balance. +> Note: In this guide, we are sending 1 KAIA, so we entered 1 in the **KAIA value** input field. You can input any amount here, depending on your Safe's KAIA balance. ![](/img/build/tools/kaia-safe/tx-builder-token-trf-value.png) From b5e9b153c85fb886b3e3f22796850ba426b5dbf5 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:44 +0800 Subject: [PATCH 0049/2513] New translations use-kaia-safe.md (Chinese Simplified) --- .../tools/wallets/kaia-safe/use-kaia-safe.md | 116 +++++++++--------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md index c81041d27fd8..debbc1c7d96f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md @@ -1,169 +1,169 @@ # 使用 Kaia Safe -## 创建安全 +## 創建安全 -在这里,您将了解到如何在 Kaia 网络上创建 Safe 并评估其益处。 +在這裡,您將瞭解到如何在 Kaia 網絡上創建 Safe 並評估其益處。 -**步骤 1:** 导航至 [Kaia Safe App](https://safe.kaia.io/)。 通过在网络浏览器上导航到应用程序,您可以探索 Kaia Safe 的功能。 +**步驟 1:** 導航至 [Kaia Safe App](https://safe.kaia.io/)。 通過在網絡瀏覽器上導航到應用程序,您可以探索 Kaia Safe 的功能。 -**步骤 2:** 连接 [钱包](https://docs.ethhub.io/using-ethereum/wallets/intro-to-ethereum-wallets/)。 目前,Kaia Safe 支持多种钱包,如 [Kaia Wallet](https://docs.kaiawallet.io/)、[MetaMask](../../../tutorials/connecting-metamask.mdx) 钱包等。 +**步驟 2:** 連接 [錢包](https://docs.ethhub.io/using-ethereum/wallets/intro-to-ethereum-wallets/)。 目前,Kaia Safe 支持多種錢包,如 [Kaia Wallet](https://docs.kaiawallet.io/)、[MetaMask](../../../tutorials/connecting-metamask.mdx) 錢包等。 -在本指南中,我们将使用 MetaMask。 确保您的 MetaMask 钱包已添加 Kaia 网络([Mainnet](../../../tutorials/connecting-metamask.mdx#connect-to-kaia-network)或 [Kairos Testnet](../../../tutorials/connecting-metamask.mdx#connect-to-kaia-network)),以便成功连接。 +在本指南中,我們將使用 MetaMask。 確保您的 MetaMask 錢包已添加 Kaia 網絡([Mainnet](../../../tutorials/connecting-metamask.mdx#connect-to-kaia-network)或 [Kairos Testnet](../../../tutorials/connecting-metamask.mdx#connect-to-kaia-network)),以便成功連接。 ![](/img/build/tools/kaia-safe/kaia-safe-connect-wallet.png) -**第 3 步:** 连接钱包后,点击**创建账户**,并为新保险箱命名。 这个名字与您的安全账户相连,安全账户是一个多签名钱包,可以保存和存储您的所有资金。 +**第 3 步:** 連接錢包後,點擊**創建賬戶**,併為新保險箱命名。 這個名字與您的安全賬戶相連,安全賬戶是一個多簽名錢包,可以保存和存儲您的所有資金。 -**第 4 步:** 输入有权提交和批准交易的地址,添加所有者/签名者。 您可以添加任意数量的签名者,也可以随时删除或替换任何签名者。 +**第 4 步:** 輸入有權提交和批准交易的地址,添加所有者/簽名者。 您可以添加任意數量的簽名者,也可以隨時刪除或替換任何簽名者。 -**第 5 步:** 选择安全账户交易需要多少次签名确认才能获得批准。 需要注意的是,我们的应用程序默认情况下只允许一个签名者确认。 但建议使用大于 1 的阈值,以确保账户安全可靠。 良好的做法是以业主总数的 51% 为界限,例如三分之二、五分之三等,如下图所示: +**第 5 步:** 選擇安全賬戶交易需要多少次簽名確認才能獲得批准。 需要注意的是,我們的應用程序默認情況下只允許一個簽名者確認。 但建議使用大於 1 的閾值,以確保賬戶安全可靠。 良好的做法是以業主總數的 51% 為界限,例如三分之二、五分之三等,如下圖所示: ![](/img/build/tools/kaia-safe/kaia-safe-create-acct.gif) -**第 6 步:** 审查并部署安全系统 +**第 6 步:** 審查並部署安全系統 -一旦您对 Safe 的所有参数完全满意,您就可以提交创建 Safe 账户,并按照屏幕上的说明完成账户创建。 +一旦您對 Safe 的所有參數完全滿意,您就可以提交創建 Safe 賬戶,並按照屏幕上的說明完成賬戶創建。 ![](/img/build/tools/kaia-safe/kaia-safe-create-review.gif) -恭喜您成功创建 Kaia Safe 账户! +恭喜您成功創建 Kaia Safe 賬戶! -## 增加资产 +## 增加資產 -在本节中,您将了解如何将资产(KAIA、FT、NFT)添加到安全账户并确保资金安全。 +在本節中,您將瞭解如何將資產(KAIA、FT、NFT)添加到安全賬戶並確保資金安全。 ### KAIA 存款 -以下是将 **KAIA** 添加到您的安全账户的步骤 +以下是將 **KAIA** 添加到您的安全賬戶的步驟 -**步骤 1:** 从账户控制面板复制您的安全地址。 +**步驟 1:** 從賬戶控制面板複製您的安全地址。 ![](/img/build/tools/kaia-safe/ks-deposit-copy-addr.png) -**步骤 2:** 打开 Metamask 钱包,点击**发送**,将资产发送到您的安全账户。 +**步驟 2:** 打開 Metamask 錢包,點擊**發送**,將資產發送到您的安全賬戶。 -请注意,将资产发送到 Safe 账户有不同的方法。 您可以通过 [硬件钱包](https://www.ledger.com/academy/crypto-hardware-wallet)、[网络钱包](https://medium.com/arcana-network-blog/why-web-wallets-e77c776e4d5e) 甚至智能合约发送。 在本例中,我们使用的是名为 MetaMask 的网络钱包。 +請注意,將資產發送到 Safe 賬戶有不同的方法。 您可以通過 [硬件錢包](https://www.ledger.com/academy/crypto-hardware-wallet)、[網絡錢包](https://medium.com/arcana-network-blog/why-web-wallets-e77c776e4d5e) 甚至智能合約發送。 在本例中,我們使用的是名為 MetaMask 的網絡錢包。 ![](/img/build/tools/kaia-safe/ks-token-send-btn.png) -**第 3 步:** 在搜索栏中输入您的安全地址,如下所示。 +**第 3 步:** 在搜索欄中輸入您的安全地址,如下所示。 -**步骤 4:** 输入**金额**,然后点击**下一步**。 +**步驟 4:** 輸入**金額**,然後點擊**下一步**。 ![](/img/build/tools/kaia-safe/ks-token-send-details.png) -**第 5 步:** 确认交易并查看资产仪表板。 您可以看到从 metamask 账户转入 Kaia Safe 账户的金额。 +**第 5 步:** 確認交易並查看資產儀表板。 您可以看到從 metamask 賬戶轉入 Kaia Safe 賬戶的金額。 ![](/img/build/tools/kaia-safe/kaia-safe-klay-bal.png) ### KIP-7 存款 -现在,我们来看看如何通过以下步骤将 KIP7(可替代代币)存入我们的保险箱。 +現在,我們來看看如何通過以下步驟將 KIP7(可替代代幣)存入我們的保險箱。 -**步骤 1:** 从账户控制面板复制您的安全地址。 +**步驟 1:** 從賬戶控制面板複製您的安全地址。 ![](/img/build/tools/kaia-safe/ks-deposit-ft-copy.png) -**步骤 2:** 打开 Metamask 钱包,导航至**资产**选项卡。 +**步驟 2:** 打開 Metamask 錢包,導航至**資產**選項卡。 -**第 3 步:** 选择您喜欢发送的令牌,然后点击**发送**。 +**第 3 步:** 選擇您喜歡發送的令牌,然後點擊**發送**。 ![](/img/build/tools/kaia-safe/ks-ft-send-btn.png) -**步骤 4:** 重复上述**KAIA**存款的步骤**3**、**4**、**5**。 +**步驟 4:** 重複上述**KAIA**存款的步驟**3**、**4**、**5**。 ![](/img/build/tools/kaia-safe/ks-ft-send-details.png) -**第 5 步:** 查看您的资产仪表板,您可以看到 KIP7 代币正在转入您的安全账户。 同样,您也可以将任何 Fungible 代币转入您的安全账户。 +**第 5 步:** 查看您的資產儀表板,您可以看到 KIP7 代幣正在轉入您的安全賬戶。 同樣,您也可以將任何 Fungible 代幣轉入您的安全賬戶。 ![](/img/build/tools/kaia-safe/ks-ft-balance.png) ### KIP-17 (NFTs) 存款 -现在,我们来看看如何按照以下步骤将 KIP17(不可兑换代币)存入我们的保险箱。 +現在,我們來看看如何按照以下步驟將 KIP17(不可兌換代幣)存入我們的保險箱。 -您可以通过多种方式将 NFT 转入您的安全账户。 下面是一个如何使用 [OpenSea](https://opensea.io/about) 将 NFT 转入安全账户的示例。 +您可以通過多種方式將 NFT 轉入您的安全賬戶。 下面是一個如何使用 [OpenSea](https://opensea.io/about) 將 NFT 轉入安全賬戶的示例。 -1. 导航至您的 [OpenSea 帐户](https://testnets.opensea.io/account) 资料页面 -2. 导航至您喜欢转接的 NFT。 确保选择 Kaia 网络(主网或 Kairos)上的 NFT -3. 在下一页,点击传输按钮。 -4. 将保险箱地址粘贴到文本框中,然后传输到保险箱 -5. 在 Kaia Safe 的 "资产 "部分,您可以找到 OpenSea 的 NFT。 +1. 導航至您的 [OpenSea 帳戶](https://testnets.opensea.io/account) 資料頁面 +2. 導航至您喜歡轉接的 NFT。 確保選擇 Kaia 網絡(主網或 Kairos)上的 NFT +3. 在下一頁,點擊傳輸按鈕。 +4. 將保險箱地址粘貼到文本框中,然後傳輸到保險箱 +5. 在 Kaia Safe 的 "資產 "部分,您可以找到 OpenSea 的 NFT。 ![](/img/build/tools/kaia-safe/kaia-safe-trf-nft.gif) -有关转移 NFT 的更多详情,请参阅 OpenSea 提供的 [指南](https://support.opensea.io/en/articles/8866959-how-can-i-transfer-an-nft-using-opensea)。 +有關轉移 NFT 的更多詳情,請參閱 OpenSea 提供的 [指南](https://support.opensea.io/en/articles/8866959-how-can-i-transfer-an-nft-using-opensea)。 -## 发送资产 +## 發送資產 -在本节中,您将学习如何从 Kaia Safe 账户发送 KAIA 和 KIP-7 令牌。 +在本節中,您將學習如何從 Kaia Safe 賬戶發送 KAIA 和 KIP-7 令牌。 -### 发送 KAIA 和 KIP7 令牌 +### 發送 KAIA 和 KIP7 令牌 -**步骤 1:** 点击侧边菜单中的**新交易**按钮,选择**发送代币**,开始新的资产转移。 +**步驟 1:** 點擊側邊菜單中的**新交易**按鈕,選擇**發送代幣**,開始新的資產轉移。 ![](/img/build/tools/kaia-safe/kaia-safe-init-send-token.gif) -**第 2 步:** 选择要转移的资产。 +**第 2 步:** 選擇要轉移的資產。 - **KAIA** -> 注:添加**收件人地址**和 KAIA 的**金额**,以发送转账 KAIA。 +> 注:添加**收件人地址**和 KAIA 的**金額**,以發送轉賬 KAIA。 ![](/img/build/tools/kaia-safe/kaia-safe-send-token-details.gif) - **KIP-7令牌** -在资产下拉菜单中选择要发送的代币,如上图所示。 +在資產下拉菜單中選擇要發送的代幣,如上圖所示。 -> 注意:添加收件人地址和代币数量,以传输 KIP7 代币。 +> 注意:添加收件人地址和代幣數量,以傳輸 KIP7 代幣。 -**第 3 步:** 审查并提交交易。 您需要用签名者钱包签署交易,一旦达到确认阈值,交易就会执行。 +**第 3 步:** 審查並提交交易。 您需要用簽名者錢包簽署交易,一旦達到確認閾值,交易就會執行。 ![](/img/build/tools/kaia-safe/kaia-safe-review-send-tokens.gif) -### 发送 NFT +### 發送 NFT -在本节中,您将学习如何从 Kaia Safe 账户发送不可兑换的代币。 +在本節中,您將學習如何從 Kaia Safe 賬戶發送不可兌換的代幣。 -**步骤 1:** 单击侧菜单中的**新交易**按钮,选择**发送 NFT**,开始新的资产转账。 +**步驟 1:** 單擊側菜單中的**新交易**按鈕,選擇**發送 NFT**,開始新的資產轉賬。 ![](/img/build/tools/kaia-safe/kaia-safe-init-send-nft.gif) -**第 2 步:** 选择要转移的资产。 +**第 2 步:** 選擇要轉移的資產。 ![](/img/build/tools/kaia-safe/kaia-safe-send-nft-details.gif) -**第 3 步:** 审查并提交交易。 您需要用签名者钱包签署交易,一旦达到确认阈值,交易就会执行。 +**第 3 步:** 審查並提交交易。 您需要用簽名者錢包簽署交易,一旦達到確認閾值,交易就會執行。 ![](/img/build/tools/kaia-safe/kaia-safe-review-send-nft.gif) -## 其他说明 +## 其他說明 -在使用 Kaia Safe 时,您需要注意以下事项: +在使用 Kaia Safe 時,您需要注意以下事項: -### 交易费用 +### 交易費用 -Kaia Safe 交易,无论是资产转移还是合同互动,都会产生一笔费用,这笔费用将由执行交易的签名者(通常是达到所需签名门槛的最后一个签名者)支付。 +Kaia Safe 交易,無論是資產轉移還是合同互動,都會產生一筆費用,這筆費用將由執行交易的簽名者(通常是達到所需簽名門檻的最後一個簽名者)支付。 ### 安全 Nonce -出于安全考虑,使用 Safe 进行的交易必须按顺序执行。 为此,我们为事务分配了一个名为 "**nonce**"的数字,以确保每个事务只能执行一次。 +出於安全考慮,使用 Safe 進行的交易必須按順序執行。 為此,我們為事務分配了一個名為 "**nonce**"的數字,以確保每個事務只能執行一次。 ![](/img/build/tools/kaia-safe/ks-nounce.png) -在任何给定的时间内,只能执行nonce为_上一次执行的事务+1_的事务。 非ce 值较高的事务将排队等待执行。 因此,每当一个事务完成后,只要队列中的下一个事务积累了足够的签名,就可以执行。 +在任何給定的時間內,只能執行nonce為_上一次執行的事務+1_的事務。 非ce 值較高的事務將排隊等待執行。 因此,每當一個事務完成後,只要隊列中的下一個事務積累了足夠的簽名,就可以執行。 ![](/img/build/tools/kaia-safe/ks-pending-tx.png) -### 特定连锁店地址 +### 特定連鎖店地址 -您可以选择复制带链前缀的地址 +您可以選擇複製帶鏈前綴的地址 -- 复制带链前缀的地址: +- 複製帶鏈前綴的地址: ![](/img/build/tools/kaia-safe/ks-chain-spec-addr.png) -从仪表板复制安全地址粘贴到钱包时,如上图所示,您可以点击复选框选择是否添加链名。 建议您不要选中它,以避免出现以下错误。 +從儀表板複製安全地址粘貼到錢包時,如上圖所示,您可以點擊複選框選擇是否添加鏈名。 建議您不要選中它,以避免出現以下錯誤。 ![](/img/build/tools/kaia-safe/ks-chain-addr-err.png) From b501c89d8f09081683587edae39ccfdb89353def Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:47 +0800 Subject: [PATCH 0050/2513] New translations kaia-wallet.md (Chinese Simplified) --- .../build/tools/wallets/kaia-wallet.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md index eed4c5c2c14c..7f0c91ae062c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md @@ -1,33 +1,33 @@ -# Kaia 钱包 +# Kaia 錢包 ![](/img/banners/kaia-kaiawallet.png) -Kaia 钱包是 Kaia 网络的浏览器扩展钱包。 Kaia 钱包可在 Google Chrome 浏览器中使用,它提供了一种通过网络浏览器与 Kaia 网络进行交互的安全、可用的方式。 使用 Kaia 钱包,您可以存储您的 KAIA 和基于 Kaia 的代币并进行交易。 您还可以在 -实时签署来自基于网络的 dApps(去中心化应用程序)的请求。 +Kaia 錢包是 Kaia 網絡的瀏覽器擴展錢包。 Kaia 錢包可在 Google Chrome 瀏覽器中使用,它提供了一種通過網絡瀏覽器與 Kaia 網絡進行交互的安全、可用的方式。 使用 Kaia 錢包,您可以存儲您的 KAIA 和基於 Kaia 的代幣並進行交易。 您還可以在 +即時簽署來自基於網絡的 dApps(去中心化應用程序)的請求。 -- 从 Chrome 网上商店下载:[link](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) +- 從 Chrome 網上商店下載:[link](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) -开发人员请访问 [https://docs.kaiawallet.io](https://docs.kaiawallet.io),了解如何使用 Kaia 钱包开发 dApp。 +開發人員請訪問 [https://docs.kaiawallet.io](https://docs.kaiawallet.io),瞭解如何使用 Kaia 錢包開發 dApp。 -## 基于 PC 网络浏览器的分散式高清钱包 +## 基於 PC 網絡瀏覽器的分散式高清錢包 -Kaia Wallet 是 Chrome 浏览器的一个网络扩展。 Kaia Wallet 针对桌面环境进行了优化。 +Kaia Wallet 是 Chrome 瀏覽器的一個網絡擴展。 Kaia Wallet 針對桌面環境進行了優化。 -Kaia 钱包提供用户账户和密钥的可管理性。 所有交易都透明地记录在 Kaia 区块链上,因此任何人都可以使用 [Kaiascope] 访问交易历史。 +Kaia 錢包提供用戶賬戶和密鑰的可管理性。 所有交易都透明地記錄在 Kaia 區塊鏈上,因此任何人都可以使用 [Kaiascope] 訪問交易歷史。 -Kaia 钱包是一种分层确定性(HD)钱包,这意味着它能从单个种子短语无限生成分层树状结构的私钥/公钥。 种子短语由记忆代码词组成,因此比由随机字母数字组成的短语更容易记忆。 用户的私人密钥经过加密并存储在浏览器中。 +Kaia 錢包是一種分層確定性(HD)錢包,這意味著它能從單個種子短語無限生成分層樹狀結構的私鑰/公鑰。 種子短語由記憶代碼詞組成,因此比由隨機字母數字組成的短語更容易記憶。 用戶的私人密鑰經過加密並存儲在瀏覽器中。 -通过上述功能,Kaia 钱包改善了当前区块链体验的安全性、透明度和用户友好性。 不过,用户必须负责管理自己的个人账户。 例如,如果用户不记得他/她的种子短语,就没有其他办法恢复他/她的账户。 +通過上述功能,Kaia 錢包改善了當前區塊鏈體驗的安全性、透明度和用戶友好性。 不過,用戶必須負責管理自己的個人賬戶。 例如,如果用戶不記得他/她的種子短語,就沒有其他辦法恢復他/她的賬戶。 -## 支持各种 Kaia 网络和代币 +## 支持各種 Kaia 網絡和代幣 -Kaia 钱包允许您存储和交易所有基于 Kaia 的代币,包括 KAIA。 默认情况下未加载的令牌可以通过粘贴其合约地址来插入。 您甚至可以在 Kaia 钱包上存储和交易您自己的基于 Kaia 的自定义代币! +Kaia 錢包允許您存儲和交易所有基於 Kaia 的代幣,包括 KAIA。 默認情況下未加載的令牌可以通過粘貼其合約地址來插入。 您甚至可以在 Kaia 錢包上存儲和交易您自己的基於 Kaia 的自定義代幣! -Kaia 钱包支持 Kaia 的 Kairos 测试网和主网。 此外,Kaia 钱包还支持基于 Kaia 的 dApp 开发人员的私有链,这些开发人员可能希望在其私有网络中流通定制代币。 +Kaia 錢包支持 Kaia 的 Kairos 測試網和主網。 此外,Kaia 錢包還支持基於 Kaia 的 dApp 開發人員的私有鏈,這些開發人員可能希望在其私有網絡中流通定製代幣。 -## 签署基于网络的 dApp 交易 +## 簽署基於網絡的 dApp 交易 -Kaia Wallet 在您和 dApp 之间架起了一座桥梁,使您能够使用 Kaia Wallet 账户签署从 dApp 流向您的交易/数据。 -Kaia 钱包也是开发人员处理[费用委托交易](../../../learn/transactions/transactions.md#fee-delegation)的辅助工具。 使用 Kaia 钱包,交易发送方和费用支付方都能迅速签署费用委托交易。 +Kaia Wallet 在您和 dApp 之間架起了一座橋樑,使您能夠使用 Kaia Wallet 賬戶簽署從 dApp 流向您的交易/數據。 +Kaia 錢包也是開發人員處理[費用委託交易](../../../learn/transactions/transactions.md#fee-delegation)的輔助工具。 使用 Kaia 錢包,交易發送方和費用支付方都能迅速簽署費用委託交易。 [Kaiascope]: ../block-explorers/kaiascope.md From 0e483aafce5585663e521bcef61eae7bbfea4058 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:50 +0800 Subject: [PATCH 0051/2513] New translations safepal-s1.md (Chinese Simplified) --- .../wallets/hardware-wallets/safepal-s1.md | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md index 35f9b9114178..285635a752d3 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md @@ -2,106 +2,106 @@ ![](/img/banners/kaia-safepal.png) -## 导言 +## 導言 -硬件钱包重新发明了轮子,将私钥(签署交易时需要)保存在与互联网连接分离的离线环境中,避免了依赖互联网连接的软件钱包所带来的大量黑客攻击或威胁。 这样,用户的加密资产就更安全了,也不会受到软件钱包带来的网络危险的影响。 +硬件錢包重新發明了輪子,將私鑰(簽署交易時需要)保存在與互聯網連接分離的離線環境中,避免了依賴互聯網連接的軟件錢包所帶來的大量黑客攻擊或威脅。 這樣,用戶的加密資產就更安全了,也不會受到軟件錢包帶來的網絡危險的影響。 -与 Kaia 集成的硬件钱包之一是 **SafePal S1 硬件钱包**。 SafePal S1 是一款加密货币硬件钱包,旨在为大众提供一个安全、简单、愉快的加密货币管理解决方案。 SafePal 是一款硬件钱包,用于保护和管理加密货币和 NFT,如比特币、KAIA、Kaia Compatible Tokens(KCT)、以太币和 ERC20 代币等。 +與 Kaia 集成的硬件錢包之一是 **SafePal S1 硬件錢包**。 SafePal S1 是一款加密貨幣硬件錢包,旨在為大眾提供一個安全、簡單、愉快的加密貨幣管理解決方案。 SafePal 是一款硬件錢包,用於保護和管理加密貨幣和 NFT,如比特幣、KAIA、Kaia Compatible Tokens(KCT)、以太幣和 ERC20 代幣等。 -在本指南中,您将 +在本指南中,您將 -- 使用 SafePal S1 硬件钱包添加、接收和发送 Klay 以及任何 Kaia 兼容代币(KCT) +- 使用 SafePal S1 硬件錢包添加、接收和發送 Klay 以及任何 Kaia 兼容代幣(KCT) -## 先决条件 +## 先決條件 -- [SafePal 硬件钱包设置](https://safepalsupport.zendesk.com/hc/en-us/articles/360046051752) +- [SafePal 硬件錢包設置](https://safepalsupport.zendesk.com/hc/en-us/articles/360046051752) -## 入门 +## 入門 -在成功设置钱包后,接下来就是查看钱包的运行情况了。 在本教程中,我们将使用 SafePal S1 硬件钱包添加、接收和发送 KAIA 原生代币以及任何 Kaia 兼容代币(KCT)。 +在成功設置錢包後,接下來就是查看錢包的運行情況了。 在本教程中,我們將使用 SafePal S1 硬件錢包添加、接收和發送 KAIA 原生代幣以及任何 Kaia 兼容代幣(KCT)。 -### 添加 KAIA 原生硬币 +### 添加 KAIA 原生硬幣 -请按照以下步骤将 KAIA 原生币添加到您的硬件钱包中: +請按照以下步驟將 KAIA 原生幣添加到您的硬件錢包中: -**第一步**:打开安全宝应用程序,在 "钱包 "选项卡中点击省略号图标,然后点击 "管理硬币 "按钮,如下图所示: +**第一步**:打開安全寶應用程序,在 "錢包 "選項卡中點擊省略號圖標,然後點擊 "管理硬幣 "按鈕,如下圖所示: ![](/img/build/tools/step1-add-klay.png) -**步骤 2**:选择要添加的硬币(本例中为 KAIA),然后点击底部的**添加硬币**。 +**步驟 2**:選擇要添加的硬幣(本例中為 KAIA),然後點擊底部的**添加硬幣**。 ![](/img/build/tools/step2-add-klay.png) -**第 3 步**: 在应用程序和 S1 硬件钱包之间来回扫描,以便在应用程序和设备之间正确同步数据。 +**第 3 步**: 在應用程序和 S1 硬件錢包之間來回掃描,以便在應用程序和設備之間正確同步數據。 -**第 4 步**:成功添加硬币后,您就可以在 S1 设备上的 "资产管理 "标签中查看它们了。 +**第 4 步**:成功添加硬幣後,您就可以在 S1 設備上的 "資產管理 "標籤中查看它們了。 ![](/img/build/tools/step4-add-klay.png) -请注意,上述步骤适用于添加任何 Kaia 兼容令牌。 +請注意,上述步驟適用於添加任何 Kaia 兼容令牌。 -### 接收 KAIA 原生硬币 +### 接收 KAIA 原生硬幣 -成功添加硬币(KAIA、KCT)后,您可以在 S1 设备上的 "资产管理 "\*\* 标签中查看它们。 您可以使用以下方法接收 KAIA 本地硬币: +成功添加硬幣(KAIA、KCT)後,您可以在 S1 設備上的 "資產管理 "\*\* 標籤中查看它們。 您可以使用以下方法接收 KAIA 本地硬幣: -#### 使用掌上安全应用程序 +#### 使用掌上安全應用程序 -1. 选择 KAIA,可选择交换、接收和发送,点击接收 -2. 您可以为钱包复制 KAIA 地址,保存二维码,或让对方扫描您手机上的二维码。 +1. 選擇 KAIA,可選擇交換、接收和發送,點擊接收 +2. 您可以為錢包複製 KAIA 地址,保存二維碼,或讓對方掃描您手機上的二維碼。 -#### 使用安全宝 S1 硬件钱包 +#### 使用安全寶 S1 硬件錢包 -**第 1 步** 启动 SafePal S1 设备,导航至 "资产管理 +**第 1 步** 啟動 SafePal S1 設備,導航至 "資產管理 -**第 2 步** 选择 KAIA 作为您希望从他人处接收的硬币。 +**第 2 步** 選擇 KAIA 作為您希望從他人處接收的硬幣。 -**第 3 步** 点击 "接收 "按钮 +**第 3 步** 點擊 "接收 "按鈕 -步骤 4\*\*\*\* 输入 S1 设备的 PIN 码。 +步驟 4\*\*\*\* 輸入 S1 設備的 PIN 碼。 -**第 5 步** 然后,您可以查看硬币地址的二维码,并将其展示给他人,以便他们扫描并将硬币发送给您。 +**第 5 步** 然後,您可以查看硬幣地址的二維碼,並將其展示給他人,以便他們掃描並將硬幣發送給您。 ![](/img/build/tools/sphw-rec-banner.png) -请注意,上述步骤适用于接收任何 Kaia 兼容代币。 +請注意,上述步驟適用於接收任何 Kaia 兼容代幣。 -### 发送 KAIA 原生硬币 +### 發送 KAIA 原生硬幣 -要从您的硬件钱包发送 KAIA 原生币,请按照以下步骤操作: +要從您的硬件錢包發送 KAIA 原生幣,請按照以下步驟操作: -**第1步** 在安全宝应用程序上,选择您要发送的硬币(在我们的例子中为KAIA),然后点击**发送**。 +**第1步** 在安全寶應用程序上,選擇您要發送的硬幣(在我們的例子中為KAIA),然後點擊**發送**。 ![](/img/build/tools/step1-send-klay.png) -**第 2 步** 输入目的地地址和金额,然后点击 "下一步 "再次确认详细信息。 确保在此步骤中验证您的转账详情。 +**第 2 步** 輸入目的地地址和金額,然後點擊 "下一步 "再次確認詳細信息。 確保在此步驟中驗證您的轉賬詳情。 ![](/img/build/tools/step2-send-klay.png) -步骤 3\*\*\*\* 启动 S1 设备的签署程序。 +步驟 3\*\*\*\* 啟動 S1 設備的簽署程序。 -在此步骤中,安全宝应用程序上将显示一个包含转账详情的 QR 码(如下图所示)。 启动 S1 硬件钱包,进入**扫描**选项卡。 下一步是扫描 SafePal 应用程序上的 QR 码。 这样做可确保 S1 设备在脱机环境下接收传输详细信息。 +在此步驟中,安全寶應用程序上將顯示一個包含轉賬詳情的 QR 碼(如下圖所示)。 啟動 S1 硬件錢包,進入**掃描**選項卡。 下一步是掃描 SafePal 應用程序上的 QR 碼。 這樣做可確保 S1 設備在脫機環境下接收傳輸詳細信息。 ![](/img/build/tools/step3-send-klay.png) -**第 4**步 在 S1 设备上签署转让协议 +**第 4**步 在 S1 設備上籤署轉讓協議 -成功扫描转账详情后,您将在 S1 设备上看到转账详情(金额、费用、加油限额等)。 接下来是验证详细信息并输入 PIN 码。 +成功掃描轉賬詳情後,您將在 S1 設備上看到轉賬詳情(金額、費用、加油限額等)。 接下來是驗證詳細信息並輸入 PIN 碼。 ![](/img/build/tools/step4-send-klay.png) -**第 5 步** 将签名同步回安全宝应用程序 +**第 5 步** 將簽名同步回安全寶應用程序 -在 S1 设备上成功签署传输后,您将看到一组动态 QR 码显示在 S1 设备上。 在安全宝应用程序中,点击 "下一步 "打开手机摄像头。 使用 SafePal 应用程序扫描 S1 设备上显示的动态 QR 码。 +在 S1 設備上成功簽署傳輸後,您將看到一組動態 QR 碼顯示在 S1 設備上。 在安全寶應用程序中,點擊 "下一步 "打開手機攝像頭。 使用 SafePal 應用程序掃描 S1 設備上顯示的動態 QR 碼。 -这样做可以确保应用程序收到二维码中包含的签名,并准备好向区块链(Kaia)广播转账。 +這樣做可以確保應用程序收到二維碼中包含的簽名,並準備好向區塊鏈(Kaia)廣播轉賬。 -步骤 6\*\*\*\* 点击应用程序上的**广播**,等待传输完成 +步驟 6\*\*\*\* 點擊應用程序上的**廣播**,等待傳輸完成 ![](/img/build/tools/step6-send-klay.png) -请注意,上述步骤适用于发送任何 Kaia 兼容令牌。 +請注意,上述步驟適用於發送任何 Kaia 兼容令牌。 -## 更多参考资料 +## 更多參考資料 -- [SafePal S1 升级说明](https://www.safepal.com/en/upgrade/s1) -- [SafePal S1 用户手册](https://docs.safepal.io/safepal-hardware-wallet/user-manual) +- [SafePal S1 升級說明](https://www.safepal.com/en/upgrade/s1) +- [SafePal S1 用戶手冊](https://docs.safepal.io/safepal-hardware-wallet/user-manual) From dda2fd1051637f11d69487f6366683286991d979 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:54 +0800 Subject: [PATCH 0052/2513] New translations particle.md (Chinese Simplified) --- .../wallets/wallet-libraries/particle.md | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md index 422fcf25afa5..a7bea487b28f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md @@ -2,47 +2,47 @@ sidebar_label: Particle Network --- -# 将粒子网络整合到 dApp 中 +# 將粒子網絡整合到 dApp 中 ![](/img/banners/kaia-particle.png) -## 导言 +## 導言 -[粒子网络](https://particle.network) 提供钱包抽象服务,以简化用户入门。 +[粒子網絡](https://particle.network) 提供錢包抽象服務,以簡化用戶入門。 -[粒子连接 SDK](https://developers.particle.network/api-reference/connect/desktop/web) 支持与 EVM 兼容的链,包括 Kaia 及其测试网。 它允许使用[社交和 Web3 登录选项](https://developers.particle.network/api-reference/connect/desktop/web#wallet-connectors)进行 2 键登录,所有操作都在一个模态中完成。 +[粒子連接 SDK](https://developers.particle.network/api-reference/connect/desktop/web) 支持與 EVM 兼容的鏈,包括 Kaia 及其測試網。 它允許使用[社交和 Web3 登錄選項](https://developers.particle.network/api-reference/connect/desktop/web#wallet-connectors)進行 2 鍵登錄,所有操作都在一個模態中完成。 -通过 Particle Network,Kaia 开发人员可以为 Kaia 主网和测试网嵌入社交登录,让用户只需使用他们的谷歌、电子邮件、X 等信息就能在您的应用程序中生成和使用钱包。 +通過 Particle Network,Kaia 開發人員可以為 Kaia 主網和測試網嵌入社交登錄,讓用戶只需使用他們的谷歌、電子郵件、X 等信息就能在您的應用程序中生成和使用錢包。 -本页提供在基于 Kaia 的应用程序中实施 Particle Connect 的概述和教程,以帮助您开始集成过程。 +本頁提供在基於 Kaia 的應用程序中實施 Particle Connect 的概述和教程,以幫助您開始集成過程。 -## 先决条件 +## 先決條件 -- 使用 TypeScript 和 Tailwind CSS 设置的 [Next.js 项目](https://nextjs.org/docs/getting-started/installation) - - 您可以运行: `npx create-next-app@latest` 来创建它。 -- 来自 [Particle Dashboard](https://dashboard.particle.network)的**项目 ID**、**客户密钥**和**应用程序 ID**。 +- 使用 TypeScript 和 Tailwind CSS 設置的 [Next.js 項目](https://nextjs.org/docs/getting-started/installation) + - 您可以運行: `npx create-next-app@latest` 來創建它。 +- 來自 [Particle Dashboard](https://dashboard.particle.network)的**項目 ID**、**客戶密鑰**和**應用程序 ID**。 -## 安装 +## 安裝 -要在您的 dApp 中利用 Particle Network,特别是 Particle Connect,您首先需要安装所需的库。 Particle Connect SDK 通过一个界面简化了钱包创建、用户登录和区块链交互过程。 它支持社交登录和 Web3 登录,便于访问。 +要在您的 dApp 中利用 Particle Network,特別是 Particle Connect,您首先需要安裝所需的庫。 Particle Connect SDK 通過一個界面簡化了錢包創建、用戶登錄和區塊鏈交互過程。 它支持社交登錄和 Web3 登錄,便於訪問。 -要安装 SDK 以及 Viem(连接后台)和 ethers(演示 EIP-1193 提供商),请运行 +要安裝 SDK 以及 Viem(連接後臺)和 ethers(演示 EIP-1193 提供商),請運行 ```shell yarn add @particle-network/connectkit viem@^2 ethers ``` -## 初始化粒子连接 +## 初始化粒子連接 -首先,我们将设置 Particle Connect,这是 Particle 的旗舰认证 SDK。 在项目根目录下创建名为 `ConnectKit.tsx` 的新文件。 该文件将容纳 "ParticleConnectKit "组件,它是已配置的 "ConnectKitProvider "实例的包装器,是配置 Particle Connect 的主要接口(我们稍后将以编程方式介绍)。 +首先,我們將設置 Particle Connect,這是 Particle 的旗艦認證 SDK。 在項目根目錄下創建名為 `ConnectKit.tsx` 的新文件。 該文件將容納 "ParticleConnectKit "組件,它是已配置的 "ConnectKitProvider "實例的包裝器,是配置 Particle Connect 的主要接口(我們稍後將以編程方式介紹)。 -接下来,前往 [Particle dashboard](https://dashboard.particle.network),创建一个新的网络应用程序项目,并获取以下必要的 API 密钥: +接下來,前往 [Particle dashboard](https://dashboard.particle.network),創建一個新的網絡應用程序項目,並獲取以下必要的 API 密鑰: -- **`projectId`** - 项目的唯一标识符。 -- **`clientKey`** - 客户端特有的密钥。 -- **`appId`** - 应用程序的 ID。 +- **`projectId`** - 項目的唯一標識符。 +- **`clientKey`** - 客戶端特有的密鑰。 +- **`appId`** - 應用程序的 ID。 -将这些 API 密钥存储在`.env`文件中,如下所示: +將這些 API 密鑰存儲在`.env`文件中,如下所示: ```plaintext next_public_project_id='project_id' @@ -50,7 +50,7 @@ next_public_client_key='client_key' next_public_app_id='app_id' ``` -现在,将以下代码添加到您的 `ConnectKit.tsx` 文件中: +現在,將以下代碼添加到您的 `ConnectKit.tsx` 文件中: ```js "use client"; @@ -120,11 +120,11 @@ export const ParticleConnectkit = ({ children }: React.PropsWithChildren) => { }; ``` -该组件的几乎所有属性都可以配置,从支持的不同登录类型到模态的视觉外观;要探索这些不同的选项,请访问 [Particle 文档](https://developers.particle.network/api-reference/connect/desktop/web#configuration)。 +該組件的幾乎所有屬性都可以配置,從支持的不同登錄類型到模態的視覺外觀;要探索這些不同的選項,請訪問 [Particle 文檔](https://developers.particle.network/api-reference/connect/desktop/web#configuration)。 -## 将 Particle Connect 集成到您的应用程序中 +## 將 Particle Connect 集成到您的應用程序中 -配置完成后,用 "ParticleConnectKit "组件封装您的应用程序,以启用对 Particle Connect SDK 的全局访问。 要做到这一点,请对 `src` 目录中的 `layout.tsx` 文件作如下修改: +配置完成後,用 "ParticleConnectKit "組件封裝您的應用程序,以啟用對 Particle Connect SDK 的全局訪問。 要做到這一點,請對 `src` 目錄中的 `layout.tsx` 文件作如下修改: ```typescript import { ParticleConnectkit } from '@/connectkit'; @@ -154,9 +154,9 @@ export default function RootLayout({ } ``` -### 连接钱包 +### 連接錢包 -设置好 "layout.tsx "文件后,就可以通过中央**连接钱包**按钮连接用户了。 您可以从 `@particle-network/connectkit` 中导入 `ConnectButton` 来实现这一功能。 一旦用户登录,"连接按钮 "就会变成一个嵌入式部件。 +設置好 "layout.tsx "文件後,就可以通過中央**連接錢包**按鈕連接用戶了。 您可以從 `@particle-network/connectkit` 中導入 `ConnectButton` 來實現這一功能。 一旦用戶登錄,"連接按鈕 "就會變成一個嵌入式部件。 ```js import { ConnectButton, useAccount } from '@particle-network/connectkit'; @@ -179,9 +179,9 @@ export const App = () => { }; ``` -### 获取账户和余额 +### 獲取賬戶和餘額 -通过 `ConnectButton` 组件成功连接钱包(或社交登录)后,就可以检索用户的相关 Kaia 地址。 此外,您还可以通过 "publicClient"(利用 Particle Connect 已设置的 Viem 提供商)检索其当前余额(以 KAIA 为单位)。 +通過 `ConnectButton` 組件成功連接錢包(或社交登錄)後,就可以檢索用戶的相關 Kaia 地址。 此外,您還可以通過 "publicClient"(利用 Particle Connect 已設置的 Viem 提供商)檢索其當前餘額(以 KAIA 為單位)。 ```js "use client"; @@ -240,9 +240,9 @@ export default function Home() { } ``` -### 断开钱包连接 +### 斷開錢包連接 -用户登录后,可以通过源自 `useDisconnect` 的 `disconnect` 以编程方式强制注销。 这将断开当前活动会话与 dApp 的连接,使用户返回初始状态。 +用戶登錄後,可以通過源自 `useDisconnect` 的 `disconnect` 以編程方式強制註銷。 這將斷開當前活動會話與 dApp 的連接,使用戶返回初始狀態。 ```js import { useDisconnect } from "@particle-network/connectkit"; @@ -259,9 +259,9 @@ const { disconnect } = useDisconnect(); ``` -### 获取用户信息 +### 獲取用戶信息 -当用户通过社交账户连接时,可以使用 `useParticleAuth()` 钩子访问 `userinfo`,其中包括用户的连接方式、账户创建日期、姓名、电子邮件和其他[来自 Particle Auth 的相关信息](https://developers.particle.network/api-reference/connect/desktop/web#fetch-user-information-with-particle-auth)。 +當用戶通過社交賬戶連接時,可以使用 `useParticleAuth()` 鉤子訪問 `userinfo`,其中包括用戶的連接方式、賬戶創建日期、姓名、電子郵件和其他[來自 Particle Auth 的相關信息](https://developers.particle.network/api-reference/connect/desktop/web#fetch-user-information-with-particle-auth)。 ```js import { useAccount, useParticleAuth, useWallets } from '@particle-network/connectkit'; @@ -293,9 +293,9 @@ export const App = () => { }; ``` -### 发送本地事务 +### 發送本地事務 -Particle Connect 允许您利用现有的 EIP-1193 提供商,在本例中,我们创建了一个带有 `ethers` 的提供商实例来发送转账交易。 +Particle Connect 允許您利用現有的 EIP-1193 提供商,在本例中,我們創建了一個帶有 `ethers` 的提供商實例來發送轉賬交易。 ```js import { useWallets } from "@particle-network/connectkit"; @@ -326,6 +326,6 @@ const executeTransaction = async () => { ## 下一步工作 -您可以在 [Particle Connect 文档](https://developers.particle.network/api-reference/connect/desktop/web#key-react-hooks-for-particle-connect) 中找到可用钩子的完整列表。 +您可以在 [Particle Connect 文檔](https://developers.particle.network/api-reference/connect/desktop/web#key-react-hooks-for-particle-connect) 中找到可用鉤子的完整列表。 -有关 Particle Network(Particle Connect、Particle Auth 和其他 SDK)的其他指南,请参阅 [Particle Network 文档](https://developers.particle.network) 和 [Particle Network GitHub 账户](https://github.com/Particle-Network)。 此外,您还可以访问 [Particle Network 博客](https://blog.particle.network) 了解有关 Particle Network 服务、即将发布的版本和技术栈的更多信息。 +有關 Particle Network(Particle Connect、Particle Auth 和其他 SDK)的其他指南,請參閱 [Particle Network 文檔](https://developers.particle.network) 和 [Particle Network GitHub 賬戶](https://github.com/Particle-Network)。 此外,您還可以訪問 [Particle Network 博客](https://blog.particle.network) 瞭解有關 Particle Network 服務、即將發佈的版本和技術棧的更多信息。 From 7d99596cd8a43c3e3f02f0838c907b2f430e6869 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:28:57 +0800 Subject: [PATCH 0053/2513] New translations privy.md (Chinese Simplified) --- .../tools/wallets/wallet-libraries/privy.md | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md index 34f4b3f38dcb..53ac8995c507 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md @@ -2,45 +2,45 @@ sidebar_label: Privy --- -# 将 Privy 整合到 dApp 中 +# 將 Privy 整合到 dApp 中 ![](/img/banners/kaia-privy.png) -## 导言 +## 導言 -[Privy](https://docs.privy.io/)是一个简单的钱包工具包,用于在 web3 中进行渐进式身份验证。 有了 Privy,开发人员可以使用传统和 web3 身份验证方法登录用户,实现渐进式登录,提高用户转化率。 +[Privy](https://docs.privy.io/)是一個簡單的錢包工具包,用於在 web3 中進行漸進式身份驗證。 有了 Privy,開發人員可以使用傳統和 web3 身份驗證方法登錄用戶,實現漸進式登錄,提高用戶轉化率。 -在本指南中,您将使用 Privy 钱包工具包将 Metamask、Coinbase Wallet 等外部钱包以及 Google、Twitter、Email 等社交登录信息整合到您在 Kaia 网络上构建的 dApp 中。 +在本指南中,您將使用 Privy 錢包工具包將 Metamask、Coinbase Wallet 等外部錢包以及 Google、Twitter、Email 等社交登錄信息整合到您在 Kaia 網絡上構建的 dApp 中。 -## 先决条件 +## 先決條件 -- 一个正在运行的 Next.js 项目。 您可以克隆 Privy 提供的 [create-next-app](https://github.com/privy-io/create-next-app) 模板来学习本教程。 -- 来自[Privy 开发者控制台](https://console.privy.io/)的[应用程序ID](https://docs.privy.io/guide/console/api-keys#app-id) +- 一個正在運行的 Next.js 項目。 您可以克隆 Privy 提供的 [create-next-app](https://github.com/privy-io/create-next-app) 模板來學習本教程。 +- 來自[Privy 開發者控制檯](https://console.privy.io/)的[應用程序ID](https://docs.privy.io/guide/console/api-keys#app-id) -## 开始 +## 開始 -克隆模板是一个简单的 Next.js Privy Auth 入门模板,包含三个主要核心文件: +克隆模板是一個簡單的 Next.js Privy Auth 入門模板,包含三個主要核心文件: -- **index.tsx**:该文件处理用户的登录验证。 -- **app.tsx**:该文件处理 Privy SDK 的初始化,并用 PrivyProvider 封装我们的组件。 -- **dashboard.tsx**:这是用户登录后重定向到的页面。 它可以测试每种登录方法(谷歌、Twitter、电子邮件、钱包)。 对于本指南来说,更重要的是,我们将在使用 MetaMask 等外部钱包连接时执行某些功能。 这些功能包括:获取用户余额、向另一个账户发送 KAIA、部署合约、与智能合约交互。 +- **index.tsx**:該文件處理用戶的登錄驗證。 +- **app.tsx**:該文件處理 Privy SDK 的初始化,並用 PrivyProvider 封裝我們的組件。 +- **dashboard.tsx**:這是用戶登錄後重定向到的頁面。 它可以測試每種登錄方法(谷歌、Twitter、電子郵件、錢包)。 對於本指南來說,更重要的是,我們將在使用 MetaMask 等外部錢包連接時執行某些功能。 這些功能包括:獲取用戶餘額、向另一個賬戶發送 KAIA、部署合約、與智能合約交互。 -## 安装 +## 安裝 -要在 dApp 中使用 Privy,必须先安装所需的库和 SDK。 因此,您需要设置 ethers.js,以及 [Privy React Auth SDK](https://www.npmjs.com/package/@privy-io/react-auth)。 您可以将 Privy 与 [etherthers.js](https://docs.ethers.org/v6/)、[web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html)、[viem](https://viem.sh/) 库一起使用,与 Kaia 区块链进行通信。 在本指南中,我们将使用 ethers.js 库。 +要在 dApp 中使用 Privy,必須先安裝所需的庫和 SDK。 因此,您需要設置 ethers.js,以及 [Privy React Auth SDK](https://www.npmjs.com/package/@privy-io/react-auth)。 您可以將 Privy 與 [etherthers.js](https://docs.ethers.org/v6/)、[web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html)、[viem](https://viem.sh/) 庫一起使用,與 Kaia 區塊鏈進行通信。 在本指南中,我們將使用 ethers.js 庫。 -打开项目文件夹,运行下面的命令安装所需的库和 SDK: +打開項目文件夾,運行下面的命令安裝所需的庫和 SDK: ```bash npm install —save @privy-io/react-auth npm install --save ethers ``` -## 初始化特权和特权提供程序 +## 初始化特權和特權提供程序 -成功安装所需的库后,接下来就是用[PrivyProvider](https://docs.privy.io/reference/react-auth/modules#privyprovider)来封装组件。 +成功安裝所需的庫後,接下來就是用[PrivyProvider](https://docs.privy.io/reference/react-auth/modules#privyprovider)來封裝組件。 -PrivyProvider 应封装任何将使用 Privy SDK 的组件。 为此,请打开 _app.tsx 文件并粘贴下面的代码: +PrivyProvider 應封裝任何將使用 Privy SDK 的組件。 為此,請打開 _app.tsx 文件並粘貼下面的代碼: ```tsx import '../styles/globals.css'; @@ -68,16 +68,16 @@ function MyApp({Component, pageProps}: AppProps) { export default MyApp; ``` -值得注意的是,特权提供者具有以下属性: +值得注意的是,特權提供者具有以下屬性: -- 您的 `appID` 需要在 .env 文件中更新。 您可以使用 Privy 为测试目的提供的以下 "测试应用程序 ID:clpispdty00ycl80fpueukbhl "开始使用。 -- 一个可选的 `onSuccess` 回调,用户成功登录后执行该回调。 -- 一个可选的 "createPrivyWalletOnLogin "布尔值,用于配置是否希望用户在登录时创建嵌入式钱包。 -- 可选配置属性,用于自定义上机体验。 +- 您的 `appID` 需要在 .env 文件中更新。 您可以使用 Privy 為測試目的提供的以下 "測試應用程序 ID:clpispdty00ycl80fpueukbhl "開始使用。 +- 一個可選的 `onSuccess` 回調,用戶成功登錄後執行該回調。 +- 一個可選的 "createPrivyWalletOnLogin "布爾值,用於配置是否希望用戶在登錄時創建嵌入式錢包。 +- 可選配置屬性,用於自定義上機體驗。 -## 连接钱包 +## 連接錢包 -在 `index.tsx` 文件的 LoginPage 函数中,调用 [login](https://docs.privy.io/reference/react-auth/interfaces/PrivyInterface#login) 方法,打开 Privy 登录模态,提示用户登录。 +在 `index.tsx` 文件的 LoginPage 函數中,調用 [login](https://docs.privy.io/reference/react-auth/interfaces/PrivyInterface#login) 方法,打開 Privy 登錄模態,提示用戶登錄。 ```ts import {usePrivy} from '@privy-io/react-auth'; @@ -95,11 +95,11 @@ export default MyApp; ![](/img/build/tools/privy-connect-banner.png) -## 获取账户和余额 +## 獲取賬戶和餘額 -通过上面的步骤,你会发现我们是通过连接钱包登录的。 在这一步中,我们将检索用户的相关 Kaia 地址。 此外,您还可以使用 ethers.js 检索其当前余额(以 KAIA 为单位)。 +通過上面的步驟,你會發現我們是通過連接錢包登錄的。 在這一步中,我們將檢索用戶的相關 Kaia 地址。 此外,您還可以使用 ethers.js 檢索其當前餘額(以 KAIA 為單位)。 -在 dashboard.tsx 文件中,粘贴以下代码: +在 dashboard.tsx 文件中,粘貼以下代碼: ```tsx import {useRouter} from 'next/router'; @@ -144,10 +144,10 @@ return ( ); ``` -## 断开钱包连接 +## 斷開錢包連接 -断开钱包 -用户登录后,可以通过从 usePrivy 派生的 `logout` 方法以编程方式注销用户。 这将断开当前活动会话与 dApp 的连接,使用户返回初始状态。 +斷開錢包 +用戶登錄後,可以通過從 usePrivy 派生的 `logout` 方法以編程方式註銷用戶。 這將斷開當前活動會話與 dApp 的連接,使用戶返回初始狀態。 ```tsx const { logout } = usePrivy(); @@ -162,9 +162,9 @@ return ( ); ``` -## 获取用户信息 +## 獲取用戶信息 -Privy 为用户提供了使用 web3 钱包和社交登录连接到 dApp 的便利。 如果用户使用自己的社交账户(如 twitter、discord、谷歌账户等)连接到 dApp,您就可以从 `usePrivy` 中调用 `user`,这会返回一个包含用户 ID、电子邮件、钱包地址等关键信息的对象。 +Privy 為用戶提供了使用 web3 錢包和社交登錄連接到 dApp 的便利。 如果用戶使用自己的社交賬戶(如 twitter、discord、谷歌賬戶等)連接到 dApp,您就可以從 `usePrivy` 中調用 `user`,這會返回一個包含用戶 ID、電子郵件、錢包地址等關鍵信息的對象。 ```tsx const { user } = usePrivy(); @@ -181,9 +181,9 @@ return ( ); ``` -## 发送本地事务 +## 發送本地事務 -您可以执行本地事务,如将 KAIA 从一个用户发送到另一个用户。 +您可以執行本地事務,如將 KAIA 從一個用戶發送到另一個用戶。 ```tsx const [klayTransferTx, setKlayTransferTx] = useState(""); @@ -218,11 +218,11 @@ return ( ); ``` -## 使用智能合约 +## 使用智能合約 ### 1. 部署合同 -您可以根据智能合约的应用程序二进制接口(ABI)和合约字节码来部署智能合约。 +您可以根據智能合約的應用程序二進制接口(ABI)和合約字節碼來部署智能合約。 ```tsx // add to the existing useState hook. @@ -296,7 +296,7 @@ return ( ); ``` -### 2. 撰写合同 +### 2. 撰寫合同 ```tsx const [contractWriteTx, setContractTx] = useState(""); @@ -375,7 +375,7 @@ return ( ); ``` -### 3. 阅读合同 +### 3. 閱讀合同 ```tsx const [readContractMessage, setContractMessage] = useState(); @@ -449,4 +449,4 @@ return ( ## 下一步工作 -有关 Privy 的更深入指南,请参阅[Privy 文档](https://docs.privy.io/) 和[Privy Github 仓库](https://github.com/privy-io)。 此外,您还可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/wallet-libraries/privy-auth-sample) 上找到本指南的完整实现代码。 +有關 Privy 的更深入指南,請參閱[Privy 文檔](https://docs.privy.io/) 和[Privy Github 倉庫](https://github.com/privy-io)。 此外,您還可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/wallet-libraries/privy-auth-sample) 上找到本指南的完整實現代碼。 From 728f4d2b210c1c93ee0039e7e0f04d92d653b017 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:01 +0800 Subject: [PATCH 0054/2513] New translations wallet-libraries.md (Chinese Simplified) --- .../build/tools/wallets/wallet-libraries/wallet-libraries.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/wallet-libraries.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/wallet-libraries.md index 0c754bd0599a..0614c82ef2e6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/wallet-libraries.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/wallet-libraries.md @@ -1,6 +1,6 @@ -# 钱包图书馆 +# 錢包圖書館 -让我们看看如何将知名钱包库整合到 dApp 中。 +讓我們看看如何將知名錢包庫整合到 dApp 中。 ```mdx-code-block import DocCardList from '@theme/DocCardList'; From e1c070615524d05e705439077969fffc13872cdb Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:05 +0800 Subject: [PATCH 0055/2513] New translations web3modal.md (Chinese Simplified) --- .../wallets/wallet-libraries/web3Modal.md | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Modal.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Modal.md index 7d09678de175..f31fa6edd6fe 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Modal.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Modal.md @@ -2,37 +2,37 @@ sidebar_label: Web3Modal --- -# 将 Web3Modal 整合到 dApp 中 +# 將 Web3Modal 整合到 dApp 中 ![](/img/banners/kaia-web3Modal\(wc\).png) -## 导言 +## 導言 -[Web3Modal](https://docs.walletconnect.com/2.0/web3modal/about)是一个简单易用的库,可帮助开发人员通过简单、可定制的配置在其 dApp 中添加对多个提供商的支持。 它让连接钱包、执行交易和管理账户变得简单。 +[Web3Modal](https://docs.walletconnect.com/2.0/web3modal/about)是一個簡單易用的庫,可幫助開發人員通過簡單、可定製的配置在其 dApp 中添加對多個提供商的支持。 它讓連接錢包、執行交易和管理賬戶變得簡單。 -在本指南中,您将使用 web3Modal 库将 Kaia Wallet、Klip、Metamask、Coinbase Wallet 等多个钱包集成到您在 Kaia 网络上构建的 dApp 中。 +在本指南中,您將使用 web3Modal 庫將 Kaia Wallet、Klip、Metamask、Coinbase Wallet 等多個錢包集成到您在 Kaia 網絡上構建的 dApp 中。 -## 先决条件 +## 先決條件 -- 一个正在运行的 react 项目(执行 `npx create-react-app project-name` 命令) -- 安装必要的钱包([Kaia Wallet](https://www.kaiawallet.io/en_US/)、[Coinbase Wallet](https://www.coinbase.com/wallet/downloads) 和 [Metamask](https://metamask.io/download/))。 -- RPC 端点:您可以从支持的[端点提供者](../../../../references/public-en.md)中获取。 -- 从 [水龙头](https://faucet.kaia.io)测试 KAIA:为账户注入足够的 KAIA。 +- 一個正在運行的 react 項目(執行 `npx create-react-app project-name` 命令) +- 安裝必要的錢包([Kaia Wallet](https://www.kaiawallet.io/en_US/)、[Coinbase Wallet](https://www.coinbase.com/wallet/downloads) 和 [Metamask](https://metamask.io/download/))。 +- RPC 端點:您可以從支持的[端點提供者](../../../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 -## 设置 Web3Modal 和钱包提供程序选项 +## 設置 Web3Modal 和錢包提供程序選項 -**步骤 1**:安装 Web3Modal 和以太坊库 +**步驟 1**:安裝 Web3Modal 和以太坊庫 -安装 web3Modal 和您喜欢的与区块链交互的库。 在本教程中,我们将安装 [@klaytn/web3modal](https://github.com/klaytn/klaytn-web3modal),它源自 [Web3Modal](https://github.com/WalletConnect/web3modal),并经过修改添加了 Kaia 钱包和 Klip 钱包。 此外,本教程还将使用 ethers.js 与 Kaia 区块链进行交互。 +安裝 web3Modal 和您喜歡的與區塊鏈交互的庫。 在本教程中,我們將安裝 [@klaytn/web3modal](https://github.com/klaytn/klaytn-web3modal),它源自 [Web3Modal](https://github.com/WalletConnect/web3modal),並經過修改添加了 Kaia 錢包和 Klip 錢包。 此外,本教程還將使用 ethers.js 與 Kaia 區塊鏈進行交互。 ```bash npm install @klaytn/web3modal npm install --save ethers ``` -**第 2 步**:使用钱包提供商选项实例化 Web3Modal +**第 2 步**:使用錢包提供商選項實例化 Web3Modal -安装您选择的钱包提供商。 这里我们安装 Kaia Wallet、Klip 和 Coinbase 钱包提供商。 +安裝您選擇的錢包提供商。 這裡我們安裝 Kaia Wallet、Klip 和 Coinbase 錢包提供商。 ```bash npm install --save @coinbase/wallet-sdk @@ -40,7 +40,7 @@ npm install --save @klaytn/kaikas-web3-provider npm install --save @klaytn/klip-web3-provider ``` -在您的 `App.js` 文件中,导入 CoinbaseWalletSDK、KaikasWeb3Provider 和 KlipWeb3Provider,并实例化各种提供程序选项,以便与您的 dapp 集成。 +在您的 `App.js` 文件中,導入 CoinbaseWalletSDK、KaikasWeb3Provider 和 KlipWeb3Provider,並實例化各種提供程序選項,以便與您的 dapp 集成。 ```js import CoinbaseWalletSDK from '@coinbase/wallet-sdk'; @@ -86,9 +86,9 @@ const providerOptions = { }; ``` -**第 3 步**:实例化 web3modal +**第 3 步**:實例化 web3modal -然后,通过传递提供程序选项来实例化 Web3Modal。 +然後,通過傳遞提供程序選項來實例化 Web3Modal。 ```js import Web3Modal from "@klaytn/web3modal"; @@ -98,9 +98,9 @@ const web3Modal = new Web3Modal( { } ) ``` -## 建立钱包连接 +## 建立錢包連接 -要建立与用户钱包的连接,请调用 Web3Modal 实例上的 `connect()` 方法。 我们建议您将此操作封装在一个异步函数中,并将检索到的提供程序存储在您的状态中,以便在整个应用程序中重复使用。 +要建立與用戶錢包的連接,請調用 Web3Modal 實例上的 `connect()` 方法。 我們建議您將此操作封裝在一個異步函數中,並將檢索到的提供程序存儲在您的狀態中,以便在整個應用程序中重複使用。 ```js import { ethers } from 'ethers'; @@ -134,13 +134,13 @@ function App() { ![](/img/build/tools/web3Modal.png) -## 设置实用工具功能 +## 設置實用工具功能 -在本指南中,我们将使用 `truncateAddress()` 和 `toHex()` 等实用工具函数。 truncateAddress() "函数接收有效地址,并返回所传递地址的更易读格式。 而 `toHex()` 函数则将数字转换为十六进制。 以下步骤展示了如何在项目中设置和使用 utils 函数。 +在本指南中,我們將使用 `truncateAddress()` 和 `toHex()` 等實用工具函數。 truncateAddress() "函數接收有效地址,並返回所傳遞地址的更易讀格式。 而 `toHex()` 函數則將數字轉換為十六進制。 以下步驟展示瞭如何在項目中設置和使用 utils 函數。 -**步骤 1**:在 `src` 根文件夹中创建一个 `utils.js` 文件。 +**步驟 1**:在 `src` 根文件夾中創建一個 `utils.js` 文件。 -在新创建的 utils.js 文件中粘贴以下代码。 +在新創建的 utils.js 文件中粘貼以下代碼。 ```js export const truncateAddress = (address) => { @@ -158,15 +158,15 @@ export const truncateAddress = (address) => { }; ``` -**第 2**步在您的 `App.js` 文件中导入函数。 +**第 2**步在您的 `App.js` 文件中導入函數。 ```js import { truncateAddress, toHex } from "./utils"; ``` -## 访问连接、账户和网络信息 +## 訪問連接、賬戶和網絡信息 -目前,Web3Modal 没有为以太坊交互提供内置支持,例如检索连接的账户和网络数据。 请注意,要读取用户地址或连接的网络 ID,必须直接从以太坊库请求信息。 在本指南中,我们将使用 ethers.js 获取这些信息。 获取和存储这些数据的一种方法是将用户连接到您的 dapp。 +目前,Web3Modal 沒有為以太坊交互提供內置支持,例如檢索連接的賬戶和網絡數據。 請注意,要讀取用戶地址或連接的網絡 ID,必須直接從以太坊庫請求信息。 在本指南中,我們將使用 ethers.js 獲取這些信息。 獲取和存儲這些數據的一種方法是將用戶連接到您的 dapp。 ```js const [provider, setProvider] = useState(); @@ -202,9 +202,9 @@ return ( ); ``` -## 断开钱包连接 +## 斷開錢包連接 -使用 web3Modal 实例上的 "clearCachedProvider() "方法可以断开与钱包的连接。 此外,一个好的做法是刷新状态,清除之前存储的连接数据。 +使用 web3Modal 實例上的 "clearCachedProvider() "方法可以斷開與錢包的連接。 此外,一個好的做法是刷新狀態,清除之前存儲的連接數據。 ```js function App() { @@ -229,7 +229,7 @@ const refreshState = () => { } ``` -重要的是要记住,用户与 dApp 交互时,dApp 的状态会发生变化,因此最好的做法是订阅响应发布的事件。 创建带有这些事件订阅的 useEffect 钩子,以便对变化做出适当的响应。 +重要的是要記住,用戶與 dApp 交互時,dApp 的狀態會發生變化,因此最好的做法是訂閱響應發佈的事件。 創建帶有這些事件訂閱的 useEffect 鉤子,以便對變化做出適當的響應。 ```js useEffect(() => { @@ -261,9 +261,9 @@ const refreshState = () => { }, [provider]); ``` -## 切换网络或添加自定义网络 +## 切換網絡或添加自定義網絡 -如前所述,Web3Modal 没有内置的以太坊交互支持。 要添加或切换网络,您必须直接向以太坊库提出申请(通过 EIP-3085 或 EIP-3326)。 下面是一个请求切换网络的示例,如果用户钱包中还没有该网络,则将其添加为备用网络: +如前所述,Web3Modal 沒有內置的以太坊交互支持。 要添加或切換網絡,您必須直接向以太坊庫提出申請(通過 EIP-3085 或 EIP-3326)。 下面是一個請求切換網絡的示例,如果用戶錢包中還沒有該網絡,則將其添加為備用網絡: ```js const switchNetwork = async () => { @@ -302,9 +302,9 @@ return ( ) ``` -## 签署信息 +## 簽署信息 -初始化提供者和签名者对象后,用户就可以签署任意字符串。 +初始化提供者和簽名者對象後,用戶就可以簽署任意字符串。 ```js // add to the existing useState hook. @@ -336,9 +336,9 @@ const signMessage = async(e) => { ); ``` -## 发送本地事务 +## 發送本地事務 -您可以执行本地事务,如将 KAIA 从一个用户发送到另一个用户。 +您可以執行本地事務,如將 KAIA 從一個用戶發送到另一個用戶。 ```js // add to the existing useState hook. @@ -375,11 +375,11 @@ return ( ); ``` -## 使用智能合约 +## 使用智能合約 -有了 Web3Modal 提供者和签名者对象,您就可以进行合约交互,例如向部署到区块链上的智能合约写入或读取。 +有了 Web3Modal 提供者和簽名者對象,您就可以進行合約交互,例如向部署到區塊鏈上的智能合約寫入或讀取。 -### 1. 撰写合同 +### 1. 撰寫合同 ```js // add to existing useState hook @@ -464,7 +464,7 @@ return ( ) ``` -### 2. 阅读合同 +### 2. 閱讀合同 ```js // add to existing useState hook @@ -549,13 +549,13 @@ return ( Node fs error, add browser {fs: false} to package.json ``` -安装 Klip-web3-provider 时会出现这种情况。 要解决这个问题,请按照以下步骤操作: +安裝 Klip-web3-provider 時會出現這種情況。 要解決這個問題,請按照以下步驟操作: -\*\*第 1 步打开并导航至 node_modules 文件夹。 查找 @Kaia/klip-web3-provider 文件夹,并导航到其 package.json 文件,如下所示: +\*\*第 1 步打開並導航至 node_modules 文件夾。 查找 @Kaia/klip-web3-provider 文件夾,並導航到其 package.json 文件,如下所示: > **@klaytn/klip-web3-provider/node_modules/caver-js/packages/caver.ipfs/package.json** -**第 2 步**:将下面的代码粘贴到 @klaytn/klip-web3-provider/node_modules/caver-js/packages/caver.ipfs/package.json 文件中。 +**第 2 步**:將下面的代碼粘貼到 @klaytn/klip-web3-provider/node_modules/caver-js/packages/caver.ipfs/package.json 文件中。 ```js "browser": { @@ -569,8 +569,8 @@ Node fs error, add browser {fs: false} to package.json BREAKING CHANGES: webpack<5 used to include polyfills for node.js core modules by default. ``` -使用 webpack 版本 5 时会出现此错误。 在此版本中,默认情况下不再支持 NodeJS polyfills。 要解决这个问题,请参阅本 [指南](https://web3auth.io/docs/troubleshooting/webpack-issues)。 +使用 webpack 版本 5 時會出現此錯誤。 在此版本中,默認情況下不再支持 NodeJS polyfills。 要解決這個問題,請參閱本 [指南](https://web3auth.io/docs/troubleshooting/webpack-issues)。 ## 下一步 -有关 Web3Modal 的更多深入指南,请参阅 [Web3Modal 文档](https://docs.walletconnect.com/2.0/web3modal/about) 和 [Web3Modal Github 代码库](https://github.com/klaytn/klaytn-web3modal)。 此外,您还可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/wallet-libraries/web3Modal-sample) 上找到本指南的完整实现代码。 +有關 Web3Modal 的更多深入指南,請參閱 [Web3Modal 文檔](https://docs.walletconnect.com/2.0/web3modal/about) 和 [Web3Modal Github 代碼庫](https://github.com/klaytn/klaytn-web3modal)。 此外,您還可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/wallet-libraries/web3Modal-sample) 上找到本指南的完整實現代碼。 From 2cad78aa163163dd1c22b0df207b94266349242e Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:09 +0800 Subject: [PATCH 0056/2513] New translations web3onboard.md (Chinese Simplified) --- .../wallets/wallet-libraries/web3Onboard.md | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Onboard.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Onboard.md index e95a000c7499..2927cc17b0b9 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Onboard.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Onboard.md @@ -2,38 +2,38 @@ sidebar_label: Web3-Onboard --- -# 将 Web3-Onboard 集成到 dApp 中 +# 將 Web3-Onboard 集成到 dApp 中 ![](/img/banners/kaia-web3Onboard.png) -## 导言 +## 導言 -利用 [Web3-Onboard](https://onboard.blocknative.com/docs/overview/introduction) 这样的工具,项目和开发人员可以快速将多个钱包集成到他们的去中心化应用程序(dApps)中。 在 Web3-Onboard 的帮助下,用户入职变得更加简单。 Web3-Onboard 确实有不同的功能,从支持多种钱包到用户可以将账户连接到不同的链或网络并接收实时交易通知等等。 +利用 [Web3-Onboard](https://onboard.blocknative.com/docs/overview/introduction) 這樣的工具,項目和開發人員可以快速將多個錢包集成到他們的去中心化應用程序(dApps)中。 在 Web3-Onboard 的幫助下,用戶入職變得更加簡單。 Web3-Onboard 確實有不同的功能,從支持多種錢包到用戶可以將賬戶連接到不同的鏈或網絡並接收即時交易通知等等。 -在本指南中,您将使用 Web3-Onboard 库集成多个钱包(如 Coinbase Wallet、Metamask、WalletConnect 等)。 到您在 Kaia 网络上构建的 dApp 中。 +在本指南中,您將使用 Web3-Onboard 庫集成多個錢包(如 Coinbase Wallet、Metamask、WalletConnect 等)。 到您在 Kaia 網絡上構建的 dApp 中。 -## 先决条件 +## 先決條件 -- 一个正在运行的 react 项目(执行 `npx create-react-app project-name` 命令) -- 安装必要的钱包([Coinbase Wallet](https://www.coinbase.com/wallet/downloads)、[Metamask](https://metamask.io/download/))。 -- RPC 端点:您可以从支持的[端点提供者](../../../../references/public-en.md)中获取。 -- 从 [水龙头](https://faucet.kaia.io)测试 KAIA:为账户注入足够的 KAIA。 +- 一個正在運行的 react 項目(執行 `npx create-react-app project-name` 命令) +- 安裝必要的錢包([Coinbase Wallet](https://www.coinbase.com/wallet/downloads)、[Metamask](https://metamask.io/download/))。 +- RPC 端點:您可以從支持的[端點提供者](../../../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 -## 开始 +## 開始 -Web3-Onboard 作为与链无关的钱包库,支持所有与 EVM 兼容的网络,还能灵活地向库中添加新的网络。 在本指南中,我们将使用 Web3-Onboard 将 Kaia Mainnet 和 Kaia Testnet Kairos 添加到我们的 dApp 中。 说完这些,让我们开始使用 Web3-Onboard 将多钱包兼容性集成到您在 Kaia Network 上构建的 dApp 中。 +Web3-Onboard 作為與鏈無關的錢包庫,支持所有與 EVM 兼容的網絡,還能靈活地向庫中添加新的網絡。 在本指南中,我們將使用 Web3-Onboard 將 Kaia Mainnet 和 Kaia Testnet Kairos 添加到我們的 dApp 中。 說完這些,讓我們開始使用 Web3-Onboard 將多錢包兼容性集成到您在 Kaia Network 上構建的 dApp 中。 -## 设置板载模块和钱包模块 +## 設置板載模塊和錢包模塊 -**第 1 步**:安装 @web3-onboard/core +**第 1 步**:安裝 @web3-onboard/core ```bash npm i @web3-onboard/core ``` -**第 2 步**:导入和实例化钱包模块 +**第 2 步**:導入和實例化錢包模塊 -在这一步中,您可以使用钱包模块在您的 dApp 中添加尽可能多的钱包。 但在本指南中,您将在 web3-Onboard 实现中添加 Coinbase 钱包、WalletConnect、注入式钱包。 有关可使用 Web3-Onboard 添加到 dApp 的钱包模块列表,请参阅此 [docs](https://onboard.blocknative.com/docs/overview/introduction#wallet-modules) 。 +在這一步中,您可以使用錢包模塊在您的 dApp 中添加儘可能多的錢包。 但在本指南中,您將在 web3-Onboard 實現中添加 Coinbase 錢包、WalletConnect、注入式錢包。 有關可使用 Web3-Onboard 添加到 dApp 的錢包模塊列表,請參閱此 [docs](https://onboard.blocknative.com/docs/overview/introduction#wallet-modules) 。 ```bash npm install @web3-onboard/coinbase // Coinbase Wallet @@ -41,7 +41,7 @@ npm install @web3-onboard/walletconnect // WalletConnect npm install @web3-onboard/injected-wallets // Used to connect to Metamask ``` -在您的 `App.js` 文件中,实例化钱包模块,以便与您的 dApp 集成。 请注意,每个模块都有自己独特的选项参数,如备用 JSON RPC URL 或默认链 ID。 +在您的 `App.js` 文件中,實例化錢包模塊,以便與您的 dApp 集成。 請注意,每個模塊都有自己獨特的選項參數,如備用 JSON RPC URL 或默認鏈 ID。 ```js import coinbaseWalletModule from "@web3-onboard/coinbase"; @@ -55,23 +55,23 @@ const injected = injectedModule(); const modules = [coinbaseWalletSdk, walletConnect, injected]; ``` -**第 3 步**:安装和导入乙醚 +**第 3 步**:安裝和導入乙醚 -Web3-Onboard 提供程序可与 [ethers.js](https://docs.ethers.org/v6/) 和 [web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html) 等库一起使用。 在本指南中,我们将使用 ethers.js 进行 Kaia 区块链调用,如获取用户账户、获取余额、签署交易、发送交易、读取和写入智能合约。 +Web3-Onboard 提供程序可與 [ethers.js](https://docs.ethers.org/v6/) 和 [web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html) 等庫一起使用。 在本指南中,我們將使用 ethers.js 進行 Kaia 區塊鏈調用,如獲取用戶賬戶、獲取餘額、簽署交易、發送交易、讀取和寫入智能合約。 ```bash npm install --save ethers ``` -在您的 `App.js` 文件中,像这样导入 ethers 软件包: +在您的 `App.js` 文件中,像這樣導入 ethers 軟件包: ```js import { ethers } from "ethers"; ``` -**第 4 步**:导入和设置 Web3ReactProvider +**第 4 步**:導入和設置 Web3ReactProvider -在此步骤中,您将使用创建的模块和与库兼容的链列表实例化 Onboard。 打开您的 `App.js` 文件并粘贴下面的代码: +在此步驟中,您將使用創建的模塊和與庫兼容的鏈列表實例化 Onboard。 打開您的 `App.js` 文件並粘貼下面的代碼: ```js import Onboard from "@web3-onboard/core"; @@ -118,13 +118,13 @@ const onboard = Onboard({ }); ``` -## 设置实用工具功能 +## 設置實用工具功能 -在本指南中,我们将使用 `truncateAddress()` 和 `toHex()` 等实用工具函数。 truncateAddress() "函数接收有效地址,并返回所传递地址的更易读格式。 而 `toHex()` 函数则将数字转换为十六进制。 以下步骤展示了如何在项目中设置和使用 utils 函数。 +在本指南中,我們將使用 `truncateAddress()` 和 `toHex()` 等實用工具函數。 truncateAddress() "函數接收有效地址,並返回所傳遞地址的更易讀格式。 而 `toHex()` 函數則將數字轉換為十六進制。 以下步驟展示瞭如何在項目中設置和使用 utils 函數。 -**步骤 1**:在 `src` 根文件夹中创建一个 `utils.js` 文件。 +**步驟 1**:在 `src` 根文件夾中創建一個 `utils.js` 文件。 -在新创建的 utils.js 文件中粘贴以下代码。 +在新創建的 utils.js 文件中粘貼以下代碼。 ```js export const truncateAddress = (address) => { @@ -142,15 +142,15 @@ export const truncateAddress = (address) => { }; ``` -**第 2**步在您的 `App.js` 文件中导入函数。 +**第 2**步在您的 `App.js` 文件中導入函數。 ```js import { truncateAddress, toHex } from "./utils"; ``` -## 连接钱包 +## 連接錢包 -在 `App.js` 文件的 App 函数中,调用板载实例上的 `connectWallet()` 方法来启动板载弹出式模块。 +在 `App.js` 文件的 App 函數中,調用板載實例上的 `connectWallet()` 方法來啟動板載彈出式模塊。 ```js function App() { @@ -170,13 +170,13 @@ function App() { } ``` -点击 "连接钱包 "按钮后,您将看到一个模态,允许您无缝连接 Coinbase 钱包和 dApp 中的其他实例化钱包。 +點擊 "連接錢包 "按鈕後,您將看到一個模態,允許您無縫連接 Coinbase 錢包和 dApp 中的其他實例化錢包。 ![](/img/build/tools/web3-Onboard.png) -## 断开钱包连接 +## 斷開錢包連接 -断开连接的钱包可以通过调用板载实例上的 `disconnectWallet()` 方法和用户主钱包的标签来实现。 此外,一个好的做法是刷新状态,清除之前存储的连接数据。 +斷開連接的錢包可以通過調用板載實例上的 `disconnectWallet()` 方法和用戶主錢包的標籤來實現。 此外,一個好的做法是刷新狀態,清除之前存儲的連接數據。 ```js function App() { @@ -211,17 +211,17 @@ function App() { } ``` -## 访问连接、账户和网络信息 +## 訪問連接、賬戶和網絡信息 -成功连接钱包后,您可以使用 [onboard.state.get()](https://onboard.blocknative.com/docs/modules/core#get-current-state) 方法获取通过 onboard 实例存储的连接状态。 您也可以在初始连接时获取状态。 现在,你可以修改 connectWallet() 方法,返回一个钱包状态列表,将其存储在你的状态中,并在整个应用程序中使用。 +成功連接錢包後,您可以使用 [onboard.state.get()](https://onboard.blocknative.com/docs/modules/core#get-current-state) 方法獲取通過 onboard 實例存儲的連接狀態。 您也可以在初始連接時獲取狀態。 現在,你可以修改 connectWallet() 方法,返回一個錢包狀態列表,將其存儲在你的狀態中,並在整個應用程序中使用。 -**第 1 步**:导入 React 的 useState +**第 1 步**:導入 React 的 useState ```js import { useState } from 'react'; ``` -**第 2 步**:修改应用程序功能中的代码 +**第 2 步**:修改應用程序功能中的代碼 ```js function App() { @@ -259,9 +259,9 @@ function App() { } ``` -## 交换网络 +## 交換網絡 -为了提示用户在 dApp 中切换网络,Web3-Onboard 在 Onboard 的初始化实例上提供了一个 `setChain` 方法。 请注意,在应用程序启动时,目标网络必须已通过板载实例初始化。 +為了提示用戶在 dApp 中切換網絡,Web3-Onboard 在 Onboard 的初始化實例上提供了一個 `setChain` 方法。 請注意,在應用程序啟動時,目標網絡必須已通過板載實例初始化。 ```js const switchNetwork = async () => { @@ -275,9 +275,9 @@ return ( ) ``` -## 发送本地事务 +## 發送本地事務 -成功连接到钱包后,可以将钱包连接返回的提供程序对象存储到状态变量中,就像在 connectWallet() 函数中所做的那样。 因此,您可以使用该提供者和签名者对象向区块链发送交易。 +成功連接到錢包後,可以將錢包連接返回的提供程序對象存儲到狀態變量中,就像在 connectWallet() 函數中所做的那樣。 因此,您可以使用該提供者和簽名者對象向區塊鏈發送交易。 ```js // add to the existing useState hook. @@ -320,9 +320,9 @@ return ( ``` -## 与智能合约互动 +## 與智能合約互動 -有了 Web3-Onboard 提供者和签名者对象,您就可以进行合约交互,例如写入和读取部署在区块链上的智能合约。 +有了 Web3-Onboard 提供者和簽名者對象,您就可以進行合約交互,例如寫入和讀取部署在區塊鏈上的智能合約。 ```js // add to existing useState hook @@ -489,8 +489,8 @@ return ( BREAKING CHANGES: webpack<5 used to include polyfills for node.js core modules by default. ``` -使用 webpack 版本 5 时会出现此错误。 在此版本中,默认情况下不再支持 NodeJS polyfills。 要解决这个问题,请参阅本 [指南](https://web3auth.io/docs/troubleshooting/webpack-issues)。 +使用 webpack 版本 5 時會出現此錯誤。 在此版本中,默認情況下不再支持 NodeJS polyfills。 要解決這個問題,請參閱本 [指南](https://web3auth.io/docs/troubleshooting/webpack-issues)。 ## 下一步 -有关 Web3-Onboard 的更多深入指南,请参阅 [Blocknative 文档](https://docs.blocknative.com/onboard) 和 [Blocknative Github 存储库](https://github.com/blocknative/onboard)。 此外,您还可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/wallet-libraries/web3Onboard-sample) 上找到本指南的完整实现代码。 +有關 Web3-Onboard 的更多深入指南,請參閱 [Blocknative 文檔](https://docs.blocknative.com/onboard) 和 [Blocknative Github 存儲庫](https://github.com/blocknative/onboard)。 此外,您還可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/wallet-libraries/web3Onboard-sample) 上找到本指南的完整實現代碼。 From c96b213cbeff8866af6665648c7d0a55e15e0993 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:13 +0800 Subject: [PATCH 0057/2513] New translations wallets.md (Chinese Simplified) --- .../current/build/tools/wallets/wallets.md | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallets.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallets.md index 790b3d5f4bd6..97fbe5900bf5 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallets.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallets.md @@ -1,34 +1,34 @@ -# 钱包 +# 錢包 -Kaia 上的钱包允许访问由私钥控制的账户,从而方便私钥管理、签署加密交易,还提供了访问(即发送和接收)数字资产的接口。 本节提供受 Kaia 支持的钱包列表。 让我们开始吧! +Kaia 上的錢包允許訪問由私鑰控制的賬戶,從而方便私鑰管理、簽署加密交易,還提供了訪問(即發送和接收)數字資產的接口。 本節提供受 Kaia 支持的錢包列表。 讓我們開始吧! -> **注意**:以下提供的钱包是与 Kaia 集成的第三方钱包,因此建议用户在使用前进行尽职调查。 +> **注意**:以下提供的錢包是與 Kaia 集成的第三方錢包,因此建議用戶在使用前進行盡職調查。 -| 钱包 | 监护 | 账户类型 | 平台 | 多重签名 | 浏览器扩展 | NFT | 桥梁支持 | +| 錢包 | 監護 | 賬戶類型 | 平臺 | 多重簽名 | 瀏覽器擴展 | NFT | 橋樑支持 | | -------------------------------------------------- | ---- | ---- | ------------------ | ---- | ----- | --- | ---- | -| [1inch](https://1inch.io/wallet/) | 非监护 | EOA | 移动电话 | 没有 | 是 | 支持 | 没有 | -| [ABC Wallet](https://myabcwallet.io/en/) | 非监护 | EOA | 移动, 浏览器 | 没有 | 没有 | 支持 | 是 | -| [Alpha Wallet](https://alphawallet.com/) | 非监护 | EOA | Broswer、移动、API-SDK | 没有 | 没有 | 支持 | 是 | -| [Bit2Me](https://bit2me.com/suite/wallet-klaytn) | 非监护 | EOA | 移动、网络应用 | 没有 | 没有 | 没有 | 没有 | -| [BitKeep](https://bitkeep.com/) | 非监护 | EOA | 浏览器、手机、桌面 | 没有 | 是 | 支持 | 是 | -| [Biport](https://biport.io/#/) | 非监护 | EOA | 移动电话 | 没有 | 没有 | 支持 | 没有 | -| [Burrito Wallet](https://www.burritowallet.com/en) | 非监护 | EOA | 浏览器、手机 | 没有 | 是 | 支持 | 是 | -| [Coin98](https://coin98.com/) | 非监护 | EOA | 浏览器、手机、网络应用程序 | 没有 | 是 | 支持 | 是 | -| [D'cent](https://dcentwallet.com/) | 混合动力 | EOA | 移动电话 | 没有 | 没有 | 支持 | 是 | -| [DeFi Wallet](https://crypto.com/defi-wallet) | 非监护 | EOA | 移动、桌面 | 没有 | 没有 | 支持 | 是 | -| [DeKeys](https://www.atomrigs.io/) | 非监护 | EOA | 浏览器 | 没有 | 是 | 支持 | 没有 | -| [Favorlet](https://favorlet.io/) | 非监护 | EOA | 移动电话 | 没有 | 没有 | 支持 | 没有 | -| [Huobi Wallet](https://www.itoken.com/en) | 非监护 | EOA | 移动电话 | 没有 | 没有 | 支持 | 没有 | -| [Kaia Wallet](https://www.kaiawallet.io/en_US/) | 非监护 | EOA | 移动, 浏览器 | 没有 | 是 | 支持 | 没有 | -| [Kaia Safe](https://safe.kaia.io/) | 非监护 | 智能合约 | 网络应用程序 | 是 | 没有 | 支持 | 没有 | -| [Klip Wallet](https://klipwallet.com/) | 非监护 | EOA | 移动电话 | 没有 | 没有 | 支持 | 没有 | -| [Krystal DeFi](https://krystal.app/) | 非监护 | EOA | 移动、网络应用 | 没有 | 没有 | 支持 | 是 | -| [Math Wallet](https://mathwallet.org/en-us/) | 保管员 | EOA | 手机、网络应用程序、浏览器 | 没有 | 是 | 支持 | 是 | -| [MetaMask](https://metamask.io/) | 非监护 | EOA | 移动, 浏览器 | 没有 | 是 | 支持 | 没有 | -| [Midas Protocol](https://midasprotocol.io/) | 非监护 | EOA | 移动电话 | 没有 | 没有 | 支持 | 是 | -| [NOW Wallet](https://walletnow.app/) | 非监护 | EOA | 移动、桌面 | 没有 | 没有 | 支持 | 没有 | -| [OKX Wallet](https://www.okx.com/web3) | 非监护 | EOA | 移动, 浏览器 | 没有 | 是 | 支持 | 是 | -| [Rabby Wallet](https://rabby.io/) | 非监护 | EOA | 浏览器、桌面 | 没有 | 是 | 支持 | 没有 | -| [Token Pocket](https://www.tokenpocket.pro/en) | 非监护 | EOA | 移动、浏览器、API-SDK | 没有 | 是 | 支持 | 是 | -| [TrustKeys](https://trustkeys.network/) | 非监护 | EOA | 移动电话 | 没有 | 没有 | 支持 | 没有 | -| [Welldone Wallet](https://welldonestudio.io/) | 非监护 | EOA | 浏览器 | 没有 | 是 | 没有 | 是 | +| [1inch](https://1inch.io/wallet/) | 非監護 | EOA | 移動電話 | 沒有 | 是 | 支持 | 沒有 | +| [ABC Wallet](https://myabcwallet.io/en/) | 非監護 | EOA | 移動, 瀏覽器 | 沒有 | 沒有 | 支持 | 是 | +| [Alpha Wallet](https://alphawallet.com/) | 非監護 | EOA | Broswer、移動、API-SDK | 沒有 | 沒有 | 支持 | 是 | +| [Bit2Me](https://bit2me.com/suite/wallet-klaytn) | 非監護 | EOA | 移動、網絡應用 | 沒有 | 沒有 | 沒有 | 沒有 | +| [BitKeep](https://bitkeep.com/) | 非監護 | EOA | 瀏覽器、手機、桌面 | 沒有 | 是 | 支持 | 是 | +| [Biport](https://biport.io/#/) | 非監護 | EOA | 移動電話 | 沒有 | 沒有 | 支持 | 沒有 | +| [Burrito Wallet](https://www.burritowallet.com/en) | 非監護 | EOA | 瀏覽器、手機 | 沒有 | 是 | 支持 | 是 | +| [Coin98](https://coin98.com/) | 非監護 | EOA | 瀏覽器、手機、網絡應用程序 | 沒有 | 是 | 支持 | 是 | +| [D'cent](https://dcentwallet.com/) | 混合動力 | EOA | 移動電話 | 沒有 | 沒有 | 支持 | 是 | +| [DeFi Wallet](https://crypto.com/defi-wallet) | 非監護 | EOA | 移動、桌面 | 沒有 | 沒有 | 支持 | 是 | +| [DeKeys](https://www.atomrigs.io/) | 非監護 | EOA | 瀏覽器 | 沒有 | 是 | 支持 | 沒有 | +| [Favorlet](https://favorlet.io/) | 非監護 | EOA | 移動電話 | 沒有 | 沒有 | 支持 | 沒有 | +| [Huobi Wallet](https://www.itoken.com/en) | 非監護 | EOA | 移動電話 | 沒有 | 沒有 | 支持 | 沒有 | +| [Kaia Wallet](https://www.kaiawallet.io/en_US/) | 非監護 | EOA | 移動, 瀏覽器 | 沒有 | 是 | 支持 | 沒有 | +| [Kaia Safe](https://safe.kaia.io/) | 非監護 | 智能合約 | 網絡應用程序 | 是 | 沒有 | 支持 | 沒有 | +| [Klip Wallet](https://klipwallet.com/) | 非監護 | EOA | 移動電話 | 沒有 | 沒有 | 支持 | 沒有 | +| [Krystal DeFi](https://krystal.app/) | 非監護 | EOA | 移動、網絡應用 | 沒有 | 沒有 | 支持 | 是 | +| [Math Wallet](https://mathwallet.org/en-us/) | 保管員 | EOA | 手機、網絡應用程序、瀏覽器 | 沒有 | 是 | 支持 | 是 | +| [MetaMask](https://metamask.io/) | 非監護 | EOA | 移動, 瀏覽器 | 沒有 | 是 | 支持 | 沒有 | +| [Midas Protocol](https://midasprotocol.io/) | 非監護 | EOA | 移動電話 | 沒有 | 沒有 | 支持 | 是 | +| [NOW Wallet](https://walletnow.app/) | 非監護 | EOA | 移動、桌面 | 沒有 | 沒有 | 支持 | 沒有 | +| [OKX Wallet](https://www.okx.com/web3) | 非監護 | EOA | 移動, 瀏覽器 | 沒有 | 是 | 支持 | 是 | +| [Rabby Wallet](https://rabby.io/) | 非監護 | EOA | 瀏覽器、桌面 | 沒有 | 是 | 支持 | 沒有 | +| [Token Pocket](https://www.tokenpocket.pro/en) | 非監護 | EOA | 移動、瀏覽器、API-SDK | 沒有 | 是 | 支持 | 是 | +| [TrustKeys](https://trustkeys.network/) | 非監護 | EOA | 移動電話 | 沒有 | 沒有 | 支持 | 沒有 | +| [Welldone Wallet](https://welldonestudio.io/) | 非監護 | EOA | 瀏覽器 | 沒有 | 是 | 沒有 | 是 | From c775f56642e80d88a115cbb0a437fc3dcd07b547 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:18 +0800 Subject: [PATCH 0058/2513] New translations buy-me-a-coffee.md (Chinese Simplified) --- .../build/tutorials/buy-me-a-coffee.md | 328 +++++++++--------- 1 file changed, 164 insertions(+), 164 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/buy-me-a-coffee.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/buy-me-a-coffee.md index f13eb38d1f9e..a283a4334ee1 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/buy-me-a-coffee.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/buy-me-a-coffee.md @@ -1,83 +1,83 @@ -# 构建 "我买咖啡 "应用程序 +# 構建 "我買咖啡 "應用程序 -## 目录 +## 目錄 -- [1. 项目设置](#1-project-setup) -- [2. 创建 "请我喝咖啡 "智能合约](#2-creating-a-buy-me-a-coffee-smart-contract) -- [3. 使用脚本测试合同功能](#3-testing-the-contracts-functionalities-using-scripts) -- [4. 将 BMC 智能合约部署到 Kaia Testnet ](#4-deploying-bmc-smart-contract) -- [5. 使用 React 和 Web3Onboard 构建 BMC 前端](#5-building-the-bmc-frontend-with-react-and-web3onboard) -- [6. 使用 Fleek 在 IPFS 上部署前端代码](#6-deploying-frontend-code-on-ipfs-using-fleek) -- [7. 结论](#7-conclusion) +- [1. 項目設置](#1-project-setup) +- [2. 創建 "請我喝咖啡 "智能合約](#2-creating-a-buy-me-a-coffee-smart-contract) +- [3. 使用腳本測試合同功能](#3-testing-the-contracts-functionalities-using-scripts) +- [4. 將 BMC 智能合約部署到 Kaia Testnet ](#4-deploying-bmc-smart-contract) +- [5. 使用 React 和 Web3Onboard 構建 BMC 前端](#5-building-the-bmc-frontend-with-react-and-web3onboard) +- [6. 使用 Fleek 在 IPFS 上部署前端代碼](#6-deploying-frontend-code-on-ipfs-using-fleek) +- [7. 結論](#7-conclusion) -## 导言 +## 導言 -Buy Me a Coffee (BMC) 是一个创作者从粉丝或观众那里获得资金支持和捐赠的平台。 这些创作者可以是作家、艺术家、音乐家、视频创作者等。在这个平台的帮助下,粉丝可以在创作者的成功故事中扮演重要角色,受众可以对创作者完成的工作表示赞赏,创作者也可以将自己的作品货币化。 +Buy Me a Coffee (BMC) 是一個創作者從粉絲或觀眾那裡獲得資金支持和捐贈的平臺。 這些創作者可以是作家、藝術家、音樂家、視頻創作者等。在這個平臺的幫助下,粉絲可以在創作者的成功故事中扮演重要角色,受眾可以對創作者完成的工作表示讚賞,創作者也可以將自己的作品貨幣化。 -从高层次上讲,Buy-me-a-Coffee 简化了创作者接受付款的流程,增强了创作者与受众之间的互动。 这些都是 BMC 平台上令人兴奋的功能。 好的一面是,想象一下区块链上的这个平台。 现在,创作者将获得更多好处,例如 +從高層次上講,Buy-me-a-Coffee 簡化了創作者接受付款的流程,增強了創作者與受眾之間的互動。 這些都是 BMC 平臺上令人興奮的功能。 好的一面是,想象一下區塊鏈上的這個平臺。 現在,創作者將獲得更多好處,例如 -- 完全付费,而传统的 BMC 则对创作者获得的任何支持收取 5%的费用。 -- 透明度高,因为所有交易都记录在区块链上。 -- 无需任何中间环节,直接从粉丝那里获得支持费。 -- 去中心化,即没有中央机构控制平台。 +- 完全付費,而傳統的 BMC 則對創作者獲得的任何支持收取 5%的費用。 +- 透明度高,因為所有交易都記錄在區塊鏈上。 +- 無需任何中間環節,直接從粉絲那裡獲得支持費。 +- 去中心化,即沒有中央機構控制平臺。 -在本教程中 您将构建一个去中心化版本的 Buy Me a Coffee (BMC) 平台(前端 + 智能合约)。 该平台将是传统 BMC 平台的最小化实现,支持者可以在该平台上向您支付小费,而您则可以作为合约的所有者,提取交付给 BMC 智能合约的任何小费。 支持者可以通过该网站在咖啡交易中一起发送测试 KAIA 和可爱的信息。 +在本教程中 您將構建一個去中心化版本的 Buy Me a Coffee (BMC) 平臺(前端 + 智能合約)。 該平臺將是傳統 BMC 平臺的最小化實現,支持者可以在該平臺上向您支付小費,而您則可以作為合約的所有者,提取交付給 BMC 智能合約的任何小費。 支持者可以通過該網站在咖啡交易中一起發送測試 KAIA 和可愛的信息。 -本指南结束时,您将使用以下方法创建此 dApp: +本指南結束時,您將使用以下方法創建此 dApp: -- Solidity:编写 BMC 智能合约 -- NextJs 和 Tailwind:为我们的 BMC dApp 构建前端网站 -- Web3Onboard:实现与 Kaia Testnet Kairos 的多钱包连接。 -- Fleek:有了 Fleek,我们就能在 IPFS 上托管 BMC dApp。 +- Solidity:編寫 BMC 智能合約 +- NextJs 和 Tailwind:為我們的 BMC dApp 構建前端網站 +- Web3Onboard:實現與 Kaia Testnet Kairos 的多錢包連接。 +- Fleek:有了 Fleek,我們就能在 IPFS 上託管 BMC dApp。 -## 先决条件 +## 先決條件 要完成本教程,您需要 - [Node.js](https://nodejs.org/en/download/package-manager) -- 熟悉 Javascript 和 React 基础知识,如钩子等 -- 安装必要的钱包,如 [Coinbase Wallet](https://www.coinbase.com/wallet/downloads) 和 [Metamask Wallet](https://metamask.io/download/) -- 从 [水龙头](https://faucet.kaia.io) 测试 KAIA。 -- RPC 端点:您可以从支持的[端点提供程序](../../references/public-en.md)中获取。 -- 在 [Fleek](https://app.fleek.co/) 上创建账户。 +- 熟悉 Javascript 和 React 基礎知識,如鉤子等 +- 安裝必要的錢包,如 [Coinbase Wallet](https://www.coinbase.com/wallet/downloads) 和 [Metamask Wallet](https://metamask.io/download/) +- 從 [水龍頭](https://faucet.kaia.io) 測試 KAIA。 +- RPC 端點:您可以從支持的[端點提供程序](../../references/public-en.md)中獲取。 +- 在 [Fleek](https://app.fleek.co/) 上創建賬戶。 -## 1. 项目设置 +## 1. 項目設置 -在本节中,我们将初始化项目文件夹。 该文件夹将包含两个单独的文件夹: +在本節中,我們將初始化項目文件夾。 該文件夾將包含兩個單獨的文件夾: -1. frontend 文件夹--其中包含我们 dApp 前端实现的代码 -2. smart-contract 文件夹--其中包含 BMC dApp 的智能合约代码。 +1. frontend 文件夾--其中包含我們 dApp 前端實現的代碼 +2. smart-contract 文件夾--其中包含 BMC dApp 的智能合約代碼。 -要创建项目文件夹,请在终端中粘贴以下代码 +要創建項目文件夾,請在終端中粘貼以下代碼 ```bash mkdir BuyMeACoffee cd BuyMeACoffee ``` -### 1.1. 前台文件夹 +### 1.1. 前臺文件夾 -该文件夹包含用于构建项目前端网站的工具。 在本指南中,我们将使用 Next 的 [create-next-app](https://nextjs.org/docs/api-reference/create-next-app) 工具来引导我们的 Next.js 和 Tailwind CSS 项目。 请按照以下步骤安装必要的依赖项,并创建前台文件夹: +該文件夾包含用於構建項目前端網站的工具。 在本指南中,我們將使用 Next 的 [create-next-app](https://nextjs.org/docs/api-reference/create-next-app) 工具來引導我們的 Next.js 和 Tailwind CSS 項目。 請按照以下步驟安裝必要的依賴項,並創建前臺文件夾: -#### 步骤 1 - 创建前台文件夹 +#### 步驟 1 - 創建前臺文件夾 -将下面的代码粘贴到 BuyMeACoffee 文件夹中,使用 create-next-app 工具创建前端文件夹: +將下面的代碼粘貼到 BuyMeACoffee 文件夾中,使用 create-next-app 工具創建前端文件夾: ```bash npx create-next-app frontend cd frontend ``` -#### 步骤 2 - 下载 Tailwind 依赖项并设置其配置 +#### 步驟 2 - 下載 Tailwind 依賴項並設置其配置 ```bash npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p ``` -#### 步骤 3 - 修改 `tailwind.config.js` +#### 步驟 3 - 修改 `tailwind.config.js` -导航至 `tailwind.config.js` 文件,并替换为以下代码: +導航至 `tailwind.config.js` 文件,並替換為以下代碼: ```js module.exports = { @@ -92,9 +92,9 @@ module.exports = { } ``` -#### 步骤 4 - 替换 styles/global.css 中的代码 +#### 步驟 4 - 替換 styles/global.css 中的代碼 -导航至 styles/global.css 文件,并用下面的代码替换: +導航至 styles/global.css 文件,並用下面的代碼替換: ```css @tailwind base; @@ -102,15 +102,15 @@ module.exports = { @tailwind utilities; ``` -我们已经成功建立了前端项目文件夹。 稍后将讨论更多内容。 下一步是设置智能合约文件夹。 +我們已經成功建立了前端項目文件夾。 稍後將討論更多內容。 下一步是設置智能合約文件夾。 -### 1.2. 智能合约文件夹 +### 1.2. 智能合約文件夾 -该文件夹包含 BuyMeACoffee 功能的智能合约。 请按照以下步骤安装必要的依赖项,并创建我们的智能合约文件夹: +該文件夾包含 BuyMeACoffee 功能的智能合約。 請按照以下步驟安裝必要的依賴項,並創建我們的智能合約文件夾: -#### 步骤 1 - 创建智能合约文件夹 +#### 步驟 1 - 創建智能合約文件夾 -要创建该文件夹,请导航至项目目录:BuyMeACoffee 并运行以下命令创建智能合约文件夹: +要創建該文件夾,請導航至項目目錄:BuyMeACoffee 並運行以下命令創建智能合約文件夾: ```bash cd .. @@ -118,15 +118,15 @@ mkdir smart-contract cd smart-contract ``` -#### 步骤 2 - 生成硬礼帽项目模板 +#### 步驟 2 - 生成硬禮帽項目模板 -该模板适用于编写、测试和部署智能合约。 首先,在终端运行下面的代码,启动一个新的 npm 项目: +該模板適用於編寫、測試和部署智能合約。 首先,在終端運行下面的代碼,啟動一個新的 npm 項目: ```bash npm init -y ``` -这将为您创建一个 package.json 文件,看起来像这样: +這將為您創建一個 package.json 文件,看起來像這樣: ```json { @@ -143,7 +143,7 @@ npm init -y } ``` -然后,安装 hardhat 和其他依赖项,如 hardhat-toolbox 和 dotenv。 为此,请用下面的代码替换 package.json 文件: +然後,安裝 hardhat 和其他依賴項,如 hardhat-toolbox 和 dotenv。 為此,請用下面的代碼替換 package.json 文件: ```json { @@ -158,45 +158,45 @@ npm init -y } ``` -最后,在终端中运行 `npm install`。 +最後,在終端中運行 `npm install`。 -成功安装所有依赖项(hardhat、hardhat-toolbox、dotenv)后,您可以通过以下方式确认 hardhat 的安装: +成功安裝所有依賴項(hardhat、hardhat-toolbox、dotenv)後,您可以通過以下方式確認 hardhat 的安裝: -a. 检查当前版本: +a. 檢查當前版本: ```bash npx hardhat --version ``` -控制台应打印出当前安装的版本,在我们的例子中是 **2.14.0.** +控制檯應打印出當前安裝的版本,在我們的例子中是 **2.14.0.** -b. 查看项目目录 当前目录应包括 +b. 查看項目目錄 當前目錄應包括 -- **contracts/** - 这是包含智能合约的文件夹。 -- **scripts/** - 此文件夹包含在区块链网络上部署合约的代码 -- **test/** - 该文件夹包含测试智能合约的所有单元测试 -- **hardhat.config.ts** - 该文件包含对 Hardhat 工作非常重要的配置, - 智能合约的部署。 +- **contracts/** - 這是包含智能合約的文件夾。 +- **scripts/** - 此文件夾包含在區塊鏈網絡上部署合約的代碼 +- **test/** - 該文件夾包含測試智能合約的所有單元測試 +- **hardhat.config.ts** - 該文件包含對 Hardhat 工作非常重要的配置, + 智能合約的部署。 -## 2. 创建 "请我喝咖啡 "智能合约 +## 2. 創建 "請我喝咖啡 "智能合約 -在本节中,我们将创建容纳 BMC 功能的智能合约。 要开始操作,请导航至您的**合同**文件夹,创建一个名为 "BuyMeACoffee.sol "的新文件,并粘贴以下代码: +在本節中,我們將創建容納 BMC 功能的智能合約。 要開始操作,請導航至您的**合同**文件夾,創建一個名為 "BuyMeACoffee.sol "的新文件,並粘貼以下代碼: ```solidity // SPDX-License-Identifier:UNLICENSED pragma solidity ^0.8.9; contract BuyMeACoffee { - // 当发送带提示信息时要发出的事件 + // 當發送帶提示信息時要發出的事件 event NewCoffee(address indexed _sender, string name, string _message, uint256 _timestamp); // 合同部署者的地址 address payable owner; constructor() { - // 将部署者存储为所有者 + // 將部署者存儲為所有者 owner = payable(msg.sender); } - // BuyMeACoffe Tx 的结构 + // BuyMeACoffe Tx 的結構 struct BuyCoffee { address sender; string name; @@ -232,7 +232,7 @@ contract BuyMeACoffee { require(owner.send(address(this).balance) ); } - // 获取所有咖啡 + // 獲取所有咖啡 function getAllCoffee(uint _id) public view returns(BuyCoffee[] memory c){ require(_id <= coffeeId, "Non-existent id"); c = new BuyCoffee[](_id); @@ -243,27 +243,27 @@ contract BuyMeACoffee { } ``` -让我们快速了解一下每行代码的作用: +讓我們快速瞭解一下每行代碼的作用: -当执行 buyCoffee 函数时,**NewCoffee** 事件就会发生。 它会记录下发件人地址、发件人姓名、发送的信息和时间戳。 +當執行 buyCoffee 函數時,**NewCoffee** 事件就會發生。 它會記錄下發件人地址、發件人姓名、發送的信息和時間戳。 -接下来是 **owner** 变量,它代表合同部署者。 然后,我们在构造函数中将 **msg.sender** 设置为合约的所有者。 +接下來是 **owner** 變量,它代表合同部署者。 然後,我們在構造函數中將 **msg.sender** 設置為合約的所有者。 -创建 **coffeeId** 是为了跟踪所创建的咖啡交易。 +創建 **coffeeId** 是為了跟蹤所創建的咖啡交易。 -随后,我们声明了一个**buyMeACoffee 结构**,其中存储了与咖啡交易相关的所有数据:地址发送者、字符串名称、uint 时间戳、字符串消息。 然后,我们使用 **idToBuyCoffee** 变量将此结构映射为一个 id。 +隨後,我們聲明瞭一個**buyMeACoffee 結構**,其中存儲了與咖啡交易相關的所有數據:地址發送者、字符串名稱、uint 時間戳、字符串消息。 然後,我們使用 **idToBuyCoffee** 變量將此結構映射為一個 id。 -buyCoffee 功能是 BMC 智能合约的核心实现。 这是一个应付款函数,需要两个参数,即发件人的姓名和地址。 它检查发送的 KAIA 金额是否大于零。 接下来,它会增加 coffeeId,然后将咖啡 tx 或信息添加到区块链中。 最后,它会发出一个 NewCoffee 事件,其中包含咖啡 tx 的详细信息。 +buyCoffee 功能是 BMC 智能合約的核心實現。 這是一個應付款函數,需要兩個參數,即發件人的姓名和地址。 它檢查發送的 KAIA 金額是否大於零。 接下來,它會增加 coffeeId,然後將咖啡 tx 或信息添加到區塊鏈中。 最後,它會發出一個 NewCoffee 事件,其中包含咖啡 tx 的詳細信息。 -我们创建了一个 \*\*withdraw()\*\*函数,用于向所有者提取合同的总余额(`address(this).balance`)。 +我們創建了一個 \*\*withdraw()\*\*函數,用於向所有者提取合同的總餘額(`address(this).balance`)。 -最后,创建了一个 **getAllCoffee()** 函数。 它将返回所有加班创建的咖啡交易。 +最後,創建了一個 **getAllCoffee()** 函數。 它將返回所有加班創建的咖啡交易。 -现在我们已经完成了 BMC 智能合约的编写,下一步就是测试智能合约的功能,在 **Kaia Testnet Kairos** 上部署智能合约并与之交互。 +現在我們已經完成了 BMC 智能合約的編寫,下一步就是測試智能合約的功能,在 **Kaia Testnet Kairos** 上部署智能合約並與之交互。 -## 3. 使用脚本测试合同功能 +## 3. 使用腳本測試合同功能 -在本节中,我们将编写脚本来测试智能合约的功能。 要开始使用,请导航至脚本文件夹,新建一个名为 `bmc-sample.js` 的文件,并在其中粘贴以下代码: +在本節中,我們將編寫腳本來測試智能合約的功能。 要開始使用,請導航至腳本文件夾,新建一個名為 `bmc-sample.js` 的文件,並在其中粘貼以下代碼: ```js const hre = require("hardhat"); @@ -333,27 +333,27 @@ main().catch((error) => { }); ``` -像往常一样,让我们来看看每行代码的作用: +像往常一樣,讓我們來看看每行代碼的作用: -您会注意到,在代码顶端有一些辅助函数,用于获取单个地址和多个地址的余额。 代码中还有一个主函数,其中包含测试智能合约的功能。 +您會注意到,在代碼頂端有一些輔助函數,用於獲取單個地址和多個地址的餘額。 代碼中還有一個主函數,其中包含測試智能合約的功能。 -让我们来看看 **main()** 函数中的代码。 +讓我們來看看 **main()** 函數中的代碼。 -首先,我们通过调用`await hre.ethers.getSigners()` 来设置账户列表(所有者、小费 1、小费 2、小费 3),以便进行测试。 +首先,我們通過調用`await hre.ethers.getSigners()` 來設置賬戶列表(所有者、小費 1、小費 2、小費 3),以便進行測試。 -接下来,我们创建了一个合同实例并进行了部署。 在这种情况下,就是 BuyMeACoffee.sol 合同。 +接下來,我們創建了一個合同實例並進行了部署。 在這種情況下,就是 BuyMeACoffee.sol 合同。 -然后,我们设置收件人列表,使用 **getBalances()** 函数检查他们的余额。 然后,我们在三个不同的实例中调用了**buyCoffee**函数。 接下来,我们检查了每个地址在咖啡交易后的余额。 +然後,我們設置收件人列表,使用 **getBalances()** 函數檢查他們的餘額。 然後,我們在三個不同的實例中調用了**buyCoffee**函數。 接下來,我們檢查了每個地址在咖啡交易後的餘額。 -然后,我们调用**提款**函数,将所有资金提取到所有者的地址。 接下来,我们检查了取款后的地址余额。 +然後,我們調用**提款**函數,將所有資金提取到所有者的地址。 接下來,我們檢查了取款後的地址餘額。 -最后,我们调用\*\*getAllCoffee()\*\*函数,获取智能合约中的所有咖啡交易。 要查看脚本的运行情况,请运行下面的命令: +最後,我們調用\*\*getAllCoffee()\*\*函數,獲取智能合約中的所有咖啡交易。 要查看腳本的運行情況,請運行下面的命令: ```bash npx hardhat run scripts/bmc-coffee.js ``` -终端中的输出结果应该如下所示: +終端中的輸出結果應該如下所示: ```bash Ayomitans-MacBook-Pro:smart-contract oxpampam$ npx hardhat run scripts/bmc-sample.js @@ -376,32 +376,32 @@ At 1686307886, Bob, with 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC, said: "Hi A At 1686307887, Japhet, with 0x90F79bf6EB2c4f870365E785982E1f101E93b906, said: "Hi Ox" ``` -## 4. 部署 BMC 智能合约 +## 4. 部署 BMC 智能合約 -### 4.1 向 Kaia Testnet 部署 BMC 智能合约 +### 4.1 向 Kaia Testnet 部署 BMC 智能合約 -在成功测试了 BMC 智能合约的功能后,让我们按以下步骤将其部署到 Kaia Testnet Kairos: +在成功測試了 BMC 智能合約的功能後,讓我們按以下步驟將其部署到 Kaia Testnet Kairos: -#### 步骤 1 - 创建 .env 文件 +#### 步驟 1 - 創建 .env 文件 -现在,在项目文件夹中创建 .env 文件。 该文件可帮助我们将 .env 文件中的环境变量加载到 process.env 文件中。 +現在,在項目文件夾中創建 .env 文件。 該文件可幫助我們將 .env 文件中的環境變量加載到 process.env 文件中。 -在终端中粘贴此命令以创建 .env 文件 +在終端中粘貼此命令以創建 .env 文件 ```bash touch .env ``` -创建文件后,让我们把 .env 文件配置成这样: +創建文件後,讓我們把 .env 文件配置成這樣: ```bash KAIROS_TESTNET_URL= "您的 RPC URL" -PRIVATE_KEY= "从 metamask 钱包复制的您的私人密钥" +PRIVATE_KEY= "從 metamask 錢包複製的您的私人密鑰" ``` -#### 步骤 2 - 设置硬头盔配置 +#### 步驟 2 - 設置硬頭盔配置 -将此配置粘贴到 hardhat.config.js 文件中 +將此配置粘貼到 hardhat.config.js 文件中 ``` require("@nomicfoundation/hardhat-toolbox"); @@ -421,9 +421,9 @@ module.exports = { }; ``` -#### 步骤 3 - 创建部署脚本 +#### 步驟 3 - 創建部署腳本 -要创建一个新的部署脚本,将此智能合约部署到指定网络,请创建一个新文件 scripts/deploy.js,并粘贴以下代码: +要創建一個新的部署腳本,將此智能合約部署到指定網絡,請創建一個新文件 scripts/deploy.js,並粘貼以下代碼: ```js const hre = require("hardhat"); @@ -441,23 +441,23 @@ main().catch((error) => { }); ``` -现在,我们的配置已全部就绪,让我们运行下面的命令将其部署到 Kaia Testnet Kairos: +現在,我們的配置已全部就緒,讓我們運行下面的命令將其部署到 Kaia Testnet Kairos: ```bash npx hardhat run scripts/deploy.js --network kairos ``` -合同部署成功后,您的终端应该是这样的: +合同部署成功後,您的終端應該是這樣的: ```bash BuyMeACoffee Contract Address 0x0bEd1ed7B205d8c18e38A20b5BaB6e265A96d1AC ``` -恭喜您在 Kaia Kairos 网络上部署了 BMC 智能合约! 您可以在搜索栏中输入您的地址,在 Kaiascope 上验证此交易。 +恭喜您在 Kaia Kairos 網絡上部署了 BMC 智能合約! 您可以在搜索欄中輸入您的地址,在 Kaiascope 上驗證此交易。 -### 4.2 与 BMC 智能合约互动 +### 4.2 與 BMC 智能合約互動 -在本节中,您将学习如何使用硬帽脚本提取发送到智能合约中的咖啡提示。 要开始使用,请在脚本文件夹中新建一个文件 `withdraw.js` 并粘贴下面的代码: +在本節中,您將學習如何使用硬帽腳本提取發送到智能合約中的咖啡提示。 要開始使用,請在腳本文件夾中新建一個文件 `withdraw.js` 並粘貼下面的代碼: ```js const hre = require("hardhat"); @@ -509,68 +509,68 @@ main().catch((error) => { }); ``` -从上面的代码可以看出,在实例化 BMC 合约后,脚本只有在合约余额大于零时才会执行 withdrawCoffeTips 函数。 有道理吧? +從上面的代碼可以看出,在實例化 BMC 合約後,腳本只有在合約餘額大於零時才會執行 withdrawCoffeTips 函數。 有道理吧? -是的! 在合同没有资金的情况下,它会打印 "无资金可提取",从而为我们节省了一些调用合同的汽油。 +是的! 在合同沒有資金的情況下,它會打印 "無資金可提取",從而為我們節省了一些調用合同的汽油。 -让我们运行下面的脚本,看看它是如何运行的: +讓我們運行下面的腳本,看看它是如何運行的: ```bash npx hardhat run scripts/withdraw.js --network kairos ``` -成功执行脚本后,您的终端应该是这样的: +成功執行腳本後,您的終端應該是這樣的: ```bash Ayomitans-MacBook-Pro:smart-contract oxpampam$ npx hardhat run scripts/withdraw.js --network kairos -提现提示前的所有者余额:155.8337532 KAIA -提取提示前的合同余额: 2.0 KAIA +提現提示前的所有者餘額:155.8337532 KAIA +提取提示前的合同餘額: 2.0 KAIA withdrawing funds... -提取提示后的所有者余额 157.83298835 KAIA +提取提示後的所有者餘額 157.83298835 KAIA ``` -从输出结果可以看出,提取咖啡小费后,所有者余额增加了 2 KAIA。 +從輸出結果可以看出,提取咖啡小費後,所有者餘額增加了 2 KAIA。 -现在,我们已经部署了合同并测试了所有功能,是时候构建前端了。 +現在,我們已經部署了合同並測試了所有功能,是時候構建前端了。 -前端将使 BMC 功能上线,即我们现在可以直观地看到如何与 BMC 智能合约进行交互。 +前端將使 BMC 功能上線,即我們現在可以直觀地看到如何與 BMC 智能合約進行交互。 -## 5. 使用 React 和 Web3Onboard 构建 BMC 前端 +## 5. 使用 React 和 Web3Onboard 構建 BMC 前端 -在本节中,我们将使用 Next.js 和 Web3Onbaord 构建 dApp 前端网站。 要开始操作,您必须导航到之前创建的前台文件夹。 +在本節中,我們將使用 Next.js 和 Web3Onbaord 構建 dApp 前端網站。 要開始操作,您必須導航到之前創建的前臺文件夾。 ```bash cd .. cd frontend ``` -下一步是安装必要的依赖项,以启动并运行我们的 BMC 前端网站。 以下是需要安装的软件包: +下一步是安裝必要的依賴項,以啟動並運行我們的 BMC 前端網站。 以下是需要安裝的軟件包: -1. Web3Onboard 软件包:Web3-Onboard 是一个与链无关的钱包库,支持在 Kaia 区块链等 EVM 兼容网络上构建的 dApp 中兼容多个钱包。 -2. ether.js:Web3-Onboard 提供商可与 [ethers.js](https://docs.ethers.org/v6/) 和 [web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html) 等库一起使用。 在本指南中,我们将使用 ethers.js 进行 Kaia 区块链调用,如获取用户账户、获取余额、签署交易、发送交易、读取和写入智能合约。 +1. Web3Onboard 軟件包:Web3-Onboard 是一個與鏈無關的錢包庫,支持在 Kaia 區塊鏈等 EVM 兼容網絡上構建的 dApp 中兼容多個錢包。 +2. ether.js:Web3-Onboard 提供商可與 [ethers.js](https://docs.ethers.org/v6/) 和 [web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html) 等庫一起使用。 在本指南中,我們將使用 ethers.js 進行 Kaia 區塊鏈調用,如獲取用戶賬戶、獲取餘額、簽署交易、發送交易、讀取和寫入智能合約。 -重要提示:我们需要编辑 frontend/pages 文件夹中的 2 个文件 +重要提示:我們需要編輯 frontend/pages 文件夾中的 2 個文件 - **_app.js** - **index.js** -### 5.1 设置 Web3Onboard 提供程序和钱包模块 +### 5.1 設置 Web3Onboard 提供程序和錢包模塊 -#### 步骤 1 - 安装 @web3-onboard/react +#### 步驟 1 - 安裝 @web3-onboard/react ```bash npm install @web3-onboard/react ``` -在`_app.js`文件中,导入 web3OnboardProvider 和 init 函数。 更多内容稍后讨论。 +在`_app.js`文件中,導入 web3OnboardProvider 和 init 函數。 更多內容稍後討論。 ```js import { Web3OnboardProvider, init } from '@web3-onboard/react' ``` -#### 步骤 2 - 安装和实例化钱包模块 +#### 步驟 2 - 安裝和實例化錢包模塊 -在这一步中,您可以使用钱包模块在您的 dApp 中添加尽可能多的钱包。 但在本指南中,您将在 web3-Onboard 实现中添加 Coinbase 钱包、WalletConnect、注入式钱包。 +在這一步中,您可以使用錢包模塊在您的 dApp 中添加儘可能多的錢包。 但在本指南中,您將在 web3-Onboard 實現中添加 Coinbase 錢包、WalletConnect、注入式錢包。 ```bash npm install @web3-onboard/coinbase // Coinbase Wallet @@ -578,7 +578,7 @@ npm install @web3-onboard/walletconnect // WalletConnect npm install @web3-onboard/injected-wallets // Used to connect to Metamask ``` -在您的 `_app.js` 文件中,导入并实例化钱包模块,以便与您的 dApp 集成。 请注意,每个模块都有自己独特的选项参数,如备用 JSON RPC URL 或默认链 ID。 +在您的 `_app.js` 文件中,導入並實例化錢包模塊,以便與您的 dApp 集成。 請注意,每個模塊都有自己獨特的選項參數,如備用 JSON RPC URL 或默認鏈 ID。 ```js import coinbaseWalletModule from "@web3-onboard/coinbase"; @@ -590,19 +590,19 @@ const injected = injectedModule(); const modules = [coinbaseWalletSdk, walletConnect, injected]; ``` -#### 步骤 3 - 安装醚类 +#### 步驟 3 - 安裝醚類 ```bash npm install --save ethers ``` -#### 步骤 4 - 使用 Web3OnboardProvider 实例化 Web3Onboard +#### 步驟 4 - 使用 Web3OnboardProvider 實例化 Web3Onboard -Web3OnboardProvider 提供了管理全局状态的更好方法。 它简化了在应用程序周围包装提供程序对象的过程,初始化的 Web3Onboard 实例将在所有子组件中可用。 +Web3OnboardProvider 提供了管理全局狀態的更好方法。 它簡化了在應用程序周圍包裝提供程序對象的過程,初始化的 Web3Onboard 實例將在所有子組件中可用。 -Init 函数初始化 web3-Onboard,使其可供所有钩子使用。 +Init 函數初始化 web3-Onboard,使其可供所有鉤子使用。 -要查看具体操作,请在您的 `_app.js`文件中粘贴前一段代码下面的代码: +要查看具體操作,請在您的 `_app.js`文件中粘貼前一段代碼下面的代碼: ```js const ETH_MAINNET_RPC_URL = `https://eth-mainnet.g.alchemy.com/v2/demo`; @@ -654,11 +654,11 @@ export default function App({ Component, pageProps }) { } ``` -设置好 _app.js 文件后,我们就可以在所有子组件中使用应用程序的提供程序对象和 web3Onboard 实例了。接下来,我们要在 `index.js` 文件中构建前端逻辑 +設置好 _app.js 文件後,我們就可以在所有子組件中使用應用程序的提供程序對象和 web3Onboard 實例了。接下來,我們要在 `index.js` 文件中構建前端邏輯 - Index.js -该页面处理钱包连接和向 BMC 智能合约发送咖啡,由合约部署者撤回。 +該頁面處理錢包連接和向 BMC 智能合約發送咖啡,由合約部署者撤回。 ```js import React, { useEffect, useState } from 'react'; @@ -800,40 +800,40 @@ export default function Home() { } ``` -### 上述代码的重要说明 +### 上述代碼的重要說明 -1. 获取合约 ABI: 合约 ABI 向前端代码指定了智能合约上可调用的函数。 要获取合同 abi,请导航至 smart-contract 文件夹,并按照以下路径复制该文件中的文本 **artifacts/contracts/BuyMeACoffee.sol/BuyMeACoffee.json**. 接下来,我们在 **frontend/src** 文件夹中创建了一个 utils 文件夹。 然后将其粘贴到新创建的名为 BuyMeACoffee.json 文件中。 +1. 獲取合約 ABI: 合約 ABI 向前端代碼指定了智能合約上可調用的函數。 要獲取合同 abi,請導航至 smart-contract 文件夾,並按照以下路徑複製該文件中的文本 **artifacts/contracts/BuyMeACoffee.sol/BuyMeACoffee.json**. 接下來,我們在 **frontend/src** 文件夾中創建了一個 utils 文件夾。 然後將其粘貼到新創建的名為 BuyMeACoffee.json 文件中。 -2. 将 BMC 合同地址更改为 BMC 部署的合同地址。 +2. 將 BMC 合同地址更改為 BMC 部署的合同地址。 -现在,如果应用程序尚未运行,你可以进入 shell,使用 `npm run dev` 启动本地服务器,测试你的更改。 网站应在几秒钟内加载完毕,用户界面应如下所示: +現在,如果應用程序尚未運行,你可以進入 shell,使用 `npm run dev` 啟動本地服務器,測試你的更改。 網站應在幾秒鐘內加載完畢,用戶界面應如下所示: -连接钱包页面: +連接錢包頁面: ![](/img/build/tutorials/bmc-cw.png) ![](/img/build/tutorials/bmc-connect.png) -发送咖啡的前端网站 +發送咖啡的前端網站 ![](/img/build/tutorials/bmc-frontend.png) -现在,让我们探索一下我们的网站和代码。 +現在,讓我們探索一下我們的網站和代碼。 -从上面的截图中您可以看到,当您第一次访问 dApp 时,它会要求您连接一个钱包。 接下来会弹出 Web3Onboard 实例中已初始化的可用钱包列表。 +從上面的截圖中您可以看到,當您第一次訪問 dApp 時,它會要求您連接一個錢包。 接下來會彈出 Web3Onboard 實例中已初始化的可用錢包列表。 -然后,选择您所需的钱包;如上图所示,我们选择了 MetaMask。 连接钱包后,您会在网站右上方看到一个用户界面组件,其中包含所连接钱包的详细信息。 您还可以在页面上看到咖啡交易表单,其中包含发送者的姓名和信息,以及其他访客之前向智能合约支付的咖啡。 +然後,選擇您所需的錢包;如上圖所示,我們選擇了 MetaMask。 連接錢包後,您會在網站右上方看到一個用戶界面組件,其中包含所連接錢包的詳細信息。 您還可以在頁面上看到咖啡交易表單,其中包含發送者的姓名和信息,以及其他訪客之前向智能合約支付的咖啡。 -## 6. 使用 Fleek 在 IPFS 上部署前端代码 +## 6. 使用 Fleek 在 IPFS 上部署前端代碼 -Fleek 是一种基础设施,使我们能够在 IPFS 上构建现代网站和应用程序。 有了 fleek,您的网站或应用程序将变得无权限、无信任、无审查,并且不受集中式看门人的限制。 在本教程中,我们将把 Next js 应用程序部署到 Fleek,而不是 Vercel 等传统平台。 -是的,你说对了! 我们正在一个分散托管平台上部署一个分散应用程序! +Fleek 是一種基礎設施,使我們能夠在 IPFS 上構建現代網站和應用程序。 有了 fleek,您的網站或應用程序將變得無權限、無信任、無審查,並且不受集中式看門人的限制。 在本教程中,我們將把 Next js 應用程序部署到 Fleek,而不是 Vercel 等傳統平臺。 +是的,你說對了! 我們正在一個分散託管平臺上部署一個分散應用程序! -以下是将 BMC dApp 部署到 Fleek 的步骤: +以下是將 BMC dApp 部署到 Fleek 的步驟: -1. 确保在前端代码中确认这些配置: +1. 確保在前端代碼中確認這些配置: - a. 打开 package.json,添加以下脚本: + a. 打開 package.json,添加以下腳本: ```js "scripts": { @@ -844,7 +844,7 @@ Fleek 是一种基础设施,使我们能够在 IPFS 上构建现代网站和 } ``` - b. 将下面的代码粘贴到根目录下的 next.config.js 文件中: + b. 將下面的代碼粘貼到根目錄下的 next.config.js 文件中: ```js module.exports = { @@ -852,41 +852,41 @@ Fleek 是一种基础设施,使我们能够在 IPFS 上构建现代网站和 }; ``` -如需了解更多信息,请访问本 [指南](https://blog.fleek.co/posts/fleek-nextJS) +如需瞭解更多信息,請訪問本 [指南](https://blog.fleek.co/posts/fleek-nextJS) -2. 导航至 Fleek 上的仪表板,点击 \*\* 添加新网站\*\* +2. 導航至 Fleek 上的儀表板,點擊 \*\* 添加新網站\*\* ![](/img/build/tutorials/fleek-addsite.png) -3. 连接 GitHub 账户以访问您的软件源。 +3. 連接 GitHub 賬戶以訪問您的軟件源。 ![](/img/build/tutorials/fleek-cg.png) -4. 选择要部署的版本库。 +4. 選擇要部署的版本庫。 -5. 在下一页,在 "基本构建设置 "选项卡中选择 "**下一个 Js** 框架",Fleek 将自动填充其他字段。 +5. 在下一頁,在 "基本構建設置 "選項卡中選擇 "**下一個 Js** 框架",Fleek 將自動填充其他字段。 -6. 点击部署网站 +6. 點擊部署網站 -7. 如果出现 **npm WARN EBADENGINE 不支持的引擎**,如下图所示: +7. 如果出現 **npm WARN EBADENGINE 不支持的引擎**,如下圖所示: ![](/img/build/tutorials/fleek-err.png) -前往**部署**选项卡中的**部署设置**,将**Docker 镜像名称**更改为**节点:最新**,如下图所示: +前往**部署**選項卡中的**部署設置**,將**Docker 鏡像名稱**更改為**節點:最新**,如下圖所示: ![](/img/build/tutorials/fleek-err-fix.png) -8. 现在,您的网站应能轻松构建并部署到 IPFS。 -9. 点击生成的链接查看您的网站。 +8. 現在,您的網站應能輕鬆構建並部署到 IPFS。 +9. 點擊生成的鏈接查看您的網站。 ![](/img/build/tutorials/fleek-site-url.png) -瞧 我们在 IPFS 上部署并托管了 BMC dApp。 +瞧 我們在 IPFS 上部署並託管了 BMC dApp。 -## 7. 结论 +## 7. 結論 -如果您已经走到这一步,那么恭喜您! 在本教程中,您将学会如何使用 Solidity、NextJs、Web3Onboard 和 Fleek 创建一个全栈的 Buy Me A Coffee dApp。 这是在去中心化平台上创建去中心化应用程序的第一步。 +如果您已經走到這一步,那麼恭喜您! 在本教程中,您將學會如何使用 Solidity、NextJs、Web3Onboard 和 Fleek 創建一個全棧的 Buy Me A Coffee dApp。 這是在去中心化平臺上創建去中心化應用程序的第一步。 -在此基础上,您还可以在前台探索一些其他选项,比如除了静态发送 1 KAIA 咖啡外,还可以添加一个新的输入字段,用于输入要发送的咖啡量。 您可以访问 [github](https://github.com/ayo-klaytn/buy-me-a-coffee) 上的完整代码库,也可以使用 [link](https://spring-fog-0605.on.fleek.co/) 测试网站。 +在此基礎上,您還可以在前臺探索一些其他選項,比如除了靜態發送 1 KAIA 咖啡外,還可以添加一個新的輸入字段,用於輸入要發送的咖啡量。 您可以訪問 [github](https://github.com/ayo-klaytn/buy-me-a-coffee) 上的完整代碼庫,也可以使用 [link](https://spring-fog-0605.on.fleek.co/) 測試網站。 -如果您想了解更多信息,请访问 [Kaia 文档](https://docs.klaytn.foundation/)、[Web3Onboard 文档](https://onboard.blocknative.com/docs/modules/react) 和 [Fleek 文档](https://docs.fleek.co/tutorials/hosting/)。 如果您有任何问题,请访问 [Kaia 论坛](https://devforum.kaia.io/)。 +如果您想了解更多信息,請訪問 [Kaia 文檔](https://docs.klaytn.foundation/)、[Web3Onboard 文檔](https://onboard.blocknative.com/docs/modules/react) 和 [Fleek 文檔](https://docs.fleek.co/tutorials/hosting/)。 如果您有任何問題,請訪問 [Kaia 論壇](https://devforum.kaia.io/)。 From 70eee7607a09449db6ce7ee1c281251e6bedfbf3 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:22 +0800 Subject: [PATCH 0059/2513] New translations connecting-remix.md (Chinese Simplified) --- .../build/tutorials/connecting-remix.md | 110 +++++++++--------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-remix.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-remix.md index 48b424d2babd..d1c6118bd5fa 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-remix.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-remix.md @@ -1,28 +1,28 @@ -# 将 Remix 连接到 Kaia +# 將 Remix 連接到 Kaia ![](/img/banners/kaia-remix.png) ## 概述 -Remix 是一个基于浏览器的集成开发环境,用于开发 Solidity 合约。 在本指南中,您将学习如何 +Remix 是一個基於瀏覽器的集成開發環境,用於開發 Solidity 合約。 在本指南中,您將學習如何 -- 在 Remix IDE 上创建并上传预构建的智能合约。 -- 编译智能合约 -- 连接至 Remix IDE 的 Kaia 插件 -- 设置部署环境 -- 导入账户 -- 使用 Kaia 钱包将 Kaia 连接到 Remix -- 使用 MetaMask 将 Kaia 连接到 Remix -- 部署智能合约。 -- 验证智能合约。 +- 在 Remix IDE 上創建並上傳預構建的智能合約。 +- 編譯智能合約 +- 連接至 Remix IDE 的 Kaia 插件 +- 設置部署環境 +- 導入賬戶 +- 使用 Kaia 錢包將 Kaia 連接到 Remix +- 使用 MetaMask 將 Kaia 連接到 Remix +- 部署智能合約。 +- 驗證智能合約。 -这将包括与 Kaia 的 Remix 连接。 如果您想进一步了解如何使用 Remix,请参阅 [Remix docs](https://remix-ide.readthedocs.io/en/latest/) 或 [Remix IDE](https://remix.ethereum.org/)。 +這將包括與 Kaia 的 Remix 連接。 如果您想進一步瞭解如何使用 Remix,請參閱 [Remix docs](https://remix-ide.readthedocs.io/en/latest/) 或 [Remix IDE](https://remix.ethereum.org/)。 -## 在 Remix 上创建文件 +## 在 Remix 上創建文件 -要开始构建智能合约,请点击**文件资源管理器**选项卡中**合约**文件夹下的**新建文件**图标,并将其命名为`KaiaGreeter.sol`。 +要開始構建智能合約,請點擊**文件資源管理器**選項卡中**合約**文件夾下的**新建文件**圖標,並將其命名為`KaiaGreeter.sol`。 -下一步是将下面提供的智能合约代码复制并粘贴到新创建的 KaiaGreeter.sol 文件中。 +下一步是將下面提供的智能合約代碼複製並粘貼到新創建的 KaiaGreeter.sol 文件中。 ```sol // SPDX-License-Identifier: UNLICENSED @@ -46,77 +46,77 @@ contract KaiaGreeter { ![](/img/build/smart-contracts/remix-create-new-file.png) -## 编译智能合约 +## 編譯智能合約 -要编制合同,请执行以下操作: +要編制合同,請執行以下操作: -- 转到 **Solidity Compiler** 选项卡 -- 选择编译器版本为 0.8.27 -- 打开 "自动编译 "选项。 -- 点击 "编译 KaiaGreeter.sol" 按钮,编译 "KaiaGreeter.sol "合同。 -- 编译成功后,编译器选项卡按钮上将显示绿色的"√"标记 +- 轉到 **Solidity Compiler** 選項卡 +- 選擇編譯器版本為 0.8.27 +- 打開 "自動編譯 "選項。 +- 點擊 "編譯 KaiaGreeter.sol" 按鈕,編譯 "KaiaGreeter.sol "合同。 +- 編譯成功後,編譯器選項卡按鈕上將顯示綠色的"√"標記 ![](/img/build/smart-contracts/remix-compile-contract.png) -## 在 Remix IDE 上连接 Kaia 插件 +## 在 Remix IDE 上連接 Kaia 插件 -要在 Remix IDE 上连接 Kaia 插件,可以使用 [Kaia Plugin for Remix](https://ide.kaia.io/),或按照此步骤操作: +要在 Remix IDE 上連接 Kaia 插件,可以使用 [Kaia Plugin for Remix](https://ide.kaia.io/),或按照此步驟操作: -- 导航至**插件管理器**选项卡 -- 在搜索栏中输入 Klaytn -- 激活 Klaytn 插件。 如果 Klaytn 标签出现,您就可以与 Kaia 互动了。 +- 導航至**插件管理器**選項卡 +- 在搜索欄中輸入 Klaytn +- 激活 Klaytn 插件。 如果 Klaytn 標籤出現,您就可以與 Kaia 互動了。 ![](/img/build/smart-contracts/remix-plugin-addon.png) -## 设置部署环境 +## 設置部署環境 -- 点击 Klaytn 插件。 -- 选择适当的 [环境]。 -- 您可以选择 Kairos、主网、注入式提供程序 - Kaia 钱包、注入式提供程序 - MetaMask - - [凯罗斯]:连接至 Kairos 网络 - - [主网]:连接到主网 - - [注入式提供程序 - Kaia 钱包]:连接至 Kaia 钱包 - - [注入式提供程序 - MetaMask ]:连接到 MetaMask +- 點擊 Klaytn 插件。 +- 選擇適當的 [環境]。 +- 您可以選擇 Kairos、主網、注入式提供程序 - Kaia 錢包、注入式提供程序 - MetaMask + - [凱羅斯]:連接至 Kairos 網絡 + - [主網]:連接到主網 + - [注入式提供程序 - Kaia 錢包]:連接至 Kaia 錢包 + - [注入式提供程序 - MetaMask ]:連接到 MetaMask ![](/img/build/smart-contracts/remix-deploy-env.png) -## 导入账户 +## 導入賬戶 -您可以从任何兼容的钱包中导出私钥或 Keystore 在此使用。 +您可以從任何兼容的錢包中導出私鑰或 Keystore 在此使用。 -- 单击 ACCOUNT 旁边的加号按钮。 -- 然后放入私钥或密钥库。 -- 您还可以为缴费人导入密钥。 它只支持私钥。 +- 單擊 ACCOUNT 旁邊的加號按鈕。 +- 然後放入私鑰或密鑰庫。 +- 您還可以為繳費人導入密鑰。 它只支持私鑰。 ![](/img/build/smart-contracts/remix-import-acc.png) -## 使用 Kaia 钱包将 Kaia 连接到 Remix +## 使用 Kaia 錢包將 Kaia 連接到 Remix -- 在 Remix 环境菜单中选择 [注入式提供程序 - Kaia 钱包]。 +- 在 Remix 環境菜單中選擇 [注入式提供程序 - Kaia 錢包]。 ![](/img/build/smart-contracts/remix-kw-connect.png) -- 看到 Kaia 钱包弹出窗口时,点击 [连接]。 -- 成功连接到网络后,您将看到所连接网络的链 ID 和账户。 +- 看到 Kaia 錢包彈出窗口時,點擊 [連接]。 +- 成功連接到網絡後,您將看到所連接網絡的鏈 ID 和賬戶。 -## 连接 Kaia - 使用 MetaMask 混音 +## 連接 Kaia - 使用 MetaMask 混音 -- 参照[连接到 MetaMask](./connecting-metamask.mdx)连接 Kaia 和 MetaMask。 -- 在 Remix 环境菜单上选择 [注入式提供程序 - 元掩码]。 +- 參照[連接到 MetaMask](./connecting-metamask.mdx)連接 Kaia 和 MetaMask。 +- 在 Remix 環境菜單上選擇 [注入式提供程序 - 元掩碼]。 ![](/img/build/smart-contracts/remix-mm-connect.png) -- 看到弹出的 MetaMask 窗口时,点击它来选择账户。 -- 成功连接到网络后,您将看到所连接网络的链 ID 和账户。 +- 看到彈出的 MetaMask 窗口時,點擊它來選擇賬戶。 +- 成功連接到網絡後,您將看到所連接網絡的鏈 ID 和賬戶。 -## 部署智能合约 +## 部署智能合約 -在本节中,我们将使用 Kaia 钱包部署 KaiaGreeter.sol 合约。 在 "编译 "部分编译合同后,请按照以下部署流程进行部署: +在本節中,我們將使用 Kaia 錢包部署 KaiaGreeter.sol 合約。 在 "編譯 "部分編譯合同後,請按照以下部署流程進行部署: -- 将部署环境设置为注入式提供商 - Kaikas 钱包。 确保确认所有与 Remix 的连接提示。 -- 在 CONTRACT(合同)字段中选择要部署的合同。 -- 单击 "部署 "按钮。 这将弹出一个 Kaia 钱包,要求确认交易。 只需确认交易即可! +- 將部署環境設置為注入式提供商 - Kaikas 錢包。 確保確認所有與 Remix 的連接提示。 +- 在 CONTRACT(合同)字段中選擇要部署的合同。 +- 單擊 "部署 "按鈕。 這將彈出一個 Kaia 錢包,要求確認交易。 只需確認交易即可! ![](/img/build/smart-contracts/remix-deploy-contract.png) -- 您可以在 [Kaiascan](https://kairos.kaiascan.io/)上查看已部署的合约,也可以在 Remix IDE 上进行测试或调试。 +- 您可以在 [Kaiascan](https://kairos.kaiascan.io/)上查看已部署的合約,也可以在 Remix IDE 上進行測試或調試。 From cc1e4a2102115b1bb55b94c94d7415c476526d47 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:24 +0800 Subject: [PATCH 0060/2513] New translations fee-delegation-example.md (Japanese) --- .../current/build/tutorials/fee-delegation-example.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md b/i18n/ja/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md index 0d4fb1098112..0f4b73128d45 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md @@ -57,7 +57,7 @@ Now, you need to send the `senderRawTransaction` to the fee payer. There will be ### 2.2 Transaction signing by the fee payer -When `fee payer` receives the `senderRawTransaction`, `fee payer` signs the `senderRawTransaction` again with their private key and sends the transaction to Klaytn. The below code snippet illustrates the process. `kaia.sendRawTransaction` method signs the transaction with the given account's private key before sending the transaction. Before running the code, please replace `"FEEPAYER_ADDRESS"` and `"PRIVATE_KEY"` with the actual values. +When `fee payer` receives the `senderRawTransaction`, `fee payer` signs the `senderRawTransaction` again with their private key and sends the transaction to Klaytn. The below code snippet illustrates the process. Before running the code, please replace `"FEEPAYER_ADDRESS"` and `"PRIVATE_KEY"` with the actual values. `kaia.sendRawTransaction` method signs the transaction with the given account's private key before sending the transaction. Note that when the `fee payer` submits the transaction to Kaia on behalf of the `sender`, the `senderRawTransaction` type must be a `FEE_DELEGATED` type of transaction. In the below example, [sendTransaction(FEE_DELEGATED_VALUE_TRANSFER)](../../references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-value-transfer.md#sendtransaction-fee_delegated_value_transfer) method is invoked, because the original `senderRawTransaction` generated by the sender was [TxTypeFeeDelegatedValueTransfer](../../learn/transactions/fee-delegation.md#txtypefeedelegatedvaluetransfer). From 836f46629d26fac6f952fe56916bdde5871dc33e Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:26 +0800 Subject: [PATCH 0061/2513] New translations fee-delegation-example.md (Chinese Simplified) --- .../build/tutorials/fee-delegation-example.md | 150 +++++++++--------- 1 file changed, 75 insertions(+), 75 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md index e05c8f8dd108..f6f978cbd6ac 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/fee-delegation-example.md @@ -1,41 +1,41 @@ -# 建设费委托示例 +# 建設費委託示例 -## 目录 +## 目錄 -- [1. 导言](#1-introduction) -- [2. 如何进行收费授权](#2-how-fee-delegation-works) - - 2.1 发送方签署交易 - - 2.2 付款人签署交易 -- [3. 收费委托的简单服务器和客户端](#3-simple-server-and-client-for-fee-delegation) - - 3.1 发件人客户端 - - 3.2 缴费者服务器 -- [4. 运行示例](#4-run-example) - - 4.1 运行 `feepayer_server.js` - - 4.2 运行 `sender_client.js` - - 4.3 检查 `feepayer_server.js` - - 4.4 Kaia 范围 +- [1. 導言](#1-introduction) +- [2. 如何進行收費授權](#2-how-fee-delegation-works) + - 2.1 發送方簽署交易 + - 2.2 付款人簽署交易 +- [3. 收費委託的簡單服務器和客戶端](#3-simple-server-and-client-for-fee-delegation) + - 3.1 發件人客戶端 + - 3.2 繳費者服務器 +- [4. 運行示例](#4-run-example) + - 4.1 運行 `feepayer_server.js` + - 4.2 運行 `sender_client.js` + - 4.3 檢查 `feepayer_server.js` + - 4.4 Kaia 範圍 -## 1. 导言 +## 1. 導言 -本教程将帮助您使用 caver-js SDK 编写一个简单的服务器-客户端示例,以说明在 Kaia 中如何进行费用委托值转移交易。 本教程和示例代码使用的是 Kairos 测试网。 +本教程將幫助您使用 caver-js SDK 編寫一個簡單的服務器-客戶端示例,以說明在 Kaia 中如何進行費用委託值轉移交易。 本教程和示例代碼使用的是 Kairos 測試網。 -## 2. 如何进行费用委托 +## 2. 如何進行費用委託 -让我们简要了解一下费用委托的运作方式。 +讓我們簡要了解一下費用委託的運作方式。 -### 2.1 发送方签署交易 +### 2.1 發送方簽署交易 -发送方 "在发送交易之前,应始终签署交易。 +發送方 "在發送交易之前,應始終簽署交易。 -要签署交易,请使用 [signTransaction](../../references/sdk/caver-js-1.4.1/api/caver.kaia.accounts.md#signtransaction) 使用给定的私钥签署交易。 +要簽署交易,請使用 [signTransaction](../../references/sdk/caver-js-1.4.1/api/caver.kaia.accounts.md#signtransaction) 使用給定的私鑰簽署交易。 ``` -// 使用事件发射器 +// 使用事件發射器 const senderAddress = "SENDER_ADDRESS"; const senderPrivateKey = "SENDER_PRIVATEKEY"; const toAddress = "TO_ADDRESS"; - // 创建新事务 + // 創建新事務 const tx = caver.transaction.feeDelegatedValueTransfer.create({ from: keyring.address, to: toAddress, @@ -51,15 +51,15 @@ const toAddress = "TO_ADDRESS"; const senderRawTransaction = tx.getRLPEncoding(); ``` -如果没有错误,那么 `senderRawTransaction` 将有一个已签名的事务,该事务由 `senderPrivateKey` 签名。 +如果沒有錯誤,那麼 `senderRawTransaction` 將有一個已簽名的事務,該事務由 `senderPrivateKey` 簽名。 -现在,您需要将 `senderRawTransaction` 发送给缴费人。 实施的方法多种多样。 在本教程中,我们将提供一个简单的服务器-客户端代码,作为向缴费人发送 "senderRawTransaction "的示例。 +現在,您需要將 `senderRawTransaction` 發送給繳費人。 實施的方法多種多樣。 在本教程中,我們將提供一個簡單的服務器-客戶端代碼,作為向繳費人發送 "senderRawTransaction "的示例。 -### 2.2 付款人签署交易 +### 2.2 付款人簽署交易 -当 "付费方 "收到 "发送方原始交易 "时,"付费方 "会用自己的私钥再次对 "发送方原始交易 "进行签名,然后将交易发送给 Kaia。 下面的代码片段说明了这一过程。 kaia.sendRawTransaction "方法在发送交易前使用给定账户的私钥对交易进行签名。 运行代码前,请将 `"FEEPAYER_ADDRESS"` 和 `"PRIVATE_KEY"` 替换为实际值。 +當 "付費方 "收到 "發送方原始交易 "時,"付費方 "會用自己的私鑰再次對 "發送方原始交易 "進行簽名,然後將交易發送給 Kaia。 下面的代碼片段說明了這一過程。 kaia.sendRawTransaction "方法在發送交易前使用給定賬戶的私鑰對交易進行簽名。 運行代碼前,請將 `"FEEPAYER_ADDRESS"` 和 `"PRIVATE_KEY"` 替換為實際值。 -请注意,当 "费用支付方 "代表 "发送方 "向 Kaia 提交交易时,"发送方原始交易 "类型必须是 "FEE_DELEGATED "类型的交易。 在下面的示例中,调用了 [sendTransaction(FEE_DELEGATED_VALUE_TRANSFER)](../../references/sdk/caver-js-1.4.1/api/caver.kaia/transaction/sendtx-value-transfer.md#sendtransaction-fee_delegated_value_transfer) 方法。由于发送方生成的原始 `senderRawTransaction` 是 [TxTypeFeeDelegatedValueTransfer](../../learn/transactions/fee-delegation.md#txtypefeedelegatedvaluetransfer),因此调用了该方法。) +請注意,當 "費用支付方 "代表 "發送方 "向 Kaia 提交交易時,"發送方原始交易 "類型必須是 "FEE_DELEGATED "類型的交易。 在下面的示例中,調用了 [sendTransaction(FEE_DELEGATED_VALUE_TRANSFER)](../../references/sdk/caver-js-1.4.1/api/caver.kaia/transaction/sendtx-value-transfer.md#sendtransaction-fee_delegated_value_transfer) 方法。由於發送方生成的原始 `senderRawTransaction` 是 [TxTypeFeeDelegatedValueTransfer](../../learn/transactions/fee-delegation.md#txtypefeedelegatedvaluetransfer),因此調用了該方法。) ``` const feePayerAddress = "FEEPAYER_ADDRESS"; @@ -72,7 +72,7 @@ const tx = caver.transaction.decode(senderRawTransaction); const signed = await caver.wallet.signAsFeePayer(keyring.address); // Send transaction const receipt = await caver.rpc.klay.sendRawTransaction( ).地址,tx); - // 发送交易 + // 發送交易 const receipt = await caver.rpc.klay.sendRawTransaction( signed.getRLPEncoding() ) @@ -82,16 +82,16 @@ const tx = caver.transaction.decode(senderRawTransaction); .on('receipt', function(receipt){ ... }) -.on('error', console.error); // 如果出错,第二个参数就是收据。 +.on('error', console.error); // 如果出錯,第二個參數就是收據。 ``` -## 3. 收费委托的简单服务器和客户端 +## 3. 收費委託的簡單服務器和客戶端 -让我们用上述费用委托代码编写一个简单的服务器和客户端。 +讓我們用上述費用委託代碼編寫一個簡單的服務器和客戶端。 -### 3.1 环境设置 +### 3.1 環境設置 -我们将使用 `npm` 和 [caver-js](../../references/sdk/caver-js-1.4.1/get-started-1.4.1.md) 为本示例设置环境,如下所示。 +我們將使用 `npm` 和 [caver-js](../../references/sdk/caver-js-1.4.1/get-started-1.4.1.md) 為本示例設置環境,如下所示。 ``` $ mkdir example @@ -100,11 +100,11 @@ $ npm init $ npm install caver-js@latest ``` -### 3.1 发件人客户端 +### 3.1 發件人客戶端 -首先,我们要编写一个`sender_client.js`,如下所示。 +首先,我們要編寫一個`sender_client.js`,如下所示。 -在示例中,请用实际值替换`"SENDER_ADDRESS"、`"SENDER_PRIVATEKEY "和\`"TO_ADDRESS"。 +在示例中,請用實際值替換`"SENDER_ADDRESS"、`"SENDER_PRIVATEKEY "和\`"TO_ADDRESS"。 ```javascript import { Socket } from "net"; @@ -123,7 +123,7 @@ const sendFeeDelegateTx = async () => { // Add sender's keyring to wallet const keyring = caver.wallet.newKeyring(senderAddress, senderPrivateKey); - // 创建新交易 + // 創建新交易 const tx = caver.transaction.feeDelegatedValueTransfer.create({ from: keyring.address, to: toAddress, @@ -133,7 +133,7 @@ const sendFeeDelegateTx = async () => { chainId: await caver.rpc.klay.getChainId(), // Get current chain ID }); - // 签署交易 + // 簽署交易 const signed = await caver.wallet.sign(keyring.address, tx); const senderRawTransaction = tx.getRLPEncoding(); @@ -142,14 +142,14 @@ const sendFeeDelegateTx = async () => { throw new Error("Failed to generate raw transaction"); } // Send signed raw transaction to fee pay. - // 将已签名的原始交易发送到付费者的服务器 + // 將已簽名的原始交易發送到付費者的服務器 client.connect(1337, "127.0.0.1", () => { - console.log("已连接到付费委托服务"); + console.log("已連接到付費委託服務"); client.write(senderRawTransaction); }); client.on("data", (data) => { - console.log("已从服务器接收数据:", data.toString()); + console.log("已從服務器接收數據:", data.toString()); }); client.on("error", (error) => { @@ -171,13 +171,13 @@ sendFeeDelegateTx(); ``` -上述代码使用 "senderPrivateKey "对委托收费转账交易进行签名,并将签名后的 "senderRawTransaction "发送到收费人的服务器,该服务器运行在 "127.0.0.1 "上的 "1337 "端口,即 localhost。 +上述代碼使用 "senderPrivateKey "對委託收費轉賬交易進行簽名,並將簽名後的 "senderRawTransaction "發送到收費人的服務器,該服務器運行在 "127.0.0.1 "上的 "1337 "端口,即 localhost。 -### 3.2 缴费者服务器 +### 3.2 繳費者服務器 -现在,让我们编写缴费人服务器 `feepayer_server.js` ,用 `feePayerPrivateKey` 对收到的 `senderRawTransaction` 进行签名,并将其发送到 Kairos 测试网。 +現在,讓我們編寫繳費人服務器 `feepayer_server.js` ,用 `feePayerPrivateKey` 對收到的 `senderRawTransaction` 進行簽名,並將其發送到 Kairos 測試網。 -在下面的示例中,请用实际值替换`"FEEPAYER_ADDRESS "和`"FEEPAYER_PRIVATEKEY"。 +在下面的示例中,請用實際值替換`"FEEPAYER_ADDRESS "和`"FEEPAYER_PRIVATEKEY"。 ```javascript import { createServer } from "net"; @@ -239,52 +239,52 @@ console.log("Fee delegate service started ..."); ``` -服务器监听端口为 `1337`。 +服務器監聽端口為 `1337`。 -当有 "数据 "传入时,它会用 "付费者私钥 "对 "数据 "进行签名,并将其发送到 Kaia 区块链。 它假定 `data` 是 `sender_client.js` 中的 `senderRawTransaction` 。 +當有 "數據 "傳入時,它會用 "付費者私鑰 "對 "數據 "進行簽名,並將其發送到 Kaia 區塊鏈。 它假定 `data` 是 `sender_client.js` 中的 `senderRawTransaction` 。 -## 4. 运行示例 +## 4. 運行示例 -准备两个终端,一个是 `sender_client.js` 终端,另一个是 `feepayer_server.js` 终端。 +準備兩個終端,一個是 `sender_client.js` 終端,另一個是 `feepayer_server.js` 終端。 -### 4.1 运行 `feepayer_server.js` +### 4.1 運行 `feepayer_server.js` -下面的命令将启动缴费服务器。 +下面的命令將啟動繳費服務器。 ``` $ node feepayer_server.js Fee delegate service started ... ``` -服务器启动并监听 1337 端口。 +服務器啟動並監聽 1337 端口。 -### 4.2 运行 `sender_client.js` +### 4.2 運行 `sender_client.js` -让我们运行 `sender_client.js` 发送一笔委托收费交易。 +讓我們運行 `sender_client.js` 發送一筆委託收費交易。 ``` $ node sender_client.js -已签署收费委托价值转移交易。 -向收费委托服务发送已签名交易。 -连接到收费委托服务 -从服务器接收数据:这是收费委托服务 -从服务器接收数据:费用支付方为 0x811CE345DB9D8aD17513Cc77d76a1ace9eC46F02 -从服务器接收数据:Tx hash is 0x1e6a019bb9c6cf156a6046ca33f0c810fb9fb6fdcb6df32b2e34a1d50f7f8a9d -从服务器接收数据:发件人发送哈希值为 0x7263d2dc5b36abc754726b220b7ad243dd789934109c6874e539ada5c7e9f193 +已簽署收費委託價值轉移交易。 +向收費委託服務發送已簽名交易。 +連接到收費委託服務 +從服務器接收數據:這是收費委託服務 +從服務器接收數據:費用支付方為 0x811CE345DB9D8aD17513Cc77d76a1ace9eC46F02 +從服務器接收數據:Tx hash is 0x1e6a019bb9c6cf156a6046ca33f0c810fb9fb6fdcb6df32b2e34a1d50f7f8a9d +從服務器接收數據:發件人發送哈希值為 0x7263d2dc5b36abc754726b220b7ad243dd789934109c6874e539ada5c7e9f193 ``` -它将用 "发送方 "私钥签署交易,并将签署后的交易发送到费用委托服务(即费用支付方的服务器)。 然后,它将收到缴费委托服务的响应,包括 "缴费人 "地址、"发送哈希值 "和 "发送人发送哈希值"。 Tx哈希值 "是提交给Kaia网络的交易的哈希值,而 "Sender Tx哈希值 "是交易的哈希值,不包含缴费人的地址和签名。 更多详情,请参阅 [SenderTxHash](../../learn/transactions/transactions.md#sendertxhash)。 +它將用 "發送方 "私鑰簽署交易,並將簽署後的交易發送到費用委託服務(即費用支付方的服務器)。 然後,它將收到繳費委託服務的響應,包括 "繳費人 "地址、"發送哈希值 "和 "發送人發送哈希值"。 Tx哈希值 "是提交給Kaia網絡的交易的哈希值,而 "Sender Tx哈希值 "是交易的哈希值,不包含繳費人的地址和簽名。 更多詳情,請參閱 [SenderTxHash](../../learn/transactions/transactions.md#sendertxhash)。 -### 4.3 检查 `feepayer_server.js` +### 4.3 檢查 `feepayer_server.js` -在服务器控制台,您将看到以下输出。 它可以打印来自 Kaia 的交易收据。 +在服務器控制檯,您將看到以下輸出。 它可以打印來自 Kaia 的交易收據。 ``` $ node feepayer_server.js -费用委托服务启动 ... -客户端已连接 ... -从客户端接收数据:0x09f89f0485066720b300830186a094811ce345db9d8ad17513cc77d76a1ace9ec46f02865af3107a400094213eb97cc74af77b78d1cfd968bc89ab816872daf847f8458207f5a0cefe267a80c014d1750c31aa312843b3696a14abebc1be88c63d0b63d6b6f714a0512abfe3533f2cfd924e7decdd21e05f22a22f04b35db09f39839708043daac3940000000000000000000000000000000000000000c4c3018080 -解码交易:FeeDelegatedValueTransfer { +費用委託服務啟動 ... +客戶端已連接 ... +從客戶端接收數據:0x09f89f0485066720b300830186a094811ce345db9d8ad17513cc77d76a1ace9ec46f02865af3107a400094213eb97cc74af77b78d1cfd968bc89ab816872daf847f8458207f5a0cefe267a80c014d1750c31aa312843b3696a14abebc1be88c63d0b63d6b6f714a0512abfe3533f2cfd924e7decdd21e05f22a22f04b35db09f39839708043daac3940000000000000000000000000000000000000000c4c3018080 +解碼交易:FeeDelegatedValueTransfer { _type: 'TxTypeFeeDelegatedValueTransfer', _from: '0x213eb97cc74af77b78d1cfd968bc89ab816872da', _gas: '0x186a0', @@ -346,7 +346,7 @@ $ node feepayer_server.js _value: '0x5af3107a4000', _gasPrice: '0x66720b300' } -交易收据:{ +交易收據:{ blockHash: '0xb2727edaa2ffc8a8fece0ce54154b469887a9f6725bac6811ac610131c135046', blockNumber: '0xa45da40', contractAddress:null, @@ -378,16 +378,16 @@ $ node feepayer_server.js to:'0x811ce345db9d8ad17513cc77d76a1ace9ec46f02', transactionHash: '0x1e6a019bb9c6cf156a6046ca33f0c810fb9fb6fdcb6df32b2e34a1d50f7f8a9d', transactionIndex:'0x1', - 类型:'TxTypeFeeDelegatedValueTransfer', + 類型:'TxTypeFeeDelegatedValueTransfer', typeInt:9, 值:'0x5af3107a4000' } ``` -### 4.4 Kaia 范围 +### 4.4 Kaia 範圍 -您还可以在 [Kaiascope](https://kairos.kaiascope.com) 上找到上述交易。 +您還可以在 [Kaiascope](https://kairos.kaiascope.com) 上找到上述交易。 -它显示该事务为 "TxTypeFeeDelegatedValueTransfer","Fee payer "为 "0x811CE345DB9D8aD17513Cc77d76a1ace9eC46F02 "或您输入的 "feepayerAddress",而 "From "是另一个地址,应为上例中的 "senderAddress"。 +它顯示該事務為 "TxTypeFeeDelegatedValueTransfer","Fee payer "為 "0x811CE345DB9D8aD17513Cc77d76a1ace9eC46F02 "或您輸入的 "feepayerAddress",而 "From "是另一個地址,應為上例中的 "senderAddress"。 -收费委托 Tx](/img/build/tutorials/fee-delegation-example-kaia.png) +收費委託 Tx](/img/build/tutorials/fee-delegation-example-kaia.png) From de67c60ec9293e7481637a9930f4ab78659eef78 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:30 +0800 Subject: [PATCH 0062/2513] New translations kaia-wallet-dapp-integration.md (Chinese Simplified) --- .../tutorials/kaia-wallet-dapp-integration.md | 90 +++++++++---------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/kaia-wallet-dapp-integration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/kaia-wallet-dapp-integration.md index 49451b6047d1..24a4239f1908 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/kaia-wallet-dapp-integration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/kaia-wallet-dapp-integration.md @@ -1,34 +1,34 @@ -# Kaia 钱包 DApp 集成 +# Kaia 錢包 DApp 集成 -## 目录 +## 目錄 -1. [用户界面库](#1-ui-libraries) -2. [实用图书馆](#2-utility-libraries) +1. [用戶界面庫](#1-ui-libraries) +2. [實用圖書館](#2-utility-libraries) 3. [提供商](#3-providers) -## 导言 +## 導言 -[Kaia 钱包](https://docs.kaiawallet.io) 是一个非托管钱包,类似于[Metamask](https://metamask.io),额外支持 Kaia 特有的[交易](https://docs.kaia.io/learn/transactions) 和[账户](https://docs.kaia.io/learn/accounts)。 本文将指导您将 [Kaia Wallet](https://docs.kaiawallet.io)与去中心化应用程序(dApp)集成,从高层(抽象)到低层(细粒度)实现。 +[Kaia 錢包](https://docs.kaiawallet.io) 是一個非託管錢包,類似於[Metamask](https://metamask.io),額外支持 Kaia 特有的[交易](https://docs.kaia.io/learn/transactions) 和[賬戶](https://docs.kaia.io/learn/accounts)。 本文將指導您將 [Kaia Wallet](https://docs.kaiawallet.io)與去中心化應用程序(dApp)集成,從高層(抽象)到低層(細粒度)實現。 -在本指南中,我们将把 Kaia 钱包 dApp 整合分为三大类: +在本指南中,我們將把 Kaia 錢包 dApp 整合分為三大類: -- 用户界面图书馆 -- 实用图书馆 +- 用戶界面圖書館 +- 實用圖書館 - 提供商 :::note -上述库在引擎盖下使用 "提供者"。 +上述庫在引擎蓋下使用 "提供者"。 ::: -## 1. 用户界面图书馆 +## 1. 用戶界面圖書館 -许多 dApp 利用前端框架进行状态管理和提供反应式服务。 将 Kaia 钱包与此类应用程序集成的推荐方法是使用基于相同框架构建的用户界面库。 +許多 dApp 利用前端框架進行狀態管理和提供反應式服務。 將 Kaia 錢包與此類應用程序集成的推薦方法是使用基於相同框架構建的用戶界面庫。 -用户界面库为用户交互提供组件,如 "ConnectWallet "组件。 它们还能为您省去管理多账户和多网络等低级状态的麻烦。 您可以查看底层的 [Utility Library](#2-utility-libraries)或 [Provider] (#3-providers),了解复杂或低级的交互。 +用戶界面庫為用戶交互提供組件,如 "ConnectWallet "組件。 它們還能為您省去管理多賬戶和多網絡等低級狀態的麻煩。 您可以查看底層的 [Utility Library](#2-utility-libraries)或 [Provider] (#3-providers),瞭解複雜或低級的交互。 -虽然大多数用户界面库都内置了对 Metamask 的支持,但由于 Kaia Wallet 的[API](https://docs.kaia.io/references/json-rpc/kaia/account-created/)是基于[Metamask's](https://docs.metamask.io/wallet/reference/json-rpc-api)构建的,因此集成起来也很容易。 即使一个库没有原生支持 Kaia 钱包,扩展它以集成 Kaia 钱包也很简单。 例如,这是 [React](https://react.dev) 或 [Next.js](https://nextjs.org) 的 2 个流行库: +雖然大多數用戶界面庫都內置了對 Metamask 的支持,但由於 Kaia Wallet 的[API](https://docs.kaia.io/references/json-rpc/kaia/account-created/)是基於[Metamask's](https://docs.metamask.io/wallet/reference/json-rpc-api)構建的,因此集成起來也很容易。 即使一個庫沒有原生支持 Kaia 錢包,擴展它以集成 Kaia 錢包也很簡單。 例如,這是 [React](https://react.dev) 或 [Next.js](https://nextjs.org) 的 2 個流行庫: - [Appkit](#1.1-appkit-example) - [Web3-Onboard](#1.2-web3-onboard-example) @@ -37,19 +37,19 @@ ![Appkit Hero Banner](https://docs.reown.com/assets/images/appkit-18fbf6d4ddb8756740540b7adad92494.png) -通过 [Reown](https://reown.com/),[Appkit](https://docs.reown.com/appkit/overview) 提供以下**功能:** +通過 [Reown](https://reown.com/),[Appkit](https://docs.reown.com/appkit/overview) 提供以下**功能:** -- 连接钱包、账户信息和网络信息的按钮 + 模式 -- 支持 [电子邮件钱包](https://docs.reown.com/appkit/authentication/socials)、[Coinbase](https://www.coinbase.com) 账户和 [EIP-4361](https://docs.reown.com/appkit/authentication/one-click-auth) +- 連接錢包、賬戶信息和網絡信息的按鈕 + 模式 +- 支持 [電子郵件錢包](https://docs.reown.com/appkit/authentication/socials)、[Coinbase](https://www.coinbase.com) 賬戶和 [EIP-4361](https://docs.reown.com/appkit/authentication/one-click-auth) -**考虑因素:** +**考慮因素:** -- 使用 [@reown/appkit](https://www.npmjs.com/package/@reown/appkit),您可以选择提交到 [Wagmi](https://wagmi.sh) & [Tanstack Query](https://tanstack.com/query) 的前端堆栈,或者只提交到 [Ethers](https://docs.ethers.org/v6/) -- 需要 `projectId` [使用 Reown 注册](https://cloud.walletconnect.com/sign-in) +- 使用 [@reown/appkit](https://www.npmjs.com/package/@reown/appkit),您可以選擇提交到 [Wagmi](https://wagmi.sh) & [Tanstack Query](https://tanstack.com/query) 的前端堆棧,或者只提交到 [Ethers](https://docs.ethers.org/v6/) +- 需要 `projectId` [使用 Reown 註冊](https://cloud.walletconnect.com/sign-in) :::note -示例代码:[kaikas-web3modal](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/kaikas.md) +示例代碼:[kaikas-web3modal](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/kaikas.md) ::: @@ -59,59 +59,59 @@ 由[Blocknative](https://www.blocknative.com)、[Web3-Onboard](https://onboard.blocknative.com)提供以下**功能:** -- 可配置的机载文本 -- 连接钱包、交换账户和交换网络的模式 -- [通知组件](https://onboard.blocknative.com/docs/modules/core#customnotification) -- (可选)注册 API 密钥以获取和呈现实时数据 +- 可配置的機載文本 +- 連接錢包、交換賬戶和交換網絡的模式 +- [通知組件](https://onboard.blocknative.com/docs/modules/core#customnotification) +- (可選)註冊 API 密鑰以獲取和呈現即時數據 -**考虑因素:** +**考慮因素:** -- 您必须编写您的按钮 +- 您必須編寫您的按鈕 :::note -示例代码:[kaikas-web3onboard-react](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/web3Onboard.md) +示例代碼:[kaikas-web3onboard-react](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/web3Onboard.md) ::: -## 2. 实用图书馆 +## 2. 實用圖書館 -kaia-sdk](#21-kaia-sdk) 和 [ethers.js](#22-ethersjs-example) 等库的抽象程度足以简化区块链交互,同时还能直接调用 [Provider](#3-providers) API。 +kaia-sdk](#21-kaia-sdk) 和 [ethers.js](#22-ethersjs-example) 等庫的抽象程度足以簡化區塊鏈交互,同時還能直接調用 [Provider](#3-providers) API。 -使用实用程序库连接账户或发送本地令牌(如 KAIA/ETH),在语法和代码行数\*方面与直接调用提供商没有区别。 图书馆主要在以下方面有所改进: +使用實用程序庫連接賬戶或發送本地令牌(如 KAIA/ETH),在語法和代碼行數\*方面與直接調用提供商沒有區別。 圖書館主要在以下方面有所改進: -- 智能合约互动 - - 这些涉及 ABI、编码输入和解码输出。 如果没有库,这些代码可能会冗长且容易出错。 -- 错误处理 - - 字符串错误代码/信息被映射到具有自定义属性和方法的错误类。 -- 文件和类型安全 +- 智能合約互動 + - 這些涉及 ABI、編碼輸入和解碼輸出。 如果沒有庫,這些代碼可能會冗長且容易出錯。 +- 錯誤處理 + - 字符串錯誤代碼/信息被映射到具有自定義屬性和方法的錯誤類。 +- 文件和類型安全 ### 2.1. kaia-sdk -[kaia-sdk](https://github.com/kaiachain/kaia-sdk)是其他实用程序库(如 [ethers.js](https://docs.ethers.io/v6) 和 [web3.js](https://web3js.org))的插入式扩展集。 它允许您使用自己喜欢的库,同时为[Kaia 特定方法](https://docs.kaia.io/references/json-rpc/kaia/account-created/)提供第一方支持: +[kaia-sdk](https://github.com/kaiachain/kaia-sdk)是其他實用程序庫(如 [ethers.js](https://docs.ethers.io/v6) 和 [web3.js](https://web3js.org))的插入式擴展集。 它允許您使用自己喜歡的庫,同時為[Kaia 特定方法](https://docs.kaia.io/references/json-rpc/kaia/account-created/)提供第一方支持: -- 交易、账户和账户密钥类型 -- 收费代表团 +- 交易、賬戶和賬戶密鑰類型 +- 收費代表團 :::note -示例代码:[kaikas-web3klaytn](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/kaikas.md) +示例代碼:[kaikas-web3klaytn](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/kaikas.md) ::: ### 2.2. ethers.js 示例 -[etherthers.js](https://docs.ethers.io/v6)是[最受欢迎的](https://npmtrends.com/web3klaytn-vs-ethers-vs-viem-vs-web3) JavaScript 工具库,用于与区块链进行交互。 它的目标是 +[etherthers.js](https://docs.ethers.io/v6)是[最受歡迎的](https://npmtrends.com/web3klaytn-vs-ethers-vs-viem-vs-web3) JavaScript 工具庫,用於與區塊鏈進行交互。 它的目標是 -- 广泛:支持多种钱包格式、语言和功能 -- 稳健:全面的测试、文档和键入 +- 廣泛:支持多種錢包格式、語言和功能 +- 穩健:全面的測試、文檔和鍵入 :::note -示例代码:[kaikas-ethersjs](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/ethers-js.md) +示例代碼:[kaikas-ethersjs](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/ethers-js.md) ::: ## 3. 提供商 -最底层是提供程序 [`window.klaytn`](https://docs.kaiawallet.io/02_api_reference/01_klaytn_provider)(Kaia 钱包本身)。 您可能更喜欢[实用库](#2-utility-libraries),但了解提供程序接口有助于调试和理解依赖库如何工作。 要使用 Kaia 特有的方法,如 [`kaia_getAccount`](https://docs.kaia.io/references/json-rpc/kaia/get-account/)、[`kaia_sendTransactionAsFeePayer`](https://docs.kaia.io/references/json-rpc/kaia/send-transaction-as-fee-payer/) 等,必须参考 [Kaia 的 JSON-RPC API][Kaia-API]。 +最底層是提供程序 [`window.klaytn`](https://docs.kaiawallet.io/02_api_reference/01_klaytn_provider)(Kaia 錢包本身)。 您可能更喜歡[實用庫](#2-utility-libraries),但瞭解提供程序接口有助於調試和理解依賴庫如何工作。 要使用 Kaia 特有的方法,如 [`kaia_getAccount`](https://docs.kaia.io/references/json-rpc/kaia/get-account/)、[`kaia_sendTransactionAsFeePayer`](https://docs.kaia.io/references/json-rpc/kaia/send-transaction-as-fee-payer/) 等,必須參考 [Kaia 的 JSON-RPC API][Kaia-API]。 From b41032aa1e64be5bd7249429bf6d517a8bd0bc05 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:33 +0800 Subject: [PATCH 0063/2513] New translations tutorials.md (Chinese Simplified) --- .../current/build/tutorials/tutorials.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/tutorials.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/tutorials.md index 93c3973beb46..fee6a62fb313 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/tutorials.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/tutorials.md @@ -1,6 +1,6 @@ # 教程 -本章包含实用的 dApp 示例,并附有完整的源代码和说明。 +本章包含實用的 dApp 示例,並附有完整的源代碼和說明。 ```mdx-code-block import DocCardList from '@theme/DocCardList'; From 853da1ed803466a850cc3aef614853a2ba1a8916 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:29:41 +0800 Subject: [PATCH 0064/2513] New translations verifying-contracts.md (Chinese Simplified) --- .../build/tutorials/verifying-contracts.md | 152 +++++++++--------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/verifying-contracts.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/verifying-contracts.md index 9e46288865d7..d2ea80d4415b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/verifying-contracts.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/verifying-contracts.md @@ -1,34 +1,34 @@ --- -sidebar_label: 核实合同 +sidebar_label: 核實合同 --- -# 如何使用区块探索器验证智能合约 +# 如何使用區塊探索器驗證智能合約 -## 导言 +## 導言 -通常情况下,智能合约的部署者是唯一能接触到实际部署代码的一方,在部署者验证之前,公众无法读取合约的源代码。 然而,这正是合约验证作为智能合约开发周期中一个重要步骤的作用所在,因为它有助于提高已部署合约的透明度(对用户而言)、便利性(对开发者而言)和安全性。 +通常情況下,智能合約的部署者是唯一能接觸到實際部署代碼的一方,在部署者驗證之前,公眾無法讀取合約的源代碼。 然而,這正是合約驗證作為智能合約開發週期中一個重要步驟的作用所在,因為它有助於提高已部署合約的透明度(對用戶而言)、便利性(對開發者而言)和安全性。 -尽管如此,一旦智能合约得到验证,Kaiascope 和 Kaiascan 等区块探索器还可以让公众使用区块探索器的用户界面与合约的公共方法进行交互。 除此之外,公众还可以直接访问经过验证的合同源代码。 +儘管如此,一旦智能合約得到驗證,Kaiascope 和 Kaiascan 等區塊探索器還可以讓公眾使用區塊探索器的用戶界面與合約的公共方法進行交互。 除此之外,公眾還可以直接訪問經過驗證的合同源代碼。 -在本指南中,我们将了解如何使用区块探索器验证 Kaia 网络上部署的智能合约。 +在本指南中,我們將瞭解如何使用區塊探索器驗證 Kaia 網絡上部署的智能合約。 -## 先决条件 +## 先決條件 -- [Remix IDE](https://ide.kaia.io/)和[Kaia 钱包](https://docs.kaiawallet.io/getting_started/quick_start#install-kaia-wallet) -- 从 [水龙头](https://faucet.kaia.io) 测试 KAIA 是否足够 +- [Remix IDE](https://ide.kaia.io/)和[Kaia 錢包](https://docs.kaiawallet.io/getting_started/quick_start#install-kaia-wallet) +- 從 [水龍頭](https://faucet.kaia.io) 測試 KAIA 是否足夠 -## 开始 +## 開始 -在本指南中,我们将介绍在 Kaia 生态系统中存在的区块探索器上验证单个合约和多部分合约的方法,这些探索器是: +在本指南中,我們將介紹在 Kaia 生態系統中存在的區塊探索器上驗證單個合約和多部分合約的方法,這些探索器是: - [Kaiascope](https://kaiascope.com/) - [Kaiascan](https://www.kaiascan.io/) -废话不多说,让我们开始吧! +廢話不多說,讓我們開始吧! -## 部署单一合同 +## 部署單一合同 -要验证智能合约,首先需要在目标网络上部署合约。 因此,在本指南中,我们将把合同部署到 Kaia Kairos Testnet。 此外,在本教程中,我们将在 Remix IDE 上部署一个名为 "Counter.sol "的简单计数器合约。 代码如下所示: +要驗證智能合約,首先需要在目標網絡上部署合約。 因此,在本指南中,我們將把合同部署到 Kaia Kairos Testnet。 此外,在本教程中,我們將在 Remix IDE 上部署一個名為 "Counter.sol "的簡單計數器合約。 代碼如下所示: ```solidity // SPDX-License-Identifier: MIT @@ -52,35 +52,35 @@ contract Counter { :::note -您可以查看此页面,了解使用 Kaia Kairos Testnet 上的 [libraries](../../references/sdk/sdk.md) 部署智能合约的教程。 您也可以使用 [Hardhat](../get-started/hardhat.md), [Foundry](../smart-contracts/deploy/foundry.md), [Remix](../smart-contracts/deploy/deploy.md#remix-ide) 等开发工具或其他工具(如果愿意),将智能合约部署到 Kaia Kairos Testnet。 +您可以查看此頁面,瞭解使用 Kaia Kairos Testnet 上的 [libraries](../../references/sdk/sdk.md) 部署智能合約的教程。 您也可以使用 [Hardhat](../get-started/hardhat.md), [Foundry](../smart-contracts/deploy/foundry.md), [Remix](../smart-contracts/deploy/deploy.md#remix-ide) 等開發工具或其他工具(如果願意),將智能合約部署到 Kaia Kairos Testnet。 ::: -## 单一合同核查参数 +## 單一合同核查參數 -在区块探索器上验证合约需要一些参数,在部署智能合约时必须考虑这些参数。 以下是与合同编译器和部署有关的一些细节,以便成功验证合同: +在區塊探索器上驗證合約需要一些參數,在部署智能合約時必須考慮這些參數。 以下是與合同編譯器和部署有關的一些細節,以便成功驗證合同: Remix IDE : -- 在 Remix IDE 上,导航至**Solidity 编译器选项卡**。 +- 在 Remix IDE 上,導航至**Solidity 編譯器選項卡**。 - - 观察用于编译和部署合同的 \*\* 编译器版本\*\*。 - - 注意合同中使用的**开源许可类型**。 这意味着在 Solidity 源文件开头使用的 SPDX 许可证标识符。 在 `Counter.sol` 文件中,我们使用了 `// SPDX-License-Identifier:MIT` - - 注意用于部署合同的 **EVM 版本**。 - - (可选)如果在编译过程中启用了**优化**,请注意优化运行参数的值 + - 觀察用於編譯和部署合同的 \*\* 編譯器版本\*\*。 + - 注意合同中使用的**開源許可類型**。 這意味著在 Solidity 源文件開頭使用的 SPDX 許可證標識符。 在 `Counter.sol` 文件中,我們使用了 `// SPDX-License-Identifier:MIT` + - 注意用於部署合同的 **EVM 版本**。 + - (可選)如果在編譯過程中啟用了**優化**,請注意優化運行參數的值 ![](/img/build/tutorials/counter-veri-parameters.png) -- 在 Remix IDE 上,导航至 **Kaia 选项卡**。 +- 在 Remix IDE 上,導航至 **Kaia 選項卡**。 - - (可选) 如果合约构造函数方法接受参数,请注意构造函数参数的[ABI-编码形式](https://docs.soliditylang.org/en/develop/abi-spec.html) - - 成功部署后,在**已部署合约**选项卡上记下智能合约的合约地址。 + - (可選) 如果合約構造函數方法接受參數,請注意構造函數參數的[ABI-編碼形式](https://docs.soliditylang.org/en/develop/abi-spec.html) + - 成功部署後,在**已部署合約**選項卡上記下智能合約的合約地址。 ![](/img/build/tutorials/counter-veri-parametersII.png) ## 部署多部分合同 -值得注意的是,部署多部分合同的步骤与部署单部分合同的步骤相同。 在本指南中,我们将部署一个名为 `airdropToken.sol` 的简单 KIP7 空投合约。 代码如下所示: +值得注意的是,部署多部分合同的步驟與部署單部分合同的步驟相同。 在本指南中,我們將部署一個名為 `airdropToken.sol` 的簡單 KIP7 空投合約。 代碼如下所示: ```solidity //SPDX-License-Identifier: MIT @@ -114,86 +114,86 @@ contract TokenAirdrop is KIP7, Ownable { } ``` -## 多部分合同核查参数 +## 多部分合同核查參數 -验证多部分合同的参数与验证单部分合同的参数相同。 但是,由于它们是由多个从属合同组成的,我们需要将合同的所有从属关系预处理成一个单一的 solidity 文件。 这种预处理通常被称为智能合约扁平化。 +驗證多部分合同的參數與驗證單部分合同的參數相同。 但是,由於它們是由多個從屬合同組成的,我們需要將合同的所有從屬關係預處理成一個單一的 solidity 文件。 這種預處理通常被稱為智能合約扁平化。 -因此,我们必须将合约扁平化,以便在区块资源管理器上使用新的扁平化 Solidity 文件进行验证。 +因此,我們必須將合約扁平化,以便在區塊資源管理器上使用新的扁平化 Solidity 文件進行驗證。 Remix IDE: -- 在 Remix IDE 上,导航至**文件资源管理器选项卡**。 +- 在 Remix IDE 上,導航至**文件資源管理器選項卡**。 - - 在**合同**文件夹下选择新创建的合同 - - 点击或用双指轻点,即可查看合同上的所有可用命令。 - - 选择 \*\* 压平\*\* + - 在**合同**文件夾下選擇新創建的合同 + - 點擊或用雙指輕點,即可查看合同上的所有可用命令。 + - 選擇 \*\* 壓平\*\* ![](/img/build/tutorials/airdropToken-flattened.png) - - 一旦代码被扁平化,你将看到一个名为 `airdropTokens_flattened.sol` 的新合约。 + - 一旦代碼被扁平化,你將看到一個名為 `airdropTokens_flattened.sol` 的新合約。 ![](/img/build/tutorials/airdropToken-flattened-file.png) :::note -有不同的工具可以将多部分智能合约扁平化为一个单一的 Solidity 文件,如 [Hardhat Flattener](https://hardhat.org/hardhat-runner/docs/advanced/flattening)。 请参阅相关智能合约扁平化工具的文档,了解更详细的使用说明。 +有不同的工具可以將多部分智能合約扁平化為一個單一的 Solidity 文件,如 [Hardhat Flattener](https://hardhat.org/hardhat-runner/docs/advanced/flattening)。 請參閱相關智能合約扁平化工具的文檔,瞭解更詳細的使用說明。 ::: -## 核实合同 +## 核實合同 -在获得所有验证参数后,我们将在本节中详细介绍在区块资源管理器上验证单一智能合约(Counter.sol)和多部分智能合约(airdropTokens.sol)的步骤。 +在獲得所有驗證參數後,我們將在本節中詳細介紹在區塊資源管理器上驗證單一智能合約(Counter.sol)和多部分智能合約(airdropTokens.sol)的步驟。 ### 1. Kaiascope -要在 Kaiascope 上验证单份合同和多份合同,请按以下步骤操作: +要在 Kaiascope 上驗證單份合同和多份合同,請按以下步驟操作: -#### 1.1 验证单一合同 +#### 1.1 驗證單一合同 -1. 进入 [Kaiascope](https://kairos.kaiascope.com)的搜索栏,粘贴已部署的合同地址。 -2. 导航至该页面上的**合同选项卡**。 -3. 单击**匹配合同源代码**链接,提交合同代码以供验证。 +1. 進入 [Kaiascope](https://kairos.kaiascope.com)的搜索欄,粘貼已部署的合同地址。 +2. 導航至該頁面上的**合同選項卡**。 +3. 單擊**匹配合同源代碼**鏈接,提交合同代碼以供驗證。 ![](/img/build/tutorials/counter-contract-tab.png) -4. 在合同验证页面,确保您的账户已连接到 Kaia 钱包或 Metamask。 在本指南中,我们将使用 Kaia 钱包。 -5. 在**合同地址栏**中填写合同地址。 注:该字段通常会自动填写合同地址。 -6. 选择 "Counter.sol "示例使用的**编译器版本**。 -7. 选择用于 "Counter.sol "示例的**开源许可类型**。 在 "Counter.sol "示例中,选择 "**MIT License (MIT)**" 选项。 如果没有使用许可证,请选择 **无许可证(无)**。 -8. 在**源代码字段**中,选择**源文本**,然后在文本字段中粘贴 "Counter.sol "的源代码。 -9. 如果在编译过程中启用了**优化**,则为**优化**选择**真**,并在**优化运行**下填写运行次数为**200**。 -10. 为合同选择 **EVM 版本**。 以 "Counter.sol "为例,选择 "**伊斯坦布尔**"选项。 -11. 点击底部的验证码和**签名并提交**按钮,确认并开始验证。 +4. 在合同驗證頁面,確保您的賬戶已連接到 Kaia 錢包或 Metamask。 在本指南中,我們將使用 Kaia 錢包。 +5. 在**合同地址欄**中填寫合同地址。 注:該字段通常會自動填寫合同地址。 +6. 選擇 "Counter.sol "示例使用的**編譯器版本**。 +7. 選擇用於 "Counter.sol "示例的**開源許可類型**。 在 "Counter.sol "示例中,選擇 "**MIT License (MIT)**" 選項。 如果沒有使用許可證,請選擇 **無許可證(無)**。 +8. 在**源代碼字段**中,選擇**源文本**,然後在文本字段中粘貼 "Counter.sol "的源代碼。 +9. 如果在編譯過程中啟用了**優化**,則為**優化**選擇**真**,並在**優化運行**下填寫運行次數為**200**。 +10. 為合同選擇 **EVM 版本**。 以 "Counter.sol "為例,選擇 "**伊斯坦布爾**"選項。 +11. 點擊底部的驗證碼和**簽名並提交**按鈕,確認並開始驗證。 ![](/img/build/tutorials/counter-verification-page.png) -12. 签署验证请求后,您将收到验证状态通知 +12. 簽署驗證請求後,您將收到驗證狀態通知 ![](/img/build/tutorials/counter-success-popup.png) -13. 验证完成后,浏览器将显示验证结果,并显示包含合同地址的成功结果页面。 点击合同地址,查看**合同源代码**、**合同 ABI**和**字节码**。 +13. 驗證完成後,瀏覽器將顯示驗證結果,並顯示包含合同地址的成功結果頁面。 點擊合同地址,查看**合同源代碼**、**合同 ABI**和**字節碼**。 ![](/img/build/tutorials/counter-success-popup-I.png) ![](/img/build/tutorials/counter-full-verification.png) -#### 1.2 验证多部分合同 +#### 1.2 驗證多部分合同 -在 Kaiascope 上验证多部分合同与验证单部分合同一样简单,只是需要一些额外的步骤。 在本节中,我们将通过以下额外步骤验证 `airdropToken.sol` 合约: +在 Kaiascope 上驗證多部分合同與驗證單部分合同一樣簡單,只是需要一些額外的步驟。 在本節中,我們將通過以下額外步驟驗證 `airdropToken.sol` 合約: -- 您可以在**源代码**下选择**源文本**(Counter.sol 示例的第 3 步),或在**源代码**字段下选择**合并文件**。 在**源文本**的情况下,复制 "airdropToken_flattened.sol "中的代码并粘贴到文本字段中。 如果**实体文件**,可在 Remix IDE 上下载 "airdropToken_flattened.sol "文件并上传到字段。 +- 您可以在**源代碼**下選擇**源文本**(Counter.sol 示例的第 3 步),或在**源代碼**字段下選擇**合併文件**。 在**源文本**的情況下,複製 "airdropToken_flattened.sol "中的代碼並粘貼到文本字段中。 如果**實體文件**,可在 Remix IDE 上下載 "airdropToken_flattened.sol "文件並上傳到字段。 -a. 来源文本 +a. 來源文本 ![](/img/build/tutorials/airdrop-veri-field-I.png) -b. 固体文件 +b. 固體文件 ![](/img/build/tutorials/airdrop-veri-field-II.png) -在此之后,其他所有步骤都与验证单个合同相同。 填写验证参数后,点击**签署并提交**按钮进行确认并开始验证。 +在此之後,其他所有步驟都與驗證單個合同相同。 填寫驗證參數後,點擊**簽署並提交**按鈕進行確認並開始驗證。 -验证完成后,浏览器将显示验证结果,并显示包含合同地址的成功结果页面。 点击合同地址,查看**合同源代码**、**合同 ABI**和**字节码**。 +驗證完成後,瀏覽器將顯示驗證結果,並顯示包含合同地址的成功結果頁面。 點擊合同地址,查看**合同源代碼**、**合同 ABI**和**字節碼**。 ![](/img/build/tutorials/airdrop-success-popup.png) @@ -203,41 +203,41 @@ b. 固体文件 ### 2. Kaiascan -要在 Kaiascan 上验证单个合同和多部分合同,请浏览[合同提交申请页面](https://kairos.kaiascan.io/contracts)。 不过,请确保您的账户已连接到 Kaia 钱包或 MetaMask,并按照以下步骤操作: +要在 Kaiascan 上驗證單個合同和多部分合同,請瀏覽[合同提交申請頁面](https://kairos.kaiascan.io/contracts)。 不過,請確保您的賬戶已連接到 Kaia 錢包或 MetaMask,並按照以下步驟操作: ![](/img/build/tutorials/klaytnfinder-con-sub-page.png) -#### 2.1 核查单一合同 +#### 2.1 核查單一合同 -1. 请注意**此合同是否为令牌**字段? 在使用官方网站 URL、官方电子邮件地址和令牌徽标图像验证令牌合约时,需要使用此字段。 在本指南中,请选择**否**,因为我们不是在验证商业代币合约。 -2. 填写已部署合同的**合同地址** (Counter.sol) -3. 确保从 Remix IDE 下载 "Counter.sol",并上载到\*\*源代码(Solidity 文件)\*\*字段。 -4. 选择 "Counter.sol "示例使用的**编译器版本** -5. 选择用于 "Counter.sol "示例的**开源许可类型**。 在 "Counter.sol "示例中,选择 "**MIT License (MIT)**" 选项。 如果没有使用,请选择 **无许可证(无)** -6. 为合同选择 **EVM 版本**。 以 "Counter.sol "为例,选择 "**伊斯坦布尔**"选项。 -7. 如果在编译过程中启用了**优化**,则为**优化**选择**真**,并在**优化运行**下填写运行次数为**200**。 -8. (可选)要获取该字段的 ABI 编码构造函数参数,请访问 [abi.hashex.org](http://abi.hashex.org),获取下图所示的编码数据: +1. 請注意**此合同是否為令牌**字段? 在使用官方網站 URL、官方電子郵件地址和令牌徽標圖像驗證令牌合約時,需要使用此字段。 在本指南中,請選擇**否**,因為我們不是在驗證商業代幣合約。 +2. 填寫已部署合同的**合同地址** (Counter.sol) +3. 確保從 Remix IDE 下載 "Counter.sol",並上載到\*\*源代碼(Solidity 文件)\*\*字段。 +4. 選擇 "Counter.sol "示例使用的**編譯器版本** +5. 選擇用於 "Counter.sol "示例的**開源許可類型**。 在 "Counter.sol "示例中,選擇 "**MIT License (MIT)**" 選項。 如果沒有使用,請選擇 **無許可證(無)** +6. 為合同選擇 **EVM 版本**。 以 "Counter.sol "為例,選擇 "**伊斯坦布爾**"選項。 +7. 如果在編譯過程中啟用了**優化**,則為**優化**選擇**真**,並在**優化運行**下填寫運行次數為**200**。 +8. (可選)要獲取該字段的 ABI 編碼構造函數參數,請訪問 [abi.hashex.org](http://abi.hashex.org),獲取下圖所示的編碼數據: ![](/img/build/tutorials/abi-hashex.png) -9. 点击**签署并提交**按钮,确认并开始验证。 +9. 點擊**簽署並提交**按鈕,確認並開始驗證。 ![](/img/build/tutorials/counter-k-verification-page.png) -10. 验证完成后,您将收到**提交成功**信息。 现在,您可以在资源管理器搜索栏中粘贴合同地址,查看**合同源代码**、**合同 ABI**、**创建代码**和**ABI 编码值**。 +10. 驗證完成後,您將收到**提交成功**信息。 現在,您可以在資源管理器搜索欄中粘貼合同地址,查看**合同源代碼**、**合同 ABI**、**創建代碼**和**ABI 編碼值**。 > ![](/img/build/tutorials/counter-k-full-verification.png) -### 2.2 验证多部分合同 +### 2.2 驗證多部分合同 -在 Kaiascan 验证多部分合同的步骤与验证单个合同相同。 不过,需要注意的是,我们将在 \*\* 源代码(Solidity 文件)\*\* 字段上传 `airdropToken_flattened.sol` 文件。 +在 Kaiascan 驗證多部分合同的步驟與驗證單個合同相同。 不過,需要注意的是,我們將在 \*\* 源代碼(Solidity 文件)\*\* 字段上傳 `airdropToken_flattened.sol` 文件。 ![](/img/build/tutorials/airdrop-k-verification-page.png) -填写验证参数后,点击**签署并提交**按钮进行确认并开始验证。 验证完成后,您将收到**提交成功**信息。 现在,您可以在资源管理器搜索栏中粘贴合同地址,查看**合同源代码**、**合同 ABI**和**创建代码**。 +填寫驗證參數後,點擊**簽署並提交**按鈕進行確認並開始驗證。 驗證完成後,您將收到**提交成功**信息。 現在,您可以在資源管理器搜索欄中粘貼合同地址,查看**合同源代碼**、**合同 ABI**和**創建代碼**。 ![](/img/build/tutorials/airdrop-k-full-verification.png) -## 结论 +## 結論 -恭喜您遵循本指南! 在本教程中,您将学习如何使用 Kaiascope 和 Kaiascan 来验证合同(单部分和多部分),以提高部署合同的透明度(对用户)、便利性(对开发人员)和安全性。 如需了解更多信息,请访问 [Kaia 文档](https://docs.klaytn.foundation/);如有任何问题,请访问 [Kaia 论坛](https://devforum.kaia.io/)。 +恭喜您遵循本指南! 在本教程中,您將學習如何使用 Kaiascope 和 Kaiascan 來驗證合同(單部分和多部分),以提高部署合同的透明度(對用戶)、便利性(對開發人員)和安全性。 如需瞭解更多信息,請訪問 [Kaia 文檔](https://docs.klaytn.foundation/);如有任何問題,請訪問 [Kaia 論壇](https://devforum.kaia.io/)。 From f23c1ad1c617a5e0416c620c8d94331ed053833e Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:45:43 +0800 Subject: [PATCH 0065/2513] New translations scaffold-eth.md (Chinese Simplified) --- .../current/build/tutorials/scaffold-eth.md | 140 +++++++++--------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/scaffold-eth.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/scaffold-eth.md index d45c49a963dd..eb2b237e2f6c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/scaffold-eth.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/scaffold-eth.md @@ -1,46 +1,46 @@ -# 使用 Scaffold-ETH 2 构建 dApp +# 使用 Scaffold-ETH 2 構建 dApp ![](/img/banners/kaia-scaffold.png) -## 导言 +## 導言 -Scaffold-ETH 2 是一个开源工具包,用于在以太坊和其他与 EVM 兼容的区块链(如 Kaia)上构建去中心化应用程序(dApps)。 借助 Scaffold-ETH 2,开发人员可以轻松部署 Solidity 智能合约,并使用 React 前端启动 dApp。 +Scaffold-ETH 2 是一個開源工具包,用於在以太坊和其他與 EVM 兼容的區塊鏈(如 Kaia)上構建去中心化應用程序(dApps)。 藉助 Scaffold-ETH 2,開發人員可以輕鬆部署 Solidity 智能合約,並使用 React 前端啟動 dApp。 -Scaffold-ETH 2 工具包使用 Next.js、RainbowKit、Hardhat、Foundry、Wagmi 和 TypeScript 构建。 开发人员可以使用 Hardhat 或 Foundry 轻松创建、测试和部署智能合约,还可以使用 Next.js 构建 React 前端。 +Scaffold-ETH 2 工具包使用 Next.js、RainbowKit、Hardhat、Foundry、Wagmi 和 TypeScript 構建。 開發人員可以使用 Hardhat 或 Foundry 輕鬆創建、測試和部署智能合約,還可以使用 Next.js 構建 React 前端。 -在本教程中,您将学习如何使用 Scaffold-ETH 2 在 Kaia 上部署、运行合约和构建 dApp。 +在本教程中,您將學習如何使用 Scaffold-ETH 2 在 Kaia 上部署、運行合約和構建 dApp。 -## 先决条件 +## 先決條件 -要开始学习本指南,您需要 +要開始學習本指南,您需要 -- [节点 (>= v18.17)](https://nodejs.org/en/download/) -- 纱线([v1](https://classic.yarnpkg.com/en/docs/install/) 或 [v2+](https://yarnpkg.com/getting-started/install)) -- 熟悉 Javascript 和 React 基础知识,例如钩子 -- [Metamask钱包](https://metamask.io/download/) -- 测试来自 [龙头] 的 KAIA(https://faucet.kaia.io) -- RPC 端点:您可以从其中一个受支持的 [端点提供程序](https://docs.kaia.io/references/public-en/) 获取该端点。 +- [節點 (>= v18.17)](https://nodejs.org/en/download/) +- 紗線([v1](https://classic.yarnpkg.com/en/docs/install/) 或 [v2+](https://yarnpkg.com/getting-started/install)) +- 熟悉 Javascript 和 React 基礎知識,例如鉤子 +- [Metamask錢包](https://metamask.io/download/) +- 測試來自 [龍頭] 的 KAIA(https://faucet.kaia.io) +- RPC 端點:您可以從其中一個受支持的 [端點提供程序](https://docs.kaia.io/references/public-en/) 獲取該端點。 -## 设置开发环境 +## 設置開發環境 -要安装 Scaffold-ETH 2,您有两个选择,要么克隆 [Scaffold-ETH 2 资源库](https://github.com/scaffold-eth/scaffold-eth-2),要么使用 `npx create-eth@latest` 安装。 +要安裝 Scaffold-ETH 2,您有兩個選擇,要麼克隆 [Scaffold-ETH 2 資源庫](https://github.com/scaffold-eth/scaffold-eth-2),要麼使用 `npx create-eth@latest` 安裝。 -在本指南中,我们将使用 npx 方法来引导 Scaffold-ETH 2 项目。 +在本指南中,我們將使用 npx 方法來引導 Scaffold-ETH 2 項目。 -运行以下命令引导 Scaffold-ETH 2 项目: +運行以下命令引導 Scaffold-ETH 2 項目: ```bash npx create-eth@latest ``` -您将看到一系列提示: +您將看到一系列提示: -**项目名称**:输入项目名称: 输入项目名称,如 kaia-scaffold-example。 +**項目名稱**:輸入項目名稱: 輸入項目名稱,如 kaia-scaffold-example。 -\*\* 实体框架\*\*;您想使用哪种实体框架?选择您喜欢的实体框架(Hardhat、Foundry)。 在本指南中,我们将使用 Hardhat 框架。 +\*\* 實體框架\*\*;您想使用哪種實體框架?選擇您喜歡的實體框架(Hardhat、Foundry)。 在本指南中,我們將使用 Hardhat 框架。 -**Install packages?**:按回车键表示是(默认选项)或输入 n 并按回车键表示否 -设置完成后,导航至项目目录。 +**Install packages?**:按回車鍵表示是(默認選項)或輸入 n 並按回車鍵表示否 +設置完成後,導航至項目目錄。 ```bash cd project-name @@ -49,51 +49,51 @@ cd project-name ![Scaffold-ETH setup](/img/build/tutorials/scaffold-1.png) -## Scaffold-ETH 2 开发过程的亮点 +## Scaffold-ETH 2 開發過程的亮點 -使用 Scaffold-ETH 2 开发项目的流程可概述如下: +使用 Scaffold-ETH 2 開發項目的流程可概述如下: -1. 为 Kaia 更新 Hardhat 中的网络配置 -2. 将智能合约添加到 **packages/hardhat/contracts** 中 -3. 编辑 **packages/hardhat/deploy** 中的部署脚本 -4. 将智能合约部署到 Kaia -5. 使用硬帽验证插件验证智能合约 -6. 在 **packages/nextjs/scaffold.config.ts** 文件中配置前端以 Kaia 为目标 -7. 在 **packages/nextjs/pages**目录下根据需要编辑你的前台 +1. 為 Kaia 更新 Hardhat 中的網絡配置 +2. 將智能合約添加到 **packages/hardhat/contracts** 中 +3. 編輯 **packages/hardhat/deploy** 中的部署腳本 +4. 將智能合約部署到 Kaia +5. 使用硬帽驗證插件驗證智能合約 +6. 在 **packages/nextjs/scaffold.config.ts** 文件中配置前端以 Kaia 為目標 +7. 在 **packages/nextjs/pages**目錄下根據需要編輯你的前臺 -在本指南中,我们将使用 Scaffold-ETH 2 安装后可用的默认示例合同和前端。 只需为 Kaia 修改这些组件即可。 在这种情况下,我们将把配置分为 **Hardhat** 和 **Next.js** 配置。 +在本指南中,我們將使用 Scaffold-ETH 2 安裝後可用的默認示例合同和前端。 只需為 Kaia 修改這些組件即可。 在這種情況下,我們將把配置分為 **Hardhat** 和 **Next.js** 配置。 -## 硬头盔配置 +## 硬頭盔配置 -在本节中,你将修改 Hardhat 配置文件中的网络配置,以**packages/hardhat**文件夹下的 Kaia 为目标。 +在本節中,你將修改 Hardhat 配置文件中的網絡配置,以**packages/hardhat**文件夾下的 Kaia 為目標。 -### 为 Kaia 配置 Hardhat +### 為 Kaia 配置 Hardhat -要为 Kaia 配置 hardhat,需要创建 .env 文件并修改 hardhat.config.ts 以支持 Kaia。 +要為 Kaia 配置 hardhat,需要創建 .env 文件並修改 hardhat.config.ts 以支持 Kaia。 -**第 1 步:创建 .env** +**第 1 步:創建 .env** -要创建 .env 文件,请在终端中复制并粘贴以下代码 +要創建 .env 文件,請在終端中複製並粘貼以下代碼 ```bash touch packages/hardhat/.env ``` -关于 hardhat.config.js 文件中已使用的变量,可参考 **.env.example** 文件。 对于 Kaia,您只需创建一个变量:**deployed_private_key**. +關於 hardhat.config.js 文件中已使用的變量,可參考 **.env.example** 文件。 對於 Kaia,您只需創建一個變量:**deployed_private_key**. -**第 2 步:编辑 .env 文件以包含此变量:** +**第 2 步:編輯 .env 文件以包含此變量:** ```bash deployer_private_key=insert_private_key ``` -在\*\*.env\*\*文件中说明的私钥与将在 Hardhat 项目中部署智能合约并与之交互的账户相对应。 +在\*\*.env\*\*文件中說明的私鑰與將在 Hardhat 項目中部署智能合約並與之交互的賬戶相對應。 **第 3 步:修改 hardhat.config.ts** -接下来我们要做的是配置 **hardhat.config.ts** 以支持 Kaia。 +接下來我們要做的是配置 **hardhat.config.ts** 以支持 Kaia。 -将常量**defaultNetwork**设置为部署智能合约的网络。 +將常量**defaultNetwork**設置為部署智能合約的網絡。 ```js kairos: { @@ -103,27 +103,27 @@ deployer_private_key=insert_private_key }, ``` -在网络配置对象下为 Kaia 添加网络配置 +在網絡配置對象下為 Kaia 添加網絡配置 ```js network: "kairos", ``` -有关在 Kaia 中使用 Hardhat 的更多信息,请查看 [Hardhat 指南](https://docs.kaia.io/build/get-started/hardhat/) 了解更多详情。 +有關在 Kaia 中使用 Hardhat 的更多信息,請查看 [Hardhat 指南](https://docs.kaia.io/build/get-started/hardhat/) 瞭解更多詳情。 ### 向 Kaia 部署合同 -配置 Hardhat 以支持 Kaia 网络后,下一步就是编译和部署合同样本。 +配置 Hardhat 以支持 Kaia 網絡後,下一步就是編譯和部署合同樣本。 -首先,您可以通过运行 +首先,您可以通過運行 ```bash -纱线编译 +紗線編譯 ``` ![Compile](/img/build/tutorials/scaffold-2.png) -然后,可以在项目根目录下运行以下命令: +然後,可以在項目根目錄下運行以下命令: ``` yarn deploy @@ -131,15 +131,15 @@ yarn deploy ![Deploy](/img/build/tutorials/scaffold-6.png) -请注意: +請注意: -> 如果没有在 hardhat.config.ts 文件中设置默认网络配置,可以在命令中添加 --network INSERT_NETWORK。 例如,以下命令将向 Kaia 部署一份合同。 +> 如果沒有在 hardhat.config.ts 文件中設置默認網絡配置,可以在命令中添加 --network INSERT_NETWORK。 例如,以下命令將向 Kaia 部署一份合同。 > yarn deploy --network kaia -### 验证您已部署的合同 +### 驗證您已部署的合同 -要验证已部署的合同,我们将使用硬帽验证插件。 只需在 Kairos Testnet 的 etherscan 配置对象下的 **hardhat.config.ts** 中添加以下配置即可。 +要驗證已部署的合同,我們將使用硬帽驗證插件。 只需在 Kairos Testnet 的 etherscan 配置對象下的 **hardhat.config.ts** 中添加以下配置即可。 ```js etherscan: { @@ -159,59 +159,59 @@ yarn deploy }, ``` -接下来,在终端中复制并粘贴以下命令来验证智能合约: +接下來,在終端中複製並粘貼以下命令來驗證智能合約: 示例 ```js -yarn hardhat-verify --network network_name contract_address "构造函数参数 1" +yarn hardhat-verify --network network_name contract_address "構造函數參數 1" ``` -实际 +實際 ```js yarn hardhat-verify --network kairos 0x7fc9656fc8c8ab433867e58b7c6afc19ec4275da "0x7fc9656fc8c8ab433867e58b7c6afc19ec4275da" ``` -如上所示,要验证合同,必须输入网络名称、合同地址和构造函数参数(如有)。 稍等片刻,控制台就会显示验证结果,如果验证成功,还会提供指向 Kaiascope 上已验证合同的 URL。 +如上所示,要驗證合同,必須輸入網絡名稱、合同地址和構造函數參數(如有)。 稍等片刻,控制檯就會顯示驗證結果,如果驗證成功,還會提供指向 Kaiascope 上已驗證合同的 URL。 ![Verify](/img/build/tutorials/scaffold-verify.png) ![Verify on Kaiascope](/img/build/tutorials/scaffold-3.png) -有关使用 Hardhat Verify 插件在 Kaia 上验证智能合约的更多信息,请参阅 H[ardhat-Verify-Plugins guide](https://docs.kaia.io/build/smart-contracts/verify/hardhat/) 。 +有關使用 Hardhat Verify 插件在 Kaia 上驗證智能合約的更多信息,請參閱 H[ardhat-Verify-Plugins guide](https://docs.kaia.io/build/smart-contracts/verify/hardhat/) 。 ## Next.js 配置 -在本节中,你将修改 Next.js 配置,使其针对**packages/nextjs**文件夹下的 Kairos Testnet(智能合约部署到了这里)。 在本文件夹中,我们打算修改 **scaffold.config.ts** 文件中 scaffoldConfig 对象的 **targetNetwork** 数组。 +在本節中,你將修改 Next.js 配置,使其針對**packages/nextjs**文件夾下的 Kairos Testnet(智能合約部署到了這裡)。 在本文件夾中,我們打算修改 **scaffold.config.ts** 文件中 scaffoldConfig 對象的 **targetNetwork** 數組。 -### 修改 targetNetwork 数组 +### 修改 targetNetwork 數組 ```js -targetNetworks:[链.klaytnBaobab]、 +targetNetworks:[鏈.klaytnBaobab]、 ``` -这就是配置 Next.js 的全部要求! 接下来,在本地主机上启动 dApp。 +這就是配置 Next.js 的全部要求! 接下來,在本地主機上啟動 dApp。 -### 在本地主机启动应用程序 +### 在本地主機啟動應用程序 -完成所有必要配置后,您就可以在本地主机上启动示例应用程序了。 +完成所有必要配置後,您就可以在本地主機上啟動示例應用程序了。 -为此,请运行 +為此,請運行 ```bash -起纱 +起紗 ``` ![Run dApp](/img/build/tutorials/scaffold-4.png) -现在,您应该可以在 http://localhost:3001/ 上访问基于 React 的 dApp 前端。 您可以通过连接钱包或查看合约调试器页面与 dApp 进行互动。 +現在,您應該可以在 http://localhost:3001/ 上訪問基於 React 的 dApp 前端。 您可以通過連接錢包或查看合約調試器頁面與 dApp 進行互動。 ![Scaffold dApp](/img/build/tutorials/scaffold-5.png) -## 结论 +## 結論 -祝贺你 您已成功使用 Scaffold-ETH 2 在 Kaia 上部署了一个合约并运行了一个 dApp。 现在您已经了解 Scaffold-ETH 2 的工作原理,可以随意创建和部署自己的智能合约,并修改前端以满足您的 dApp 需求! +祝賀你 您已成功使用 Scaffold-ETH 2 在 Kaia 上部署了一個合約並運行了一個 dApp。 現在您已經瞭解 Scaffold-ETH 2 的工作原理,可以隨意創建和部署自己的智能合約,並修改前端以滿足您的 dApp 需求! -如需了解更多信息,请访问 [Scaffold-ETH 2 文档](https://docs.scaffoldeth.io/) ;如有任何疑问,请访问 [Kaia 论坛](https://devforum.kaia.io/)。 +如需瞭解更多信息,請訪問 [Scaffold-ETH 2 文檔](https://docs.scaffoldeth.io/) ;如有任何疑問,請訪問 [Kaia 論壇](https://devforum.kaia.io/)。 From 22a67134deb33bc52e15d5d17fa24b424586ab1c Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:12 +0800 Subject: [PATCH 0066/2513] New translations connecting-metamask.mdx (Korean) --- .../current/build/tutorials/connecting-metamask.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx b/i18n/ko/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx index af372557dea7..a1bf615776a4 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx @@ -39,7 +39,7 @@ import TabItem from '@theme/TabItem'; Use ChainList for a one-click configuration and follow the instructions. - Use ChainList for a one-click configuration and follow the instructions. + 클릭 한 번으로 구성할 수 있는 체인리스트를 사용하고 지침을 따르세요. ### B. Manual Configuration @@ -73,9 +73,9 @@ import TabItem from '@theme/TabItem'; ``` - + ```jsx title="Network Name " - Kairos Testnet + 카이아 카이로스 테스트넷 ``` ```jsx title="New RPC URL " @@ -91,7 +91,7 @@ import TabItem from '@theme/TabItem'; ``` ```jsx title="Block Explorer URL" - https://kairos.kaiascan.io. + https://kairos.kaiascan.io ``` From 2245c30ebd95aec214d17aebcc354ad429b000c8 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:13 +0800 Subject: [PATCH 0067/2513] New translations connecting-metamask.mdx (Chinese Simplified) --- .../build/tutorials/connecting-metamask.mdx | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx index cda7d30ec6bd..f9198c12bdbe 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx @@ -1,54 +1,54 @@ --- id: connecting-metamask -title: 将 MetaMask 连接到 Kaia +title: 將 MetaMask 連接到 Kaia --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# 将 MetaMask 连接到 Kaia +# 將 MetaMask 連接到 Kaia ![](/img/banners/kaia-metamask.png) -> **注意**\*:MetaMask 主要用作以太坊钱包,但由于地址结构相同,它也与 Kaia 兼容。 Kaia 还有一个名为 [Kaia Wallet] 的浏览器扩展钱包(../tools/wallets/kaia-wallet.md),因此除了 Remix 之外,它基本上提供了与 MetaMask 相同的功能。 +> **注意**\*:MetaMask 主要用作以太坊錢包,但由於地址結構相同,它也與 Kaia 兼容。 Kaia 還有一個名為 [Kaia Wallet] 的瀏覽器擴展錢包(../tools/wallets/kaia-wallet.md),因此除了 Remix 之外,它基本上提供了與 MetaMask 相同的功能。 -## 步骤 1. I安装 MetaMask +## 步驟 1. I安裝 MetaMask -* 本例中我们将使用 Chrome 浏览器。 ([**安装 Chrome**](https://www.google.com/intl/en_us/chrome/))。 -* 将 [**MetaMask Extension**](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en) 添加到 Chrome 浏览器。 +* 本例中我們將使用 Chrome 瀏覽器。 ([**安裝 Chrome**](https://www.google.com/intl/en_us/chrome/))。 +* 將 [**MetaMask Extension**](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en) 添加到 Chrome 瀏覽器。 - > **注意:** 如果使用其他浏览器,可能需要额外安装。 -* 点击 Chrome 浏览器右上角的图标,即可启动 MetaMask。 + > **注意:** 如果使用其他瀏覽器,可能需要額外安裝。 +* 點擊 Chrome 瀏覽器右上角的圖標,即可啟動 MetaMask。 -## 步骤 2. 生成 MetaMask 钱包 +## 步驟 2. 生成 MetaMask 錢包 ![Create a Wallet](/img/build/tutorials/new-to-metamask.png) -* 点击[创建钱包]。 -* 设置密码 -* 您将得到一个 12 个字的种子短语;请将其备份到安全的地方。 +* 點擊[創建錢包]。 +* 設置密碼 +* 您將得到一個 12 個字的種子短語;請將其備份到安全的地方。 - > **注意:** 您只能使用种子短语恢复钱包。 与他人共享您的种子短语可能会导致您失去所有资金。 因此,建议您手动写下来或存储在离线设备中。 + > **注意:** 您只能使用種子短語恢復錢包。 與他人共享您的種子短語可能會導致您失去所有資金。 因此,建議您手動寫下來或存儲在離線設備中。 ![Seed phrase and Wallet](/img/build/tutorials/metamask-secret-backup.png) -## 步骤 3. 连接至 Kaia 网络 +## 步驟 3. 連接至 Kaia 網絡 ### A. 快速配置 - 使用ChainList进行一键配置,并按照说明操作。 + 使用ChainList進行一鍵配置,並按照說明操作。 - 使用ChainList进行一键配置,并按照说明操作。 + 使用ChainList进行一键配置,并按照说明操作。 -### B. 手动配置 +### B. 手動配置 -1. 点击上方的网络选项卡(默认为以太坊主网),然后选择 [添加网络]。 +1. 點擊上方的網絡選項卡(默認為以太坊主網),然後選擇 [添加網絡]。 ![Add Network](/img/build/tutorials/mm-network-btn.png) -2. 在**手动添加网络**页面输入以下 Kaia 网络详细信息,然后单击**保存** +2. 在**手動添加網絡**頁面輸入以下 Kaia 網絡詳細信息,然後單擊**保存** @@ -73,9 +73,9 @@ import TabItem from '@theme/TabItem'; ``` - + ```jsx title="Network Name " - Kairos Testnet + Kaia Kairos 测试网 ``` ```jsx title="New RPC URL " @@ -91,24 +91,24 @@ import TabItem from '@theme/TabItem'; ``` ```jsx title="Block Explorer URL" - https://kairos.kaiascan.io。 + https://kairos.kaiascan.io ``` -## 步骤 4. 发送 KAIA +## 步驟 4. 發送 KAIA -**注意:** 以下步骤需要 KAIA。 在本指南中,我们将使用 Kairos Testnet。 您可以在 [**Kaia Faucet**](https://faucet.kaia.io) 中获得 Test KAIA。 +**注意:** 以下步驟需要 KAIA。 在本指南中,我們將使用 Kairos Testnet。 您可以在 [**Kaia Faucet**](https://faucet.kaia.io) 中獲得 Test KAIA。 -* 单击主页面上的[发送],然后输入收件人地址和 KAIA 金额。 +* 單擊主頁面上的[發送],然後輸入收件人地址和 KAIA 金額。 ![Send KAIA 1](/img/build/tutorials/kairos-metamask-send.png) -**注意:** 发送 KAIA 属于支付交易,您需要使用 KAIA。 +**注意:** 發送 KAIA 屬於支付交易,您需要使用 KAIA。 -* 自 Kaia v1.9.0 起,[动态燃气费机制](https://medium.com/klaytn/dynamic-gas-fee-pricing-mechanism-1dac83d2689) 已取代现有的固定价格政策。 -* 因此,您不必手动设置固定的燃气费。 -* 检查要发送的金额和交易费用,然后点击[确认]完成 KAIA 转账,之后您将被转到主页面。 -* 点击主页面上的[活动]确认交易历史。 +* 自 Kaia v1.9.0 起,[動態燃氣費機制](https://medium.com/klaytn/dynamic-gas-fee-pricing-mechanism-1dac83d2689) 已取代現有的固定價格政策。 +* 因此,您不必手動設置固定的燃氣費。 +* 檢查要發送的金額和交易費用,然後點擊[確認]完成 KAIA 轉賬,之後您將被轉到主頁面。 +* 點擊主頁面上的[活動]確認交易歷史。 ![Send KAIA 2](/img/build/tutorials/kairos-metamask-send-ii.png) From cc6d4a4903a977c61a67fde8b2c775bb37f92a58 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:15 +0800 Subject: [PATCH 0068/2513] New translations connecting-metamask.mdx (Vietnamese) --- .../current/build/tutorials/connecting-metamask.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx b/i18n/vi/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx index af372557dea7..24f6485d018d 100644 --- a/i18n/vi/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx +++ b/i18n/vi/docusaurus-plugin-content-docs/current/build/tutorials/connecting-metamask.mdx @@ -39,7 +39,7 @@ import TabItem from '@theme/TabItem'; Use ChainList for a one-click configuration and follow the instructions. - Use ChainList for a one-click configuration and follow the instructions. + Use ChainList for a one-click configuration and follow the instructions. ### B. Manual Configuration @@ -73,9 +73,9 @@ import TabItem from '@theme/TabItem'; ``` - + ```jsx title="Network Name " - Kairos Testnet + Kaia Kairos Testnet ``` ```jsx title="New RPC URL " @@ -91,7 +91,7 @@ import TabItem from '@theme/TabItem'; ``` ```jsx title="Block Explorer URL" - https://kairos.kaiascan.io. + https://kairos.kaiascan.io ``` From f3e5d04c4db98bd1698df1b2363d9b9eeb6b2c98 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:23 +0800 Subject: [PATCH 0069/2513] New translations kaia-safe-api-kit.md (Chinese Simplified) --- .../wallets/kaia-safe/kaia-safe-api-kit.md | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe-api-kit.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe-api-kit.md index 5d6dda7453f8..37fabdf1ab10 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe-api-kit.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe-api-kit.md @@ -8,39 +8,39 @@ import TabItem from '@theme/TabItem'; # Kaia Safe API 套件 -API-Kit 是您与[安全交易 API](https://github.com/safe-global/safe-transaction-service)安全交互的必备工具包。 该工具包的核心功能是允许有效签名者提出交易并与保险箱的其他签名者共享交易,将签名发送到服务机构以收集签名,以及获取保险箱的相关信息(如阅读交易历史、待处理交易、已启用的模块和守卫等)。 +API-Kit 是您與[安全交易 API](https://github.com/safe-global/safe-transaction-service)安全交互的必備工具包。 該工具包的核心功能是允許有效簽名者提出交易並與保險箱的其他簽名者共享交易,將簽名發送到服務機構以收集簽名,以及獲取保險箱的相關信息(如閱讀交易歷史、待處理交易、已啟用的模塊和守衛等)。 -## 快速入门 +## 快速入門 -在本指南结束时,您将能够向服务部门提出交易建议,并获得业主的签名以执行交易。 +在本指南結束時,您將能夠向服務部門提出交易建議,並獲得業主的簽名以執行交易。 -## 先决条件 +## 先決條件 1. [Node.js和npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) -2. 有多个签名人的保险箱 +2. 有多個簽名人的保險箱 -## 设置环境 +## 設置環境 -### 步骤 1:创建项目目录。 +### 步驟 1:創建項目目錄。 -在终端中复制并粘贴此命令以创建项目文件夹。 +在終端中複製並粘貼此命令以創建項目文件夾。 ```js mkdir kaiasafe-api-kit cd kaiasafe-api-kit ``` -### 步骤 2:初始化 npm 项目。 +### 步驟 2:初始化 npm 項目。 -在终端中复制并粘贴此命令,创建一个 `package.json` 文件。 +在終端中複製並粘貼此命令,創建一個 `package.json` 文件。 ```js npm init -y ``` -### 步骤 3:安装依赖项。 +### 步驟 3:安裝依賴項。 -使用 API-Kit 就像运行下面的安装命令一样简单: +使用 API-Kit 就像運行下面的安裝命令一樣簡單: @@ -56,11 +56,11 @@ npm init -y -### 步骤 4:导入依赖项。 +### 步驟 4:導入依賴項。 -创建名为 `app.js` 的文件。 我们在此交互的所有代码片段都将放在这里。 +創建名為 `app.js` 的文件。 我們在此交互的所有代碼片段都將放在這裡。 -将这些必要的导入复制并粘贴到 `app.js` 文件的顶部。 +將這些必要的導入複製並粘貼到 `app.js` 文件的頂部。 ```js import SafeApiKit from '@safe-global/api-kit' @@ -70,11 +70,11 @@ import { } from '@safe-global/safe-core-sdk-types' ``` -### 步骤 5:配置设置 +### 步驟 5:配置設置 -为了有效说明 API-Kit 的工作原理,我们将使用一个有两个或更多签名者的 Safe 账户设置,阈值为两个,因此在执行交易时需要收集多个签名。 +為了有效說明 API-Kit 的工作原理,我們將使用一個有兩個或更多簽名者的 Safe 賬戶設置,閾值為兩個,因此在執行交易時需要收集多個簽名。 -将以下内容复制并粘贴到 `app.js` 文件中的导入语句下: +將以下內容複製並粘貼到 `app.js` 文件中的導入語句下: ```js // https://chainlist.org/?search=kaia&testnets=true @@ -86,13 +86,13 @@ const OWNER_2_PRIVATE_KEY = ""; // OWNER const TO_ADDRESS = OWNER_1_ADDRESS; // Receiver address of sample transaction who receives 1 wei ``` -## 使用应用程序接口套件 +## 使用應用程序接口套件 -### 步骤 1:初始化 API 工具包 +### 步驟 1:初始化 API 工具包 -要初始化 API 工具包,我们需要创建一个 API 工具包实例。 +要初始化 API 工具包,我們需要創建一個 API 工具包實例。 -> 在支持 [Safe Transaction Service](https://docs.safe.global/core-api/transaction-service-overview) 的链中,只需指定 chainId 属性即可。 +> 在支持 [Safe Transaction Service](https://docs.safe.global/core-api/transaction-service-overview) 的鏈中,只需指定 chainId 屬性即可。 ```js const apiKit = new SafeApiKit.default({ @@ -102,11 +102,11 @@ const apiKit = new SafeApiKit.default({ ``` -如上所示,我们使用可选的 **txServiceUrl** 属性加入了自定义服务。 +如上所示,我們使用可選的 **txServiceUrl** 屬性加入了自定義服務。 -### 步骤 2:初始化协议套件 +### 步驟 2:初始化協議套件 -为了处理交易和签名,我们需要创建一个协议工具包实例(该工具包使开发人员能够使用 TypeScript 接口与 [安全智能账户](https://github.com/safe-global/safe-smart-account) 进行交互),其中包含提供者、签名者和 safeAddress。 +為了處理交易和簽名,我們需要創建一個協議工具包實例(該工具包使開發人員能夠使用 TypeScript 接口與 [安全智能賬戶](https://github.com/safe-global/safe-smart-account) 進行交互),其中包含提供者、簽名者和 safeAddress。 ```js const protocolKitOwner1 = await Safe.default.init({ @@ -116,9 +116,9 @@ const protocolKitOwner1 = await Safe.default.init({ }) ``` -### 步骤 3:向服务提出交易建议 +### 步驟 3:向服務提出交易建議 -API Kit 的核心功能之一是让有效签名者与其他签名者共享交易。 但在此之前,任何一个安全签名者都需要通过创建一个交易提案来启动该过程。 然后,该交易将被发送到服务程序,以便其他所有者也能访问,从而获得批准并签署交易。 +API Kit 的核心功能之一是讓有效簽名者與其他簽名者共享交易。 但在此之前,任何一個安全簽名者都需要通過創建一個交易提案來啟動該過程。 然後,該交易將被髮送到服務程序,以便其他所有者也能訪問,從而獲得批准並簽署交易。 ```js const safeTransactionData = { @@ -146,9 +146,9 @@ try { } ``` -### 步骤 4:检索待处理交易 +### 步驟 4:檢索待處理交易 -API 工具包根据不同情况为我们提供了不同的方法来检索待处理交易。 在本指南中,我们将根据安全事务哈希值和下文注释的其他可用方法来检索事务: +API 工具包根據不同情況為我們提供了不同的方法來檢索待處理交易。 在本指南中,我們將根據安全事務哈希值和下文註釋的其他可用方法來檢索事務: ```js const transaction = await apiKit.getTransaction(safeTxHash) @@ -159,9 +159,9 @@ const transaction = await apiKit.getTransaction(safeTxHash) // const transactions = await service.getAllTransactions() ``` -## 步骤 5:确认交易 +## 步驟 5:確認交易 -接下来要做的是使用协议工具包签署交易,并使用 [confirmTransaction](https://docs.safe.global/sdk/api-kit/reference#confirmtransaction) 方法将签名提交给安全交易服务。 +接下來要做的是使用協議工具包簽署交易,並使用 [confirmTransaction](https://docs.safe.global/sdk/api-kit/reference#confirmtransaction) 方法將簽名提交給安全交易服務。 ```js const protocolKitOwner2 = await Safe.default.init({ @@ -177,11 +177,11 @@ const signatureResponse = await apiKit.confirmTransaction( ) ``` -### 步骤 6:执行交易 +### 步驟 6:執行交易 -安全交易现在可以执行了。 可以使用[安全钱包 Web](https://app.safe.global/)界面、[协议工具包](https://docs.safe.global/sdk/protocol-kit#execute-the-transaction)、安全 CLI 或任何其他可用工具来完成。 +安全交易現在可以執行了。 可以使用[安全錢包 Web](https://app.safe.global/)界面、[協議工具包](https://docs.safe.global/sdk/protocol-kit#execute-the-transaction)、安全 CLI 或任何其他可用工具來完成。 -最后一步,我们使用 Protocol Kit 执行安全交易。 +最後一步,我們使用 Protocol Kit 執行安全交易。 ```js const safeTxn = await apiKit.getTransaction(safeTxHash); @@ -191,7 +191,7 @@ console.log('Transaction executed:'); console.log(`https://kairos.kaiascan.io/tx/${hash}`) ``` -最后,`app.js` 中的完整代码应该是这样的: +最後,`app.js` 中的完整代碼應該是這樣的: ```js import SafeApiKit from '@safe-global/api-kit' @@ -267,4 +267,4 @@ console.log('Transaction executed:'); console.log(`https://kairos.kaiascan.io/tx/${hash}`) ``` -请访问 [API 工具包参考](https://docs.safe.global/sdk/api-kit/reference) 了解更多信息,并访问 [Github](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/snippets) 访问本指南的完整源代码。 +請訪問 [API 工具包參考](https://docs.safe.global/sdk/api-kit/reference) 瞭解更多信息,並訪問 [Github](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/snippets) 訪問本指南的完整源代碼。 From e359559282d27bc0bb8fd0230dce7513693375e7 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:28 +0800 Subject: [PATCH 0070/2513] New translations private-network.md (Chinese Simplified) --- .../smart-contracts/deploy/private-network.md | 170 +++++++++--------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/private-network.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/private-network.md index 0546a43d568e..ca45593b1d7a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/private-network.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/private-network.md @@ -1,49 +1,49 @@ -# 使用专用网络部署智能合约 +# 使用專用網絡部署智能合約 -## 导言 +## 導言 -在本指南中,我们将指导您使用 [Kaia Hardhat Utils](https://github.com/ayo-klaytn/hardhat-utils) 在专用 Kaia 网络上部署 Greeter 合同。 通过本指南,您将学会如何 +在本指南中,我們將指導您使用 [Kaia Hardhat Utils](https://github.com/ayo-klaytn/hardhat-utils) 在專用 Kaia 網絡上部署 Greeter 合同。 通過本指南,您將學會如何 -- 设立 "硬头巾 "项目。 -- 启动一个模拟启明星测试网的专用网络。 -- 利用 Hardhat 工具在该私有网络上部署智能合约。 +- 設立 "硬頭巾 "項目。 +- 啟動一個模擬啟明星測試網的專用網絡。 +- 利用 Hardhat 工具在該私有網絡上部署智能合約。 -## 先决条件 +## 先決條件 -学习本教程的前提条件如下: +學習本教程的前提條件如下: -- 代码编辑器:源代码编辑器,如 [VS Code](https://code.visualstudio.com/download)。 -- Docker:如果您没有安装 docker,请使用此 [链接](https://docs.docker.com/desktop/) 进行安装。 -- [Node.js 和 npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm):Node 18 及以上版本。 +- 代碼編輯器:源代碼編輯器,如 [VS Code](https://code.visualstudio.com/download)。 +- Docker:如果您沒有安裝 docker,請使用此 [鏈接](https://docs.docker.com/desktop/) 進行安裝。 +- [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm): Node version 18 and above. -## 设置开发环境 +## 設置開發環境 -在本节中,我们将安装 hardhat、Kaia hardhat utils 和引导项目所需的其他必要依赖项。 +在本節中,我們將安裝 hardhat、Kaia hardhat utils 和引導項目所需的其他必要依賴項。 -**第 1 步:创建项目目录** +**第 1 步:創建項目目錄** ```js mkdir $HOME/kaia-greeter cd kaia-greeter ``` -**第 2 步:初始化 npm 项目** +**第 2 步:初始化 npm 項目** ```js npm init -y ``` -**第 3 步:安装 hardhat、hardhat-utils 和其他依赖项** +**第 3 步:安裝 hardhat、hardhat-utils 和其他依賴項** -- 在终端中复制并粘贴以下代码,安装 hardhat 和 hardhat-utils +- 在終端中複製並粘貼以下代碼,安裝 hardhat 和 hardhat-utils ```js npm i hardhat @klaytn/hardhat-utils ``` -- 复制并粘贴以下代码以安装其他依赖项 +- 複製並粘貼以下代碼以安裝其他依賴項 ```js npm install @nomiclabs/hardhat-ethers hardhat-deploy dotenv @@ -51,13 +51,13 @@ npm install @nomiclabs/hardhat-ethers hardhat-deploy dotenv :::note -hardhat-utils 插件依赖于 [hardhat-ethers](https://www.npmjs.com/package/@nomiclabs/hardhat-ethers) 和 [hardhat-deploy](https://www.npmjs.com/package/hardhat-deploy) 插件。 确保在`hardhat.config.js`或`hardhat.config.ts`中要求或导入它们。 +hardhat-utils 插件依賴於 [hardhat-ethers](https://www.npmjs.com/package/@nomiclabs/hardhat-ethers) 和 [hardhat-deploy](https://www.npmjs.com/package/hardhat-deploy) 插件。 確保在`hardhat.config.js`或`hardhat.config.ts`中要求或導入它們。 ::: :::info -(建议)安装硬帽速记装置。 但您仍然可以使用 npx 硬头盔执行任务。 +(建議)安裝硬帽速記裝置。 但您仍然可以使用 npx 硬頭盔執行任務。 ```js npm install hardhat-shorthand --save @@ -65,15 +65,15 @@ npm install hardhat-shorthand --save ::: -**第 4 步:初始化硬头盔项目** +**第 4 步:初始化硬頭盔項目** -运行以下命令启动硬头盔项目: +運行以下命令啟動硬頭盔項目: ```js -npx 硬头盔启动 +npx 硬頭盔啟動 ``` -在本指南中,你将选择 "创建一个空的 hardhat.config.js "项目,如下图所示: +在本指南中,你將選擇 "創建一個空的 hardhat.config.js "項目,如下圖所示: ```js 888 888 888 888 @@ -83,20 +83,20 @@ npx 硬头盔启动 888888 .d88888 888888 .d88888 888888 888888 888888 Y88b. 888 888 "Y888888 888 "Y88888 888 "Y888888 "Y888 -👷 欢迎访问 Hardhat v2.22.9 👷‍ -?您要做什么? … - 创建一个 JavaScript 项目 - 创建一个 TypeScript 项目 - 创建一个 TypeScript 项目(使用 Viem) -👷 创建一个空的 hardhat.config.js +👷 歡迎訪問 Hardhat v2.22.9 👷‍ +?您要做什麼? … + 創建一個 JavaScript 項目 + 創建一個 TypeScript 項目 + 創建一個 TypeScript 項目(使用 Viem) +👷 創建一個空的 hardhat.config.js 退出 ``` -**第 5 步:创建 .env 文件** +**第 5 步:創建 .env 文件** -现在在项目文件夹中创建 `.env` 文件。 该文件可帮助我们将环境变量从 `.env` 文件加载到 process.env 文件中。 +現在在項目文件夾中創建 `.env` 文件。 該文件可幫助我們將環境變量從 `.env` 文件加載到 process.env 文件中。 -在终端中复制并粘贴此命令,创建一个 `.env` 文件 +在終端中複製並粘貼此命令,創建一個 `.env` 文件 ```js touch .env @@ -105,16 +105,16 @@ touch .env 配置您的 .env 文件如下: ``` -private_key="复制并粘贴本地专用网络提供的任意私人密钥" +private_key="複製並粘貼本地專用網絡提供的任意私人密鑰" ``` :::note -在下一节启动专用网络时,就可以访问本地网络提供的私钥。 +在下一節啟動專用網絡時,就可以訪問本地網絡提供的私鑰。 ::: -**第 6 步:设置硬头盔配置** +**第 6 步:設置硬頭盔配置** 用以下配置修改 `hardhat.config.js`: @@ -153,9 +153,9 @@ module.exports = { }; ``` -## 启动专用网络 +## 啟動專用網絡 -为了启动专用网络,hardhat utils 插件为我们提供了一项任务,即轻松启动专用网络: +為了啟動專用網絡,hardhat utils 插件為我們提供了一項任務,即輕鬆啟動專用網絡: ```js hh klaytn-node @@ -163,16 +163,16 @@ hh klaytn-node ![](/img/build/smart-contracts/pn-run-node.png) -## 连接控制台 +## 連接控制檯 -专用网络自带 JavaScript 控制台。 通过控制台命令行,您可以向网络发起部分 Kaia API 调用。 要附加到 JavaScript 控制台,请执行以下命令: +專用網絡自帶 JavaScript 控制檯。 通過控制檯命令行,您可以向網絡發起部分 Kaia API 調用。 要附加到 JavaScript 控制檯,請執行以下命令: ```js hh klaytn-node --attach ``` ```jsx title="Result Result " -欢迎访问 Kaia JavaScript 控制台! +歡迎訪問 Kaia JavaScript 控制檯! instance:Klaytn/v0.9.2/linux-amd64/go1.22.1 datadir:/klaytn modules: admin:1.0 debug:1.0 eth:1.0 governance:1.0 istanbul:1.0 kaia:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0 @@ -180,15 +180,15 @@ hh klaytn-node --attach :::note -输入 **kaia** 或 **personal** 可获得可用功能列表。 +輸入 **kaia** 或 **personal** 可獲得可用功能列表。 ::: -## 查看账户余额 +## 查看賬戶餘額 -当我们启动私人网络时,它为我们提供了账户列表、私人密钥和每个账户的预资助值。 +當我們啟動私人網絡時,它為我們提供了賬戶列表、私人密鑰和每個賬戶的預資助值。 -要查看账户余额,请执行以下命令。 +要查看賬戶餘額,請執行以下命令。 ```js kaia.getBalance("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266") @@ -196,9 +196,9 @@ kaia.getBalance("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266") ![](/img/build/smart-contracts/pn-check-balance.png) -## 配置硬帽网络环境 +## 配置硬帽網絡環境 -现在我们正在运行一个独立的本地网络,外部客户端(钱包、dApp)可以连接到该网络,我们需要通过运行此命令配置 hardhat 以使用该网络: +現在我們正在運行一個獨立的本地網絡,外部客戶端(錢包、dApp)可以連接到該網絡,我們需要通過運行此命令配置 hardhat 以使用該網絡: ```js export HARDHAT_NETWORK=localhost @@ -206,18 +206,18 @@ hh accounts ``` ```js -hh --network localhost 账户 +hh --network localhost 賬戶 ``` ![](/img/build/smart-contracts/pn-lh-accounts.png) -## 创建 KaiaGreeter 智能合约 +## 創建 KaiaGreeter 智能合約 -在本节中,您将创建一个 KaiaGreeter 智能合约。 +在本節中,您將創建一個 KaiaGreeter 智能合約。 -**步骤 1:** 在资源管理器窗格中新建一个名为 "**合同**"的文件夹,单击 "新建文件 "按钮并新建一个名为 "KaiaGreeter.sol "的文件。 +**步驟 1:** 在資源管理器窗格中新建一個名為 "**合同**"的文件夾,單擊 "新建文件 "按鈕並新建一個名為 "KaiaGreeter.sol "的文件。 -**第 2 步:** 打开文件并粘贴以下代码: +**第 2 步:** 打開文件並粘貼以下代碼: ```js // SPDX-License-Identifier: UNLICENSED @@ -241,11 +241,11 @@ contract KaiaGreeter { ## 部署 KaiaGreeter -在本节中,我们将使用 hardhat-deploy 插件来部署我们的合同。 +在本節中,我們將使用 hardhat-deploy 插件來部署我們的合同。 -**步骤 1:** 在资源管理器窗格中,新建一个名为**deploy**的文件夹,然后单击 "新建文件 "按钮,创建一个名为 "deploy.js "的新文件。 +**步驟 1:** 在資源管理器窗格中,新建一個名為**deploy**的文件夾,然後單擊 "新建文件 "按鈕,創建一個名為 "deploy.js "的新文件。 -**第 2 步:** 将以下代码复制并粘贴到文件中。 +**第 2 步:** 將以下代碼複製並粘貼到文件中。 ```js module.exports = async ({getNamedAccounts, deployments}) => { @@ -260,7 +260,7 @@ module.exports = async ({getNamedAccounts, deployments}) => { module.exports.tags = ['KaiaGreeter']; ``` -**步骤 3:** 在终端运行以下命令,告诉 Hardhat 在专用网络上部署你的 KaiaGreeter 合同。 +**步驟 3:** 在終端運行以下命令,告訴 Hardhat 在專用網絡上部署你的 KaiaGreeter 合同。 ```js hh 部署 @@ -268,9 +268,9 @@ hh 部署 ![](/img/build/smart-contracts/pn-deployed-tx.png) -## 使用区块资源管理器验证交易 +## 使用區塊資源管理器驗證交易 -**步骤 1:** 要使用本地 blockscout 浏览器验证我们的交易,请在新终端中运行以下命令: +**步驟 1:** 要使用本地 blockscout 瀏覽器驗證我們的交易,請在新終端中運行以下命令: ```js hh explorer --network localhost @@ -283,19 +283,19 @@ hh explorer --network localhost DOCKER_DISABLE_TRACER: 'false', DOCKER_DEBUG: '0' } -[+] 在浏览器中打开:http://localhost:4000 - 网络 blockscout_default 创建 - 网络 blockscout_default 创建 - 容器 blockscout-db-1 创建 - 容器 blockscout-frontend-1 创建 - 容器 blockscout-smart-contract-verifier-1 创建 - 容器 blockscout-创建 - Container blockscout-smart-contract-verifier-1 创建 - Container blockscout-db-1 创建 - Container blockscout-frontend-1 创建 - Container blockscout-redis_db-1 创建 - Container blockscout-backend-1 创建 - Container blockscout-backend-1 创建 +[+] 在瀏覽器中打開:http://localhost:4000 + 網絡 blockscout_default 創建 + 網絡 blockscout_default 創建 + 容器 blockscout-db-1 創建 + 容器 blockscout-frontend-1 創建 + 容器 blockscout-smart-contract-verifier-1 創建 + 容器 blockscout-創建 + Container blockscout-smart-contract-verifier-1 創建 + Container blockscout-db-1 創建 + Container blockscout-frontend-1 創建 + Container blockscout-redis_db-1 創建 + Container blockscout-backend-1 創建 + Container blockscout-backend-1 創建 Container blockscout-frontend-1 Starting Container blockscout-redis_db-1 Starting Container blockscout-smart-contract-verifier-1 Starting @@ -308,45 +308,45 @@ hh explorer --network localhost Container blockscout-backend-1 Started ``` -**第 2 步:** 要访问这个区块资源管理器,请在浏览器中打开 [http://localhost:4000](http://localhost:4000)。 +**第 2 步:** 要訪問這個區塊資源管理器,請在瀏覽器中打開 [http://localhost:4000](http://localhost:4000)。 -第 3 步:在搜索栏中复制并粘贴已部署的合同地址,然后按 Enter 键。 您应该能看到最近部署的合同。 +第 3 步:在搜索欄中複製並粘貼已部署的合同地址,然後按 Enter 鍵。 您應該能看到最近部署的合同。 ![](/img/build/smart-contracts/pn-verify-tx-block-explorer.png) -## 与已部署的合同互动 +## 與已部署的合同互動 -### 使用硬头盔工具合同任务 +### 使用硬頭盔工具合同任務 -1. 要调用已部署合约的只读函数,请运行下面的命令: +1. 要調用已部署合約的只讀函數,請運行下面的命令: ```js -hh 调用 KaiaGreeter getTotalGreetings +hh 調用 KaiaGreeter getTotalGreetings ``` ![](/img/build/smart-contracts/pn-read-function.png) -2. 要向已部署的合约发送函数调用事务,请运行下面的命令: +2. 要向已部署的合約發送函數調用事務,請運行下面的命令: ```js -hh 发送 KaiaGreeter 问候 +hh 發送 KaiaGreeter 問候 ``` ```jsx title="Result Result " -发送 KaiaGreeter#greet(tx:0xc0bd25ffb594c13d5ae1f77f7eb02f2978013c69f9f6e22694b76fa26c329e85)...ok(数据块 2837,已用气体:47457) +發送 KaiaGreeter#greet(tx:0xc0bd25ffb594c13d5ae1f77f7eb02f2978013c69f9f6e22694b76fa26c329e85)...ok(數據塊 2837,已用氣體:47457) ``` ### 使用 Kaia SDK -**步骤 1:** 要使用 [Kaia SDK](https://github.com/kaiachain/kaia-sdk) 与已部署的合约进行交互,需要运行此命令安装 Kaia SDK: +**步驟 1:** 要使用 [Kaia SDK](https://github.com/kaiachain/kaia-sdk) 與已部署的合約進行交互,需要運行此命令安裝 Kaia SDK: ```js npm install --save @kaiachain/ethers-ext ``` -**步骤 2:** 在资源管理器窗格中,新建一个名为 "utils "的文件夹,然后单击 "新建文件 "按钮,在 utils 文件夹中新建一个名为 `kaia-sdk.js` 的文件。 +**步驟 2:** 在資源管理器窗格中,新建一個名為 "utils "的文件夾,然後單擊 "新建文件 "按鈕,在 utils 文件夾中新建一個名為 `kaia-sdk.js` 的文件。 -第 3 步:将以下代码复制并粘贴到文件中。 +第 3 步:將以下代碼複製並粘貼到文件中。 ```js const { JsonRpcProvider, Wallet } = require("@kaiachain/ethers-ext"); @@ -383,7 +383,7 @@ getTotalGreetings(contractAddress); // greet(contractAddress); ``` -**步骤 4:** 要执行本文件中声明的任何函数,请确保像执行 getTotalGreetings() 函数那样取消注释,然后在终端运行以下命令。 +**步驟 4:** 要執行本文件中聲明的任何函數,請確保像執行 getTotalGreetings() 函數那樣取消註釋,然後在終端運行以下命令。 ```js node utils/kaia-sdk.js @@ -391,4 +391,4 @@ node utils/kaia-sdk.js ![](/img/build/smart-contracts/pn-run-kaia-sdk.png) -有关 hardhat-utils 的更深入指南,请参阅 [hardhat-utils github](https://github.com/ayo-klaytn/hardhat-utils)。 此外,您还可以在 [GitHub](https://github.com/ayo-klaytn/kaia-hardhat-utils-example) 上找到本指南的完整代码实现。 +有關 hardhat-utils 的更深入指南,請參閱 [hardhat-utils github](https://github.com/ayo-klaytn/hardhat-utils)。 此外,您還可以在 [GitHub](https://github.com/ayo-klaytn/kaia-hardhat-utils-example) 上找到本指南的完整代碼實現。 From 8d43a5380988c3c0d2f6dffd054cbd3d6ea12de1 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:47 +0800 Subject: [PATCH 0071/2513] New translations web3auth.mdx (Chinese Simplified) --- .../wallets/wallet-libraries/web3Auth.mdx | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Auth.mdx b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Auth.mdx index 86f73099f6bf..63112ad2f560 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Auth.mdx +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/web3Auth.mdx @@ -2,38 +2,38 @@ sidebar_label: Web3Auth --- -# 将 Web3Auth 集成到 dApp 中 +# 將 Web3Auth 集成到 dApp 中 ![](/img/banners/kaia-web3Auth.png) -## 导言 +## 導言 -[Web3Auth](https://web3auth.io/docs/) 是一种钱包基础设施,可插入 dApp 或钱包。 它是 Web3 钱包和应用程序的可插拔认证基础设施。 凭借 Web3Auth 卓越的用户体验,无论是主流用户还是加密货币原住民,都可以在几分钟内完成注册。 +[Web3Auth](https://web3auth.io/docs/) 是一種錢包基礎設施,可插入 dApp 或錢包。 它是 Web3 錢包和應用程序的可插拔認證基礎設施。 憑藉 Web3Auth 卓越的用戶體驗,無論是主流用戶還是加密貨幣原住民,都可以在幾分鐘內完成註冊。 -作为一种钱包基础设施,它为所有社交登录、网络和移动原生平台、钱包和其他密钥管理方法提供开箱即用的支持。 本指南结束时,您将把 Web3Auth 集成到基于 Kaia 网络构建的去中心化网络应用程序中。 要将 Web3Auth 集成到其他平台(Android、iOS、React Native、Flutter 和 Unity),请参考本 [指南](https://web3auth.io/docs/quick-start)。 +作為一種錢包基礎設施,它為所有社交登錄、網絡和移動原生平臺、錢包和其他密鑰管理方法提供開箱即用的支持。 本指南結束時,您將把 Web3Auth 集成到基於 Kaia 網絡構建的去中心化網絡應用程序中。 要將 Web3Auth 集成到其他平臺(Android、iOS、React Native、Flutter 和 Unity),請參考本 [指南](https://web3auth.io/docs/quick-start)。 -为了快速入门,本教程的完整代码可在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/web3Auth.md) 上获取。 您可以克隆或下载该版本库,以便跟随学习。 +為了快速入門,本教程的完整代碼可在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/blob/main/examples/3rd-integration-examples/web3Auth.md) 上獲取。 您可以克隆或下載該版本庫,以便跟隨學習。 -## 先决条件 +## 先決條件 -* 一个正在运行的 react 项目(通过执行 `npm create vite@latest project-name -- --template react-ts`) -* 安装必要的钱包([Coinbase Wallet](https://www.coinbase.com/wallet/downloads)、[Metamask](https://metamask.io/download/))。 -* RPC 端点:您可以从支持的[端点提供者](../../../../references/public-en.md)中获取。 -* 从 [水龙头](https://faucet.kaia.io)测试 KAIA:为账户注入足够的 KAIA。 -* 从 [Web3Auth 控制面板](https://dashboard.web3auth.io/) 获取您的客户 ID。 +* 一個正在運行的 react 項目(通過執行 `npm create vite@latest project-name -- --template react-ts`) +* 安裝必要的錢包([Coinbase Wallet](https://www.coinbase.com/wallet/downloads)、[Metamask](https://metamask.io/download/))。 +* RPC 端點:您可以從支持的[端點提供者](../../../../references/public-en.md)中獲取。 +* 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 +* 從 [Web3Auth 控制面板](https://dashboard.web3auth.io/) 獲取您的客戶 ID。 -## 安装 +## 安裝 -要在 dApp 中使用 Web3Auth,必须先安装所需的库和 SDK。 因此,您需要设置 ethers.js 和 Web3Auth Web SDK。 您可以将 Web3Auth 与 [etherthers.js](https://docs.ethers.org/v6/)、[web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html) 或 [kaia sdk](https://docs.kaia.io/references/sdk/ethers-ext/getting-started/) 库一起使用,以便与 Kaia 区块链通信。 本指南将使用 ethers.js。 +要在 dApp 中使用 Web3Auth,必須先安裝所需的庫和 SDK。 因此,您需要設置 ethers.js 和 Web3Auth Web SDK。 您可以將 Web3Auth 與 [etherthers.js](https://docs.ethers.org/v6/)、[web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html) 或 [kaia sdk](https://docs.kaia.io/references/sdk/ethers-ext/getting-started/) 庫一起使用,以便與 Kaia 區塊鏈通信。 本指南將使用 ethers.js。 ```bash npm install --save @web3auth/modal @web3auth/base @web3auth/ethereum-provider @web3auth/default-evm-adapter npm install --save ethers ``` -## 初始化 Web3Auth 和提供程序实例 +## 初始化 Web3Auth 和提供程序實例 -成功安装所需的库后,接下来要初始化 Web3Auth 实例,在 "useState() "钩子中设置 Web3Auth **provider** 实例,并在 "useEffect() "钩子中设置 "init() "函数。 +成功安裝所需的庫後,接下來要初始化 Web3Auth 實例,在 "useState() "鉤子中設置 Web3Auth **provider** 實例,並在 "useEffect() "鉤子中設置 "init() "函數。 @@ -322,45 +322,45 @@ npm install --save ethers --- - 导入 Web3Auth 和其他依赖软件包。 + 導入 Web3Auth 和其他依賴軟件包。 ```js App.tsx focus=1:10 ``` --- - 导入 React 挂钩(useState 和 useEffect)和实用功能: + 導入 React 掛鉤(useState 和 useEffect)和實用功能: - * `useState` 和 `useEffect`:用于状态管理和副作用的 React 挂钩。 - * `RPC`:来自 `etherRPC.ts` 的自定义实用功能,用于使用 ethers.js 进行以太坊兼容的区块链交互。 + * `useState` 和 `useEffect`:用於狀態管理和副作用的 React 掛鉤。 + * `RPC`:來自 `etherRPC.ts` 的自定義實用功能,用於使用 ethers.js 進行以太坊兼容的區塊鏈交互。 ```js App.tsx focus=13:15 ``` --- - 从 Web3Auth 控制面板粘贴您的 \*\* 客户 ID\*\*。 + 從 Web3Auth 控制面板粘貼您的 \*\* 客戶 ID\*\*。 ```js App.tsx focus=16:17 ``` --- - 设置 \*\* 链配置\*\*:要使用 Web3Auth,您需要为选定的链 - Kaia 设置链配置。 + 設置 \*\* 鏈配置\*\*:要使用 Web3Auth,您需要為選定的鏈 - Kaia 設置鏈配置。 ```js App.tsx focus=18:27 ``` --- - 通过使用构造函数初始化 Web3Auth,在构造函数中,您可以传入您想要的 Web3Auth 的所有配置。 + 通過使用構造函數初始化 Web3Auth,在構造函數中,您可以傳入您想要的 Web3Auth 的所有配置。 ```js App.tsx focus=27:44 ``` --- - 在 "useState() "钩子中设置 Web3Auth **provider** 实例、**userInfo** 和 "useEffect() "钩子中的 "init() "函数。 + 在 "useState() "鉤子中設置 Web3Auth **provider** 實例、**userInfo** 和 "useEffect() "鉤子中的 "init() "函數。 ```js App.tsx focus=53:95 ``` @@ -368,9 +368,9 @@ npm install --save ethers --- -## 连接钱包 +## 連接錢包 -在 `App.tsx` 文件的 App 函数中,调用 web3Auth 实例的 [connect()](https://web3auth.io/docs/sdk/pnp/web/modal/usage?product=PNP\&sdk=PNP_MODAL\&framework=REACT\&stepIndex=0\&stepIndex=6#logging-in-the-user) 方法启动钱包连接。 +在 `App.tsx` 文件的 App 函數中,調用 web3Auth 實例的 [connect()](https://web3auth.io/docs/sdk/pnp/web/modal/usage?product=PNP\&sdk=PNP_MODAL\&framework=REACT\&stepIndex=0\&stepIndex=6#logging-in-the-user) 方法啟動錢包連接。 ```js function App() { @@ -400,13 +400,13 @@ function App() { ![](/img/build/tools/web3Auth-login.png) -## 设置实用工具功能 +## 設置實用工具功能 -在本指南中,我们将使用实用工具函数:`truncateAddress()`。 truncateAddress() 函数接收一个有效地址,并返回一个更可读的地址格式。 以下步骤展示了如何在项目中设置和使用 utils 函数。 +在本指南中,我們將使用實用工具函數:`truncateAddress()`。 truncateAddress() 函數接收一個有效地址,並返回一個更可讀的地址格式。 以下步驟展示瞭如何在項目中設置和使用 utils 函數。 -**第 1** 步在 `src` 根文件夹中创建一个 `utils.ts` 文件。 +**第 1** 步在 `src` 根文件夾中創建一個 `utils.ts` 文件。 -将以下代码粘贴到新创建的 utils.ts 文件中: +將以下代碼粘貼到新創建的 utils.ts 文件中: ```js export const truncateAddress = (address) => { @@ -419,15 +419,15 @@ export const truncateAddress = (address) => { } ``` -**第 2** 步在您的 `App.tsx` 文件中导入该函数。 +**第 2** 步在您的 `App.tsx` 文件中導入該函數。 ```js -从'./utils'导入 { truncateAddress } +從'./utils'導入 { truncateAddress } ``` -## 获取账户和余额 +## 獲取賬戶和餘額 -调用 Web3Auth 实例上的 `connect()` 方法成功连接钱包后,就可以使用提供者和签名者对象获取用户账户及其余额。 +調用 Web3Auth 實例上的 `connect()` 方法成功連接錢包後,就可以使用提供者和簽名者對象獲取用戶賬戶及其餘額。 ```js function App() { @@ -479,9 +479,9 @@ function App() { } ``` -## 断开钱包连接 +## 斷開錢包連接 -使用 Web3Auth 实例上的 [logout()](https://web3auth.io/docs/sdk/web/no-modal/usage#logging-out-the-user) 方法可以断开与钱包的连接。 此外,一个好的做法是刷新状态,清除之前存储的连接数据。 +使用 Web3Auth 實例上的 [logout()](https://web3auth.io/docs/sdk/web/no-modal/usage#logging-out-the-user) 方法可以斷開與錢包的連接。 此外,一個好的做法是刷新狀態,清除之前存儲的連接數據。 ```js function App() { @@ -508,9 +508,9 @@ function App() { } ``` -## 获取用户信息 +## 獲取用戶信息 -Web3Auth 的一个独特功能是社交登录。 用户使用社交平台登录后,Web3Auth 实例会返回登录用户的一些信息。 在 Web3Auth 实例上调用 `getUserInfo()` 方法即可简单地获取登录用户信息。 +Web3Auth 的一個獨特功能是社交登錄。 用戶使用社交平臺登錄後,Web3Auth 實例會返回登錄用戶的一些信息。 在 Web3Auth 實例上調用 `getUserInfo()` 方法即可簡單地獲取登錄用戶信息。 ```js const [userInfo, setUserInfo] = useState(null); @@ -539,9 +539,9 @@ return ( ) ``` -## 签署信息 +## 簽署信息 -初始化提供者和签名者对象后,用户就可以签署任意字符串。 +初始化提供者和簽名者對象後,用戶就可以簽署任意字符串。 ```js // add to the existing useState hook. @@ -575,9 +575,9 @@ return ( ) ``` -## 发送本地事务 +## 發送本地事務 -您可以执行本地事务,如将 KAIA 从一个用户发送到另一个用户。 +您可以執行本地事務,如將 KAIA 從一個用戶發送到另一個用戶。 ```js // add to the existing useState hook. @@ -620,13 +620,13 @@ return ( ) ``` -## 使用智能合约 +## 使用智能合約 -您可以根据智能合约的应用程序二进制接口(ABI)和合约地址与已部署的智能合约进行交互。 以下步骤说明了如何在项目中设置和使用合同地址和 ABI。 +您可以根據智能合約的應用程序二進制接口(ABI)和合約地址與已部署的智能合約進行交互。 以下步驟說明了如何在項目中設置和使用合同地址和 ABI。 -**第 1** 步在 `src` 根文件夹中创建一个 `constants.ts` 文件。 +**第 1** 步在 `src` 根文件夾中創建一個 `constants.ts` 文件。 -将以下代码粘贴到新创建的 constants.ts 文件中: +將以下代碼粘貼到新創建的 constants.ts 文件中: ```js export const contractABI = [ @@ -672,13 +672,13 @@ export const contractABI = [ export const contractAddress = "0x3b01E4025B428fFad9481a500BAc36396719092C"; ``` -**第 2 步**:在 `etherRPC.ts` 文件中导入**contractABI**和**contractAddress**。 +**第 2 步**:在 `etherRPC.ts` 文件中導入**contractABI**和**contractAddress**。 ```js -从"./constants "导入 { contractAddress, contractABI }; +從"./constants "導入 { contractAddress, contractABI }; ``` -### 1. 撰写合同 +### 1. 撰寫合同 ```js // add to existing useState hook @@ -713,7 +713,7 @@ return ( ) ``` -### 2. 阅读合同 +### 2. 閱讀合同 ```js // add to existing useState hook @@ -744,8 +744,8 @@ return ( ## 故障排除 -您可以访问[故障排除页面](https://web3auth.io/docs/troubleshooting),从不同的捆绑程序中探索常见挑战和问题的解决方案。 +您可以訪問[故障排除頁面](https://web3auth.io/docs/troubleshooting),從不同的捆綁程序中探索常見挑戰和問題的解決方案。 ## 下一步 -有关 Web3Auth 的更多深入指南,请参阅 [Web3Auth 文档](https://web3auth.io/docs/connect-blockchain/klaytn) 和 [Web3Auth Github 存储库](https://github.com/web3auth)。 +有關 Web3Auth 的更多深入指南,請參閱 [Web3Auth 文檔](https://web3auth.io/docs/connect-blockchain/klaytn) 和 [Web3Auth Github 存儲庫](https://github.com/web3auth)。 From 8a444f305adeba1a0649f35e0c08505e34c37311 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:56 +0800 Subject: [PATCH 0072/2513] New translations stargate.md (Chinese Simplified) --- .../current/build/tools/cross-chain/stargate.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/stargate.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/stargate.md index da532a76466d..7aeb9d61d417 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/stargate.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/stargate.md @@ -1,11 +1,11 @@ # Stargate -## 导言 +## 導言 -[Stargate](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs) 是首个完全可组合的原生资产桥接器,也是首个基于 LayerZero 构建的 dApp。 Stargate的核心是使跨链流动性转移成为无缝的单一交易流程。 有了Stargate,用户可以在一次交易中跨链交换原生资产。 这意味着您可以在一次交易中将 ETH 换成 KAIA。 +[Stargate](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs) 是首個完全可組合的原生資產橋接器,也是首個基於 LayerZero 構建的 dApp。 Stargate的核心是使跨鏈流動性轉移成為無縫的單一交易流程。 有了Stargate,用戶可以在一次交易中跨鏈交換原生資產。 這意味著您可以在一次交易中將 ETH 換成 KAIA。 ## 使用方法 -Stargate为开发人员提供了一种在应用程序中以编程方式执行交换的方法。 您可以在 [Kaia Mainnet](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs/technical-reference/mainnet-contracts#klaytn) 和 [Kairos Testnet](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs/technical-reference/testnet-contracts#klaytn-baobab-testnet) 上以编程方式执行交换。 要开始使用,请参阅以下指南: +Stargate為開發人員提供了一種在應用程序中以編程方式執行交換的方法。 您可以在 [Kaia Mainnet](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs/technical-reference/mainnet-contracts#klaytn) 和 [Kairos Testnet](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs/technical-reference/testnet-contracts#klaytn-baobab-testnet) 上以編程方式執行交換。 要開始使用,請參閱以下指南: -- [如何交换](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs/integrate-with-stargate/how-to-swap) +- [如何交換](https://stargateprotocol.gitbook.io/stargate/v2-developer-docs/integrate-with-stargate/how-to-swap) From dcad4de11a6d4309aa7fec93008d7ea4f3a0c9ad Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:46:59 +0800 Subject: [PATCH 0073/2513] New translations wormhole.md (Chinese Simplified) --- .../current/build/tools/cross-chain/wormhole.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/wormhole.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/wormhole.md index c22989971c8a..208e0e583ea0 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/wormhole.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/wormhole.md @@ -1,13 +1,13 @@ # Wormhole -## 导言 +## 導言 -[Wormhole](https://wormhole.com/docs/)是一个支持多链应用程序和桥梁的互操作性平台。 它目前支持包括 Kaia 在内的 30 多条链。 通过集成虫洞,Kaia 应用程序可以使任何代币成为原生多链,按需提取任何链上数据,并构建自定义多链协议。 +[Wormhole](https://wormhole.com/docs/)是一個支持多鏈應用程序和橋樑的互操作性平臺。 它目前支持包括 Kaia 在內的 30 多條鏈。 通過集成蟲洞,Kaia 應用程序可以使任何代幣成為原生多鏈,按需提取任何鏈上數據,並構建自定義多鏈協議。 ## 使用方法 -Wormhole 同时支持 [Kaia Mainnet](https://wormhole.com/docs/build/start-building/supported-networks/evm/#__tabbed_34_1) 和 [Kairos Testnet](https://wormhole.com/docs/build/start-building/supported-networks/evm/#__tabbed_35_1) 。 要开始在 Kaia 上使用 Wormhole,请参阅以下指南: +Wormhole 同時支持 [Kaia Mainnet](https://wormhole.com/docs/build/start-building/supported-networks/evm/#__tabbed_34_1) 和 [Kairos Testnet](https://wormhole.com/docs/build/start-building/supported-networks/evm/#__tabbed_35_1) 。 要開始在 Kaia 上使用 Wormhole,請參閱以下指南: -- [创建跨链信息传递合约](https://wormhole.com/docs/tutorials/messaging/cross-chain-contracts/) -- [创建跨链令牌传输](https://wormhole.com/docs/tutorials/messaging/cross-chain-token-contracts/) +- [創建跨鏈信息傳遞合約](https://wormhole.com/docs/tutorials/messaging/cross-chain-contracts/) +- [創建跨鏈令牌傳輸](https://wormhole.com/docs/tutorials/messaging/cross-chain-token-contracts/) - [Github 示例](https://github.com/wormhole-foundation/wormhole-examples) From 267ee23e1ca5bff17f983bb4c1749f69a495885e Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:47:01 +0800 Subject: [PATCH 0074/2513] New translations layerzero.md (Chinese Simplified) --- .../current/build/tools/cross-chain/layerzero.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/layerzero.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/layerzero.md index 661581c6e193..0d3ec62f78a3 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/layerzero.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/cross-chain/layerzero.md @@ -1,13 +1,13 @@ # Layerzero -## 导言 +## 導言 -[LayerZero](https://docs.layerzero.network/v2)作为Web3中的全链互操作性协议,使应用程序能够跨区块链移动数据,通过不可变的智能合约独特地支持抗审查信息和无许可开发。 Layerzero 为开发全能链应用程序提供了一套丰富的工具,因此开发人员可以轻松地[发送任意数据](https://docs.layerzero.network/v2/home/protocol/contract-standards#oapp)、[外部函数调用](https://docs.layerzero.network/v2/developers/evm/oapp/message-design-patterns)和[令牌](https://docs.layerzero.network/v2/home/protocol/contract-standards#oft),同时保持对其应用程序的完全自主和控制。 +[LayerZero](https://docs.layerzero.network/v2)作為Web3中的全鏈互操作性協議,使應用程序能夠跨區塊鏈移動數據,通過不可變的智能合約獨特地支持抗審查信息和無許可開發。 Layerzero 為開發全能鏈應用程序提供了一套豐富的工具,因此開發人員可以輕鬆地[發送任意數據](https://docs.layerzero.network/v2/home/protocol/contract-standards#oapp)、[外部函數調用](https://docs.layerzero.network/v2/developers/evm/oapp/message-design-patterns)和[令牌](https://docs.layerzero.network/v2/home/protocol/contract-standards#oft),同時保持對其應用程序的完全自主和控制。 ## 使用方法 -Layerzero 同时支持 [Kaia Mainnet](https://docs.layerzero.network/v2/developers/evm/technical-reference/deployed-contracts#klaytn) 和 [Kairos Testnet](https://docs.layerzero.network/v2/developers/evm/technical-reference/deployed-contracts#klaytn-baobab) 。 要开始在 Kaia 上使用 LayerZero,请参阅以下指南: +Layerzero 同時支持 [Kaia Mainnet](https://docs.layerzero.network/v2/developers/evm/technical-reference/deployed-contracts#klaytn) 和 [Kairos Testnet](https://docs.layerzero.network/v2/developers/evm/technical-reference/deployed-contracts#klaytn-baobab) 。 要開始在 Kaia 上使用 LayerZero,請參閱以下指南: -- [LayerZero V2 OApp 快速入门](https://docs.layerzero.network/v2/developers/evm/oapp/overview) -- [LayerZero V2 OFT 快速入门](https://docs.layerzero.network/v2/developers/evm/oft/quickstart) -- [LayerZero V2 ONFT 快速入门](https://docs.layerzero.network/v2/developers/evm/onft/quickstart) +- [LayerZero V2 OApp 快速入門](https://docs.layerzero.network/v2/developers/evm/oapp/overview) +- [LayerZero V2 OFT 快速入門](https://docs.layerzero.network/v2/developers/evm/oft/quickstart) +- [LayerZero V2 ONFT 快速入門](https://docs.layerzero.network/v2/developers/evm/onft/quickstart) From 42bfae9bd49239c7f14b0ed167d903c5873ddc11 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:50:04 +0800 Subject: [PATCH 0075/2513] New translations thegraph.md (Japanese) --- .../current/build/tools/indexers/thegraph.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md b/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md index 5492a45d2fc5..8b3c25efe121 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md @@ -104,7 +104,7 @@ Once your subgraph is ready to be put into production, you can publish it to the > - Kaia shows as "partially supported" for now because a final on-chain voting process to unlock rewards for indexers has not been completed yet. For now, Edge & Node's Indexer (Upgrade Indexer) will be the only indexer supporting all Kaia subgraphs. > - The Graph's smart contracts are all on Arbitrum One, even though your subgraph is indexing data from Kaia, Ethereum or any other [supported chain](https://thegraph.com/docs/en/developing/supported-networks/). -## 3. Query your Subgraph +## 3. 3. Query your Subgraph Congratulations! You can now query your subgraph on the decentralized network! From 745be12a00c28cc7bd196ee2492e12b5b853b696 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:50:06 +0800 Subject: [PATCH 0076/2513] New translations thegraph.md (Chinese Simplified) --- .../current/build/tools/indexers/thegraph.md | 130 +++++++++--------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md index f08805846258..cd805f901646 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/indexers/thegraph.md @@ -4,133 +4,133 @@ sidebar_label: The Graph # The Graph -在构建 dapp 时,获取智能合约的历史数据可能会令人沮丧。 [The Graph](https://thegraph.com/) 通过被称为子图的应用程序接口,提供了一种查询智能合约数据的简便方法。 图形的基础设施依赖于索引器的去中心化网络,使您的 dapp 真正实现去中心化。 +Getting historical data on a smart contract can be frustrating when building a dapp. [The Graph](https://thegraph.com/) provides an easy way to query smart contract data through APIs known as subgraphs. The Graph’s infrastructure relies on a decentralized network of indexers, enabling your dapp to become truly decentralized. -Kaia Mainnet 和 Testnet 均由 The Graph 提供支持。 +Both Kaia Mainnet & Testnet are supported by The Graph. -## 快速入门 +## Quick Start -设置这些子图只需几分钟。 要开始操作,请遵循以下三个步骤: +These subgraphs only take a few minutes to set up. To get started, follow these three steps: -1. 初始化子图项目 -2. 部署和发布 -3. 从您的应用程序中查询 +1. Initialize your subgraph project +2. Deploy & Publish +3. Query from your dapp -定价 +Pricing: -- Studio 中的速率限制测试终点是免费的。 -- 去中心化网络的 API 调用按次付费,每 10 万次查询收费 4 美元。 前 100K 次查询免费! +- The rate-limited test endpoints in Studio are free. +- API calls for the decentralized network are pay-per-use at $4 per 100K queries. The first 100K queries are free! -下面是一个步骤: +Here’s a step by step walk through: -## 1. 初始化子图项目 +## 1. Initialize your subgraph project -### 在 Subgraph Studio 上创建子图 +### Create a subgraph on Subgraph Studio⁠ -访问 [Subgraph Studio] (https://thegraph.com/studio/) 并连接您的钱包。 连接钱包后,您可以点击 "创建子图"。 选择名称时,建议使用标题大小写:"子图名称链名称"。 +Go to the [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. Once your wallet is connected, you can begin by clicking “Create a Subgraph”. When choosing a name, it is recommended to use Title Case: “Subgraph Name Chain Name.” ![Create a Subgraph](/img/build/tools/graph/01-create-subgraph.png) -然后,您将进入您的子图页面。 您需要的所有 CLI 命令都将显示在页面右侧: +You will then land on your subgraph’s page. All the CLI commands you need will be visible on the right side of the page: ![CLI commands](/img/build/tools/graph/02-cli-commands.webp) -### 安装图形 CLI +### Install the Graph CLI⁠ -在本地计算机上运行以下程序: +On your local machine run the following: ``` npm install -g @graphprotocol/graph-cli ``` -### 初始化子图 +### Initialize your Subgraph⁠ -您可以直接从您的子图页面中复制,以包含您的特定子图标题: +You can copy this directly from your subgraph page to include your specific subgraph slug: ``` -graph init --studio +graph init --studio ``` -系统会提示您提供子图的一些信息,如下所示: +You’ll be prompted to provide some info on your subgraph like this: ![CLI sample](/img/build/tools/graph/03-cli-sample.webp) -输入合约信息后,graph-cli 会尝试从 blockexplorer API 获取 ABI、StartBLock 和合约名称。 +After entering the contract info, the graph-cli will attempt to fetch ABI, StartBLock & Contract name from the blockexplorer API. -不过,KaiaScan 的 API 还没有准备好,所以当被要求重试时,只需说 "不"。 以下是手动获取这些信息的方法: +However, KaiaScan's API is not ready yet, so when asked to retry, just say "no". Here's how to obtain these manually: -1. ABI:您需要在运行 `graph init` 的同一目录下准备一个包含 ABI 的 json 文件。 从[Kaiascan 上的合同页面](https://kaiascan.io/address/0x5096db80b21ef45230c9e423c373f1fc9c0198dd),进入 "合同 "选项卡,点击 "查看代码",就能复制 ABI。 将其保存为 json 文件,放在运行 `graph init` 的同一文件夹中。 在上面的截图中,它被保存为 `abi.json`。 +1. ABI: You need to prepare a json file containing the ABI in the same directory where you're running `graph init`. From the [contract's page on Kaiascan](https://kaiascan.io/address/0x5096db80b21ef45230c9e423c373f1fc9c0198dd), go to the `Contract` tab, click `View Code` and you'll be able to copy the ABI. Save it as a json file in the same folder where you're running `graph init`. In this screenshot above, it was saved as `abi.json`. ![Finding ABI](/img/build/tools/graph/04-kaiascan-abi.webp) -2. 启动区块:点击创建合约的交易哈希值。 在那里你会找到创建合同的区块。 +2. Start Block: Click into the transaction hash where the contract was created. There you'll find the block where the contract was created. ![contract creation](/img/build/tools/graph/05-contract-creation.webp) -3. 合同名称:输入合同名称即可。 如果这是您在该子图中索引的唯一一份合同,那么使用默认的 `Contract` 即可。 +3. Contract Name: Just type in the name of the contract. If this is the only contract you're indexing in this subgraph, it's OK to just go with the default `Contract`. -## 2) 部署和发布 +## 2) Deploy & Publish -### 部署到 Subgraph Studio +### Deploy to Subgraph Studio⁠ -首先运行这些命令: +First run these commands: ```bash $ graph codegen $ graph build ``` -然后运行这些程序来验证和部署您的子图。 您可以直接从 Studio 中的子图页面复制这些命令,以包含特定的部署密钥和子图标题: +Then run these to authenticate and deploy your subgraph. You can copy these commands directly from your subgraph’s page in Studio to include your specific deploy key and subgraph slug: ```bash -$ graph auth --studio -$ graph deploy --studio +$ graph auth --studio +$ graph deploy --studio ``` -系统会要求您提供版本标签。 您可以输入类似 v0.0.1 的内容,但也可以自由选择格式。 +You will be asked for a version label. You can enter something like v0.0.1, but you’re free to choose the format. -### 测试子图 +### Test your subgraph⁠ -您可以在操场部分进行示例查询,测试您的子图。 详细信息 "选项卡将显示 API 端点。 您可以使用该端点从您的 dapp 进行测试。 +You can test your subgraph by making a sample query in the playground section. The Details tab will show you an API endpoint. You can use that endpoint to test from your dapp. ![Playground](/img/build/tools/graph/06-playground.png) -### 将子图发布到图谱的去中心化网络中 +### Publish Your Subgraph to The Graph’s Decentralized Network -一旦您的子图可以投入生产,您就可以将其发布到去中心化网络中。 在 Subgraph Studio 的子图页面上,点击 "发布 "按钮: +Once your subgraph is ready to be put into production, you can publish it to the decentralized network. On your subgraph’s page in Subgraph Studio, click on the Publish button: ![publish button](/img/build/tools/graph/07-studio-publish-subgraph.webp) -> **注:** +> **Note:** > -> - Kaia 暂时显示为 "部分支持",因为为索引员解锁奖励的最终链上投票流程尚未完成。 目前,Edge & Node 的索引器(升级索引器)是唯一支持所有 Kaia 子图的索引器。 -> - 尽管您的子图正在索引来自 Kaia、以太坊或任何其他[支持链](https://thegraph.com/docs/en/developing/supported-networks/)的数据,但该图的智能合约都在 Arbitrum One 上。 +> - Kaia shows as "partially supported" for now because a final on-chain voting process to unlock rewards for indexers has not been completed yet. For now, Edge & Node's Indexer (Upgrade Indexer) will be the only indexer supporting all Kaia subgraphs. +> - The Graph's smart contracts are all on Arbitrum One, even though your subgraph is indexing data from Kaia, Ethereum or any other [supported chain](https://thegraph.com/docs/en/developing/supported-networks/). -## 3. 查询子图 +## 3. Query your Subgraph -祝贺你 现在,您可以在分散式网络上查询您的子图! +Congratulations! You can now query your subgraph on the decentralized network! -对于去中心化网络上的任何子图,只要将 GraphQL 查询传递到子图的查询 URL(可在资源管理器页面顶部找到),就可以开始对其进行查询。 +For any subgraph on the decentralized network, you can start querying it by passing a GraphQL query into the subgraph’s query URL which can be found at the top of its Explorer page. -下面是 Messari 在 [CryptoPunks Ethereum 子图](https://thegraph.com/explorer/subgraphs/HdVdERFUe8h61vm2fDyycHgxjsde5PbB832NHgJfZNqK) 中的一个例子: +Here’s an example from the [CryptoPunks Ethereum subgraph](https://thegraph.com/explorer/subgraphs/HdVdERFUe8h61vm2fDyycHgxjsde5PbB832NHgJfZNqK) by Messari: ![Query URL](/img/build/tools/graph/08-query-url.png) -该子图的查询 URL 为 +The query URL for this subgraph is: -`https://gateway-arbitrum.network.thegraph.com/api/`**[api-key]**`/subgraphs/id/HdVdERFUe8h61vm2fDycgxjsde5PbB832NHgJfZNqK` +`https://gateway-arbitrum.network.thegraph.com/api/`**[api-key]**`/subgraphs/id/HdVdERFUe8h61vm2fDyycgxjsde5PbB832NHgJfZNqK` -现在,您只需填写自己的 API 密钥,即可开始向该端点发送 GraphQL 查询。 +Now, you simply need to  fill in your own API Key to start sending GraphQL queries to this endpoint. -### 获取自己的应用程序接口密钥 +### Getting your own API Key ![API keys](/img/build/tools/graph/09-apikeys.png) -在 Subgraph Studio 中,您会看到页面顶部的 "API 密钥 "菜单。 您可以在此创建 API 密钥。 +In Subgraph Studio, you’ll see the “API Keys” menu at the top of the page. Here you can create API Keys. -## 附录 +## Appendix -### 查询示例 +### Sample Query -该查询显示了售价最昂贵的 CryptoPunks。 +This query shows the most expensive CryptoPunks sold. ```graphql { @@ -142,29 +142,29 @@ $ graph deploy --studio ``` -将其输入查询 URL 会返回此结果: +Passing this into the query URL returns this result: ``` { - "数据":{ - "trades":[ + "data": { + "trades": [ { - "priceETH":"124457.067524886018255505", - "tokenId":"9998" + "priceETH": "124457.067524886018255505", + "tokenId": "9998" }, { - "priceETH":"8000", - "tokenId":"5822" + "priceETH": "8000", + "tokenId": "5822" }, -// ... +// ... ``` -### 代码示例 +### Sample code ```jsx const axios = require('axios'); @@ -199,7 +199,7 @@ axios(graphQLRequest) }); ``` -### 其他资源: +### Additional resources: -- 要探索优化和定制子图以提高性能的所有方法,请阅读 [在此创建子图](https://thegraph.com/docs/en/developing/creating-a-subgraph/) 的更多信息。 -- 有关从子图中查询数据的更多信息,请阅读 [此处](https://thegraph.com/docs/en/querying/querying-the-graph/)。 +- To explore all the ways you can optimize & customize your subgraph for a better performance, read more about [creating a subgraph here](https://thegraph.com/docs/en/developing/creating-a-subgraph/). +- For more information about querying data from your subgraph, read more [here](https://thegraph.com/docs/en/querying/querying-the-graph/). From f987b5849e1ba6888c64579c3f314d272d39a3ed Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:50:10 +0800 Subject: [PATCH 0077/2513] New translations migrating-ethereum-app-to-kaia.mdx (Chinese Simplified) --- .../migrating-ethereum-app-to-kaia.mdx | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/migrating-ethereum-app-to-kaia.mdx b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/migrating-ethereum-app-to-kaia.mdx index 9b3ece04604a..b7430a811aaf 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/migrating-ethereum-app-to-kaia.mdx +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tutorials/migrating-ethereum-app-to-kaia.mdx @@ -1,80 +1,80 @@ --- id: migrating-ethereum-app-to-kaia -title: 将以太坊应用程序迁移到 Kaia +title: Migrate Ethereum App to Kaia --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -## 目录 +## Table of Contents -* [1. 导言](#1-introduction) -* [2. 先决条件](#2-prerequisites) -* [3. Kaia 与以太坊兼容](#2-kaia-has-ethereum-compatibility) -* [4. 迁移应用程序](#4-migrate-app) +* [1. Introduction](#1-introduction) +* [2. Prerequisites](#2-prerequisites) +* [3. Kaia has Ethereum compatibility](#2-kaia-has-ethereum-compatibility) +* [4. Migrate App](#4-migrate-app) -## 1. 导言 +## 1. Introduction -本教程旨在指导如何将以太坊应用程序迁移到 Kaia。 无需任何 Kaia 经验。 我们将只关注将以太坊应用程序迁移到 Kaia 所需的代码修改。 +This tutorial is intended to give a guide on how to migrate an Ethereum App to Kaia. No previous Kaia experience is needed. We will focus only on the code modifications required to migrate an Ethereum App to Kaia. -## 2. 先决条件 +## 2. Prerequisites -* 熟悉支持 EVM 的开发工具和标准。 -* 构建 dApp 的基本知识。 +* Familiarity with developer tooling and standards that support EVM. +* Basic knowledge building a dApp. -## 3. Kaia 与以太坊兼容 +## 3. Kaia has Ethereum compatibility -Kaia 运行时环境与以太坊虚拟机兼容,可执行用 Solidity 编写的智能合约。 Kaia 的 RPC API 和其他客户端库与以太坊的 API 规范几乎完全相同。 因此,将以太坊应用程序迁移到 Kaia 非常简单。 这有助于开发人员轻松迁移到新的区块链平台。 +Kaia runtime environment is compatible with Ethereum Virtual Machine and executes smart contracts written in Solidity. Kaia's RPC APIs and other client libraries maintain almost identical API specifications with Ethereum's whenever available. Therefore, it is fairly straightforward to migrate Ethereum Apps to Kaia. This helps developers easily move to a new blockchain platform. -## 4. 迁移应用程序 +## 4. Migrate App -按照以下步骤将您的以太坊应用程序迁移到 Kaia: +Migrate your Ethereum App to Kaia following the steps below: -1. 配置您的合同工具和 SDK,以 Kaia Network - Kairos Testnet 为目标: - * RPC 端点: `https://public-en-kairos.node.kaia.io` - * WebSocket 端点(可选):wss://public-en-kairos.node.kaia.io/ws\`。 - * 连锁编号:1001 +1. Configure your contract tooling and SDKs to target Kaia Network - Kairos Testnet: + * RPC Endpoint: `https://public-en-kairos.node.kaia.io` + * WebSocket Endpoint (Optional): `wss://public-en-kairos.node.kaia.io/ws` + * Chain ID: 1001 -2. 使用 [Kaia 钱包](https://www.kaiawallet.io/) 创建账户,并从 [Faucet](https://faucet.kaia.io) 获取一些测试资金。 +2. Create an account using the [Kaia Wallet](https://www.kaiawallet.io/) and get some test funds from the [Faucet](https://faucet.kaia.io). -3. 部署您的合同 +3. Deploy your contract(s) - + ```js - // 使用 Hardhat,只需在 "hardhat.config.js "配置文件中添加以下网络即可: - networks:{ + // using Hardhat, it will be enough to add the following networks to the "hardhat.config.js" configuration file + networks: { kaia: { - url:"https://public-en.node.kaia.io", + url: "https://public-en.node.kaia.io", accounts:[process.env.PRIVATE_KEY], }, - kairos_testnet:{ - url:"https://public-en-kairos.node.kaia.io", + kairos_testnet: { + url: "https://public-en-kairos.node.kaia.io", accounts:[process.env.PRIVATE_KEY], } } - // 然后运行命令进行部署: + // Then run the command to deploy : // npx hardhat run scripts/deploy.js --network kaia // npx hardhat run scripts/deploy.js --network kairos_testnet ``` - + ```js - forge create --rpc-url --private-key + forge create --rpc-url --private-key ``` -4. 使用 [Kaia SDK](https://github.com/kaiachain/kaia-sdk) 与合同互动。 您可以随意使用其他工具包,如 [viem](../../references/sdk/viem/viem.md) 或 [web3.py](../../references/sdk/web3py-ext/getting-started.md) 。 +4. Interact with contract using [Kaia SDK](https://github.com/kaiachain/kaia-sdk). Feel free to use any other toolkit like [viem](../../references/sdk/viem/viem.md) or [web3.py](../../references/sdk/web3py-ext/getting-started.md). - **A. 读取区块链数据** + **A. Read blockchain data** - **街区编号** + **BlockNumber** - 只需用 Kaia 的 RPC 端点替换 web3 库,就可以实时同步 Kaia 的 BlockNumber,而不是以太坊的 BlockNumber。 + By simply replacing the web3 library with Kaia’s RPC Endpoint, you can sync Kaia's BlockNumber in real-time instead of Ethereum's BlockNumber. ```js const { JsonRpcProvider } = require("@kaiachain/ethers-ext/v6"); @@ -94,7 +94,7 @@ Kaia 运行时环境与以太坊虚拟机兼容,可执行用 Solidity 编写 ``` - **合同数据** + **Contract Data** ```js const ethers = require("ethers"); @@ -136,7 +136,7 @@ Kaia 运行时环境与以太坊虚拟机兼容,可执行用 Solidity 编写 main(); ``` - **B. 写入区块链** + **B. Write to the blockchain** ```js const ethers = require("ethers"); From 8fbbd6c02a6c1b7c8b3fb66e3d0231e8702300d0 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:50:16 +0800 Subject: [PATCH 0078/2513] New translations pyth-network.md (Chinese Simplified) --- .../build/tools/oracles/pyth-network.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/pyth-network.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/pyth-network.md index 360b31ff8537..4f86b4e72271 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/pyth-network.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/build/tools/oracles/pyth-network.md @@ -1,21 +1,21 @@ -# Pyth 网络 +# Pyth Network ![](/img/banners/kaia-pyth.png) -## 概述 +## Overview -Pyth 网络](https://pyth.network/) 是最大的甲骨文第一方网络之一,提供[大量连锁店](https://docs.pyth.network/price-feeds/contract-addresses) 的实时数据。 +The [Pyth Network](https://pyth.network/) is one of the largest first-party Oracle network, delivering real-time data across [a vast number of chains](https://docs.pyth.network/price-feeds/contract-addresses). -该网络由全球[最大的交易所、做市商和金融服务提供商]组成(https://pyth.network/publishers)。 这些数据在链上发布专有数据,供智能合约应用程序汇总和分发。 +The network comprises some of the world’s [largest exchanges, market makers, and financial services providers](https://pyth.network/publishers). These publish proprietary data on-chain for aggregation and distribution to smart contract applications. -## 使用 Pyth 网络 +## Using Pyth Network -Pyth 引入了创新的低延迟[拉动式甲骨文设计](https://docs.pyth.network/documentation/pythnet-price-feeds/on-demand),用户可以在需要时拉动链上的价格更新,使链上环境中的每个人都能最高效地访问该数据点。 Pyth 网络每**400毫秒**更新一次价格,使 Pyth 成为速度最快的链上算子之一。 +The Pyth introduces an innovative low-latency [pull oracle design](https://docs.pyth.network/documentation/pythnet-price-feeds/on-demand), where users can pull price updates onchain when needed, enabling everyone in the onchain environment to access that data point most efficiently. Pyth network updates the prices every **400ms**, making Pyth one of the fastest on-chain oracles. -Kaia 上的开发人员可以无权限地访问股票、ETF、商品、外汇货币对和加密货币的任何 [Pyth's price feeds](https://pyth.network/developers/price-feed-ids)。 +Developers on Kaia have permissionless access to any of [Pyth’s price feeds](https://pyth.network/developers/price-feed-ids) for equities, ETFs, commodities, foreign exchange pairs, and cryptocurrencies. -下面是一个在 Kaia 网络上获取 ETH/USD 最新价格的合约示例。 -您必须通过[Pyth 的合约地址](https://docs.pyth.network/price-feeds/contract-addresses/evm) 获取 Kaia 主网/主网的信息,并通过所需的[price feed id](https://pyth.network/developers/price-feed-ids)获取最新价格。 +Here is a working example of a contract that fetches the latest price of ETH/USD on the Kaia network. +You have to pass [Pyth's contract address](https://docs.pyth.network/price-feeds/contract-addresses/evm) for Kaia mainnet/testnet and the desired [price feed id](https://pyth.network/developers/price-feed-ids) to fetch the latest price. ```solidity // SPDX-License-Identifier: UNLICENSED @@ -46,37 +46,37 @@ contract MyFirstPythContract { } ``` -在这里,你可以从我们的[`Hermes`](https://hermes.pyth.network/docs/)获取`updateData`,它监听 Pythnet 和 Wormhole 以获取价格更新;或者你也可以使用[`pyth-evm-js`](https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/ethereum/sdk/js/src/EvmPriceServiceConnection.ts#L15) SDK。 查看 [如何获取价格更新](https://docs.pyth.network/price-feeds/fetch-price-updates) 获取最新数据。 +Here you can fetch the `updateData` from our [`Hermes`](https://hermes.pyth.network/docs/), which listens to Pythnet and Wormhole for price updates; or you can use the [`pyth-evm-js`](https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/ethereum/sdk/js/src/EvmPriceServiceConnection.ts#L15) SDK. Check [How to Fetch Price Updates](https://docs.pyth.network/price-feeds/fetch-price-updates) to pull the latest data. -该[软件包](https://github.com/pyth-network/pyth-crosschain/tree/main/target_chains/ethereum/sdk/solidity) 提供了使用 Solidity 从 Pyth 网络甲骨文中获取价格的实用工具。 此外,它还包含[Pyth Interface ABI](https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/ethereum/sdk/solidity/abis/IPyth.json),您可以在库中使用它与 Pyth 合约通信。 +This [package](https://github.com/pyth-network/pyth-crosschain/tree/main/target_chains/ethereum/sdk/solidity) provides utilities for consuming prices from the Pyth network oracle using Solidity. Also, it contains the [Pyth Interface ABI](https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/ethereum/sdk/solidity/abis/IPyth.json) that you can use in your libraries to communicate with the Pyth contract. -我们建议在使用 Pyth 数据时遵循 [用户最佳实践](https://docs.pyth.network/documentation/pythnet-price-feeds/best-practices)。 +We recommend following the [consumer best practices](https://docs.pyth.network/documentation/pythnet-price-feeds/best-practices) when consuming Pyth data. -更多信息,请查阅官方 [Pyth 文档](https://docs.pyth.network/price-feeds)。 有关与 Pyth 智能合约交互的各种功能的详细信息,请参见[API 参考部分](https://api-reference.pyth.network/price-feeds/evm/getPrice)。 +For more information, check out the official [Pyth documentation](https://docs.pyth.network/price-feeds). There are details on the various functions available for interacting with the Pyth smart contract in the [API Reference section](https://api-reference.pyth.network/price-feeds/evm/getPrice). ## Pyth on Kaia -Pyth Network 智能合约可在以下地址获取: +The Pyth Network smart contract is available at the following address: -- 主网:[0x2880ab155794e7179c9ee2e38200202908c17b43](https://kaiascan.io/account/0x2880aB155794e7179c9eE2e38200202908C17B43) -- Kairos Testnet:[0x2880ab155794e7179c9ee2e38200202908c17b43](https://kairos.kaiascan.io/account/0x2880aB155794e7179c9eE2e38200202908C17B43) +- Mainnet: [0x2880ab155794e7179c9ee2e38200202908c17b43](https://kaiascan.io/account/0x2880aB155794e7179c9eE2e38200202908C17B43) +- Kairos Testnet: [0x2880ab155794e7179c9ee2e38200202908c17b43](https://kairos.kaiascan.io/account/0x2880aB155794e7179c9eE2e38200202908C17B43) -此外,单击可访问 [Pyth 价格-进价 ID](https://pyth.network/developers/price-feed-ids)。 +Additionally, click to access the [Pyth price-feed IDs](https://pyth.network/developers/price-feed-ids). -## 将 Pyth 用作 PUSH Oracle +## Using Pyth as a PUSH Oracle -Pyth Oracle 可用作推送甲骨文,通过运行一个调度程序来更新后台的价格。 它将确保您的 dapp 根据您的配置更新最新价格。 查看开源 [price pusher](https://github.com/pyth-network/pyth-crosschain/tree/main/apps/price_pusher) 应用程序,开始使用调度程序。 +Pyth Oracle can be used as a Push oracle by running a scheduler which can update the prices in the backend. It will make sure that the your dapp will be updated with latest prices as per your configuration. Checkout the open source [price pusher](https://github.com/pyth-network/pyth-crosschain/tree/main/apps/price_pusher) app to get started with the scheduler. -## 开发商和社区 +## Developers and community -Pyth 网络为开发人员提供了更多工具,如 [TradingView Integration](https://docs.pyth.network/guides/how-to-create-tradingview-charts) 或 [Gelato web3 functions](https://docs.pyth.network/guides/how-to-schedule-price-updates-with-gelato) 等。 +The Pyth network provides additional tools to developers, such as [TradingView Integration](https://docs.pyth.network/guides/how-to-create-tradingview-charts), or the [Gelato web3 functions](https://docs.pyth.network/guides/how-to-schedule-price-updates-with-gelato). -查看以下链接,开始使用 Pyth。 +Check out the following links to get started with Pyth. -- [Pyth EVM 集成指南](https://docs.pyth.network/price-feeds/use-real-time-data/evm) -- [Pyth文档](https://docs.pyth.network/home) -- [Pyth API 参考](https://api-reference.pyth.network/price-feeds/evm/getPrice) -- [Pyth 示例](https://github.com/pyth-network/pyth-examples) +- [Pyth EVM Integration Guide](https://docs.pyth.network/price-feeds/use-real-time-data/evm) +- [Pyth Docs](https://docs.pyth.network/home) +- [Pyth API Reference](https://api-reference.pyth.network/price-feeds/evm/getPrice) +- [Pyth Examples](https://github.com/pyth-network/pyth-examples) - [Pyth Price Feed Ids](https://pyth.network/developers/price-feed-ids) - [Website](https://pyth.network/) - [Twitter](https://x.com/PythNetwork) From f25d5329fcb36e81a557d0e0f9718274ed4d5377 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:31 +0800 Subject: [PATCH 0079/2513] New translations build.md (Chinese Traditional) --- .../docusaurus-plugin-content-docs/current/build/build.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/build.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/build.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/build.md new file mode 100644 index 000000000000..c3e38eb1468c --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/build.md @@ -0,0 +1,3 @@ +# 歡迎光臨 + +歡迎來到 Kaia 的 "構建 "版塊。 本節針對有意將 Kaia 系統用於去中心化應用的開發者。 在這裡,您可以找到部署不同類型智能合約的多個教程,以及所有可用工具和資源的鏈接。 From 11b5f3a2c3bbb9b7f2597f1178b41df5e81a3a2d Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:32 +0800 Subject: [PATCH 0080/2513] New translations account.md (Chinese Traditional) --- .../build/get-started/account/account.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/account.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/account.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/account.md new file mode 100644 index 000000000000..8459f44d0130 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/account.md @@ -0,0 +1,95 @@ +# 賬戶基礎知識 + +**警告**\*:記住您的密碼。 如果您丟失了賬戶密碼,您將無法訪問該賬戶。 **這裡沒有** _**忘記密碼**_ \*\*選項。 永遠不要忘記。 + +Kaia 為開發人員提供了兩個方便的命令行工具:"ken "和 "JavaScript 控制檯",用於管理賬戶。 請注意,不支持以未加密格式導出私人密鑰。 + +## ken + +Kaia 端點節點二進製程序 `ken` 通過 `account` 命令提供賬戶管理。 通過命令 `account` 可以創建新賬戶、列出所有現有賬戶、將私鑰導入新賬戶、遷移到最新的密鑰格式以及更改密碼。 + +### 使用方法 + +```bash +$ ken account [options...] [arguments...] +``` + +**命令** + +```bash +$ ken account -help +... +COMMANDS: + list Print summary of existing accounts + new Create a new account + update Update an existing account + import Import a private key into a new account +... +``` + +你可以通過 `ken account --help` 獲取子命令的信息。 + +```text +$ ken account list --help +list [command options] [arguments...] + +Print a short summary of all accounts + +KAIA OPTIONS: + --dbtype value Blockchain storage database type ("leveldb", "badger") (default: "leveldb") + --datadir "/Users/ethan/Library/KEN" Data directory for the databases and keystore + --keystore Directory for the keystore (default = inside the datadir) + +DATABASE OPTIONS: + --db.no-partitioning Disable partitioned databases for persistent storage +``` + +### 數據目錄 + +密鑰存儲文件存儲在`/keystore`下。 您可以按如下方式指定數據目錄。 強烈建議在執行 "ken account "命令時使用"--datadir "選項。 讓數據目錄指向在`kend.conf`中設置的`DATA_DIR`,以便與端點節點無縫共享賬戶。 + +```bash +$ ken account new --datadir +$ ken account new --datadir "~/kend_home" +``` + +如果未指定數據目錄,默認位置如下。 + +- Mac: `~/Library/KEN` +- Linux: `~/.ken` + +## JavaScript 控制檯 + +要連接 JavaScript 控制檯,EN 必須處於運行狀態。 更多信息,請參閱 [啟動 EN](./../smart-contracts/deploy/ken.md)。 啟動 EN 並連接到控制檯,如下所示。 + +### 使用方法 + +```bash +$ kend start +Starting kend: OK + +$ ken attach --datadir ~/kend_home +Welcome to the Kaia JavaScript console! + +instance: Kaia/vX.X.X/XXXX-XXXX/goX.X.X + datadir: ~/kend_home + modules: admin:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 + +> +``` + +**命令** + +輸入 `personal` 或 `kaia` 可獲得可用功能列表。 在本教程中,我們將訪問以下函數。 + +```bash +> personal.newAccount() +> personal.importRawKey() +> personal.unlockAccount() +> kaia.accounts +> kaia.getBalance() +``` + +### 數據目錄 + +創建賬戶時,密鑰存儲文件存儲在`/keystore` 下。 ``是在 "kend.conf "中設置的 "DATA_DIR"。 如果按照快速入門指南中的示例,則必須是 `~/kend_home`。 From e00b6527791821257a642bd2b130eab44531a21c Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:33 +0800 Subject: [PATCH 0081/2513] New translations creating-accounts.md (Chinese Traditional) --- .../get-started/account/creating-accounts.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md new file mode 100644 index 000000000000..df6c10e94df8 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/creating-accounts.md @@ -0,0 +1,67 @@ +# 創建賬戶 + +## 創建新賬戶 + +這將創建一個新賬戶,並在屏幕上打印地址。 在數據目錄下創建密鑰存儲文件。 + +**Kaia密鑰存儲文件** + +創建賬戶時,會創建一個密鑰存儲文件。 密鑰存儲文件是您唯一的 Kaia 私鑰的加密版本,您將用它來簽署您的交易。 密鑰存儲文件名的格式如下: + +- `UTC---
` + +在 Kaia 節點之間傳輸整個目錄或其中的單個密鑰存儲文件是安全的。 請注意,如果您從其他節點向您的節點添加密鑰,賬戶的順序可能會改變。 因此,請確保不要在腳本或代碼片段中依賴索引。 + +### ken + +```bash +$ ken account new --datadir +$ ken account new --password --datadir +$ ken account new --password <(echo $mypassword) --datadir +``` + +**`WARNING`**:請注意,使用密碼文件僅供測試之用;將密碼保存在文件中或以任何其他方式暴露密碼都不是好主意。 如果在密碼文件中使用密碼標誌,最好確保該文件除了你之外,任何人都無法讀取,甚至無法列出。 您可以通過以下方式實現這一目標 + +```bash +$ touch /path/to/password +$ chmod 700 /path/to/password +$ cat > /path/to/password +I type my pass here +^D +``` + +### JavaScript 控制檯 + +在控制檯中,您可以調用以下函數來創建賬戶: + +```javascript +> personal.newAccount("passphrase") +``` + +賬戶以加密格式保存。 您**必須**記住這個密碼,以便將來解鎖您的賬戶。 + +## 導入賬戶 + +您可以使用密鑰文件導入賬戶。 密鑰文件假定包含未加密的私人密鑰,以十六進制編碼的 EC 原始字節形式表示。 簡單地說,它是一個不帶前綴 "0x "的純文本私人密鑰。 + +從給定的密鑰文件中導入未加密的私鑰,創建新賬戶,在數據目錄下生成密鑰存儲文件,並在控制檯中打印地址。 您必須記住密碼,以便將來解鎖賬戶。 + +**注意**:如果可以直接將密鑰存儲文件複製到另一個 Kaia 實例,則不需要此導入/導出機制。 + +### ken + +```bash +$ ken account import --datadir +$ ken account import --password --datadir +``` + +### JavaScript 控制檯 + +```bash +> personal.importRawKey('{private key}', 'mypassword') +"0xfa415bb3e6231f488ff39eb2897db0ef3636dd32"​ + +// Using a Kaia wallet key +> personal.importRawKey('{private key}0x000x{address}', 'mypassword') +"0xfa415bb3e6231f488ff39eb2897db0ef3636dd32" +``` From b38345307c13877b351823b30fd13238de6bb1af Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:35 +0800 Subject: [PATCH 0082/2513] New translations managing-accounts.md (Chinese Traditional) --- .../get-started/account/managing-accounts.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md new file mode 100644 index 000000000000..08aa83efd47a --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/account/managing-accounts.md @@ -0,0 +1,123 @@ +# 管理賬戶 + +## 列出您的賬戶 + +這將返回在數據目錄下創建的所有賬戶列表。 + +### ken + +從命令行調用 CLI: + +```bash +$ ken account list --datadir +$ ken account list --datadir ~/kend_home +Account #0: {bfc22a57999459b0c2ce6337deb9287e7a970e02} keystore:///Users/username/kend_home/keystore/UTC--2019-03-26T07-02-58.524962000Z--bfc22a57999459b0c2ce6337deb9287e7a970e02 +Account #1: {47bd2e9565cbe1789454718d6cf1778d7ea557aa} keystore:///Users/username/kend_home/keystore/UTC--2019-03-26T07-04-44.840061000Z--47bd2e9565cbe1789454718d6cf1778d7ea557aa +``` + +**注意**:如果從其他節點複製密鑰存儲文件或刪除文件,返回的賬戶列表順序可能會發生變化。 因此,請確保不依賴索引,或者確保在複製或刪除密鑰存儲文件時,檢查並更新腳本中的賬戶索引。 + +### JavaScript 控制檯 + +使用控制檯時: + +```javascript +> kaia.accounts +["bfc22a57999459b0c2ce6337deb9287e7a970e02", "47bd2e9565cbe1789454718d6cf1778d7ea557aa"] +``` + +## 解鎖賬戶 + +如果想非交互式地使用賬戶,則需要解鎖。 + +### ken + +你可以使用`--unlock "{address},{address}"`選項在命令行上解鎖賬戶並啟動 EN,該選項以逗號分隔的賬戶(十六進制或索引)列表作為參數,因此你可以在一個會話中以編程方式解鎖賬戶。 如果您想通過 RPC 從 dApps 使用您的賬戶,這將非常有用。 `--unlock` 將解鎖列表中的第一個賬戶。 這在以編程方式創建賬戶時非常有用,不需要知道實際賬戶就能解鎖。 + +創建一個賬戶,並在賬戶未鎖定的情況下啟動一個節點: + +```bash +$ ken account new --password <(echo this is not secret) --datadir +$ ken --password <(echo "this is not secret") --unlock primary --datadir --rpccorsdomain localhost --verbosity 6 2>> log.log +``` + +如果要啟動一個已解鎖特定賬戶的節點,可以使用一個地址或索引,該地址或索引指的是賬戶列表中的地址位置(並與創建順序相對應)。 + +```bash +$ ken --unlock "0" --datadir +$ ken --unlock "2" --datadir +$ ken --unlock "bfc22a57999459b0c2ce6337deb9287e7a970e02" --datadir +``` + +通過命令行可以解鎖多個賬戶。 在這種情況下,解鎖參數是一個以逗號分隔的賬戶地址或索引列表。 + +```bash +$ ken --unlock "0x407d73d8a49eeb85d32cf465507dd71d507100c1,0,5,e470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32" --datadir +``` + +如果非交互式地使用這種結構,密碼文件需要包含相關賬戶的密碼,每行一個。 + +### JavaScript 控制檯 + +在控制檯上,你還可以解鎖賬戶(一次一個),解鎖時間(以秒為單位)。 + +```javascript +> personal.unlockAccount(address, "password", 300) +``` + +請注意,我們不建議在此處使用密碼參數,因為控制檯歷史記錄會被記錄下來,這樣可能會危及您的賬戶安全。 我已經警告過你了。 + +## 查詢賬戶餘額 + +### ken + +不適用 + +### JavaScript 控制檯 + +查看賬戶餘額: + +```javascript +> kaia.fromPeb(kaia.getBalance("{account}"), "KAIA") +6.5 +``` + +使用 JavaScript 函數打印所有餘額: + +```javascript +function checkAllBalances() { + var totalBal = 0; + for (var acctNum in kaia.accounts) { + var acct = kaia.accounts[acctNum]; + + var acctBal = kaia.fromPeb(kaia.getBalance(acct), "KAIA"); + totalBal += parseFloat(acctBal); + + console.log("kaia.accounts[" + acctNum + "]: \t" + acct + " \tbalance: " + acctBal + "KAIA"); + + } + + console.log("Total balance: " + totalBal + " KAIA"); +}; +``` + +然後就可以用 + +```javascript +> checkAllBalances(); +kaia.accounts[0]: 0xd1ade25ccd3d550a7eb532ac759cac7be09c2719 balance: 63.11848 KAIA +kaia.accounts[1]: 0xda65665fc30803cb1fb7e6d86691e20b1826dee0 balance: 0 KAIA +kaia.accounts[2]: 0xe470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32 balance: 1 KAIA +kaia.accounts[3]: 0xf4dd5c3794f1fd0cdc0327a83aa472609c806e99 balance: 6 KAIA +``` + +由於該函數會在重啟 `ken` 後消失,因此存儲常用函數以便以後調用會很有幫助。 + +首先,將 `checkAllBalances()`函數定義保存到計算機上的一個文件中。 例如,`/Users/username/klayload.js`。 然後從交互式控制檯加載文件: + +```javascript +> loadScript("/Users/username/klayload.js") +true +``` + +該文件將修改 JavaScript 環境,就像手動輸入命令一樣。 請隨意嘗試! From 7936d15d92bd0c50bd3181b2b752e24ac0341e22 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:36 +0800 Subject: [PATCH 0083/2513] New translations before-you-start.md (Chinese Traditional) --- .../build/get-started/before-you-start.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md new file mode 100644 index 000000000000..4156275f9b0d --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md @@ -0,0 +1,31 @@ +# 開始之前 + +**凱亞網絡** + +- 啟明星測試網 +- 主網 + +**終端節點** + +- 您的[端點節點](../../nodes/endpoint-node/endpoint-node.md)需要連接到 Kaia 網絡併發出 API 調用或發送事務。 +- `ken` 是 Kaia 端點節點二進制文件。 `ken` 公開了兩個接口:[命令行接口](../../nodes/endpoint-node/ken-cli-commands.md)和[JSON-RPC APIs](../../references/json-rpc/klay/account-created)。 `ken` 可在 Linux 和 MacOS 上運行。 +- `ken` CLI 附帶多種實用程序和節點管理功能。 + +**智能合同開發** + +- [Kaia Plugin for Remix](https://ide.kaia.io) - 基於瀏覽器的編譯器和集成開發環境 Kaia Plugin for Remix。 +- [Truffle](https://github.com/trufflesuite/truffle) - 用於在 Solidity 中開發智能合約的開源工具。 +- [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started) - 智能合約和 dApp 的開發環境。 +- [Foundry](https://book.getfoundry.sh/) - Foundry 是一個智能合約開發工具鏈。 +- [Thirdweb](https://portal.thirdweb.com/) - Thirdweb 是一個完整的 web3 開發框架,提供構建、管理和分析 web3 應用程序的服務。 + +**Kaia SDK** + +- [caver-js](../../references/sdk/caver-js/caver-js.md) :實現 Kaia JSON-RPC API 的 JavaScript 庫。 +- [caver-java](../../references/sdk/caver-java/caver-java.md):實現 Kaia JSON-RPC API 的 Java 庫。 + +**凱亞工具包** + +- [Kaiascope](https://kaiascope.com/) - 區塊和事務瀏覽器。 +- [Kaia Wallet](https://www.kaiawallet.io/) - Kaia 網絡的瀏覽器擴展錢包。 +- [Kaia Contracts Wizard](https://wizard.klaytn.foundation/) - 用於引導智能合約和了解 Kaia Contracts 的交互式生成器。 From 452d1ddd94ec0932a392966c20010ba6eb15e09a Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:37 +0800 Subject: [PATCH 0084/2513] New translations get-started.md (Chinese Traditional) --- .../current/build/get-started/get-started.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/get-started.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/get-started.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/get-started.md new file mode 100644 index 000000000000..c079856c8465 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/get-started.md @@ -0,0 +1,9 @@ +# 入門指南 + +試著熟悉 Kaia。 本章是您使用 Kaia dApps 的起點。 + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; + + +``` From 9c391fe8105ae6e3032cd4d0aa3a347c304f8100 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:38 +0800 Subject: [PATCH 0085/2513] New translations getting-kaia.md (Chinese Traditional) --- .../current/build/get-started/getting-kaia.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md new file mode 100644 index 000000000000..c1a89877ecd4 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/getting-kaia.md @@ -0,0 +1,15 @@ +# 獲取 KAIA + +## 凱洛斯測試網和水龍頭 + +**testnet KAIA** 龍頭在 Kairos 網絡上運行。 該龍頭可通過 [Kairos Kaia Faucet](https://faucet.kaia.io)訪問。 要接收 KAIA 測試網,您必須擁有一個有效的 Kaia 帳戶。 + +- 使用私人密鑰或密鑰存儲文件將賬戶加載到錢包中。 Testnet KAIA 將發送到已加載的帳戶。 +- 點擊 "運行水龍頭 "按鈕將發送 50 個測試網 KAIA 並更新您的餘額。 請注意,每個賬戶的水龍頭每 24 小時可運行一次。 + +## KAIA 交流名單 + +KAIA 在多家交易所上市。 請通過以下鏈接查看韓國國際交流協會的交流名單。 + +- [KAIA交易所在CoinGecko上市](https://www.coingecko.com/en/coins/klay#markets) +- [KAIA交易所在CoinMarketCap上市](https://coinmarketcap.com/currencies/klaytn/markets/) From 53c324ce8bc60bbbd5844ee5ed7d42dc47277f12 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:40 +0800 Subject: [PATCH 0086/2513] New translations hardhat.md (Chinese Traditional) --- .../current/build/get-started/hardhat.md | 417 ++++++++++++++++++ 1 file changed, 417 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md new file mode 100644 index 000000000000..9ca5cbfd94f6 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/get-started/hardhat.md @@ -0,0 +1,417 @@ +# 使用 Hardhat 部署第一個智能合約 + +![](/img/banners/kaia-hardhat.png) + +## 導言 + +本節將指導你使用 [Hardhat](https://hardhat.org/) 向凱亞-凱羅斯網絡部署靈魂令牌。 + +Hardhat 是一個智能合約開發環境,它將為您提供幫助: + +- 開發和編譯智能合約。 +- 調試、測試和部署智能合約和 dApp。 + +靈魂綁定令牌(SBT)是不可轉讓的 NFT。 也就是說,一旦獲得,就不得出售或轉讓給其他用戶。 要了解有關 SBT、其工作原理和使用案例的更多信息,可以查看 Vitalik Buterin 發表的這篇 [參考文章](https://vitalik.eth.limo/general/2022/01/26/soulbound.html)。 + +完成本指南後,您將能夠 + +- 在 Kaia 上建立一個 "Hardhat "項目。 +- 創建一個簡單的靈魂綁定令牌。 +- 使用 Hardhat 編譯智能合約。 +- 使用 Hardhat 測試、部署智能合約並與之交互。 +- 探索 Hardhat 分叉功能。 + +## 先決條件 + +學習本教程的前提條件如下: + +- 代碼編輯器:源代碼編輯器,如 [VS Code](https://code.visualstudio.com/download)。 +- [Metamask](../tutorials/connecting-metamask.mdx#install-metamask):用於部署合約、簽署事務和與合約交互。 +- RPC 端點:可從支持的[端點提供程序](../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 +- [NodeJS和NPM](https://nodejs.org/en/) + +## 設置開發環境 + +要使用 hardhat,我們需要建立開發環境並安裝 hardhat。 讓我們按以下步驟來做: + +**第 1**步創建項目目錄 + +```bash +mkdir soulbound-tokens +cd soulbound-tokens +``` + +**步驟 2**:初始化 npm 項目 + +在終端中粘貼此命令以創建 package.json 文件 + +```bash +npm init -y +``` + +**第 3 步**:安裝 hardhat 和其他依賴項: + +- 在終端中粘貼下面的代碼安裝 hardhat + +```bash +npm install --save-dev hardhat +``` + +- 粘貼下面的代碼以安裝其他依賴項 + +```bash +npm install dotenv @kaiachain/contracts +``` + +> 注意:這將安裝本項目所需的其他依賴項,包括 `hardhat`、`klaytn/contract`、`dotenv` 等。 + +**第 4 步**:初始化硬頭盔項目: + +運行以下命令啟動硬頭盔項目 + +```bash +npx hardhat +``` + +在本指南中,您將選擇一個排版腳本項目,如下所示: + +![](/img/build/get-started/hardhat-init.png) + +![](/img/build/get-started/hardhat-init-ii.png) + +> 注意:初始化項目時,系統會提示安裝 `hardhat-toolbox` 插件。 該插件捆綁了所有常用軟件包和 Hardhat 插件,建議在開始使用 Hardhat 進行開發時使用。 + +初始化硬帽項目後,當前目錄應包括 + +**contracts/** - 此文件夾包含智能合約代碼。 + +**ignition/modules/** - 該文件夾包含在區塊鏈網絡上部署合約的代碼。 + +**test/** - 該文件夾包含測試智能合約的所有單元測試。 + +**hardhat.config.js** - 該文件包含對 Hardhat 工作和部署靈魂綁定令牌非常重要的配置。 + +**第 5** 步創建 .env 文件 + +現在,在項目文件夾中創建 .env 文件。 該文件可幫助我們將 .env 文件中的環境變量加載到 process.env 文件中。 + +- 在終端中粘貼此命令以創建 .env 文件 + +```bash +touch .env +``` + +- 創建文件後,讓我們將 .env 文件配置為如下所示: + +```js + KAIROS_TESTNET_URL= "您的 Kairos RPC 鏈接" + PRIVATE_KEY= "從 MetaMask 錢包複製的您的私人密鑰" +``` + +> 注:你也可以選擇使用 hardhat 提供的[配置變量](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables) 功能來配置不應包含在代碼庫中的變量。 + +**第 6 步**:設置Hardhat配置 + +用以下配置修改 `hardhat.config.js`: + +```js +require("@nomicfoundation/hardhat-toolbox"); +require('dotenv').config() + + +module.exports = { + solidity: "0.8.17", + networks:{ + kairos: { + url: process.env.KAIROS_TESTNET_URL || "", + gasPrice: 250000000000, + accounts: + process.env.PRIVATE_KEY !== undefined ?[process.env.PRIVATE_KEY] : [], + } + } +}; + +``` + +現在,我們的開發環境已經準備就緒,讓我們開始編寫我們的靈魂綁定令牌智能合約吧。 + +## 創建 SBT 智能合約 + +在本節中,您將使用 [Kaia Contracts](https://github.com/kaiachain/kaia-contracts):這是一個建立在社區驗證代碼堅實基礎上的安全智能合約開發庫。 它是開放式齊柏林合同的分叉。 + +> 注意:您已在 "設置開發環境 "一節的第 3\*\* 步安裝了該庫。 + +**步驟 1**:在資源管理器窗格中選擇合同文件夾,單擊 "新建文件 "按鈕並創建名為 "SBT.sol "的新文件 + +**第 2**步打開文件並粘貼以下代碼: + +```js +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.7; + +import "@kaiachain/contracts/KIP/token/KIP17/KIP17.sol"; +import "@kaiachain/contracts/utils/Counters.sol"; +import "@kaiachain/contracts/access/Ownable.sol"; + +contract SoulBoundToken is KIP17, Ownable { + using Counters for Counters.Counter; + + Counters.Counter private _tokenIdCounter; + + constructor() KIP17("SoulBoundToken", "SBT") {} + + function safeMint(address to) public onlyOwner { + uint256 tokenId = _tokenIdCounter.current(); + _tokenIdCounter.increment(); + _safeMint(to, tokenId); + } + + + function _beforeTokenTransfer(address from, address to, uint256) pure override internal { + require(from == address(0) || to == address(0), "This a Soulbound token. It cannot be transferred."); + } + + function _burn(uint256 tokenId) internal override(KIP17) { + super._burn(tokenId); + } +} +``` + +**代碼演練** + +這就是你的智能合約。 **第 1** 行顯示 Hardhat 使用的是 0.8.7 或更高版本的 Solidity。 除此之外,它還導入了 KIP17.sol 和其他輔助合同。 從第6-12\*\*行開始,創建了一個繼承KIP17的智能合約。 此外,構造函數中還傳遞了標記名稱和符號。 + +如上代碼所示,令牌名稱和符號已分別設置為 **SoulBoundToken** 和 **SBT**。 您可以隨意更改令牌名稱和符號。 + +該合約的一個主要特點是禁止代幣轉讓,這使得發行的代幣成為靈魂債券。 + +## 測試 SBT 智能合約 + +在本節中,我們將測試一些合同功能。 + +**步驟 1**:在資源管理器窗格中,選擇測試文件夾並單擊 "新建文件 "按鈕,創建一個名為 "sbtTest.js "的新文件。 + +**步驟 2**:在 `sbtTest.js` 文件中複製以下代碼。 + +```js +// This is an example test file. Hardhat will run every *.js file in `test/`, +// so feel free to add new ones. + +// Hardhat tests are normally written with Mocha and Chai. + +// We import Chai to use its asserting functions here. +const { expect } = require("chai"); + +// We use `loadFixture` to share common setups (or fixtures) between tests. +// Using this simplifies your tests and makes them run faster, by taking +// advantage of Hardhat Network's snapshot functionality. +const { loadFixture } = require("@nomicfoundation/hardhat-network-helpers"); + +// `describe` is a Mocha function that allows you to organize your tests. +// Having your tests organized makes debugging them easier. All Mocha +// functions are available in the global scope. +// +// `describe` receives the name of a section of your test suite, and a +// callback. The callback must define the tests of that section. This callback +// can't be an async function. +describe("Token contract", function () { + // We define a fixture to reuse the same setup in every test. We use + // loadFixture to run this setup once, snapshot that state, and reset Hardhat + // Network to that snapshot in every test. + async function deployTokenFixture() { + // Get the ContractFactory and Signers here. + const [owner, addr1, addr2] = await ethers.getSigners(); + + // To deploy our contract, we just have to call ethers.deployContract() and call the + // waitForDeployment() method, which happens onces its transaction has been + // mined. + + const sbtContract = await ethers.deployContract("SoulBoundToken"); + + await sbtContract.waitForDeployment(); + + // Fixtures can return anything you consider useful for your tests + return { sbtContract, owner, addr1, addr2 }; + } + + // You can nest describe calls to create subsections. + describe("Deployment", function () { + // `it` is another Mocha function. This is the one you use to define each + // of your tests. It receives the test name, and a callback function. + // + // If the callback function is async, Mocha will `await` it. + it("Should mint SBT to owner", async function () { + const { sbtContract, owner } = await loadFixture(deployTokenFixture); + const safemint = await sbtContract.safeMint(owner.address); + expect(await sbtContract.ownerOf(0)).to.equal(owner.address); + }); + }); + + describe("Transactions", function () { + it("Should prohibit token transfer using transferFrom", async function () { + const { sbtContract, owner, addr1 } = await loadFixture( + deployTokenFixture + ); + + const safemintTx = await sbtContract.safeMint(owner.address); + + // prohibit token transfer of token id (0) from owner to addr1 + await expect( + sbtContract.transferFrom(owner.address, addr1.address, 0) + ).to.be.reverted; + }); + + it("Should prohibit token transfer using safeTransferFrom", async function () { + const { sbtContract, owner, addr1 } = await loadFixture( + deployTokenFixture + ); + + const safemintTx = await sbtContract.safeMint(owner.address); + + // prohibit token transfer of token id (0) from owner to addr1 + await expect(sbtContract['safeTransferFrom(address,address,uint256)']( + owner.address, + addr1.address, + 0 + )).to.be.reverted; + }); + }); +}) +``` + +在你剛剛複製的代碼中,第 7 行和第 12 行顯示你從 hardhat-network-helpers 的 [Chai](https://www.chaijs.com/api/bdd/) 和 [loadFixture](https://hardhat.org/tutorial/testing-contracts#reusing-common-test-setups-with-fixtures) 中導入了 expect。 + +上述測試可檢查以下內容: + +- 特定代幣 ID 的所有者是否與該代幣的鑄造者相同? +- 是否禁止在賬戶之間轉移代幣? + +**第 3 步**:要運行測試,請運行以下命令: + +```bash +npx 硬帽測試 test/sbtTest.js +``` + +![](/img/build/get-started/sbtTest.png) + +如需更深入的測試指南,請查看 [Hardhat 測試](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)。 + +## 部署智能合約 + +腳本是 JavaScript/Typescript 文件,可幫助您將合約部署到區塊鏈網絡。 在本節中,您將為智能合約創建一個腳本。 + +**步驟 1**:在資源管理器窗格中,選擇 "scripts "文件夾,然後單擊 "新建文件 "按鈕,創建一個名為 "sbtDeploy.js "的新文件。 + +**第 2**步將以下代碼複製並粘貼到文件中。 + +> 注意:在 `deployerAddr` 變量中輸入您的 MetaMask 錢包地址。 + +```js +const { ethers } = require("hardhat"); + +async function main() { + + const deployerAddr = "Your Metamask wallet address"; + const deployer = await ethers.getSigner(deployerAddr); + + console.log(`Deploying contracts with the account: ${deployer.address}`); + console.log(`Account balance: ${(await deployer.provider.getBalance(deployerAddr)).toString()}`); + + + const sbtContract = await ethers.deployContract("SoulBoundToken"); + await sbtContract.waitForDeployment(); + +console.log(`Congratulations! You have just successfully deployed your soul bound tokens.`); +console.log(`SBT contract address is ${sbtContract.target}. You can verify on https://kairos.kaiascope.com/account/${sbtContract.target}`); +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); +``` + +\*\*第 3 步在終端運行以下命令,讓 Hardhat 在 Kaia 測試網絡 (Kairos) 上部署 SBT 令牌 + +```bash +npx hardhat run ignition/modules/sbtDeploy.js --network kairos +``` + +![](/img/build/get-started/sbtDeploy.png) + +**第 4 步**:打開 [Kaiascope](https://kairos.kaiascope.com/),檢查 SBT 令牌是否已成功部署。 + +**第 5 步**:在搜索欄中複製並粘貼部署的合同地址,然後按 Enter 鍵。 您應該能看到最近部署的合同。 + +![](/img/build/get-started/sbtKS.png) + +## 硬帽叉 + +Hardhat 為開發人員提供了在本地開發網絡中模擬主網(任何給定區塊)的功能。 這一功能的主要好處之一是,它能讓開發人員與已部署的合同進行交互,還能為複雜的案例編寫測試。 + +要使該功能有效運行,您需要連接到存檔節點。 您可在 [此處](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks#forking-other-networks) 閱讀有關此功能的更多信息。 + +### 分叉主網 + +現在,我們已經建立了 Hardhat 項目,讓我們使用 Hardhat fork Kaia 主網。 打開終端,運行以下命令 + +```bash +npx hardhat node --fork + +npx hardhat node --fork https://archive-en.node.kaia.io +``` + +您也可以配置 `hardhat.config.js` - Hardhat Network 始終這樣做: + +``` +networks: { + hardhat: { + forking: { + url: "", + } + } +} +``` + +**輸出** + +![](/img/build/get-started/hardhat-fork.png) + +成功運行該命令後,您的終端看起來就像上圖一樣。 您將擁有 20 個開發賬戶,這些賬戶預存了 10,000 個測試代幣。 + +分叉鏈的 RPC 服務器正在`http://127.0.0.1:8545/`監聽。 您可以通過查詢最新的區塊編號來驗證分叉網絡。 讓我們嘗試使用 cURL 訪問 RPC,以獲取區塊編號。 打開一個新的終端窗口,使用以下命令: + +```bash +curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545 +``` + +**輸出** + +![](/img/build/get-started/hardhat-fork-bn.png) + +輸出結果為十六進制,如上圖所示。 要從十六進制中獲取塊編號,請使用此 [工具](https://www.rapidtables.com/convert/number/hex-to-decimal.html) 將十六進制轉換為十進制。 您應該從分叉網絡時獲得最新的區塊編號。 您可以通過 [kaiascope](https://kaiascope.com/)確認區塊編號。 + +### 在街區分叉 + +使用硬頭盔,您可以在特定區塊分叉主網。 在這種情況下,讓我們在區塊編號 "105701850 "處分叉鏈。 + +```bash +npx hardhat node --fork --fork-block-number 105701850 + +npx hardhat node --fork https://archive-en.node.kaia.io --fork-block-number 105701850 +``` + +要在指定區塊確認分叉鏈,請打開一個新的終端窗口並使用以下命令: + +```bash +curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545 +``` + +![](/img/build/get-started/hardhat-fork-bnII.png) + +輸出返回十六進制,使用此 [工具](https://www.rapidtables.com/convert/number/hex-to-decimal.html) 轉換後應等於 `105701850`。 + +有關 Hardhat 的更深入指南,請參閱 [Hardhat 文檔](https://hardhat.org/hardhat-runner/docs/getting-started)。 此外,您還可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/hardhat/soulbound-tokens) 上找到本指南的完整代碼實現。 From a880b9016b887150d875fcc793d08031ce9c0e79 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:42 +0800 Subject: [PATCH 0087/2513] New translations deploy.md (Chinese Traditional) --- .../build/smart-contracts/deploy/deploy.md | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md new file mode 100644 index 000000000000..0cc837c9181c --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/deploy.md @@ -0,0 +1,160 @@ +# 部署智能合約 + +在 Kaia 上部署智能合約有多種方法。 本文檔提供了使用各種工具部署合同樣本的分步指南。 我們假定您的 Kaia 賬戶有足夠的 KAIA 支付交易費。 要創建賬戶,您可以使用 [Kaia 在線工具包](https://toolkit.kaia.io/account/accountKeyLegacy)"。 + +## Remix 在線集成開發環境 + +打開互聯網瀏覽器,進入 [Kaia Plugin for Remix](https://ide.kaia.io)。 + +1. 添加新文件。 + +![](/img/build/smart-contracts/01_deployment_ide.png) + +2. 複製並粘貼以下示例代碼(或任何您想部署的代碼)到新文件中。 代碼由兩個名為 Mortal 和 KaiaGreeter 的合約組成,可以運行一個簡單的 "Hello World!"。 + +``` +pragma solidity 0.5.12; + +contract Mortal { + /* Define variable owner of the type address */ + address payable owner; + /* This function is executed at initialization and sets the owner of the contract */ + constructor () public { owner = msg.sender; } + /* Function to recover the funds on the contract */ + function kill() public payable { if (msg.sender == owner) selfdestruct(owner); } +} + +contract KaiaGreeter is Mortal { + /* Define variable greeting of the type string */ + string greeting; + /* This runs when the contract is executed */ + constructor (string memory _greeting) public { + greeting = _greeting; + } + /* Main function */ + function greet() public view returns (string memory) { + return greeting; + } +} +``` + +3. 在圖標面板中選擇 "編譯器"。 選擇所需的 EVM 環境。 對於 Kaia 網絡,您可以選擇 Kairos(測試網絡)和 Mainnet。 當示例代碼準備好在實際部署前編譯時,單擊 "編譯"。 + +![](/img/build/smart-contracts/02_deployment_compile.png) + +4. 現在我們可以部署合同了。 點擊圖標面板中的 Kaia 徽標。 單擊 "賬戶 "旁邊的加號按鈕,導入一個賬戶。 確保賬戶有足夠的 KAIA 來支付部署所需的智能合約的交易費用。 + +![](/img/build/smart-contracts/05_deployment_account.png) + +5. 設置氣體限值和發送值。 + +- 如果部署的是更復雜的合同,可能需要設置更高的氣體限值。 在本例中,可以保持原樣。 +- 將 `Value` 設為 0,除非您想在部署時向合同發送 `KAIA`。 + +6. 輸入 "Hello World!"作為構造函數的參數,然後點擊 "部署 "按鈕。 + +![](/img/build/smart-contracts/03_deployment_hello.png) + +7. 如果合同部署成功,您將在終端看到相應的交易收據和詳細結果。 + +8. 您可以通過點擊功能按鈕與合同互動。 這些功能用不同的顏色表示。 Solidity中的 "constant "或 "pure "函數有藍色的底色(示例中的 "greet"),不會創建新的事務,因此不耗費任何氣體。 紅色按鈕(示例中的 "kill")代表 "可支付 "功能,可改變區塊鏈上的狀態、消耗氣體並可接受價值。 橙色按鈕用於更改合同狀態但不接受值的 "非支付 "功能。 + +![](/img/build/smart-contracts/06_deployment_functions.png) + +有關詳細信息,請參閱此 [鏈接](../ide-and-tools/ide-and-tools.md)。 + +## VVISP + +vvisp 是一種易於使用的 CLI 工具/框架,用於開發智能合約,由 HEACHI LABS 提供。 只需一個命令,您就可以輕鬆設置環境、部署和執行 Kaia 智能合約。 詳情請參考以下鏈接。 + +- https://henesis.gitbook.io/vvisp/deploying-smart-contracts + +## solc & caver-js + +另一種部署合同的方法是使用 solc 手動編譯合同,然後使用 caver-js 進行部署。 + +1. 創建 `KaiaGreeter.sol` 並編寫以下代碼。 + +``` +pragma solidity 0.5.6; + +contract Mortal { + /* Define variable owner of the type address */ + address payable owner; + /* This function is executed at initialization and sets the owner of the contract */ + constructor () public { owner = msg.sender; } + /* Function to recover the funds on the contract */ + function kill() public payable { if (msg.sender == owner) selfdestruct(owner); } +} + +contract KaiaGreeter is Mortal { + /* Define variable greeting of the type string */ + string greeting; + /* This runs when the contract is executed */ + constructor (string memory _greeting) public { + greeting = _greeting; + } + /* Main function */ + function greet() public view returns (string memory) { + return greeting; + } +} +``` + +2. 安裝 solc 0.5.6。 + +``` +$ sudo npm install -g solc@0.5.6 +``` + +3. 編制合同。 + +``` +$ solcjs KaiaGreeter.sol --bin +``` + +4. 安裝 caver-js。 + +``` +$ npm install caver-js. +``` + +5. 使用以下代碼在同一目錄下創建 `deploy.js`。 + +``` +const Caver = require("caver-js"); +const caver = new Caver("https://public-en-kairos.node.kaia.io") + +const walletInstance = caver.kaia.accounts.privateKeyToAccount( + '0x3de0c9...' // enter your private key to deploy contract with +); +caver.kaia.accounts.wallet.add(walletInstance); + +const fs = require('fs') +const bytecode = fs.readFileSync('./KaiaGreeter_sol_KaiaGreeter.bin') // compiled output + +const constructorType = ['string'] // enter appropriate constructor type +const constructorValue = ['Hello, Kaia!'] + +const params = caver.kaia.abi.encodeParameters(constructorType, constructorValue); + +caver.kaia.sendTransaction({ + from: caver.kaia.accounts.wallet[0].address, + gas: "50000000", + data: bytecode.toString() + params.substring(2, params.length) +}) +.once("receipt", receipt => { + console.log(receipt) +}) +.once("error", error => { + console.log(error); +}) +``` + +_注_:此示例不建議用於生產。 處理私人密鑰時要非常小心。 + +6. 使用節點環境部署合同。 + +``` +$ node deploy.js +``` From d4d24de71142db23a9a8842aae68cca1d86dc441 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:43 +0800 Subject: [PATCH 0088/2513] New translations foundry.md (Chinese Traditional) --- .../build/smart-contracts/deploy/foundry.md | 360 ++++++++++++++++++ 1 file changed, 360 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md new file mode 100644 index 000000000000..2e91969b4669 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md @@ -0,0 +1,360 @@ +# 使用 Foundry 部署智能合約 + +![](/img/banners/kaia-foundry.png) + +## 導言 + +Foundry 是一個用 Rust 編寫的智能合約開發框架,開發人員可以通過 solidity 腳本從命令行管理和編譯合約、運行測試、部署合約並與網絡交互。 + +Foundry 由四個主要 CLI 工具組成,可實現快速、模塊化的智能合約開發,它們是 + +- [Forge](https://github.com/foundry-rs/foundry/tree/master/forge): 您可以使用 Forge 部署、測試和編譯智能合約。 +- [Cast](https://github.com/foundry-rs/foundry/tree/master/cast):Cast 使與 EVM 智能合約的交互變得簡單。 這包括獲取鏈數據、發送交易等。 +- [Anvil](https://github.com/foundry-rs/foundry/tree/master/anvil):您需要啟動本地節點嗎? Anvil 是 Foundry 提供的本地節點環境。 +- [Chisel](https://github.com/foundry-rs/foundry/blob/master/chisel):快速、實用、冗長的 solidity REPL。 + +在本指南中,您將 + +- 創建一個簡單的鑄造項目。 +- 使用 Foundry 編譯和測試示例智能合約。 +- 使用 Foundry 向 Kaia Kairos 網絡部署智能合約。 +- 探索使用鑄鐵和鐵砧分叉主網。 + +## 先決條件 + +學習本教程的前提條件如下: + +- 代碼編輯器:源代碼編輯器,如 [VS Code](https://code.visualstudio.com/download)。 +- [MetaMask](../../tutorials/connecting-metamask.mdx#install-metamask):用於部署合約、簽署事務和與合約交互。 +- RPC 端點:您可以從支持的[端點提供者](../../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 +- 安裝 [Rust](https://www.rust-lang.org/tools/install) 和 [Foundry](https://github.com/foundry-rs/foundry#installation)。 + +## 設置開發環境 + +要檢查 foundry 安裝是否成功,請運行下面的命令: + +```bash +forge -V +``` + +**輸出** + +![](/img/build/get-started/forge-version.png) + +成功安裝 Foundry 後,您現在可以使用 Foundry 中的 CLI 工具(鍛造、鑄造、鐵砧、鑿子)。 讓我們按以下步驟建立一個代工廠項目: + +**步驟 1**:要啟動一個新項目,請運行以下命令: + +```bash +forge init foundry_example +``` + +**第 2 步**:進入項目文件夾。 + +```bash +cd foundry_example +ls +``` + +初始化 foundry 項目後,當前目錄應包括 + +- **src**:智能合約的默認目錄。 +- **測試**:測試的默認目錄。 +- **foundry.toml**:默認項目配置文件。 +- **lib**:項目依賴項的默認目錄。 +- **script**:solidity 腳本文件的默認目錄。 + +## 智能合約樣本 + +在本節中,我們將在初始化的代工廠項目中使用示例計數器合同。 src/`文件夾中的`counter.sol\` 文件應如下所示: + +```solidity +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; +contract Counter { + uint256 public number; + function setNumber(uint256 newNumber) public { + number = newNumber; + } + function increment() public { + number++; + } +} +``` + +**代碼演練** + +這就是你的智能合約。 **第 1** 行顯示它使用的是 0.8.13 或更高版本的 Solidity。 從第4-12**行開始,創建一個智能合約 "Counter"。 該合約只需使用**setNumber**函數存儲一個新數字,並通過調用**increment\*\*函數將其遞增。 + +## 測試智能合約 + +Foundry allows us to write tests in solidity as opposed to writing tests in javascript in other smart contract development frameworks. 在我們初始化的 foundry 項目中,"test/Counter.t.sol "就是一個用 solidity 編寫的測試示例。 代碼如下 + +```solidity +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; +import "forge-std/Test.sol"; +import "../src/Counter.sol"; +contract CounterTest is Test { + Counter public counter; + function setUp() public { + counter = new Counter(); + counter.setNumber(0); + } + function testIncrement() public { + counter.increment(); + assertEq(counter.number(), 1); + } + function testSetNumber(uint256 x) public { + counter.setNumber(x); + assertEq(counter.number(), x); + } +} +``` + +上面的代碼顯示您導入了 forge 標準庫和 Counter.sol。 + +上述測試可檢查以下內容: + +- 人數是否在增加? +- 數字是否等於設定的數字? + +要檢查測試是否正常,請運行以下命令: + +```bash +forge test +``` + +**輸出** + +![](/img/build/get-started/forge-test.png) + +要了解有關編寫測試、高級測試和其他功能的更多信息,請參閱 [Foundry 文檔](https://book.getfoundry.sh/forge/tests)。 + +## 編制合同 + +使用此命令編譯合同: + +```bash +forge build +``` + +## 部署您的合同 + +要使用 foundry 部署合同,必須提供 RPC URL 和將部署合同的賬戶的私鑰。 請查看 Kaia 上的 [rpc-providers](../../../references/public-en.md) 列表,找到您的 rpc-url,並使用 [MetaMask](../../tutorials/connecting-metamask.mdx#install-metamask) 創建一個賬戶。 + +**第 1 步**:要將合同部署到 Kaia Kairos 網絡,請運行以下命令: + +```bash +$ forge create --rpc-url --private-key src/Counter.sol:Counter +``` + +**舉例** + +```bash +forge create --rpc-url https://public-en-kairos.node.kaia.io --private-key hhdhdhdhprivatekeyhdhdhud src/Counter.sol:Counter +``` + +**警告:用 MetaMask 中的私人密鑰替換私人密鑰參數。 請務必小心,不要暴露您的私人密鑰**。 + +**輸出** + +![](/img/build/get-started/foundry-create.png) + +**第 2 步**:打開 [Kaiascope](https://kairos.kaiascope.com/tx/0x83c8b55f3fd90110f9b83cd20df2b2bed76cfeb42447725af2d60b2885f479d3?tabId=internalTx),檢查計數器合約是否部署成功。 + +**第 3 步**:在搜索欄中複製並粘貼交易哈希值,然後按 Enter 鍵。 您應該能看到最近部署的合同。 + +![](/img/build/get-started/forge-scope.png) + +## 與合同互動 + +成功部署智能合約後,您需要正確調用和執行函數。 讓我們使用 [Cast](https://book.getfoundry.sh/reference/cast/cast-send.html) 與 Kaia Kairos Network 上部署的合約互動吧。 在本節中,您將學習如何使用 [cast call](https://book.getfoundry.sh/reference/cast/cast-call) 執行 "只讀 "函數和 [cast send](https://book.getfoundry.sh/reference/cast/cast-send) 執行 "寫入 "函數。 + +**A. 調用**:要獲取存儲在合約中的數字,需要調用 `number` 函數。 運行下面的命令查看實際操作。 + +```bash +cast call YOUR_CONTRACT_ADDRESS "number()" --rpc-url RPC-API-ENDPOINT-HERE +``` + +**舉例** + +```bash +cast call 0x7E80F70EeA1aF481b80e2F128490cC9F7322e164 "number()" --rpc-url https://public-en-kairos.node.kaia.io +``` + +**輸出** + +![](/img/build/get-started/cast-call-number.png) + +您應該得到十六進制格式的數據: + +```bash +0x0000000000000000000000000000000000000000000000000000000000000000 +``` + +不過,為了得到您想要的結果,請使用投影法轉換上述結果。 在這種情況下,數據是一個數字,因此可以將其轉換為基數 10,得到結果 0: + +```bash +cast --to-base 0x0000000000000000000000000000000000000000000000000000000000000000 10 +``` + +**輸出** + +![](/img/build/get-started/cast-call-0.png) + +**B. 發送**:要簽署併發佈一個事務,例如在計數器合約中執行一個 `setNumber` 函數,請運行下面的命令: + +```bash +cast send --rpc-url= “setNumber(uint256)” arg --private-key= +``` + +**舉例** + +```bash +cast send --rpc-url=https://public-en-kairos.node.kaia.io 0x7E80F70EeA1aF481b80e2F128490cC9F7322e164 "setNumber(uint256)" 10 --private-key= +``` + +**輸出** + +![](/img/build/get-started/cast-send-setNum.png) + +**交叉檢查編號** + +```bash +cast call 0x7E80F70EeA1aF481b80e2F128490cC9F7322e164 "number()" --rpc-url https://public-en-kairos.node.kaia.io +``` + +**輸出** + +![](/img/build/get-started/cast-call-10.png) + +您應該得到十六進制格式的數據: + +```bash +0x000000000000000000000000000000000000000000000000000000000000000a +``` + +不過,為了得到您想要的結果,請使用投影法轉換上述結果。 在本例中,數據是一個數字,因此可以將其轉換為基數 10,得到結果 10: + +```bash +cast --to-base 0x000000000000000000000000000000000000000000000000000000000000000a 10 +``` + +**輸出** + +![](/img/build/get-started/cast-call-result-10.png) + +## 使用 Cast 和 Anvil 分叉主網 + +Foundry 允許我們將主網分叉到本地開發網絡([Anvil](https://book.getfoundry.sh/reference/anvil/))。 此外,您還可以使用 [Cast](https://book.getfoundry.sh/reference/cast/),在真實網絡上與合同進行交互和測試。 + +### 開始 + +現在,您已經啟動並運行了 Foundry 項目,可以運行下面的命令 fork 主網: + +```bash +anvil --fork-url rpc-url +``` + +**舉例** + +```bash +anvil --fork-url https://archive-en.node.kaia.io +``` + +**輸出** + +![](/img/build/get-started/anvil-localnode.png) + +成功運行該命令後,您的終端看起來就像上圖一樣。 您將擁有 10 個賬戶,這些賬戶擁有公鑰和私鑰以及 10,000 個預付代幣。 分叉鏈的 RPC 服務器正在偵聽 `127.0.0.1:8545`。 + +要驗證您是否已分叉網絡,可以查詢最新的區塊編號: + +```bash +curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545 +``` + +您可以使用 [十六進制轉十進制](https://www.rapidtables.com/convert/number/hex-to-decimal.html)轉換上述任務的結果。 您應該從分叉網絡時獲得最新的區塊編號。 要驗證這一點,請對照 [Kaiascope](https://kaiascope.com/block/118704896?tabId=txList)上的區塊編號。 + +### 插圖 + +在本節中,您將瞭解如何將 oUSDC 代幣從持有 oUSDC 的人轉入 Anvil 創建的賬戶 (0x70997970C51812dc3A010C7d01b50e0d17dc79C8 - Bob) + +**轉移 oUSDC** + +訪問 Kaiascope 並搜索 oUSDC 代幣持有者(此處)。 讓我們隨便選一個賬戶。 在本例中,我們將使用 `0x8e61241e0525bd45cfc43dd7ba0229b422545bca`。 + +讓我們將合同和賬戶導出為環境變量: + +```bash +export BOB=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 +export oUSDC=0x754288077d0ff82af7a5317c7cb8c444d421d103 +export oUSDCHolder=0x8e61241e0525bd45cfc43dd7ba0229b422545bca +``` + +我們可以使用投幣電話查看鮑勃的餘額: + +```bash +cast call $oUSDC \ + "balanceOf(address)(uint256)" \ + $BOB +``` + +**輸出** + +![](/img/build/get-started/oUsdcBob4.png) + +同樣,我們也可以使用調用功能查看 oUSDC 持有者的餘額: + +```bash +cast call $oUSDC \ + "balanceOf(address)(uint256)" \ + $oUSDCHolder +``` + +**輸出** + +![](/img/build/get-started/oUsdcHolder4.png) + +讓我們使用 "發送 "功能將一些代幣從幸運用戶轉給 Alice: + +````bash +cast rpc anvil_impersonateAccount $oUSDCHolder +cast send $oUSDC \ +--unlocked \ +--from $oUSDCHolder\ + "transfer(address,uint256)(bool)" \ + $BOB \ + 1000000 +```0000 +```` + +**輸出** + +![](/img/build/get-started/cast-send.png) + +讓我們檢查一下轉賬是否成功: + +```bash +cast call $oUSDC \ + "balanceOf(address)(uint256)" \ + $BOB +``` + +**輸出** + +![](/img/build/get-started/oUsdcBobAfter.png) + +```bash +cast call $oUSDC \ + "balanceOf(address)(uint256)" \ + $oUSDCHolder +``` + +**輸出** + +![](/img/build/get-started/oUsdcHolderAfter.png) + +有關代工的更深入指南,請參閱 [Foundry Docs](https://book.getfoundry.sh/)。 此外,您還可以在 [GitHub](https://github.com/kaiachain/kaia-dapp-mono/tree/main/examples/tools/foundry) 上找到本指南的完整實現代碼。 From e3a21ba0d830353354d3728dfc508b138f591dff Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:45 +0800 Subject: [PATCH 0089/2513] New translations thirdweb.md (Chinese Traditional) --- .../build/smart-contracts/deploy/thirdweb.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md new file mode 100644 index 000000000000..5275f5ebf80d --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md @@ -0,0 +1,169 @@ +# 使用 Thirdweb 部署智能合約 + +![](/img/banners/kaia-thirdweb.png) + +## 導言 + +本節將指導您使用 [ThirdWeb](https://portal.thirdweb.com/),在 Kaia Network 上部署 Marketplace 合同和相應的 NFT 收集合同。 Thirdweb 是一個完整的 Web3 開發框架,可為您提供將應用程序和遊戲連接到去中心化網絡所需的一切。 + +市場合約允許用戶列出 NFT 進行直接銷售或拍賣,從而加強了 NFT 的買賣,就像在 OpenSea 上所做的那樣。 + +完成本指南後,您將能夠 + +- 使用 thirdweb 創建和定製合同。 +- 使用 thirdweb 對智能合約進行編譯、部署和交互。 + +## 入門 + +在本文中,我們將探討使用 thirdweb 創建、自定義和部署合同的不同方法,即 + +- 使用第三網絡儀錶板 +- 使用 thirdweb CLI + +在本指南中,我們將演示如何使用 thirdweb 控制面板部署 MarketPlace 合同,並使用 thirdweb CLI 部署相應的 nft 集合,以便在市場上列出。 + +> 注:我們將不解釋市場合約的機制,因為我們的重點是探索用於創建、部署和與智能合約交互的 thirdweb 面板和 CLI。 + +## 使用 thirdweb 儀錶板創建和部署市場合同 + +在本節中,我們將使用 thirdweb 面板創建並部署市場合同。 為此,請按照以下步驟操作: + +1. 前往 [thirdweb dashboard](https://thirdweb.com/dashboard?ref=blog.thirdweb.com),從合同列表中選擇 **MarketPlace** 合同。 + +![](/img/build/get-started/marketplace-explore.png) + +2. 在合同概覽儀錶板中單擊**立即部署**。 + +![](/img/build/get-started/marketplace-deploy.png) + +3. 配置市場合同,使其包含以下參數:市場的**名稱**、**描述**和**圖像**。 + +![](/img/build/get-started/marketplace-contract-details.png) + +4. 點擊 **立即部署**,如上圖所示,然後等待交易完成。 + +![](/img/build/get-started/marketplace-deployed.png) + +交易成功執行後,您可以在 [Kaiascope](https://kaiascope.com/)的搜索欄中粘貼合同地址,以驗證您的部署。 + +## 使用 thirdweb CLI 創建和部署 NFT 收集合同 + +在本節中,我們將使用 [thirdweb CLI](https://portal.thirdweb.com/cli?ref=blog.thirdweb.com)創建和部署將在 Marketplace 中列出的 NFT 程序集。 為此,請按照以下步驟操作: + +### 創建合同 + +1. 在終端中運行此命令來創建合同: + +```bash +npx thirdweb create --contract +``` + +2. 輸入您喜歡的命令行提示值: + + i. 為項目命名 + + ii. 選擇您喜歡的框架:**Hardhat** 或 **Foundry**. + + iii. 為智能合約命名 + + iv. 選擇基本合同類型:**空**、**ERC20**、**ERC721** 或 **ERC1155**。 添加任何所需的**擴展名**。 在本教程中,我們將選擇 ERC721,並將擴展名設置為 "無"。 + +![](/img/build/get-started/thirdweb-cli-info.png) + +3. 創建完成後,請導航至項目根目錄,並在首選代碼編輯器中打開項目。 + +4. 打開合同文件夾,合同應該是這樣的: + +```js +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; +import "@thirdweb-dev/contracts/base/ERC721Base.sol"; +contract nftcollection is ERC721Base { + constructor( + address _defaultAdmin, + string memory _name, + string memory _symbol, + address _royaltyRecipient, + uint128 _royaltyBps + ) + ERC721Base( + _defaultAdmin, + _name, + _symbol, + _royaltyRecipient, + _royaltyBps + ) + {} +} +``` + +上述合約演示了[ERC721Base](https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol) 的基本功能。 它導入並繼承了 **ERC721Base** 合約,還實現了所需的方法,包括構造函數及其從屬參數。 + +您可以根據自己需要的自定義邏輯修改合同,一旦完成,您的合同就可以部署了。 + +### 部署合同 + +1. 導航至項目根文件夾,在終端中運行該命令: + +```bash +npx thirdweb deploy +``` + +執行該命令將觸發以下操作: + +- 檢測框架(硬帽、代工廠) +- 編譯當前目錄下的所有合同。 +- 允許您選擇要部署的合同。 +- 將編譯好的智能合約代碼(以應用程序二進制接口(ABI)的形式)上傳到 IPFS。 + +2. 部署完成後,將打開一個儀錶板界面,填寫其餘參數。 + - **_name**:合同名稱 + - **_symbol**:符號或 "股票代碼" + - **_版稅收款人**:接收二次銷售版稅的錢包地址 + - **_特許權使用費基點**:每次二次銷售將給予特許權使用費收取人的基點 (bps),如 500 = 5%。 + +3. 選擇 "Kaia Mainnet "作為部署合同的網絡。 + +![](/img/build/get-started/nft-collection-deploy.png) + +4. 智能合約部署完成後,您可以通過其儀錶板管理其他設置和功能。 例如,您可以上傳 NFT、配置權限和訪問控制以及添加新功能。 + +有關 thirdweb 部署命令的更多信息,請參閱 [deploy guide](https://portal.thirdweb.com/deploy/getting-started) 。 + +## 與已部署的合同互動 + +在本節中,我們將分別使用**mint**和**transferfrom**函數鑄造一個 NFT 並將其轉入另一個賬戶。 讓我們按以下步驟來瞭解一下: + +### 鑄幣廠 + +1. 導航至新部署的合同 (**puppyKlan-NC**) 面板。 +2. 點擊合同儀錶板下**NFTs**選項卡中的**mint**功能。 + +![](/img/build/get-started/puppy-mint-btn.png) + +3. 填寫鑄造 NFT 所需的參數:**名稱**、媒體\*\*、描述**和屬性**。 + +![](/img/build/get-started/puppy-mint-details.png) + +4. 核對輸入內容,然後點擊 **Mint NFT** 按鈕。 +5. 確認交易,等待交易完成。 完成後,您會看到儀錶板上添加了 NFT,如下圖所示: + +![](/img/build/get-started/puppy-minted.png) + +### 向新業主轉讓 NFT + +1. 前往合同 (**puppyKlan-NC**) 面板中的資源管理器選項卡。 +2. 在 "寫 "選項卡下選擇 **transferFrom** 功能,如下圖所示。 +3. 填寫必要的函數參數:from(地址)、to(地址)和 id(uint256)。 + +![](/img/build/get-started/puppy-transferfrom.png) + +4. 確認交易,等待交易完成。 + +## 結論 + +祝賀你 如果您讀到了本指南的結尾。 如果您有任何問題,請訪問 [Kaia 論壇](https://devforum.kaia.io/) 或聯繫 [官方第三網絡支持](https://support.thirdweb.com/)。 不過,以下是您在 Kaia 上進一步使用 Thirdweb 時可能需要的有用資源列表。 + +- [Thirdweb文檔](https://portal.thirdweb.com/) +- [如何使用 Thirdweb 構建 dApp](https://blog.thirdweb.com/guides/how-to-build-a-dapp/) +- [使用 NextJS 和 TypeScript 創建自己的 NFT 市場](https://blog.thirdweb.com/guides/nft-marketplace-with-typescript-next/) From 77a4a855d1ddae185daa4a70102387e4cd92f033 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:46 +0800 Subject: [PATCH 0090/2513] New translations ide-and-tools.md (Chinese Traditional) --- .../ide-and-tools/ide-and-tools.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md new file mode 100644 index 000000000000..13794b81724e --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/ide-and-tools/ide-and-tools.md @@ -0,0 +1,23 @@ +# 集成開發環境和工具 + +本頁包含可用於幫助在 Kaia 上開發智能合約的開發工具列表。 + +#### [Remix Online IDE](https://remix.ethereum.org/) + +Remix Online IDE 是一個功能強大的工具集,用於開發、部署、調試和測試與 EVM 兼容的智能合約。 您可以使用 Kaia Plugin 在 Remix IDE 上編寫、編譯、部署和執行智能合約。 + +#### [凱亞契約精靈](https://wizard.klaytn.foundation/) + +Kaia Contracts Wizard 是一個交互式生成器,用於引導智能合約並瞭解 Kaia Contracts。 它基於 OpenZeppelin 嚮導。 + +#### [Thirdweb](../deploy/thirdweb.md) + +Thirdweb 是一個完整的 Web3 開發框架,可為您提供將應用程序和遊戲連接到去中心化網絡所需的一切。 + +#### [Kaia Wallet](../../tools/wallets/kaia-wallet.md) + +Kaia 錢包是 Kaia 網絡的瀏覽器擴展錢包。 Kaia 錢包使您能夠存儲 KAIA 和基於 Kaia 的代幣並與之互動。 Kaia 錢包還能讓您即時簽署來自基於網絡的 Kaia dApps 的交易。 + +#### [Kaiascope](../../tools/block-explorers/kaiascope.md) + +Kaiascope 是 Kaia 網絡的區塊資源管理器。 您可以在瀏覽器上瀏覽和檢查您的交易。 From ea388941af81eef023e345786edcabc88e2c832b Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:47 +0800 Subject: [PATCH 0091/2513] New translations porting-ethereum-contract.md (Chinese Traditional) --- .../porting-ethereum-contract.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md new file mode 100644 index 000000000000..484caaa4b429 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/porting-ethereum-contract.md @@ -0,0 +1,41 @@ +# 導入以太坊合約 + +在大多數情況下,您可以在 Kaia 上使用以太坊合約,無需做任何修改。 +不過,要注意以下兩個問題。 + +## 穩固支持 + +- Kairos 網絡目前與**倫敦**以太坊虛擬機 (EVM) 兼容。 +- Mainnet 目前與**倫敦**以太坊虛擬機 (EVM) 兼容。 + +:::note + +v1.7.0 協議升級 - 不兼容的更改,包括**伊斯坦布爾**硬分叉項目和 Kaia 自己的項目。 +如果是 Kairos 網絡,則從區塊編號 "#75,373,312 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 + +v1.7.3 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#80,295,291 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 + +v1.8.0 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#86,513,895 "開始啟用,如果是主網,則從區塊編號 "#86,816,005 "開始啟用。 + +::: + +不保證向後兼容 Kaia 上的其他 EVM 版本。 +因此,強烈建議根據協議升級狀態使用正確的目標選項編譯 Solidity 代碼。 + +- Kairos: --evm-version london +- Mainnet: --evm-version london +- 其他(私有/服務鏈):根據協議升級狀態確定 + +請參閱 [如何設置 Solc 的 EVM 版本](https://solidity.readthedocs.io/en/latest/using-the-compiler.html#setting-the-evm-version-to-target)。 + +命令示例如下: + +``` +$ solc --evm-version london contract.sol +``` + +## 解耦密鑰對 + +Kaia [decouples key pairs from addresses](../../learn/accounts.md#decoupling-key-pairs-from-addresses). 如果用戶[更新賬戶](../../learn/transactions/basic.md#txtypeaccountupdate),特定賬戶的私鑰會被替換為另一個賬戶的私鑰。 大多數情況下,這不會影響您的業務邏輯。 但是,如果您的業務邏輯包括 ecrecover,則應考慮使用 validateSender。 更多詳情,請參閱 [此處](../../learn/computation/precompiled-contracts.md)。 From 0c5d24e7c53fe95b5b00896879cda3bea8bc72cb Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:48 +0800 Subject: [PATCH 0092/2513] New translations erc-20.md (Chinese Traditional) --- .../build/smart-contracts/samples/erc-20.md | 581 ++++++++++++++++++ 1 file changed, 581 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md new file mode 100644 index 000000000000..1c9666967644 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-20.md @@ -0,0 +1,581 @@ +# ERC-20 + +## 導言 + +本教程幫助你創建一個符合[Kaia 代幣標準](../token-standard.md),尤其是[Fungible Token Standard (ERC-20)](../token-standard.md#fungible-token-standard-kip-7)的ERC-20 兼容代幣示例。 + +[ERC-20令牌標準](https://eips.ethereum.org/EIPS/eip-20) 定義了以下 2 個事件和 9 個方法(包括 3 個可選方法)。 與 ERC-20 兼容的代幣是實現以下接口的代幣合約。 + +```text +function name() public view returns (string) //optional +function symbol() public view returns (string) //optional +function decimals() public view returns (uint8) //optional +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) + +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +在上述界面的基礎上,開發人員可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 更多信息,請參閱官方 [ERC-20 文檔](https://eips.ethereum.org/EIPS/eip-20)。 + +在本教程中,您將實現與 ERC-20 兼容的令牌 `MyERC20.sol`。 該代幣將發行預定數量的代幣,並在部署時將所有代幣發送給合約所有者。 + +MyERC20.sol "基於 OpenZeppelin 的 ERC20 實現。 本教程的大部分代碼來自 [OpenZeppelin 2.3 ](https://github.com/OpenZeppelin/openzeppelin-solidity/releases/tag/v2.3.0),以下 Solidity 文件用於實現 `MyERC20.sol`。 + +- [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/IERC20.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/IERC20.sol) +- [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20.sol) +- [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Detailed.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Detailed.sol) +- [https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/math/SafeMath.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/math/SafeMath.sol) + +## 1. 編寫 ERC-20 智能合約 + +### 1.1 MyERC20 的總體結構 + +MyERC20.sol "的完整源代碼如下。 在此實現中,"構造器 "調用 "鑄幣",在部署合約時鑄入預定數量的代幣。 + +```text +pragma solidity ^0.5.0; + +/** + * @dev Interface of the ERC20 standard as defined in the EIP. Does not include + * the optional functions; to access them see `ERC20Detailed`. + */ +interface IERC20 { + function totalSupply() external view returns (uint256); + + function balanceOf(address account) external view returns (uint256); + + function transfer(address recipient, uint256 amount) external returns (bool); + + function allowance(address owner, address spender) external view returns (uint256); + + function approve(address spender, uint256 amount) external returns (bool); + + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + event Transfer(address indexed from, address indexed to, uint256 value); + + event Approval(address indexed owner, address indexed spender, uint256 value); +} + +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + require(b <= a, "SafeMath: subtraction overflow"); + uint256 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 + if (a == 0) { + return 0; + } + + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + // Solidity only automatically asserts when dividing by 0 + require(b > 0, "SafeMath: division by zero"); + uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + require(b != 0, "SafeMath: modulo by zero"); + return a % b; + } +} + +/** + * @dev Implementation of the `IERC20` interface. + * + * This implementation is agnostic to the way tokens are created. This means + * that a supply mechanism has to be added in a derived contract using `_mint`. + * For a generic mechanism see `ERC20Mintable`. + * + * *For a detailed writeup see our guide [How to implement supply + * mechanisms](https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226).* + * + * We have followed general OpenZeppelin guidelines: functions revert instead + * of returning `false` on failure. This behavior is nonetheless conventional + * and does not conflict with the expectations of ERC20 applications. + * + * Additionally, an `Approval` event is emitted on calls to `transferFrom`. + * This allows applications to reconstruct the allowance for all accounts just + * by listening to said events. Other implementations of the EIP may not emit + * these events, as it isn't required by the specification. + * + * Finally, the non-standard `decreaseAllowance` and `increaseAllowance` + * functions have been added to mitigate the well-known issues around setting + * allowances. See `IERC20.approve`. + */ +contract MyERC20 is IERC20 { + using SafeMath for uint256; + + mapping (address => uint256) private _balances; + + mapping (address => mapping (address => uint256)) private _allowances; + + // NOTE Start of https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Detailed.sol + string private _name; + string private _symbol; + uint8 private _decimals; + + constructor (string memory name, string memory symbol, uint8 decimals) public { + _name = name; + _symbol = symbol; + _decimals = decimals; + + _mint(msg.sender, 100000 * 10 ** uint256(decimals)); // CAUTION! + } + + /** + * @dev Returns the name of the token. + */ + function name() public view returns (string memory) { + return _name; + } + + /** + * @dev Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public view returns (string memory) { + return _symbol; + } + + /** + * @dev Returns the number of decimals used to get its user representation. + * For example, if `decimals` equals `2`, a balance of `505` tokens should + * be displayed to a user as `5,05` (`505 / 10 ** 2`). + * + * Tokens usually opt for a value of 18, imitating the relationship between + * Ether and Wei. + * + * > Note that this information is only used for _display_ purposes: it in + * no way affects any of the arithmetic of the contract, including + * `IERC20.balanceOf` and `IERC20.transfer`. + */ + function decimals() public view returns (uint8) { + return _decimals; + } + // NOTE End of https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Detailed.sol + + uint256 private _totalSupply; + + /** + * @dev See `IERC20.totalSupply`. + */ + function totalSupply() public view returns (uint256) { + return _totalSupply; + } + + /** + * @dev See `IERC20.balanceOf`. + */ + function balanceOf(address account) public view returns (uint256) { + return _balances[account]; + } + + /** + * @dev See `IERC20.transfer`. + * + * Requirements: + * + * - `recipient` cannot be the zero address. + * - the caller must have a balance of at least `amount`. + */ + function transfer(address recipient, uint256 amount) public returns (bool) { + _transfer(msg.sender, recipient, amount); + return true; + } + + /** + * @dev See `IERC20.allowance`. + */ + function allowance(address owner, address spender) public view returns (uint256) { + return _allowances[owner][spender]; + } + + /** + * @dev See `IERC20.approve`. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function approve(address spender, uint256 value) public returns (bool) { + _approve(msg.sender, spender, value); + return true; + } + + /** + * @dev See `IERC20.transferFrom`. + * + * Emits an `Approval` event indicating the updated allowance. This is not + * required by the EIP. See the note at the beginning of `ERC20`; + * + * Requirements: + * - `sender` and `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `value`. + * - the caller must have allowance for `sender`'s tokens of at least + * `amount`. + */ + function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { + _transfer(sender, recipient, amount); + _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount)); + return true; + } + + /** + * @dev Atomically increases the allowance granted to `spender` by the caller. + * + * This is an alternative to `approve` that can be used as a mitigation for + * problems described in `IERC20.approve`. + * + * Emits an `Approval` event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { + _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue)); + return true; + } + + /** + * @dev Atomically decreases the allowance granted to `spender` by the caller. + * + * This is an alternative to `approve` that can be used as a mitigation for + * problems described in `IERC20.approve`. + * + * Emits an `Approval` event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + * - `spender` must have allowance for the caller of at least + * `subtractedValue`. + */ + function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { + _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue)); + return true; + } + + /** + * @dev Moves tokens `amount` from `sender` to `recipient`. + * + * This is internal function is equivalent to `transfer`, and can be used to + * e.g. implement automatic token fees, slashing mechanisms, etc. + * + * Emits a `Transfer` event. + * + * Requirements: + * + * - `sender` cannot be the zero address. + * - `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `amount`. + */ + function _transfer(address sender, address recipient, uint256 amount) internal { + require(sender != address(0), "ERC20: transfer from the zero address"); + require(recipient != address(0), "ERC20: transfer to the zero address"); + + _balances[sender] = _balances[sender].sub(amount); + _balances[recipient] = _balances[recipient].add(amount); + emit Transfer(sender, recipient, amount); + } + + /** @dev Creates `amount` tokens and assigns them to `account`, increasing + * the total supply. + * + * Emits a `Transfer` event with `from` set to the zero address. + * + * Requirements + * + * - `to` cannot be the zero address. + */ + function _mint(address account, uint256 amount) internal { + require(account != address(0), "ERC20: mint to the zero address"); + + _totalSupply = _totalSupply.add(amount); + _balances[account] = _balances[account].add(amount); + emit Transfer(address(0), account, amount); + } + + /** + * @dev Destroys `amount` tokens from `account`, reducing the + * total supply. + * + * Emits a `Transfer` event with `to` set to the zero address. + * + * Requirements + * + * - `account` cannot be the zero address. + * - `account` must have at least `amount` tokens. + */ + function _burn(address account, uint256 value) internal { + require(account != address(0), "ERC20: burn from the zero address"); + + _balances[account] = _balances[account].sub(value); + _totalSupply = _totalSupply.sub(value); + emit Transfer(account, address(0), value); + } + + /** + * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. + * + * This is internal function is equivalent to `approve`, and can be used to + * e.g. set automatic allowances for certain subsystems, etc. + * + * Emits an `Approval` event. + * + * Requirements: + * + * - `owner` cannot be the zero address. + * - `spender` cannot be the zero address. + */ + function _approve(address owner, address spender, uint256 value) internal { + require(owner != address(0), "ERC20: approve from the zero address"); + require(spender != address(0), "ERC20: approve to the zero address"); + + _allowances[owner][spender] = value; + emit Approval(owner, spender, value); + } + + /** + * @dev Destoys `amount` tokens from `account`.`amount` is then deducted + * from the caller's allowance. + * + * See `_burn` and `_approve`. + */ + function _burnFrom(address account, uint256 amount) internal { + _burn(account, amount); + _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount)); + } +} +``` + +MyERC20.sol "由一個接口 "IERC20"、一個庫 "SafeMath "和一個實現 "IERC20 "接口的合約 "MyERC20 "組成。 + +- IERC20 "接口定義了[ERC-20 規範](https://eips.ethereum.org/EIPS/eip-20) 中描述的強制接口。 +- SafeMath "庫定義了 Solidity 算術運算的包裝器,並增加了溢出檢查功能,可安全計算 Solidity 的 "uint256 "類型。 +- MyERC20 "實現了 "IERC20 "接口,還定義了三個可選方法,詳見[ERC-20 規範](https://eips.ethereum.org/EIPS/eip-20)。 + - 除 ERC20 外,還定義了 "構造器",該構造器用於定義新的 ERC20 令牌名稱和符號,並鑄造預定數量的令牌。 `constructor` 在首次部署時被調用一次。 + +### 1.2 看看重要的方法 + +讓我們來詳細瞭解一些重要的方法。 + +#### \(1\) `function balanceOf(address account) external view returns (uint256);` + +balanceOf "是 ERC-20 的強制方法。 `balanceOf` 返回給定地址的餘額。 + +```text + function balanceOf(address account) public view returns (uint256) { + return _balances[account]; + } +``` + +`balanceOf` 只返回存儲在 `_balances`中的 key`account` 的值,它是 `mapping (address => uint256)`類型,如下所示。 + +```text + mapping (address => uint256) private _balances; +``` + +如果 `_balances`中沒有可用的 key `account` ,則只會返回 `0`。 + +#### \(2\) `function transfer(address recipient, uint256 amount) external returns (bool);` + +轉讓 "是 ERC-20 的強制性方法。 transfer "會將 "數量 "代幣轉移給 "接收方",並且必須觸發 "Transfer "事件。 如果消息調用者的賬戶餘額沒有足夠的代幣可供使用,函數應拋出。 + +transfer "只是調用內部方法"_transfer",它實現的實際傳輸和事件如下。 + +```text + function transfer(address recipient, uint256 amount) public returns (bool) { + _transfer(msg.sender, recipient, amount); + return true; + } +``` + +`_transfer` 實現 ERC-20 的 `transfer` 方法的實際行為。 + +此外,它還能防止使用下面的 `require` 從零地址或向零地址發送令牌。 + +```text + function _transfer(address sender, address recipient, uint256 amount) internal { + require(sender != address(0), "ERC20: transfer from the zero address"); + require(recipient != address(0), "ERC20: transfer to the zero address"); + + _balances[sender] = _balances[sender].sub(amount); + _balances[recipient] = _balances[recipient].add(amount); + emit Transfer(sender, recipient, amount); + } +``` + +#### \(3\) `function approve(address spender, uint256 amount) external returns (bool);` + +批准 "是 ERC-20 的強制性方法。 批准 "允許 "支出人 "多次從您的賬戶中提款,但以 "金額 "為限。 如果多次調用此函數,則會將津貼重置為 `amount`。 + +approve "只是調用內部方法"_approve",它實現了 "approve "的實際行為。 msg.sender "作為賬戶 "owner "傳遞。 + +```text + function approve(address spender, uint256 value) public returns (bool) { + _approve(msg.sender, spender, value); + return true; + } + + function _approve(address owner, address spender, uint256 value) internal { + require(owner != address(0), "ERC20: approve from the zero address"); + require(spender != address(0), "ERC20: approve to the zero address"); + + _allowances[owner][spender] = value; + emit Approval(owner, spender, value); + } +``` + +批准 "更新 "允許值","允許值 "是一個二維字典,保存了特定 "地址 "的 "支出人 "的允許 "值"。 + +```text + mapping (address => mapping (address => uint256)) private _allowances; +``` + +#### \(4\) `function _mint(address account, uint256 amount) internal`. + +`_mint` 不是 ERC-20 的一部分。 但是,我們需要一種方法來創建新的 ERC-20 令牌,因此在此實現中引入了 `_mint` 來創建新令牌,如下所示。 + +```text + function _mint(address account, uint256 amount) internal { + require(account != address(0), "ERC20: mint to the zero address"); + + _totalSupply = _totalSupply.add(amount); + _balances[account] = _balances[account].add(amount); + emit Transfer(address(0), account, amount); + } +``` + +`_mint` 是一個內部方法,可在本合同內部調用。 + +在`MyERC20.sol`中,當部署智能合約以鑄造預定數量的代幣時,`_mint`只從`constructor`調用一次。 + +如果想在部署智能合約後發行額外的代幣,就必須引入一個新的公共方法,如 `mint`。 實施該方法時應小心謹慎,因為只有授權用戶才能鑄造令牌。 + +更多詳情,請參閱 OpenZeppelin 示例 [ERC20Mintable.sol](https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC20/ERC20Mintable.sol)。 + +## 2. 部署智能合約 + +在本節中,您將使用 Remix Online IDE 部署 MyERC20 智能合約。 MYERC20.sol 的完整源代碼見 [編寫 ERC-20 智能合約](https://docs.kaia.io/build/smart-contracts/samples/erc-20/#1-writing-erc-20-smart-contract)。 + +### 2.1 先決條件 + +- [Kaia Wallet](../../tools/wallets/kaia-wallet.md):用於部署合約、簽署交易和與合約交互。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 + +你可以使用 Remix Online IDE 或 Truffle 來部署 `MyERC20` 智能合約。 + +### 2.2 使用 Remix 在線集成開發環境部署智能合約 + +Remix IDE + +- 導航至 [Kaia Remix 插件](https://ide.kaia.io/) +- 在合同文件夾中創建一個 `MyERC20.sol` 文件 +- 在 Remix 中,點擊**編譯**合同。 +- 安裝插件後,點擊左側的 Kaia(前 Klaytn)選項卡 +- 選擇 **環境** > **注入式提供商** - **Kaia Wallet**。 +- 在合同字段中,選擇您的合同。 例如,MyERC20。 +- 在部署 **KAIROSTOKEN**、**KAIROS** 和 **8** 時分配以下參數 +- 點擊 **部署**。 + +![ERC20-1-deploy](/img/build/smart-contracts/remix-layout-erc20-example.png) + +部署完成後,可以使用用於部署合同的賬戶調用 `balanceOf` 。 您會發現您的賬戶中有 `10000000000000` 代幣,如下所示。 由於您在部署上述合約時將 `decimal` 設置為 `8`,因此它在構造器中鑄造了固定數量的 `100000` 代幣,其中一個代幣的十進制值為 `10^8`。 totalSupply "方法將返回已鑄造代幣的總供應量,也應為 "10000000000000"。 + +![ERC20-2-owner-token](/img/build/smart-contracts/bal-ts-erc20-example.png) + +MyERC20 "現已上線! + +## 3. 與 Kaia 錢包中的 ERC-20 令牌互動 + +您可以使用 Kaia 錢包查看餘額,並轉移您剛剛部署的與 ERC-20 兼容的 KAIROSTOKEN。 要在 Kaia 錢包中查看令牌餘額,請按以下步驟操作: + +Kaia 錢包 + +- 打開 Kaia 錢包 +- 點擊令牌列表圖標,然後點擊添加令牌按鈕 + +![](/img/build/smart-contracts/kaia-add-token-kw.png) + +- 在 "自定義令牌 "選項卡下的 "令牌合約地址 "字段中粘貼 myERC20.sol 合約的地址。 +- 然後按照提示添加令牌。 您的令牌列表模式應該是這樣的: + +![](/img/build/smart-contracts/kaia-add-token-kw-ii.png) From 0c439ed50bc90c6f0455680a4ef746a933fb7eb4 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:50 +0800 Subject: [PATCH 0093/2513] New translations erc-721.md (Chinese Traditional) --- .../build/smart-contracts/samples/erc-721.md | 843 ++++++++++++++++++ 1 file changed, 843 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md new file mode 100644 index 000000000000..c77d0ed875e0 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/erc-721.md @@ -0,0 +1,843 @@ +# ERC-721 + +## 導言 + +本教程可幫助您創建一個符合[Kaia 令牌標準](../token-standard.md),尤其是[不可篡改令牌標準(ERC-721)](../token-standard.md#non-fungible-token-standard-kip-17)的ERC-721兼容令牌示例。 + +[ERC-721不可封代幣標準](https://eips.ethereum.org/EIPS/eip-721) 定義了以下三個事件和 10 種方法。 ERC-721 的 `supportsInterface` 源自 [ERC-165 標準接口檢測](https://eips.ethereum.org/EIPS/eip-165),ERC-165 是 ERC-721 的一部分。 +ERC-721兼容代幣是實施ERC-721和ERC-165接口的代幣合約,具體如下。 + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); +event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); +event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); + +function balanceOf(address _owner) external view returns (uint256); +function ownerOf(uint256 _tokenId) external view returns (address); +function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; +function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; +function transferFrom(address _from, address _to, uint256 _tokenId) external payable; +function approve(address _approved, uint256 _tokenId) external payable; +function setApprovalForAll(address _operator, bool _approved) external; +function getApproved(uint256 _tokenId) external view returns (address); +function isApprovedForAll(address _owner, address _operator) external view returns (bool); +function supportsInterface(bytes4 interfaceID) external view returns (bool); +``` + +在上述界面的基礎上,開發人員可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 +更多信息,請參閱官方[ERC-721 規範](https://eips.ethereum.org/EIPS/eip-721)。 + +在本教程中,您將實現 "MyERC721Card.sol",它將實現一種卡片類型的不可篡改令牌,即 "MyERC721Card",它是一種ERC-721令牌。 +每張 "MyERC721Card "都有名稱和級別,例如 "King"(國王)的級別為 1,"Queen"(王后)的級別為 1。 + +MyERC721Card.sol "基於 OpenZeppelin 的 ERC721 實現。 本教程的大部分代碼來自 OpenZeppelin 2.3 +。 + +## 1. 編寫 ERC-721 智能合約 + +### 1.1 MyERC721Card 的總體結構 + +MyERC721Card.sol\` 的完整源代碼如下。 + +```text +pragma solidity ^0.5.0; + +// https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/utils/Address.sol +/** + * @dev Collection of functions related to the address type, + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * This test is non-exhaustive, and there may be false-negatives: during the + * execution of a contract's constructor, its address will be reported as + * not containing a contract. + * + * > It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + */ + function isContract(address account) internal view returns (bool) { + // This method relies in extcodesize, which returns 0 for contracts in + // construction, since the code is only stored at the end of the + // constructor execution. + + uint256 size; + // solhint-disable-next-line no-inline-assembly + assembly { size := extcodesize(account) } + return size > 0; + } +} + +// https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/math/SafeMath.sol +/** + * @dev Wrappers over Solidity's arithmetic operations with added overflow + * checks. + * + * Arithmetic operations in Solidity wrap on overflow. This can easily result + * in bugs, because programmers usually assume that an overflow raises an + * error, which is the standard behavior in high level programming languages. + * `SafeMath` restores this intuition by reverting the transaction when an + * operation overflows. + * + * Using this library instead of the unchecked operations eliminates an entire + * class of bugs, so it's recommended to use it always. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + require(b <= a, "SafeMath: subtraction overflow"); + uint256 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 + if (a == 0) { + return 0; + } + + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + // Solidity only automatically asserts when dividing by 0 + require(b > 0, "SafeMath: division by zero"); + uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + require(b != 0, "SafeMath: modulo by zero"); + return a % b; + } +} + +// https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/drafts/Counters.sol +/** + * @title Counters + * @author Matt Condon (@shrugs) + * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number + * of elements in a mapping, issuing ERC721 ids, or counting request ids. + * + * Include with `using Counters for Counters.Counter;` + * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath + * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never + * directly accessed. + */ +library Counters { + using SafeMath for uint256; + + struct Counter { + // This variable should never be directly accessed by users of the library: interactions must be restricted to + // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add + // this feature: see https://github.com/ethereum/solidity/issues/4637 + uint256 _value; // default: 0 + } + + function current(Counter storage counter) internal view returns (uint256) { + return counter._value; + } + + function increment(Counter storage counter) internal { + counter._value += 1; + } + + function decrement(Counter storage counter) internal { + counter._value = counter._value.sub(1); + } +} + +/** + * @dev Interface of the ERC165 standard, as defined in the + * [EIP](https://eips.ethereum.org/EIPS/eip-165). + * + * Implementers can declare support of contract interfaces, which can then be + * queried by others (`ERC165Checker`). + * + * For an implementation, see `ERC165`. + */ +interface IERC165 { + /** + * @dev Returns true if this contract implements the interface defined by + * `interfaceId`. See the corresponding + * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) + * to learn more about how these ids are created. + * + * This function call must use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool); +} + +/** + * @dev Implementation of the `IERC165` interface. + * + * Contracts may inherit from this and call `_registerInterface` to declare + * their support of an interface. + */ +contract ERC165 is IERC165 { + /* + * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7 + */ + bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; + + /** + * @dev Mapping of interface ids to whether or not it's supported. + */ + mapping(bytes4 => bool) private _supportedInterfaces; + + constructor () internal { + // Derived contracts need only register support for their own interfaces, + // we register support for ERC165 itself here + _registerInterface(_INTERFACE_ID_ERC165); + } + + /** + * @dev See `IERC165.supportsInterface`. + * + * Time complexity O(1), guaranteed to always use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool) { + return _supportedInterfaces[interfaceId]; + } + + /** + * @dev Registers the contract as an implementer of the interface defined by + * `interfaceId`. Support of the actual ERC165 interface is automatic and + * registering its interface id is not required. + * + * See `IERC165.supportsInterface`. + * + * Requirements: + * + * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`). + */ + function _registerInterface(bytes4 interfaceId) internal { + require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); + _supportedInterfaces[interfaceId] = true; + } +} + +/** + * @dev Required interface of an ERC721 compliant contract. + */ +contract IERC721 is IERC165 { + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + /** + * @dev Returns the number of NFTs in `owner`'s account. + */ + function balanceOf(address owner) public view returns (uint256 balance); + + /** + * @dev Returns the owner of the NFT specified by `tokenId`. + */ + function ownerOf(uint256 tokenId) public view returns (address owner); + + /** + * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to + * another (`to`). + * + * + * + * Requirements: + * - `from`, `to` cannot be zero. + * - `tokenId` must be owned by `from`. + * - If the caller is not `from`, it must be have been allowed to move this + * NFT by either `approve` or `setApproveForAll`. + */ + function safeTransferFrom(address from, address to, uint256 tokenId) public; + /** + * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to + * another (`to`). + * + * Requirements: + * - If the caller is not `from`, it must be approved to move this NFT by + * either `approve` or `setApproveForAll`. + */ + function transferFrom(address from, address to, uint256 tokenId) public; + function approve(address to, uint256 tokenId) public; + function getApproved(uint256 tokenId) public view returns (address operator); + + function setApprovalForAll(address operator, bool _approved) public; + function isApprovedForAll(address owner, address operator) public view returns (bool); + + + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public; +} + +// https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC721/IERC721Receiver.sol +/** + * @title ERC721 token receiver interface + * @dev Interface for any contract that wants to support safeTransfers + * from ERC721 asset contracts. + */ +contract IERC721Receiver { + /** + * @notice Handle the receipt of an NFT + * @dev The ERC721 smart contract calls this function on the recipient + * after a `safeTransfer`. This function MUST return the function selector, + * otherwise the caller will revert the transaction. The selector to be + * returned can be obtained as `this.onERC721Received.selector`. This + * function MAY throw to revert and reject the transfer. + * Note: the ERC721 contract address is always the message sender. + * @param operator The address which called `safeTransferFrom` function + * @param from The address which previously owned the token + * @param tokenId The NFT identifier which is being transferred + * @param data Additional data with no specified format + * @return bytes4 `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` + */ + function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data) + public returns (bytes4); +} + +// https://github.com/OpenZeppelin/openzeppelin-solidity/blob/v2.3.0/contracts/token/ERC721/ERC721.sol +contract ERC721 is ERC165, IERC721 { + using SafeMath for uint256; + using Address for address; + using Counters for Counters.Counter; + + // Equals to `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` + // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector` + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Mapping from token ID to owner + mapping (uint256 => address) private _tokenOwner; + + // Mapping from token ID to approved address + mapping (uint256 => address) private _tokenApprovals; + + // Mapping from owner to number of owned token + mapping (address => Counters.Counter) private _ownedTokensCount; + + // Mapping from owner to operator approvals + mapping (address => mapping (address => bool)) private _operatorApprovals; + + /* + * bytes4(keccak256('balanceOf(address)')) == 0x70a08231 + * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e + * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3 + * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc + * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465 + * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c + * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd + * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e + * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde + * + * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^ + * 0xa22cb465 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd + */ + bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd; + + constructor () public { + // register the supported interfaces to conform to ERC721 via ERC165 + _registerInterface(_INTERFACE_ID_ERC721); + } + + /** + * @dev Gets the balance of the specified address. + * @param owner address to query the balance of + * @return uint256 representing the amount owned by the passed address + */ + function balanceOf(address owner) public view returns (uint256) { + require(owner != address(0), "ERC721: balance query for the zero address"); + + return _ownedTokensCount[owner].current(); + } + + /** + * @dev Gets the owner of the specified token ID. + * @param tokenId uint256 ID of the token to query the owner of + * @return address currently marked as the owner of the given token ID + */ + function ownerOf(uint256 tokenId) public view returns (address) { + address owner = _tokenOwner[tokenId]; + require(owner != address(0), "ERC721: owner query for nonexistent token"); + + return owner; + } + + /** + * @dev Approves another address to transfer the given token ID + * The zero address indicates there is no approved address. + * There can only be one approved address per token at a given time. + * Can only be called by the token owner or an approved operator. + * @param to address to be approved for the given token ID + * @param tokenId uint256 ID of the token to be approved + */ + function approve(address to, uint256 tokenId) public { + address owner = ownerOf(tokenId); + require(to != owner, "ERC721: approval to current owner"); + + require(msg.sender == owner || isApprovedForAll(owner, msg.sender), + "ERC721: approve caller is not owner nor approved for all" + ); + + _tokenApprovals[tokenId] = to; + emit Approval(owner, to, tokenId); + } + + /** + * @dev Gets the approved address for a token ID, or zero if no address set + * Reverts if the token ID does not exist. + * @param tokenId uint256 ID of the token to query the approval of + * @return address currently approved for the given token ID + */ + function getApproved(uint256 tokenId) public view returns (address) { + require(_exists(tokenId), "ERC721: approved query for nonexistent token"); + + return _tokenApprovals[tokenId]; + } + + /** + * @dev Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf. + * @param to operator address to set the approval + * @param approved representing the status of the approval to be set + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "ERC721: approve to caller"); + + _operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + /** + * @dev Tells whether an operator is approved by a given owner. + * @param owner owner address which you want to query the approval of + * @param operator operator address which you want to query the approval of + * @return bool whether the given operator is approved by the given owner + */ + function isApprovedForAll(address owner, address operator) public view returns (bool) { + return _operatorApprovals[owner][operator]; + } + + /** + * @dev Transfers the ownership of a given token ID to another address. + * Usage of this method is discouraged, use `safeTransferFrom` whenever possible. + * Requires the msg.sender to be the owner, approved, or operator. + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function transferFrom(address from, address to, uint256 tokenId) public { + //solhint-disable-next-line max-line-length + require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); + + _transferFrom(from, to, tokenId); + } + + /** + * @dev Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise, + * the transfer is reverted. + * Requires the msg.sender to be the owner, approved, or operator + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function safeTransferFrom(address from, address to, uint256 tokenId) public { + safeTransferFrom(from, to, tokenId, ""); + } + + /** + * @dev Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise, + * the transfer is reverted. + * Requires the msg.sender to be the owner, approved, or operator + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + * @param _data bytes data to send along with a safe transfer check + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public { + transferFrom(from, to, tokenId); + require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); + } + + /** + * @dev Returns whether the specified token exists. + * @param tokenId uint256 ID of the token to query the existence of + * @return bool whether the token exists + */ + function _exists(uint256 tokenId) internal view returns (bool) { + address owner = _tokenOwner[tokenId]; + return owner != address(0); + } + + /** + * @dev Returns whether the given spender can transfer a given token ID. + * @param spender address of the spender to query + * @param tokenId uint256 ID of the token to be transferred + * @return bool whether the msg.sender is approved for the given token ID, + * is an operator of the owner, or is the owner of the token + */ + function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) { + require(_exists(tokenId), "ERC721: operator query for nonexistent token"); + address owner = ownerOf(tokenId); + return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); + } + + /** + * @dev Internal function to mint a new token. + * Reverts if the given token ID already exists. + * @param to The address that will own the minted token + * @param tokenId uint256 ID of the token to be minted + */ + function _mint(address to, uint256 tokenId) internal { + require(to != address(0), "ERC721: mint to the zero address"); + require(!_exists(tokenId), "ERC721: token already minted"); + + _tokenOwner[tokenId] = to; + _ownedTokensCount[to].increment(); + + emit Transfer(address(0), to, tokenId); + } + + /** + * @dev Internal function to burn a specific token. + * Reverts if the token does not exist. + * Deprecated, use _burn(uint256) instead. + * @param owner owner of the token to burn + * @param tokenId uint256 ID of the token being burned + */ + function _burn(address owner, uint256 tokenId) internal { + require(ownerOf(tokenId) == owner, "ERC721: burn of token that is not own"); + + _clearApproval(tokenId); + + _ownedTokensCount[owner].decrement(); + _tokenOwner[tokenId] = address(0); + + emit Transfer(owner, address(0), tokenId); + } + + /** + * @dev Internal function to burn a specific token. + * Reverts if the token does not exist. + * @param tokenId uint256 ID of the token being burned + */ + function _burn(uint256 tokenId) internal { + _burn(ownerOf(tokenId), tokenId); + } + + /** + * @dev Internal function to transfer ownership of a given token ID to another address. + * As opposed to transferFrom, this imposes no restrictions on msg.sender. + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function _transferFrom(address from, address to, uint256 tokenId) internal { + require(ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); + require(to != address(0), "ERC721: transfer to the zero address"); + + _clearApproval(tokenId); + + _ownedTokensCount[from].decrement(); + _ownedTokensCount[to].increment(); + + _tokenOwner[tokenId] = to; + + emit Transfer(from, to, tokenId); + } + + /** + * @dev Internal function to invoke `onERC721Received` on a target address. + * The call is not executed if the target address is not a contract. + * + * This function is deprecated. + * @param from address representing the previous owner of the given token ID + * @param to target address that will receive the tokens + * @param tokenId uint256 ID of the token to be transferred + * @param _data bytes optional data to send along with the call + * @return bool whether the call correctly returned the expected magic value + */ + function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) + internal returns (bool) + { + if (!to.isContract()) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data); + return (retval == _ERC721_RECEIVED); + } + + /** + * @dev Private function to clear current approval of a given token ID. + * @param tokenId uint256 ID of the token to be transferred + */ + function _clearApproval(uint256 tokenId) private { + if (_tokenApprovals[tokenId] != address(0)) { + _tokenApprovals[tokenId] = address(0); + } + } +} + +contract MyERC721Card is ERC721{ + + struct Card { + string name; // Name of the Card + uint256 level; // Level of the Card + } + + Card[] public cards; // First Item has Index 0 + address public owner; + + constructor () public { + owner = msg.sender; // owner of MyERC721Card contract who can create a new card + } + + function mintCard(string memory name, address account) public { + require(owner == msg.sender); // Only the Owner can create Items + uint256 cardId = cards.length; // Unique card ID + cards.push(Card(name, 1)); + _mint(account, cardId); // Mint a new card + } + +} +``` + +MyERC721Card.sol`包括一個接口(`IERC165`)、三個庫(`Address`、`SafeMath`和`Counters`)和四個合約(`ERC165`、`IERC721`、`IERC721Receiver`和`MyERC721Card\`)。 + +- IERC165 "接口定義了[ERC-165 規範](https://eips.ethereum.org/EIPS/eip-165) 中描述的接口。 +- 地址 "庫定義了 "isContract "方法,用於測試 "賬戶 "是否為合同。 +- SafeMath "庫定義了 Solidity 算術運算的包裝器,並增加了溢出檢查功能,可安全計算 Solidity 的 "uint256 "類型。 +- 計數器庫定義了只能遞增或遞減一個的計數器。 用於跟蹤發行 ERC721 id 的元素數量。 +- ERC165 "實現了 "IERC165 "接口。 +- IERC721 "定義了[ERC-721 規範](https://eips.ethereum.org/EIPS/eip-721) 中描述的接口,其中還包括 ERC-165。 +- IERC721Receiver 定義了 `onERC721Received` 用於 `MyERC721Card` 合約。 +- ERC721 "實現了 "IERC721 "和 "ERC165"。 +- MyERC721Card "使用 "ERC721 "實現了一種帶有名稱和級別的卡片類型不可篡改令牌,只有 "MyERC721Card "合約的所有者才能鑄造新卡。 + +### 1.2 看看重要的方法 + +讓我們來詳細瞭解一些重要的方法。 + +#### \(1\)ERC721的 "構造函數 "和"_INTERFACE_ID_ERC721"。 + +constructor "會註冊"_INTERFACE_ID_ERC721",這是一個從 ERC-721 接口導出的 4 字節哈希值,如下所示。 + +```text + /* + * bytes4(keccak256('balanceOf(address)')) == 0x70a08231 + * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e + * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3 + * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc + * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465 + * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c + * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd + * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e + * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde + * + * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^ + * 0xa22cb465 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd + */ + bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd; + + constructor () public { + // register the supported interfaces to conform to ERC721 via ERC165 + _registerInterface(_INTERFACE_ID_ERC721); + } +``` + +註冊後,當調用 `_INTERFACE_ID_ERC721` 時,ERC-721 和 ERC-165 的 `supportsInterface` 接口會返回 `true`,並告知此合約正在實現 ERC-721 接口。 + +#### \(2\) `function balanceOf(address owner) public view returns (uint256 balance);` + +balanceOf "是ERC-721的強制方法。 `balanceOf` 返回 `owner` 賬戶中的 NFT 數量。 + +```text + function balanceOf(address owner) public view returns (uint256) { + require(owner != address(0), "ERC721: balance query for the zero address"); + + return _ownedTokensCount[owner].current(); + } +``` + +`balanceOf` 只是從 `owner` 在 `ownedTokensCount` 中維護的 `Counter` 對象中返回當前計數。 + +```text + // Mapping from owner to number of owned token + mapping (address => Counters.Counter) private _ownedTokensCount; +``` + +#### \(3\) `safeTransferFrom` 和 `transferFrom` + +這些函數將給定令牌 ID 的所有權轉移到另一個地址。 ERC-721要求使用兩種 "safeTransferFrom "方法,一種包含 "數據",另一種不包含 "數據"。 除了不帶 `data` 的方法只是將 `data` 設為 `""`,這兩種方法的工作原理完全相同。 `safeTransferFrom` 在調用 `transferFrom` 時會進行更多檢查,如下所示,與 `transferFrom` 相比,"safeTransferFrom "更受歡迎,後者也是 ERC-721 的強制方法。 + +```text + function safeTransferFrom(address from, address to, uint256 tokenId) public { + safeTransferFrom(from, to, tokenId, ""); + } + + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public { + transferFrom(from, to, tokenId); + require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); + } + + function transferFrom(address from, address to, uint256 tokenId) public { + //solhint-disable-next-line max-line-length + require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); + + _transferFrom(from, to, tokenId); + } +``` + +`safeTransferFrom` 檢查 `to` 地址是否能接收令牌。 `_checkOnERC721Received` 具有驗證邏輯。 如果 `to` 地址是一個合約,則該合約應實現 ERC-721 的 `onERC721Received` 接口,並返回正確的 4 字節哈希值以接收 ERC-721 令牌,如下所示。 + +```text + function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) + internal returns (bool) + { + if (!to.isContract()) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data); + return (retval == _ERC721_RECEIVED); + } +``` + +transferFrom "實際上是轉移給定 "tokenId "的所有權,如下所示。 + +```text + function _transferFrom(address from, address to, uint256 tokenId) internal { + require(ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); + require(to != address(0), "ERC721: transfer to the zero address"); + + _clearApproval(tokenId); + + _ownedTokensCount[from].decrement(); + _ownedTokensCount[to].increment(); + + _tokenOwner[tokenId] = to; + + emit Transfer(from, to, tokenId); + } +``` + +#### \(4\) `function _mint(address to, uint256 tokenId) internal`. + +`_mint` 不是 ERC-721 的一部分。 不過,我們需要一種方法來創建新的 ERC-721 令牌,並在此實現中引入了 `_mint` 來創建新令牌,如下所示。 + +```text + function _mint(address to, uint256 tokenId) internal { + require(to != address(0), "ERC721: mint to the zero address"); + require(!_exists(tokenId), "ERC721: token already minted"); + + _tokenOwner[tokenId] = to; + _ownedTokensCount[to].increment(); + + emit Transfer(address(0), to, tokenId); + } +``` + +`_mint` 是一個內部方法,可在本合同內部調用。 在`MyERC721Card.sol`中,`_mint`僅從`MyERC721Card`合約中的`mintCard`方法調用。 只有智能合約的所有者才能調用 "mintCard"。 + +```text + function mintCard(string name, address account) public { + require(owner == msg.sender); // Only the Owner can create Items + uint256 cardId = cards.length; // Unique card ID + cards.push(Card(name, 1)); + _mint(account, cardId); // Mint a new card + } +``` + +## 2. 部署智能合約 + +你可以使用 Remix Online IDE 或使用 truffle 來部署上述 `MyERC721Card` 智能合約。 + +### 2.1 使用 Remix 在線 IDE 部署智能合約 + +- 請訪問 [Kaia Plugin for Remix](https://ide.kaia.io) 並創建 "MyERC721Card "合同。 完整源代碼見 [Writing ERC-721 Smart Contract](#1-writing-erc-721-smart-contract)。 +- 創建一個賬戶來部署合同。 + - 如果您還沒有賬戶,請在 [https://toolkit.kaia.io/account/accountKeyLegacy](https://toolkit.kaia.io/account/accountKeyLegacy) 上創建一個賬戶。 + - 從水龍頭獲取一些測試 KAIA - [https://faucet.kaia.io](https://faucet.kaia.io) +- 讓我們如下部署 `MyERC721Card.sol`。 + +![ERC721-1-deploy](/img/build/smart-contracts/erc721-1-deploy.png) + +現在,`MyERC721Card` 已上線! 您可以鑄造和轉移與 ERC-721 兼容的非贗品代幣卡。 + +讓我們為賬戶 "0x2645BA5Be42FeEe907ca8e9d88f6Ee6dAd8c1410 "鑄造兩張卡片,即 "國王 "卡和 "王后 "卡,如下所示。 + +![ERC721-2-mint-king](/img/build/smart-contracts/erc721-2-mint-king.png) ![ERC721-3-mint-queen](/img/build/smart-contracts/erc721-3-mint-queen.png) + +現在我們已經鑄造了兩張卡片,讓我們檢查一下這些 `MyERC721Card` 不可篡改令牌的狀態。 + +![ERC721-4-cards-status](/img/build/smart-contracts/erc721-4-cards-status.png) + +- balanceOf`顯示賬戶`0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410\` 有兩張卡。 +- 參數為 `1` 的 `cards` 顯示令牌 ID 為 `1` 的 `MyERC721Card` 是 1 級的 `Queen` 。 +- 參數 `0` 的 `ownerOf` 顯示令牌 ID `0` 的 `MyERC721Card` 的所有者是 `0x2645BA5Be42FfEe907ca8e9d88f6Ee6dAd8c1410`。 From 0e16352adf1f1eb3d3d9d1c0b5cac0142150b066 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:51 +0800 Subject: [PATCH 0094/2513] New translations kaiagreeter.md (Chinese Traditional) --- .../smart-contracts/samples/kaiagreeter.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md new file mode 100644 index 000000000000..281dc12c2e98 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/kaiagreeter.md @@ -0,0 +1,46 @@ +# KaiaGreeter + +`KaiaGreeter`是一個返回問候信息的簡單合約。 問候信息在部署合同時設置。 + +## 寫作 KaiaGreeter + +``` +pragma solidity 0.5.6; +contract Mortal { + /* Define variable owner of the type address */ + address payable owner; + /* This function is executed at initialization and sets the owner of the contract */ + constructor () public { owner = msg.sender; } + /* Function to recover the funds on the contract */ + function kill() public { if (msg.sender == owner) selfdestruct(owner); } +} + +contract KaiaGreeter is Mortal { + /* Define variable greeting of the type string */ + string greeting; + /* This runs once when the contract is created */ + constructor (string memory _greeting) public { + greeting = _greeting; + } + /* Main function */ + function greet() public view returns (string memory) { + return greeting; + } +} +``` + +## 使用 Remix 在線集成開發環境部署 KaiaGreeter + +- 請訪問 [Kaia Plugin for Remix](https://ide.kaia.io) 並創建 "KaiaGreeter "合同。 上文提供了完整的源代碼。 +- 準備用於部署合同的賬戶。 + - 如果您還沒有賬戶,請在 [https://toolkit.kaia.io/account/accountKeyLegacy](https://toolkit.kaia.io/account/accountKeyLegacy) 上創建一個賬戶。 + - 從水龍頭獲取一些測試 KAIA - [https://kairos.wallet.kaia.io/faucet](https://kairos.wallet.kaia.io/faucet) +- 部署帶有初始參數(問候語)的合同。 +- 部署完成後,可以在集成開發環境中調用 `greet`。 + +## 參考資料 + +有關合同部署詳情和 Remix Online IDE 使用指南,請參閱以下文件。 + +- [Remix 在線集成開發環境](../../smart-contracts/ide-and-tools/ide-and-tools.md#kaia-ide) +- [部署指南](../deploy/deploy.md) From e05e05e171c094920f06be620cff7bc8abd5030f Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:52 +0800 Subject: [PATCH 0095/2513] New translations samples.md (Chinese Traditional) --- .../current/build/smart-contracts/samples/samples.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md new file mode 100644 index 000000000000..615ebe34e111 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/samples/samples.md @@ -0,0 +1,7 @@ +# 合同樣本 + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; + + +``` From b9399b715a6b34f5f7559d079acbe64f54401388 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:54 +0800 Subject: [PATCH 0096/2513] New translations smart-contracts.md (Chinese Traditional) --- .../build/smart-contracts/smart-contracts.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md new file mode 100644 index 000000000000..cc58b8ff8a6a --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/smart-contracts.md @@ -0,0 +1,13 @@ +# 智能合約 + +本節介紹智能合約開發所需的開發資源。 + +為了編寫智能合約,Kaia 目前支持 [Solidity](https://github.com/ethereum/solidity) 作為主要編程語言。 之所以在 Kaia 中採用 Solidity,是因為它是以太坊事實上的標準合約編程語言,擁有龐大的用戶群和活躍的社區。 Kaia 團隊決定為用戶提供熟悉的開發體驗,以便以太坊 DApp 開發人員可以輕鬆嘗試或將其現有智能合約遷移到 Kaia。 + +未來,Kaia 還計劃支持使用其他編程語言編寫智能合約。 Kaia 團隊正在研究開發人員可能接受的各種有利的編程語言。 + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; + + +``` From 483d5813e8d0bdb9b54f6a20166e9de388f605ab Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:55 +0800 Subject: [PATCH 0097/2513] New translations solidity-smart-contract-language.md (Chinese Traditional) --- .../solidity-smart-contract-language.md | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md new file mode 100644 index 000000000000..bd7df5458a52 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/solidity-smart-contract-language.md @@ -0,0 +1,137 @@ +# Solidity - 智能合約語言 + +本章只介紹高級概念、開發過程和用 Solidity 編寫的示例,因為 Solidity 在其官方網站上已有詳盡的文檔說明。 有關語言規範或實現,請參閱下面的 [參考文獻](#參考文獻)。 本章內容基於 [參考文獻](#參考文獻)中列出的多個網站。 + +## 堅固和卡婭 + +[Solidity](https://github.com/ethereum/solidity)是一種高級、靜態類型化、面向合約的語言,用於在以太坊平臺上實現智能合約。 雖然 Solidity 最初是為以太坊設計的,但它在編寫智能合約方面具有足夠的通用性;因此,它也可用於其他區塊鏈平臺,如 Kaia。 + +Kaia 正式兼容**倫敦**以太坊虛擬機(EVM)版本。 不保證向後兼容 Kaia 上的其他 EVM 版本。 因此,強烈建議使用 Istanbul 目標選項編譯 Solidity 代碼。 請參閱 [如何設置 Solc 的 EVM 版本](https://solidity.readthedocs.io/en/latest/using-the-compiler.html#setting-the-evm-version-to-target)。 + +:::note + +v1.7.0 協議升級 - 不兼容的更改,包括**伊斯坦布爾**硬分叉項目和 Kaia 自己的項目。 +如果是 Kairos 網絡,則從區塊編號 "#75,373,312 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 + +v1.7.3 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#80,295,291 "開始啟用,如果是主網絡,則從區塊編號 "#86,816,005 "開始啟用。 + +v1.8.0 協議升級 - 包括倫敦\*\*\*硬分叉產生的基本費用在內的不兼容變更。 +如果是 Kairos 網絡,則從區塊編號 "#86,513,895 "開始啟用,如果是主網,則從區塊編號 "#86,816,005 "開始啟用。 + +::: + +在為Kaia開發智能合約時,可以使用[Remix](https://remix.ethereum.org/) (一種基於瀏覽器的 IDE)和[Truffle](https://github.com/trufflesuite/truffle) (一種開發框架)等開發工具。 Kaia 團隊將努力保持以太坊開發工具與 Kaia 開發工具之間的兼容性,但在必要時可能會選擇向 Kaia 智能合約開發人員提供這些工具的增強版或更新版。 + +使用 Remix 或 Truffle 開發智能合約非常方便,但 Solidity 編譯器也可在本地使用,只需按照下面網頁中的說明構建或安裝即可: + +- [安裝 Solidity 編譯器](https://docs.soliditylang.org/en/latest/installing-solidity.html) + +請注意,有兩種命令行 Solidity 編譯器: + +- _solc_:全功能編譯器 + - 包含在 Solidity 文檔中 +- _solcjs_:用於 _solc_ 的 Javascript 綁定 + - 作為獨立項目 [solc-js] 維護(https://github.com/ethereum/solc-js) + - _solcjs_ 的命令行選項與 _solc_ 的命令行選項不兼容。 + +其他有助於入門 Solidity 的資料包括以下內容: + +- [頂級穩固性教程](https://medium.com/coinmonks/top-solidity-tutorials-4e7adcacced8) + +## 如何編寫智能合約 + +本節以 Solidity 源代碼為例,讓讀者瞭解智能合約的外觀以及如何編寫合約。 請注意,此處包含的代碼僅供解釋之用,並不用於生產目的。 在代碼中,"(require) "表示任何 Solidity 源文件都需要該行,而"(optional) "則表示不一定需要該行。 符號 `Ln:` 並非 Solidity 代碼的一部分,在此加入只是為了顯示行號。 請不要在實際使用的源代碼中使用這些符號。 + +```text +L01: pragma solidity 0.5.12; // (required) version pragma +L02: +L03: import "filename"; // (optional) importing other source files +L04: +L05: // (optional) smart contract definition +L06: contract UserStorage { +L07: mapping(address => uint) userData; // state variable +L08: +L09: function set(uint x) public { +L10: userData[msg.sender] = x; +L11: } +L12: +L13: function get() public view returns (uint) { +L14: return userData[msg.sender]; +L15: } +L16: +L17: function getUserData(address user) public view returns (uint) { +L18: return userData[user]; +L19: } +L20: } +``` + +上述代碼不言自明,因此熟悉其他編程語言的人可以跳過本節的解釋,直接跳到下一節。 不過,對於那些不清楚代碼作用的人,或者對於 Solidity 是第一種編程語言的人,我們會在下面附上源代碼的簡短說明: + +- 代碼中以雙斜線開頭的部分是註釋,而不是代碼;它們用於註釋和解釋代碼。 編譯器會忽略註釋。 +- L01 "中的 "pragma "語句表示編譯器的最小版本。 +- L03`中的`import` 語句從"`filename\`"導入所有全局符號。 文件名 "應為實際文件名。 +- `L05` - `L20` 定義了一個名為 `UserStorage` 的智能合約。 關鍵字 `contract` 位於合約名稱之前,聲明代碼代表一個智能合約。 Solidity 中的契約類似於面嚮對象語言中的類。 每個合約可包含狀態變量、函數、函數修改器、事件、結構類型和枚舉類型的聲明。 此外,合同還可以繼承其他合同。 示例代碼包含一個合同定義,但一個 Solidity 文件可能包含多個合同定義。 +- 在`L07`中,`userData`是映射類型的狀態變量。 狀態變量永久保存在合約存儲器中。 狀態變量 `userData` 維護著 `address` 和 `uint` 值之間的映射。 地址 "類型保存一個 20 字節的地址(Kaia 使用的 20 字節地址與以太坊類似)。 +- `L09` 定義了一個公共函數 `set`,用於在 `userData` 中保存信息發送者的 `x` 值。 變量 "msg.sender "是 Solidity 中定義的一個特殊變量,表示消息(即當前呼叫)發送者的地址。 關鍵字 "public "表示該函數是合約接口的一部分,可在外部或內部調用。 +- L13`中的函數`get` 和 L17` 中的函數 `getUserData` 是用 `view` 聲明的,這意味著函數承諾不修改任何狀態變量。 它們的聲明包括 `returns (uint)`,這意味著它們返回一個 `uint` 值。 + +有關 Solidity 語言語法和語義的更多信息,請參閱 [Solidity 文檔](https://docs.soliditylang.org/)。 + +## 如何編譯、部署和執行 + +編譯 Solidity 代碼的一種方法是使用命令行編譯器 _solc_。 這種編譯器可以產生各種輸出,從簡單的二進制文件和彙編到抽象語法樹(parse tree\ )。 假設上面的代碼保存在 `UserStorage.sol`(上面顯示的源文件中不包括 `L03`),編譯文件 `UserStorage.sol`的一些示例如下。 + +```bash +$ solc --bin UserStorage.sol +``` + +- 該命令將以二進制_即_字節碼_的形式打印編譯輸出。 + +```bash +solc -o output --bin --ast --asm UserStorage.sol +``` + +- 編譯器會生成二進制文件、抽象語法樹和彙編代碼,並將它們作為單獨的文件存放在 "輸出 "目錄下。 + +```bash +solc --optimize --bin UserStorage.sol +``` + +- 為提高性能,可在編譯過程中使用 `--optimize` 標記激活優化器。 + +下面列出了一些用於編譯、部署和執行智能合約的資源。 + +- [使用Solidity命令行編譯器](https://docs.soliditylang.org/en/latest/using-the-compiler.html) +- [使用 Remix 編譯合同](https://remix-ide.readthedocs.io/en/stable/compile.html) +- [Running transactions with Remix](https://remix-ide.readthedocs.io/en/stable/run.html) +- [Remix Learneth 教程](https://remix-ide.readthedocs.io/en/latest/remix_tutorials_learneth.html) +- [用 Truffle 編譯合同](https://trufflesuite.com/docs/truffle/getting-started/compiling-contracts) +- [使用 Truffle 部署合同](https://trufflesuite.com/docs/truffle/getting-started/running-migrations) + +注:本部分內容今後將進行更新。 + +## 調試智能合約 + +由於缺乏成熟的調試工具,調試 Solidity 代碼比調試用其他編程語言編寫的代碼更加困難。 下面,我們列出了一些用於 Solidity 調試的資源。 + +- [使用 Remix 調試交易](https://remix-ide.readthedocs.io/en/latest/debugger.html) +- [使用 Remix 調試事務的教程](https://remix-ide.readthedocs.io/en/latest/tutorial_debug.html) +- [使用 Truffle 調試合同](https://trufflesuite.com/docs/truffle/getting-started/using-the-truffle-debugger/) + +注:本部分內容今後將進行更新。 + +## 智能合約最佳實踐 + +要消除智能合約中的安全問題和代碼質量問題,必須學習並遵循 Solidity 編程的最佳實踐。 在此,我們展示了 Solidity 最佳實踐的參考資料。 + +- [智能合約安全最佳實踐](https://github.com/ConsenSys/smart-contract-best-practices) + +注:本部分內容今後將進行更新。 + +## 參考資料 + +- [Solidity GitHub 頁面](https://github.com/ethereum/solidity) +- [Solidity文檔](https://solidity.readthedocs.io/en/latest/index.html) +- [混音文檔](https://remix-ide.readthedocs.io/en/latest/) +- [松露文檔](https://trufflesuite.com/docs/truffle/) From ed95552332904126b71b26bbe0569e36f5e7e115 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:56 +0800 Subject: [PATCH 0098/2513] New translations testing-guide.md (Chinese Traditional) --- .../build/smart-contracts/testing-guide.md | 261 ++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md new file mode 100644 index 000000000000..bc6ae30cba28 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/testing-guide.md @@ -0,0 +1,261 @@ +# 測試智能合約 + +在本節中,我們將介紹如何測試智能合約。 由於區塊鏈上的任何交易都是不可逆轉的,因此在部署智能合約之前對其進行測試至關重要。 + +## 使用松露進行測試 + +Truffle 提供了一個自動測試框架。 該框架可讓您以兩種不同的方式編寫簡單、易於管理的測試: + +- 在 "Javascript "和 "TypeScript "中,用於從外部世界執行您的合約,就像應用程序一樣。 +- 在 "Solidity "中,用於在預付款、裸機情況下執行合同。 + +### 1. 入門 + +我們將按照[使用 Truffle 的部署指南](./deploy/deploy.md#truffle)創建合約並進行部署。 不過,在部署之前,我們將在合約中添加一個設置函數 `setGreet` 以進行測試。 源代碼如下。 + +**注:** 我們對測試合同做了一些修改。 + +以下是 KaiaGreeting 合同源代碼。 + +``` +pragma solidity 0.5.6; + +contract Mortal { + /* Define variable owner of the type address */ + address payable owner; + /* This function is executed at initialization and sets the owner of the contract */ + constructor () public { owner = msg.sender; } + /* Function to recover the funds on the contract */ + function kill() public payable { if (msg.sender == owner) selfdestruct(owner); } +} + +contract KaiaGreeter is Mortal { + /* Define variable greeting of the type string */ + string greeting; + + /* This runs when the contract is executed */ + constructor (string memory _greeting) public { + greeting = _greeting; + } + + /* Main function */ + function greet() public view returns (string memory) { + return greeting; + } + + /* Newly added function for testing. */ + function setGreet(string memory _greeting) public { + // only owner can change greeting message + require(msg.sender == owner, "Only owner is allowed."); + greeting = _greeting; + } +} +``` + +我們將測試 1) `greet()`函數是否能正確返回 "Hello, Kaia "信息,2) `setGreet()`函數是否能正確設置新的問候語信息,並在非所有者賬戶嘗試更新問候語時進行還原。 + +首先,我們將為通用斷言安裝 Chai 斷言庫(或你使用的任何其他斷言庫),為智能合約斷言安裝 truffle 斷言庫。 + +``` +npm install --save-dev chai truffle-assertions +``` + +### 2. 在 Solidity 中編寫測試 + +使用 Solidity 進行測試比 JavaScript 測試更直觀。 Solidity 測試合同作為 .sol 文件與 JavaScript 測試並存。 + +在 "test "文件夾中創建名為 "TestKaiaGreeting.sol "的文件。 Truffle 套件為我們提供了用於測試的輔助庫,因此我們需要導入這些庫。 讓我們來看看 Solidity 測試的示例: + +``` +pragma solidity ^0.5.6; + +import "truffle/Assert.sol"; +import "truffle/DeployedAddresses.sol"; +import "../contracts/HashMarket.sol"; +``` + +- Assert :它允許我們訪問各種測試函數,如`Assert.equals()`、`Assert.g greaterThan()`等。 +- 部署地址(DeployedAddresses):每次更改合同時,都必須將其重新部署到新地址。 您可以通過該庫獲取已部署的合同地址。 + +現在,讓我們編寫一段測試代碼。 + +``` +pragma solidity ^0.5.6; + +import "truffle/Assert.sol"; +import "truffle/DeployedAddresses.sol"; +import "../contracts/KaiaGreeter.sol"; + +contract TestKaiaGreeter { + + function testGreetingMessage() public { + // DeployedAddresses.KaiaGreeter() handles contract address. + KaiaGreeter greeter = KaiaGreeter(DeployedAddresses.KaiaGreeter()); + + string memory expectedGreet = "Hello Kaia"; + + string memory greet = greeter.greet(); + + Assert.equal(greet, expectedGreet, "greeting message should match"); + } +} +``` + +運行 Solidity 測試代碼 + +``` +$ truffle test +# Output +Using network 'development'. + + +Compiling your contracts... +=========================== +> Compiling ./test/TestKaiaGreeter.sol + + + + TestKaiaGreeter + 1) testGreetingMessage + + Events emitted during test: + --------------------------- + + + --------------------------- + + + 0 passing (5s) + 1 failing + + 1) TestKaiaGreeter + testGreetingMessage: + Error: greeting message should match (Tested: Hello, Kaia, Against: Hello Kaia) + at result.logs.forEach.log (/Users/jieunkim/.nvm/versions/node/v10.16.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/testing/soliditytest.js:71:1) + at Array.forEach () + at processResult (/Users/jieunkim/.nvm/versions/node/v10.16.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/testing/soliditytest.js:69:1) + at process._tickCallback (internal/process/next_tick.js:68:7) +``` + +哎呀,我們失敗了。 讓我們檢查一下錯誤信息,"Error: greeting message should match (Tested: Hello, Kaia, Against: Hello Kaia)"。 我注意到 _string memory expectedGreet = "Hello Kaia"_.\ +處漏掉了"'',(逗號)'\`",請修改代碼並再次運行測試。 + +``` +$ truffle test +# Output +Using network 'development'. + + +Compiling your contracts... +=========================== +> Compiling ./test/TestKaiaGreeter.sol + + + + TestKaiaGreeter + ✓ testGreetingMessage (58ms) + + + 1 passing (5s) +``` + +祝賀你 您的測試已通過。 + +### 3. 用 JavaScript 編寫測試 + +Truffle 使用 [Mocha](https://mochajs.org/) 測試框架和 [Chai](https://www.chaijs.com/) 斷言庫,為 JavaScript 測試提供了一個堅實的框架。 JavaScript 測試為您提供了更大的靈活性,使您能夠編寫更復雜的測試。 + +讓我們在`test`目錄下創建一個文件並命名為`0_KaiaGreeting.js`。 + +測試代碼是 + +```javascript +// Interacting directly with KaiaGreeter contract +const KaiaGreeter = artifacts.require("./KaiaGreeter.sol"); +const truffleAssert = require('truffle-assertions'); + +contract("KaiaGreeter", async(accounts) => { + // store the contract instance at a higher level + // to enable access from all functions. + var klaytnGreeterInstance; + var owner = accounts[0]; + var greetMsg = "Hello, Kaia"; + + // This will run before each test proceed. + before(async function() { + // set contract instance into a variable + klaytnGreeterInstance = await KaiaGreeter.new(greetMsg, {from:owner}); + }) + + it("#1 check Greeting message", async function() { + // set the expected greeting message + var expectedGreeting = greetMsg; + var greet= await klaytnGreeterInstance.greet(); + assert.equal(expectedGreeting, greet, "greeting message should match"); + + }) + + it("#2 update greeting message.", async function() { + var newGreeting = "Hi, Kaia"; + + await klaytnGreeterInstance.setGreet(newGreeting, { from:owner }); + var greet = await klaytnGreeterInstance.greet(); + assert.equal(newGreeting, greet, "greeting message should match"); + }); + + it("#3 [Failure test] Only owner can change greeting.", async function() { + var fakeOwner = accounts[1]; + await truffleAssert.fails(klaytnGreeterInstance.setGreet(greetMsg, { from:fakeOwner })); + }); +}); +``` + +如果您不熟悉 "Mocha "單元測試,請查閱[Mocha 文檔](https://mochajs.org/#getting-started)。 + +- 使用 `contract()` 代替 `describe()` + + 從結構上看,Truffle 測試代碼應該與 Mocha 的常規測試代碼沒有太大區別。 您的測試應包含能被 Mocha 識別為自動測試的代碼。 Mocha 和 Truffle 測試的區別在於 contract() 函數。 + + **注意**使用`contract()`函數和`accounts`數組來指定可用的 Kaia 賬戶。 +- 測試中的合同抽象 + + 由於 Truffle 無法檢測測試過程中需要與哪個合約交互,因此應明確指定合約。 一種方法是使用 `artifacts.require()` 方法。 +- it "語法 + + 這表示每個測試用例的描述。 說明將在試運行時打印在控制檯上。 +- truffle-assertion\` 庫 + + 通過提供 `truffleAssert.reverts()` 和 `truffleAssert.fails()` 函數,該庫可讓您輕鬆測試還原或其他失敗。 + +輸出結果如下 + +``` +Using network 'development'. + + +Compiling your contracts... +=========================== +> Everything is up to date, there is nothing to compile. + + + + Contract: KaiaGreeter + ✓ #1 check Greeting message + ✓ #2 update greeting message. (46ms) + ✓ #3 [Failure test] Only owner can change greeting. + + + 3 passing (158ms) +``` + +祝賀你 您的測試已通過。 + +### 4. 指定測試 + +您可以選擇要執行的測試文件。 + +``` +truffle test ./test/0_KaiaGreeting.js +``` + +詳情請查看 [Truffle 測試](https://www.trufflesuite.com/docs/truffle/testing/testing-your-contracts) 和 [Truffle 命令](https://www.trufflesuite.com/docs/truffle/reference/truffle-commands#test)。 From 4e1b4008ca5af1d59e0e22d4ec87d0543d3fca80 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:58 +0800 Subject: [PATCH 0099/2513] New translations token-standard.md (Chinese Traditional) --- .../build/smart-contracts/token-standard.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md new file mode 100644 index 000000000000..c2e948f2c44c --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/token-standard.md @@ -0,0 +1,138 @@ +# Kaia 兼容代幣(KCT) + +Kaia Compatible Token(KCT)是一種特殊類型的智能合約,它實現了某些技術規範。 每個想在 Kaia 上發行代幣的人都必須遵守規範。 + +Kaia 中定義了令牌標準,如 [KIP-7](https://kips.kaia.io/KIPs/kip-7) 和 [KIP-17](https://kips.kaia.io/KIPs/kip-17)。 + +還可以定義其他 KCT,以滿足某些技術規格。 如果有人需要其他令牌標準,請訪問 [Kaia Improvement Proposal](https://github.com/kaiachain/KIPs),提出新的令牌標準。 + +## 可摺疊令牌標準(KIP-7) + +可變代幣是具有均勻性和可分割性的代幣。 每個可替代代幣都可以互換,因為每個單位的代幣都具有相同的價值。 就像每張一元紙幣都有一元的價值一樣。 在大多數情況下,可替代性是加密貨幣的基本特徵,因此大部分區塊鏈代幣都是可替代代幣。 + +要通過智能合約實現這些屬性,可以使用 KIP-7 令牌標準。 與 KIP-7 兼容的令牌實現了以下接口。 請注意,[KIP-13](https://kips.kaia.io/KIPs/kip-13) 必須同時執行。 對於錢包應用,可執行 [錢包接口](https://kips.kaia.io/KIPs/kip-7#wallet-interface)。 + +```solidity +// IKIP7 +event Transfer(address indexed from, address indexed to, uint256 value); +event Approval(address indexed owner, address indexed spender, uint256 value); + +function totalSupply() external view returns (uint256); +function balanceOf(address account) external view returns (uint256); +function transfer(address recipient, uint256 amount) external returns (bool); +function allowance(address owner, address spender) external view returns (uint256); +function approve(address spender, uint256 amount) external returns (bool); +function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); +function safeTransfer(address recipient, uint256 amount, bytes data) external; +function safeTransfer(address recipient, uint256 amount) external; +function safeTransferFrom(address sender, address recipient, uint256 amount, bytes data) external; +function safeTransferFrom(address sender, address recipient, uint256 amount) external; + +// IKIP7Metadata (optional) +function name() external view returns (string memory); +function symbol() external view returns (string memory); +function decimals() external view returns (uint8); + +// IKIP7Mintable (optional) +function mint(address _to, uint256 _amount) external returns (bool); +function isMinter(address _account) external view returns (bool); +function addMinter(address _account) external; +function renounceMinter() external; + +// IKIP7Burnable (optional) +function burn(uint256 _amount) external; +function burnFrom(address _account, uint256 _amount) external; + +// IKIP7Pausable (optional) +event Paused(address _account); +event Unpaused(address _account); + +function paused() external view returns (bool); +function pause() external; +function unpause() external; +function isPauser(address _account) external view returns (bool); +function addPauser(address _account) external; +function renouncePauser() external; +``` + +在上述界面的基礎上,開發者可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 + +更多信息,請參閱官方 [KIP-7 文檔](https://kips.kaia.io/KIPs/kip-7)。 + +- 實施示例見 [https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP7/KIP7.sol](https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP7/KIP7.sol)。 + +## Non-fungible Token Standard\(KIP-17\) + +Non-fungible token\(NFT\) 是一種特殊類型的代幣,代表一種獨特的資產。 正如 "不可篡改 "這個名字所暗示的,每一個代幣都是獨一無二、不可分割的。 不可篡改令牌的這種獨特性為資產數字化開闢了新天地。 例如,它可以用來表示數字藝術、遊戲物品或任何類型的獨特資產,並允許人們進行交易。 + +例如,區塊鏈收集遊戲[Cryptokitties](https://www.cryptokitties.co/)實現了不可篡改的代幣,以代表具有不同遺傳信息的不同小貓。 每隻小貓都是獨一無二的,不可互換,因此不同的小貓代幣有不同的價值。 + +要實現不可篡改令牌,可以使用 [KIP-17](https://kips.kaia.io/KIPs/kip-17)。 KIP-17 令牌合約執行以下接口。 請注意,[KIP-13](https://kips.kaia.io/KIPs/kip-13) 必須同時執行。 對於錢包應用,可執行 [錢包接口](https://kips.kaia.io/KIPs/kip-17#wallet-interface)。 + +```solidity +// IKIP17 +event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); +event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); +event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); + +function balanceOf(address _owner) external view returns (uint256); +function ownerOf(uint256 _tokenId) external view returns (address); +function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) external payable; +function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; +function transferFrom(address _from, address _to, uint256 _tokenId) external payable; +function approve(address _approved, uint256 _tokenId) external payable; +function setApprovalForAll(address _operator, bool _approved) external; +function getApproved(uint256 _tokenId) external view returns (address); +function isApprovedForAll(address _owner, address _operator) external view returns (bool); + +// IKIP17Metadata (optional) +function name() external view returns (string _name); +function symbol() external view returns (string _symbol); +function tokenURI(uint256 _tokenId) external view returns (string); + +// IKIP17Enumerable (optional) +function totalSupply() external view returns (uint256); +function tokenByIndex(uint256 _index) external view returns (uint256); +function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256); + +// IKIP17Mintable (optional) +function mint(address _to, uint256 _tokenId) public returns (bool); +function isMinter(address _account) public view returns (bool); +function addMinter(address _account) public; +function renounceMinter() public; + +// IKIP17MetadataMintable (optional) +function mintWithTokenURI(address _to, uint256 _tokenId, string memory _tokenURI) public returns (bool); +function isMinter(address _account) public view returns (bool); +function addMinter(address _account) public; +function renounceMinter() public; + +// IKIP17Burnable (optional) +function burn(uint256 _tokenId) public; + +// IKIP17Pausable (optional) +event Paused(address _account); +event Unpaused(address _account); +function paused() public view returns (bool); +function pause() public; +function unpause() public; +function isPauser(address _account) public view returns (bool); +function addPauser(address _account) public; +function renouncePauser() public; +``` + +在上述界面的基礎上,開發者可以通過添加新功能和邏輯來定製令牌,並將其部署到 Kaia 網絡上。 + +更多信息,請參閱官方 [KIP-17 文檔](https://kips.kaia.io/KIPs/kip-17)。 + +- 實施示例見 [https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP17/KIP17.sol](https://github.com/kaiachain/kaia-contracts/blob/main/contracts/KIP/token/KIP17/KIP17.sol)。 + +## Kaia 服務鏈的令牌標準 + +服務鏈指的是錨定 Kaia 主區塊鏈網絡的 Kaia 側鏈。 在實施服務鏈時,要使用特殊類型的合同來支持主鏈和服務鏈之間的價值轉移。 這些合約目前正在開發中,一旦準備就緒,Kaia 服務鏈的令牌規格將在 KaiaDocs 上提供。 + +## 關於 ERC-20 和 ERC-721 的說明 + +由於 Kaia 發佈了 KIP-7 和 KIP-17 作為其代幣標準,因此建議分別根據 KIP-7 和 KIP-17 執行可替換和不可替換代幣合約,而不是遵循 ERC-20 和 ERC-721。 +KIP-7 和 KIP-17 基於 ERC-20 和 ERC-721,但它們是為 Kaia 量身定製的,因此更適合 Kaia 生態系統。 儘管 Kaia 網絡仍然支持 ERC-20 和 ERC-721,但它們可能與 Kaia 生態系統中的各種工具不兼容。 +有關令牌標準差異的更多信息,請訪問 [KIP-7](https://kips.kaia.io/KIPs/kip-7#differences-with-erc-20) 和 [KIP-17](https://kips.kaia.io/KIPs/kip-17#differences-from-erc-721)。 From 4a8b02c35391fadeefec161b1d7cb1e3cb68f134 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:51:59 +0800 Subject: [PATCH 0100/2513] New translations block-explorers.md (Chinese Traditional) --- .../smart-contracts/verify/block-explorers.md | 248 ++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md new file mode 100644 index 000000000000..54d570b8f790 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/block-explorers.md @@ -0,0 +1,248 @@ +--- +sidebar_label: 使用積木探索器 +--- + +# 如何使用區塊探索器驗證智能合約 + +## 導言 + +通常情況下,智能合約的部署者是唯一能接觸到實際部署代碼的一方,在部署者驗證之前,公眾無法讀取合約的源代碼。 然而,這正是合約驗證作為智能合約開發週期中一個重要步驟的作用所在,因為它有助於提高已部署合約的透明度(對用戶而言)、便利性(對開發者而言)和安全性。 + +儘管如此,一旦智能合約得到驗證,Kaiascope 和 Kaiascan 等區塊探索器還可以讓公眾使用區塊探索器的用戶界面與合約的公共方法進行交互。 除此之外,公眾還可以直接訪問經過驗證的合同源代碼。 + +在本指南中,我們將瞭解如何使用區塊探索器驗證 Kaia 網絡上部署的智能合約。 + +## 先決條件 + +- [Remix IDE](https://ide.kaia.io/)和[Kaia 錢包](https://docs.kaiawallet.io/getting_started/quick_start#install-kaia-wallet) +- 從 [水龍頭](https://faucet.kaia.io) 測試 KAIA 是否足夠 + +## 開始 + +在本指南中,我們將介紹在 Kaia 生態系統中存在的區塊探索器上驗證單個合約和多部分合約的方法,這些探索器是: + +- [Kaiascope](https://kaiascope.com/) +- [Kaiascan](https://www.kaiascan.io/) + +廢話不多說,讓我們開始吧! + +## 部署單一合同 + +要驗證智能合約,首先需要在目標網絡上部署合約。 因此,在本指南中,我們將把合同部署到 Kaia Kairos Testnet。 此外,在本教程中,我們將在 Remix IDE 上部署一個名為 "Counter.sol "的簡單計數器合約。 代碼如下所示: + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; +contract Counter { + uint256 public count; + constructor(uint256 _initialCount) { + count = _initialCount; + } + function incrementCounter() public { + count++; + } + function decrementCounter() public { + count--; + } + function resetCounter() public { + count = 0; + } +} +``` + +:::note + +您可以在此頁面查看 Kaia Kairos Testnet 上使用 [libaries](../../../references/sdk/sdk.md)部署智能合約的教程。 您也可以使用 [Hardhat](../../get-started/hardhat.md), [Foundry](../deploy/foundry.md), [Remix](../deploy/deploy.md#remix-ide) 等開發工具或其他工具,將智能合約部署到 Kaia Kairos Testnet。 + +::: + +## 單一合同核查參數 + +在區塊探索器上驗證合約需要一些參數,在部署智能合約時必須考慮這些參數。 以下是與合同編譯器和部署有關的一些細節,以便成功驗證合同: + +Remix IDE : + +- 在 Remix IDE 上,導航至**Solidity 編譯器選項卡**。 + + - 觀察用於編譯和部署合同的 \*\* 編譯器版本\*\*。 + - 注意合同中使用的**開源許可類型**。 這意味著在 Solidity 源文件開頭使用的 SPDX 許可證標識符。 在 `Counter.sol` 文件中,我們使用了 `// SPDX-License-Identifier:MIT` + - 注意用於部署合同的 **EVM 版本**。 + - (可選)如果在編譯過程中啟用了**優化**,請注意優化運行參數的值 + + ![](/img/build/tutorials/counter-veri-parameters.png) + +- 在 Remix IDE 上,導航至 **Kaia 選項卡**。 + + - (可選) 如果合約構造函數方法接受參數,請注意構造函數參數的[ABI-編碼形式](https://docs.soliditylang.org/en/develop/abi-spec.html) + - 成功部署後,在**已部署合約**選項卡上記下智能合約的合約地址。 + + ![](/img/build/tutorials/counter-veri-parametersII.png) + +## 部署多部分合同 + +值得注意的是,部署多部分合同的步驟與部署單部分合同的步驟相同。 在本指南中,我們將部署一個名為 `airdropToken.sol` 的簡單 KIP7 空投合約。 代碼如下所示: + +```solidity +//SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; +import "@kaiachain/contracts/KIP/token/KIP7/KIP7.sol"; +import "@kaiachain/contracts/access/Ownable.sol"; +// the creator of the project mints certian amount of fungible tokens directly to a certain selection of wallets. +contract TokenAirdrop is KIP7, Ownable { + constructor() KIP7("Token Aidrop Demo", "TAD") { + } + // Airdrop Token + function airdropTokens(address[] calldata wAddresses, uint[] calldata tAmount) public onlyOwner { + require(wAddresses.length == tAmount.length, "Must be same lenght"); + for (uint256 i = 0; i < wAddresses.length; i++) { + _mintSingleTokens(wAddresses[i], tAmount[i]); + } + } + function _mintSingleTokens(address wAddress, uint amount) private { + _mint(wAddress, amount); + } + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override + returns (bool) + { + return + super.supportsInterface(interfaceId); + } +} +``` + +## 多部分合同核查參數 + +驗證多部分合同的參數與驗證單部分合同的參數相同。 但是,由於它們是由多個從屬合同組成的,我們需要將合同的所有從屬關係預處理成一個單一的 solidity 文件。 這種預處理通常被稱為智能合約扁平化。 + +因此,我們必須將合約扁平化,以便在區塊資源管理器上使用新的扁平化 Solidity 文件進行驗證。 + +Remix IDE: + +- 在 Remix IDE 上,導航至**文件資源管理器選項卡**。 + + - 在**合同**文件夾下選擇新創建的合同 + - 點擊或用雙指輕點,即可查看合同上的所有可用命令。 + - 選擇 \*\* 壓平\*\* + + ![](/img/build/tutorials/airdropToken-flattened.png) + + - 一旦代碼被扁平化,你將看到一個名為 `airdropTokens_flattened.sol` 的新合約。 + + ![](/img/build/tutorials/airdropToken-flattened-file.png) + +:::note + +有不同的工具可以將多部分智能合約扁平化為一個單一的 Solidity 文件,如 [Hardhat Flattener](https://hardhat.org/hardhat-runner/docs/advanced/flattening)。 請參閱相關智能合約扁平化工具的文檔,瞭解更詳細的使用說明。 + +::: + +## 核實合同 + +在獲得所有驗證參數後,我們將在本節中詳細介紹在區塊資源管理器上驗證單一智能合約(Counter.sol)和多部分智能合約(airdropTokens.sol)的步驟。 + +### 1. Kaiascope + +要在 Kaiascope 上驗證單份合同和多份合同,請按以下步驟操作: + +#### 1.1 驗證單一合同 + +1. 進入 [Kaiascope](https://kairos.kaiascope.com)的搜索欄,粘貼已部署的合同地址。 +2. 導航至該頁面上的**合同選項卡**。 +3. 單擊**匹配合同源代碼**鏈接,提交合同代碼以供驗證。 + +![](/img/build/tutorials/counter-contract-tab.png) + +4. 在合同驗證頁面,確保您的賬戶已連接到 Kaia 錢包或 Metamask。 在本指南中,我們將使用 Kaia 錢包。 +5. 在**合同地址欄**中填寫合同地址。 注:該字段通常會自動填寫合同地址。 +6. 選擇 "Counter.sol "示例使用的**編譯器版本**。 +7. 選擇用於 "Counter.sol "示例的**開源許可類型**。 在 "Counter.sol "示例中,選擇 "**MIT License (MIT)**" 選項。 如果沒有使用許可證,請選擇 **無許可證(無)**。 +8. 在**源代碼字段**中,選擇**源文本**,然後在文本字段中粘貼 "Counter.sol "的源代碼。 +9. 如果在編譯過程中啟用了**優化**,則為**優化**選擇**真**,並在**優化運行**下填寫運行次數為**200**。 +10. 為合同選擇 **EVM 版本**。 以 "Counter.sol "為例,選擇 "**伊斯坦布爾**"選項。 +11. 點擊底部的驗證碼和**簽名並提交**按鈕,確認並開始驗證。 + +![](/img/build/tutorials/counter-verification-page.png) + +12. 簽署驗證請求後,您將收到驗證狀態通知 + +![](/img/build/tutorials/counter-success-popup.png) + +13. 驗證完成後,瀏覽器將顯示驗證結果,並顯示包含合同地址的成功結果頁面。 點擊合同地址,查看**合同源代碼**、**合同 ABI**和**字節碼**。 + +![](/img/build/tutorials/counter-success-popup-I.png) + +![](/img/build/tutorials/counter-full-verification.png) + +#### 1.2 驗證多部分合同 + +在 Kaiascope 上驗證多部分合同與驗證單部分合同一樣簡單,只是需要一些額外的步驟。 在本節中,我們將通過以下額外步驟驗證 `airdropToken.sol` 合約: + +- 您可以在**源代碼**下選擇**源文本**(Counter.sol 示例的第 3 步),或在**源代碼**字段下選擇**合併文件**。 在**源文本**的情況下,複製 "airdropToken_flattened.sol "中的代碼並將其粘貼到文本字段中。 如果**固化文件**,可在 Remix IDE 上下載`airdropToken_flattened.sol`文件並上傳到字段。 + +a. 來源文本 + +![](/img/build/tutorials/airdrop-veri-field-I.png) + +b. 固體文件 + +![](/img/build/tutorials/airdrop-veri-field-II.png) + +在此之後,其他所有步驟都與驗證單個合同相同。 填寫驗證參數後,點擊**簽署並提交**按鈕進行確認並開始驗證。 + +驗證完成後,瀏覽器將顯示驗證結果,並顯示包含合同地址的成功結果頁面。 點擊合同地址,查看**合同源代碼**、**合同 ABI**和**字節碼**。 + +![](/img/build/tutorials/airdrop-success-popup.png) + +![](/img/build/tutorials/airdrop-success-popup-I.png) + +![](/img/build/tutorials/airdrop-full-verification.png) + +### 2. Kaiascan + +要在 Kaiascan 上驗證單個合同和多部分合同,請瀏覽[合同提交申請頁面](https://kairos.kaiascan.io/contract)。 + +:::note + +目前,Kaiascan 上的合同驗證還處於測試階段。 + +::: + +![](/img/build/tutorials/kaiascan-con-sub-page.png) + +#### 2.1 核查單一合同 + +1. 填寫已部署合同的**合同地址** (Counter.sol) +2. 選擇 "Counter.sol "示例使用的**編譯器版本** +3. 選擇用於 "Counter.sol "示例的**開源許可類型**。 在 "Counter.sol "示例中,選擇 "**MIT License (MIT)**" 選項。 如果沒有使用,請選擇 **無許可證(無)** +4. 確保從 Remix IDE 下載 "Counter.sol",並將其上載到\*\*源代碼(Solidity 文件)\*\*字段中。 +5. 為合同選擇 **EVM 版本**。 以 "Counter.sol "為例,選擇 "**伊斯坦布爾**"選項。 +6. 如果在編譯過程中啟用了**優化**,則為**優化**選擇**真**,並在**優化運行**下填寫運行次數為**200**。 +7. (可選)要獲取該字段的 ABI 編碼構造函數參數,請訪問 [abi.hashex.org](http://abi.hashex.org),獲取下圖所示的編碼數據: + +![](/img/build/tutorials/abi-hashex.png) + +8. 點擊**驗證和發佈**按鈕開始驗證。 + +![](/img/build/tutorials/counter-k-verification-page.png) + +9. 驗證完成後,您將收到**提交成功**信息。 現在,您可以在資源管理器搜索欄中粘貼合同地址,查看**合同源代碼**、**合同 ABI**、**創建代碼**和**ABI 編碼值**。 + +> ![](/img/build/tutorials/counter-k-full-verification.png) + +### 2.2 驗證多部分合同 + +在 Kaiascan 驗證多部分合同的步驟與驗證單個合同相同。 不過,需要注意的是,由於 Kaiascan 目前不支持上傳文件進行驗證,我們將在**下面輸入 Solidity 合同代碼**字段中複製並粘貼 "airdropToken_flattened.sol "文件。 + +![](/img/build/tutorials/airdrop-k-verification-page.png) + +填寫驗證參數後,點擊**驗證和發佈**按鈕開始驗證。 驗證完成後,驗證頁面將刷新。 現在,您可以在資源管理器搜索欄中粘貼合同地址,查看**合同源代碼**、**合同 ABI**和**創建代碼**。 + +![](/img/build/tutorials/airdrop-k-full-verification.png) + +## 結論 + +恭喜您遵循本指南! 在本教程中,您將學習如何使用 Kaiascope 和 Kaiascan 來驗證合同(單部分和多部分),以提高部署合同的透明度(對用戶)、便利性(對開發人員)和安全性。 如需瞭解更多信息,請訪問 [Kaia 文檔](https://docs.kaia.io/);如有任何問題,請訪問 [Kaia 論壇](https://devforum.kaia.io/)。 From 49e9fcfacab05f744790846d1bcdb19deb06238f Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:01 +0800 Subject: [PATCH 0101/2513] New translations hardhat.md (Chinese Traditional) --- .../build/smart-contracts/verify/hardhat.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md new file mode 100644 index 000000000000..c607c7cd4391 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/smart-contracts/verify/hardhat.md @@ -0,0 +1,88 @@ +--- +sidebar_label: 使用硬頭盔 +--- + +# 如何使用 Hardhat 驗證智能合約 + +本指南允許您使用Hardhat Verify Plugin直接從 CLI 在 Kaiascope 上自動驗證智能合約的源代碼。 + +要在 klaytn 上驗證您的合同,您需要在`hardhat.config.js`中添加以下配置: + +## 主網 + +``` +module.exports = { + networks:{ + kaia: { + chainId:8217, + url:"RPC_URL", + }, + }, + etherscan:{ + apiKey:{ + kaia: "unnecessary", + }, + customChains:[ + { + network:"kaia", + chainId:8217, + urls:{ + apiURL:"https://api-cypress.klaytnscope.com/api", + browserURL:"https://kaiascope.com/", + }, + }, + ]。 + } +} + +``` + +## Kairos + +``` +module.exports = { + networks: { + kairos: { + chainId: 1001, + url: "RPC_URL", + }, + }, + etherscan: { + apiKey: { + kairos: "unnecessary", + }, + customChains: [ + { + network: "kairos", + chainId: 1001, + urls: { + apiURL: "https://api-baobab.klaytnscope.com/api", + browserURL: "https://kairos.kaiascope.com", + }, + }, + ] + } +} +``` + +要驗證合同,您需要運行驗證命令,並輸入已部署合同的地址、網絡和參數(如有) 。 + +```bash +npx hardhat verify -network + +// example + +npx hardhat verify --network kairos 0x131b54E65c99d34BCA738F29051fDAceEa91C969 1000000000000000 +``` + +在您的終端中,您應該可以看到您的合同源代碼已成功提交驗證。 如果驗證成功,您應看到 "成功驗證合同",並在 +[Kaiascope] (https://kairos.kaiascope.com/account/0x131b54E65c99d34BCA738F29051fDAceEa91C969?tabId=contractCode) 上有一個指向合同代碼的鏈接。 + +![](/img/build/smart-contracts/verify/terminal-hh-verify-ss.png) + +![](/img/build/smart-contracts/verify/scope-hh-verify-ss.png) + +## 實用鏈接 + +- [Hardhat驗證插件配置](https://docs.klaytnscope.com/contract/configuration-for-hardhat-verify-plugin) +- [在 Kaiascope 上使用 Hardhat 驗證合同](https://klaytn.foundation/verifying-contracts-using-hardhat-on-klaytnscope) From bf7caa024a1937f9730343f21dfdf1865c3957b6 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:20 +0800 Subject: [PATCH 0102/2513] New translations block-explorers.md (Chinese Traditional) --- .../build/tools/block-explorers/block-explorers.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md new file mode 100644 index 000000000000..d95081cf5307 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/block-explorers.md @@ -0,0 +1,9 @@ +# 積木探險家 + +該區塊鏈工具使用戶和愛好者能夠搜索有關區塊鏈的即時和歷史信息。 Kaia 上的區塊探索器包含有關 Kaia 的信息,因此用戶可以搜索 Kaia 上的區塊、交易、餘額、地址和合約。 + +由 Kaia 支持的探險家名單如下: + +- [Kaiascope](https://kaiascope.com/) +- [Kaiascan](https://www.kaiascan.io/) +- [OKX Kaia Explorer](https://www.okx.com/web3/explorer/kaia) From 41445817ba78632b7a5c670c6ffa7a1b02f61ed6 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:21 +0800 Subject: [PATCH 0103/2513] New translations kaiascope.md (Chinese Traditional) --- .../build/tools/block-explorers/kaiascope.md | 232 ++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md new file mode 100644 index 000000000000..117e8afc0284 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/block-explorers/kaiascope.md @@ -0,0 +1,232 @@ +# Kaiascope + +Kaiascope 是 Kaia 網絡的區塊資源管理器。 Kaiascope 通過監控網絡健康狀況和提供 Kaia 網絡的各種統計數據,讓您深入瞭解 Kaia 網絡。 您還可以查看 Kaia 網絡上的區塊和交易數據以及智能合約列表。 + +- 有關 Kairos 網絡,請訪問 [https://kairos.kaiascope.com](https://kairos.kaiascope.com) +- 有關主網,請訪問 [https://kaiascope.com/](https://kaiascope.com/) + +![](/img/build/tools/scope_01_main.png) + +## 主要特點 + +請注意,部分功能正在開發中。 + +- 網絡概覽 +- 區塊搜索 +- 交易搜索 +- 賬戶搜索 +- 事件日誌搜索 +- 整塊提案人信息 + +在隨後的章節中,我們將參觀 Kaiascope 的主要功能和屏幕截圖。 功能分為四類:儀表盤、列表視圖、詳細視圖和搜索。 + +## 儀錶板 + +網絡信息顯示在儀錶板中。 這些信息包括平均區塊生成時間、區塊中的平均交易數量、共識節點數量以及交易的最新趨勢。 + +![](/img/build/tools/scope_02_main_indicator.png) + +- 區塊高度:最新的區塊高度。 它顯示了自創世以來已經生成了多少區塊。 +- 網絡性能:它通過四項指標顯示 Kaia 的網絡性能。 + - 共識節點:上圖顯示有 15 個節點參與了共識過程。 + - 平均塊生成時間(1 小時):顯示過去一小時內生成數據塊的平均時間。 + - 平均塊生成時間(24 小時):它顯示了過去 24 小時內生成數據塊的平均時間。 + - Avg TX Per Block (24 小時):過去 24 小時內包含在一個數據塊中的平均交易次數。 +- 交易歷史(14 天):圖表顯示過去 14 天內的每日交易次數。 您可以看到過去兩週交易量的變化趨勢。 + +### 最近的區塊和交易 + +這些列表分別顯示最近創建的區塊和事務。 點擊窗格右上角的刷新按鈕,即可獲得最新信息。 在列表底部,單擊 "查看全部 "按鈕將進入[列表視圖](#list-view)。 + +![](/img/build/tools/scope_03_main_list.png) + +### 網絡狀態和網絡選擇器 + +![](/img/build/tools/network_status.gif) + +網站右上角有網絡狀態指示燈和網絡選擇器下拉菜單。 + +- 網絡狀態指示燈 + - 網絡正常:Kaiascope 正常運行。 網絡狀態正常。 + - 數據延遲:Kaiascope 正在進行系統維護。 數據處於延遲狀態。 + - 數據準確性:Kaiascope 正在同步數據,請稍候。 +- 網絡選擇器下拉菜單 + - 您可以從菜單中選擇 Kaia 主網和 Kairos 測試網。 + +## 列表查看 + +如果您想進一步瞭解 Kaia 網絡的狀態,可以查看最近生成的區塊和交易列表。 要訪問列表頁面,請單擊屏幕左側導航欄上的按鈕。 + +### 塊 + +![](/img/build/tools/scope_04_block_list.png) + +最近生成的區塊列表。 要更新信息,請點擊刷新。 + +- 區塊:區塊的唯一編號。 從零開始(創世區塊),每次生成一個區塊時都會依次給出。 +- 時間:區塊生成後的持續時間。 您可以通過鼠標懸停來查看確切的日期和時間。 +- TX 總數:區塊中包含的交易總數。 +- 區塊提議者:隨機但確定地選擇提出區塊的共識節點。 點擊地址,即可輕鬆進入詳情頁面。 +- 獎勵:新鑄幣的 KAIA (9.6 KAIA/)和區塊中使用的交易費的總和。 列表僅顯示 Kaia 治理委員會獎勵、貢獻證明和 Kaia 生態系統基金的總和。 將鼠標懸停在區塊詳情頁面上的區塊獎勵部分,即可查看詳細信息。 有關區塊獎勵分配系統的更多詳情,請參閱\[Kaia 代幣經濟]。 +- 大小:數據塊的大小,以字節為單位。 包含的交易越多,區塊大小就越大。 + +### 交易 + +![](/img/build/tools/scope_05_tx_list.png) + +最近執行的事務列表。 要更新信息,請點擊刷新。 + +- TX 哈希值:交易的唯一標識符。 如需瞭解更多信息,請點擊散列進入詳細頁面。 如果交易失敗,旁邊會出現一個紅色感嘆號。 +- Block \#: 包含此交易的區塊編號。 點擊號碼後,您將進入該區塊的詳細信息頁面。 +- 時間:交易執行後的持續時間。 您可以通過鼠標懸停來查看確切的日期和時間。 +- 發件人 -> 收件人:發件人和收件人的地址。 點擊地址,即可輕鬆進入詳情頁面。 如果文件圖標顯示在地址旁邊,則表示該地址是一份合同。 +- TX 類型:交易類型。 您可以使用過濾器來獲取特定類型的交易。 更多信息,請訪問 \[交易]。 +- 金額:通過交易轉移的價值量。 +- TX 費用:處理交易的實際費用。 + +## 詳細查看 + +有關單個區塊、交易、賬戶和合約的詳細信息,請參見本頁。 要轉到詳細信息視圖,可以從搜索欄中搜索實體,或從列表視圖中單擊項目。 + +### 街區 + +![](/img/build/tools/scope_08_block_detail.png) + +#### 概述 + +區塊的總體信息。 + +- 時間: 生成區塊後的時間。 旁邊還會顯示確切的日期時間。 +- 哈希值:區塊的唯一標識符。 按下複製按鈕,就可以輕鬆複製哈希值。 +- 父哈希值:前一個區塊的唯一標識符。 點擊散列可進入父散列的詳細視圖。 +- TX 總數:區塊中包含的交易總數。 +- 區塊獎勵:新鑄幣的 KAIA (9.6 KAIA/)和區塊中收取的交易費的總和。 將鼠標懸停,您將看到有關 Kaia 治理委員會獎勵、貢獻證明和 Kaia 生態系統基金的詳細信息。 有關區塊獎勵分配系統的更多詳情,請參閱\[Kaia 代幣經濟]。 +- 數據塊大小:數據塊的大小(以字節為單位)。 包含的交易越多,區塊大小就越大。 + +#### 委員會 + +提出並驗證區塊的共識節點列表。 + +- 區塊提議者:隨機但確定地選擇提出區塊的共識節點。 點擊地址,就可以輕鬆進入節點的詳細視圖。 +- 驗證者:驗證區塊的共識節點。 點擊地址,就可以輕鬆進入節點的詳細視圖。 + +#### 交易 + +區塊中包含的交易列表。 + +### 交易 + +![](/img/build/tools/scope_09_tx_detail.png) + +#### 概述 + +交易的總體信息。 + +- 狀態指示器:在右上角。 交易是否成功的指標。 +- TX 類型:交易類型。 更多信息,請參閱 \[交易]。 +- Block \#:包含此交易的區塊編號。 點擊數字可進入區塊的詳細視圖。 +- 發件人 -> 收件人:發件人和收件人的地址。 點擊地址,即可進入賬戶的詳細視圖。 如果地址旁邊顯示文件圖標,則表示該地址已簽約。 +- 費用支付人:當 TX 類型為 "收費委託 "或 "按比例收費委託 "時顯示。 點擊繳費人地址後,即可進入賬戶的詳細視圖。 +- Time(時間):交易執行後的時間。 +- Nonce:發件人地址發送的交易編號。 從零開始,每次發送交易時,它都會依次增加。 +- 金額:本次交易中轉移的價值金額。 +- 天然氣價格:單位為 KAIA 的天然氣成本。 在 Kaia 網絡中,天然氣價格是固定的。 +- 使用的氣體:執行交易時使用的確切氣體。 +- 汽油限額:發件人願意為此次交易支付的最大汽油量。 +- TX 費用:處理交易的實際費用。 計算方法:天然氣價格乘以天然氣用量。 +- 發件人 TX 費用:當 TX 類型為帶比率的收費委託時顯示。 發件人支付的 TX 費用部分。 +- TX 費用(按費用支付方):TX 類型為按比例收費委託時顯示。 TX 費用中由付費者支付的部分。 + +#### 輸入數據 + +發件人或合同提供的額外數據。 + +### 賬戶 + +![](/img/build/tools/scope_10_account_detail.png) + +#### 概述 + +賬戶的總體信息。 + +- 地址(Hex\ ):賬戶的唯一地址。 +- 餘額:該賬戶擁有的 KAIA 總額。 +- TX 總數:該賬戶發送或接收的交易總數。 + +#### 交易 + +與該賬戶相關的交易列表。 箭頭的顏色表示賬戶是發送方還是接收方。 + +### 合同 + +![](/img/build/tools/scope_11_contract_detail.png) + +#### 概述 + +合同的總體信息。 + +- Account\(Hex\):合同的唯一地址。 +- 餘額:該合同的 KAIA 總金額。 +- 合同創建者:部署此合同的賬戶。 點擊地址,即可進入賬戶的詳細視圖。 +- TX 總數:該合同收到的交易總數。 +- 合同創建 TX:部署此合同的交易。 點擊哈希值可進入交易的詳細視圖。 + +#### 交易 + +與本合同有關的交易清單。 + +## 搜索 + +通過 Kaiascope,您可以搜索有關賬戶、合約、交易和區塊的信息。 搜索欄位於每個頁面上,方便用戶訪問。 輸入一個有效的關鍵字,就可以進入實體的詳細視圖。 + +![](/img/build/tools/scope_06_search.png) + +### 搜索關鍵詞 + +在主網版本中,可搜索的關鍵字如下: + +- 區塊 +- 德克薩斯州哈希 +- Address (賬戶,合同) + +### 關鍵詞格式 + +每個關鍵詞的獨特特徵如下: + +#### 街區 + +- 僅限十進制數 \[0~9\] + +#### 德克薩斯州哈希 + +- 66 個字符長 +- 以前綴 `0x` 開頭 +- 僅限十六進制數 ([0~9, a~f\] + +#### 地址 + +- 42 個字符長 +- 以前綴 `0x` 開始 +- 僅限十六進制數 ([0~9, a~f\] + +### 搜索錯誤 + +![](/img/build/tools/scope_07_noresult.png) + +如果搜索的關鍵字不符合指定格式或信息尚未生成,則不會出現任何數據。 + +#### 錯誤格式 (TX Hash / Address\) + +- 字符數錯誤 +- 不以前綴 `0x` 開頭 +- 包含特殊字符或非十六進制字符 + +#### 不存在 + +- 尚未生成的區塊(如果輸入的區塊編號高於最近生成的區塊編號) +- 不存在 TX 哈希值 + +[Transactions]: ../../../learn/transactions/transactions.md +[Kaia Token Economy]: ../../../learn/token-economy.md + +//scope_04_block_list From 516cc0fd15535ad0870a74f288896311f27e1195 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:23 +0800 Subject: [PATCH 0104/2513] New translations cross-chain.md (Chinese Traditional) --- .../build/tools/cross-chain/cross-chain.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md new file mode 100644 index 000000000000..8e2d56a1f1fa --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/cross-chain/cross-chain.md @@ -0,0 +1,24 @@ +# 跨鏈互操作性 + +跨鏈互操作性協議旨在將原本孤立和獨立的區塊鏈網絡連接起來。 這些協議使不同的鏈能夠互動,讓流動性和狀態在它們之間流動。 通過建立在不同區塊鏈網絡之間傳輸資產和數據的規則和流程,跨鏈互操作性協議促進了原本獨立的系統之間的無縫協作和信息交換。 + +## 範圍廣泛的跨鏈解決方案 + +跨鏈互操作性是一個包含各種技術的綜合概念: + +1. **跨鏈消息協議**:這些協議可實現廣泛的互操作性,支持數據交換和跨鏈智能合約執行等多種操作。 + +2. **跨鏈橋樑**:跨鏈橋是跨鏈解決方案的一個特定子集,主要側重於鏈之間的資產轉移。 它們在連接不同區塊鏈生態系統中的資產方面發揮著至關重要的作用,但與一般的消息傳遞協議相比,它們的功能更為專業。 + +## 凱亞的兼容性 + +Kaia 網絡目前與領先的跨鏈解決方案兼容,增強了其在更廣泛的區塊鏈環境中的連接性。 Kaia 目前支持以下功能: + +### 跨鏈消息傳遞協議 + +- [LayerZero](https://layerzero.network/) +- [蟲洞](https://wormhole.com/) + +### 跨鏈橋樑 + +- [星際之門](https://stargate.finance/) From 0efe4a5961cf7b002781cb10701eaae16be34fe3 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:24 +0800 Subject: [PATCH 0105/2513] New translations indexers.md (Chinese Traditional) --- .../current/build/tools/indexers/indexers.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md new file mode 100644 index 000000000000..fbc0d460e357 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/indexers.md @@ -0,0 +1,8 @@ +# Indexers + +區塊鏈索引器是區塊鏈技術中使用的工具,用於提高搜索、查詢和訪問存儲在區塊鏈上的數據的效率和速度。 它們創建並維護區塊鏈數據的有序數據庫,使用戶能夠快速檢索信息,而無需從頭開始處理整個區塊鏈。 + +以下供應商已與 Kaia 集成,提供區塊鏈索引服務: + +- [圖表](https://thegraph.com/) +- [SubQuery Network](https://academy.subquery.network/) From a51975e96bc4ddc056a188173baca2c4d001fb45 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:25 +0800 Subject: [PATCH 0106/2513] New translations subquery.md (Chinese Traditional) --- .../current/build/tools/indexers/subquery.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md new file mode 100644 index 000000000000..457991d652a7 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/indexers/subquery.md @@ -0,0 +1,38 @@ +--- +sidebar_label: SubQuery +--- + +# SubQuery多鏈索引器 + +SubQuery 是領先的區塊鏈數據索引器,為開發人員的 Web3 項目提供快速、靈活、通用、開源和去中心化的 API。 SubQuery SDK 允許開發人員獲取豐富的索引數據,並以更快、更高效的方式構建直觀、身臨其境的去中心化應用程序。 SubQuery 支持 100 多個生態系統,包括 Kaia 的 EVM、Cosmos、以太坊、Polygon、Polkadot、Algorand、NEAR 和 Avalanche。 + +SubQuery 的另一個競爭優勢是,它不僅能在一個鏈上彙總數據,還能在一個項目中彙總多個區塊鏈上的數據。 這樣就可以創建功能豐富的儀表盤分析或多鏈塊掃描儀。 + +其他優勢還包括多個 RPC 端點配置的卓越性能、多工作站功能和可配置的緩存架構。 要了解更多信息,請訪問我們的 [文檔](https://academy.subquery.network/)。 + +## 開始 + +看看這個[SubQuery 入門項目](https://github.com/subquery/ethereum-subql-starter/tree/main/Kaia/klaytn-starter),它通過索引來自 Kaia Network 上 Orbit ETH 的所有轉賬和批准事件,介紹了 SubQuery 對 Kaia 的支持。 + +你也可以跟著這個 [step by step guide](https://academy.subquery.network/quickstart/quickstart.html) 來熟悉 SubQuery,或者查看 [Kaia x SubQuery workshop](https://www.youtube.com/watch?v=40R5O1kL3v4) 來觀看實際演示。 + +## 運行和託管 Kaia 子查詢 API + +SubQuery 是開源的,這意味著你可以通過以下三種方式自由運行它: + +- 在您自己的電腦上或您選擇的雲服務提供商上運行。 查看如何在本地運行 SubQuery 的說明 [此處](https://academy.subquery.network/run_publish/run.html)。 + +您可以將其發佈到 SubQuery 的企業級 [託管服務](https://managedservice.subquery.network/login),我們將在生產準備就緒的服務中託管您的 SubQuery 項目,為關鍵任務數據提供零停機時間的藍色/綠色部署。 甚至還有慷慨的免費層級。 [瞭解方法](https://academy.subquery.network/run_publish/publish.html)。 + +您可以將其發佈到去中心化的 SubQuery 網絡,這是面向 dApp 開發人員的最開放、性能最好、最可靠和可擴展的數據服務。 SubQuery 網絡以激勵和可驗證的方式為全球社區提供數據索引和服務,並從 Kaia 推出之初就為其提供支持。 + +## 資源 + +下面是一些幫助您開始使用 SubQuery 的其他資源: + +- [子查詢網站](https://subquery.network/?utm_source=klaytn\&utm_medium=partner-docs) +- [文件](https://academy.subquery.network/?utm_source=klaytn\&utm_medium=partner-docs) +- [SubQuery Kaia 支持公告](https://subquery.medium.com/subquerys-data-indexing-supports-builders-on-klaytn-e5a3aec4bc14?utm_source=klaytn\&utm_medium=partner-docs) +- [Kaia快速啟動](https://academy.subquery.network/quickstart/quickstart_chains/klaytn.html/?utm_source=klaytn\&utm_medium=partner-docs) +- [Kaia啟動項目](https://github.com/subquery/ethereum-subql-starter/tree/main/Kaia/klaytn-starter) +- [Discord支持](https://discord.com/invite/subquery/?utm_source=klaytn\&utm_medium=partner-docs) From 6f55337d4bb9a1132eed3d3f5f0c314261120216 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:27 +0800 Subject: [PATCH 0107/2513] New translations kaia-contracts-wizard.md (Chinese Traditional) --- .../build/tools/kaia-contracts-wizard.md | 461 ++++++++++++++++++ 1 file changed, 461 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md new file mode 100644 index 000000000000..9752b799724d --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-contracts-wizard.md @@ -0,0 +1,461 @@ +# Kaia Contracts Wizard + +![](/img/banners/kaia-kcw.png) + +## 導言 + +Kaia 優先考慮提供無縫的開發人員體驗,這也是創建 Kaia 合同嚮導(KCW)的驅動力。 KCW 是一種交互式工具,可讓您毫不費力地啟動智能合約,並利用 [Kaia Contracts](https://github.com/kaiachain/kaia-contracts) 中經過測試的安全組件。 從本質上講,它通過利用 Kaia 合約的組件簡化了智能合約的開發過程。 值得注意的是,Kaia 合約嚮導建立在 OpenZeppelin 嚮導的基礎之上,進一步加強了智能合約開發的安全性。 + +在本指南中,您將 + +- 瞭解 Kaia 合同嚮導的基本功能。 +- 使用 Kaia Contracts Wizard 生成和定製智能合約代碼。 +- 使用 Foundry 腳本系統將 Kaia 合同部署到 Kaia 網絡 (Kairos)。 + +## 探索 Kaia 合同嚮導 + +Kaia Contracts Wizard 將自己定位為使用 Kaia Contracts 編寫智能合約的最快、最簡單的方法。 在本節中,我們將深入瞭解 Kaia 合同嚮導的各個組件和部分。 + +目前,Kaia 合約嚮導支持以下令牌標準: + +- [KIP-7](https://kips.kaia.io/KIPs/kip-7) - 這是 Kaia 的可替代令牌標準。 可互換是指所有代幣都可分割和互換,即具有相同的價值。 可替代代幣的一個典型例子就是法定貨幣,每張等面值的鈔票都具有相同的價值。 +- [KIP-17](https://kips.kaia.io/KIPs/kip-17) - 這是 Kaia 的不可篡改令牌標準。 不可竄改是指每個標記都是不可分割的,因此也是獨一無二的。 KIP17 代幣可以代表一個獨特物品的所有權,無論是實物財產還是虛擬收藏品,如圖片、遊戲中的物品、不動產等。 +- [KIP-37](https://kips.kaia.io/KIPs/kip-37) - 這被稱為 Kaia 的多令牌標準,因為它可以在單個智能合約中同時表示可替換令牌和不可替換令牌。 + +與我們的 [Ethereum Equivalence](https://medium.com/klaytn/toward-ethereum-equivalence-1-introducing-klaytn-v1-8-0-971911be7ff9) 支持一致,Kaia 合約嚮導也支持 [ERC20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)、[ERC721](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/)、[ERC1155](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155/)。 + +Kaia 合同嚮導由以下部分組成: + +- **令牌標準部分**:該選項卡包含 Kaia 合約嚮導支持的所有不同令牌標準。 + +- **設置部分**:該部分提供每個代幣標準的初步設置,如代幣名稱、符號、預鑄幣(合約部署時的代幣供應)和 URI(針對不可兌換代幣)。 + +- **功能部分**:包括每個令牌標準的所有功能。 您可以在以下鏈接中找到更多關於每種令牌可用的不同擴展名的信息: + + - [KIP7](https://github.com/kaiachain/kaia-contracts/tree/master/contracts/KIP/token/KIP7/extensions) + - [KIP17](https://github.com/kaiachain/kaia-contracts/tree/master/contracts/KIP/token/KIP17/extensions) + - [KIP37](https://github.com/kaiachain/kaia-contracts/tree/master/contracts/KIP/token/KIP37/extensions) + +- **訪問控制部分**:包括每個令牌標準的所有可用訪問控制機制。 + +- **交互式代碼顯示部分**:顯示根據用戶設置的配置生成的智能合約代碼。 + +![](/img/build/tools/kcw-image.png) + +在瞭解了 Kaia 合約嚮導的各個部分後,您現在可以選擇想要的合約類型(目前支持 **KIP7**、**KIP17**、**KIP37**、**ERC20**、**ERC721**、**ERC1155**、**Governor** 和自定義合約),設置參數和所需功能(令牌名稱、符號、預鑄幣量、訪問控制等),然後合約嚮導將生成所有必要的代碼。 因此,生成的代碼可以隨時進行編譯和部署,也可以作為起點,通過特定的應用邏輯進行進一步定製。 + +## 在 Kaia 網絡上定製和部署 Kaia 合約 + +在本節中,您將使用 Foundry 將 kaia 合約嚮導生成的代碼部署到 Kaia Testnet Kairos。 生成的代碼將作為起點,並進一步定製,以適應 KIP7 和 KIP17 代幣的空投合約。 而在另一端,生成的 KIP37 代碼將按原樣使用。 + +讓我們開始吧! + +### 先決條件 + +要跟上本教程,先決條件如下: + +- 確保安裝了 [foundry](https://book.getfoundry.sh/getting-started/installation)。 +- 克隆 [klaytn-foundry-starterkit](https://github.com/ayo-klaytn/klaytn-foundry-starterkit) 代碼。 +- [MetaMask](../tutorials/connecting-metamask.mdx#install-metamask):用於部署合約、簽署事務和與合約交互。 +- RPC 端點:您可以從支持的[端點提供程序](../../references/public-en.md)中獲取。 +- 從 [水龍頭](https://faucet.kaia.io)測試 KAIA:為賬戶注入足夠的 KAIA。 + +### 開始 + +本指南將指導您簡單實現 KIP7 和 KIP17 令牌標準的空投合約。 在空投合約中,項目的創建者會直接向特定的錢包鑄造各自的代幣。 在接下來的章節中,我們將分別介紹如何定製和部署每種令牌空投合約。 + +### 定製令牌合約 + +**將 KIP7 合同定製為 KIP7 空投合同。** + +在將 KIP7 合同修改為空投合同之前,您需要對其進行定製。 為此,請按照以下步驟操作: + +1. 導航至 [wizard.klaytn.foundation](https://wizard.klaytn.foundation/)。 +2. 在**合同**選項卡上選擇**KIP7** +3. 下一步是在**設置**選項卡中填寫名稱(KIP7 代幣空投)和符號(KTA)。 鑄幣前區域為空 +4. 隨後,在**功能**選項卡上,勾選**可薄荷**功能框,它就會自動選擇**訪問控制**選項卡上的可擁有功能。 + +進行這些配置後,Kaia 合同嚮導就會變成這樣: + +![](/img/build/tools/kip7-kcw.png) + +以下是生成的代碼: + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; +import "@kaiachain/contracts/KIP/token/KIP7/KIP7.sol"; +import "@kaiachain/contracts/access/Ownable.sol"; +contract KIP7TokenAirdrop is KIP7, Ownable { + constructor() KIP7("KIP7 Token Airdrop", "KTA") {} + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override + returns (bool) + { + return + super.supportsInterface(interfaceId); + } + function mint(address to, uint256 amount) public onlyOwner { + _mint(to, amount); + } +} +``` + +接下來要做的就是修改上面的代碼,以適應我們的空投執行,看起來就像這樣: + +```solidity +//SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; +import "@kaiachain/contracts/KIP/token/KIP7/KIP7.sol"; +import "@kaiachain/contracts/access/Ownable.sol"; +contract KIP7TokenAirdrop is KIP7, Ownable { + constructor() KIP7("KIP7 Token Airdrop", "KTA") { + } + // airdrop fungible token + function airdropTokens(address[] calldata wAddresses, uint[] calldata tAmount) public onlyOwner { + require(wAddresses.length == tAmount.length, "Must be same lenght"); + for (uint256 i = 0; i < wAddresses.length; i++) { + _mintSingleTokens(wAddresses[i], tAmount[i]); + } + } + function _mintSingleTokens(address wAddress, uint amount) private { + _mint(wAddress, amount); + } + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override + returns (bool) + { + return + super.supportsInterface(interfaceId); + } +} +``` + +從上面修改的代碼中可以看到,我們添加了一個名為 `airdropTokens()` 的新函數。 該函數向某些選定的地址鑄造代幣,且只能由合約的創建者--"onlyOwner"--調用。 + +隨後,我們將_公共_ **mint()** _onlyOwner_函數修改為**_mintSingleTokens()** 私有。 + +現在我們已經準備好 KIP7 空投合同代碼,下一步是在項目目錄的 src 文件夾中新建一個名為 airdropKIP7.sol 的文件,並將修改後的代碼粘貼到該文件中。 + +**將 KIP17 合同定製為 KIP17 空投合同。** + +在將 KIP17 合同修改為空投合同之前,您需要對其進行定製。 為此,請按照以下步驟操作: + +1. 導航至 [wizard.klaytn.foundation](https://wizard.klaytn.foundation/)。 +2. 在**合同**選項卡上選擇**KIP17** +3. 下一步是在**設置**選項卡中填寫名稱(KIP7 NFT Airdrop)和符號(KNA)。 基礎 URI 字段應為空。 +4. 隨後,在**特性**選項卡上,勾選**可編輯**、**自動遞增索引**和**可數**特性框。 您會發現**訪問控制**選項卡中的 "可擁有 "功能已被自動選中。 + +進行這些配置後,Kaia 合同嚮導就會變成這樣: + +![](/img/build/tools/kip17-kcw.png) + +以下是生成的代碼: + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; +import "@kaiachain/contracts/KIP/token/KIP17/KIP17.sol"; +import "@kaiachain/contracts/KIP/token/KIP17/extensions/KIP17Enumerable.sol"; +import "@kaiachain/contracts/access/Ownable.sol"; +import "@kaiachain/contracts/utils/Counters.sol"; +contract KIP17NFTAirdrop is KIP17, KIP17Enumerable, Ownable { + using Counters for Counters.Counter; + Counters.Counter private _tokenIdCounter; + constructor() KIP17("KIP17 NFT Airdrop", "KNA") {} + function safeMint(address to) public onlyOwner { + uint256 tokenId = _tokenIdCounter.current(); + _tokenIdCounter.increment(); + _safeMint(to, tokenId); + } + // The following functions are overrides required by Solidity. + function _beforeTokenTransfer(address from, address to, uint256 tokenId) + internal + override(KIP17, KIP17Enumerable) + { + super._beforeTokenTransfer(from, to, tokenId); + } + function supportsInterface(bytes4 interfaceId) + public + view + override(KIP17, KIP17Enumerable) + returns (bool) + { + return super.supportsInterface(interfaceId); + } +} +``` + +接下來要做的就是修改上面的代碼,以適應我們的空投執行,看起來就像這樣: + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; +import "@kaiachain/contracts/KIP/token/KIP17/KIP17.sol"; +import "@kaiachain/contracts/KIP/token/KIP17/extensions/KIP17Enumerable.sol"; +import "@kaiachain/contracts/access/Ownable.sol"; +import "@kaiachain/contracts/utils/Counters.sol"; +contract KIP17NftAirdrop is KIP17, KIP17Enumerable, Ownable { + using Counters for Counters.Counter; + Counters.Counter private _tokenIdCounter; + constructor() KIP17("KIP17 NFT Airdrop", "KNA") {} + // Airdrop NFTs + function airdropNfts(address[] calldata wAddresses) public onlyOwner { + require(wAddresses.length != 0, "Must no be equal to zero"); + for (uint256 i = 0; i < wAddresses.length; i++) { + _mintSingleNFT(wAddresses[i]); + } + } + function _mintSingleNFT(address to) private { + uint256 tokenId = _tokenIdCounter.current(); + _tokenIdCounter.increment(); + _safeMint(to, tokenId); + } + // The following functions are overrides required by Solidity. + function _beforeTokenTransfer(address from, address to, uint256 tokenId) + internal + override(KIP17, KIP17Enumerable) + { + super._beforeTokenTransfer(from, to, tokenId); + } + function supportsInterface(bytes4 interfaceId) + public + view + override(KIP17, KIP17Enumerable) + returns (bool) + { + return super.supportsInterface(interfaceId); + } +} +``` + +從上面修改的代碼中可以看到,我們添加了一個名為 **airdropNfts()** 的新函數。 該函數向某些選定的地址鑄造代幣,並且只能由合約的創建者(onlyOwner)調用。 + +隨後,我們將 **safeMint()** _public onlyOwner_ 函數修改為 **_mintSingleTokens()** **private**。 + +現在我們已經準備好 KIP17 空投合同代碼,下一步是在項目目錄的 src 文件夾中新建一個名為 airdropKIP17.sol 的文件,並將修改後的代碼粘貼到該文件中。 + +**定製 KIP37 合同。** + +由於 KIP37 支持批量鑄幣,我們將只對合同進行定製並按原樣使用。 要定製我們的 KIP37Contract,請按以下步驟操作: + +1. 導航至 [wizard.klaytn.foundation.](https://wizard.klaytn.foundation/) +2. 在**合同**選項卡上選擇**KIP37** +3. 下一步是在**設置**選項卡中填寫名稱(KIP7 NFT Airdrop)和符號(KNA)。 基礎 URI 字段應為空。 +4. 隨後,在**特性**選項卡上,勾選**可編輯**、**自動遞增索引**和**可數**特性框。 您會發現**訪問控制**選項卡中的 "可擁有 "功能已被自動選中。 + +進行這些配置後,Kaia 合同嚮導就會變成這樣: + +![](/img/build/tools/kip37-kcw.png) + +以下是生成的代碼: + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; +import "@kaiachain/contracts/KIP/token/KIP37/KIP37.sol"; +import "@kaiachain/contracts/access/Ownable.sol"; +contract KIP37MultiToken is KIP37, Ownable { + constructor() KIP37("") {} + function setURI(string memory newuri) public onlyOwner { + _setURI(newuri); + } + function mint(address account, uint256 id, uint256 amount, bytes memory data) + public + onlyOwner + { + _mint(account, id, amount, data); + } + function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) + public + onlyOwner + { + _mintBatch(to, ids, amounts, data); + } +} +``` + +現在我們已經準備好 KIP37 合約代碼,下一步是在項目目錄的 src 文件夾中新建一個名為 KIP37MultiToken.sol 的文件,並將生成的代碼粘貼到其中。 + +為所有 Kaia 合同生成合同代碼後,下一步就是使用 Foundry solidity 腳本部署到 Kaia 測試網 Kairos。 + +## 使用 Foundry 腳本部署生成的智能合約代碼 + +在本節中,我們將使用 Foundry 部署生成的智能合約代碼,特別是在鏈上部署的 Foundry 腳本。 + +### 開始 + +在開始使用鑄造時,您一定初步接觸過使用 [forge create](https://book.getfoundry.sh/reference/forge/forge-create.html)來延遲合同的方法。 最近,Foundry 團隊提出了一種使用 Solidity 聲明式部署合約的更友好方法,稱為 [Solidity Scripting](https://book.getfoundry.sh/tutorials/solidity-scripting#solidity-scripting),即用 solidity 而不是 JavaScript 編寫部署腳本。 + +在本節中,我們將在 Foundry 中使用 solidity 腳本部署我們的合約。 + +### 環境配置 + +我們將把生成的智能合約部署到 Kaia Kairos 測試網絡,但為此我們需要對 Foundry 進行一些配置,比如設置 Kairos RPC URL、使用 KAIA 測試資金的賬戶私鑰等。 + +完成所有步驟後,創建一個 .env 文件並添加變量。 Foundry 會自動加載項目目錄中的 .env 文件。 + +.env 文件應遵循以下格式: + +```code +KAIROS_RPC_URL= +// 如果要部署到主網 +MAINNET_RPC_URL= +PRIVATE_KEY= +``` + +現在我們需要編輯 `foundry.toml` 文件。 項目根目錄中應該已經有一個。 將以下幾行粘貼到文件末尾 + +```code +[rpc_endpoints] +kairos = "${KAIROS_RPC_URL}" +// 如果要部署到主網 +mainnet = "${MAINNET_RPC_URL}" +``` + +### 編寫劇本 + +接下來,我們必須創建一個文件夾,並將其命名為腳本(如果還不存在的話)。 然後,我們需要為合同創建一個腳本文件,即: +airdropKIP7.s.sol +airdropKIP17.s.sol +KIP37MultiToken.s.sol +這就是我們要編寫的部署腳本。 每個文件的內容應如下所示: + +1. airdropKIP7.s.sol + +```solidity +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; +import "forge-std/Script.sol"; +import "../src/airdropKIP7.sol"; + +contract KIP7AirdropDeployScript is Script { + + function setUp() public {} + + function run() public { + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + + vm.startBroadcast(deployerPrivateKey); + + KIP7TokenAirdrop kip7TokenAirdrop = new KIP7TokenAirdrop(); + + vm.stopBroadcast(); + } +} +``` + +2. airdropKIP17.s.sol + +```solidity +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; +import "forge-std/Script.sol"; +import "../src/airdropKIP17.sol"; + +contract KIP17AirdropDeployScript is Script { + + function setUp() public {} + + function run() public { + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + + vm.startBroadcast(deployerPrivateKey); + + KIP17NftAirdrop kip17NftTokenAirdrop = new KIP17NftAirdrop(); + + vm.stopBroadcast(); + } +} +``` + +3. KIP37MultiToken.s.sol + +```solidity +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; +import "forge-std/Script.sol"; +import "../src/KIP37MultiToken.sol"; + +contract KIP37MultiTokenDeployScript is Script { + + function setUp() public {} + + function run() public { + + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + + vm.startBroadcast(deployerPrivateKey); + + KIP37MultiToken kip37MultiToken = new KIP37MultiToken(); + + vm.stopBroadcast(); + } +} +``` + +讓我們來看看每行代碼的作用。 + +首先,我們為每個腳本文件聲明瞭 SPDX 許可證和 pragma 版本。 請注意,由於每個腳本文件都是一個 solidity 程序,我們仍需聲明 SPDX 許可證和 pragma 版本,使其像智能合約一樣工作,但永遠不會部署。 + +接下來,我們導入 [Forge Std/Script.sol](https://github.com/foundry-rs/forge-std/blob/master/src/Script.sol),它提供了一些用於部署合同的腳本工具。 隨後,我們導入要部署的合同。 在這種情況下,每個腳本都需要 **airdropKIP7**、**airdropKIP17**、**KIP37MultiToken**。 + +然後,我們為每個腳本文件創建了名為 **KIP7AirdropDeployScript**、**KIP17AirdropDeployScript**、**KIP37MultiTokenDeployScript** 的合約,這些腳本文件繼承了 Forge Std 庫中的腳本。 + +接下來,我們聲明瞭 **run()** 函數。 函數 run() 是執行腳本的入口點。 然後,我們在 +中聲明瞭一個 **deployerPrivateKey** 變量,用於從 .env 文件中加載私鑰。 + +隨後,我們調用了**vm.startBroadcast(deployerPrivateKey)** 特殊作弊代碼,該代碼記錄了主腳本合約的調用和合約創建,並傳遞了用於簽署事務的 deployerPrivateKey。 + +然後,我們創建了相應的合同。 由於我們之前調用了 vm.startBroadcast() 作弊代碼,因此 forge 將記錄此合約創建過程。 + +現在,我們已經對每一行的內容有了大致的瞭解,您可以繼續部署合同了。 點擊此 [鏈接](https://book.getfoundry.sh/tutorials/solidity-scripting#writing-the-script),瞭解更多關於編寫腳本和其他細節的信息。 + +在項目根部運行 + +```bash +// To load the variables in the .env file +source .env +``` + +要部署每份合同,請運行以下命令: + +1. airdropKIP7 + +```bash +forge script script/airdropKIP7.s.sol:KIP7AirdropDeployScript --rpc-url $KAIROS_RPC_URL --broadcast --skip-simulation -vvvv +``` + +2. airdropKIP17 + +```bash +forge script script/airdropKIP17.s.sol:KIP17AirdropDeployScript --rpc-url $KAIROS_RPC_URL --broadcast --skip-simulation -vvvv +``` + +3. KIP37MultiToken + +```bash +forge script script/KIP37MultiToken.s.sol:KIP37MultiTokenDeployScript --rpc-url $KAIROS_RPC_URL --broadcast -skip-simulation -vvvv +``` + +如果每條命令都執行成功,終端應該如下所示: + +![](/img/build/tools/deploy-kcw-contracts.png) + +請參閱本 [指南](https://book.getfoundry.sh/reference/forge/forge-script),瞭解有關腳本命令的更多信息。 + +## 結論 + +在本教程中,您將瞭解 Kaia 合同嚮導、其功能以及如何使用 KCW 自定義合同。 本指南還演示瞭如何生成智能合約代碼,以及如何將生成的智能合約代碼作為起點,並通過特定應用邏輯進一步定製。 + +此外,我們還使用 Foundry solidity 腳本將生成的合同部署到 Kaia Kairos Testnet。 您可以使用 Remix IDE 或任何智能合約開發環境來部署從 Kaia Contracts Wizard 派生或定製的智能合約。 您可以在以下鏈接中找到相應的教程: + +- [連接到 Remix](../tutorials/connecting-remix.md#connecting-kaia-remix-using-metamask) +- [使用 Hardhat 部署智能合約](../get-started/hardhat.md) +- [使用 Truffle 部署智能合約](../smart-contracts/samples/erc-20.md#2-2-deploying-smart-contract-using-truffle) From 4798229d5c19aa79cd66c6d0d1aae55ad6c221a6 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:28 +0800 Subject: [PATCH 0108/2513] New translations kaia-online-toolkit.md (Chinese Traditional) --- .../build/tools/kaia-online-toolkit.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md new file mode 100644 index 000000000000..6e25f1162130 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/kaia-online-toolkit.md @@ -0,0 +1,19 @@ +# Kaia Online Toolkit + +## 什麼是 Kaia 在線工具包? + +- Kaia在線工具包 "提供代碼示例,幫助您輕鬆使用 "Kaia SDK(caver-js)"。 此外,它還提供了一個 [演示頁面](https://toolkit.klaytn.foundation),供開發人員使用簡單的在線工具。 +- Kaia SDK(caver-js)\` 是一個 JavaScript API 庫,允許開發人員使用 HTTP 或 Websocket 連接與 Kaia 節點進行交互。 +- 您可以直接試用 Kaia 的功能,而無需編寫代碼。 + +> 為了幫助更多的人使用 "Kaia 在線工具包",我們編寫了["使用 Kaia 在線工具包"](https://medium.com/klaytn/using-klaytn-online-toolkit-1-multisig-60399a0b0278) 系列。 + +## 鏈接 + +以下是 "Kaia 在線工具包 "的鏈接。 歡迎使用 :) + +- [Github Repository](https://github.com/kaiachain/kaia-online-toolkit) +- [工具包頁面](https://toolkit.kaia.io) +- [Kaia SDK(caver-js)](../../references/sdk/caver-js/caver-js.md) + +![Kaia Online Toolkit](/img/build/tools/klaytn-online-toolkit.png) From 49986ba0fb1844d6a21602e44780e8eedf6066c3 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:30 +0800 Subject: [PATCH 0109/2513] New translations oracles.md (Chinese Traditional) --- .../current/build/tools/oracles/oracles.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md new file mode 100644 index 000000000000..5b9835d3c44c --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/oracles.md @@ -0,0 +1,13 @@ +# 神諭 + +區塊鏈中樞是連接區塊鏈和其他外部數據源的紐帶。 實際上,區塊鏈是一個封閉系統;因此,它無法從任何外部系統(鏈外數據)中獲取數據,只能訪問原始區塊鏈上下文中已經存在的數據。 這就產生了一個區塊鏈-賬本問題,即區塊鏈無法從實際發生的事件中獲取數據。 然而,智能合約必須連接到廣泛的外部數據源,才能實現許多有用的功能。 舉例來說,一個[混合智能合約](https://chain.link/education-hub/hybrid-smart-contracts)可以利用神諭給出金融領域的資產價格、保險領域的天氣數據、遊戲領域的隨機性、供應鏈管理領域的物聯網傳感器等。 + +區塊鏈需要訪問和連接外部數據源、遺留系統和高級計算,這帶來了諭令。 不能低估區塊鏈行業中諭令器的好處,因此在創建混合智能合約時,在選擇諭令器之前進行研究至關重要。 因此,我們鼓勵避免使用中心化算子,因為利用去中心化算子對開發去中心化應用程序非常重要。 一方面,中心化的示權器由單一實體控制,因此存在單點故障,使智能合約容易受到攻擊。 另一方面,分散式計算器的設計消除了單點故障,從而超越了集中式計算器的侷限性。 去中心化甲骨文由點對點網絡中的多個參與者組成,在將鏈外數據發送給智能合約之前,這些參與者會就鏈外數據達成共識。 + +以下提供商已與 Kaia 集成,以提供分散式 Oracle 服務: + +- [Pyth Network](https://docs.pyth.network/home) +- [Orakl Network](https://docs.orakl.network) +- [Witnet](https://docs.witnet.io/) +- [SupraOracles](https://supraoracles.com/docs/overview) +- [KlayOracle](https://klayoracle.gitbook.io/v1.0.0/) From 0611eeccd4666cee437f3694ee20c23dbcfea1e1 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:32 +0800 Subject: [PATCH 0110/2513] New translations orakl-network.md (Chinese Traditional) --- .../build/tools/oracles/orakl-network.md | 208 ++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md new file mode 100644 index 000000000000..999563a5cd29 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/orakl-network.md @@ -0,0 +1,208 @@ +# 奧拉克爾網絡 + +![](/img/banners/kaia-orakl.png) + +## 導言 + +[Orakl Network](https://docs.orakl.network) 是一個去中心化的甲骨文網絡,允許智能合約安全地訪問鏈外數據和其他資源。 它引以為豪的是,自己是一個提供 [Data Feed](https://docs.orakl.network/developers-guide/data-feed)、[VRF](https://docs.orakl.network/developers-guide/vrf)、[Request-Response](https://docs.orakl.network/developers-guide/request-response) 和 [Proof of Reserve](https://docs.orakl.network/developers-guide/proof-of-reserve) 解決方案的本地令牌交易系統。 + +有了 Orakl 網絡,用戶可以在智能合約中尋找不可預測、無偏見的隨機性。 Orakl Network [Verifiable Random Function (VRF)](https://docs.orakl.network/developers-guide/vrf#what-is-verifiable-random-function)允許智能合約生成可驗證的隨機值,可用於各種需要隨機性的 dApp。 Orakl Network 通過兩種不同的賬戶類型為開發人員提供 VRF 服務訪問權限,即[永久賬戶](https://docs.orakl.network/developers-guide/readme#permanent-account) 或[臨時賬戶](https://docs.orakl.network/developers-guide/readme#temporary-account)。 + +在本教程中,您將利用 Orakl Network 的 VRF 功能從智能合約內部請求隨機單詞。 + +## 先決條件 + +- [Kaia 錢包](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) +- [Remix IDE](https://remix.ethereum.org/) +- [Kaia Plugin on Remix](https://klaytn.foundation/using-klaytn-plugin-on-remix/) +- 測試來自 [龍頭] 的 KAIA(https://faucet.kaia.io) + +## 開始 + +在以下步驟中,您將使用 Orakl 網絡在智能合約中請求一個隨機單詞。 讓我們開始吧! + +### 步驟 1:初始化合同狀態變量 + +在這一步中,我們將定義消費者合約,並初始化合約功能所需的狀態變量。 我們的消費者合約依賴於 "VRFConsumerBase "合約和 "IVRFCoordinator "接口,"IVRFCoordinator "接口用於調用 "VRFCoordinator "合約。 接下來,我們定義用於存儲隨機單詞結果的 `sRandomWord` 變量和在 `onlyOwner` 修飾符中使用的 `sOwner` 變量。 + +```solidity +pragma solidity ^0.8.16; + +import { VRFConsumerBase } from "@bisonai/orakl-contracts/src/v0.1/VRFConsumerBase.sol"; +import { IVRFCoordinator } from "@bisonai/orakl-contracts/src/v0.1/interfaces/IVRFCoordinator.sol"; + +contract VRFConsumer is VRFConsumerBase { + uint256 public sRandomWord; + address private sOwner; + + error OnlyOwner(address notOwner); + modifier onlyOwner() { + if (msg.sender != sOwner) { + revert OnlyOwner(msg.sender); + } + _; + } +``` + +### 第 2 步:初始化 VRF 協調器 + +要在智能合約中請求隨機詞語,需要初始化 [`VRFCoordinator`](https://github.com/Bisonai/orakl/blob/master/contracts-v0.1/src/v0.1/VRFCoordinator.sol) 智能合約。 建議將 `VRFCoordinator` 接口與通過構造參數提供的 `VRFCoordinator` 地址綁定,並將其用於隨機單詞請求 (`requestRandomWords`)。 VRFCoordinator "合約同時部署在 Kaia Kairos [0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499](https://kairos.kaiascan.io/account/0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499) 和 Kaia Mainnet [0x3F247f70DC083A2907B8E76635986fd09AA80EFb](https://www.kaiascan.io/account/0x3F247f70DC083A2907B8E76635986fd09AA80EFb) 上。 + +```solidity + IVRFCoordinator COORDINATOR; + + constructor(address coordinator) VRFConsumerBase(coordinator) { + COORDINATOR = IVRFCoordinator(coordinator); + sOwner = msg.sender; + } +``` + +### 步驟 3:使用臨時賬戶申請隨機詞語 + +要使用臨時賬戶申請隨機詞語,用戶需要發送 $KAIA 並使用 value 屬性調用。 + +```solidity + function requestRandomWordsDirect( + bytes32 keyHash, + uint32 callbackGasLimit, + uint32 numWords, + address refundRecipient + ) + public + payable + onlyOwner + returns (uint256 requestId) + { + requestId = COORDINATOR.requestRandomWords{value: msg.value}( + keyHash, + callbackGasLimit, + numWords, + refundRecipient + ); + } +``` + +該函數調用 `COORDINATOR` 合約中定義的 `requestRandomWords()` 函數,並將 `keyHash`, `callbackGasLimit`, `numWords` 和 `refundRecipient` 作為參數傳遞。 服務費通過 `msg.value` 發送給 `COORDINATOR` 合約中的 `requestRandomWords()` 。 如果付款額大於預期付款額,超出部分將退回到 `refundRecipient` 地址。 最終,它會生成一個隨機詞語請求。 要準確指定 "requestRandomWords "函數的 "msg.value",請參閱[如何估算服務費](https://docs.orakl.network/developers-guide/vrf#get-estimated-service-fee)的說明。 + +### 步驟 4:填寫隨機詞語 + +滿足隨機詞語請求時,`VRFCoordinator`合約會調用`fulfillRandomWords`函數。 + +```solidity +function fulfillRandomWords( + uint256 /* requestId */, + uint256[] memory randomWords +) + internal + override +{ + // requestId should be checked if it matches the expected request + // Generate random value between 1 and 50. + sRandomWord = (randomWords[0] % 50) + 1; +} +``` + +現在我們有了 Orakl VRF 解決方案的代碼,讓我們來看看它的實際操作。 + +## 具體實施 + +在下面的示例中,合同允許我們請求隨機詞語並得到滿足。 + +### 創建和部署示例代碼 + +**Remix IDE** + +- 導航至 [Remix IDE](https://remix.ethereum.org/)。 +- 單擊**文件資源管理器**選項卡,在合同文件夾中新建一個名為 "consumer-vrf.sol "的文件。 +- 將下面的代碼粘貼到新創建的文件中。 +- 在 Remix 中,點擊 **編譯合同**。 +- 安裝插件後,點擊左側的 Kaia 選項卡。 +- 選擇 **環境** > **注入式提供商** - **Kaia Wallet**。 +- 在**合同**中,選擇您的合同。 例如,`VRFConsumer`。 +- 輸入協調者合約地址 `0xDA8c0A00A372503aa6EC80f9b29Cc97C454bE499` (Kairos), `0x3F247f70DC083A2907B8E76635986fd09AA80EFb` (Mainnet). +- 點擊 **部署**。 + +\*\* 示例代碼\*\* + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.16; + +import {VRFConsumerBase} from "@bisonai/orakl-contracts/src/v0.1/VRFConsumerBase.sol"; +import {IVRFCoordinator} from "@bisonai/orakl-contracts/src/v0.1/interfaces/IVRFCoordinator.sol"; + +contract VRFConsumer is VRFConsumerBase { + uint256 public sRandomWord; + address private sOwner; + + IVRFCoordinator COORDINATOR; + + error OnlyOwner(address notOwner); + + modifier onlyOwner() { + if (msg.sender != sOwner) { + revert OnlyOwner(msg.sender); + } + _; + } + + constructor(address coordinator) VRFConsumerBase(coordinator) { + sOwner = msg.sender; + COORDINATOR = IVRFCoordinator(coordinator); + } + + function requestRandomWordsDirect( + bytes32 keyHash, + uint32 callbackGasLimit, + uint32 numWords, + address refundRecipient + ) public payable onlyOwner returns (uint256 requestId) { + requestId = COORDINATOR.requestRandomWords{value: msg.value}( + keyHash, + callbackGasLimit, + numWords, + refundRecipient + ); + } + + function fulfillRandomWords( + uint256 /* requestId */, + uint256[] memory randomWords + ) internal override { + // requestId should be checked if it matches the expected request + // Generate random value between 1 and 50. + sRandomWord = (randomWords[0] % 50) + 1; + } +} +``` + +![](/img/build/tools/orakl-vrf-deploy.png) + +### 與智能合約互動 + +要在智能合約中請求隨機詞語,必須先執行 `requestRandomWordsDirect()` 函數。 要成功執行該函數,用戶必須如前所述發送 KAIA(最少 1 KAIA),並提供 `keyHash`, `callbackGasLimit`, `numWords` 和 `refundRecipient` 參數。 keyHash\` 參數唯一定義了誰可以執行請求。 Orakl Network VRF 為每個 Kaia 鏈提供一個密鑰哈希值: + +- Kairos: `0xd9af33106d664a53cb9946df5cd81a30695f5b72224ee64e798b278af812779c` +- Mainnet: `0x6cff5233743b3c0321a19ae11ab38ae0ddc7ddfe1e91b162fa8bb657488fb157` + +其餘參數的設置方法如下: + +- callbackGasLimit "為 "500000"、 +- 字數 "為 "1",以及 +- 將 `refundRecipient` 設為您的 EOA 地址。 + +之後,一旦請求得到滿足,就可以執行`sRandomWord()`函數。 該 `sRandomWord()` 函數返回隨機單詞。 + +- **requestRandomWordsDirect()**:將發送 1 個 KAIA 以執行此函數。 下面的圖片說明瞭這一點: + +![](/img/build/tools/orakl-vrf-request.png) + +- **sRandomWord()**:在 `VRFCoordinator` 完成隨機字請求後,響應將存儲在 `sRandomWord` 變量中。 要獲取響應,請調用`sRandomWord()`函數。 + +![](/img/build/tools/orakl-vrf-response.png) + +塔達 🎉! 您剛剛請求了一個隨機單詞,並在智能合約中收到了一個。 + +## 結論 + +在本教程中,您將學習如何使用 Orakl Network VRF 解決方案在智能合約中生成隨機單詞。 Orakl 網絡提供更多甲骨文服務,如數據反饋、請求-響應、儲備證明。 有關 Orakl Network 及其工作原理的更多深入指南,請參閱 [Orakl Network 文檔](https://docs.orakl.network)。 From e254f0ce7bcd878b138a26d12cbbbff38b3cb566 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:33 +0800 Subject: [PATCH 0111/2513] New translations supraoracles.md (Chinese Traditional) --- .../build/tools/oracles/supraoracles.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md new file mode 100644 index 000000000000..768296a2c457 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/supraoracles.md @@ -0,0 +1,148 @@ +# SupraOracles + +![](/img/banners/kaia-supra.png) + +## 導言 + +[SupraOracles](https://supraoracles.com/)是一種新穎、高吞吐量的 Oracle & IntraLayer:一種垂直整合的跨鏈解決方案工具包(數據oracles、資產橋、自動化網絡等),可將所有區塊鏈(公有鏈(L1s 和 L2s)或私有鏈(企業))相互連接起來。 它為智能合約提供了下一代跨鍊甲骨文解決方案,具有卓越的數據準確性、速度、可擴展性和安全性。 + +有了 SupraOracles,您的智能合約就可以訪問價格數據源,從而構建各種去中心化金融(DeFi)用例。 在本教程中,您將使用 SupraOracles,使用 Remix IDE 在 Kaia 區塊鏈上輕鬆獲取價格信息。 + +## 先決條件 + +- [Kaia 錢包](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) +- [Remix IDE](https://remix.ethereum.org/) +- [Kaia Plugin on Remix](https://klaytn.foundation/using-klaytn-plugin-on-remix/) +- 測試來自 [龍頭] 的 KAIA(https://faucet.kaia.io) + +## 開始 + +在以下步驟中,您將使用 SupraOracles 在智能合約中請求 ETH/USD 價格反饋。 讓我們開始吧! + +### 步驟 1:創建 S 值接口 + +這將創建用於從 SupraOracles 獲取價格的接口。 將以下代碼添加到您希望獲取 S 值的 solidity 智能合約中。 + +```solidity +interface ISupraSValueFeed { +function checkPrice(string memory marketPair) external view returns (int256 price, uint256 timestamp); +} +``` + +### 步驟 2:配置 S 值反饋地址 + +要從 SupraOracles 智能合約中獲取 S-Value,首先要找到所選鏈的 S-Value Feed 地址。 有了正確的地址後,使用我們之前定義的接口創建一個 S-Value Feed 實例: + +```solidity +contract ISupraSValueFeedExample { + ISupraSValueFeed internal sValueFeed; + constructor() { + sValueFeed = ISupraSValueFeed(0x7f003178060af3904b8b70fEa066AEE28e85043E); + } +} +``` + +在本例中,我們在 Kaia Kairos TestNet 上實現了 S-Value Feed。 您可以在 [此處](https://supraoracles.com/docs/get-started/networks/) 驗證 Kaia Kairos S-Value Feed 地址。 + +### 第 3 步:獲取 S-Value 加密貨幣價格 + +現在,您只需訪問我們支持的市場貨幣對的 S-Value Crypto 價格即可。 在這一步中,您將在智能合約中應用以下代碼,從而獲得 ETH/USDT (eth_usdt) 的價格。 + +```solidity +function getEthUsdtPrice() external view returns (int) { +( +int price, +/* uint timestamp */ +) = sValueFeed.checkPrice("eth_usdt"); +return price; +} +``` + +## 具體實施 + +在下面的示例中,我們將部署 S-Value 價格反饋合約,同時執行 getEthUsdtPrice() 函數來獲取 ETH/USDT 貨幣對的價格。 + +### 創建和部署示例代碼 + +**Remix IDE** + +- 導航至 [Remix IDE](https://remix.ethereum.org/) +- 單擊 "文件資源管理器 "選項卡,在合同文件夾中新建一個名為 "demoSupraPriceFeed.sol "的文件。 +- 將下面的代碼粘貼到新創建的文件中 +- 在 Remix 中,點擊 **編譯合同**。 +- 安裝插件後,點擊左側的 Kaia 選項卡 +- 選擇 **環境** > **注入式提供商** - **Kaia Wallet**。 +- 在**合同**中,選擇您的合同。 例如,ISupraSValueFeedExample。 +- 點擊 **部署**。 + +\*\* 示例代碼\*\* + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.7; +interface ISupraSValueFeed { + function checkPrice(string memory marketPair) external view returns (int256 price, uint256 timestamp); +} +contract ISupraSValueFeedExample { + ISupraSValueFeed internal sValueFeed; + constructor() { + sValueFeed = ISupraSValueFeed(0x7f003178060af3904b8b70fEa066AEE28e85043E); + } + function getEthUsdtPrice() external view returns (int) { + ( + int price, + /* uint timestamp */ + ) = sValueFeed.checkPrice("eth_usdt"); + return price; + } +} +``` + +### 與智能合約互動 + +要獲取所選貨幣對的價格信息,必須執行`getEthUsdtPrice()`函數。 + +![](/img/build/tools/sPriceFeed.png) + +塔達 🎉! 您剛剛請求在智能合約中提供貨幣價格(ETH/USDT)。 + +截至編寫本報告時,getEthUsdtPrice() 返回了 "185795966200",一個 8 點精度的數字。 要獲得 ETH/USD 的實際價值,您需要將該數字除以 10^8,等於 1857.95966200 美元。 + +## 使用 SupraOracles Crypto Price Feeds 的更多方法 + +### 使用 Web3.js 實現 S-Value Feeds + +```javascript +// example assumes that the web3 library has been imported and is accessible within your scope +const getEthUsdtPrice = async () => { +const abi = [{ "inputs": [ { "internalType": "string", "name": "marketPair", "type": "string" } ], "name": "checkPrice", "outputs": [ { "internalType": "int256", "name": "price", "type": "int256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ] +const address = '0x7f003178060af3904b8b70fEa066AEE28e85043E' +const web3 = new Web3('https://public-en-kairos.node.kaia.io') +const sValueFeed = new web3.eth.Contract(abi, address) +const price = (await sValueFeed.methods.checkPrice('eth_usdt').call()).price +console.log(`The price is: ${price}`) +} +getEthUsdtPrice() +``` + +### 使用 ethers.js 的 S-Value Feeds + +```javascript +// example assumes that the ethers library has been imported and is accessible within your scope +const getEthUsdtPrice = async () => { +////for ethers version 6.0 +const provider = new ethers.JsonRpcProvider("https://public-en-kairos.node.kaia.io") +////for ethers version <= 5.7.2 +//const provider = new ethers.providers.JsonRpcProvider('https://public-en-kairos.node.kaia.io') +const abi = [{ "inputs": [ { "internalType": "string", "name": "marketPair", "type": "string" } ], "name": "checkPrice", "outputs": [ { "internalType": "int256", "name": "price", "type": "int256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ] +const address = '0x7f003178060af3904b8b70fEa066AEE28e85043E' +const sValueFeed = new ethers.Contract(address, abi, provider) +const price = (await sValueFeed.checkPrice('eth_usdt')).price +console.log(`The price is: ${price.toString()}`) +} +getEthUsdtPrice() +``` + +## 結論 + +在本教程中,您將學習如何使用 SupraOracle 價格饋送解決方案請求 ETH/USD 價格。 有了 SupraOracle,您還可以在智能合約中生成隨機數。 如果您想了解這一過程,請訪問有關在 Kaia 上集成 SupraVRF 的 [指南](https://metaverse-knowledge-kit.klaytn.foundation/docs/decentralized-oracle/oracle-providers/supraOracles-tutorial)。 有關 SupraOracles 的更多深入指南,請參閱 [SupraOracles 文檔](https://supraoracles.com/docs/development-guides)。 From 900d8fa2e81d4977223381ada159dd4bd5a9d15f Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:34 +0800 Subject: [PATCH 0112/2513] New translations witnet.md (Chinese Traditional) --- .../current/build/tools/oracles/witnet.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md new file mode 100644 index 000000000000..9fb433328645 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/oracles/witnet.md @@ -0,0 +1,15 @@ +# Witnet + +![](/img/banners/kaia-witnet.png) + +## 導言 + +Witnet](https://docs.witnet.io/) 多鏈去中心化甲骨文使智能合約能夠訪問各種有價值的外部數據集,從而發揮其潛力。 這些有價值的數據集包括體育比賽成績、股票價格、天氣預報、隨機性等。 +為了提供去中心化的甲骨文服務,Witnet 依賴於一個由對等節點(俗稱證人)組成的分佈式網絡,這些節點通過檢索網絡數據並將其直接報告給智能合約來賺取 Wit 代幣作為獎勵。 見證人負責尋找、檢索和驗證數據集。 為確保透明度,每個匿名同行都會受到激勵,如實報告檢索到的數據,並對任何錯誤行為進行懲罰或削減。 + +## 使用方法 + +該甲骨文網絡目前在 Kaia 主網和 Kaia Kairos 測試網上運行。 要開始連接 Kaia 上的數據源和隨機性,請參閱以下指南: + +- [Witnet價格饋送教程](https://metaverse-knowledge-kit.klaytn.foundation/docs/decentralized-oracle/oracle-providers/witnet-tutorial) +- [利用 Witnet 在 Kaia 上生成隨機數](https://medium.com/klaytn/random-number-generation-on-klaytn-with-witnet-ae136dad0562) From 9e4c9c8431878126d18afc005166c591b478bdd0 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:36 +0800 Subject: [PATCH 0113/2513] New translations tools.md (Chinese Traditional) --- .../current/build/tools/tools.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/tools.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/tools.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/tools.md new file mode 100644 index 000000000000..48d000851136 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/tools.md @@ -0,0 +1,9 @@ +# 工具 + +本頁包含開發工具列表,可幫助您在 Kaia 上構建去中心化應用程序。 + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; + + +``` From 126f82dfe44a3968ea72d732fd4fd041d13ed8f5 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:37 +0800 Subject: [PATCH 0114/2513] New translations contract-interaction.md (Chinese Traditional) --- .../wallets/kaia-safe/contract-interaction.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md new file mode 100644 index 000000000000..4866a96201c5 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/contract-interaction.md @@ -0,0 +1,27 @@ +# 與合同互動 + +在本節中,您將使用我們新創建的多重簽名錢包與部署在 Kairos 上的簡單合約進行交互並向其發送一筆交易。 + +**先決條件** + +- [Metamask](https://metamask.io/download/) & [Kaia Metamask Config](../../../tutorials/connecting-metamask.mdx#send-klay) +- [混音](https://remix.ethereum.org/) 和[Kaia 混音插件](https://klaytn.foundation/using-klaytn-plugin-on-remix/) +- 從 [水龍頭](https://faucet.kaia.io) 獲取測試 KAIA + +**步驟 1:** 導航至 [混音](https://remix.ethereum.org/) + +**第 2 步:** 編譯並部署**存儲合同**示例。 + +必須先部署合約,然後才能在多重簽名錢包中與之交互。 該示例合約包含一個簡單的 uint "數字 "變量,可通過調用**store**方法進行更新,也可通過調用**retrieve**方法進行檢索。 + +![](/img/build/tools/kaia-safe/ks-ic-deploy.gif) + +**第 3 步:** 啟動新交易。 + +要與安全錢包中的智能合約互動,請點擊\*\*"新建交易 "\*\*。 要完成這一步驟,您需要已部署的合同地址和 ABI,如上一步所示。 + +![](/img/build/tools/kaia-safe/kaia-safe-ci-init.gif) + +**第 4 步:** 審查並提交交易。 您需要用簽名者錢包簽署交易,一旦達到確認閾值,交易就會執行。 + +![](/img/build/tools/kaia-safe/kaia-safe-ci-review-send.gif) From ae1f17452a5d558150d8d3490cbacc0c9e06598f Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:38 +0800 Subject: [PATCH 0115/2513] New translations faqs.md (Chinese Traditional) --- .../build/tools/wallets/kaia-safe/faqs.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md new file mode 100644 index 000000000000..a16794bf653a --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/faqs.md @@ -0,0 +1,106 @@ +# Frequently Asked Questions + +## 創建保險箱後可以添加新的所有者嗎? + +是的! 創建保險箱賬戶後,Kaia Safe 會為您提供管理保險箱所有者的權限,即添加、刪除、替換所有者或重命名現有所有者。 + +注意:要執行此更改,您需要與當前所有者之一建立聯繫。 + +下面的步驟說明瞭如何在創建 Safe 賬戶後為其添加新的所有者或簽名人。 + +**步驟 1:** 進入側邊欄菜單的**設置**,你會看到**設置**部分下的**管理安全賬戶簽署人**卡。 + +**步驟 2:** 點擊卡片底部的**添加新簽名人**按鈕。 點擊該按鈕將打開一個新窗口。 + +![](/img/build/tools/kaia-safe/ks-add-signers.png) + +**第 3 步:** 輸入新所有人的**姓名**,並粘貼**所有人的地址**。 然後點擊頁面右下角的 "下一步 "按鈕。 + +**步驟 4:** 設置新的簽名策略。 在這種情況下,您可以更改或保留現有的簽名策略。 下圖顯示,在 4 位所有者中,有 2 位需要確認和執行任何交易。 + +![](/img/build/tools/kaia-safe/ks-add-signer-details.png) + +**第 5 步:** 審查並提交交易。 + +確認所有更改無誤後再提交。 因此,您可以點擊**提交**按鈕來提交更改。 + +點擊**提交**後,連接的錢包會要求您確認更改。 根據現有的簽名政策,其他所有者必須像正常交易一樣確認更改。 + +![](/img/build/tools/kaia-safe/kaia-safe-change-owner-setup-review.gif) + +## 我可以更改所需的簽名確認人數嗎? + +是的! 您可以按照以下步驟更改所需的簽名確認次數。 這一點很重要,因為您可能想更改確認與安全賬戶相關的交易所需的所有者或簽名人。 + +**步驟 1:** 進入側邊欄菜單的**設置**,你會看到**設置**部分下的**所需確認**卡。 + +這顯示了您當前的簽名政策,從下圖中可以看出,任何交易都需要 4 位所有者中的 2 位進行確認。 + +![](/img/build/tools/kaia-safe/ks-conf-policy.png) + +**步驟 2:** 單擊 \*\* 更改 \*\* 按鈕。 + +這時會彈出一個新窗口,選擇新的簽名閾值。 + +![](/img/build/tools/kaia-safe/ks-conf-policy-btn.png) + +**步驟 3:** 點擊**提交**按鈕。 + +請注意,根據您現有的簽名政策,其他所有者必須像正常交易一樣確認更改。 + +## 如何添加現有保險箱? + +導出的 Safe 數據包含已添加的 Safe 賬戶、通訊錄和設置,使用這些數據,您可以輕鬆添加 Safe 賬戶。 + +> 注意:您必須已下載 Safe 數據,如下圖所示: + +![](/img/build/tools/kaia-safe/ks-export-btn.png) + +在界面中添加或加載現有保險箱的需求各不相同。 這些可能包括 + +- 您想從其他瀏覽器訪問 Safe。 +- 您希望與 Safe 進行互動,而另一方讓您成為 Safe 的所有者。 +- 您希望以只讀模式添加任何現有的保險箱。 + +讓我們通過以下步驟來瞭解添加現有保險箱的過程。 注意:請確保簽名者的錢包已連接。 + +**步驟 1:** 導航至**設置**選項卡。 + +**步驟 2:** 滾動到**數據**部分下的**數據導入**卡。 + +![](/img/build/tools/kaia-safe/ks-data-import-i.png) + +在這裡,你可以拖放 JSON 文件,也可以選擇你的文件,如上圖所示。 + +**第 3 步:** 單擊**導入**按鈕。 + +![](/img/build/tools/kaia-safe/ks-data-import-btn.png) + +![](/img/build/tools/kaia-safe/kaia-safe-data-import.gif) + +之後,您就可以訪問 Safe 賬戶了。 + +## 普通安全設置 + +這往往會為建立保險箱時的決策提供一些指導。 這些可能包括 + +- 有多少業主? + +- 什麼門檻? + +- 兼容哪些錢包? + +這三個問題沒有一個最佳答案,因此也就沒有一個最佳的 Safe 配置。 實際上,這完全取決於具體的使用情況。 儘管如此,我們還是努力提出一些建議,供大家參考: + +\*\*有多少業主? + +通常情況下,擁有多個所有者賬戶是一個明智的選擇。 在團體管理資金時,良好的做法是幾個人都能使用安全賬戶。 建議管理資金的個人擁有多個賬戶,以便使用多個身份驗證因素。 + +\*\*什麼門檻? + +安全閾值是指在交易成功執行前必須獲得批准的最小所有者賬戶數量。 建議使用大於 1 的閾值,以確保始終需要至少一個額外賬戶來驗證和執行 Safe 交易,而不是允許單個賬戶執行交易。 因此,即使攻擊者進入了一個賬戶,資金也無法轉移。 + +此外,建議選擇佔所有者 51%的閾值,例如 3 人中的 2 人、5 人中的 3 人等。 正因為如此,即使一位所有者失去了對其賬戶的訪問權限,用戶也不會立即被鎖定其在保險箱中的所有資金;相反,其他所有者仍可進行交易,例如,替換該丟失的所有者賬戶。 可以說,這是一種恢復機制。 + +**兼容哪些錢包?** +目前,Kaia Safe兼容[Kaia Wallet](https://docs.kaiawallet.io/)、[MetaMask](../../../tutorials/connecting-metamask.mdx)。 From 53892cade617282356ec2e953acda2cfd7babfb5 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:40 +0800 Subject: [PATCH 0116/2513] New translations kaia-safe.md (Chinese Traditional) --- .../tools/wallets/kaia-safe/kaia-safe.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md new file mode 100644 index 000000000000..ccc9f3ecc997 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/kaia-safe.md @@ -0,0 +1,37 @@ +# Kaia Safe + +在 Kaia 這樣的典型區塊鏈平臺中,大多數用戶都熟悉單鍵錢包系統,如 Kaia Wallet 和 MetaMask,它們也被稱為外部擁有賬戶(EOA)。 這些賬戶使用傳統的密鑰對,即公共密鑰和私人密鑰,這並不理想,因為私人密鑰會造成單點故障。 + +這就使得 EOA 不適合組織使用,因為私鑰洩露可能導致組織損失全部加密貨幣資金--例如在 [Wintermute 黑客攻擊](https://www.certik.com/resources/blog/uGiY0j3hwOzQOMcDPGoz9-wintermute-hack-) 事件中,1.625 億美元的資金損失。 + +這就是 Kaia Safe 等多 ID 錢包的用武之地。 與單密鑰錢包不同,多簽名錢包需要多方的私鑰來簽署和執行交易,從而消除了單點故障,為組織用例提供了更高的安全性。 + +## 什麼是多重簽名錢包? + +顧名思義,多重簽名錢包是一種需要兩個、三個或更多不同來源的私鑰來確認和執行加密交易的數字錢包。 + +例如,你可以把多重簽名錢包想象成一個有三把鎖的保險箱。 打開保險箱所需的三把鑰匙分別屬於三個不同的人,因此需要他們共同同意才能打開。 + +以下是多重簽名錢包的主要優點: + +- **安全存儲資產/資金:** 公司和協議可以安全地存儲資金,而不必擔心私鑰洩露或某個壞人未經授權轉移資金。 + +- \*\* 實現分散決策:\*\* 公司和企業高管可在鏈上決定執行哪些交易。 + +- **雙因素身份驗證:** 在多重簽名錢包的幫助下,企業和個人可以確保只有獲得必要密鑰的人才能執行交易。 + +接下來,我們將深入瞭解 Klatyn 的多 ID 錢包 Kaia Safe,以及如何使用它來管理您的資金和交易。 + +## Kaia Safe 是什麼? + +Kaia Safe 是 Kaia 生態系統的多 ID 錢包。 它是著名的多重簽名錢包 [Gnosis Safe](https://gnosis-safe.io/) 的一個分叉。 + +## 益處 + +- **存儲和轉移 KAIA 和 KCT(KIP7、KIP17)**:用戶可以存入和轉移加密貨幣(KAIA)和代幣(可互換或不可互換)。 + +- **靈活性和安全性:** 確認閾值可讓用戶更靈活地控制應執行哪些交易,並消除單點故障。 + +- **安全應用程序:** Kaia Safe 的功能通過添加自定義應用程序得到擴展,這些應用程序可進行批量交易並與其他 dApps 進行交互。 這種安全應用程序的一個例子是**交易生成器**,它可以將多個交易合併為一個批量交易執行。 + +- **賬戶恢復:** 在丟失密鑰的情況下,只要剩餘密鑰仍能滿足確認閾值,Kaia Safe 賬戶就可以恢復。 From a09b9cd462a0151e44e12fb8de858e1315379e3e Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:41 +0800 Subject: [PATCH 0117/2513] New translations overview.md (Chinese Traditional) --- .../build/tools/wallets/kaia-safe/overview.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md new file mode 100644 index 000000000000..3d3cf167bb8c --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/overview.md @@ -0,0 +1,15 @@ +# Kaia Safe 設計公司 + +目前,Kaia Safe 是一套用於創建和管理多重簽名錢包的工具,即 + +- **Safe React:** 這是一個用於創建多簽名錢包並與之交互的反應式網絡應用程序。 + +- **安全交易服務:** 跟蹤通過安全合約發送的交易,並監聽主網和 Kairos 中最近區塊的事件。 交易也可以發送到該服務,以便在鏈外收集簽名,或通知所有者即將發送到區塊鏈的交易。 + +- **安全配置服務:** 提供 Kaia Safe 客戶端環境的配置信息,例如所有鏈細節和應用程序接口的配置。 + +- **安全客戶端網關:** 這是 Kaia Safe 客戶端與後端服務(交易服務和 Kaia 節點)之間的網關。 + +- **安全基礎設施:** 這是一個集群設置,用於部署後端服務(安全交易、安全配置、安全客戶端網關)。 + +請參閱此 [鏈接](https://github.com/kaiachain/kaia-safe-infrastructure) 獲取更多信息。 From f860fa6ad9f5f5ec31e77954f31a39fbba637f46 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:42 +0800 Subject: [PATCH 0118/2513] New translations tx-builder.md (Chinese Traditional) --- .../tools/wallets/kaia-safe/tx-builder.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md new file mode 100644 index 000000000000..83422057f6ea --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/tx-builder.md @@ -0,0 +1,77 @@ +# 使用事務生成器 + +這是 Kaia Safe 中的一個自定義應用程序,負責批處理交易。 這意味著您可以將幾筆交易捆綁在一起,而不必一筆接一筆地確認。 您只需確認並執行一次。 + +有了事務生成器,您就可以將從代幣轉賬到複雜的合約交互等各種事務組合在一起,並將它們批量合併到單個事務中。 + +## KAIA Token Transfer + +您可以按照以下步驟,使用事務生成器執行令牌轉移: + +**步驟 1:** 導航至安全應用程序並打開交易生成器安全應用程序 + +![](/img/build/tools/kaia-safe/ks-tx-builder.png) + +**第 2 步:** 輸入收件人錢包地址。 For this guide, kindly skip the ABI field as we are trying to execute KAIA transfer transaction. + +![](/img/build/tools/kaia-safe/tx-builder-token-recipient-addr.png) + +**Step 3:** Enter the KAIA value you want to send. + +> Note: In this guide, we are sending 1 KAIA, so we entered 1 in the **KAIA value** input field. You can input any amount here, depending on your Safe's KAIA balance. + +![](/img/build/tools/kaia-safe/tx-builder-token-trf-value.png) + +**步驟 4:** 點擊添加交易。 + +**步驟 5:** 對每個收件人地址重複步驟 2、3 和 4。 + +**步驟 6:** 將所有操作添加到批次後,單擊 "創建批次"。 + +![](/img/build/tools/kaia-safe/token-trf-tx-builder.gif) + +**第 7 步:** 審查並提交交易 + +您可以查看整個批次。 準備就緒後,單擊 "發送批次",即可像其他安全交易一樣提交和執行交易。 + +## 合同互動 + +比方說,您想向一長串地址空投令牌,比如向 5 個地址空投 10 個 CCT 令牌。 交易生成器可將所有這些轉賬合併到一個交易中,而無需創建 5 個交易,保險箱的所有者必須一個接一個地確認和執行這些交易。 + +在本指南中,我們將 CCT 代幣鑄造到安全地址,以作說明。 + +讓我們使用事務生成器開始這個示例! + +**步驟 1:** 打開安全應用程序。 + +![](/img/build/tools/kaia-safe/ks-tx-builder.png) + +**步驟 2:** 打開交易生成器安全應用程序 + +![](/img/build/tools/kaia-safe/ks-use-tx-builder.png) + +**第 3 步:** 輸入您的**令牌合同地址**和**ABI**。 + +在本例中,將使用 CCT 合同地址和 ABI。 您可以將 ABI 複製並粘貼到 **輸入 ABI** 字段中。 + +![](/img/build/tools/kaia-safe/kaia-safe-tx-builder-init.gif) + +**第 4 步:** 選擇一種方法並填寫交易信息 + +您可以從下拉菜單中選擇一種方法。 在這種情況下,我們選擇**轉移**方法。 要完成這一步,您必須填寫交易信息,如 **收件人(地址)** 和 **金額(uint256)**。 + +注:數值為無符號整數,不含小數。 在這個例子中,CCT 標記有 18 個小數。 因此,如果要發送 10 個 CCT,就必須輸入 10000000000000000000。 + +![](/img/build/tools/kaia-safe/kaia-safe-tx-builder-details.gif) + +**第 5 步:** 點擊**添加交易** + +**步驟 6:** 對每個收件人地址重複步驟 **4**、**5** 和 **6**。 + +**第 7 步:** 將所有操作添加到批次後,單擊**創建批次**。 + +![](/img/build/tools/kaia-safe/kaia-safe-tx-builder-batch.gif) + +**第 8 步:** 審查並提交交易 + +您可以查看整個批次。 準備就緒後,點擊**發送批次**,即可像其他安全交易一樣提交和執行交易。 From f9ca1d10cb1637e9f854ea82eb674b5f55306c9d Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:43 +0800 Subject: [PATCH 0119/2513] New translations use-kaia-safe.md (Chinese Traditional) --- .../tools/wallets/kaia-safe/use-kaia-safe.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md new file mode 100644 index 000000000000..63ef2858e715 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-safe/use-kaia-safe.md @@ -0,0 +1,169 @@ +# 使用 Kaia Safe + +## 創建安全 + +在這裡,您將瞭解到如何在 Kaia 網絡上創建 Safe 並評估其益處。 + +**步驟 1:** 導航至 [Kaia Safe App](https://safe.kaia.io/)。 通過在網絡瀏覽器上導航到應用程序,您可以探索 Kaia Safe 的功能。 + +**步驟 2:** 連接 [錢包](https://docs.ethhub.io/using-ethereum/wallets/intro-to-ethereum-wallets/)。 目前,Kaia Safe 支持多種錢包,如 [Kaia Wallet](https://docs.kaiawallet.io/)、[MetaMask](../../../tutorials/connecting-metamask.mdx) 錢包等。 + +在本指南中,我們將使用 MetaMask。 確保您的 MetaMask 錢包已添加 Kaia 網絡([Mainnet](../../../tutorials/connecting-metamask.mdx#connect-to-kaia-network)或 [Kairos Testnet](../../../tutorials/connecting-metamask.mdx#connect-to-kaia-network)),以便成功連接。 + +![](/img/build/tools/kaia-safe/kaia-safe-connect-wallet.png) + +**第 3 步:** 連接錢包後,點擊**創建賬戶**,併為新保險箱命名。 這個名字與您的安全賬戶相連,安全賬戶是一個多簽名錢包,可以保存和存儲您的所有資金。 + +**第 4 步:** 輸入有權提交和批准交易的地址,添加所有者/簽名者。 您可以添加任意數量的簽名者,也可以隨時刪除或替換任何簽名者。 + +**第 5 步:** 選擇安全賬戶交易需要多少次簽名確認才能獲得批准。 需要注意的是,我們的應用程序默認情況下只允許一個簽名者確認。 但建議使用大於 1 的閾值,以確保賬戶安全可靠。 良好的做法是以業主總數的 51% 為界限,例如三分之二、五分之三等,如下圖所示: + +![](/img/build/tools/kaia-safe/kaia-safe-create-acct.gif) + +**第 6 步:** 審查並部署安全系統 + +一旦您對 Safe 的所有參數完全滿意,您就可以提交創建 Safe 賬戶,並按照屏幕上的說明完成賬戶創建。 + +![](/img/build/tools/kaia-safe/kaia-safe-create-review.gif) + +恭喜您成功創建 Kaia Safe 賬戶! + +## 增加資產 + +在本節中,您將瞭解如何將資產(KAIA、FT、NFT)添加到安全賬戶並確保資金安全。 + +### KAIA 存款 + +以下是將 **KAIA** 添加到您的安全賬戶的步驟 + +**步驟 1:** 從賬戶控制面板複製您的安全地址。 + +![](/img/build/tools/kaia-safe/ks-deposit-copy-addr.png) + +**步驟 2:** 打開 Metamask 錢包,點擊**發送**,將資產發送到您的安全賬戶。 + +請注意,將資產發送到 Safe 賬戶有不同的方法。 您可以通過 [硬件錢包](https://www.ledger.com/academy/crypto-hardware-wallet)、[網絡錢包](https://medium.com/arcana-network-blog/why-web-wallets-e77c776e4d5e) 甚至智能合約發送。 在本例中,我們使用的是名為 MetaMask 的網絡錢包。 + +![](/img/build/tools/kaia-safe/ks-token-send-btn.png) + +**第 3 步:** 在搜索欄中輸入您的安全地址,如下所示。 + +**步驟 4:** 輸入**金額**,然後點擊**下一步**。 + +![](/img/build/tools/kaia-safe/ks-token-send-details.png) + +**第 5 步:** 確認交易並查看資產儀錶板。 您可以看到從 metamask 賬戶轉入 Kaia Safe 賬戶的金額。 + +![](/img/build/tools/kaia-safe/kaia-safe-klay-bal.png) + +### KIP-7 存款 + +現在,我們來看看如何通過以下步驟將 KIP7(可替代代幣)存入我們的保險箱。 + +**步驟 1:** 從賬戶控制面板複製您的安全地址。 + +![](/img/build/tools/kaia-safe/ks-deposit-ft-copy.png) + +**步驟 2:** 打開 Metamask 錢包,導航至**資產**選項卡。 + +**第 3 步:** 選擇您喜歡發送的令牌,然後點擊**發送**。 + +![](/img/build/tools/kaia-safe/ks-ft-send-btn.png) + +**步驟 4:** 重複上述**KAIA**存款的步驟**3**、**4**、**5**。 + +![](/img/build/tools/kaia-safe/ks-ft-send-details.png) + +**第 5 步:** 查看您的資產儀錶板,您可以看到 KIP7 代幣正在轉入您的安全賬戶。 同樣,您也可以將任何 Fungible 代幣轉入您的安全賬戶。 + +![](/img/build/tools/kaia-safe/ks-ft-balance.png) + +### KIP-17 (NFTs) 存款 + +現在,我們來看看如何按照以下步驟將 KIP17(不可兌換代幣)存入我們的保險箱。 + +您可以通過多種方式將 NFT 轉入您的安全賬戶。 下面是一個如何使用 [OpenSea](https://opensea.io/about) 將 NFT 轉入安全賬戶的示例。 + +1. 導航至您的 [OpenSea 帳戶](https://testnets.opensea.io/account) 資料頁面 +2. 導航至您喜歡轉接的 NFT。 確保選擇 Kaia 網絡(主網或 Kairos)上的 NFT +3. 在下一頁,點擊傳輸按鈕。 +4. 將保險箱地址粘貼到文本框中,然後傳輸到保險箱 +5. 在 Kaia Safe 的 "資產 "部分,您可以找到 OpenSea 的 NFT。 + +![](/img/build/tools/kaia-safe/kaia-safe-trf-nft.gif) + +有關轉移 NFT 的更多詳情,請參閱 OpenSea 提供的 [指南](https://support.opensea.io/en/articles/8866959-how-can-i-transfer-an-nft-using-opensea)。 + +## 發送資產 + +在本節中,您將學習如何從 Kaia Safe 賬戶發送 KAIA 和 KIP-7 令牌。 + +### 發送 KAIA 和 KIP7 令牌 + +**步驟 1:** 點擊側邊菜單中的**新交易**按鈕,選擇**發送代幣**,開始新的資產轉移。 + +![](/img/build/tools/kaia-safe/kaia-safe-init-send-token.gif) + +**第 2 步:** 選擇要轉移的資產。 + +- **KAIA** + +> 注:添加**收件人地址**和 KAIA 的**金額**,以發送轉賬 KAIA。 + +![](/img/build/tools/kaia-safe/kaia-safe-send-token-details.gif) + +- **KIP-7令牌** + +在資產下拉菜單中選擇要發送的代幣,如上圖所示。 + +> 注意:添加收件人地址和代幣數量,以傳輸 KIP7 代幣。 + +**第 3 步:** 審查並提交交易。 您需要用簽名者錢包簽署交易,一旦達到確認閾值,交易就會執行。 + +![](/img/build/tools/kaia-safe/kaia-safe-review-send-tokens.gif) + +### 發送 NFT + +在本節中,您將學習如何從 Kaia Safe 賬戶發送不可兌換的代幣。 + +**步驟 1:** 單擊側菜單中的**新交易**按鈕,選擇**發送 NFT**,開始新的資產轉賬。 + +![](/img/build/tools/kaia-safe/kaia-safe-init-send-nft.gif) + +**第 2 步:** 選擇要轉移的資產。 + +![](/img/build/tools/kaia-safe/kaia-safe-send-nft-details.gif) + +**第 3 步:** 審查並提交交易。 您需要用簽名者錢包簽署交易,一旦達到確認閾值,交易就會執行。 + +![](/img/build/tools/kaia-safe/kaia-safe-review-send-nft.gif) + +## 其他說明 + +在使用 Kaia Safe 時,您需要注意以下事項: + +### 交易費用 + +Kaia Safe 交易,無論是資產轉移還是合同互動,都會產生一筆費用,這筆費用將由執行交易的簽名者(通常是達到所需簽名門檻的最後一個簽名者)支付。 + +### 安全 Nonce + +出於安全考慮,使用 Safe 進行的交易必須按順序執行。 為此,我們為事務分配了一個名為 "**nonce**"的數字,以確保每個事務只能執行一次。 + +![](/img/build/tools/kaia-safe/ks-nounce.png) + +在任何給定的時間內,只能執行nonce為_上一次執行的事務+1_的事務。 非ce 值較高的事務將排隊等待執行。 因此,每當一個事務完成後,只要隊列中的下一個事務積累了足夠的簽名,就可以執行。 + +![](/img/build/tools/kaia-safe/ks-pending-tx.png) + +### 特定連鎖店地址 + +您可以選擇複製帶鏈前綴的地址 + +- 複製帶鏈前綴的地址: + +![](/img/build/tools/kaia-safe/ks-chain-spec-addr.png) + +從儀錶板複製安全地址粘貼到錢包時,如上圖所示,您可以點擊複選框選擇是否添加鏈名。 建議您不要選中它,以避免出現以下錯誤。 + +![](/img/build/tools/kaia-safe/ks-chain-addr-err.png) From 4f4a885f5250a128c6c73fa6a1fb5b2e2d44aed1 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:45 +0800 Subject: [PATCH 0120/2513] New translations kaia-wallet.md (Chinese Traditional) --- .../build/tools/wallets/kaia-wallet.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md new file mode 100644 index 000000000000..7f0c91ae062c --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/kaia-wallet.md @@ -0,0 +1,33 @@ +# Kaia 錢包 + +![](/img/banners/kaia-kaiawallet.png) + +Kaia 錢包是 Kaia 網絡的瀏覽器擴展錢包。 Kaia 錢包可在 Google Chrome 瀏覽器中使用,它提供了一種通過網絡瀏覽器與 Kaia 網絡進行交互的安全、可用的方式。 使用 Kaia 錢包,您可以存儲您的 KAIA 和基於 Kaia 的代幣並進行交易。 您還可以在 +即時簽署來自基於網絡的 dApps(去中心化應用程序)的請求。 + +- 從 Chrome 網上商店下載:[link](https://chromewebstore.google.com/detail/kaia-wallet/jblndlipeogpafnldhgmapagcccfchpi) + +開發人員請訪問 [https://docs.kaiawallet.io](https://docs.kaiawallet.io),瞭解如何使用 Kaia 錢包開發 dApp。 + +## 基於 PC 網絡瀏覽器的分散式高清錢包 + +Kaia Wallet 是 Chrome 瀏覽器的一個網絡擴展。 Kaia Wallet 針對桌面環境進行了優化。 + +Kaia 錢包提供用戶賬戶和密鑰的可管理性。 所有交易都透明地記錄在 Kaia 區塊鏈上,因此任何人都可以使用 [Kaiascope] 訪問交易歷史。 + +Kaia 錢包是一種分層確定性(HD)錢包,這意味著它能從單個種子短語無限生成分層樹狀結構的私鑰/公鑰。 種子短語由記憶代碼詞組成,因此比由隨機字母數字組成的短語更容易記憶。 用戶的私人密鑰經過加密並存儲在瀏覽器中。 + +通過上述功能,Kaia 錢包改善了當前區塊鏈體驗的安全性、透明度和用戶友好性。 不過,用戶必須負責管理自己的個人賬戶。 例如,如果用戶不記得他/她的種子短語,就沒有其他辦法恢復他/她的賬戶。 + +## 支持各種 Kaia 網絡和代幣 + +Kaia 錢包允許您存儲和交易所有基於 Kaia 的代幣,包括 KAIA。 默認情況下未加載的令牌可以通過粘貼其合約地址來插入。 您甚至可以在 Kaia 錢包上存儲和交易您自己的基於 Kaia 的自定義代幣! + +Kaia 錢包支持 Kaia 的 Kairos 測試網和主網。 此外,Kaia 錢包還支持基於 Kaia 的 dApp 開發人員的私有鏈,這些開發人員可能希望在其私有網絡中流通定製代幣。 + +## 簽署基於網絡的 dApp 交易 + +Kaia Wallet 在您和 dApp 之間架起了一座橋樑,使您能夠使用 Kaia Wallet 賬戶簽署從 dApp 流向您的交易/數據。 +Kaia 錢包也是開發人員處理[費用委託交易](../../../learn/transactions/transactions.md#fee-delegation)的輔助工具。 使用 Kaia 錢包,交易發送方和費用支付方都能迅速簽署費用委託交易。 + +[Kaiascope]: ../block-explorers/kaiascope.md From 96f8b403a8ed38759dc261b87845c7f0e3450d1c Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:46 +0800 Subject: [PATCH 0121/2513] New translations safepal-s1.md (Chinese Traditional) --- .../wallets/hardware-wallets/safepal-s1.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md new file mode 100644 index 000000000000..f83930e3e3e5 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/hardware-wallets/safepal-s1.md @@ -0,0 +1,107 @@ +# SafePal S1 + +![](/img/banners/kaia-safepal.png) + +## 導言 + +硬件錢包重新發明瞭輪子,將私鑰(簽署交易時需要)保存在與互聯網連接分離的離線環境中,避免了依賴互聯網連接的軟件錢包所帶來的大量黑客攻擊或威脅。 這樣,用戶的加密資產就更安全了,也不會受到軟件錢包帶來的網絡危險的影響。 + +與 Kaia 集成的硬件錢包之一是 **SafePal S1 硬件錢包**。 SafePal S1 是一款加密貨幣硬件錢包,旨在為大眾提供一個安全、簡單、愉快的加密貨幣管理解決方案。 SafePal 是一款硬件錢包,用於保護和管理加密貨幣和 NFT,如比特幣、KAIA、Kaia Compatible Tokens(KCT)、以太幣和 ERC20 代幣等。 + +在本指南中,您將 + +- 使用 SafePal S1 硬件錢包添加、接收和發送 Klay 以及任何 Kaia 兼容代幣(KCT) + +## 先決條件 + +- [SafePal 硬件錢包設置](https://safepalsupport.zendesk.com/hc/en-us/articles/360046051752) + +## 入門 + +在成功設置錢包後,接下來就是查看錢包的運行情況了。 在本教程中,我們將使用 SafePal S1 硬件錢包添加、接收和發送 KAIA 原生代幣以及任何 Kaia 兼容代幣(KCT)。 + +### 添加 KAIA 原生硬幣 + +請按照以下步驟將 KAIA 原生幣添加到您的硬件錢包中: + +**第一步**:打開安全寶應用程序,在 "錢包 "選項卡中點擊省略號圖標,然後點擊 "管理硬幣 "按鈕,如下圖所示: + +![](/img/build/tools/step1-add-klay.png) + +**步驟 2**:選擇要添加的硬幣(本例中為 KAIA),然後點擊底部的**添加硬幣**。 + +![](/img/build/tools/step2-add-klay.png) + +**第 3 步**: 在應用程序和 S1 硬件錢包之間來回掃描,以便在應用程序和設備之間正確同步數據。 + +**第 4 步**:成功添加硬幣後,您就可以在 S1 設備上的 "資產管理 "標籤中查看它們了。 + +![](/img/build/tools/step4-add-klay.png) + +請注意,上述步驟適用於添加任何 Kaia 兼容令牌。 + +### 接收 KAIA 原生硬幣 + +成功添加硬幣(KAIA、KCT)後,您可以在 S1 設備上的 "資產管理 "\*\* 標籤中查看它們。 您可以使用以下方法接收 KAIA 本地硬幣: + +#### 使用掌上安全應用程序 + +1. 選擇 KAIA,可選擇交換、接收和發送,點擊接收 +2. 您可以為錢包複製 KAIA 地址,保存二維碼,或讓對方掃描您手機上的二維碼。 + +#### 使用安全寶 S1 硬件錢包 + +**第 1 步** 啟動 SafePal S1 設備,導航至 "資產管理 + +**第 2 步** 選擇 KAIA 作為您希望從他人處接收的硬幣。 + +**第 3 步** 點擊 "接收 "按鈕 + +步驟 4\*\*\*\* 輸入 S1 設備的 PIN 碼。 + +**第 5 步** 然後,您可以查看硬幣地址的二維碼,並將其展示給他人,以便他們掃描並將硬幣發送給您。 + +![](/img/build/tools/sphw-rec-banner.png) + +請注意,上述步驟適用於接收任何 Kaia 兼容代幣。 + +### 發送 KAIA 原生硬幣 + +要從您的硬件錢包發送 KAIA 原生幣,請按照以下步驟操作: + +**第1步** 在安全寶應用程序上,選擇您要發送的硬幣(在我們的例子中為KAIA),然後點擊**發送**。 + +![](/img/build/tools/step1-send-klay.png) + +**第 2 步** 輸入目的地地址和金額,然後點擊 "下一步 "再次確認詳細信息。 確保在此步驟中驗證您的轉賬詳情。 + +![](/img/build/tools/step2-send-klay.png) + +步驟 3\*\*\*\* 啟動 S1 設備的簽署程序。 + +在此步驟中,安全寶應用程序上將顯示一個包含轉賬詳情的 QR 碼(如下圖所示)。 啟動 S1 硬件錢包,進入**掃描**選項卡。 下一步是掃描 SafePal 應用程序上的 QR 碼。 這樣做可確保 S1 設備在脫機環境下接收傳輸詳細信息。 + +![](/img/build/tools/step3-send-klay.png) + +**第 4**步 在 S1 設備上籤署轉讓協議 + +成功掃描轉賬詳情後,您將在 S1 設備上看到轉賬詳情(金額、費用、加油限額等)。 接下來是驗證詳細信息並輸入 PIN 碼。 + +![](/img/build/tools/step4-send-klay.png) + +**第 5 步** 將簽名同步回安全寶應用程序 + +在 S1 設備上成功簽署傳輸後,您將看到一組動態 QR 碼顯示在 S1 設備上。 在安全寶應用程序中,點擊 "下一步 "打開手機攝像頭。 使用 SafePal 應用程序掃描 S1 設備上顯示的動態 QR 碼。 + +這樣做可以確保應用程序收到二維碼中包含的簽名,並準備好向區塊鏈(Kaia)廣播轉賬。 + +步驟 6\*\*\*\* 點擊應用程序上的**廣播**,等待傳輸完成 + +![](/img/build/tools/step6-send-klay.png) + +請注意,上述步驟適用於發送任何 Kaia 兼容令牌。 + +## 更多參考資料 + +- [SafePal S1 升級說明](https://www.safepal.com/en/upgrade/s1) +- [SafePal S1 用戶手冊](https://docs.safepal.io/safepal-hardware-wallet/user-manual) From 805c26a58f666ebed1776c90e8d1b3a2901e3bb5 Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:47 +0800 Subject: [PATCH 0122/2513] New translations particle.md (Chinese Traditional) --- .../wallets/wallet-libraries/particle.md | 331 ++++++++++++++++++ 1 file changed, 331 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md new file mode 100644 index 000000000000..a7bea487b28f --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md @@ -0,0 +1,331 @@ +--- +sidebar_label: Particle Network +--- + +# 將粒子網絡整合到 dApp 中 + +![](/img/banners/kaia-particle.png) + +## 導言 + +[粒子網絡](https://particle.network) 提供錢包抽象服務,以簡化用戶入門。 + +[粒子連接 SDK](https://developers.particle.network/api-reference/connect/desktop/web) 支持與 EVM 兼容的鏈,包括 Kaia 及其測試網。 它允許使用[社交和 Web3 登錄選項](https://developers.particle.network/api-reference/connect/desktop/web#wallet-connectors)進行 2 鍵登錄,所有操作都在一個模態中完成。 + +通過 Particle Network,Kaia 開發人員可以為 Kaia 主網和測試網嵌入社交登錄,讓用戶只需使用他們的谷歌、電子郵件、X 等信息就能在您的應用程序中生成和使用錢包。 + +本頁提供在基於 Kaia 的應用程序中實施 Particle Connect 的概述和教程,以幫助您開始集成過程。 + +## 先決條件 + +- 使用 TypeScript 和 Tailwind CSS 設置的 [Next.js 項目](https://nextjs.org/docs/getting-started/installation) + - 您可以運行: `npx create-next-app@latest` 來創建它。 +- 來自 [Particle Dashboard](https://dashboard.particle.network)的**項目 ID**、**客戶密鑰**和**應用程序 ID**。 + +## 安裝 + +要在您的 dApp 中利用 Particle Network,特別是 Particle Connect,您首先需要安裝所需的庫。 Particle Connect SDK 通過一個界面簡化了錢包創建、用戶登錄和區塊鏈交互過程。 它支持社交登錄和 Web3 登錄,便於訪問。 + +要安裝 SDK 以及 Viem(連接後臺)和 ethers(演示 EIP-1193 提供商),請運行 + +```shell +yarn add @particle-network/connectkit viem@^2 ethers +``` + +## 初始化粒子連接 + +首先,我們將設置 Particle Connect,這是 Particle 的旗艦認證 SDK。 在項目根目錄下創建名為 `ConnectKit.tsx` 的新文件。 該文件將容納 "ParticleConnectKit "組件,它是已配置的 "ConnectKitProvider "實例的包裝器,是配置 Particle Connect 的主要接口(我們稍後將以編程方式介紹)。 + +接下來,前往 [Particle dashboard](https://dashboard.particle.network),創建一個新的網絡應用程序項目,並獲取以下必要的 API 密鑰: + +- **`projectId`** - 項目的唯一標識符。 +- **`clientKey`** - 客戶端特有的密鑰。 +- **`appId`** - 應用程序的 ID。 + +將這些 API 密鑰存儲在`.env`文件中,如下所示: + +```plaintext +next_public_project_id='project_id' +next_public_client_key='client_key' +next_public_app_id='app_id' +``` + +現在,將以下代碼添加到您的 `ConnectKit.tsx` 文件中: + +```js +"use client"; + +import React from "react"; +import { ConnectKitProvider, createConfig } from "@particle-network/connectkit"; +import { authWalletConnectors } from "@particle-network/connectkit/auth"; +import { defineChain } from "@particle-network/connectkit/chains"; +import { wallet, EntryPosition } from "@particle-network/connectkit/wallet"; + +const kaiaMainnet = defineChain({ + id: 8217, + name: "Kaia", + nativeCurrency: { + decimals: 18, + name: "KAIA", + symbol: "KAIA", + }, + rpcUrls: { + default: { + http: ["https://public-en.node.kaia.io"], + }, + }, + blockExplorers: { + default: { name: "Explorer", url: "https://kaiascope.com/" }, + }, + testnet: false, +}); + +const kaiaTestnet = defineChain({ + id: 1001, + name: "Kaia Testnet", + nativeCurrency: { + decimals: 18, + name: "KAIA", + symbol: "KAIA", + }, + rpcUrls: { + default: { + http: ["https://public-en-kairos.node.kaia.io"], + }, + }, + blockExplorers: { + default: { name: "Explorer", url: "https://kairos.kaiascope.com/" }, + }, + testnet: true, +}); + +const config = createConfig({ + projectId: process.env.NEXT_PUBLIC_PROJECT_ID!, + clientKey: process.env.NEXT_PUBLIC_CLIENT_KEY!, + appId: process.env.NEXT_PUBLIC_APP_ID!, + + walletConnectors: [authWalletConnectors({})], + + plugins: [ + wallet({ + entryPosition: EntryPosition.BR, // Positions the modal button at the bottom right on login + visible: true, // Determines if the wallet modal is displayed + }), + ], + chains: [kaiaMainnet, kaiaTestnet], +}); + +export const ParticleConnectkit = ({ children }: React.PropsWithChildren) => { + return {children}; +}; +``` + +該組件的幾乎所有屬性都可以配置,從支持的不同登錄類型到模態的視覺外觀;要探索這些不同的選項,請訪問 [Particle 文檔](https://developers.particle.network/api-reference/connect/desktop/web#configuration)。 + +## 將 Particle Connect 集成到您的應用程序中 + +配置完成後,用 "ParticleConnectKit "組件封裝您的應用程序,以啟用對 Particle Connect SDK 的全局訪問。 要做到這一點,請對 `src` 目錄中的 `layout.tsx` 文件作如下修改: + +```typescript +import { ParticleConnectkit } from '@/connectkit'; +import type { Metadata } from 'next'; +import { Inter } from 'next/font/google'; +import './globals.css'; + +const inter = Inter({ subsets: ['latin'] }); + +export const metadata: Metadata = { + title: 'Particle Connectkit App', + description: 'Generated by create next app', +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + {children} + + + ); +} +``` + +### 連接錢包 + +設置好 "layout.tsx "文件後,就可以通過中央**連接錢包**按鈕連接用戶了。 您可以從 `@particle-network/connectkit` 中導入 `ConnectButton` 來實現這一功能。 一旦用戶登錄,"連接按鈕 "就會變成一個嵌入式部件。 + +```js +import { ConnectButton, useAccount } from '@particle-network/connectkit'; + +export const App = () => { + const { address, isConnected, chainId } = useAccount(); + + // Standard ConnectButton utilization + return ( +
+ + {isConnected && ( + <> +

Address: {address}

+

Chain ID: {chainId}

+ + )} +
+ ); +}; +``` + +### 獲取賬戶和餘額 + +通過 `ConnectButton` 組件成功連接錢包(或社交登錄)後,就可以檢索用戶的相關 Kaia 地址。 此外,您還可以通過 "publicClient"(利用 Particle Connect 已設置的 Viem 提供商)檢索其當前餘額(以 KAIA 為單位)。 + +```js +"use client"; + +import { useState, useEffect } from "react"; +import { + ConnectButton, + useAccount, + usePublicClient, +} from "@particle-network/connectkit"; +import { formatEther } from "viem"; + +export default function Home() { + // Account-related states + const { isConnected, address, chain } = useAccount(); + const publicClient = usePublicClient(); + + // State variable for balance + const [balance, setBalance] = useState(""); + + // Fetch and display user balance when connected + useEffect(() => { + const fetchBalance = async () => { + if (address) { + try { + const balanceResponse = await publicClient.getBalance({ address }); + const balanceInEther = formatEther(balanceResponse); + setBalance(balanceInEther); + } catch (error) { + console.error("Error fetching balance:", error); + } + } + }; + + if (isConnected) { + fetchBalance(); + } + }, [isConnected, address, publicClient]); + + return ( +
+ + {isConnected && ( +
+

Account Details

+

+ Address: {address || "Loading..."} +

+

+ Balance: {balance || "Loading..."} {chain?.nativeCurrency.symbol} +

+
+ )} +
+ ); +} +``` + +### 斷開錢包連接 + +用戶登錄後,可以通過源自 `useDisconnect` 的 `disconnect` 以編程方式強制註銷。 這將斷開當前活動會話與 dApp 的連接,使用戶返回初始狀態。 + +```js +import { useDisconnect } from "@particle-network/connectkit"; + +const { disconnect } = useDisconnect(); + +// Inside your component's JSX + + +``` + +### 獲取用戶信息 + +當用戶通過社交賬戶連接時,可以使用 `useParticleAuth()` 鉤子訪問 `userinfo`,其中包括用戶的連接方式、賬戶創建日期、姓名、電子郵件和其他[來自 Particle Auth 的相關信息](https://developers.particle.network/api-reference/connect/desktop/web#fetch-user-information-with-particle-auth)。 + +```js +import { useAccount, useParticleAuth, useWallets } from '@particle-network/connectkit'; +import { useState, useEffect } from 'react'; + +export const App = () => { + const { getUserInfo } = useParticleAuth(); + const { isConnected } = useAccount(); + + // Retrieve the primary wallet from the Particle Wallets + const [primaryWallet] = useWallets(); + + // Store userInfo in a useState to use it in your app + const [userInfo, setUserInfo] = useState(null); + + useEffect(() => { + const fetchUserInfo = async () => { + // Use walletConnectorType as a condition to avoid account not initialized errors + if (primaryWallet?.connector?.walletConnectorType === 'particleAuth') { + const userInfo = await getUserInfo(); + setUserInfo(userInfo); + } + }; + + fetchUserInfo(); + }, [isConnected, getUserInfo]); + + return

Name: {userInfo.name || 'N/A'}

; +}; +``` + +### 發送本地事務 + +Particle Connect 允許您利用現有的 EIP-1193 提供商,在本例中,我們創建了一個帶有 `ethers` 的提供商實例來發送轉賬交易。 + +```js +import { useWallets } from "@particle-network/connectkit"; +import { ethers, type Eip1193Provider } from "ethers"; + +const [primaryWallet] = useWallets(); + +const executeTransaction = async () => { + // Get the provider from the primary wallet's connector + const EOAprovider = await primaryWallet.connector.getProvider(); + + // Initialize a custom provider using ethers.js with the obtained EIP-1193 provider + const customProvider = new ethers.BrowserProvider(EOAprovider as Eip1193Provider, "any"); + + // Get the signer (an abstraction of the account that can sign transactions) + const signer = await customProvider.getSigner(); + + // Send a transaction with specified recipient address, amount (0.01 ETH), and empty data + await signer.sendTransaction({ + to: recipientAddress, + value: parseEther("0.01"), + data: "0x", + }); +}; + + +``` + +## 下一步工作 + +您可以在 [Particle Connect 文檔](https://developers.particle.network/api-reference/connect/desktop/web#key-react-hooks-for-particle-connect) 中找到可用鉤子的完整列表。 + +有關 Particle Network(Particle Connect、Particle Auth 和其他 SDK)的其他指南,請參閱 [Particle Network 文檔](https://developers.particle.network) 和 [Particle Network GitHub 賬戶](https://github.com/Particle-Network)。 此外,您還可以訪問 [Particle Network 博客](https://blog.particle.network) 瞭解有關 Particle Network 服務、即將發佈的版本和技術棧的更多信息。 From e261eadefe1beef955abd73cc6cd04073eef321f Mon Sep 17 00:00:00 2001 From: kaia-docs Date: Wed, 8 Jan 2025 10:52:48 +0800 Subject: [PATCH 0123/2513] New translations privy.md (Chinese Traditional) --- .../tools/wallets/wallet-libraries/privy.md | 452 ++++++++++++++++++ 1 file changed, 452 insertions(+) create mode 100644 i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md new file mode 100644 index 000000000000..53ac8995c507 --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/privy.md @@ -0,0 +1,452 @@ +--- +sidebar_label: Privy +--- + +# 將 Privy 整合到 dApp 中 + +![](/img/banners/kaia-privy.png) + +## 導言 + +[Privy](https://docs.privy.io/)是一個簡單的錢包工具包,用於在 web3 中進行漸進式身份驗證。 有了 Privy,開發人員可以使用傳統和 web3 身份驗證方法登錄用戶,實現漸進式登錄,提高用戶轉化率。 + +在本指南中,您將使用 Privy 錢包工具包將 Metamask、Coinbase Wallet 等外部錢包以及 Google、Twitter、Email 等社交登錄信息整合到您在 Kaia 網絡上構建的 dApp 中。 + +## 先決條件 + +- 一個正在運行的 Next.js 項目。 您可以克隆 Privy 提供的 [create-next-app](https://github.com/privy-io/create-next-app) 模板來學習本教程。 +- 來自[Privy 開發者控制檯](https://console.privy.io/)的[應用程序ID](https://docs.privy.io/guide/console/api-keys#app-id) + +## 開始 + +克隆模板是一個簡單的 Next.js Privy Auth 入門模板,包含三個主要核心文件: + +- **index.tsx**:該文件處理用戶的登錄驗證。 +- **app.tsx**:該文件處理 Privy SDK 的初始化,並用 PrivyProvider 封裝我們的組件。 +- **dashboard.tsx**:這是用戶登錄後重定向到的頁面。 它可以測試每種登錄方法(谷歌、Twitter、電子郵件、錢包)。 對於本指南來說,更重要的是,我們將在使用 MetaMask 等外部錢包連接時執行某些功能。 這些功能包括:獲取用戶餘額、向另一個賬戶發送 KAIA、部署合約、與智能合約交互。 + +## 安裝 + +要在 dApp 中使用 Privy,必須先安裝所需的庫和 SDK。 因此,您需要設置 ethers.js,以及 [Privy React Auth SDK](https://www.npmjs.com/package/@privy-io/react-auth)。 您可以將 Privy 與 [etherthers.js](https://docs.ethers.org/v6/)、[web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html)、[viem](https://viem.sh/) 庫一起使用,與 Kaia 區塊鏈進行通信。 在本指南中,我們將使用 ethers.js 庫。 + +打開項目文件夾,運行下面的命令安裝所需的庫和 SDK: + +```bash +npm install —save @privy-io/react-auth +npm install --save ethers +``` + +## 初始化特權和特權提供程序 + +成功安裝所需的庫後,接下來就是用[PrivyProvider](https://docs.privy.io/reference/react-auth/modules#privyprovider)來封裝組件。 + +PrivyProvider 應封裝任何將使用 Privy SDK 的組件。 為此,請打開 _app.tsx 文件並粘貼下面的代碼: + +```tsx +import '../styles/globals.css'; +import type {AppProps} from 'next/app'; +import Head from 'next/head'; +import {PrivyProvider} from '@privy-io/react-auth'; +import {useRouter} from 'next/router'; +function MyApp({Component, pageProps}: AppProps) { + const router = useRouter(); + return ( + <> + + Privy Auth Starter + + + router.push('/dashboard')} + > + + + + ); +} +export default MyApp; +``` + +值得注意的是,特權提供者具有以下屬性: + +- 您的 `appID` 需要在 .env 文件中更新。 您可以使用 Privy 為測試目的提供的以下 "測試應用程序 ID:clpispdty00ycl80fpueukbhl "開始使用。 +- 一個可選的 `onSuccess` 回調,用戶成功登錄後執行該回調。 +- 一個可選的 "createPrivyWalletOnLogin "布爾值,用於配置是否希望用戶在登錄時創建嵌入式錢包。 +- 可選配置屬性,用於自定義上機體驗。 + +## 連接錢包 + +在 `index.tsx` 文件的 LoginPage 函數中,調用 [login](https://docs.privy.io/reference/react-auth/interfaces/PrivyInterface#login) 方法,打開 Privy 登錄模態,提示用戶登錄。 + +```ts + import {usePrivy} from '@privy-io/react-auth'; + + + const {login} = usePrivy(); + return ( +
+ +
+ ); +``` + +![](/img/build/tools/privy-connect-banner.png) + +## 獲取賬戶和餘額 + +通過上面的步驟,你會發現我們是通過連接錢包登錄的。 在這一步中,我們將檢索用戶的相關 Kaia 地址。 此外,您還可以使用 ethers.js 檢索其當前餘額(以 KAIA 為單位)。 + +在 dashboard.tsx 文件中,粘貼以下代碼: + +```tsx +import {useRouter} from 'next/router'; +import React, {useEffect, useState} from 'react'; +import {usePrivy, useWallets} from '@privy-io/react-auth'; +const {ready, authenticated} = usePrivy(); +const {wallets} = useWallets(); + +useEffect(() => { + if (ready && !authenticated) { + router.push('/'); + } + }, [ready, authenticated, router]); + +const [balance, setBalance] = useState(""); +async function getBalance() { + if (!authenticated) { + console.log("user not authenticated yet"); + return; + } + const provider = await wallets[0].getEthersProvider(); + const signer = provider.getSigner(); + // Get user's Ethereum public address + const address = await signer.getAddress(); + console.log(address); + + // Get user's balance in ether + const balance = ethers.formatEther( + (await provider.getBalance(address)).toString() // balance is in wei + ); + console.log(balance); + setBalance(balance); +} + +return ( + {ready && authenticated ? ( +
+ +

{balance ? ` User with ${wallets[0].address} has ${balance} KAIA` : "None"}

+
+) : null } +); +``` + +## 斷開錢包連接 + +斷開錢包 +用戶登錄後,可以通過從 usePrivy 派生的 `logout` 方法以編程方式註銷用戶。 這將斷開當前活動會話與 dApp 的連接,使用戶返回初始狀態。 + +```tsx +const { logout } = usePrivy(); + + +return ( + {ready && authenticated ? ( +
+ +
+) : null } + ); +``` + +## 獲取用戶信息 + +Privy 為用戶提供了使用 web3 錢包和社交登錄連接到 dApp 的便利。 如果用戶使用自己的社交賬戶(如 twitter、discord、谷歌賬戶等)連接到 dApp,您就可以從 `usePrivy` 中調用 `user`,這會返回一個包含用戶 ID、電子郵件、錢包地址等關鍵信息的對象。 + +```tsx +const { user } = usePrivy(); + +return ( + {ready && authenticated ? ( +
+
+

User object

+