RES:教程:如何在web应用程序中将ENS地址转换为ETH地址

在本教程中,我将向大家展示我能想到的最简单的例子,如何在web应用程序中将ENS地址转换为ETH地址。

知道如何做是很有价值的,因为大多数智能合约只接受ETH地址,而不接受ENS地址。

介绍

如何做到这一点的简单答案是,用户只需要从子图中查询数据。

有多种方法转换一个ENS地址:

1:使用ENS.js

我曾经使用这个库来转换ENS地址。但是,它不适用于位于layer2的应用程序,所以我不会展示如何以这种方式进行操作。

2:使用ENS提供的去中心化子图

纽约时报:FTX与美国法明顿州立银行的关系引发质疑:11月24日消息,FTX破产暴露出一些“奇怪”的资产,他们与美国法明顿州立银行的关系正引发质疑。位于华盛顿州的法明顿州立银行(Farmington State Bank)目前已更名为Moonstone Bank。今年三月Alameda Research对其母公司FBH投资1150万美元并获得该行股份,当前该行拥有一家分行和8400万美元的存款,其中7100万美元存在四个账户中。

目前尚不清楚FTX如何被允许购买一家美国许可银行的股份,因为此类行为必须通过美国联邦监管机构的批准,银行业资深人士表示很难相信监管机构会故意允许FTX控制一家美国银行。

据悉,法明顿州立银行母公司FBH董事长是Jean Chalopin,他也是Deltec Bank董事长,而USDT 发行方Tether的储备金就存储在Deltec Bank。截至目前,Deltec Bank和法明顿州立银行均未就此事回复置评请求。(纽约时报)[2022/11/24 8:03:11]

这是最可靠的方法,因为它是去中心化的。然而,当我在ENSdiscord中询问时,他们说不要用这个。此外,每次用户在你的应用程序上查询这个子图时,你都要花钱——所以它不是免费的。我认为ENS计划告诉每个人使用这个子图,但我可能是错的,我不确定他们会等待什么。

Dfinity基金会对《纽约时报》记者Andrew Ross Sorkin等人提起诽谤诉讼:金色财经报道,6月28日,Dfinity基金会对《纽约时报》记者Andrew Ross Sorkin和Ephrat Livni以及Arkham的创始人兼首席执行官Miguel Morel和其他现任或前Arkham官员、代理人和雇员提起诉讼,起诉他们诽谤和不公平的商业和贸易行为,预计随着情况的发展,诉讼中还将增加更多的被告。

该诉讼称,有人利用了《纽约时报》及其明星商业记者Andrew Ross Sorkin的意愿,后者于2021年6月28日故意发布了一篇关于“热门文章”的虚假和诽谤性报道(Arkham报告),这份报告由试图从该计划中获利的富有精英秘密购买和支付。Arkham报告购买了推广服务,时报发布了该文章,该文章损害了互联网计算机生态系统的运营和声誉。该诉讼还声称,诽谤计划涉及不公平的商业和贸易行为,因为它的动机是希望减少互联网计算机对竞争性区块链(ReserveProtocol)构成的威胁。[2022/6/30 1:42:04]

3:使用ENS提供的中心化子图

声音 | 纽约时报记者:习主席对区块链的指导意见是对区块链最高水平的认可:纽约时报记者Nathaniel Popper刚刚转发Coindesk有关主席对区块链的指导意见的文章,并评论称,主席昨天强调把区块链作为核心技术自主创新的重要突破口,这难道不是我们所见过的对区块链技术的最高水平的认可吗?[2019/10/26]

这个子图是免费使用的,也是巴黎高等师范学院推荐人们使用的。这是我将教如何使用这里。

项目设置

首先,在本地克隆repo。然后,安装所有依赖项并运行本地服务器。如果要检查localhost,就应该在页面上看到一个输入。如果输入了一个有效的ENS地址,就将看到有效性和ETH地址正在浏览器控制台中登录,确认转换。

纽约时装周出现比特币标志:在2月6日举行的纽约时装周Ovadia&Sons NYFW男装展上,Ariel和Shimon Ovadia两位设计师展出了一个名为“朋克向西”的主题。而一件被展出的蓝色衬衫上印着“接受比特币,不接受现金”的字样和比特币标志。现在还不确定能否使用比特币来购买该上衣。[2018/2/7]

解释

既然你已经有了所有的代码,我将用本教程的剩余部分来解释它如何线性工作。

在主页上有一个输入(src/pages/index.tsx)。输入时,它设置inputAddress状态变量。

每当这个状态变量发生变化时,它都会被这里的useENSAddresshook检测到:

现在打开Reacthook的文件(src/components/useENSAddress.ts)。你可以看到它使用了里面的useEffect的hook。这个useEffect的依赖项列表中有一个inputAddress参数。这会导致useEffect主体在每次inputAddress改变时(通过用户输入)被调用。

useEffect(():any=>{...bodycodehere...},)

那么当调用useEffect的主体时会发生什么呢?几乎所有发生的都是run方法被调用。

run方法通过调用其他方法来设置ETH地址。让我们检查一下那个方法,因为它是调用堆栈中的下一个。

打开src/stores/ensStore.ts。里面是queryENSForETHAddress方法。

首先,它进行软检查,看看传入的值是否为ENS地址。

然后,它查询由HTTP_GRAPHQL_ENDPOINT定义的子图。为了获得我们想要的数据,我们需要创建一个graphql查询。这就是getQueryENSForETHAddress方法的作用。

现在转到那个方法。它正在查询子图以获取传入的ENS地址的数据。

如果你想知道我是怎么想通了如何创建此查询,那么你需要更多关于thegraph和graphql工作的知识。基本上,每个子图都有一个游乐场,我一直在摆弄它,直到我得到了所需的数据。

例如,在playground中,可以输入查询,然后按下播放键,以便查看返回的数据。

现在,如果返回到queryENSForETHAddress,你可以看到数据存储在result变量中:

return语句的基本意思是,ifvalidENSaddresspassedin,returntheETHaddress…otherwise,return0。你还会注意到返回的数据采用来自getQueryENSForETHAddress。

一旦它返回,它可以追溯到useEffect中useENSAddress.ts的文件和设置ethAddress状态变量。

然后,返回三个值:

return

第一个值表示传入的值是否有效。第二个值是从子图中检索到的ETH地址。第三个值表示这些值当前是否正在加载。

差不多就是这样了。完成这个过程后,我将这些值记录到主页上的控制台。

现在你已经知道如何将第一层和第二层的ENS地址转换为ETH地址。

Source:https://medium.com/coinmonks/how-to-convert-ens-address-to-eth-address-in-js-251c6209c208

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

ETH区块链:区块链100问 区块链的平台(波场助手)

区块链项目之平台类 区块链项目第二类是平台类。平台类项目主要功能为建立技术平台,满足各种区块链应用开发所需的技术要求。简单地说,平台类应用让开发者可以在区块链上直接发行数字资产、编写智能合约等.

[0:0ms0-7:322ms