Files
2025-02-24 14:52:16 +00:00

72 lines
49 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-tutorials/deploying-contracts/using-foundry" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.5.2">
<title data-rh="true">使用 Foundry 部署智能合约 | Status Network Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" property="og:locale" content="zh_CN"><meta data-rh="true" property="og:locale:alternate" content="en_US"><meta data-rh="true" property="og:locale:alternate" content="ko_KR"><meta data-rh="true" property="og:locale:alternate" content="ja_JP"><meta data-rh="true" name="docusaurus_locale" content="zh"><meta data-rh="true" name="docsearch:language" content="zh"><meta data-rh="true" name="keywords" content="status network, blockchain, web3, documentation, gasless transactions, social network, cryptocurrency"><meta data-rh="true" name="author" content="Status Network"><meta data-rh="true" property="og:image" content="https://docs.status.network/img/sn-social-card.png"><meta data-rh="true" property="og:url" content="https://docs.status.network"><meta data-rh="true" property="og:type" content="website"><meta data-rh="true" property="og:site_name" content="Status Network Documentation"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="twitter:site" content="@statusL2"><meta data-rh="true" name="twitter:title" content="Status Network Documentation"><meta data-rh="true" name="twitter:description" content="Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions."><meta data-rh="true" name="twitter:image" content="https://docs.status.network/img/sn-social-card.png"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="使用 Foundry 部署智能合约 | Status Network Documentation"><meta data-rh="true" name="description" content="本教程将指导您使用 Foundry 在 Status Network 测试网上部署智能合约。"><meta data-rh="true" property="og:description" content="本教程将指导您使用 Foundry 在 Status Network 测试网上部署智能合约。"><link data-rh="true" rel="icon" href="/zh/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.status.network/zh/tutorials/deploying-contracts/using-foundry"><link data-rh="true" rel="alternate" href="https://docs.status.network/tutorials/deploying-contracts/using-foundry" hreflang="en-US"><link data-rh="true" rel="alternate" href="https://docs.status.network/zh/tutorials/deploying-contracts/using-foundry" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://docs.status.network/ko/tutorials/deploying-contracts/using-foundry" hreflang="ko-KR"><link data-rh="true" rel="alternate" href="https://docs.status.network/ja/tutorials/deploying-contracts/using-foundry" hreflang="ja-JP"><link data-rh="true" rel="alternate" href="https://docs.status.network/tutorials/deploying-contracts/using-foundry" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://M7J93TRPJ9-dsn.algolia.net" crossorigin="anonymous"><link rel="search" type="application/opensearchdescription+xml" title="Status Network Documentation" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.68418c1e.css">
<script src="/zh/assets/js/runtime~main.996b812f.js" defer="defer"></script>
<script src="/zh/assets/js/main.4e21ae75.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/sn_logo.svg" alt="Status Network Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/zh/img/sn_logo.svg" alt="Status Network Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Status Network Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link language-dropdown"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/tutorials/deploying-contracts/using-foundry" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en-US">English</a></li><li><a href="/zh/tutorials/deploying-contracts/using-foundry" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh-CN">中文</a></li><li><a href="/ko/tutorials/deploying-contracts/using-foundry" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ko-KR">한국어</a></li><li><a href="/ja/tutorials/deploying-contracts/using-foundry" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ja-JP">日本語</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/zh/">简介</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/">🌴 Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/introduction/quick-start">⚡ 快速开始</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/zh/tokenomics/economic-model">代币经济学</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tokenomics/economic-model">🤝 经济模型</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tokenomics/public-funding">💰 公共资金</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tokenomics/karmic-tokenomics">🐉 因果代币经济学</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tokenomics/snt-staking">💎 SNT 质押</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/zh/general-info/network-details">基本信息</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/general-info/network-details">🌐 网络详情</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/general-info/add-status-network"> 添加 Status 网络</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" tabindex="0" href="/zh/general-info/contract-addresses/tokens">🏡 合约地址</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/general-info/contract-addresses/tokens">🪙 代币</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/general-info/contract-addresses/testnet-contracts">🧪 测试网合约</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" tabindex="0" href="/zh/general-info/bridge/bridging-testnet">🌉 跨链桥</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/general-info/bridge/bridging-testnet">🧪 测试网跨链</a></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/zh/tools/rpc">工具</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tools/rpc">🔌 RPC</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tools/bridge">🌉 跨链桥</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tools/testnet-faucets">🚰 测试网水龙头</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tools/block-explorers">🔎 区块浏览器</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/zh/tutorials/deploying-contracts/using-hardhat">教程</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" tabindex="0" href="/zh/tutorials/deploying-contracts/using-hardhat">🚀 部署智能合约</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tutorials/deploying-contracts/using-hardhat">🎩 使用 Hardhat</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/tutorials/deploying-contracts/using-foundry">⚒️ 使用 Foundry</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/tutorials/deploying-contracts/using-remix">🎛️ 使用 Remix</a></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/zh/other/official-links">其他文档</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/other/official-links">🔗 官方链接</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">教程</span><meta itemprop="position" content="1"></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">🚀 部署智能合约</span><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">⚒️ 使用 Foundry</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><header><h1>使用 Foundry 部署智能合约</h1></header>
<p>本教程将指导您使用 Foundry 在 Status Network 测试网上部署智能合约。</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="前提条件">前提条件<a href="#前提条件" class="hash-link" aria-label="前提条件的直接链接" title="前提条件的直接链接"></a></h2>
<p>开始之前,请确保您具备以下条件:</p>
<ul>
<li><strong>Foundry</strong>: 从<a href="https://book.getfoundry.sh/getting-started/installation" target="_blank" rel="noopener noreferrer">官方 Foundry 文档</a>安装</li>
<li><strong>以太坊钱包</strong>: Status Network 测试网的私钥</li>
<li><strong>测试网 ETH</strong>: 您需要 Status Network 测试网 ETH<!-- -->
<ul>
<li>从我们的<a href="/zh/tools/testnet-faucets">水龙头</a>获取 Status Network 测试网 ETH</li>
</ul>
</li>
<li><strong>基础知识</strong>: 熟悉 Solidity 和命令行</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="您将完成">您将完成<a href="#您将完成" class="hash-link" aria-label="您将完成的直接链接" title="您将完成的直接链接"></a></h2>
<ul>
<li>初始化 Foundry 项目</li>
<li>编写基本的以太坊智能合约</li>
<li>配置 Foundry 以部署到 Status Network 测试网</li>
<li>部署您的智能合约</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="步骤">步骤<a href="#步骤" class="hash-link" aria-label="步骤的直接链接" title="步骤的直接链接"></a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-初始化-foundry-项目">1. 初始化 Foundry 项目<a href="#1-初始化-foundry-项目" class="hash-link" aria-label="1. 初始化 Foundry 项目的直接链接" title="1. 初始化 Foundry 项目的直接链接"></a></h3>
<p>首先,创建一个新的 Foundry 项目:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain"># 创建新项目</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">forge init hello_status</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">cd hello_status</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"># 创建 .env 文件存储私钥</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">touch .env</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">echo &quot;PRIVATE_KEY=your_private_key_here&quot; &gt;&gt; .env</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-编写智能合约">2. 编写智能合约<a href="#2-编写智能合约" class="hash-link" aria-label="2. 编写智能合约的直接链接" title="2. 编写智能合约的直接链接"></a></h3>
<p><code>src/Counter.sol</code> 替换为 <code>HelloWorld.sol</code></p>
<div class="language-solidity codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-solidity codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">// SPDX-License-Identifier: MIT</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">pragma solidity ^0.8.24;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">contract HelloWorld {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> string public greet = &quot;Hello, Status Network!&quot;;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> function setGreet(string memory _greet) public {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> greet = _greet;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> function getGreet() public view returns (string memory) {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> return greet;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="3-为-status-network-配置-foundry">3. 为 Status Network 配置 Foundry<a href="#3-为-status-network-配置-foundry" class="hash-link" aria-label="3. 为 Status Network 配置 Foundry的直接链接" title="3. 为 Status Network 配置 Foundry的直接链接"></a></h3>
<p>创建或更新 <code>foundry.toml</code></p>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">[profile.default]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">src = &quot;src&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">out = &quot;out&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">libs = [&quot;lib&quot;]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">solc = &quot;0.8.24&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">[rpc_endpoints]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">status_testnet = &quot;https://public.sepolia.rpc.status.network&quot;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="4-部署合约">4. 部署合约<a href="#4-部署合约" class="hash-link" aria-label="4. 部署合约的直接链接" title="4. 部署合约的直接链接"></a></h3>
<p>创建部署脚本 <code>script/Deploy.s.sol</code></p>
<div class="language-solidity codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-solidity codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">// SPDX-License-Identifier: MIT</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">pragma solidity ^0.8.24;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">import &quot;forge-std/Script.sol&quot;;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">import &quot;../src/HelloWorld.sol&quot;;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">contract DeployScript is Script {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> function run() external {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> uint256 deployerPrivateKey = vm.envUint(&quot;PRIVATE_KEY&quot;);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> vm.startBroadcast(deployerPrivateKey);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> HelloWorld hello = new HelloWorld();</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> console.log(&quot;HelloWorld deployed to:&quot;, address(hello));</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> vm.stopBroadcast();</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>使用 forge 部署:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain"># 加载环境变量</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">source .env</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"># 部署到 Status Network 测试网</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">forge script script/Deploy.s.sol:DeployScript \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> --rpc-url https://public.sepolia.rpc.status.network \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> --broadcast \</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="5-与合约交互">5. 与合约交互<a href="#5-与合约交互" class="hash-link" aria-label="5. 与合约交互的直接链接" title="5. 与合约交互的直接链接"></a></h3>
<p>创建交互脚本 <code>script/Interact.s.sol</code></p>
<div class="language-solidity codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-solidity codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">// SPDX-License-Identifier: MIT</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">pragma solidity ^0.8.24;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">import &quot;forge-std/Script.sol&quot;;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">import &quot;../src/HelloWorld.sol&quot;;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">contract InteractScript is Script {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> function run() external {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> uint256 deployerPrivateKey = vm.envUint(&quot;PRIVATE_KEY&quot;);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> address contractAddress = address(0x...); // 替换为您的合约地址</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> vm.startBroadcast(deployerPrivateKey);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> HelloWorld hello = HelloWorld(contractAddress);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> // 读取当前问候语</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> string memory currentGreeting = hello.getGreet();</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> console.log(&quot;Current greeting:&quot;, currentGreeting);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> // 更新问候语</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> hello.setGreet(&quot;Hello from Foundry!&quot;);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> vm.stopBroadcast();</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>运行交互脚本:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">forge script script/Interact.s.sol:InteractScript \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> --rpc-url https://public.sepolia.rpc.status.network \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> --broadcast</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="6-使用-cast-命令快速交互">6. 使用 Cast 命令快速交互<a href="#6-使用-cast-命令快速交互" class="hash-link" aria-label="6. 使用 Cast 命令快速交互的直接链接" title="6. 使用 Cast 命令快速交互的直接链接"></a></h3>
<p>您也可以使用 <code>cast</code> 与合约交互:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain"># 读取问候语</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">cast call &lt;CONTRACT_ADDRESS&gt; &quot;getGreet()&quot; \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> --rpc-url https://public.sepolia.rpc.status.network</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"># 设置新问候语</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">cast send &lt;CONTRACT_ADDRESS&gt; &quot;setGreet(string)&quot; &quot;New greeting!&quot; \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> --private-key $PRIVATE_KEY \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> --rpc-url https://public.sepolia.rpc.status.network</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="7-测试">7. 测试<a href="#7-测试" class="hash-link" aria-label="7. 测试的直接链接" title="7. 测试的直接链接"></a></h3>
<p>创建测试文件 <code>test/HelloWorld.t.sol</code></p>
<div class="language-solidity codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-solidity codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">// SPDX-License-Identifier: MIT</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">pragma solidity ^0.8.24;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">import &quot;forge-std/Test.sol&quot;;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">import &quot;../src/HelloWorld.sol&quot;;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">contract HelloWorldTest is Test {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> HelloWorld hello;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> function setUp() public {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> hello = new HelloWorld();</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> function testGreeting() public {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> assertEq(hello.getGreet(), &quot;Hello, Status Network!&quot;);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> hello.setGreet(&quot;New greeting&quot;);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> assertEq(hello.getGreet(), &quot;New greeting&quot;);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>运行测试:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">forge test</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="支持">支持<a href="#支持" class="hash-link" aria-label="支持的直接链接" title="支持的直接链接"></a></h2>
<p>如果遇到问题:</p>
<ul>
<li>加入我们的 <a href="https://t.me/statusl2" target="_blank" rel="noopener noreferrer">Telegram 社区</a></li>
<li>查看<a href="/zh/general-info/network-details">网络详情</a></li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="其他资源">其他资源<a href="#其他资源" class="hash-link" aria-label="其他资源的直接链接" title="其他资源的直接链接"></a></h2>
<ul>
<li><a href="https://book.getfoundry.sh/" target="_blank" rel="noopener noreferrer">Foundry 文档</a></li>
<li><a href="https://sepoliascan.status.network" target="_blank" rel="noopener noreferrer">Status Network 浏览器</a></li>
</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/status-im/docs.status.network/tree/develop/docs/tutorials/deploying-contracts/using-foundry.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_JAkA"><span class="theme-last-updated">最后<!-- --><b><time datetime="2025-02-19T20:29:12.000Z" itemprop="dateModified">2025年2月19日</time></b> <!-- -->更新</span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/tutorials/deploying-contracts/using-hardhat"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">🎩 Using Hardhat</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/tutorials/deploying-contracts/using-remix"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">🎛️ Using Remix</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#前提条件" class="table-of-contents__link toc-highlight">前提条件</a></li><li><a href="#您将完成" class="table-of-contents__link toc-highlight">您将完成</a></li><li><a href="#步骤" class="table-of-contents__link toc-highlight">步骤</a><ul><li><a href="#1-初始化-foundry-项目" class="table-of-contents__link toc-highlight">1. 初始化 Foundry 项目</a></li><li><a href="#2-编写智能合约" class="table-of-contents__link toc-highlight">2. 编写智能合约</a></li><li><a href="#3-为-status-network-配置-foundry" class="table-of-contents__link toc-highlight">3. 为 Status Network 配置 Foundry</a></li><li><a href="#4-部署合约" class="table-of-contents__link toc-highlight">4. 部署合约</a></li><li><a href="#5-与合约交互" class="table-of-contents__link toc-highlight">5. 与合约交互</a></li><li><a href="#6-使用-cast-命令快速交互" class="table-of-contents__link toc-highlight">6. 使用 Cast 命令快速交互</a></li><li><a href="#7-测试" class="table-of-contents__link toc-highlight">7. 测试</a></li></ul></li><li><a href="#支持" class="table-of-contents__link toc-highlight">支持</a></li><li><a href="#其他资源" class="table-of-contents__link toc-highlight">其他资源</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Legal</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/terms-of-use">Terms of use</a></li><li class="footer__item"><a class="footer__link-item" href="/zh/privacy-policy">Privacy policy</a></li></ul></div></div></div></footer></div>
</body>
</html>