NFT教程:如何展示Flow和IPFS上的NFT收藏品

欧易(OKX)交易所

新用户永久最高50%手续费减免!

官网注册   APP下载

本文是NFT教程的的第二部分,本教程主要介绍Flow区块链、NFT和IPFS。请先阅读第一部分用Flow和IPFS创建NFT的合约和铸造代币操作教程

在本文中,我们将构建一个简单的React应用程序,该应用程序与Flow智能合约交互,以验证和获取用户拥有的 NFT。然后,我们将解析 NFT 的元数据,以获得 NFT 的底层标的资产(在本例中为视频)的 IPFS 位置。 提醒一下我们正在打造的 NFT,就像 NBA Top Shot 一样,只不过是不同的视频内容。

NFT教程:如何展示Flow和IPFS上的NFT收藏品

项目设置

本教程中,你需要运行 Flow 模拟器。 如果你不记得如何启动,可以看看之前的文章或者查看 Flow CLI 文档。需要注意的是,Flow 模拟器是 Flow 区块链在内存的模拟。所以,如果关闭了模拟器,你需要继续做以下工作:

启动 Flow 模拟器
部署项目
铸造你的 NFT
在本教程第一部分 NFT 教程 – 用 Flow 和 IPFS 创建 NFT 详细介绍了其中的每一个步骤。

此外,还需要在你的机器上安装 NodeJS。 你可以在这里安装。

和之前一样,你需要一个文本编辑器。

初始化 React 和安装依赖

在第一部分教程中创建的 pinata-party 项目目录下创建 React 应用(你也可以在一个全新的目录中创建你的 React 应用)。

要创建我们的应用程序,运行以下命令:

当一切安装完成后,你会有一个新的目录,叫做 pinata-party-frontend, 切换到该目录,安装依赖。

首先,参考 Flow 文档,需要安装 Flow JS SDK。 前端的设置我们只需要按照 Flow 的文档进行即可:

一些值需要作为应用程序的全局变量来存储,这里使用环境变量。 在 react 中,创建一个 .env 文件,并设置键值对,其中键值前缀为 REACT_APP。 在 Flow 的文档里,设置为与 Flow 的测试网连接。 在本教程中,我们将连接到 Flow 模拟器。 所以,需要做一些改变。 在 .env 文件中添加以下内容:

将 REACT_APP_ACCESS_NODE 的值替换为上述的本地模拟器url。用部署项目时获得的地址替换 REACT_APP_CONTRACT_PROFILE 值。

还需要创建一个配置文件,用来与 Flow JS SDK 交互。在 src 目录下创建一个名为 config.js 的文件。增加以下内容:

这个配置文件只是帮助 JS SDK 与 Flow 区块链(或本例中的模拟器)一起工作。 要使这个文件在整个应用程序中可用,打开 index.js 文件并添加这一行。

现在,让我们连接一些认证。如果你不想的话,可以不必强迫人们认证后进入网站,教程的第三篇文章,在实现 NFT 资产的转移时,认证将是很重要的。

我们需要创建一个认证组件。在你的 src 目录下,创建一个名为 AuthCluster.js 的文件。在该文件内,添加以下内容:

代码很简单,使用一个登录和注册按钮,利用 Flow JS SDK 的能力连接到钱包提供者, 你可以注册一个账户或用现有账户登录。

现在需要把这个组件放到我们的应用程序中。 我们先简单点吧。 将你的 App.js 文件替换为以下内容。

如果你现在启动应用程序(npm start),你应该会看到一个有登录和注册按钮的页面。 事实上,这两个按钮都是有功能的, 试试吧。

好了,现在 React 应用已经基本设置好了,让我们开始构建获取账户的 NFT 并显示它们。

从 Flow 中获取 NFT

为了显示我们在第一篇文章中铸币的 NFT,需要与 Flow 区块链进行通信。 现在是与 Flow 模拟器进行通信。 设置 .env 文件时,已经告诉应用程序,模拟器是在 8080 端口上运行的。 但现在,如何使用 JavaScript 与 Flow 交互?

