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

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

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

介绍

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

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

1:使用ENS.js

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

Circle CEO呼吁美国建立拥抱DeFi世界的链上美元系统:8月10日消息,Circle联合创始人兼首席执行官Jeremy Allaire发布一则宣传片,呼吁美国就数字货币“做出选择”,并重申美元面临的威胁。

Allaire在视频内容提及加密货币“从根本上改变支付方式”的能力,并与九十年代末拨号互联网与如今在智能手机、人工智能等技术下的现代网络状态进行比较,称“唯一没有跟上技术动作的是美元”。

Allaire表示,在当今的全球经济中,美元的强势地位正受到威胁。“让我们建立一个链上美元,它是一个强大的开发者原语,它拥抱多链、动态的DeFi世界,包括小额支付甚至是大规模资本市场。让我们在美国内建设这个系统,让全世界知道美国监管机构正在确保这些系统的安全、透明并受到银行级监管风险管理标准。”[2023/8/10 16:18:17]

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

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

某巨鲸再次从Kraken提取1269枚ETH,过去7天共提取24930枚ETH:金色财经报道,据LookonChain监测,9小时前,0x2c74开头的巨鲸地址再次从Kraken中提取了1269枚ETH(约合230万美元)。并且在过去7天内从Kraken中总共提取了24930枚ETH(约合4460万美元)。[2023/6/21 21:50:52]

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

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

项目设置

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

解释

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

Project XENO与YouTuber Hikaru合作推出NFT Drop:金色财经报道,基于策略的区块链游戏Project XENO 与日本流行的 YouTuber Hikaru 合作推出了 NFT 系列。限量版 NFT 系列将于 11 月 23 日至 30 日期间发售。[2022/11/26 20:46:34]

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

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

香港金融管理局探索使用区块链技术为中小企业融资:金色财经报道,香港金融管理局 (HKMA) 和BIS创新中心启动了Project Dynamo,旨在利用DeFi、区块链和智能合约帮助中小型企业 (SME) 获得更好的资金。他们打算探索对资金成本的影响,以及可用的资金池。[2022/9/16 7:01:47]

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

BendDAO发布新提案,拟修改部分协议参数以解决流动性危机:8月22日消息,NFT抵押借贷协议BendDAO社区发布新提案BIP#9,旨在通过修改部分参数解决流动性危机。包括将清算阈值调整为70%、将拍卖周期调整为4小时、将利息基础利率调整为20%、以及当发生坏账时BendDAO社区可投票决定如何处理。此外,将在用户界面中增加显示ETH浮动坏账的数量以及在主页上显示利息总额。未来协议层面改进包括支持BendDAO中的抵押品报价、尽可能多地接触交易平台以支持抵押物挂单等。

此前报道,8月19日,BendDAO首次清算拍卖BAYC,编号为#533。据悉,出价需大于NFT地板价95%,如拍品最终未成交,平台将承担浮亏或借款人未来偿还债务。当前BAYC地板价为69.69ETH,市值18.4亿美元,24小时跌幅1.95%。目前BendDAO平台有20枚BAYC健康因子小于1.1,累计40枚BAYC健康因子小于或等于1.1(当健康因子小于1时,将启动NFT清算拍卖)。[2022/8/22 12:40:36]

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

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

金星链

[0:15ms0-1:214ms