Transactions

我可以進行將資金直接發送到 ENS 域解析到的地址的交易嗎?

  • March 15, 2022

例如,firefly.eth目前解析為 0xce31f0ad68d9565004bbe351a8677eb74c86866d

如果我的軟體在創建交易之前不知道或查找特定地址“0xce31f0ad68d9565004bbe351a8677eb74c86866d”(幾乎所有支持 ENS 的錢包軟體都會做/將做的方式),我可以簽署一筆交易,將資金從我的外部擁有的 secp256k1 賬戶直接發送到“在創建交易時不知道該資訊的情況下,無論 firefly.eth 解析為什麼?不想將它發送到某種類型的定制契約,該契約首先解析 firefly.eth,然後在獲得它後將我的資金轉發到“0xce31 …”。我希望資金直接從我的帳戶轉到“0xce31 …”,這樣如果“0xce31”檢查了 msg.sender,它就會認為資金直接來自我的帳戶。

這可能嗎?

答案是不”。您要麼需要解析鏈外的地址(通過 web3 或其他方式),要麼讓鏈上合約為您完成。

如果硬性要求是msg.sender您的地址,那麼您需要通過鏈下解決方案來解析地址。

我不想將它發送到首先解析 firefly.eth 然後將我的資金轉發到“0xce31 …”的契約,我想直接從我的帳戶發送到“無論 firefly.eth 解析到什麼”。

我認為您誤解了 ENS 系統的執行方式,因為據我所知,它實際上是按照您的意願執行的。

ENS 系統的工作方式,ENS 公共解析器實際上並不將資金作為名稱解析的一部分進行轉發,合約僅保存鏈下程式碼可用於解析 ENS 名稱的數據庫。這意味著在您的資金甚至離開您的錢包之前firefly.eth就已轉換為。0xce31...


例如,當您將資金從您的地址發送到 ENS 名稱時,會發生以下情況:

  1. 您在錢包的目標欄位中輸入“firefly.eth”並向其發送 1ETH。
  2. 你的錢包執行addr公共 ENS 解析器合約的功能(在對地址進行雜湊處理後)解析firefly.eth0xce31....
  3. 您的錢包直接簽署並發送 1ETH 的交易,0xce31...無需任何中間人、轉發或任何更多的合約程式碼。

因此,您的資金本身永遠不會通過任何契約。ENS 解析器合約用於解析最終地址,然後您的資金直接進入那裡。

有關 ENS 名稱解析如何工作的更多資訊,請查看ENS 論文

引用自:https://ethereum.stackexchange.com/questions/17428