web3项目分析

640 阅读2分钟

要学习的技术栈

技术栈我推荐你这么选:

  • next.js:最流行的前端框架,没有备选。
  • tailwindcss:最流行的 CSS 框架,没有备选。
  • solidity:最流行的智能合约编程语言,没有备选。
  • ethersjs:最流行的智能合约交互库,备选是 web3.js。
  • wagmi:最流行的 React Hook 智能合约交互库,没有备选。
  • hardhat:最流行的智能合约开发框架,备选是 truffle。
  • open zeppelin:最流行的智能合约库。

业务领域没有局限,都可以选择。但一定要有自己最擅长的那一个,也就是专精领域。在你的专精领域中,你就是专家,你可以一直侃侃而谈,但一定不能被问得哑口无言。比如选择 NFT。你需要把 NFT 相关的协议全部搞得非常明白,比如 ERC721、ERC1155 等。同时还需要知道白名单是怎么做的、荷兰拍卖该怎么去做、NFT 交易所怎么做,手续费如何抽取、NFT 的一些种类,PFP 背后的逻辑等等、一些蓝筹项目是如何运作起来的、NFT 创作网站的流程及实现方案等等。千万不要什么都懂,但什么都不精通。

合约知识

Infura rpc节点提供商 可替代方案:Alchemy

  • useSWR做接口请求
  • EVM系 ,eth的发展建设,比较完善如matic,eth,币安链,layer2二层的arb,op都属于evm系

项目

Noah NFT

基于 ERC721 开发的 NFT DApp,涵盖了铸造 NFT、授权/收回 NFT 代理权、转让 NFT、销毁 NFT、授权/收回铸币权等功能。

ERC721是以太坊上用于非同质化代币(NFT)的代币标准,定义了一种独特且不可替代的代币类型,每个代币都具有唯一的标识符。 这使得ERC-721代币非常适合表示独特的数字资产,如数字艺术品、虚拟地块和游戏中的角色。

技术栈 主要

  • next.js 对首页nft列表做服务端数据渲染
  • wagmi 合约交互插件
  • pinata 免费的IPFS服务提供商 learnblockchain.cn/article/430…
  • swr 用于接口请求
  • solidity 合约开发
  • truffle
  • ganache 其他
  • formik 表单校验,提交插件
  • react
  • tailwindcss
  • chakra-ui
  • formidable 主要用于解析表单,支持get post请求参数,文件上传等。

nft采用useSWR做接口请求,使用next/dynamic做服务端数据渲染。 nft mint按钮:采用

import { useAccount, useContract, useSigner } from "wagmi";

实现了

          const { data: signer } = useSigner();
          const noahNFTcontractInstance = useContract({
            ...noahNFTcontract,
            signerOrProvider: signer,
          });
          const token = (await axios.get("/api/nft/mint")).data;
          const { wait } = await noahNFTcontractInstance?.mint(
            address,
            token.metadataUri
          );
          const receipt = await wait();
          console.log(receipt);
          toast({
            title: "Mint 成功",
          });
          // 获取 tokenId,携带token请求nft数据