Skip to content

Commit 0ea26c5

Browse files
committed
feat: ensip-10
1 parent f9ef413 commit 0ea26c5

8 files changed

Lines changed: 441 additions & 59 deletions

File tree

DEPLOYMENT.md

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,77 @@ cast send $NAME_WRAPPER "setApprovalForAll(address,bool)" \
173173

174174
---
175175

176-
## Step 4: Verify Deployment
176+
## Step 4: Enable Wildcard Resolution (ENSIP-10)
177+
178+
The ConfigResolver supports wildcard resolution, allowing `<address>.yourname.eth` to resolve without users needing to claim the subname first. This enables:
179+
180+
- **Address resolution**: `<address>.yourname.eth` automatically resolves to that address
181+
- **Text records**: Users can set records that resolve via any parent name
182+
183+
### Set ConfigResolver as the parent name's resolver
184+
185+
For wildcard resolution to work, your parent name must use the ConfigResolver as its resolver.
186+
187+
**For wrapped names (NameWrapper):**
188+
189+
```bash
190+
# Set ConfigResolver as the resolver for your parent name
191+
# Run this from the wrapped name OWNER's account
192+
cast send $NAME_WRAPPER "setResolver(bytes32,address)" \
193+
$PARENT_NODE \
194+
$CONFIG_RESOLVER \
195+
--rpc-url $RPC_URL \
196+
--account <owner-account>
197+
```
198+
199+
**For unwrapped names (ENS Registry):**
200+
201+
```bash
202+
cast send $ENS_REGISTRY "setResolver(bytes32,address)" \
203+
$PARENT_NODE \
204+
$CONFIG_RESOLVER \
205+
--rpc-url $RPC_URL \
206+
--account <owner-account>
207+
```
208+
209+
### Verify wildcard support
210+
211+
```bash
212+
# Check that ConfigResolver supports IExtendedResolver (0x9061b923)
213+
cast call $CONFIG_RESOLVER "supportsInterface(bytes4)" "0x9061b923" --rpc-url $RPC_URL
214+
# Should return: true (0x01)
215+
216+
# Check that the parent name uses ConfigResolver
217+
cast call $ENS_REGISTRY "resolver(bytes32)(address)" $PARENT_NODE --rpc-url $RPC_URL
218+
# Should return: your CONFIG_RESOLVER address
219+
```
220+
221+
### How it works
222+
223+
Once enabled, any lookup for `<address>.yourname.eth` will:
224+
225+
1. ENS checks if the subname exists → it doesn't (not claimed)
226+
2. ENS falls back to the parent's resolver (ConfigResolver)
227+
3. ConfigResolver's `resolve()` function handles the request:
228+
- For `addr()`: Returns the address from the subdomain label
229+
- For `text()`: Looks up records stored under the user's reverse node
230+
231+
This means users can set records once (via their reverse node) and have them resolve under any parent name that uses ConfigResolver.
232+
233+
---
234+
235+
## Step 5: Verify Deployment
177236

178237
### Check ConfigResolver
179238

180239
```bash
181-
# Verify it supports the resolver interface
240+
# Verify it supports the resolver interface (ERC-165)
182241
cast call $CONFIG_RESOLVER "supportsInterface(bytes4)" "0x01ffc9a7" --rpc-url $RPC_URL
183242
# Should return: true (0x01)
243+
244+
# Verify it supports wildcard resolution (ENSIP-10)
245+
cast call $CONFIG_RESOLVER "supportsInterface(bytes4)" "0x9061b923" --rpc-url $RPC_URL
246+
# Should return: true (0x01)
184247
```
185248

