在本教程中,我將向大家展示我能想到的最簡單的例子,如何在web應用程序中將ENS地址轉換為ETH地址。
、
知道如何做是很有價值的,因為大多數智能合約只接受ETH地址,而不接受ENS地址。
介紹
如何做到這一點的簡單答案是,用戶只需要從子圖中查詢數據。
有多種方法轉換一個ENS地址:
1:使用ENS.js
我曾經使用這個庫來轉換ENS地址。但是,它不適用于位于layer2的應用程序,所以我不會展示如何以這種方式進行操作。
2:使用ENS提供的去中心化子圖
Swap-LP合約被惡意利用,造成約110萬美元損失:金色財經報道,據CertiK監測,Swap-LP合約(0xe0c352c56af65772ac7c9ab45b858cb43d22f28f)被惡意利用,造成約110萬美元損失。黑客(0xdead)將盜用的資金存入了Tornado.Cash。據悉,攻擊者在 Swap-LP 合約地址中操縱了一個低級調用,觸發了 SwapLP Pair 的 0x33604058 函數。這導致該對中的所有 WDZD 代幣都轉移到了合約地址。因此,攻擊者能夠從未經驗證的地址(開頭地址:0x3c4e06d)獲取大量 SWAP LP,使用較少的 WDZD 并隨后銷毀 LP 以獲利。[2023/5/22 15:17:46]
這是最可靠的方法,因為它是去中心化的。然而,當我在ENSdiscord中詢問時,他們說不要用這個。此外,每次用戶在你的應用程序上查詢這個子圖時,你都要花錢——所以它不是免費的。我認為ENS計劃告訴每個人使用這個子圖,但我可能是錯的,我不確定他們會等待什么。
Tron.soy在Tron鏈上推出去中心化云挖礦平臺:金色財經報道,位于英國倫敦的 TRON 子公司 TRON.SOY 已在 TRON 網絡上推出去中心化云挖礦平臺。TRON 網絡在區塊鏈上擁有超過 1.52 億用戶和超過 52 億筆交易,[2023/4/24 14:23:36]
3:使用ENS提供的中心化子圖
這個子圖是免費使用的,也是巴黎高等師范學院推薦人們使用的。這是我將教如何使用這里。
項目設置
首先,在本地克隆repo。然后,安裝所有依賴項并運行本地服務器。如果要檢查localhost,就應該在頁面上看到一個輸入。如果輸入了一個有效的ENS地址,就將看到有效性和ETH地址正在瀏覽器控制臺中登錄,確認轉換。
解釋
既然你已經有了所有的代碼,我將用本教程的剩余部分來解釋它如何線性工作。
Hudson Capital收購Web3社交平臺FaceDAO:11月26日,據官方消息,Hudson Capital全面收購Web3社交平臺FaceDAO。該機構此前已天使投資英國唯一一家持牌合規數字資產交易所Archax和中央登記結算中心,FaceDAO是該機構在Web3領域的首次嘗試。[2022/11/26 20:47:35]
在主頁上有一個輸入(src/pages/index.tsx)。輸入時,它設置inputAddress狀態變量。
每當這個狀態變量發生變化時,它都會被這里的useENSAddresshook檢測到:
Opera瀏覽器已集成MetaMask等第三方錢包:9月13日消息,專注于 Web3 的加密瀏覽器 Opera 現已支持MetaMask等第三方錢包。Opera 通過名為 Wallet Selector 的功能集成第三方錢包意味著除了瀏覽器的原生非托管錢包外,用戶還可以選擇 Google Chrome 或 Opera 商店中可用的任何錢包擴展程序與特定的 dApp 或網站進行交互。(Decrypt)[2022/9/13 13:27:11]
現在打開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
據CoinDesk消息,根據加拿大皇家銀行(RBC)的一份研究報告,區塊鏈技術已經發展到足以滿足銀行和金融市場中某些部分的關鍵需求.
1900/1/1 0:00:00據TheBlock消息,12月8日,支付巨頭Visa宣布成立一個新的以加密貨幣為重點的咨詢部門,以幫助客戶掌握該領域的情況.
1900/1/1 0:00:00據路透社消息,根據摩根士丹利最近發布一份報告預測,元宇宙風潮可能將在2030年前為奢侈品牌創造500億美元商機.
1900/1/1 0:00:00據經濟觀察網消息,據不完全統計,截至目前,2021年內蒙古、云南、新疆、青海、四川、安徽、河北、江蘇、浙江、福建、江西、海南12省份已出手整治虛擬貨幣“挖礦”活動.
1900/1/1 0:00:00據TheBlock消息,Celo初創公司cLabs工程主管TimMoreton在周日發表的一篇論壇帖子中聲稱,cLabs解雇前Summa創始人JamesPrestwich的理由是其行為不當.
1900/1/1 0:00:00美國證券交易委員會(SEC)最近拒絕了VanEck的比特幣現貨ETF申請,加密資產管理公司灰度投資對此進行了回擊.
1900/1/1 0:00:00