我可以進行將資金直接發送到 ENS 域解析到的地址的交易嗎?
例如,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 名稱時,會發生以下情況:
- 您在錢包的目標欄位中輸入“firefly.eth”並向其發送 1ETH。
- 你的錢包執行
addr
公共 ENS 解析器合約的功能(在對地址進行雜湊處理後)解析firefly.eth
為0xce31...
.- 您的錢包直接簽署並發送 1ETH 的交易,
0xce31...
無需任何中間人、轉發或任何更多的合約程式碼。因此,您的資金本身永遠不會通過任何契約。ENS 解析器合約用於解析最終地址,然後您的資金直接進入那裡。
有關 ENS 名稱解析如何工作的更多資訊,請查看ENS 論文。