開源專案
ensdomains/ens-contracts avatar
ensdomains/ens-contracts

ENS contracts:註冊表、解析器與鏈上部署的合約核心

ENS 協議的核心合約。 DNSResolver = 實驗性支援可用於透過 ENS 在以太坊區塊鏈上託管 DNS 網域。

728 個 Star578 個 ForkTypeScriptMIT

秒懂

它是什麼?
The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS. 本文聚焦 ens-contracts 的功能入口、使用條件、維護訊號與授權邊界。
適合誰用?
ens-contracts 適合需求與 README 所列「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」相符、並能維護其依賴與版本的使用者;不適合把範例、星數或未說明的相容性當成正式承諾。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

ens-contracts|專案定位與能力邊界

ens-contracts 的 README 將它放在「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」這個明確範圍內。這不是泛用產品保證,而是理解倉庫入口的起點。本文只採用 ensdomains/ens-contracts 素材中可追溯的名稱、命令、檔案與文件描述;README 沒有說明的效能、相容矩陣或安全承諾,保留為未說明。第 1 節特別關注 ens-contracts 的實際使用者會碰到的輸入、輸出與失敗訊號。

從 ens-contracts 的 README 可讀到的專案線索包括:ens-contracts 的 README:ENS For documentation of the ENS system, see docs.ens.domains . npm package This repo doubles as an npm package with the compiled JSON contracts js import { BaseRegistrar, BaseRegistrarImplementation, BulkRenewal, ENS, ENSRegistry, ENSRegistryWithFallback, ETHRegistrarController, FIFSRegistrar, LinearPremiumPriceOracle, PriceOracle, PublicResolver, Resolver, ReverseRegistrar, StablePriceOracle, TestRegistrar, } from '@ensdomains/ens-contracts' Importing from solidity // Registry import '@ensd。這些線索能說明作者提供哪些入口,卻不能把範例當成完整部署設計。閱讀 ensdomains/ens-contracts 時,應把 README 的示範、原始碼目錄、版本標籤與實際執行結果分開記錄,尤其要標明資料是在何處進入、經過哪個命令或模組、最後以何種格式離開。

對 ens-contracts 的核對要落在專案自己的記號上。若它是命令列工具,就以 README 指出的命令、輸入檔和退出狀態觀察結果;若它是函式庫或合約,就從 README 的套件、測試或部署入口建立最小案例;若它是服務或清單,則檢查指定端點、回應欄位或更新檔案。請在隔離目錄固定 staging 分支可追溯的版本,記下錯誤日誌、產物位置與設定鍵的實際值。這是第 1 個核對面向,ens-contracts 的素材未提供的部分不能自行補成支援能力。

ens-contracts|README 指向的第一條使用路徑

ens-contracts 的 README 將它放在「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」這個明確範圍內。這不是泛用產品保證,而是理解倉庫入口的起點。本文只採用 ensdomains/ens-contracts 素材中可追溯的名稱、命令、檔案與文件描述;README 沒有說明的效能、相容矩陣或安全承諾,保留為未說明。第 2 節特別關注 ens-contracts 的實際使用者會碰到的輸入、輸出與失敗訊號。

從 ens-contracts 的 README 可讀到的專案線索包括:th the compiled JSON contracts js import { BaseRegistrar, BaseRegistrarImplementation, BulkRenewal, ENS, ENSRegistry, ENSRegistryWithFallback, ETHRegistrarController, FIFSRegistrar, LinearPremiumPriceOracle, PriceOracle, PublicResolver, Resolver, ReverseRegistrar, StablePriceOracle, TestRegistrar, } from '@ensdomains/ens-contracts' Importing from solidity // Registry import '@ensdomains/ens-contracts/contracts/registry/ENS.sol'; import '@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol'; import '@ensdoma。這些線索能說明作者提供哪些入口,卻不能把範例當成完整部署設計。閱讀 ensdomains/ens-contracts 時,應把 README 的示範、原始碼目錄、版本標籤與實際執行結果分開記錄,尤其要標明資料是在何處進入、經過哪個命令或模組、最後以何種格式離開。

