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

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

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

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

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

1:使用ENS.js

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

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

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

RSS3率先支持Lens Protocol L3解决方案Momoka:6月2日消息,RSS3 已支持 Lens Protocol L3 拓展解决方案 Momoka。同时,RSS3 生态项目——带有人工智能的 Web3 搜索引擎 Hoot.it 也已全面支持 Momoka。用户仅需输入 0x 地址、Lens Handle 或任意关键词,便可以通过 Hoot.it 搜索 Momoka 上的任何内容。

Momoka 是一个基于 Lens Protocol 的 Optimistic Rollup 开发的混合结算 L3,增加网络吞吐量的同时可以降低成本,确保用户的社交数据主权。RSS3 网络对于 Momoka 的集成,将促进开放、高效和安全的信息流动。通过 RSS3 的 API,开发者可以获取到标准化的数据,实现 Web3 数据无缝桥接,并驱动 AI、搜索、Feed 流等应用的发展。[2023/6/2 11:54:19]

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

Web3安全机构Wallet Guard完成pre-seed轮融资,Ethereal Ventures领投:4月17日消息,据官方消息,Web3安全机构Wallet Guard完成pre-seed轮融资,此轮融资由Ethereal Ventures领投,Consen Sys和IOSG Ventures参投,此外,来自Chainlink的Ben Chan和来自Phantom的Dave Pazdan等Web3领域著名天使投资人也参与了此轮投资。Wallet Guard旨在让所有用户都能获得安全保障,其同名产品可通过交易模拟和签名审核保证用户安全地进行交易,并主动检测常见形式的网络钓鱼,以保证用户资金安全。[2023/4/17 14:07:50]

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

报告:2022年勒索软件攻击者获利减少40%,至4.568亿美元:1月20日消息,区块链情报公司Chainalysis在1月19日发布的《2023年加密犯罪报告》报告中表示,2022年勒索软件攻击者获利暴跌40%,至4.568亿美元,同时指出这些数字并不一定意味着攻击次数比前一年有所下降。

Chainalysis表示,公司被迫加强网络安全措施,而受害者越来越不愿意向攻击者支付赎金。在去年同系列报告发布时,2021年勒索软件攻击获利高达6.02亿美元,后来又新增了更多的加密货币钱包地址,使这一数字升至7.66亿美元。

此外,勒索软件攻击者在重新分配资金时,有48.3%利用中心化加密货币交易所,高于2021年的占比39.3%,而包括遭到OFAC制裁的Tornado Cash在内的混币协议在2022年被攻击者利用的占比从11.6%增加到15.0%。(Cointelegraph)[2023/1/20 11:23:09]

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

DeFi TVL已缩水超1200亿美元,较2021年11月峰值下跌75%:金色财经报道,据区块链分析公司Glassnode数据显示,随着加密货币市场走低,锁定在DeFi的总价值已大幅下降。在2021年11月的市场达到1600亿美元的峰值后,DeFi总锁仓TVL已经下降了超过1203亿美元(跌幅达75%),也造成DeFi抵押品价值下降到397亿美元,回到了2021年2月的水平。此外,从2020年7月到2021年5月,DeFi协议占据了所有gas fee消费的25%至30%,但目前已下降到只有14%。[2022/12/17 21:50:58]

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

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

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

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

useEffect((): any => { ...body code here... }, [inputAddress])

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

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

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

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

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

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

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

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

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

return语句的基本意思是,if valid ENS address passed in, return the ETH address…otherwise, return 0。你还会注意到返回的数据采用来自getQueryENSForETHAddress。

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

然后,返回三个值:

return [parseInt(ethAddress, 16) !== 0, ethAddress, isLoading]

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

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

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

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

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

地球链

[0:15ms0-1:13ms