元宇宙之小白開發(fā)(23) -- 開發(fā)一個(gè)ERC20的智能合約

開發(fā)一個(gè)ERC20的智能合約,主要兩種方式,一種是使用remix來開發(fā),同時(shí)使用部署與發(fā)布;另一種是完全使用hardhat 與 ether.js在本地區(qū);

先說第一種,Remix,只要管寫智能合約就可以,不需要管EVM,不需要自己去創(chuàng)造網(wǎng)絡(luò)與區(qū)塊,不需要自己寫前端的代碼,和自動化測試代碼;所以特別適合小白,我就是使用這種方式連接本地網(wǎng)絡(luò)進(jìn)行重載ERC20然后進(jìn)行擴(kuò)展一點(diǎn)點(diǎn)能力,代碼如下:

//SPDX-License-Identifier: Unlicense

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract TERC20 is ERC20{

? ? constructor(string memory name_,string memory symbol_) ERC20(name_,symbol_){

? ? }

? ? ?address caller = 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266;

? ? ?address spender;

? ? ?function setSpender(address s) public {

? ? ? ? ?require(msg.sender==caller,"no");

? ? ? ? ?spender =s;

? ? ?}

? ? ?function mint(address receiver,uint256 mount) public {

? ? ? ? ?require((msg.sender==caller)||(msg.sender==spender),"no");

? ? ? ? ?super._mint(receiver,mount);

? ? ?}

}

主要完成使用本地網(wǎng)絡(luò)(yard hardhat node;)+Remix中的hardhat provider 的方式,發(fā)布這個(gè)智能合約,然后進(jìn)行各種操作;

1、啟動本地網(wǎng)絡(luò) yarn hardhat node;

2、將remix 的環(huán)境改為hardhat provider,如下

3、編寫如下代碼,導(dǎo)入ERC20.sol的庫,然后需要設(shè)置name,symbol;限制只有“92266”的地址及由“92266”授權(quán)的spender才能進(jìn)行mint

4、部署時(shí)需要選擇TERC20,因?yàn)槭菍?dǎo)入ERC20,所以會有四個(gè)合約可以發(fā)布,注意選擇自己的合約。

5、發(fā)布時(shí),修改Name,和Symbol?

7、發(fā)布成功后,在執(zhí)行日志中,會提示name和Symbol的內(nèi)容;

8、選擇非授權(quán)的地址進(jìn)行mint時(shí),會提示“no”;

10、地址重新選擇回92266,執(zhí)行就成功;

給自己mint 99999

12、調(diào)用totalSupply有多少,就會顯示99999


13、然后測試approve

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容