對 ens-contracts 的核對要落在專案自己的記號上。若它是命令列工具,就以 README 指出的命令、輸入檔和退出狀態觀察結果;若它是函式庫或合約,就從 README 的套件、測試或部署入口建立最小案例;若它是服務或清單,則檢查指定端點、回應欄位或更新檔案。請在隔離目錄固定 staging 分支可追溯的版本,記下錯誤日誌、產物位置與設定鍵的實際值。這是第 2 個核對面向,ens-contracts 的素材未提供的部分不能自行補成支援能力。

ens-contracts|核心資料與執行流程

ens-contracts 的 README 將它放在「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」這個明確範圍內。這不是泛用產品保證,而是理解倉庫入口的起點。本文只採用 ensdomains/ens-contracts 素材中可追溯的名稱、命令、檔案與文件描述;README 沒有說明的效能、相容矩陣或安全承諾,保留為未說明。第 3 節特別關注 ens-contracts 的實際使用者會碰到的輸入、輸出與失敗訊號。

從 ens-contracts 的 README 可讀到的專案線索包括:back, ETHRegistrarController, FIFSRegistrar, LinearPremiumPriceOracle, PriceOracle, PublicResolver, Resolver, ReverseRegistrar, StablePriceOracle, TestRegistrar, } from '@ensdomains/ens-contracts' Importing from solidity // Registry import '@ensdomains/ens-contracts/contracts/registry/ENS.sol'; import '@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol'; import '@ensdomains/ens-contracts/contracts/registry/ENSRegistryWithFallback.sol'; import '@ensdomains/ens-contracts/contracts/registry/ReverseRegistrar.。這些線索能說明作者提供哪些入口,卻不能把範例當成完整部署設計。閱讀 ensdomains/ens-contracts 時,應把 README 的示範、原始碼目錄、版本標籤與實際執行結果分開記錄,尤其要標明資料是在何處進入、經過哪個命令或模組、最後以何種格式離開。

對 ens-contracts 的核對要落在專案自己的記號上。若它是命令列工具,就以 README 指出的命令、輸入檔和退出狀態觀察結果;若它是函式庫或合約,就從 README 的套件、測試或部署入口建立最小案例;若它是服務或清單,則檢查指定端點、回應欄位或更新檔案。請在隔離目錄固定 staging 分支可追溯的版本,記下錯誤日誌、產物位置與設定鍵的實際值。這是第 3 個核對面向,ens-contracts 的素材未提供的部分不能自行補成支援能力。

ens-contracts|建置、部署與設定條件

ens-contracts 的 README 將它放在「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」這個明確範圍內。這不是泛用產品保證,而是理解倉庫入口的起點。本文只採用 ensdomains/ens-contracts 素材中可追溯的名稱、命令、檔案與文件描述;README 沒有說明的效能、相容矩陣或安全承諾,保留為未說明。第 4 節特別關注 ens-contracts 的實際使用者會碰到的輸入、輸出與失敗訊號。

從 ens-contracts 的 README 可讀到的專案線索包括:ceOracle, TestRegistrar, } from '@ensdomains/ens-contracts' Importing from solidity // Registry import '@ensdomains/ens-contracts/contracts/registry/ENS.sol'; import '@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol'; import '@ensdomains/ens-contracts/contracts/registry/ENSRegistryWithFallback.sol'; import '@ensdomains/ens-contracts/contracts/registry/ReverseRegistrar.sol'; import '@ensdomains/ens-contracts/contracts/registry/TestRegistrar.sol'; // EthRegistrar import '@ensdomains/ens-contracts/contract。這些線索能說明作者提供哪些入口,卻不能把範例當成完整部署設計。閱讀 ensdomains/ens-contracts 時,應把 README 的示範、原始碼目錄、版本標籤與實際執行結果分開記錄,尤其要標明資料是在何處進入、經過哪個命令或模組、最後以何種格式離開。

對 ens-contracts 的核對要落在專案自己的記號上。若它是命令列工具,就以 README 指出的命令、輸入檔和退出狀態觀察結果;若它是函式庫或合約,就從 README 的套件、測試或部署入口建立最小案例;若它是服務或清單,則檢查指定端點、回應欄位或更新檔案。請在隔離目錄固定 staging 分支可追溯的版本,記下錯誤日誌、產物位置與設定鍵的實際值。這是第 4 個核對面向,ens-contracts 的素材未提供的部分不能自行補成支援能力。

ens-contracts|限制、維護與授權影響

