# 快速入门指南

为 Canto EVM 构建智能合约与为以太坊或任何其他 EVM 兼容链构建智能合约是一样的，唯一的区别在于网络本身。

可以使用您选择的以太坊工具部署智能合约，包括[hardhat](https://hardhat.org/) 、[trufflesuite](https://trufflesuite.com/) 、[foundry](https://getfoundry.sh/) 、[remix](https://remix.ethereum.org/) 和其他工具。 要开始，只需将您的环境配置为使用 Canto 的 RPC 和链 ID。

## 主网&#x20;

RPC 网址：<https://canto.slingshot.finance/&#x20>;

链号：7700&#x20;

资源管理器： <https://evm.explorer.canto.io/>

备用 RPC URL&#x20;

* <https://canto.neobase.one/>
* <https://canto.evm.chandrastation.com/>
* <https://jsonrpc.canto.nodestake.top>

## 测试网

RPC 网址：<https://eth.plexnode.wtf/&#x20>;

链号：740&#x20;

资源管理器：<http://testnet-explorer.canto.neobase.one/>&#x20;

## 图书馆&#x20;

在构建需要链上数据的前端或其他应用程序时，您可能希望使用库来检索该数据。&#x20;

不用说，您可以使用大多数以太坊库（例如 [ethers.js](https://docs.ethers.io/v5/)、[web3.js](https://web3js.readthedocs.io/en/v1.8.0/) 和 [web3.py](https://web3py.readthedocs.io/en/stable/)）与 Canto EVM 交互——只需使用您选择的库通过 Canto RPC 初始化一个提供者。 例如：

```javascript
const ethers = require('ethers')

const provider = new ethers.providers.JsonRpcProvider("https://canto.slingshot.finance")

async function printCurrentBlock() {
  console.log(await provider.getBlockNumber())
}

printCurrentBlock()
```

## 初学者指南&#x20;

如果您是 Solidity 开发的新手，这里有关于如何使用 Remix 在 Canto 上部署您的第一个合约的分步说明：&#x20;

## 编写智能合约&#x20;

在 Canto 上部署智能合约的第一步是用 Solidity 编写合约的源代码。 为此，请在您的 Remix 工作区中创建一个新文件：

<figure><img src="https://4249986587-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMLrRgpaHQvg2XTljs2e3%2Fuploads%2FGLEJ0ac9eQo8pEvYzkK9%2Fimage.png?alt=media&#x26;token=758fe732-1092-4c94-a32a-0fb0074454a9" alt=""><figcaption></figcaption></figure>

根据需要使用 .sol 扩展名命名文件并开始编写代码。 您还可以使用已经部署在以太坊上的合约的源代码。 对于这个例子，让我们根据 S[olidity 官方文档](https://docs.soliditylang.org/en/v0.8.17/introduction-to-smart-contracts.html)复制并粘贴以下源代码：

```javascript
pragma solidity 0.8.17;

contract Example {
    uint storedData;
    
    function set(uint x) public {
        storedData = x;
    }
    
    function get() public view returns (uint) {
        return storedData;
    }
}
```

代码准备就绪后，按 Ctrl+S 编译智能合约。&#x20;

## 部署智能合约&#x20;

要部署您的智能合约，首先要确保您已安装 MetaMask 并将其连接到 Canto。 由于此合同用于测试目的，我们将连接到 Canto 测试网。&#x20;

返回 Remix，导航到部署选项卡，这是垂直菜单上的第五个图标。 点击环境下拉框，选择Injected Provider - Metamask：

<figure><img src="https://4249986587-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMLrRgpaHQvg2XTljs2e3%2Fuploads%2FAWPFs0RtfpS5FiELZnzn%2Fimage.png?alt=media&#x26;token=a1efd467-118b-491e-bc24-5ba88b5ebc44" alt=""><figcaption></figcaption></figure>

将出现 MetaMask 提示，要求您将钱包连接到 Remix。 与往常一样，确保您对请求的权限感到满意，然后单击“连接”。

一旦你连接了你的钱包，你就会在账户下看到你的账户地址。 确保这是您要从中部署合约的位置，然后点击部署。

{% hint style="info" %}
如果您的智能合约使用构造函数参数，请在尝试部署合约之前将它们输入到 Deploy 按钮旁边的字段中。
{% endhint %}

点击 Deploy 后，MetaMask 提示将出现，其中包含合约部署交易。 确认交易。

一旦区块被开采，您的智能合约就会在 Canto EVM 上生效。 您可以在 Remix 界面左下方的 Deployed Contracts 下找到您的智能合约的地址，或者通过在您的钱包或区块浏览器中查找合约部署交易的接收者。
