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

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

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

介绍

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

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

1:使用ENS.js

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

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

赵长鹏:交易受阻是“牛市问题”:金色财经报道,币安首席执行官赵长鹏在社交媒体称,gas 价格波动并上涨、交易受阻,费用上涨,人们抱怨,这些都是牛市问题,从好的方面看,加密货币仍然比法定货币更快、更便宜。[2023/5/8 14:49:41]

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

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

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

MITH要求Binance退回其上市时的20万BNB存款:12月15日消息,MITH官方表示,今天,币安宣布下架MITH。作为MITH上市的一部分,Binance需要200,000 BNB存款,但从未退还。MITH代表Mithril社区要求Binance归还这笔押金,以便Mithril可以继续运营。鉴于Binance已单方面决定终止合作关系,MITH请求退还其200,000 BNB存款。

今日此前消息,币安将下架MITH、TRIBE、REP、BTCST代币。[2022/12/15 21:47:34]

项目设置

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

BitGo指责Galaxy因监管和财务压力“过早”退出收购协议:9月21日消息,一份公开的法庭文件显示,加密货币托管商BitGo指责Galaxy Digital“过早”退出其12亿美元收购协议。

BitGo律师写道,“Galaxy过早放弃与BitGo合并的决定与BitGo的财务报表无关,而是与Galaxy的巨额亏损以及SEC(注册)相关意料之外的困境有关。”

Galaxy Digital在8月份发布的声明中表示,其决定终止合并是因为BitGo“未能在2022年7月31日之前提供符合协议要求的2021年经审计的财务报表”。BitGo表示,这是Galaxy Digital“编造的一个借口”,说它没有提交这些财务报表。

BitGo声称,其财务审计及时,并按照公认审计准则(GAAS)进行审计。文件显示,Galaxy Digital声称BitGo本应使用不同的审计标准,尽管当时BitGo从未听说过其对此事有所担忧。

该文件还表示,Galaxy Digital在美国SEC注册(年底到期)相关工作方面进展缓慢,这是收购协议的一部分。未能注册或延迟完成注册的风险将由Galaxy Digital负责。文件显示,由于监管和财务压力,他们“不顾一切地”地想退出协议。

据此前报道,BitGo正式起诉Galaxy Digital退出收购协议,要求赔偿超过1亿美元的损失。(The Block)[2022/9/21 7:10:01]

解释

跨链流动性聚合协议Via Protocol新增支持Arbitrum:6月14日消息,跨链流动性聚合协议Via Protocol宣布新增支持Arbitrum,此前已支持以太坊、Polygon、Optimism等网络。[2022/6/14 4:26:08]

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

在主页上有一个输入(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

来源:金色财经

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

银河链

酷币DAOrayaki |赏金经济简介

赏金经济,是未来工作的主要形式之一,只是还没有普及。去中心化自治组织正在创建自己的微观经济,向成员发放赏金,以完成任务,实现使命.

比特币交易HDAO 全球节点竞选火热招募

据官方消息,HDAO全球节点竞选火热进行中。HDAO节点是HDAO生态链的治理和权益节点,通过处理交易和签署区块来为区块链网络提供动力,还能享有参与链上治理的权益.

[0:31ms0-1:554ms