ens-contracts 的 README 將它放在「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」這個明確範圍內。這不是泛用產品保證,而是理解倉庫入口的起點。本文只採用 ensdomains/ens-contracts 素材中可追溯的名稱、命令、檔案與文件描述;README 沒有說明的效能、相容矩陣或安全承諾,保留為未說明。第 5 節特別關注 ens-contracts 的實際使用者會碰到的輸入、輸出與失敗訊號。

從 ens-contracts 的 README 可讀到的專案線索包括:ts/registry/ENS.sol'; import '@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol'; import '@ensdomains/ens-contracts/contracts/registry/ENSRegistryWithFallback.sol'; import '@ensdomains/ens-contracts/contracts/registry/ReverseRegistrar.sol'; import '@ensdomains/ens-contracts/contracts/registry/TestRegistrar.sol'; // EthRegistrar import '@ensdomains/ens-contracts/contracts/ethregistrar/BaseRegistrar.sol'; import '@ensdomains/ens-contracts/contracts/ethregistrar/BaseRegistrarImplementation.sol'; import '@en。這些線索能說明作者提供哪些入口,卻不能把範例當成完整部署設計。閱讀 ensdomains/ens-contracts 時,應把 README 的示範、原始碼目錄、版本標籤與實際執行結果分開記錄,尤其要標明資料是在何處進入、經過哪個命令或模組、最後以何種格式離開。

對 ens-contracts 的核對要落在專案自己的記號上。若它是命令列工具,就以 README 指出的命令、輸入檔和退出狀態觀察結果;若它是函式庫或合約,就從 README 的套件、測試或部署入口建立最小案例;若它是服務或清單,則檢查指定端點、回應欄位或更新檔案。請在隔離目錄固定 staging 分支可追溯的版本,記下錯誤日誌、產物位置與設定鍵的實際值。這是第 5 個核對面向,ens-contracts 的素材未提供的部分不能自行補成支援能力。

ens-contracts|採用前的專案化核對

ens-contracts 的 README 將它放在「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」這個明確範圍內。這不是泛用產品保證,而是理解倉庫入口的起點。本文只採用 ensdomains/ens-contracts 素材中可追溯的名稱、命令、檔案與文件描述;README 沒有說明的效能、相容矩陣或安全承諾,保留為未說明。第 6 節特別關注 ens-contracts 的實際使用者會碰到的輸入、輸出與失敗訊號。

從 ens-contracts 的 README 可讀到的專案線索包括:registry/ENSRegistryWithFallback.sol'; import '@ensdomains/ens-contracts/contracts/registry/ReverseRegistrar.sol'; import '@ensdomains/ens-contracts/contracts/registry/TestRegistrar.sol'; // EthRegistrar import '@ensdomains/ens-contracts/contracts/ethregistrar/BaseRegistrar.sol'; import '@ensdomains/ens-contracts/contracts/ethregistrar/BaseRegistrarImplementation.sol'; import '@ensdomains/ens-contracts/ Accessing to binary file. If your environment does not have compiler, you can access to the raw hardhat artifacts。這些線索能說明作者提供哪些入口,卻不能把範例當成完整部署設計。閱讀 ensdomains/ens-contracts 時,應把 README 的示範、原始碼目錄、版本標籤與實際執行結果分開記錄,尤其要標明資料是在何處進入、經過哪個命令或模組、最後以何種格式離開。

對 ens-contracts 的核對要落在專案自己的記號上。若它是命令列工具,就以 README 指出的命令、輸入檔和退出狀態觀察結果;若它是函式庫或合約,就從 README 的套件、測試或部署入口建立最小案例;若它是服務或清單,則檢查指定端點、回應欄位或更新檔案。請在隔離目錄固定 staging 分支可追溯的版本,記下錯誤日誌、產物位置與設定鍵的實際值。這是第 6 個核對面向,ens-contracts 的素材未提供的部分不能自行補成支援能力。

編輯結論

ens-contracts 適合需求與 README 所列「The core contracts of the ENS protocol. DNSResolver = Experimental support is available for hosting DNS domains on the Ethereum blockchain via ENS.」相符、並能維護其依賴與版本的使用者;不適合把範例、星數或未說明的相容性當成正式承諾。先依 ensdomains/ens-contracts README 的具體入口執行最小案例,核對 ens-contracts 的輸入格式、輸出結果、錯誤訊息與授權限制,再決定是否接入自己的流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記