前提
目前市面上很多Analog的教程,但关于开发者的任务教程中的合约部署和验证不够明确,本教程重点是开发者任务的合约部署以及验证相关,这是每日任务,每天做完此任务可以获得70ATP的积分,属于相对较高的积分收益。全程使用小狐狸钱包和谷歌浏览器进行操作,部署的合约也是EVM测试网上的合约,分别是:Sepolia和Shibuya Testnet。
在做这个任务之前,需要在Sepolia和Shibuya Testnet的水龙头进行领水,方便后面的合约交互时充当gas费使用。
Sepolia领水网址:https://sepolia-faucet.pk910.de/
输入通过验证后输入地址,在线挖矿即可
Shibuya Testnet领水网址: https://portal.astar.network/shibuya-testnet/assets
点击"Select Wallet"按钮进行钱包的选择
选择小狐狸钱包
选择之后进行签名和网络切换即可,正式进入页面后点击"水滴"样式的按钮,进入领水页面
这里有一个人机验证需要手动点击通过
通过之后点击“Confirm”按钮
网站右上角出现下图界面表示领水成功
等待一小会后代币就会到账
接下来就是合约部署以及交互后验证的过程
在Sepolia上部署合约并验证
打开合约部署网站:https://remix.ethereum.org/#lang=en&optimize=false&runs=200
点击"Create new file"按钮创建文件,文件的后缀必须为.sol,前面的名字叫什么都什么
创建好文件后
然后将下面的代码复制上去
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.1;
interface IGmpReceiver {
// minerhome.org if you need help, please visit minerhome.org
function onGmpReceived(bytes32 id, uint128 network, bytes32 source, bytes
calldata payload)
external
payable
returns (bytes32);
}
contract Counter is IGmpReceiver {
// sepolia 0x000000007f56768de3133034fa730a909003a165
// shibuya 0x000000007f56768de3133034fa730a909003a165
address private immutable _gateway;
uint256 public number;
constructor(address gateway) {
_gateway = gateway;
}
function onGmpReceived(bytes32, uint128, bytes32, bytes calldata) external
payable override returns (bytes32) {
require(msg.sender == _gateway, "unauthorized");
number++;
return bytes32(number);
}
}
复制代码上去的时候会弹出提示框,点击"OK"即可
这就是代码复制上去之后的模样
然后按照下图顺序进行切换和点击
然后把小狐狸钱包先切换到Sepolia测试网上,先是下图中序号1的位置,需要打勾然后切换到序号2的位置进入对应的页面,在序号3处选择小狐狸钱包,这时序号4的位置会显示你的钱包地址和对应的网络以及代币余额,然后在序号5的位置输入Sepolia测试网的网关地址:0x000000007f56768de3133034fa730a909003a165,这个网关地址是从项目方的文档中找到的,可以放心使用,官网地址:https://docs.analog.one/documentation/developers/analog-gmp/supported-networks
都完成之后点击序号6的位置按钮“Deploy”进行合约的部署
部署合约时需要消耗一些gas
网站的正下方出现下面提示时表示合约部署成功
这时点击复制按钮去区块浏览器上搜索对应的合约,区块浏览器地址:https://eth-sepolia.blockscout.com/
搜索到合约后点击"Contract"按钮
然后点击“Verify & publish”按钮进行验证
选择这两个选项,才会出现下面的界面
选择序号1的编译器,然后取消掉序号2处的勾选,在序号三的位置输入之前部署合约时的代码,复制过来输入即可,最后点击"Verify & publish"按钮
合约验证成功后会回到原来的页面,上面提示有已经验证成功的信息,这里就表示合约已经部署验证成功了
复制部署的合约地址来到Analog测试网页面,连接钱包后进入开发者任务列表
在对应任务的地方输入合约地址,然后点击"Claim"按钮进行积分的领取
积分领取成功
进入小狐狸页面,点击"Send"按钮进行发送,发送的时候需要打开16进制的显示,方便方法的调用,下面是设置小狐狸显示16进制的数据步骤以及发送GMP消息的步骤
网关地址:0x000000007f56768de3133034fa730a909003a165
上面的交易成功后复制对应的hash到Analog测试网进行验证,send发送成功后需要等待比较久的时间,大概半个小时左右才能验证成功
16进制地址:
0xa7ef4ebd000000000000000000000000000000007f56768de3133034fa730a909003a1650000000
000000000000000000000000000000000000000000000000000000007000000000000000000000000
0000000000000000000000000000000000061a8000000000000000000000000000000000000000000
000000000000000000000800000000000000000000000000000000000000000000000000000000000
0000010100000000000000000000000000000000000000000000000000000000000000
这是验证成功后的模样
在Shibuya Testnet上部署合约并验证
和Sepolia的操作一模一样,部署合约的网关地址也是一样的,不同的是Send的时候16进制的数据不同,部署合约的代码也是一样的。
网关地址:0x000000007f56768de3133034fa730a909003a165
16进制地址:
0xa7ef4ebd000000000000000000000000000000007f56768de3133034fa730a909003a1650000000
000000000000000000000000000000000000000000000000000000005000000000000000000000000
0000000000000000000000000000000000061a8000000000000000000000000000000000000000000
000000000000000000000800000000000000000000000000000000000000000000000000000000000
0000010100000000000000000000000000000000000000000000000000000000000000
好啦,以上就是本期教程的全部内容啦,对我内容感兴趣的宝子可以点赞、转发、评论哦!
欢迎关注@Penny_fancy,咱们下期见~