# Condor System 任务8-2：Decentralized Staking App

By [Licrazy](https://paragraph.com/@doger) · 2022-10-08

---

我的推特：[LiCrazy](https://twitter.com/0xFeng)，在此要感谢社区的 @WSHannn.eth#6958 大佬给我启发。

TL;DR：Copy别人合约代码部署一个staking dapp，copy大法好啊，几个命令就搞定。但貌似审核程序有bug同样的操作可能要几次才能通过，有点靠运气，so你们通不过也不要问我，我也是重复了四五次才侥幸通过。o(╥﹏╥)o

### 一、准备工作

1、老样子，去[https://speedrunethereum.com/challenge/decentralized-staking](https://speedrunethereum.com/challenge/decentralized-staking) 找到“open in gitpod”打开代码库，坐等加载完，需要一定的时间。

许多人不知道如何打开/登陆[Gitpod](https://gitpod.io/)，拜托这就像你天天登陆微信一样简单，别再问了好吗？╮(╯▽╰)╭

![](https://storage.googleapis.com/papyrus_images/aadb8ff1b0e808d7667afde7bf8b6aa7bcd1e6e565e57060e07963537084be76.png)

加载完大概是下面这个鬼样子，是不是很面熟，是的就是这么巧，我又来了。

![](https://storage.googleapis.com/papyrus_images/a2c713df8a0fa07cb38a43ed301bd6488d7e098589ddca36905b9b5e5a66c8b7.png)

### 二、修改代码

这次我打算偷点懒不会写的那么保姆级了，你们爱懂不懂（指关节昨晚有点痛）。

1、既然要用copy大法我们先找到大神的合约代码。ding的一下，找到了：[https://goerli.etherscan.io/address/0x23bcf7e1a822e5645b497cfa111bf89e129cef8f#code](https://goerli.etherscan.io/address/0x4606179db6c13f97789a35BE516BF8740F147285#code) 为啥我能这么快找到？因为这就是我的代码。^\_^

看到下图这三坨代码没？不管你看到没，反正记下来等下要copy到Gitpod里面去。

![](https://storage.googleapis.com/papyrus_images/5050d93f77a42552a0d813de1d796e2592952dc4309eff42c56e26eb2078f22c.png)

2、打开Packages文件夹下的hardhat文件夹，这次我们一次性搞定四个文件的修改，怕了么。

![是不是抱怨这张图字有点模糊，请你点放大，享受高清AV画质](https://storage.googleapis.com/papyrus_images/1f2f5f185c3a1a0856efc3e06704a156f8e872555ac9285a2247e79e6efebd68.png)

是不是抱怨这张图字有点模糊，请你点放大，享受高清AV画质

3、打开packages/react-app/src/App.jsx文件，把里面targetNetwork改成goerli，又是好熟悉的操作，要不要截个图呢？你猜我截不截。

![](https://storage.googleapis.com/papyrus_images/dde2f8c9401845742ac334e9abac3d9126efbcdf742a59a0855c3c69aed51522.png)

### 三、在Goerli网络部署合约

1、在terminal控制台输入yarn run generate创建一个钱包地址，并转入少量goerliETH进去做gas。

![](https://storage.googleapis.com/papyrus_images/19796cf7fa0173a9bf06f76aaf1cbeb76f009aabd0d3e94b0e4b01e99ead9ecd.png)

2、在Terminal控制台输入yarn deploy --reset部署合约代码,红框2为我们部署的合约。

![](https://storage.googleapis.com/papyrus_images/9e07b1ade502c0ef5bf2c84fa247d5bb7f6f3165db0f224ff501aa33becd1475.png)

### 四、部署前端

1、在Terminal控制台输入yarn build,创建前端，需要等待较长的时间，如下图显示即为成功。

![](https://storage.googleapis.com/papyrus_images/65f9f634e9b081e76da38e9848089b5f8de5622b4a1f92929fb0174ff8f6469a.png)

2、在Terminal控制台输入yarn surge，期间让会让你输入邮箱/密码创建surge账号，输入后每次回车即可。当出现domaim网址后再次回车，等待上传完成100%。

![](https://storage.googleapis.com/papyrus_images/aba08998c63e6731a35892daa51511a042b5510b55dccefc120db355c6e5244e.png)

3、复制上一步红框内的网址，即为我们此次任务构建的前端网址。

4，差点忘了还有一个小步骤，部署的合约需要验证。

打开packages/hardhat/package.json将api修改为7C1S3PXQSGCERT5PJ67XR7TH74X2AH9ZR6（这玩意是我注册申请的，你想用自己的api去[Etherscan](https://etherscan.io/register) 自己注册申请很简单，我不想教你们这种基础性操作了。）

![](https://storage.googleapis.com/papyrus_images/84618d415cd352e9df656bd4ebec540f95bdc2122191bc1cfdc3f308640e3b71.png)

在Terminal控制台输入yarn verify --network goerli坐等合约验证完成。

![](https://storage.googleapis.com/papyrus_images/1a33821b37e036759064d6bd2ac87f005d92c5142791f3477118e35c9a5e3049.png)

### 五、递交任务审核

再次重申：这玩意有点看运气同样的代码操作有时候能过有时候不能过，┓( ´∀\` )┏

2/3框内注意格式啊，最后点submint，好了本次发射已经完成，贤者时间了。

2框=教程第四大步第2小步获取的网址，3框=教程第三大步第2小步获取的合约地址前面加上goerli浏览器网址。

![](https://storage.googleapis.com/papyrus_images/576485e10b3f2a4b6744a808bcf9479a8984a5afb0814b164501362f50e43f92.png)

---

*Originally published on [Licrazy](https://paragraph.com/@doger/condor-system-8-2-decentralized-staking-app)*
