# 加密狗整编空投第140篇：Scroll测试网最全指南 - 加密狗 - Medium

By [toto](https://paragraph.com/@toto-2) · 2023-04-25

---

![](https://storage.googleapis.com/papyrus_images/274593a8f8c0eeb3b57b6f6b3bf9f7915c3f2df3ce439d5a7f63b26932b607ca.webp)

Scroll 最近成功从 Polychain 资本、红杉资本等知名 VC 筹集了 5000 万美元。总体而言，Scroll 成功筹集了 8300 万美元。

Scroll 现在估值为 $ 1,8 B

Scroll 是基于以太坊上 zkEVM 的 zkRollup，提供与现有以太坊应用程序和工具的原生兼容性。简单来说，它是一个新的以太坊第 2 层网络。

目前，alpha 测试网阶段正在进行中，在 pre-alpha 版本期间，实现了 100 万个唯一地址和 1600 万笔交易

往期教程：

**一、准备**
--------

**步骤1、登录官网、链接测试网**

登录：[https://scroll.io/alpha](https://scroll.io/alpha)

将网络（Goerli 测试网和 Scroll Alpha 测试网）添加到 metamask 钱包

![](https://storage.googleapis.com/papyrus_images/110df8df51b89e1a7afbf405aeb02adc4fe906a021486b6ff8ad155a3639ad75.webp)

**步骤2、领取测试网代币**

使用[https://goerlifaucet.com/](https://goerlifaucet.com/) 领取测试网代币

![](https://storage.googleapis.com/papyrus_images/4b05eaf337e98932947f518ca3e49598e07ec6c121ea1ada34d92ae6db0d1e07.webp)

二、Bridge
--------

登录桥接部分：[https://scroll.io/alpha/bridge](https://scroll.io/alpha/bridge)

将 ETH 从 goerli testnet 发送到 Scroll Alpha testnet 网络

![](https://storage.googleapis.com/papyrus_images/18e3f909f21d784d72a0bd32758653f58c7988f9c33125bab4cf096cd71f9d23.webp)

![](https://storage.googleapis.com/papyrus_images/45d4afeef7f1017ab594470a65979e5e9df3d7b08057d6ee5f178bfcd88337f0.webp)

让小狐狸向任何其他钱包发送少量金额。

![](https://storage.googleapis.com/papyrus_images/d240598e25844f405aa8d4ab3ea746e9c032b4775c3a74678d9160ff1d1e9d3c.webp)

![](https://storage.googleapis.com/papyrus_images/fa12c4c1b381eb1857bbdc9ffc13b9523d8b690470be597e6578c8a2a17e0ebf.webp)

![](https://storage.googleapis.com/papyrus_images/427d24d8f5aa548a1bc8c094007a05a1a51bcbe03078d480fd2aac6e75adbf75.webp)

现在我们需要从Scroll Alpha testnet中提取少量ETH回Goerli网络，

返回[桥接](https://scroll.io/alpha/bridge)部分，并确保在 Scroll Alpha 测试网上并发送给 Goerli。

![](https://storage.googleapis.com/papyrus_images/4942a815431c8d34b1fa5826a568f1fcf9b65a5f831726e1c82a98cbb6e2dd55.webp)

三、添加流动性
-------

要获得 testnet USDC 代币，请[点击此处](https://scroll-usdc-faucet.vercel.app/)，并从水龙头领取 USDC；

![](https://storage.googleapis.com/papyrus_images/45e929c7022fe16a7fae02e00feb0f1b02778115dc8e757a43f15730c3074863.webp)

点击[这里](https://uniswap-v3.scroll.io/#/swap?outputCurrency=0xA0D71B9877f44C744546D649147E3F1e70a93760)，兑换 USDC（可以添加 USDC 合约 0xA0D71B9877f44C744546D649147E3F1e70a93760）

![](https://storage.googleapis.com/papyrus_images/7f7e53ae545b2742c6256d4406611c9c543073d66d6589a34043c9c17fa9115d.webp)

将少量的 ETH 换成 USDC

![](https://storage.googleapis.com/papyrus_images/218cc460e0a91ed50cf11b25a4016e573b0e3eafdac0b249075914b7b96f324a.webp)

点击[这里](https://uniswap-v3.scroll.io/#/pool)，并创建+new position，以便添加流动性

![](https://storage.googleapis.com/papyrus_images/2d9b01f76aedc59d45c21f28eeb3328846b8311fd20ca6df8528a7c8667ae887.webp)

选择 ETH — USDC对，选择 0.3% 和全范围

![](https://storage.googleapis.com/papyrus_images/4ca7f511b6648b474883758407d4856a946e250043657c5e90c5c0ceee95ce6f.webp)

然后点击 I Understand

![](https://storage.googleapis.com/papyrus_images/b2820c2276d8aa2b38e653d17f0d6d709aebbc433ca9ed2715cb0bdf6350bf34.webp)

输入要添加的金额并确认所有操作

![](https://storage.googleapis.com/papyrus_images/2d2d64f52debb8664be3c90270a804063da1251b8abbd0b2406dbbebc3bd753b.webp)

![](https://storage.googleapis.com/papyrus_images/a161b5ca677fc444cc0de91f28bf06c1b2b44e15e4acb11af2a8f2b10b8378c1.webp)

按关闭

![](https://storage.googleapis.com/papyrus_images/775b862fa0220670f7526399f563a99f1d64f1f6f3ec763604364e35618c0388.webp)

现在看到我们的位置，可以删除一小部分

![](https://storage.googleapis.com/papyrus_images/ce78e6be615b89f9638687c49dfc1f5896e0214430ef153893ddfc7fb31f72ea.webp)

点击Remove liquidity

![](https://storage.googleapis.com/papyrus_images/5bcb9115dc3ee47c74489e31fea474b0f677d444fae691a6102c032274f78644.webp)

移除 25% 的流动性

![](https://storage.googleapis.com/papyrus_images/38fc3014a5d738b76fa1f6e12093ae3a6fd50efa6ecb860a25d9b60f5906ca90.webp)

**到这里我们完成了最简单的部分，下一步是智能合约部署**

四、部署智能合约
--------

点击[此处](https://remix.ethereum.org/)，按照如下所示进行操作：

1、 单击图标

2、写合约名称

3、点击空白处

![](https://storage.googleapis.com/papyrus_images/9809a6aaf4c12628b457d90c3ddfab390733f86b9fe6cadef678b1326d72797a.webp)

从这里复制此代码，[官方文件](https://guide.scroll.io/developers/contract-deployment-tutorial)

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    contract FunctionTypes{
        uint256 public number = 5;
    
            constructor() payable {}
    

        // 函数类型
        // function (<parameter types>) {internal|external} [pure|view|payable] [returns (<return types>)]
        // 默认function
        function add() external{
            number = number + 1;
        }    // pure: 纯纯牛马
        function addPure(uint256 _number) external pure returns(uint256 new_number){
            new_number = _number+1;
        }
    
            // view: 看客
        function addView() external view returns(uint256 new_number) {
            new_number = number + 1;
        }
    
        // internal: 内部
        function minus() internal {
            number = number - 1;
        }    // 合约内的函数可以调用内部函数
        function minusCall() external {
            minus();
        }    // payable: 递钱，能给合约支付eth的函数
        function minusPayable() external payable returns(uint256 balance) {
            minus();    
            balance = address(this).balance;
        }
    }
    

单击空白区域并使用命令粘贴代码：

MAC 用户_cmnd + V_

Windows_用户 ctrl + V_

![](https://storage.googleapis.com/papyrus_images/37fadda7882499dd5924b0a244bdaff7514456964050395e257aac0e38c5682b.webp)

ok

![](https://storage.googleapis.com/papyrus_images/9c4beb24f1ebc7e47974d4c3ac89203260be637c8c69c4a2752d808cc3c3b002.webp)

MAC 用户按_cmnd + S_

Windows 用户按_ctrl + S_

现在你应该看到绿色复选标记，如下所示:

![](https://storage.googleapis.com/papyrus_images/bd827d7a7f79ca6ff78d3e1f8cace9cb9777cb59bb9231d8d2f287a73333b349.webp)

点击，如下所示

![](https://storage.googleapis.com/papyrus_images/968d73dd46ac902f434e0a2a2a5c055fb83cdf6321bcb68d7921a123dfcfc2c4.webp)

1、将版本更改为最新

2、点击编译

![](https://storage.googleapis.com/papyrus_images/6f8144e709a45da1d24a11ea6eae68e8c21adbb647d9c5f7b9e266720909ab7e.webp)

如果一切顺利，应该会看到绿色复选标记，如下所示

![](https://storage.googleapis.com/papyrus_images/a4f3e3c747a35ae60c14299d1d923ddda8298b26956a2db9ba10d06acbd7cd28.webp)

按照如下所示的步骤操作：

1、单击图标

2、选择 Injected provider (metamask)

3、确保你在Scroll Alpha 网络上，并检查地址是否正确

4、点击部署

![](https://storage.googleapis.com/papyrus_images/bb17b499f74ac29f249dc3aa3752ae7830fd5927120bf4bde70ff20d2e48e546.webp)

在 Metamask 中签名

![](https://storage.googleapis.com/papyrus_images/8c7f8d5bcb1103f99fb90a8f54917b818d88b68d6cecef4d1447f6913e66eb84.webp)

如果合约部署成功，我们将看到如下所示的消息，我们也可以在小狐狸中看到它。

![](https://storage.googleapis.com/papyrus_images/0727bab596646d178c5850d3428b1e38844a1cf02b15fb16252db34a62aa99d5.webp)

![](https://storage.googleapis.com/papyrus_images/041fa06f0b7df8356145c6f304d681130503bd357bd8bd007dda8dd922e2d968.webp)

到这里，我们就已经在 Scroll Alpha 测试网上部署了智能合约。

五、创建你自己的代币
----------

此操作将类似于之前的操作（部署智能合约）

点击[这里](https://remix.ethereum.org/)，按照如下所示的步骤操作

![](https://storage.googleapis.com/papyrus_images/2878fb67485811704550c491f88eacea02d75a8e5bcdf6fd32da1fbcf43fe298.webp)

复制此代码

    // SPDX-License-Identifier: MIT
    // WTF Solidity by 0xAA
    

    pragma solidity ^0.8.4;interface IERC20 {
        /**
         * @dev 释放条件：当 `value` 单位的货币从账户 (`from`) 转账到另一账户 (`to`)时.
         */
        event Transfer(address indexed from, address indexed to, uint256 value);    /**
         * @dev 释放条件：当 `value` 单位的货币从账户 (`owner`) 授权给另一账户 (`spender`)时.
         */
        event Approval(address indexed owner, address indexed spender, uint256 value);    /**
         * @dev 返回代币总供给.
         */
        function totalSupply() external view returns (uint256);    /**
         * @dev 返回账户`account`所持有的代币数.
         */
        function balanceOf(address account) external view returns (uint256);    /**
         * @dev 转账 `amount` 单位代币，从调用者账户到另一账户 `to`.
         *
         * 如果成功，返回 `true`.
         *
         * 释放 {Transfer} 事件.
         */
        function transfer(address to, uint256 amount) external returns (bool);    /**
         * @dev 返回`owner`账户授权给`spender`账户的额度，默认为0。
         *
         * 当{approve} 或 {transferFrom} 被调用时，`allowance`会改变.
         */
        function allowance(address owner, address spender) external view returns (uint256);    /**
         * @dev 调用者账户给`spender`账户授权 `amount`数量代币。
         *
         * 如果成功，返回 `true`.
         *
         * 释放 {Approval} 事件.
         */
        function approve(address spender, uint256 amount) external returns (bool);    /**
         * @dev 通过授权机制，从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。
         *
         * 如果成功，返回 `true`.
         *
         * 释放 {Transfer} 事件.
         */
        function transferFrom(
            address from,
            address to,
            uint256 amount
        ) external returns (bool);
    }contract ERC20 is IERC20 {    mapping(address => uint256) public override balanceOf;    mapping(address => mapping(address => uint256)) public override allowance;    uint256 public override totalSupply;   // 代币总供给    string public name;   // 名称
        string public symbol;  // 符号
    
            uint8 public decimals = 18; // 小数位数
        address public owner;
    
        // @dev 在合约部署的时候实现合约名称和符号
        constructor(string memory name_, string memory symbol_){
            name = name_;
            symbol = symbol_;
            owner = msg.sender;
        }    // @dev 实现`transfer`函数，代币转账逻辑
        function transfer(address recipient, uint amount) external override returns (bool) {
            balanceOf[msg.sender] -= amount;
            balanceOf[recipient] += amount;
            emit Transfer(msg.sender, recipient, amount);
            return true;
        }    // @dev 实现 `approve` 函数, 代币授权逻辑
        function approve(address spender, uint amount) external override returns (bool) {
            allowance[msg.sender][spender] = amount;
            emit Approval(msg.sender, spender, amount);
            return true;
        }    // @dev 实现`transferFrom`函数，代币授权转账逻辑
        function transferFrom(
            address sender,
            address recipient,
            uint amount
        ) external override returns (bool) {
            allowance[sender][msg.sender] -= amount;
            balanceOf[sender] -= amount;
            balanceOf[recipient] += amount;
            emit Transfer(sender, recipient, amount);
            return true;
        }    // @dev 铸造代币，从 `0` 地址转账给 调用者地址
        function mint(uint amount) external {
            require(owner == msg.sender);
            balanceOf[msg.sender] += amount;
            totalSupply += amount;
            emit Transfer(address(0), msg.sender, amount);
        }    // @dev 销毁代币，从 调用者地址 转账给  `0` 地址
        function burn(uint amount) external {
            balanceOf[msg.sender] -= amount;
            totalSupply -= amount;
            emit Transfer(msg.sender, address(0), amount);
        }}
    

单击空白区域（与我们在部署智能合约时所做的相同）

MAC 用户_cmnd + V_

Windows 用户_ctrl + V_

粘贴代码，然后确定

![](https://storage.googleapis.com/papyrus_images/8fa8b9b88f34db4dcd44236cb81a3e22c2952bf202cc5b6e80f7599b92dc06f9.webp)

Mac 用户按_cmnd + S_

Windows 用户按_ctrl + S。_

我们应该看到绿色复选标记，如下所示

![](https://storage.googleapis.com/papyrus_images/acaa2f1f89b24240b5ed9a017eee980d4c56564e18fa765499b679ff5904b402.webp)

按照如下所示的步骤操作：

1、点击图标

2、选择最新版

3、编译。

在我们应该看到绿色复选标记之后

![](https://storage.googleapis.com/papyrus_images/771eb0a2b41bbf7e96893ab6728e0087990bfc928f573601588a52e1f82cb24d.webp)

按照如下所示的步骤操作：

1、点击最后一个图标

2、injected provider

3、你的地址将自动被添加（这里要检查地址是不是对的）

4、点击injected provider

5、写下名字

6、写下Symbol

7、点击transact

并确认你钱包中的所有操作。

![](https://storage.googleapis.com/papyrus_images/3f83ea6a3a65def20fdb1ee7f0002792e806a704512f7f2f95cf43a1362b330a.webp)

如果一切顺利，你将在控制台和钱包中看到它

![](https://storage.googleapis.com/papyrus_images/45155d0f9fe23dec88527895d3722bd8cb987100fdc8ba20beeb44d9a5b98d6b.webp)

单击交易记录器，如下所示

![](https://storage.googleapis.com/papyrus_images/0a0d61dfdefe1219c9319f8640713c4f7c9eb230d9e883e7e1370af43cfe6c34.webp)

按照如所示的步骤操作：

1、打开 ERC20 AT…. Menu

2、打开 Mint 菜单

3、输入金额 1800000000000000000000

4、点击交易

钱包验证

![](https://storage.googleapis.com/papyrus_images/3794ab751228b2ae2f5cb8e1022c564c10c82a2ad3e82e620113c7076f416b26.webp)

如果一切顺利，将收到如下所示的消息

![](https://storage.googleapis.com/papyrus_images/1e445a7616755319a76d6da922d0dce40a7a2451b7bd2430d5d1c5b3f2c5393a.webp)

复制你的代币地址

![](https://storage.googleapis.com/papyrus_images/d36344c016f0e9ad3f9076503dabe847a9bf0e250ee083263f6cbe2ebd5f1884.webp)

可以使用我们自己的代币添加流动性

登录：[https://uniswap-v3.scroll.io/#/pool](https://uniswap-v3.scroll.io/#/pool)

点击：new position

![](https://storage.googleapis.com/papyrus_images/8fd8129dafa2aafd8e8b2e52d569a16ac5e72d3f002f74b3b829baa1a8300667.webp)

选择token

![](https://storage.googleapis.com/papyrus_images/fdd241d2feec68416c5cc85a7bfd4c8d4c32f4b98c1589a7e1362fff8cc67891.webp)

粘贴你的代币地址（之前复制的）

![](https://storage.googleapis.com/papyrus_images/5bab66ff7d978d5318948b10a0e5cfe6d742e959535e3328ff2a674e6d4b3507.webp)

可以使用如下所示的相同设置

![](https://storage.googleapis.com/papyrus_images/6540494f685f9b8f530870afeed5d901b2a8803919597645209eb9634864cde2.webp)

![](https://storage.googleapis.com/papyrus_images/2c693da5c5cf084714d9d5948efea573e2967bea6e524f8f89532f18fdc39304.webp)

钱包确认

如果一切顺利，你应该会看到如下所示：

![](https://storage.googleapis.com/papyrus_images/83e99309624629e1cee4cc01ae2422228d78ee5654310f237e4384478b625132.webp)

到这里基本完成了Scroll的全部操作。

以上就是本篇 的全部内容；

更多内容请关注：

加密狗推特：[https://twitter.com/JiamigouCn](https://twitter.com/JiamigouCn)

电报：[https://t.me/JIAMIGOU002](https://t.me/JIAMIGOU002)

---

*Originally published on [toto](https://paragraph.com/@toto-2/140-scroll-medium)*
