> ## Documentation Index
> Fetch the complete documentation index at: https://injectivelabs-docs-ai-sdk.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用 Foundry 验证智能合约

## 前置条件

你应该已经设置好 Foundry 项目，并成功部署了智能合约。
请参阅[使用 Foundry 部署智能合约](./deploy-foundry/)教程了解如何操作。

## 什么是智能合约验证？

验证过程不会对智能合约本身或网络的任何其他状态产生任何影响。

相反，它是一个标准化的过程，通过该过程向网络浏览器提供部署在特定地址的智能合约的原始源代码。网络浏览器**独立编译**该源代码，并验证生成的 bytecode 确实与智能合约部署交易中存在的 bytecode **匹配**。

如果验证通过（存在匹配），区块浏览器会为该特定智能合约的页面"解锁"增强模式。
现在会显示更多智能合约详情，包括：

* 完整源代码（Solidity）
* ABI（JSON）
* 交易和事件以更高的详细程度显示（使用 ABI 解析）

此外，如果用户连接他们的钱包，他们可以直接在网络浏览器中调用函数来查询智能合约，甚至发送交易来更新其状态。

## 运行验证命令

输入以下命令：

```shell theme={null}
forge verify-contract \
  --rpc-url injectiveEvm \
  --verifier blockscout \
  --verifier-url 'https://testnet.blockscout-api.injective.network/api/' \
  ${SC_ADDRESS} \
  src/Counter.sol:Counter
```

将 `${SC_ADDRESS}` 替换为你部署智能合约的地址。

例如，如果智能合约地址是 `0x213bA803265386C10CE04a2cAa0f31FF3440b9cF`，命令是：

```shell theme={null}
forge verify-contract \
  --rpc-url injectiveEvm \
  --verifier blockscout \
  --verifier-url 'https://testnet.blockscout-api.injective.network/api/' \
  0x213bA803265386C10CE04a2cAa0f31FF3440b9cF \
  src/Counter.sol:Counter
```

## 检查验证结果

你应该在终端中看到类似以下的输出：

```text theme={null}
Start verifying contract `0x213bA803265386C10CE04a2cAa0f31FF3440b9cF` deployed on 1439
Submitting verification for [src/Counter.sol:Counter] 0x213bA803265386C10CE04a2cAa0f31FF3440b9cF.
Submitted contract for verification:
        Response: `OK`
        GUID: `213ba803265386c10ce04a2caa0f31ff3440b9cf686b778c`
        URL: https://testnet.blockscout-api.injective.network/address/0x213ba803265386c10ce04a2caa0f31ff3440b9cf
```

更有趣的结果是访问网络浏览器。
访问验证输出中的网络浏览器 URL。
然后选择 "Contract" 标签。
然后选择 "Code" 子标签。
之前只有 "ByteCode" 可用，
现在 "Code"、"Compiler" 和 "ABI" 也可用了。

仍然在 "Contract" 标签中，
选择 "Read/Write contract" 子标签。
之前这不存在，
但现在你可以直接从区块浏览器与每个智能合约函数交互。

## 下一步

现在你已经部署并验证了智能合约，你可以开始与该智能合约交互了！
接下来请查看[使用 Foundry 与智能合约交互](./interact-foundry/)教程。