科普:什么是期现套利交易?为什么这种交易能获利?

幸运的是,Flow 在他们的 JS SDK 中内置了这个功能。 如果你还记得,我们之前写了一个脚本,根据一个 NFT 的 token id 来查找它,并返回 token 的元数据。 它看起来像这样:

CheckTokenMetadata.cdc

现在,我们只需要将其转换为 JavaScript 调用即可。 让我们创建一个新的组件,既能获取数据,又能最终显示 NFT 数据。 在你的 src 目录下,创建一个名为 TokenData.js 的文件。 在该文件中,添加以下内容:

在这个文件中,创建了一个组件,有一个按钮来获取代币数据。 当点击获取按钮时,它会调用我们创建的一个名为 fetchTokenData 的函数。 该函数使用 Flow JS SDK 来执行与在本教程第一部分中从命令行执行的脚本完全相同的脚本,但在 React 中。 我们把执行的结果,设置到一个名为 nftInfo 的状态变量中。React 会根据 nftInfo 显示 NFT 元数据中的键值对。另外还有一个让清除数据的按钮。

我还加了一点 CSS,让他漂亮一些,App.css 定义如下:

现在,只要将新组件添加到 App.js 中,放在 AuthCluster 组件下面:

运行应用程序并尝试获取代币数据,它应该是这样:

NFT教程:如何展示Flow和IPFS上的NFT收藏品

这真是太酷了! 我们正在查找指定的账户所拥有的 NFT,然后从该代币中获取元数据。 并显示该元数据,我们知道该元数据中的一个值解析为一个视频文件。 让我们把它显示出来。

从IPFS获取媒体文件

你已经注册了一个 Pinata 账户,并通过 Pinata 上传界面将你的视频文件添加到 IPFS。 这意味着你已经可以从 IPFS 中获取内容了。 在 Pin Explorer 中,当你点击一个哈希值时,你会被带到 Pinata IPFS 网关,在那里你的 IPFS 内容被解析并显示。 为了教程更通用,我们还是从 Protocol Labs 网关中获取它。

回到 TokenData.js 文件中,让我们添加一个方法来显示从 IPFS 中检索到的视频文件,修改代码:

我们已经添加了一个 video 标签,它指向 IPFS 上的文件。 你会注意到,这里拆分了 uri 值,以获得 IPFS 哈希值,这样就可以从 IPFS 网关获取对应内容。 先介绍下那个 URI。

我们用 NFT 创建的 uri 看起来像 ipfs://Qm…。 我们之所以这样创建,是因为 IPFS 桌面客户端默认允许你点击并打开这样的链接。 另外,Brave 浏览器也支持粘贴这样的链接。 并且我们认为这种链接形式会随着 IPFS 的发展得到越来越多的支持。

然而,在这里下,我们需要在利用哈希来从 IPFS 公共网关获取内容,并在页面上显示。因此链接会是这样:

https://ipfs.io/ipfs/QmRZdc3mAMXpv6Akz9Ekp1y4vDSjazTx2dCQRkxVy1yUj6

现在,如果你访问我们的应用程序中获取代币数据,会看到如下界面:

NFT教程:如何展示Flow和IPFS上的NFT收藏品

这是一个真正的活的数字资产! 你的视频可能会有所不同,但希望你在应用中感受到相同的体验。

最后

这是一个非常简单的应用,你可以做很多事情让它变得更漂亮,让它的交互性更强,甚至可以为它添加更多的 Flow 元素。 Flow JS SDK 的功能很强大,所以我推荐大家阅读一下文档。

在第二部分成功地使用 Flow 为应用添加了身份验证,创建了一个接口来获取 NFT 的信息,创建了一种方法来显示了原始元数据以及对应的底层标的资产。 这一切都由 Flow 区块链和 IPFS 来保障。 我们知道 NFT 是由谁拥有,也知道显示的内容是有效性,因为哈希值被编码到 NFT 中。

在本教程的最后一篇,我们将专注于创建一个迷你交易市场,让我们转移 NFT。

