区块链笔记
  • 简介
  • Web 3
    • 我是如何抓住200倍的金土狗 二舅币的
    • Web3 社交思考
    • 记录下 Stepn 的 GMT空投规则
  • Cyebr Connect 中文资料汇总
  • Alchemy Road To Web3
    • 估值102亿融资5.45亿的Alchemy 项目Road to Web3第一周NFT获取教程
    • 百亿项目Alchemy Road to Web3 第二周NFT获取教程
    • 百亿项目Alchemy Road to Web3 第三周NFT获取教程
    • 第四周 创建NFT相册
    • 第五周 创建动态NFT
    • 第六周 创建质押Dapp
    • 第七周 创建一个NFT市场
    • 第八周 随机数
    • 第九周 创建一个Swap Dapp
    • 第十周 使用Lens创建一个去中心化的推特
  • 项目调研
    • [项目调研] Web 3.0 社交平台 CyberConnect
    • [项目调研] 金融vNFT协议Solv
    • [项目调研] Squads: DAO 团队的基础设施
    • [项目调研] Sing to Earn: Seoul Stars
    • [项目调研] Web 3社区化代币项目 Backdrop
    • [项目调研] 元宇宙游戏资产工厂:BreederDao
    • [项目调研] Web 3.0 音乐社交平台 Melos
    • [项目调研] Web 3 社交NFT平台 Only1
    • [项目调研]Create to Earn 项目Element Black
  • TeaParty
    • 开始使用TeaParty
由 GitBook 提供支持
在本页
  • 准备
  • 执行
  • 填表
  1. Alchemy Road To Web3

第八周 随机数

原文链接:https://blog.logrocket.com/build-random-number-generator-blockchain/ 参考: https://mirror.xyz/0xB564F52A97720F277016B4CD2F59caF403EDfc16/LPviN4PphhtPD3rOea_8D0-mV8fpX2AvocTF-dv1DFE

上一页第六周 创建质押Dapp下一页第十周 使用Lens创建一个去中心化的推特

最后更新于1年前

关注我的推特() ,及时获取Alchemy 教程的最新信息。

准备

由于 OP测试网的测试代币需要github注册满1个月才能获取,估计大家都没有满1个月,所以就在以太坊Goerli测试网做这个任务,如果你有OP测试网的代币,你也可以把涉及到的以太坊Goerli测试网的地址改成OP测试网就行。

如果你实在想在OP上做,那么你可以去 把你在以太坊Goerli测试网的ETH跨链到OP的Goerli测试网,跨链需要等待好几分钟。

OP测试链信息 ,你可以直接加到Metamask。

复制完以后我们会进入我们自己的Github代码地址,我们复制这个地址

进入代码编辑器以后,我们点击左上角,然后在弹出的窗口里选择File->Open Folder,然后在弹出的窗口输入 /workspace/week8/LogRocket/20220615-random/ (其中的week8是我的Repository name,你们如果新建的名字不是这个,则替换为你们自己的Repository name),然后点击OK按钮,切换文件目录。

然后我们进入Terminal模块,点击右边的加号按钮,然后选择bash,新增一个Terminal,然后我们查看Terminal的命令行路径,如果已经切换到/workspace/week8/LogRocket/20220615-random文件夹下面,那就ok了。

然后我们输入命令 npm i,安装依赖包。

npm i

然后我们找到hardhat.config.js文件,将里面的内容替换为

require("@nomiclabs/hardhat-waffle");
require('dotenv').config()

// This is a sample Hardhat task. To learn how to create your own go to
// https://hardhat.org/guides/create-task.html
task("accounts", "Prints the list of accounts", async (taskArgs, hre) => {
  const accounts = await hre.ethers.getSigners();

  for (const account of accounts) {
    console.log(account.address);
  }
});

module.exports = {
  solidity: "0.8.4",

  networks: {
    "goerli": {
       url: "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161",
       accounts: ["{你的以太坊钱包私钥}"]
    }
  }

};

其中{你的以太坊钱包私钥}需要替换为你自己的key,私钥用完以后记住删除,防止泄露,也可以用新账号的私钥。这边的url不建议修改成Alchemy的url,最近有点不稳定。

执行

然后我们在Terminal里面输入下面的命令部署合约到测试网

yarn hardhat console --network goerli

如果你想重新使用上面的命令(yarn hardhat console --network goerli)开始部署合约,记得把artifacts/cache这两个文件夹删掉(正常流程请不要删除)。

我们等待合约部署完成,然后输入下面命令

signer = await ethers.getSigner();

完成以后接着输入下面命令

balance0 = await ethers.provider.getBalance((await ethers.getSigner()).address)

成功以后输入下面命令

factory = await ethers.getContractFactory("Casino")

接着输入

casino = await factory.deploy()

然后分别(一条条输入)输入下面命令

const valA = ethers.utils.keccak256(0xBAD060A7)
const hashA = ethers.utils.keccak256(valA)
const valBwin = ethers.utils.keccak256(0x600D60A7)
tx1 = await casino.proposeBet(hashA,{ value: 1e5})

稍微等待一段时间,需要等proposeBet执行完成,再输入命令

tx2 = await casino.acceptBet(hashA, valBwin, {value: 1e5})

等待一段时间以后,进入 https://goerli.etherscan.io/address/{私钥对应地址} 查看你的交易记录,如果有如图所示的交易记录,就说明成功了。

填表

填表的证明可以用https://goerli.etherscan.io/address/{私钥对应地址} 用你地址交易记录里面创建合约的记录点进去就是合约地址,用合约地址提交。OP 测试网请用OP的测试合约地址提交。

进入下面的网址,点击fork,把代码复制到我们自己的github,Repository name可以随意修改。

然后进入 ,点击新建WorkSpace,输入我们刚才复制的地址,新建space

如果你是在OP上做的,那么你的url需要改成OP的测试网

如果你使用的是OP的测试网,那么你需要去 来查询你的交易记录。

填表地址:

https://github.com/qbzzt/qbzzt.github.io/tree/master/LogRocket/20220615-random
https://gitpod.io/workspaces
https://goerli.optimism.io/
https://blockscout.com/optimism/goerli/address/
https://forms.gle/Ztv2nLqsV158XEaeA
https://twitter.com/SoullessL
https://optimismfaucet.xyz
https://app.optimism.io/bridge
https://chainlist.org/zh/chain/420