@ensdomains/ensjs 3.0.0-alpha.39 → 3.0.0-alpha.40
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/GqlManager.js +8 -5
- package/dist/cjs/contracts/factories.js +16 -0
- package/dist/cjs/contracts/getContractAddress.js +1 -1
- package/dist/cjs/contracts/index.js +24 -52
- package/dist/cjs/functions/createSubname.js +2 -2
- package/dist/cjs/functions/deleteSubname.js +2 -2
- package/dist/cjs/functions/getDNSOwner.js +2 -2
- package/dist/cjs/functions/getExpiry.js +2 -2
- package/dist/cjs/functions/getHistory.js +4 -3
- package/dist/cjs/functions/getNames.js +2 -1
- package/dist/cjs/functions/getOwner.js +10 -9
- package/dist/cjs/functions/getPrice.js +7 -6
- package/dist/cjs/functions/getProfile.js +15 -16
- package/dist/cjs/functions/getResolver.js +2 -2
- package/dist/cjs/functions/getSpecificRecord.js +3 -3
- package/dist/cjs/functions/getSubnames.js +2 -1
- package/dist/cjs/functions/getWrapperData.js +2 -2
- package/dist/cjs/functions/transferController.js +3 -3
- package/dist/cjs/functions/transferName.js +2 -2
- package/dist/cjs/functions/transferSubname.js +2 -2
- package/dist/cjs/functions/types.js +16 -0
- package/dist/cjs/functions/unwrapName.js +2 -2
- package/dist/cjs/functions/wrapName.js +4 -3
- package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +4 -3
- package/dist/cjs/generated/factories/BulkRenewal__factory.js +4 -3
- package/dist/cjs/generated/factories/DNSRegistrar__factory.js +4 -3
- package/dist/cjs/generated/factories/DNSSECImpl__factory.js +4 -3
- package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +4 -3
- package/dist/cjs/generated/factories/ENSRegistry__factory.js +4 -3
- package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +4 -3
- package/dist/cjs/generated/factories/Multicall__factory.js +4 -3
- package/dist/cjs/generated/factories/NameWrapper__factory.js +4 -3
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +4 -3
- package/dist/cjs/generated/factories/PublicResolver__factory.js +4 -3
- package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +4 -3
- package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +4 -3
- package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +4 -3
- package/dist/cjs/generated/factories/Root__factory.js +4 -3
- package/dist/cjs/generated/factories/SHA1Digest__factory.js +4 -3
- package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +4 -3
- package/dist/cjs/generated/factories/SHA256Digest__factory.js +4 -3
- package/dist/cjs/generated/factories/StaticMetadataService__factory.js +4 -3
- package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +4 -3
- package/dist/cjs/generated/factories/UniversalResolver__factory.js +4 -3
- package/dist/cjs/index.js +52 -75
- package/dist/cjs/static.js +85 -0
- package/dist/cjs/utils/ccip.js +22 -21
- package/dist/cjs/utils/contentHash.js +2 -2
- package/dist/cjs/utils/fuses.js +2 -2
- package/dist/cjs/utils/generateFuseInput.js +2 -2
- package/dist/cjs/utils/labels.js +2 -2
- package/dist/cjs/utils/normalise.js +6 -4
- package/dist/cjs/utils/registerHelpers.js +4 -3
- package/dist/cjs/utils/validation.js +2 -2
- package/dist/cjs/utils/wrapper.js +8 -8
- package/dist/esm/GqlManager.mjs +8 -5
- package/dist/esm/contracts/factories.mjs +0 -0
- package/dist/esm/contracts/getContractAddress.mjs +1 -1
- package/dist/esm/contracts/index.mjs +24 -46
- package/dist/esm/functions/createSubname.mjs +2 -2
- package/dist/esm/functions/deleteSubname.mjs +2 -2
- package/dist/esm/functions/getDNSOwner.mjs +1 -1
- package/dist/esm/functions/getExpiry.mjs +1 -1
- package/dist/esm/functions/getHistory.mjs +4 -3
- package/dist/esm/functions/getNames.mjs +2 -1
- package/dist/esm/functions/getOwner.mjs +9 -8
- package/dist/esm/functions/getPrice.mjs +6 -5
- package/dist/esm/functions/getProfile.mjs +14 -15
- package/dist/esm/functions/getResolver.mjs +2 -2
- package/dist/esm/functions/getSpecificRecord.mjs +3 -3
- package/dist/esm/functions/getSubnames.mjs +2 -1
- package/dist/esm/functions/getWrapperData.mjs +1 -1
- package/dist/esm/functions/transferController.mjs +3 -3
- package/dist/esm/functions/transferName.mjs +2 -2
- package/dist/esm/functions/transferSubname.mjs +2 -2
- package/dist/esm/functions/types.mjs +0 -0
- package/dist/esm/functions/unwrapName.mjs +2 -2
- package/dist/esm/functions/wrapName.mjs +4 -3
- package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +3 -2
- package/dist/esm/generated/factories/BulkRenewal__factory.mjs +3 -2
- package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +3 -2
- package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +3 -2
- package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +3 -2
- package/dist/esm/generated/factories/ENSRegistry__factory.mjs +3 -2
- package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +3 -2
- package/dist/esm/generated/factories/Multicall__factory.mjs +3 -2
- package/dist/esm/generated/factories/NameWrapper__factory.mjs +3 -2
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +3 -2
- package/dist/esm/generated/factories/PublicResolver__factory.mjs +3 -2
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +3 -2
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +3 -2
- package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +3 -2
- package/dist/esm/generated/factories/Root__factory.mjs +3 -2
- package/dist/esm/generated/factories/SHA1Digest__factory.mjs +3 -2
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +3 -2
- package/dist/esm/generated/factories/SHA256Digest__factory.mjs +3 -2
- package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +3 -2
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +3 -2
- package/dist/esm/generated/factories/UniversalResolver__factory.mjs +3 -2
- package/dist/esm/index.mjs +47 -71
- package/dist/esm/static.mjs +62 -0
- package/dist/esm/utils/ccip.mjs +4 -4
- package/dist/esm/utils/contentHash.mjs +2 -2
- package/dist/esm/utils/fuses.mjs +1 -1
- package/dist/esm/utils/generateFuseInput.mjs +2 -2
- package/dist/esm/utils/labels.mjs +1 -1
- package/dist/esm/utils/normalise.mjs +3 -1
- package/dist/esm/utils/registerHelpers.mjs +4 -3
- package/dist/esm/utils/validation.mjs +1 -1
- package/dist/esm/utils/wrapper.mjs +2 -2
- package/dist/types/GqlManager.d.ts +5 -3
- package/dist/types/contracts/baseRegistrar.d.ts +2 -2
- package/dist/types/contracts/bulkRenewal.d.ts +2 -2
- package/dist/types/contracts/dnsRegistrar.d.ts +2 -2
- package/dist/types/contracts/ethRegistrarController.d.ts +2 -2
- package/dist/types/contracts/factories.d.ts +45 -0
- package/dist/types/contracts/index.d.ts +32 -12
- package/dist/types/contracts/multicall.d.ts +2 -2
- package/dist/types/contracts/nameWrapper.d.ts +2 -2
- package/dist/types/contracts/publicResolver.d.ts +2 -2
- package/dist/types/contracts/registry.d.ts +2 -2
- package/dist/types/contracts/reverseRegistrar.d.ts +2 -2
- package/dist/types/contracts/types.d.ts +1 -1
- package/dist/types/contracts/universalResolver.d.ts +2 -2
- package/dist/types/functions/batchWrappers.d.ts +4 -4
- package/dist/types/functions/burnFuses.d.ts +1 -1
- package/dist/types/functions/commitName.d.ts +7 -7
- package/dist/types/functions/createSubname.d.ts +1 -2
- package/dist/types/functions/deleteSubname.d.ts +1 -2
- package/dist/types/functions/getPrice.d.ts +1 -1
- package/dist/types/functions/getRecords.d.ts +2 -2
- package/dist/types/functions/getWrapperData.d.ts +1 -1
- package/dist/types/functions/importDNSSECName.d.ts +1 -1
- package/dist/types/functions/registerName.d.ts +2 -2
- package/dist/types/functions/renewNames.d.ts +3 -3
- package/dist/types/functions/setName.d.ts +1 -1
- package/dist/types/functions/setRecords.d.ts +1 -1
- package/dist/types/functions/setResolver.d.ts +1 -1
- package/dist/types/functions/transferController.d.ts +1 -2
- package/dist/types/functions/transferName.d.ts +1 -2
- package/dist/types/functions/transferSubname.d.ts +1 -2
- package/dist/types/functions/types.d.ts +77 -0
- package/dist/types/functions/unwrapName.d.ts +1 -1
- package/dist/types/functions/wrapName.d.ts +1 -2
- package/dist/types/generated/BaseRegistrarImplementation.d.ts +128 -124
- package/dist/types/generated/BulkRenewal.d.ts +22 -18
- package/dist/types/generated/DNSRegistrar.d.ts +46 -42
- package/dist/types/generated/DNSSECImpl.d.ts +70 -66
- package/dist/types/generated/DefaultReverseResolver.d.ts +19 -15
- package/dist/types/generated/ENSRegistry.d.ts +64 -60
- package/dist/types/generated/ETHRegistrarController.d.ts +82 -78
- package/dist/types/generated/Multicall.d.ts +58 -54
- package/dist/types/generated/NameWrapper.d.ts +169 -165
- package/dist/types/generated/P256SHA256Algorithm.d.ts +13 -9
- package/dist/types/generated/PublicResolver.d.ts +153 -149
- package/dist/types/generated/RSASHA1Algorithm.d.ts +13 -9
- package/dist/types/generated/RSASHA256Algorithm.d.ts +13 -9
- package/dist/types/generated/ReverseRegistrar.d.ts +64 -60
- package/dist/types/generated/Root.d.ts +46 -42
- package/dist/types/generated/SHA1Digest.d.ts +13 -9
- package/dist/types/generated/SHA1NSEC3Digest.d.ts +13 -9
- package/dist/types/generated/SHA256Digest.d.ts +13 -9
- package/dist/types/generated/StaticMetadataService.d.ts +13 -9
- package/dist/types/generated/TLDPublicSuffixList.d.ts +13 -9
- package/dist/types/generated/UniversalResolver.d.ts +82 -78
- package/dist/types/generated/common.d.ts +3 -3
- package/dist/types/generated/factories/BaseRegistrarImplementation__factory.d.ts +3 -3
- package/dist/types/generated/factories/BulkRenewal__factory.d.ts +3 -3
- package/dist/types/generated/factories/DNSRegistrar__factory.d.ts +3 -3
- package/dist/types/generated/factories/DNSSECImpl__factory.d.ts +3 -3
- package/dist/types/generated/factories/DefaultReverseResolver__factory.d.ts +3 -3
- package/dist/types/generated/factories/ENSRegistry__factory.d.ts +3 -3
- package/dist/types/generated/factories/ETHRegistrarController__factory.d.ts +3 -3
- package/dist/types/generated/factories/Multicall__factory.d.ts +3 -3
- package/dist/types/generated/factories/NameWrapper__factory.d.ts +3 -3
- package/dist/types/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -3
- package/dist/types/generated/factories/PublicResolver__factory.d.ts +3 -3
- package/dist/types/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -3
- package/dist/types/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -3
- package/dist/types/generated/factories/ReverseRegistrar__factory.d.ts +3 -3
- package/dist/types/generated/factories/Root__factory.d.ts +3 -3
- package/dist/types/generated/factories/SHA1Digest__factory.d.ts +3 -3
- package/dist/types/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -3
- package/dist/types/generated/factories/SHA256Digest__factory.d.ts +3 -3
- package/dist/types/generated/factories/StaticMetadataService__factory.d.ts +3 -3
- package/dist/types/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -3
- package/dist/types/generated/factories/UniversalResolver__factory.d.ts +3 -3
- package/dist/types/index.d.ts +45 -59
- package/dist/types/static.d.ts +26 -0
- package/dist/types/utils/fuses.d.ts +1 -1
- package/dist/types/utils/registerHelpers.d.ts +1 -1
- package/dist/types/utils/singleCall.d.ts +2 -2
- package/dist/types/utils/wrapper.d.ts +1 -1
- package/dist/types/utils/writeTx.d.ts +8 -8
- package/package.json +33 -6
- package/src/GqlManager.ts +15 -7
- package/src/contracts/baseRegistrar.ts +2 -2
- package/src/contracts/bulkRenewal.ts +2 -2
- package/src/contracts/dnsRegistrar.ts +2 -2
- package/src/contracts/ethRegistrarController.ts +2 -2
- package/src/contracts/factories.ts +48 -0
- package/src/contracts/getContractAddress.ts +1 -1
- package/src/contracts/index.ts +71 -67
- package/src/contracts/multicall.ts +2 -2
- package/src/contracts/nameWrapper.ts +2 -2
- package/src/contracts/publicResolver.ts +2 -2
- package/src/contracts/registry.ts +2 -2
- package/src/contracts/reverseRegistrar.ts +2 -2
- package/src/contracts/types.ts +1 -1
- package/src/contracts/universalResolver.ts +2 -2
- package/src/functions/batchWrappers.ts +3 -3
- package/src/functions/createSubname.ts +3 -2
- package/src/functions/deleteSubname.ts +2 -2
- package/src/functions/getDNSOwner.ts +1 -1
- package/src/functions/getExpiry.ts +2 -2
- package/src/functions/getHistory.ts +4 -3
- package/src/functions/getNames.ts +2 -1
- package/src/functions/getOwner.test.ts +0 -47
- package/src/functions/getOwner.ts +13 -14
- package/src/functions/getPrice.ts +6 -5
- package/src/functions/getProfile.ts +15 -15
- package/src/functions/getResolver.ts +2 -6
- package/src/functions/getSpecificRecord.ts +4 -4
- package/src/functions/getSubnames.ts +2 -1
- package/src/functions/getWrapperData.ts +1 -1
- package/src/functions/registerName.ts +1 -1
- package/src/functions/renewNames.ts +1 -1
- package/src/functions/transferController.ts +4 -3
- package/src/functions/transferName.ts +2 -2
- package/src/functions/transferSubname.ts +2 -2
- package/src/functions/types.ts +94 -0
- package/src/functions/unwrapName.ts +3 -2
- package/src/functions/wrapName.ts +8 -5
- package/src/generated/BaseRegistrarImplementation.ts +580 -593
- package/src/generated/BulkRenewal.ts +95 -96
- package/src/generated/DNSRegistrar.ts +208 -208
- package/src/generated/DNSSECImpl.ts +322 -329
- package/src/generated/DefaultReverseResolver.ts +75 -75
- package/src/generated/ENSRegistry.ts +312 -316
- package/src/generated/ETHRegistrarController.ts +405 -412
- package/src/generated/Multicall.ts +320 -327
- package/src/generated/NameWrapper.ts +877 -884
- package/src/generated/P256SHA256Algorithm.ts +52 -52
- package/src/generated/PublicResolver.ts +698 -705
- package/src/generated/RSASHA1Algorithm.ts +52 -52
- package/src/generated/RSASHA256Algorithm.ts +52 -52
- package/src/generated/ReverseRegistrar.ts +305 -311
- package/src/generated/Root.ts +220 -226
- package/src/generated/SHA1Digest.ts +51 -51
- package/src/generated/SHA1NSEC3Digest.ts +52 -53
- package/src/generated/SHA256Digest.ts +51 -51
- package/src/generated/StaticMetadataService.ts +51 -52
- package/src/generated/TLDPublicSuffixList.ts +53 -53
- package/src/generated/UniversalResolver.ts +312 -313
- package/src/generated/common.ts +15 -15
- package/src/generated/factories/BaseRegistrarImplementation__factory.ts +340 -338
- package/src/generated/factories/BulkRenewal__factory.ts +51 -49
- package/src/generated/factories/DNSRegistrar__factory.ts +132 -130
- package/src/generated/factories/DNSSECImpl__factory.ts +231 -229
- package/src/generated/factories/DefaultReverseResolver__factory.ts +40 -38
- package/src/generated/factories/ENSRegistry__factory.ts +199 -197
- package/src/generated/factories/ETHRegistrarController__factory.ts +324 -322
- package/src/generated/factories/Multicall__factory.ts +226 -224
- package/src/generated/factories/NameWrapper__factory.ts +678 -676
- package/src/generated/factories/P256SHA256Algorithm__factory.ts +25 -23
- package/src/generated/factories/PublicResolver__factory.ts +455 -456
- package/src/generated/factories/RSASHA1Algorithm__factory.ts +25 -23
- package/src/generated/factories/RSASHA256Algorithm__factory.ts +25 -23
- package/src/generated/factories/ReverseRegistrar__factory.ts +167 -165
- package/src/generated/factories/Root__factory.ts +103 -101
- package/src/generated/factories/SHA1Digest__factory.ts +22 -20
- package/src/generated/factories/SHA1NSEC3Digest__factory.ts +25 -23
- package/src/generated/factories/SHA256Digest__factory.ts +22 -20
- package/src/generated/factories/StaticMetadataService__factory.ts +25 -23
- package/src/generated/factories/TLDPublicSuffixList__factory.ts +19 -17
- package/src/generated/factories/UniversalResolver__factory.ts +251 -249
- package/src/index.ts +139 -169
- package/src/static.ts +94 -0
- package/src/utils/ccip.ts +5 -4
- package/src/utils/contentHash.ts +2 -2
- package/src/utils/fuses.ts +1 -1
- package/src/utils/generateFuseInput.ts +2 -2
- package/src/utils/labels.ts +1 -1
- package/src/utils/normalise.ts +3 -1
- package/src/utils/registerHelpers.ts +5 -3
- package/src/utils/singleCall.ts +2 -2
- package/src/utils/validation.ts +1 -1
- package/src/utils/wrapper.ts +2 -2
- package/src/utils/writeTx.ts +1 -1
package/src/contracts/index.ts
CHANGED
|
@@ -1,88 +1,92 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import type { Interface } from '@ethersproject/abi'
|
|
2
|
+
import type { Signer } from '@ethersproject/abstract-signer'
|
|
3
|
+
import type { BaseContract } from '@ethersproject/contracts'
|
|
4
|
+
import type { Provider } from '@ethersproject/providers'
|
|
5
|
+
import type { BaseRegistrarImplementation } from '../generated/BaseRegistrarImplementation'
|
|
6
|
+
import type { BulkRenewal } from '../generated/BulkRenewal'
|
|
7
|
+
import type { DNSRegistrar } from '../generated/DNSRegistrar'
|
|
8
|
+
import type { ENSRegistry } from '../generated/ENSRegistry'
|
|
9
|
+
import type { ETHRegistrarController } from '../generated/ETHRegistrarController'
|
|
10
|
+
import type { Multicall } from '../generated/Multicall'
|
|
11
|
+
import type { NameWrapper } from '../generated/NameWrapper'
|
|
12
|
+
import type { PublicResolver } from '../generated/PublicResolver'
|
|
13
|
+
import type { ReverseRegistrar } from '../generated/ReverseRegistrar'
|
|
14
|
+
import type { UniversalResolver } from '../generated/UniversalResolver'
|
|
4
15
|
import { ContractAddressFetch } from './getContractAddress'
|
|
5
|
-
import getMulticall from './multicall'
|
|
6
|
-
import getNameWrapper from './nameWrapper'
|
|
7
|
-
import getDNSRegistrar from './dnsRegistrar'
|
|
8
|
-
import getPublicResolver from './publicResolver'
|
|
9
|
-
import getRegistry from './registry'
|
|
10
|
-
import getReverseRegistrar from './reverseRegistrar'
|
|
11
16
|
import { ContractName } from './types'
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
|
|
18
|
+
type BaseFactory = {
|
|
19
|
+
readonly abi: object
|
|
20
|
+
createInterface(): Interface
|
|
21
|
+
connect(address: string, signerOrProvider: Signer | Provider): BaseContract
|
|
22
|
+
}
|
|
14
23
|
|
|
15
24
|
export default class ContractManager {
|
|
16
|
-
private provider:
|
|
25
|
+
private provider: Provider
|
|
17
26
|
|
|
18
27
|
private fetchAddress: ContractAddressFetch
|
|
19
28
|
|
|
29
|
+
// eslint-disable-next-line class-methods-use-this
|
|
30
|
+
protected getModule = async (name: string) => {
|
|
31
|
+
const mod = await import(
|
|
32
|
+
/* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true, webpackExclude: /.*\.ts$/ */
|
|
33
|
+
`../generated/factories/${name}__factory`
|
|
34
|
+
)
|
|
35
|
+
return mod[`${name}__factory`] as BaseFactory
|
|
36
|
+
}
|
|
37
|
+
|
|
20
38
|
constructor(
|
|
21
|
-
provider:
|
|
39
|
+
provider: Provider,
|
|
22
40
|
fetchAddress: ContractAddressFetch,
|
|
41
|
+
getModule?: (name: string) => Promise<BaseFactory>,
|
|
23
42
|
) {
|
|
24
43
|
this.provider = provider
|
|
25
44
|
this.fetchAddress = fetchAddress
|
|
45
|
+
if (getModule) {
|
|
46
|
+
this.getModule = getModule
|
|
47
|
+
}
|
|
26
48
|
}
|
|
27
49
|
|
|
28
|
-
private generateContractGetter = <C extends
|
|
50
|
+
private generateContractGetter = <C extends BaseContract>(
|
|
29
51
|
name: ContractName,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
passedProvider?: any,
|
|
34
|
-
address?: string,
|
|
35
|
-
): Promise<ReturnType<C>> => {
|
|
52
|
+
): ((passedProvider?: any, address?: string) => Promise<C>) => {
|
|
53
|
+
return async (passedProvider, address) => {
|
|
54
|
+
const mod = await this.getModule(name)
|
|
36
55
|
const inputAddress = address || this.fetchAddress(name)
|
|
37
56
|
const provider = passedProvider || this.provider
|
|
38
|
-
return
|
|
57
|
+
return mod.connect(inputAddress, provider) as C
|
|
39
58
|
}
|
|
40
59
|
}
|
|
41
60
|
|
|
42
|
-
public getPublicResolver =
|
|
43
|
-
'PublicResolver'
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
'BaseRegistrarImplementation',
|
|
74
|
-
getBaseRegistrar,
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
public getEthRegistrarController = this.generateContractGetter(
|
|
78
|
-
'ETHRegistrarController',
|
|
79
|
-
getEthRegistrarController,
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
public getMulticall = this.generateContractGetter('Multicall', getMulticall)
|
|
83
|
-
|
|
84
|
-
public getBulkRenewal = this.generateContractGetter(
|
|
85
|
-
'BulkRenewal',
|
|
86
|
-
getBulkRenewal,
|
|
87
|
-
)
|
|
61
|
+
public getPublicResolver =
|
|
62
|
+
this.generateContractGetter<PublicResolver>('PublicResolver')
|
|
63
|
+
|
|
64
|
+
public getUniversalResolver =
|
|
65
|
+
this.generateContractGetter<UniversalResolver>('UniversalResolver')
|
|
66
|
+
|
|
67
|
+
public getRegistry = this.generateContractGetter<ENSRegistry>('ENSRegistry')
|
|
68
|
+
|
|
69
|
+
public getReverseRegistrar =
|
|
70
|
+
this.generateContractGetter<ReverseRegistrar>('ReverseRegistrar')
|
|
71
|
+
|
|
72
|
+
public getNameWrapper =
|
|
73
|
+
this.generateContractGetter<NameWrapper>('NameWrapper')
|
|
74
|
+
|
|
75
|
+
public getDNSRegistrar =
|
|
76
|
+
this.generateContractGetter<DNSRegistrar>('DNSRegistrar')
|
|
77
|
+
|
|
78
|
+
public getBaseRegistrar =
|
|
79
|
+
this.generateContractGetter<BaseRegistrarImplementation>(
|
|
80
|
+
'BaseRegistrarImplementation',
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
public getEthRegistrarController =
|
|
84
|
+
this.generateContractGetter<ETHRegistrarController>(
|
|
85
|
+
'ETHRegistrarController',
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
public getMulticall = this.generateContractGetter<Multicall>('Multicall')
|
|
89
|
+
|
|
90
|
+
public getBulkRenewal =
|
|
91
|
+
this.generateContractGetter<BulkRenewal>('BulkRenewal')
|
|
88
92
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { JsonRpcProvider } from '@ethersproject/providers'
|
|
2
2
|
import { Multicall__factory } from '../generated/factories/Multicall__factory'
|
|
3
3
|
|
|
4
|
-
export default (provider:
|
|
4
|
+
export default (provider: JsonRpcProvider, address: string) =>
|
|
5
5
|
Multicall__factory.connect(address, provider)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { JsonRpcProvider } from '@ethersproject/providers'
|
|
2
2
|
import { NameWrapper__factory } from '../generated/factories/NameWrapper__factory'
|
|
3
3
|
|
|
4
|
-
export default (provider:
|
|
4
|
+
export default (provider: JsonRpcProvider, address: string) =>
|
|
5
5
|
NameWrapper__factory.connect(address, provider)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { JsonRpcProvider } from '@ethersproject/providers'
|
|
2
2
|
import { PublicResolver__factory } from '../generated/factories/PublicResolver__factory'
|
|
3
3
|
|
|
4
|
-
export default (provider:
|
|
4
|
+
export default (provider: JsonRpcProvider, address: string) =>
|
|
5
5
|
PublicResolver__factory.connect(address, provider)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { JsonRpcProvider } from '@ethersproject/providers'
|
|
2
2
|
import { ENSRegistry__factory } from '../generated/factories/ENSRegistry__factory'
|
|
3
3
|
|
|
4
|
-
export default (provider:
|
|
4
|
+
export default (provider: JsonRpcProvider, address: string) =>
|
|
5
5
|
ENSRegistry__factory.connect(address, provider)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { JsonRpcProvider } from '@ethersproject/providers'
|
|
2
2
|
import { ReverseRegistrar__factory } from '../generated/factories/ReverseRegistrar__factory'
|
|
3
3
|
|
|
4
|
-
export default (provider:
|
|
4
|
+
export default (provider: JsonRpcProvider, address: string) =>
|
|
5
5
|
ReverseRegistrar__factory.connect(address, provider)
|
package/src/contracts/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { JsonRpcProvider } from '@ethersproject/providers'
|
|
2
2
|
import { UniversalResolver__factory } from '../generated/factories/UniversalResolver__factory'
|
|
3
3
|
|
|
4
|
-
export default (provider:
|
|
4
|
+
export default (provider: JsonRpcProvider, address: string) =>
|
|
5
5
|
UniversalResolver__factory.connect(address, provider)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { TransactionRequest } from '@ethersproject/providers'
|
|
2
2
|
import { ENSArgs } from '..'
|
|
3
3
|
import ccipLookup from '../utils/ccip'
|
|
4
4
|
import { hexEncodeName } from '../utils/hexEncodedName'
|
|
@@ -61,7 +61,7 @@ export const resolverMulticallWrapper = {
|
|
|
61
61
|
export const multicallWrapper = {
|
|
62
62
|
async raw(
|
|
63
63
|
{ contracts }: ENSArgs<'contracts'>,
|
|
64
|
-
transactions:
|
|
64
|
+
transactions: TransactionRequest[],
|
|
65
65
|
requireSuccess: boolean = false,
|
|
66
66
|
) {
|
|
67
67
|
const multicall = await contracts?.getMulticall()!
|
|
@@ -79,7 +79,7 @@ export const multicallWrapper = {
|
|
|
79
79
|
async decode(
|
|
80
80
|
{ contracts, provider }: ENSArgs<'contracts' | 'provider'>,
|
|
81
81
|
data: string,
|
|
82
|
-
transactions:
|
|
82
|
+
transactions: TransactionRequest[],
|
|
83
83
|
) {
|
|
84
84
|
if (!data) return
|
|
85
85
|
const multicall = await contracts?.getMulticall()!
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { BigNumber
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber/lib/bignumber'
|
|
2
|
+
import { keccak256 as solidityKeccak256 } from '@ethersproject/solidity'
|
|
2
3
|
import { ENSArgs } from '..'
|
|
3
4
|
import { FuseOptions } from '../utils/fuses'
|
|
4
5
|
import generateFuseInput from '../utils/generateFuseInput'
|
|
@@ -43,7 +44,7 @@ export default async function (
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
const label = labels.shift() as string
|
|
46
|
-
const labelhash =
|
|
47
|
+
const labelhash = solidityKeccak256(['string'], [label])
|
|
47
48
|
const parentNodehash = namehash(labels.join('.'))
|
|
48
49
|
|
|
49
50
|
switch (contract) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { keccak256 as solidityKeccak256 } from '@ethersproject/solidity'
|
|
2
2
|
import { ENSArgs } from '..'
|
|
3
3
|
import { namehash } from '../utils/normalise'
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ export default async function (
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
const label = labels.shift() as string
|
|
21
|
-
const labelhash =
|
|
21
|
+
const labelhash = solidityKeccak256(['string'], [label])
|
|
22
22
|
const parentNodehash = namehash(labels.join('.'))
|
|
23
23
|
|
|
24
24
|
switch (contract) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BigNumber } from '
|
|
2
|
-
import { solidityKeccak256 } from '
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber/lib/bignumber'
|
|
2
|
+
import { keccak256 as solidityKeccak256 } from '@ethersproject/solidity'
|
|
3
3
|
import { ENSArgs } from '..'
|
|
4
4
|
import { namehash } from '../utils/normalise'
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { formatsByCoinType } from '@ensdomains/address-encoder'
|
|
2
|
-
import {
|
|
2
|
+
import { hexStripZeros } from '@ethersproject/bytes'
|
|
3
3
|
import { ENSArgs } from '..'
|
|
4
4
|
import { decodeContenthash } from '../utils/contentHash'
|
|
5
5
|
import { labelhash } from '../utils/labels'
|
|
@@ -69,7 +69,7 @@ const eventFormat: {
|
|
|
69
69
|
rawAddr: args.multiaddr,
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
if (
|
|
72
|
+
if (hexStripZeros(args.multiaddr) === '0x') {
|
|
73
73
|
return {
|
|
74
74
|
coinType: args.coinType,
|
|
75
75
|
coinName: format.name,
|
|
@@ -246,10 +246,11 @@ export async function getHistory(
|
|
|
246
246
|
const nameHash = namehash(name)
|
|
247
247
|
const labelHash = labelhash(label)
|
|
248
248
|
|
|
249
|
-
const
|
|
249
|
+
const response = await client.request(query, {
|
|
250
250
|
namehash: nameHash,
|
|
251
251
|
labelhash: labelHash,
|
|
252
252
|
})
|
|
253
|
+
const domain = response?.domain
|
|
253
254
|
|
|
254
255
|
if (!domain) return
|
|
255
256
|
|
|
@@ -347,7 +347,8 @@ const getNames = async (
|
|
|
347
347
|
}
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
-
const
|
|
350
|
+
const response = await client.request(finalQuery, queryVars)
|
|
351
|
+
const account = response?.account
|
|
351
352
|
if (type === 'all') {
|
|
352
353
|
return [
|
|
353
354
|
...(account?.domains.map(mapDomain) || []),
|
|
@@ -13,55 +13,8 @@ afterAll(async () => {
|
|
|
13
13
|
})
|
|
14
14
|
|
|
15
15
|
describe('getOwner', () => {
|
|
16
|
-
it('should return null for an unregistered name', async () => {
|
|
17
|
-
const result = await ensInstance.getOwner('test123123cool.eth')
|
|
18
|
-
expect(result).toBeUndefined()
|
|
19
|
-
})
|
|
20
|
-
it('should return the owner, registrant, and ownership level for a registered name', async () => {
|
|
21
|
-
const result = await ensInstance.getOwner('with-profile.eth')
|
|
22
|
-
expect(result).toMatchObject({
|
|
23
|
-
owner: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
24
|
-
registrant: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
|
|
25
|
-
ownershipLevel: 'registrar',
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
16
|
it('should return nameWrapper as the ownership level for a wrapped name', async () => {
|
|
29
17
|
const result = await ensInstance.getOwner('wrapped.eth')
|
|
30
18
|
expect(result?.ownershipLevel).toBe('nameWrapper')
|
|
31
19
|
})
|
|
32
|
-
it('should return the owner at a specific level if specified', async () => {
|
|
33
|
-
const result = await ensInstance.getOwner('wrapped.eth', 'registrar')
|
|
34
|
-
const nameWrapperAddress = (await ensInstance.contracts!.getNameWrapper())
|
|
35
|
-
.address
|
|
36
|
-
expect(result?.ownershipLevel).toBe('registrar')
|
|
37
|
-
expect(result?.registrant).toBe(nameWrapperAddress)
|
|
38
|
-
})
|
|
39
|
-
it('should return the owner of a TLD on the registry', async () => {
|
|
40
|
-
const result = await ensInstance.getOwner('eth')
|
|
41
|
-
const baseRegistrarAddress = (
|
|
42
|
-
await ensInstance.contracts!.getBaseRegistrar()
|
|
43
|
-
).address
|
|
44
|
-
expect(result?.ownershipLevel).toBe('registry')
|
|
45
|
-
expect(result?.owner?.toLowerCase()).toBe(
|
|
46
|
-
baseRegistrarAddress.toLowerCase(),
|
|
47
|
-
)
|
|
48
|
-
})
|
|
49
|
-
it('should return registry as the ownership level for an unwrapped subname', async () => {
|
|
50
|
-
const result = await ensInstance.getOwner('test.with-subnames.eth')
|
|
51
|
-
expect(result?.ownershipLevel).toBe('registry')
|
|
52
|
-
expect(result?.owner).toBe('0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC')
|
|
53
|
-
})
|
|
54
|
-
it('should return registry ownership for a pseudo-wrapped name', async () => {
|
|
55
|
-
const nameWrapper = await ensInstance.contracts!.getNameWrapper()
|
|
56
|
-
const tx = await ensInstance.transferSubname('test.with-subnames.eth', {
|
|
57
|
-
contract: 'registry',
|
|
58
|
-
owner: nameWrapper.address,
|
|
59
|
-
addressOrIndex: 1,
|
|
60
|
-
})
|
|
61
|
-
await tx.wait()
|
|
62
|
-
|
|
63
|
-
const result = await ensInstance.getOwner('test.with-subnames.eth')
|
|
64
|
-
expect(result?.ownershipLevel).toBe('registry')
|
|
65
|
-
expect(result?.owner).toBe(nameWrapper.address)
|
|
66
|
-
})
|
|
67
20
|
})
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultAbiCoder } from '@ethersproject/abi/lib/abi-coder'
|
|
2
|
+
import type { Result } from '@ethersproject/abi/lib/coders/abstract-coder'
|
|
3
|
+
import { hexStripZeros } from '@ethersproject/bytes'
|
|
2
4
|
import { ENSArgs } from '..'
|
|
3
5
|
import { labelhash } from '../utils/labels'
|
|
4
6
|
import { namehash as makeNamehash } from '../utils/normalise'
|
|
@@ -104,7 +106,7 @@ const registrantQuery = `
|
|
|
104
106
|
`
|
|
105
107
|
|
|
106
108
|
const singleContractOwnerDecode = (data: string) =>
|
|
107
|
-
|
|
109
|
+
defaultAbiCoder.decode(['address'], data)[0]
|
|
108
110
|
|
|
109
111
|
const decode = async (
|
|
110
112
|
{
|
|
@@ -139,20 +141,17 @@ const decode = async (
|
|
|
139
141
|
const nameWrapper = await contracts?.getNameWrapper()!
|
|
140
142
|
|
|
141
143
|
const decodedData = [result[0][1], result[1][1], result[2]?.[1]].map(
|
|
142
|
-
(ret) =>
|
|
143
|
-
ret &&
|
|
144
|
-
ret !== '0x' &&
|
|
145
|
-
ethers.utils.defaultAbiCoder.decode(['address'], ret),
|
|
144
|
+
(ret) => ret && ret !== '0x' && defaultAbiCoder.decode(['address'], ret),
|
|
146
145
|
)
|
|
147
146
|
|
|
148
|
-
const registryOwner = (decodedData[0] as
|
|
149
|
-
const nameWrapperOwner = (decodedData[1] as
|
|
150
|
-
let registrarOwner = (decodedData[2] as
|
|
147
|
+
const registryOwner = (decodedData[0] as Result)[0]
|
|
148
|
+
const nameWrapperOwner = (decodedData[1] as Result)[0]
|
|
149
|
+
let registrarOwner = (decodedData[2] as Result | undefined)?.[0]
|
|
151
150
|
|
|
152
151
|
// check for only .eth names
|
|
153
152
|
if (labels[labels.length - 1] === 'eth') {
|
|
154
153
|
if (!registrarOwner && labels.length === 2) {
|
|
155
|
-
const graphRegistrantResult = await gqlInstance
|
|
154
|
+
const graphRegistrantResult = await gqlInstance.client.request(
|
|
156
155
|
registrantQuery,
|
|
157
156
|
{
|
|
158
157
|
namehash: makeNamehash(name),
|
|
@@ -180,7 +179,7 @@ const decode = async (
|
|
|
180
179
|
ownershipLevel: 'registrar',
|
|
181
180
|
}
|
|
182
181
|
}
|
|
183
|
-
if (
|
|
182
|
+
if (hexStripZeros(registryOwner) !== '0x') {
|
|
184
183
|
// if there is no registrar owner, but the label length is two, then the domain is an expired 2LD .eth
|
|
185
184
|
// so we still want to return the ownership values
|
|
186
185
|
if (labels.length === 2) {
|
|
@@ -194,7 +193,7 @@ const decode = async (
|
|
|
194
193
|
if (
|
|
195
194
|
registryOwner === nameWrapper.address &&
|
|
196
195
|
nameWrapperOwner &&
|
|
197
|
-
|
|
196
|
+
hexStripZeros(nameWrapperOwner) !== '0x'
|
|
198
197
|
) {
|
|
199
198
|
return {
|
|
200
199
|
owner: nameWrapperOwner,
|
|
@@ -218,7 +217,7 @@ const decode = async (
|
|
|
218
217
|
if (
|
|
219
218
|
registryOwner === nameWrapper.address &&
|
|
220
219
|
nameWrapperOwner &&
|
|
221
|
-
|
|
220
|
+
hexStripZeros(nameWrapperOwner) !== '0x'
|
|
222
221
|
) {
|
|
223
222
|
return {
|
|
224
223
|
owner: nameWrapperOwner,
|
|
@@ -227,7 +226,7 @@ const decode = async (
|
|
|
227
226
|
}
|
|
228
227
|
|
|
229
228
|
// for unwrapped non .eth names, the owner is the registry owner
|
|
230
|
-
if (
|
|
229
|
+
if (hexStripZeros(registryOwner) !== '0x') {
|
|
231
230
|
return {
|
|
232
231
|
owner: registryOwner,
|
|
233
232
|
ownershipLevel: 'registry',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultAbiCoder } from '@ethersproject/abi/lib/abi-coder'
|
|
2
|
+
import { BigNumber } from '@ethersproject/bignumber/lib/bignumber'
|
|
2
3
|
import { ENSArgs } from '..'
|
|
3
4
|
|
|
4
5
|
const raw = async (
|
|
@@ -75,11 +76,11 @@ const decode = async (
|
|
|
75
76
|
const isBulkRenewal = Array.isArray(_nameOrNames) && _nameOrNames.length > 1
|
|
76
77
|
if (isBulkRenewal && legacy) {
|
|
77
78
|
const result = await multicallWrapper.decode(data)
|
|
78
|
-
const [price] =
|
|
79
|
+
const [price] = defaultAbiCoder.decode(
|
|
79
80
|
['uint256'],
|
|
80
81
|
result[0].returnData,
|
|
81
82
|
) as [BigNumber]
|
|
82
|
-
;[premium] =
|
|
83
|
+
;[premium] = defaultAbiCoder.decode(
|
|
83
84
|
['uint256'],
|
|
84
85
|
result[1].returnData,
|
|
85
86
|
) as [BigNumber]
|
|
@@ -94,11 +95,11 @@ const decode = async (
|
|
|
94
95
|
premium = BigNumber.from(0)
|
|
95
96
|
} else if (!isBulkRenewal && legacy) {
|
|
96
97
|
const result = await multicallWrapper.decode(data)
|
|
97
|
-
const [price] =
|
|
98
|
+
const [price] = defaultAbiCoder.decode(
|
|
98
99
|
['uint256'],
|
|
99
100
|
result[0].returnData,
|
|
100
101
|
) as [BigNumber]
|
|
101
|
-
;[premium] =
|
|
102
|
+
;[premium] = defaultAbiCoder.decode(
|
|
102
103
|
['uint256'],
|
|
103
104
|
result[1].returnData,
|
|
104
105
|
) as [BigNumber]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { formatsByName } from '@ensdomains/address-encoder'
|
|
2
|
-
import {
|
|
3
|
-
import { hexStripZeros } from '
|
|
2
|
+
import { defaultAbiCoder } from '@ethersproject/abi/lib/abi-coder'
|
|
3
|
+
import { hexStripZeros, isBytesLike } from '@ethersproject/bytes'
|
|
4
4
|
import { ENSArgs } from '..'
|
|
5
5
|
import { decodeContenthash, DecodedContentHash } from '../utils/contentHash'
|
|
6
6
|
import { hexEncodeName } from '../utils/hexEncodedName'
|
|
@@ -154,11 +154,8 @@ const formatRecords = async (
|
|
|
154
154
|
type: calls[i].type,
|
|
155
155
|
}
|
|
156
156
|
if (itemRet.type === 'contentHash') {
|
|
157
|
-
;[decodedFromAbi] =
|
|
158
|
-
|
|
159
|
-
item,
|
|
160
|
-
)
|
|
161
|
-
if (ethers.utils.hexStripZeros(decodedFromAbi) === '0x') {
|
|
157
|
+
;[decodedFromAbi] = defaultAbiCoder.decode(['bytes'], item)
|
|
158
|
+
if (hexStripZeros(decodedFromAbi) === '0x') {
|
|
162
159
|
return
|
|
163
160
|
}
|
|
164
161
|
}
|
|
@@ -218,12 +215,12 @@ const formatRecords = async (
|
|
|
218
215
|
) {
|
|
219
216
|
if (
|
|
220
217
|
typeof options.contentHash === 'string' &&
|
|
221
|
-
|
|
218
|
+
hexStripZeros(options.contentHash) === '0x'
|
|
222
219
|
) {
|
|
223
220
|
returnedResponse.contentHash = null
|
|
224
221
|
} else if (
|
|
225
|
-
|
|
226
|
-
|
|
222
|
+
isBytesLike((options.contentHash as any).decoded) &&
|
|
223
|
+
hexStripZeros((options.contentHash as any).decoded) === '0x'
|
|
227
224
|
) {
|
|
228
225
|
returnedResponse.contentHash = null
|
|
229
226
|
} else {
|
|
@@ -402,14 +399,17 @@ const graphFetch = async (
|
|
|
402
399
|
let resolverResponse: any
|
|
403
400
|
|
|
404
401
|
if (!resolverAddress) {
|
|
405
|
-
|
|
402
|
+
const response = await client.request(query, { id })
|
|
403
|
+
domain = response?.domain
|
|
406
404
|
resolverResponse = domain?.resolver
|
|
407
405
|
} else {
|
|
408
406
|
const resolverId = `${resolverAddress.toLowerCase()}-${id}`
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
)
|
|
407
|
+
const response = await client.request(customResolverQuery, {
|
|
408
|
+
id,
|
|
409
|
+
resolverId,
|
|
410
|
+
})
|
|
411
|
+
resolverResponse = response?.resolver
|
|
412
|
+
domain = response?.domain
|
|
413
413
|
}
|
|
414
414
|
|
|
415
415
|
if (!domain) return
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { hexStripZeros } from '@ethersproject/bytes'
|
|
2
2
|
import { ENSArgs } from '..'
|
|
3
3
|
import { hexEncodeName } from '../utils/hexEncodedName'
|
|
4
4
|
|
|
@@ -19,11 +19,7 @@ const decode = async ({ contracts }: ENSArgs<'contracts'>, data: string) => {
|
|
|
19
19
|
data,
|
|
20
20
|
)
|
|
21
21
|
|
|
22
|
-
if (
|
|
23
|
-
!response ||
|
|
24
|
-
!response[0] ||
|
|
25
|
-
ethers.utils.hexStripZeros(response[0]) === '0x'
|
|
26
|
-
) {
|
|
22
|
+
if (!response || !response[0] || hexStripZeros(response[0]) === '0x') {
|
|
27
23
|
return
|
|
28
24
|
}
|
|
29
25
|
return response[0]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { formatsByCoinType, formatsByName } from '@ensdomains/address-encoder'
|
|
2
|
-
import {
|
|
2
|
+
import { hexStripZeros, isBytesLike } from '@ethersproject/bytes'
|
|
3
3
|
import { ENSArgs } from '..'
|
|
4
4
|
import { decodeContenthash } from '../utils/contentHash'
|
|
5
5
|
import { namehash } from '../utils/normalise'
|
|
@@ -34,8 +34,8 @@ export const _getContentHash = {
|
|
|
34
34
|
|
|
35
35
|
if (
|
|
36
36
|
!decodedContent ||
|
|
37
|
-
(
|
|
38
|
-
|
|
37
|
+
(isBytesLike(decodedContent.decoded) &&
|
|
38
|
+
hexStripZeros(decodedContent.decoded) === '0x') ||
|
|
39
39
|
Object.keys(decodedContent).length === 0
|
|
40
40
|
) {
|
|
41
41
|
return
|
|
@@ -196,7 +196,7 @@ export const _getAddr = {
|
|
|
196
196
|
|
|
197
197
|
if (!response) return
|
|
198
198
|
|
|
199
|
-
if (
|
|
199
|
+
if (hexStripZeros(response) === '0x') {
|
|
200
200
|
return
|
|
201
201
|
}
|
|
202
202
|
|
|
@@ -104,7 +104,8 @@ const largeQuery = async (
|
|
|
104
104
|
orderDirection,
|
|
105
105
|
search: search?.toLowerCase(),
|
|
106
106
|
}
|
|
107
|
-
const
|
|
107
|
+
const response = await client.request(finalQuery, queryVars)
|
|
108
|
+
const domain = response?.domain
|
|
108
109
|
const subdomains = domain.subdomains.map((subname: any) => {
|
|
109
110
|
const decrypted = decryptName(subname.name)
|
|
110
111
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BigNumber, BigNumberish } from '
|
|
1
|
+
import { BigNumber, BigNumberish } from '@ethersproject/bignumber/lib/bignumber'
|
|
2
2
|
import { ENSArgs } from '..'
|
|
3
3
|
import { FuseProps, validateFuses } from '../utils/fuses'
|
|
4
4
|
import { MAX_INT_64 } from '../utils/registerHelpers'
|