仅供学习和交流,坚决反对炒币,坚决支持国家政策
仅供学习和交流,坚决反对炒币,坚决支持国家政策
仅供学习和交流,坚决反对炒币,坚决支持国家政策
基本知识和工具
- Metamask metamask.io/
- Solidity docs.soliditylang.org/en/v0.8.16/
- OpenZepplin www.openzeppelin.com/
- Hardhat hardhat.org/
- Remix remix.ethereum.org/
准备工作
- 安装 nodejs nodejs.org/en/
- 安装 metamask 谷歌浏览器扩展
- 安装 yarn
搭建本地network
-
创建一个项目文件夹JoeTokenProject(名字随意取)
mkdir JoeTokenProject && cd JoeTokenProject yarn add hardhat
-
创建一个 hardhat 项目
yarn hardhat选择第一项,然后回车,回车,回车。。。有兴趣的同学可以看下其他选项。
-
启动本地节点,我们会得到20个测试账号,每个账号都有10000ETH(当然是测试专用)。在本地测试网络id为:chainId: 31337
yarn hardhat node --------------------------- Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/ counts ======== WARNING: These accounts, and their private keys, are publicly known. Any funds sent to them on Mainnet or any other live network WILL BE LOST. Account #0: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (10000 ETH) Private Key: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 Account #1: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 (10000 ETH) Private Key: 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d ...
好了现在已经在本地搭建了一个network,下面我们用metamask钱包链接本地的network
Metamask
-
将metamask配置加入 local testnet
如果没有此网络,请点击 Add Network 添加
-
点击头像--> Import Account --> 添加密钥(Private Key) 即可看到账号及余额
PS: 默认的Chain ID为 1337,如果找不到测试账户或0ETH,请手动改成31337再试一次
恭喜!!到此我们已经搭建并验证本地network搭建成功。
ECR20合约
请打开著名的 Remix IDE: remix.ethereum.org/
- 点击➕加号
- 选择 OpenZeppelin ERC20, Remix会自动生成合约模版并编译
-
在SampleERC20.sol模版中加入以下代码。这就会给部署合约的钱包打上一大笔不值钱的token。然后别忘了点击编译(Complie SampleERC20.sol)确保代码被编译。
_mint(msg.sender, 10000*1e18);
- 如图操作
- ENVIRONMENT 选择 Injected Provider - Metamask;
- ACCOUNT 选择hardhat中的账户;
- CONTACT 选择 SampleERC20.sol ;
- Deploy后写入 tokenName 和 tokenSymbol
- Metamask confirm
- 在Remix 控制台打印部署成功命令
- 部署的合约地址,请注意每次deploy后的地址不同
-
复制部署后的地址,到钱包里(import token).
-
请确认您已收到10000个JOE token
部署到测试网络
- 首先切换钱包网络,并领取测试token(faucet.egorfine.com/,注意! Ropsten will be shut down in Q4 2022.)
- 确保此处为 Ropsten(3) network
- 同在本地部署一样,填入token name 和 token symbol
- 点击Deploy后,在钱包confirm。稍等片刻后就会讲此合约部署到 Ropsten测试网络
- 在此网站查看已部署ERC20合约ropsten.etherscan.io/
总结我们做了什么
- 我们在本地用hardhat启动了一个network
- 编写了一个简单的SampleERC20智能合约
- 将SampleERC20部署到了本地及测试网络
一步步走来其实还是蛮简单的,只是涉及的知识和工具比较多,要深入学习需要花些时间。今天只是用了这些工具的皮毛,并未深入探讨,但已经足够我们了解发币流程。接下来就是深入了解每个工具及web3底层的逻辑。