以上就是NFT教程:如何展示Flow和IPFS上的NFT收藏品的详细内容,更多关于展示NFT收藏品教程的资料请关注掘金网其它相关文章!

什么是以太坊虚拟机EVM?EVM有什么作用?

原创文章,作者:菜鸡,如若转载,请注明出处:https://www.20on.com/212167.html

(0)
菜鸡菜鸡
上一篇 11月 23, 2022 2:22 下午
下一篇 11月 23, 2022 3:22 下午

欧易(OKX)交易所

新用户永久最高50%手续费减免!

官网注册   APP下载

相关推荐

  • 2018年黄金价格_2018年黄金价格一览表

    摘要: 黄金作为一种重要的贵金属,一直受到人们的关注。2018年的黄金价格波动较大,引起了市场的广泛关注。本文将对2018年的黄金价格做一个全面的回顾和总结,以便读者对黄金市场的变…

    5月 27, 2023
  • MZG币,Moozicore是什么?MZG官网、白皮书和团队简介

    摘要:本文介绍了Moozicore如何用MZG币为中心,在音乐娱乐领域为用户带来全新的体验。 一、Moozicore提供了全新的音乐娱乐方式 音乐一直是人们生活中不可缺少的一部分,…

    4月 16, 2023
  • CHAIN币怎么样?CHAIN币全面介绍

    全文导读 CHAIN币的英文全称是Chain Games,很多投资者对于这一币种还不太了解,甚至还没有听说过这一币种,其实CHAIN币是Web 3.0区块链游戏的演进,它将基于智能合约的竞赛和目前市场上最先进的游戏玩法相结合,创造了一种去中

    3月 28, 2022
  • 火币网app打不开了怎么办?

    全文导读 对火币网了解的投资者,都知道火币网为了让用户可以随时随地交易,发布了火币网app版。也正是因为火币网app,市面上对于火币网的问题有增多了,举个例子,火币网app哪里下载,其实只要登录正版的火币网官网,就可以下载到正版的火币网app

    4月 25, 2022
  • Bithumb交易所总部在哪里?Bithumb交易所怎么样?

    Bithumb交易所早在2014年就成立了,属于全球最早一批创建的数字货币交易所了,目前的注册用户已经超200万,其用户中占比最多的就是韩国用户,Bithumb交易所的主要市场也在…

    12月 6, 2022
  • TP钱包是什么钱包?一文玩转TokenPocket钱包

    全文导读 说起TokenPocket钱包,在币圈所有的数字钱包中也可以排得上前十了,还是比较有名的。TokenPocket钱包,简称TP钱包,成立于2018年,成立时间不是很久,但是发展却很不错。TP钱包似乎就是一个强大的DApp Store,时下有什么流行

    4月 26, 2022
  • 比特币交易量下滑说明什么?有何影响?

    摘要:比特币作为一种数字货币,一直备受市场关注。但是最近,比特币的交易量开始下滑,也暗示着比特币行情有所下跌。那么,当前比特币的出路何在呢?本文将从四个方面进行详细阐述。 一、比特…

    4月 13, 2023
  • 币安怎么注册账号?币安手机注册教程介绍

    全文导读 币圈的投资者相信对币安都有所耳闻,币安自2017年成立至今,仅仅只有4年,无论是按照综合实力,资产,交易对个数,还是按照24小时成交额排名,都是前五名的存在,因此也备受投资者的欢迎,不过想要使用币安就需要注册账号,而对于没有使用过币安交易所

    4月 1, 2022
  • bsc链(bsc链接收地址都是一样的)

    摘要:本篇文章将详细介绍bsc链(bsc链接收地址都是一样的),从其背景、特点、应用场景和未来发展等4个方面进行阐述。bsc链是一条智能合约平台,其最大的优点是高效和便宜。本文还将…

    5月 30, 2023
  • 比特币是什么?比特币与Ripple有什么区别?

    摘要:比特币是什么?比特币与Ripple有什么区别?从外部来看,加密货币投资领域似乎仅限于比特币。作为最知名的加密货币,比特币在市值和对投资者的整体牵引力方面都是领先的。

    1月 8, 2023