# Resolver discussion ## Resolver types Currently, resolver implementation differentiates between different resolver *types*. When resolving a name, the user should supply a type of resolver to use - for example, ENS, RNS, private DNS etc. Initially, my thoughts were to determine the type of resolver based on the TLD of the URL, howerver there is no guarantee that a TLD is directly tied to a resolver: for example, a private DNS can shadow an ENS TLD, ENS may reserve different TLDs in the future etc. Questions: 1. Should a user supply the __type__ of resolver during the resolution step, or should it be inferred from the TLD? 2. Should testnets be registered as a distinct __type__ (eg. Ropsten ENS, Goerli ENS, _<rootstock_testnet_name>_ RNS)? ## URL validation and path processing Resolver should try resolve a __valid__ URL. Questions: 1. Should the resolver pass every valid URL, or a subset (ie. just the domain)? An example: Input: `https://www.example.ens/foo/bar/baz` Output (JSON): ``` { protocol: "https", user: "", host: "", port: "". hash: "0xdead...beef" path: { segments: ["foo", "bar", "baz"], slug: "baz" }, } ```