Giter VIP home page Giter VIP logo

flow-nft-showcase's Introduction

Flow NFT ShowCase

这是一份指南,教您如何使用 ChainIDE、Cadence 和 React 在 Flow 上创建全栈的 NFT Mint 页面

如果你有任何问题,请加入我们的 ChainIDE Discord

这份教程将分为以下几个步骤:

  1. 使用 Flow 钱包并获取测试币
  2. 部署 NFT 智能合约
  3. 部署前端页面
  4. 添加你的 NFT
  5. 在主网上部署

1 使用 Flow 钱包并获取测试币

当我们在区块链上部署一个智能合约或对已部署的智能合约进行交互时,我们需要一个 Flow 的钱包,FLow 的钱包有许多种(Blocto,Lilico,Flipper等),在此,我们使用 Blocto

在 ChainIDE Flow 编程页面右侧,选择 Testnet,然后点击 Autheniticate

image-20230312205320888

选择 Blocto

image-20230315154407456

输入邮箱,注册好账户后

点击复制钱包地址

image-20230312205623790

进入 Flow Faucet ,粘贴地址,默认选择 FLOW ,完成 hCaptcha 认证后,点击 FUND YOUR ACCOUNT

image-20230312205910626

这样我们就获得1000个 Flow 测试币了

image-20230312205948828

2 部署 NFT 智能合约

我们的 NFT 智能合约是基于Flow Non-Fungible Token Standard

进入contract文件夹 ,打开ChainIDEShieldNFT.cdc image-20230312214357893

import NonFungibleToken from 0x631e88ae7f1d7c20
import MetadataViews from 0x631e88ae7f1d7c20

NonFungibleTokenMetadataViews已经部署在各种网络上。你可以从这些地址将它们导入你的合同中,无需自己部署它们。你可以在Fungible Token Contract | Flow Blockchain找到所有信息

在这里你可以查看你的 Metadata

        /// Function that resolves a metadata view for this token.
        ///
        /// @param view: The Type of the desired view.
        /// @return A structure representing the requested view.
        ///
        pub fun resolveView(_ view: Type): AnyStruct? {...
    }

然后,切换到Deploy & Interaction面板,在 _maxSupply栏输入 NFT 的最大供应量(如:4),点击 Deploy

image-20230312220628133

打开ChainIDEShieldNFTMintContract.cdc

image-20230312220918106

开头处的地址信息需要我们配置下。

...
// TODO: change to your account which deploy ChainIDEShildNFT
import ChainIDEShieldNFT from 0x119dff553c54ffcc

将 ChainIDEShieldNFT 后的地址替换为当前登录的账户地址。

然后,在右侧面板输入NFTMint价格($Flow)参数price(如:10)以及receiver参数(接受付款的地址,如:你的钱包地址),点击部署合约 image-20230312222020437

3 部署前端页面

修改frontend/config.ts里面的参数,如果合约名没有做修改,只需要修改deployer地址即可,将depolyer的地址修改为你的钱包地址 image-20230312225103593

打开Sandbox flow-cli ,执行cd frontend && npm install && npm start image-20230312225146681

image-20230312225242869

image-20230312231347932

打开左边端口转发面板,选择flow-cli镜像,输入端口号3000,点击Add

image-20230312231419952

添加成功后,表格里会多一条3000端口的记录,点击图示按钮,用浏览器打开

image-20230313094756154

浏览器会打开如下页面 image-20230313094828507

钱包登录成功后可以看到价格和供应量从合约中读取成功 image-20230313095059185

点击执行Mint,如果钱包Flow余额不足,可以从 FLow Faucet 中获取 Flow 测试代币 image-20230313095722483

Mint过后,可以看到,剩余NFT的数值发生变化 image-20230313095920312

4 添加你的 NFT

最后我们需要将我们的 NFT 添加到 NFT Catalog,这样其他 NFT 市场就可以引入我们的NFT了

点击进入 NFT Catalog,你可以依据下方的教程完成整个步骤

image-20230315161145946

官方 review 过后,记录以下3个字段

image-20230316171728828

接下来去 NFT 交易市场(如:MatrixMarket),提供以上三个字段,交易市场就可以将你发行的 NFT 上架了

进入 MatrixMarket Discord,点击 open-a-ticket,输入你的 NFT 相关信息就可以了(目前 MatrixMarket 只支持主网上的 NFT)

image-20230316172719241

5 在主网上部署

如果你想把 NFT 和网页部署在主网上,你需要按照测试网的教程再走一遍,并对以下部分进行修改

1 连接主网

image-20230328100730940

2 替换智能合约 import contract 的地址为主网地址

打开 cadences/contracts

image-20230328101011532

image-20230328101148675

3 替换前端页面 flow.ts 配置信息

打开 frontend/wallet/services/flow.ts

将 //Mainnet 后的内容替换到前方的代码中

image-20230328102925859

最后,待合约主网部署+ MInt 成功后,依据第4步,你就可以向 NFT marketplace 申请主网 NFT 上架了 恭喜,你已经完成了本教程的所有内容!

flow-nft-showcase's People

Contributors

hexi1997 avatar wufengtao1 avatar caoxmm avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.