@ensdomains/ensjs 3.0.0-alpha.10 → 3.0.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/contracts/baseRegistrar.d.ts +1 -1
- package/dist/cjs/contracts/index.d.ts +3 -3
- package/dist/cjs/contracts/multicall.d.ts +1 -1
- package/dist/cjs/contracts/registry.d.ts +1 -1
- package/dist/cjs/functions/burnFuses.js +1 -1
- package/dist/cjs/functions/commitName.d.ts +26 -0
- package/dist/cjs/functions/commitName.js +24 -0
- package/dist/cjs/functions/createSubname.d.ts +3 -1
- package/dist/cjs/functions/createSubname.js +4 -2
- package/dist/cjs/functions/deleteSubname.d.ts +1 -1
- package/dist/cjs/functions/deleteSubname.js +3 -2
- package/dist/cjs/functions/getExpiry.d.ts +9 -2
- package/dist/cjs/functions/getExpiry.js +52 -7
- package/dist/cjs/functions/getFuses.d.ts +2 -3
- package/dist/cjs/functions/getFuses.js +4 -13
- package/dist/cjs/functions/getHistory.d.ts +0 -30
- package/dist/cjs/functions/getHistory.js +3 -99
- package/dist/cjs/functions/getName.d.ts +2 -2
- package/dist/cjs/functions/getName.js +1 -1
- package/dist/cjs/functions/getProfile.js +1 -1
- package/dist/cjs/functions/getSpecificRecord.js +8 -1
- package/dist/cjs/functions/getSubnames.d.ts +1 -1
- package/dist/cjs/functions/getSubnames.js +1 -1
- package/dist/cjs/functions/registerName.d.ts +11 -0
- package/dist/cjs/functions/registerName.js +19 -0
- package/dist/cjs/functions/renewName.d.ts +6 -0
- package/dist/cjs/functions/renewName.js +10 -0
- package/dist/cjs/functions/transferSubname.d.ts +12 -3
- package/dist/cjs/functions/transferSubname.js +5 -3
- package/dist/cjs/functions/wrapName.d.ts +3 -1
- package/dist/cjs/functions/wrapName.js +35 -29
- package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +222 -201
- package/dist/cjs/generated/DNSRegistrar.d.ts +68 -64
- package/dist/cjs/generated/DNSSECImpl.d.ts +111 -111
- package/dist/cjs/generated/DefaultReverseResolver.d.ts +17 -17
- package/dist/cjs/generated/ENSRegistry.d.ts +126 -111
- package/dist/cjs/generated/ETHRegistrarController.d.ts +111 -109
- package/dist/cjs/generated/Multicall.d.ts +60 -60
- package/dist/cjs/generated/NameWrapper.d.ts +493 -354
- package/dist/cjs/generated/P256SHA256Algorithm.d.ts +11 -7
- package/dist/cjs/generated/PublicResolver.d.ts +259 -235
- package/dist/cjs/generated/RSASHA1Algorithm.d.ts +11 -7
- package/dist/cjs/generated/RSASHA256Algorithm.d.ts +11 -7
- package/dist/cjs/generated/ReverseRegistrar.d.ts +112 -103
- package/dist/cjs/generated/Root.d.ts +77 -77
- package/dist/cjs/generated/SHA1Digest.d.ts +7 -7
- package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +11 -7
- package/dist/cjs/generated/SHA256Digest.d.ts +7 -7
- package/dist/cjs/generated/StaticMetadataService.d.ts +7 -7
- package/dist/cjs/generated/TLDPublicSuffixList.d.ts +7 -7
- package/dist/cjs/generated/UniversalResolver.d.ts +31 -31
- package/dist/cjs/generated/common.d.ts +1 -0
- package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/DNSRegistrar__factory.js +3 -26
- package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/DNSSECImpl__factory.js +3 -26
- package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +14 -4
- package/dist/cjs/generated/factories/NameWrapper__factory.js +210 -79
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +3 -26
- package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +3 -26
- package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +3 -26
- package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/SHA1Digest__factory.js +3 -26
- package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +3 -26
- package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/SHA256Digest__factory.js +3 -26
- package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
- package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +3 -26
- package/dist/cjs/generated/factories/index.d.ts +14 -0
- package/dist/cjs/generated/factories/index.js +29 -1
- package/dist/cjs/generated/index.d.ts +29 -1
- package/dist/cjs/generated/index.js +31 -3
- package/dist/cjs/index.d.ts +24 -40
- package/dist/cjs/index.js +9 -5
- package/dist/cjs/utils/registerHelpers.d.ts +44 -16
- package/dist/cjs/utils/registerHelpers.js +43 -15
- package/dist/cjs/utils/wrapperExpiry.d.ts +5 -0
- package/dist/cjs/utils/wrapperExpiry.js +30 -0
- package/dist/cjs/utils/writeTx.d.ts +18 -1
- package/dist/cjs/utils/writeTx.js +4 -1
- package/dist/esm/contracts/baseRegistrar.d.ts +1 -1
- package/dist/esm/contracts/index.d.ts +3 -3
- package/dist/esm/contracts/multicall.d.ts +1 -1
- package/dist/esm/contracts/registry.d.ts +1 -1
- package/dist/esm/functions/burnFuses.js +1 -1
- package/dist/esm/functions/commitName.d.ts +26 -0
- package/dist/esm/functions/commitName.js +21 -0
- package/dist/esm/functions/createSubname.d.ts +3 -1
- package/dist/esm/functions/createSubname.js +4 -2
- package/dist/esm/functions/deleteSubname.d.ts +1 -1
- package/dist/esm/functions/deleteSubname.js +3 -2
- package/dist/esm/functions/getExpiry.d.ts +9 -2
- package/dist/esm/functions/getExpiry.js +52 -7
- package/dist/esm/functions/getFuses.d.ts +2 -3
- package/dist/esm/functions/getFuses.js +5 -14
- package/dist/esm/functions/getHistory.d.ts +0 -30
- package/dist/esm/functions/getHistory.js +2 -96
- package/dist/esm/functions/getName.d.ts +2 -2
- package/dist/esm/functions/getName.js +1 -1
- package/dist/esm/functions/getProfile.js +1 -1
- package/dist/esm/functions/getSpecificRecord.js +8 -1
- package/dist/esm/functions/getSubnames.d.ts +1 -1
- package/dist/esm/functions/getSubnames.js +1 -1
- package/dist/esm/functions/registerName.d.ts +11 -0
- package/dist/esm/functions/registerName.js +16 -0
- package/dist/esm/functions/renewName.d.ts +6 -0
- package/dist/esm/functions/renewName.js +7 -0
- package/dist/esm/functions/transferSubname.d.ts +12 -3
- package/dist/esm/functions/transferSubname.js +5 -3
- package/dist/esm/functions/wrapName.d.ts +3 -1
- package/dist/esm/functions/wrapName.js +35 -29
- package/dist/esm/generated/BaseRegistrarImplementation.d.ts +222 -201
- package/dist/esm/generated/DNSRegistrar.d.ts +68 -64
- package/dist/esm/generated/DNSSECImpl.d.ts +111 -111
- package/dist/esm/generated/DefaultReverseResolver.d.ts +17 -17
- package/dist/esm/generated/ENSRegistry.d.ts +126 -111
- package/dist/esm/generated/ETHRegistrarController.d.ts +111 -109
- package/dist/esm/generated/Multicall.d.ts +60 -60
- package/dist/esm/generated/NameWrapper.d.ts +493 -354
- package/dist/esm/generated/P256SHA256Algorithm.d.ts +11 -7
- package/dist/esm/generated/PublicResolver.d.ts +259 -235
- package/dist/esm/generated/RSASHA1Algorithm.d.ts +11 -7
- package/dist/esm/generated/RSASHA256Algorithm.d.ts +11 -7
- package/dist/esm/generated/ReverseRegistrar.d.ts +112 -103
- package/dist/esm/generated/Root.d.ts +77 -77
- package/dist/esm/generated/SHA1Digest.d.ts +7 -7
- package/dist/esm/generated/SHA1NSEC3Digest.d.ts +11 -7
- package/dist/esm/generated/SHA256Digest.d.ts +7 -7
- package/dist/esm/generated/StaticMetadataService.d.ts +7 -7
- package/dist/esm/generated/TLDPublicSuffixList.d.ts +7 -7
- package/dist/esm/generated/UniversalResolver.d.ts +31 -31
- package/dist/esm/generated/common.d.ts +1 -0
- package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +3 -15
- package/dist/esm/generated/factories/DNSRegistrar__factory.js +2 -25
- package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +3 -15
- package/dist/esm/generated/factories/DNSSECImpl__factory.js +2 -25
- package/dist/esm/generated/factories/ETHRegistrarController__factory.js +14 -4
- package/dist/esm/generated/factories/NameWrapper__factory.js +210 -79
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +2 -25
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +2 -25
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +2 -25
- package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +3 -15
- package/dist/esm/generated/factories/SHA1Digest__factory.js +2 -25
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +2 -25
- package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +3 -15
- package/dist/esm/generated/factories/SHA256Digest__factory.js +2 -25
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +2 -25
- package/dist/esm/generated/factories/index.d.ts +14 -0
- package/dist/esm/generated/factories/index.js +14 -0
- package/dist/esm/generated/index.d.ts +29 -1
- package/dist/esm/generated/index.js +15 -1
- package/dist/esm/index.d.ts +24 -40
- package/dist/esm/index.js +9 -5
- package/dist/esm/utils/registerHelpers.d.ts +44 -16
- package/dist/esm/utils/registerHelpers.js +40 -14
- package/dist/esm/utils/wrapperExpiry.d.ts +5 -0
- package/dist/esm/utils/wrapperExpiry.js +26 -0
- package/dist/esm/utils/writeTx.d.ts +18 -1
- package/dist/esm/utils/writeTx.js +4 -1
- package/package.json +27 -28
- package/src/ABIs/Multicall.json +452 -0
- package/src/contracts/index.ts +1 -1
- package/src/functions/batch.test.ts +6 -6
- package/src/functions/batchWrappers.test.ts +5 -5
- package/src/functions/burnFuses.test.ts +5 -10
- package/src/functions/burnFuses.ts +1 -1
- package/src/functions/commitName.test.ts +61 -0
- package/src/functions/commitName.ts +36 -0
- package/src/functions/createSubname.test.ts +6 -10
- package/src/functions/createSubname.ts +14 -2
- package/src/functions/deleteSubname.test.ts +9 -28
- package/src/functions/deleteSubname.ts +3 -2
- package/src/functions/getDNSOwner.test.ts +1 -5
- package/src/functions/getExpiry.test.ts +26 -4
- package/src/functions/getExpiry.ts +87 -9
- package/src/functions/getFuses.test.ts +10 -33
- package/src/functions/getFuses.ts +10 -16
- package/src/functions/getHistory.test.ts +7 -79
- package/src/functions/getHistory.ts +2 -127
- package/src/functions/getName.test.ts +5 -5
- package/src/functions/getName.ts +1 -1
- package/src/functions/getNames.test.ts +97 -68
- package/src/functions/getOwner.test.ts +10 -25
- package/src/functions/getProfile.test.ts +32 -24
- package/src/functions/getProfile.ts +1 -1
- package/src/functions/getResolver.test.ts +2 -6
- package/src/functions/getSpecificRecord.test.ts +16 -13
- package/src/functions/getSpecificRecord.ts +10 -4
- package/src/functions/getSubnames.test.ts +21 -17
- package/src/functions/getSubnames.ts +9 -2
- package/src/functions/makeCommitment.test.ts +2 -2
- package/src/functions/registerName.test.ts +59 -0
- package/src/functions/registerName.ts +38 -0
- package/src/functions/renewName.test.ts +44 -0
- package/src/functions/renewName.ts +22 -0
- package/src/functions/setName.test.ts +10 -11
- package/src/functions/setRecord.test.ts +12 -9
- package/src/functions/setRecords.test.ts +6 -5
- package/src/functions/setResolver.test.ts +6 -9
- package/src/functions/transferName.test.ts +13 -27
- package/src/functions/transferSubname.test.ts +11 -30
- package/src/functions/transferSubname.ts +28 -10
- package/src/functions/unwrapName.test.ts +13 -28
- package/src/functions/wrapName.test.ts +109 -34
- package/src/functions/wrapName.ts +45 -29
- package/src/generated/BaseRegistrarImplementation.ts +382 -296
- package/src/generated/DNSRegistrar.ts +103 -89
- package/src/generated/DNSSECImpl.ts +180 -149
- package/src/generated/DefaultReverseResolver.ts +37 -21
- package/src/generated/ENSRegistry.ts +257 -184
- package/src/generated/ETHRegistrarController.ts +252 -191
- package/src/generated/Multicall.ts +73 -57
- package/src/generated/NameWrapper.ts +979 -649
- package/src/generated/P256SHA256Algorithm.ts +21 -16
- package/src/generated/PublicResolver.ts +452 -362
- package/src/generated/RSASHA1Algorithm.ts +21 -16
- package/src/generated/RSASHA256Algorithm.ts +21 -16
- package/src/generated/ReverseRegistrar.ts +193 -141
- package/src/generated/Root.ts +146 -86
- package/src/generated/SHA1Digest.ts +12 -11
- package/src/generated/SHA1NSEC3Digest.ts +21 -16
- package/src/generated/SHA256Digest.ts +12 -11
- package/src/generated/StaticMetadataService.ts +22 -6
- package/src/generated/TLDPublicSuffixList.ts +10 -6
- package/src/generated/UniversalResolver.ts +44 -40
- package/src/generated/common.ts +2 -0
- package/src/generated/factories/DNSRegistrar__factory.ts +4 -56
- package/src/generated/factories/DNSSECImpl__factory.ts +4 -49
- package/src/generated/factories/ETHRegistrarController__factory.ts +14 -4
- package/src/generated/factories/NameWrapper__factory.ts +210 -79
- package/src/generated/factories/P256SHA256Algorithm__factory.ts +4 -40
- package/src/generated/factories/RSASHA1Algorithm__factory.ts +4 -40
- package/src/generated/factories/RSASHA256Algorithm__factory.ts +4 -40
- package/src/generated/factories/SHA1Digest__factory.ts +4 -40
- package/src/generated/factories/SHA1NSEC3Digest__factory.ts +4 -40
- package/src/generated/factories/SHA256Digest__factory.ts +4 -40
- package/src/generated/factories/TLDPublicSuffixList__factory.ts +4 -40
- package/src/generated/factories/index.ts +14 -0
- package/src/generated/index.ts +29 -1
- package/src/index.ts +28 -26
- package/src/utils/registerHelpers.ts +107 -49
- package/src/utils/wrapperExpiry.ts +31 -0
- package/src/utils/writeTx.ts +12 -2
- package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
- package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
- package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
- package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
- package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
- package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
- package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
- package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
- package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
- package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
- package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
- package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
- package/src/ABIs/ETHRegistrarController.json +0 -494
- package/src/ABIs/NameWrapper.json +0 -1183
- package/src/ABIs/PublicResolver.json +0 -875
- package/src/ABIs/ReverseRegistrar.json +0 -323
- package/src/ABIs/StaticMetadataService.json +0 -32
- package/src/ABIs/UniversalResolver.json +0 -187
- package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
- package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
- package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
- package/src/tests/populateTransaction.test.ts +0 -40
- package/src/tests/setup.ts +0 -53
- package/src/tests/signerInjection.test.ts +0 -46
- package/src/tests/withProvider.test.ts +0 -28
|
@@ -2,7 +2,6 @@ import { formatsByCoinType } from '@ensdomains/address-encoder'
|
|
|
2
2
|
import { ethers } from 'ethers'
|
|
3
3
|
import { ENSArgs } from '..'
|
|
4
4
|
import { decodeContenthash } from '../utils/contentHash'
|
|
5
|
-
import { makeOtherIndexes } from '../utils/makeHashIndexes'
|
|
6
5
|
|
|
7
6
|
type DomainEvent = 'NewOwner' | 'NewResolver' | 'Transfer' | 'NewTTL'
|
|
8
7
|
type RegistrationEvent = 'NameRegistered' | 'NameRenewed' | 'NameTransferred'
|
|
@@ -63,7 +62,7 @@ const eventFormat: Record<
|
|
|
63
62
|
NameChanged: (args: any) => ({ name: args.name }),
|
|
64
63
|
AbiChanged: (args: any) => ({ contentType: args.contentType }),
|
|
65
64
|
PubkeyChanged: (args: any) => ({ x: args.x, y: args.y }),
|
|
66
|
-
TextChanged: (args: any) => ({ key: args.key }),
|
|
65
|
+
TextChanged: (args: any) => ({ key: args.key, value: args.value }),
|
|
67
66
|
ContenthashChanged: (args: any) => ({ hash: decodeContenthash(args.hash) }),
|
|
68
67
|
InterfaceChanged: (args: any) => ({
|
|
69
68
|
interfaceId: args.interfaceId,
|
|
@@ -86,37 +85,6 @@ const mapEvents = (eventArray: any[], type: EventTypes) =>
|
|
|
86
85
|
data: eventFormat[type][event.__typename](event),
|
|
87
86
|
}))
|
|
88
87
|
|
|
89
|
-
const mapResultDetailDecode =
|
|
90
|
-
(publicResolver: ethers.Contract) => (result: any) => {
|
|
91
|
-
const hashIndexes = makeOtherIndexes(result.input, '10f13a8c')
|
|
92
|
-
const abiLengths = hashIndexes.map((x: number) => ({
|
|
93
|
-
index: x,
|
|
94
|
-
length:
|
|
95
|
-
x === 0
|
|
96
|
-
? ethers.utils.hexDataLength(result.input)
|
|
97
|
-
: parseInt(ethers.utils.hexDataSlice(result.input, x - 32, x), 16),
|
|
98
|
-
}))
|
|
99
|
-
const ABIs = abiLengths.map(({ index, length }) =>
|
|
100
|
-
ethers.utils.hexDataSlice(result.input, index, index + length),
|
|
101
|
-
)
|
|
102
|
-
return ABIs.map((abi: string) => {
|
|
103
|
-
try {
|
|
104
|
-
return publicResolver.interface.decodeFunctionData(
|
|
105
|
-
'setText(bytes32,string,string)',
|
|
106
|
-
abi,
|
|
107
|
-
)
|
|
108
|
-
} catch {
|
|
109
|
-
return
|
|
110
|
-
}
|
|
111
|
-
})
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
const expandDecode = (prev: any, curr: any) => {
|
|
115
|
-
if (!curr) return [...prev, { value: null }]
|
|
116
|
-
if (!curr.length) return [...prev, curr]
|
|
117
|
-
return [...prev, ...curr]
|
|
118
|
-
}
|
|
119
|
-
|
|
120
88
|
export async function getHistory(
|
|
121
89
|
{ gqlInstance }: ENSArgs<'gqlInstance'>,
|
|
122
90
|
name: string,
|
|
@@ -200,6 +168,7 @@ export async function getHistory(
|
|
|
200
168
|
}
|
|
201
169
|
...on TextChanged {
|
|
202
170
|
key
|
|
171
|
+
value
|
|
203
172
|
}
|
|
204
173
|
...on ContenthashChanged {
|
|
205
174
|
hash
|
|
@@ -251,97 +220,3 @@ export async function getHistory(
|
|
|
251
220
|
resolver: resolverHistory,
|
|
252
221
|
}
|
|
253
222
|
}
|
|
254
|
-
|
|
255
|
-
export async function getHistoryWithDetail(
|
|
256
|
-
{
|
|
257
|
-
contracts,
|
|
258
|
-
gqlInstance,
|
|
259
|
-
provider,
|
|
260
|
-
}: ENSArgs<'contracts' | 'gqlInstance' | 'provider'>,
|
|
261
|
-
name: string,
|
|
262
|
-
) {
|
|
263
|
-
const historyRes = await getHistory({ gqlInstance }, name)
|
|
264
|
-
|
|
265
|
-
if (!historyRes) return
|
|
266
|
-
|
|
267
|
-
const { domain, registration, resolver: resolverHistory } = historyRes
|
|
268
|
-
|
|
269
|
-
const textEvents = resolverHistory.filter(
|
|
270
|
-
(event) => event.type === 'TextChanged',
|
|
271
|
-
)
|
|
272
|
-
|
|
273
|
-
const transactions = textEvents.reduce((prev, curr) => {
|
|
274
|
-
if (prev.includes(curr.transactionHash)) {
|
|
275
|
-
return prev
|
|
276
|
-
}
|
|
277
|
-
return [...prev, curr.transactionHash]
|
|
278
|
-
}, [] as string[])
|
|
279
|
-
|
|
280
|
-
const publicResolver = await contracts?.getPublicResolver()!
|
|
281
|
-
|
|
282
|
-
const fetchResult = (
|
|
283
|
-
await ethers.utils.fetchJson(
|
|
284
|
-
provider!.connection,
|
|
285
|
-
JSON.stringify(
|
|
286
|
-
transactions.map((tx, i) => ({
|
|
287
|
-
jsonrpc: '2.0',
|
|
288
|
-
id: i,
|
|
289
|
-
method: 'eth_getTransactionByHash',
|
|
290
|
-
params: [tx],
|
|
291
|
-
})),
|
|
292
|
-
),
|
|
293
|
-
)
|
|
294
|
-
)
|
|
295
|
-
.map((result: any) => result.result)
|
|
296
|
-
.map(mapResultDetailDecode(publicResolver))
|
|
297
|
-
.reduce(expandDecode, [])
|
|
298
|
-
|
|
299
|
-
const detailedResolverHistory = resolverHistory.map((event) => {
|
|
300
|
-
if (event.type !== 'TextChanged') return event
|
|
301
|
-
const { id } = event
|
|
302
|
-
const matchedTextInx = textEvents.findIndex((x) => x.id === id)
|
|
303
|
-
return {
|
|
304
|
-
...event,
|
|
305
|
-
data: {
|
|
306
|
-
...event.data,
|
|
307
|
-
value: fetchResult[matchedTextInx] && fetchResult[matchedTextInx].value,
|
|
308
|
-
},
|
|
309
|
-
}
|
|
310
|
-
})
|
|
311
|
-
|
|
312
|
-
return {
|
|
313
|
-
domain,
|
|
314
|
-
registration,
|
|
315
|
-
resolver: detailedResolverHistory,
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
export async function getHistoryDetailForTransactionHash(
|
|
320
|
-
{ contracts, provider }: ENSArgs<'contracts' | 'provider'>,
|
|
321
|
-
hash: string,
|
|
322
|
-
indexInTransaction?: number,
|
|
323
|
-
) {
|
|
324
|
-
const publicResolver = await contracts?.getPublicResolver()!
|
|
325
|
-
const transaction = await provider!.getTransaction(hash)
|
|
326
|
-
if (!transaction) return
|
|
327
|
-
const result = mapResultDetailDecode(publicResolver)({
|
|
328
|
-
input: transaction.data,
|
|
329
|
-
})
|
|
330
|
-
if (!result || !result.length) return
|
|
331
|
-
if (typeof indexInTransaction === 'number') {
|
|
332
|
-
if (indexInTransaction + 1 > result.length) return
|
|
333
|
-
const resultItem = result[indexInTransaction]
|
|
334
|
-
if (
|
|
335
|
-
!resultItem ||
|
|
336
|
-
!resultItem.key ||
|
|
337
|
-
(!resultItem.value && resultItem.value !== '')
|
|
338
|
-
)
|
|
339
|
-
return
|
|
340
|
-
return { key: resultItem.key, value: resultItem.value }
|
|
341
|
-
}
|
|
342
|
-
return result.map((item: any) => {
|
|
343
|
-
if (!item.key) return
|
|
344
|
-
if (!item.value && item.value !== '') return { key: item.key, value: null }
|
|
345
|
-
return { key: item.key, value: item.value }
|
|
346
|
-
})
|
|
347
|
-
}
|
|
@@ -19,11 +19,11 @@ afterAll(async () => {
|
|
|
19
19
|
describe('getName', () => {
|
|
20
20
|
it('should get a primary name from an address', async () => {
|
|
21
21
|
const result = await ENSInstance.getName(
|
|
22
|
-
'
|
|
22
|
+
'0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
23
23
|
)
|
|
24
24
|
expect(result).toBeTruthy()
|
|
25
25
|
if (result) {
|
|
26
|
-
expect(result.name).toBe('
|
|
26
|
+
expect(result.name).toBe('with-profile.eth')
|
|
27
27
|
expect(result.match).toBeTruthy()
|
|
28
28
|
}
|
|
29
29
|
})
|
|
@@ -31,16 +31,16 @@ describe('getName', () => {
|
|
|
31
31
|
const result = await ENSInstance.getName(
|
|
32
32
|
'0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0',
|
|
33
33
|
)
|
|
34
|
-
expect(result).toBeUndefined()
|
|
34
|
+
expect(result?.name).toBeUndefined()
|
|
35
35
|
})
|
|
36
36
|
it('should return with a false match for a name with no forward resolution', async () => {
|
|
37
|
-
const tx = await ENSInstance.setName('
|
|
37
|
+
const tx = await ENSInstance.setName('with-profile.eth')
|
|
38
38
|
await tx?.wait()
|
|
39
39
|
|
|
40
40
|
const result = await ENSInstance.getName(accounts[0])
|
|
41
41
|
expect(result).toBeTruthy()
|
|
42
42
|
if (result) {
|
|
43
|
-
expect(result.name).toBe('
|
|
43
|
+
expect(result.name).toBe('with-profile.eth')
|
|
44
44
|
expect(result.match).toBeFalsy()
|
|
45
45
|
}
|
|
46
46
|
})
|
package/src/functions/getName.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ENS } from '..'
|
|
2
|
-
import { OwnedName, Registration } from '../functions/getNames'
|
|
3
2
|
import setup from '../tests/setup'
|
|
3
|
+
import { Name } from './getNames'
|
|
4
4
|
|
|
5
5
|
let ENSInstance: ENS
|
|
6
6
|
|
|
@@ -14,12 +14,43 @@ const testProperties = (obj: object, ...properties: string[]) =>
|
|
|
14
14
|
const testNotProperties = (obj: object, ...properties: string[]) =>
|
|
15
15
|
properties.map((property) => expect(obj).not.toHaveProperty(property))
|
|
16
16
|
|
|
17
|
+
const letterItems = [
|
|
18
|
+
'w',
|
|
19
|
+
'9',
|
|
20
|
+
'8',
|
|
21
|
+
'7',
|
|
22
|
+
'6',
|
|
23
|
+
'5',
|
|
24
|
+
'4',
|
|
25
|
+
...Array(5).fill('3'),
|
|
26
|
+
...Array(11).fill('2'),
|
|
27
|
+
...Array(11).fill('1'),
|
|
28
|
+
'0',
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
const domainLetterItems = [
|
|
32
|
+
'[',
|
|
33
|
+
'w',
|
|
34
|
+
't',
|
|
35
|
+
't',
|
|
36
|
+
'9',
|
|
37
|
+
'8',
|
|
38
|
+
'7',
|
|
39
|
+
'6',
|
|
40
|
+
'5',
|
|
41
|
+
'4',
|
|
42
|
+
...Array(5).fill('3'),
|
|
43
|
+
...Array(11).fill('2'),
|
|
44
|
+
...Array(11).fill('1'),
|
|
45
|
+
'0',
|
|
46
|
+
]
|
|
47
|
+
|
|
17
48
|
describe('getNames', () => {
|
|
18
49
|
let totalRegistrations: number = 0
|
|
19
50
|
let totalOwnedNames: number = 0
|
|
20
51
|
it('should get the registrations for an address', async () => {
|
|
21
52
|
const result = await ENSInstance.getNames({
|
|
22
|
-
address: '
|
|
53
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
23
54
|
type: 'registrant',
|
|
24
55
|
})
|
|
25
56
|
totalRegistrations = result.length
|
|
@@ -39,7 +70,7 @@ describe('getNames', () => {
|
|
|
39
70
|
})
|
|
40
71
|
it('should get the owned names for an address', async () => {
|
|
41
72
|
const result = await ENSInstance.getNames({
|
|
42
|
-
address: '
|
|
73
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
43
74
|
type: 'owner',
|
|
44
75
|
})
|
|
45
76
|
totalOwnedNames = result.length
|
|
@@ -58,39 +89,51 @@ describe('getNames', () => {
|
|
|
58
89
|
})
|
|
59
90
|
it('should get the registrations for an address with pagination', async () => {
|
|
60
91
|
const pageOne = await ENSInstance.getNames({
|
|
61
|
-
address: '
|
|
92
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
62
93
|
type: 'registrant',
|
|
63
94
|
page: 0,
|
|
64
95
|
})
|
|
65
96
|
expect(pageOne).toHaveLength(10)
|
|
66
97
|
const pageTwo = await ENSInstance.getNames({
|
|
67
|
-
address: '
|
|
98
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
68
99
|
type: 'registrant',
|
|
69
100
|
page: 1,
|
|
70
101
|
})
|
|
71
|
-
expect(pageTwo).toHaveLength(
|
|
102
|
+
expect(pageTwo).toHaveLength(10)
|
|
103
|
+
const pageThree = await ENSInstance.getNames({
|
|
104
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
105
|
+
type: 'registrant',
|
|
106
|
+
page: 2,
|
|
107
|
+
})
|
|
108
|
+
expect(pageThree).toHaveLength(10)
|
|
109
|
+
const pageFour = await ENSInstance.getNames({
|
|
110
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
111
|
+
type: 'registrant',
|
|
112
|
+
page: 3,
|
|
113
|
+
})
|
|
114
|
+
expect(pageFour).toHaveLength(totalRegistrations % 10)
|
|
72
115
|
})
|
|
73
116
|
it('should get the owned names for an address with pagination', async () => {
|
|
74
117
|
const pageOne = await ENSInstance.getNames({
|
|
75
|
-
address: '
|
|
118
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
76
119
|
type: 'owner',
|
|
77
120
|
page: 0,
|
|
78
121
|
})
|
|
79
122
|
expect(pageOne).toHaveLength(10)
|
|
80
123
|
const pageTwo = await ENSInstance.getNames({
|
|
81
|
-
address: '
|
|
124
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
82
125
|
type: 'owner',
|
|
83
126
|
page: 1,
|
|
84
127
|
})
|
|
85
128
|
expect(pageTwo).toHaveLength(10)
|
|
86
129
|
const pageThree = await ENSInstance.getNames({
|
|
87
|
-
address: '
|
|
130
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
88
131
|
type: 'owner',
|
|
89
132
|
page: 2,
|
|
90
133
|
})
|
|
91
134
|
expect(pageThree).toHaveLength(10)
|
|
92
135
|
const pageFour = await ENSInstance.getNames({
|
|
93
|
-
address: '
|
|
136
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
94
137
|
type: 'owner',
|
|
95
138
|
page: 3,
|
|
96
139
|
})
|
|
@@ -100,147 +143,133 @@ describe('getNames', () => {
|
|
|
100
143
|
describe('registrations', () => {
|
|
101
144
|
it('descending registrationDate', async () => {
|
|
102
145
|
const registrationDateOrderedDesc = (await ENSInstance.getNames({
|
|
103
|
-
address: '
|
|
146
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
104
147
|
type: 'registrant',
|
|
105
148
|
orderBy: 'registrationDate',
|
|
106
149
|
orderDirection: 'desc',
|
|
107
|
-
})) as
|
|
150
|
+
})) as Name[]
|
|
108
151
|
registrationDateOrderedDesc.reduce((prev, curr) => {
|
|
109
|
-
expect(prev.registrationDate
|
|
110
|
-
curr.registrationDate
|
|
152
|
+
expect(prev.registrationDate!.getTime()).toBeGreaterThanOrEqual(
|
|
153
|
+
curr.registrationDate!.getTime(),
|
|
111
154
|
)
|
|
112
155
|
return curr
|
|
113
156
|
})
|
|
114
157
|
})
|
|
115
158
|
it('ascending registrationDate', async () => {
|
|
116
159
|
const registrationDateOrderedAsc = (await ENSInstance.getNames({
|
|
117
|
-
address: '
|
|
160
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
118
161
|
type: 'registrant',
|
|
119
162
|
orderBy: 'registrationDate',
|
|
120
163
|
orderDirection: 'asc',
|
|
121
|
-
})) as
|
|
164
|
+
})) as Name[]
|
|
122
165
|
registrationDateOrderedAsc.reduce((prev, curr) => {
|
|
123
|
-
expect(prev.registrationDate
|
|
124
|
-
curr.registrationDate
|
|
166
|
+
expect(prev.registrationDate!.getTime()).toBeLessThanOrEqual(
|
|
167
|
+
curr.registrationDate!.getTime(),
|
|
125
168
|
)
|
|
126
169
|
return curr
|
|
127
170
|
})
|
|
128
171
|
})
|
|
129
172
|
it('descending expiryDate', async () => {
|
|
130
173
|
const expiryDateOrderedDesc = (await ENSInstance.getNames({
|
|
131
|
-
address: '
|
|
174
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
132
175
|
type: 'registrant',
|
|
133
176
|
orderBy: 'expiryDate',
|
|
134
177
|
orderDirection: 'desc',
|
|
135
|
-
})) as
|
|
178
|
+
})) as Name[]
|
|
136
179
|
expiryDateOrderedDesc.reduce((prev, curr) => {
|
|
137
|
-
expect(prev.expiryDate
|
|
138
|
-
curr.expiryDate
|
|
180
|
+
expect(prev.expiryDate!.getTime()).toBeGreaterThanOrEqual(
|
|
181
|
+
curr.expiryDate!.getTime(),
|
|
139
182
|
)
|
|
140
183
|
return curr
|
|
141
184
|
})
|
|
142
185
|
})
|
|
143
186
|
it('ascending expiryDate', async () => {
|
|
144
187
|
const expiryDateOrderedAsc = (await ENSInstance.getNames({
|
|
145
|
-
address: '
|
|
188
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
146
189
|
type: 'registrant',
|
|
147
190
|
orderBy: 'expiryDate',
|
|
148
191
|
orderDirection: 'asc',
|
|
149
|
-
})) as
|
|
192
|
+
})) as Name[]
|
|
150
193
|
expiryDateOrderedAsc.reduce((prev, curr) => {
|
|
151
|
-
expect(prev.expiryDate
|
|
152
|
-
curr.expiryDate
|
|
194
|
+
expect(prev.expiryDate!.getTime()).toBeLessThanOrEqual(
|
|
195
|
+
curr.expiryDate!.getTime(),
|
|
153
196
|
)
|
|
154
197
|
return curr
|
|
155
198
|
})
|
|
156
199
|
})
|
|
157
200
|
it('descending labelName', async () => {
|
|
158
201
|
const labelNameOrderedDesc = (await ENSInstance.getNames({
|
|
159
|
-
address: '
|
|
202
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
160
203
|
type: 'registrant',
|
|
161
204
|
orderBy: 'labelName',
|
|
162
205
|
orderDirection: 'desc',
|
|
163
|
-
})) as
|
|
164
|
-
labelNameOrderedDesc.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
})
|
|
206
|
+
})) as Name[]
|
|
207
|
+
expect(labelNameOrderedDesc.map((n) => n.labelName![0])).toStrictEqual(
|
|
208
|
+
letterItems,
|
|
209
|
+
)
|
|
168
210
|
})
|
|
169
211
|
it('ascending labelName', async () => {
|
|
170
212
|
const labelNameOrderedAsc = (await ENSInstance.getNames({
|
|
171
|
-
address: '
|
|
213
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
172
214
|
type: 'registrant',
|
|
173
215
|
orderBy: 'labelName',
|
|
174
216
|
orderDirection: 'asc',
|
|
175
|
-
})) as
|
|
176
|
-
labelNameOrderedAsc.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
})
|
|
217
|
+
})) as Name[]
|
|
218
|
+
expect(labelNameOrderedAsc.map((n) => n.labelName![0])).toStrictEqual(
|
|
219
|
+
letterItems.reverse(),
|
|
220
|
+
)
|
|
180
221
|
})
|
|
181
222
|
})
|
|
182
223
|
describe('owned names', () => {
|
|
183
224
|
it('descending createdAt', async () => {
|
|
184
225
|
const createdAtOrderedDesc = (await ENSInstance.getNames({
|
|
185
|
-
address: '
|
|
226
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
186
227
|
type: 'owner',
|
|
187
228
|
orderBy: 'createdAt',
|
|
188
229
|
orderDirection: 'desc',
|
|
189
|
-
})) as
|
|
230
|
+
})) as Name[]
|
|
190
231
|
createdAtOrderedDesc.reduce((prev, curr) => {
|
|
191
|
-
expect(prev.createdAt
|
|
192
|
-
curr.createdAt
|
|
232
|
+
expect(prev.createdAt!.getTime()).toBeGreaterThanOrEqual(
|
|
233
|
+
curr.createdAt!.getTime(),
|
|
193
234
|
)
|
|
194
235
|
return curr
|
|
195
236
|
})
|
|
196
237
|
})
|
|
197
238
|
it('ascending createdAt', async () => {
|
|
198
239
|
const createdAtOrderedAsc = (await ENSInstance.getNames({
|
|
199
|
-
address: '
|
|
240
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
200
241
|
type: 'owner',
|
|
201
242
|
orderBy: 'createdAt',
|
|
202
243
|
orderDirection: 'asc',
|
|
203
|
-
})) as
|
|
244
|
+
})) as Name[]
|
|
204
245
|
createdAtOrderedAsc.reduce((prev, curr) => {
|
|
205
|
-
expect(prev.createdAt
|
|
206
|
-
curr.createdAt
|
|
246
|
+
expect(prev.createdAt!.getTime()).toBeLessThanOrEqual(
|
|
247
|
+
curr.createdAt!.getTime(),
|
|
207
248
|
)
|
|
208
249
|
return curr
|
|
209
250
|
})
|
|
210
251
|
})
|
|
211
252
|
it('descending labelName', async () => {
|
|
212
253
|
const labelNameOrderedDesc = (await ENSInstance.getNames({
|
|
213
|
-
address: '
|
|
254
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
214
255
|
type: 'owner',
|
|
215
256
|
orderBy: 'labelName',
|
|
216
257
|
orderDirection: 'desc',
|
|
217
|
-
})) as
|
|
218
|
-
labelNameOrderedDesc.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
(!prev.labelName && curr.labelName)
|
|
222
|
-
)
|
|
223
|
-
return curr
|
|
224
|
-
expect((prev.labelName || '') > (curr.labelName || '')).toBeTruthy()
|
|
225
|
-
return curr
|
|
226
|
-
})
|
|
258
|
+
})) as Name[]
|
|
259
|
+
expect(labelNameOrderedDesc.map((n) => n.name[0])).toStrictEqual(
|
|
260
|
+
domainLetterItems,
|
|
261
|
+
)
|
|
227
262
|
})
|
|
228
263
|
it('ascending labelName', async () => {
|
|
229
264
|
const labelNameOrderedAsc = (await ENSInstance.getNames({
|
|
230
|
-
address: '
|
|
265
|
+
address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
231
266
|
type: 'owner',
|
|
232
267
|
orderBy: 'labelName',
|
|
233
268
|
orderDirection: 'asc',
|
|
234
|
-
})) as
|
|
235
|
-
labelNameOrderedAsc.
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
(prev.labelName && !curr.labelName)
|
|
239
|
-
)
|
|
240
|
-
return curr
|
|
241
|
-
expect((prev.labelName || '') < (curr.labelName || '')).toBeTruthy()
|
|
242
|
-
return curr
|
|
243
|
-
})
|
|
269
|
+
})) as Name[]
|
|
270
|
+
expect(labelNameOrderedAsc.map((n) => n.name[0])).toStrictEqual(
|
|
271
|
+
domainLetterItems.reverse(),
|
|
272
|
+
)
|
|
244
273
|
})
|
|
245
274
|
})
|
|
246
275
|
})
|
|
@@ -10,10 +10,6 @@ let accounts: string[]
|
|
|
10
10
|
beforeAll(async () => {
|
|
11
11
|
;({ ENSInstance, revert, provider } = await setup())
|
|
12
12
|
accounts = await provider.listAccounts()
|
|
13
|
-
const tx = await ENSInstance.wrapName('parthtejpal.eth', {
|
|
14
|
-
wrappedOwner: accounts[0],
|
|
15
|
-
})
|
|
16
|
-
await tx.wait()
|
|
17
13
|
})
|
|
18
14
|
|
|
19
15
|
afterAll(async () => {
|
|
@@ -26,19 +22,19 @@ describe('getOwner', () => {
|
|
|
26
22
|
expect(result).toBeUndefined()
|
|
27
23
|
})
|
|
28
24
|
it('should return the owner, registrant, and ownership level for a registered name', async () => {
|
|
29
|
-
const result = await ENSInstance.getOwner('
|
|
25
|
+
const result = await ENSInstance.getOwner('with-profile.eth')
|
|
30
26
|
expect(result).toMatchObject({
|
|
31
|
-
owner: '
|
|
32
|
-
registrant: '
|
|
27
|
+
owner: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
28
|
+
registrant: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
33
29
|
ownershipLevel: 'registrar',
|
|
34
30
|
})
|
|
35
31
|
})
|
|
36
32
|
it('should return nameWrapper as the ownership level for a wrapped name', async () => {
|
|
37
|
-
const result = await ENSInstance.getOwner('
|
|
33
|
+
const result = await ENSInstance.getOwner('wrapped.eth')
|
|
38
34
|
expect(result?.ownershipLevel).toBe('nameWrapper')
|
|
39
35
|
})
|
|
40
36
|
it('should return the owner at a specific level if specified', async () => {
|
|
41
|
-
const result = await ENSInstance.getOwner('
|
|
37
|
+
const result = await ENSInstance.getOwner('wrapped.eth', 'registrar')
|
|
42
38
|
const nameWrapperAddress = (await ENSInstance.contracts!.getNameWrapper())
|
|
43
39
|
.address
|
|
44
40
|
expect(result?.ownershipLevel).toBe('registrar')
|
|
@@ -54,20 +50,9 @@ describe('getOwner', () => {
|
|
|
54
50
|
baseRegistrarAddress.toLowerCase(),
|
|
55
51
|
)
|
|
56
52
|
})
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
// name: 'test.fleek.eth',
|
|
63
|
-
// contract: 'registry',
|
|
64
|
-
// owner: accounts[0],
|
|
65
|
-
// options: { addressOrIndex: accounts[1] },
|
|
66
|
-
// })
|
|
67
|
-
|
|
68
|
-
// await tx.wait()
|
|
69
|
-
|
|
70
|
-
// const result = await ENSInstance.getOwner('test.fleek.eth')
|
|
71
|
-
// expect(result?.ownershipLevel).toBe('registry')
|
|
72
|
-
// })
|
|
53
|
+
it('should return registry as the ownership level for an unwrapped subname', async () => {
|
|
54
|
+
const result = await ENSInstance.getOwner('test.with-subnames.eth')
|
|
55
|
+
expect(result?.ownershipLevel).toBe('registry')
|
|
56
|
+
expect(result?.owner).toBe('0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC')
|
|
57
|
+
})
|
|
73
58
|
})
|