186249
### Check AddressSubnameRegistrar
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"transactions": [
3+
{
4+
"hash": "0x150afc7fc224675c925fabc9c8b04f1831f82a23abe773765149702ae02a09e7",
5+
"transactionType": "CREATE",
6+
"contractName": "AddressSubnameRegistrar",
7+
"contractAddress": "0x0b12ea2528054b6b309a54c0f23fb7527279d853",
8+
"function": null,
9+
"arguments": [
10+
"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
11+
"0x0635513f179D50A207757E05759CbD106d7dFcE8",
12+
"0x6a0bbb836c9bf46c725aa4890f1b44047d12f100ec6b9865fdbbed047666ed2e",
13+
"0xe56E4FFc168c2A5Bb449D9B4bb698Efbca493d10"
14+
],
15+
"transaction": {
16+
"from": "0x1f3484e712c4657436fdf03f4bc882daea1e3e00",
17+
"gas": "0x1a4ebb",
18+
"value": "0x0",
19+
"input": "0x610100604052348015610010575f5ffd5b50604051611a10380380611a10833981810160405281019061003291906101e6565b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508160c081815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250505050505061024a565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61010c826100e3565b9050919050565b5f61011d82610102565b9050919050565b61012d81610113565b8114610137575f5ffd5b50565b5f8151905061014881610124565b92915050565b5f61015882610102565b9050919050565b6101688161014e565b8114610172575f5ffd5b50565b5f815190506101838161015f565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f5ffd5b50565b5f815190506101b681610192565b92915050565b6101c581610102565b81146101cf575f5ffd5b50565b5f815190506101e0816101bc565b92915050565b5f5f5f5f608085870312156101fe576101fd6100df565b5b5f61020b8782880161013a565b945050602061021c87828801610175565b935050604061022d878288016101a8565b925050606061023e878288016101d2565b91505092959194509250565b60805160a05160c05160e0516116f261031e5f395f8181610c7201528181610ee60152610fd201525f818161078a01528181610ac201528181610cbb01528181610d1301528181610df901528181610ec30152610faf01525f81816102ea0152818161032a01528181610396015281816108ba015281816108fa0152818161096601528181610b5701528181610b9701528181610c9601528181610dbd0152610e8701525f81816101fb0152818161064e015281816106aa015281816107d601528181610a860152610f7301526116f25ff3fe608060405234801561000f575f5ffd5b5060043610610091575f3560e01c80634e71d92d116100645780634e71d92d14610143578063828eab0e14610161578063a8e5fbc01461017f578063bffbe61c1461019d578063f3068a00146101cd57610091565b806310098ad51461009557806328a249b0146100c55780633f15457f146100f55780634709bf4b14610113575b5f5ffd5b6100af60048036038101906100aa91906110a1565b6101eb565b6040516100bc91906110e6565b60405180910390f35b6100df60048036038101906100da91906110a1565b610459565b6040516100ec919061116f565b60405180910390f35b6100fd61064c565b60405161010a91906111ea565b60405180910390f35b61012d60048036038101906101289190611203565b610670565b60405161013a9190611259565b60405180910390f35b61014b610c60565b6040516101589190611259565b60405180910390f35b610169610c70565b6040516101769190611281565b60405180910390f35b610187610c94565b60405161019491906112ba565b60405180910390f35b6101b760048036038101906101b291906110a1565b610cb8565b6040516101c49190611259565b60405180910390f35b6101d5610d11565b6040516101e29190611259565b60405180910390f35b5f5f6101f683610cb8565b90505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004016102529190611259565b602060405180830381865afa15801561026d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029191906112e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102d157600192505050610454565b5f73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161415801561037857507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561044e575f73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e845f1c6040518263ffffffff1660e01b81526004016103ef919061132a565b602060405180830381865afa15801561040a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042e91906112e7565b73ffffffffffffffffffffffffffffffffffffffff161492505050610454565b5f925050505b919050565b60605f602867ffffffffffffffff81111561047757610476611343565b5b6040519080825280601f01601f1916602001820160405280156104a95781602001600182028036833780820191505090505b5090505f8390505f602890505b5f811115610641578080600190039150507f30313233343536373839616263646566000000000000000000000000000000005f1b600f831673ffffffffffffffffffffffffffffffffffffffff166020811061051557610514611370565b5b1a60f81b60f81c60f81b83828151811061053257610531611370565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060048273ffffffffffffffffffffffffffffffffffffffff16901c91508080600190039150507f30313233343536373839616263646566000000000000000000000000000000005f1b600f831673ffffffffffffffffffffffffffffffffffffffff16602081106105d4576105d3611370565b5b1a60f81b60f81c60f81b8382815181106105f1576105f0611370565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060048273ffffffffffffffffffffffffffffffffffffffff16901c91506104b6565b508192505050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561074457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e985e9c584336040518363ffffffff1660e01b815260040161070392919061139d565b602060405180830381865afa15801561071e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074291906113ee565b155b1561077b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61078584610d35565b90505f7f0000000000000000000000000000000000000000000000000000000000000000826040516020016107bb929190611439565b6040516020818303038152906040528051906020012090505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b815260040161082d9190611259565b602060405180830381865afa158015610848573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086c91906112e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a83575f73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161415801561094857507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610a50575f73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e845f1c6040518263ffffffff1660e01b81526004016109bf919061132a565b602060405180830381865afa1580156109da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fe91906112e7565b73ffffffffffffffffffffffffffffffffffffffff1614610a4b576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a82565b6040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be37f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610afd9190611259565b602060405180830381865afa158015610b18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3c91906112e7565b90505f73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015610be557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610bf957610bf48787610dba565b610c04565b610c038487610f71565b5b828773ffffffffffffffffffffffffffffffffffffffff167f1b2af9453f54ccc027b7454c98ebdf2e7bc4b762f1a1c5dd221d1affdb9fe03e88604051610c4b9190611281565b60405180910390a38294505050505092915050565b5f610c6b3333610670565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f0000000000000000000000000000000000000000000000000000000000000000610ce383610d35565b604051602001610cf4929190611439565b604051602081830303815290604052805190602001209050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60285b5f811115610dae576001810390507f3031323334353637383961626364656600000000000000000000000000000000600f84161a81536010830492506001810390507f3031323334353637383961626364656600000000000000000000000000000000600f84161a8153601083049250610d39565b5060285f209050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630178fe3f7f00000000000000000000000000000000000000000000000000000000000000005f1c6040518263ffffffff1660e01b8152600401610e36919061132a565b606060405180830381865afa158015610e51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7591906114da565b925050505f610e8384610459565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166324c1af447f000000000000000000000000000000000000000000000000000000000000000083867f00000000000000000000000000000000000000000000000000000000000000005f5f896040518863ffffffff1660e01b8152600401610f2a97969594939291906115a2565b6020604051808303815f875af1158015610f46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6a9190611640565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635ef2c7f07f000000000000000000000000000000000000000000000000000000000000000084847f00000000000000000000000000000000000000000000000000000000000000005f6040518663ffffffff1660e01b815260040161101295949392919061166b565b5f604051808303815f87803b158015611029575f5ffd5b505af115801561103b573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61107082611047565b9050919050565b61108081611066565b811461108a575f5ffd5b50565b5f8135905061109b81611077565b92915050565b5f602082840312156110b6576110b5611043565b5b5f6110c38482850161108d565b91505092915050565b5f8115159050919050565b6110e0816110cc565b82525050565b5f6020820190506110f95f8301846110d7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611141826110ff565b61114b8185611109565b935061115b818560208601611119565b61116481611127565b840191505092915050565b5f6020820190508181035f8301526111878184611137565b905092915050565b5f819050919050565b5f6111b26111ad6111a884611047565b61118f565b611047565b9050919050565b5f6111c382611198565b9050919050565b5f6111d4826111b9565b9050919050565b6111e4816111ca565b82525050565b5f6020820190506111fd5f8301846111db565b92915050565b5f5f6040838503121561121957611218611043565b5b5f6112268582860161108d565b92505060206112378582860161108d565b9150509250929050565b5f819050919050565b61125381611241565b82525050565b5f60208201905061126c5f83018461124a565b92915050565b61127b81611066565b82525050565b5f6020820190506112945f830184611272565b92915050565b5f6112a4826111b9565b9050919050565b6112b48161129a565b82525050565b5f6020820190506112cd5f8301846112ab565b92915050565b5f815190506112e181611077565b92915050565b5f602082840312156112fc576112fb611043565b5b5f611309848285016112d3565b91505092915050565b5f819050919050565b61132481611312565b82525050565b5f60208201905061133d5f83018461131b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6040820190506113b05f830185611272565b6113bd6020830184611272565b9392505050565b6113cd816110cc565b81146113d7575f5ffd5b50565b5f815190506113e8816113c4565b92915050565b5f6020828403121561140357611402611043565b5b5f611410848285016113da565b91505092915050565b5f819050919050565b61143361142e82611241565b611419565b82525050565b5f6114448285611422565b6020820191506114548284611422565b6020820191508190509392505050565b5f63ffffffff82169050919050565b61147c81611464565b8114611486575f5ffd5b50565b5f8151905061149781611473565b92915050565b5f67ffffffffffffffff82169050919050565b6114b98161149d565b81146114c3575f5ffd5b50565b5f815190506114d4816114b0565b92915050565b5f5f5f606084860312156114f1576114f0611043565b5b5f6114fe868287016112d3565b935050602061150f86828701611489565b9250506040611520868287016114c6565b9150509250925092565b5f819050919050565b5f61154d6115486115438461152a565b61118f565b61149d565b9050919050565b61155d81611533565b82525050565b5f61157d6115786115738461152a565b61118f565b611464565b9050919050565b61158d81611563565b82525050565b61159c8161149d565b82525050565b5f60e0820190506115b55f83018a61124a565b81810360208301526115c78189611137565b90506115d66040830188611272565b6115e36060830187611272565b6115f06080830186611554565b6115fd60a0830185611584565b61160a60c0830184611593565b98975050505050505050565b61161f81611241565b8114611629575f5ffd5b50565b5f8151905061163a81611616565b92915050565b5f6020828403121561165557611654611043565b5b5f6116628482850161162c565b91505092915050565b5f60a08201905061167e5f83018861124a565b61168b602083018761124a565b6116986040830186611272565b6116a56060830185611272565b6116b26080830184611554565b969550505050505056fea26469706673582212209ef91ade4d8caae40e0c80953a084406cfcf0f2f15d357852335eacca0e5eb1664736f6c634300081e003300000000000000000000000000000000000c2e074ec69a0dfb2997ba6c7d2e1e0000000000000000000000000635513f179d50a207757e05759cbd106d7dfce86a0bbb836c9bf46c725aa4890f1b44047d12f100ec6b9865fdbbed047666ed2e000000000000000000000000e56e4ffc168c2a5bb449d9b4bb698efbca493d10",
20+
"nonce": "0x7",
21+
"chainId": "0xaa36a7"
22+
},
23+
"additionalContracts": [],
24+
"isFixedGasLimit": false
25+
}
26+
],
27+
"receipts": [
28+
{
29+
"status": "0x1",
30+
"cumulativeGasUsed": "0x1c244e0",
31+
"logs": [],
32+
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
33+
"type": "0x2",
34+
"transactionHash": "0x150afc7fc224675c925fabc9c8b04f1831f82a23abe773765149702ae02a09e7",
35+
"transactionIndex": "0x6c",
36+
"blockHash": "0xcc8eca036e2c6b24f0ac93013aef4c1612e914dfd7033d1fc92d939591fe802d",
37+
"blockNumber": "0x9638b2",
38+
"gasUsed": "0x143c90",
39+
"effectiveGasPrice": "0x14e50a",
40+
"blobGasUsed": "0x0",
41+
"from": "0x1f3484e712c4657436fdf03f4bc882daea1e3e00",
42+
"to": null,
43+
"contractAddress": "0x0b12ea2528054b6b309a54c0f23fb7527279d853"
44+
}
45+
],
46+
"libraries": [],
47+
"pending": [],
48+
"returns": {},
49+
"timestamp": 1765790621505,
50+
"chain": 11155111,
51+
"commit": "5bdbd09"
52+
}

0 commit comments

Comments
 (0)