@ensdomains/ensjs 3.0.0-alpha.1 → 3.0.0-alpha.12
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/README.md +2 -0
- package/dist/cjs/GqlManager.d.ts +3 -0
- package/dist/cjs/GqlManager.js +62 -2
- 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.d.ts +3 -2
- package/dist/cjs/functions/burnFuses.js +4 -8
- package/dist/cjs/functions/createSubname.d.ts +3 -5
- package/dist/cjs/functions/createSubname.js +7 -8
- package/dist/cjs/functions/deleteSubname.d.ts +3 -3
- package/dist/cjs/functions/deleteSubname.js +6 -2
- package/dist/cjs/functions/getDNSOwner.d.ts +7 -0
- package/dist/cjs/functions/getDNSOwner.js +81 -0
- 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 +6 -14
- 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/getOwner.js +7 -6
- package/dist/cjs/functions/getProfile.d.ts +4 -1
- package/dist/cjs/functions/getProfile.js +102 -24
- package/dist/cjs/functions/getRecords.d.ts +1 -0
- package/dist/cjs/functions/getSpecificRecord.js +30 -6
- package/dist/cjs/functions/getSubnames.d.ts +1 -1
- package/dist/cjs/functions/getSubnames.js +7 -7
- package/dist/cjs/functions/setName.d.ts +4 -3
- package/dist/cjs/functions/setName.js +5 -10
- package/dist/cjs/functions/setRecord.d.ts +18 -0
- package/dist/cjs/functions/setRecord.js +27 -0
- package/dist/cjs/functions/setRecords.d.ts +4 -2
- package/dist/cjs/functions/setRecords.js +14 -12
- package/dist/cjs/functions/setResolver.d.ts +4 -4
- package/dist/cjs/functions/setResolver.js +6 -12
- package/dist/cjs/functions/transferName.d.ts +4 -3
- package/dist/cjs/functions/transferName.js +9 -13
- package/dist/cjs/functions/transferSubname.d.ts +13 -3
- package/dist/cjs/functions/transferSubname.js +7 -8
- package/dist/cjs/functions/unwrapName.d.ts +4 -3
- package/dist/cjs/functions/unwrapName.js +5 -9
- package/dist/cjs/functions/wrapName.d.ts +7 -3
- package/dist/cjs/functions/wrapName.js +38 -36
- 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 +62 -84
- package/dist/cjs/index.js +44 -21
- package/dist/cjs/utils/labels.js +5 -4
- package/dist/cjs/utils/makeHashIndexes.js +2 -2
- package/dist/cjs/utils/normalise.d.ts +1 -0
- package/dist/cjs/utils/normalise.js +27 -1
- package/dist/cjs/utils/recordHelpers.d.ts +3 -0
- package/dist/cjs/utils/recordHelpers.js +42 -15
- package/dist/cjs/utils/registerHelpers.js +3 -4
- package/dist/cjs/utils/wrapperExpiry.d.ts +5 -0
- package/dist/cjs/utils/wrapperExpiry.js +30 -0
- package/dist/cjs/utils/writeTx.d.ts +4 -0
- package/dist/cjs/utils/writeTx.js +3 -0
- package/dist/esm/GqlManager.d.ts +3 -0
- package/dist/esm/GqlManager.js +58 -2
- 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.d.ts +3 -2
- package/dist/esm/functions/burnFuses.js +4 -8
- package/dist/esm/functions/createSubname.d.ts +3 -5
- package/dist/esm/functions/createSubname.js +7 -8
- package/dist/esm/functions/deleteSubname.d.ts +3 -3
- package/dist/esm/functions/deleteSubname.js +6 -2
- package/dist/esm/functions/getDNSOwner.d.ts +7 -0
- package/dist/esm/functions/getDNSOwner.js +51 -0
- 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 +7 -15
- 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/getOwner.js +7 -6
- package/dist/esm/functions/getProfile.d.ts +4 -1
- package/dist/esm/functions/getProfile.js +102 -24
- package/dist/esm/functions/getRecords.d.ts +1 -0
- package/dist/esm/functions/getSpecificRecord.js +30 -6
- package/dist/esm/functions/getSubnames.d.ts +1 -1
- package/dist/esm/functions/getSubnames.js +4 -4
- package/dist/esm/functions/setName.d.ts +4 -3
- package/dist/esm/functions/setName.js +5 -10
- package/dist/esm/functions/setRecord.d.ts +18 -0
- package/dist/esm/functions/setRecord.js +24 -0
- package/dist/esm/functions/setRecords.d.ts +4 -2
- package/dist/esm/functions/setRecords.js +14 -12
- package/dist/esm/functions/setResolver.d.ts +4 -4
- package/dist/esm/functions/setResolver.js +6 -12
- package/dist/esm/functions/transferName.d.ts +4 -3
- package/dist/esm/functions/transferName.js +9 -13
- package/dist/esm/functions/transferSubname.d.ts +13 -3
- package/dist/esm/functions/transferSubname.js +7 -8
- package/dist/esm/functions/unwrapName.d.ts +4 -3
- package/dist/esm/functions/unwrapName.js +5 -9
- package/dist/esm/functions/wrapName.d.ts +7 -3
- package/dist/esm/functions/wrapName.js +38 -36
- 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 +62 -84
- package/dist/esm/index.js +44 -21
- package/dist/esm/utils/labels.js +5 -4
- package/dist/esm/utils/makeHashIndexes.js +2 -2
- package/dist/esm/utils/normalise.d.ts +1 -0
- package/dist/esm/utils/normalise.js +25 -0
- package/dist/esm/utils/recordHelpers.d.ts +3 -0
- package/dist/esm/utils/recordHelpers.js +40 -14
- package/dist/esm/utils/registerHelpers.js +3 -4
- package/dist/esm/utils/wrapperExpiry.d.ts +5 -0
- package/dist/esm/utils/wrapperExpiry.js +26 -0
- package/dist/esm/utils/writeTx.d.ts +4 -0
- package/dist/esm/utils/writeTx.js +1 -0
- package/package.json +24 -14
- package/src/@types/dns-packet/index.d.ts +114 -0
- package/src/ABIs/Multicall.json +452 -0
- package/src/GqlManager.test.ts +170 -0
- package/src/GqlManager.ts +67 -2
- package/src/contracts/index.ts +1 -1
- package/src/{tests → functions}/batch.test.ts +7 -7
- package/src/{tests → functions}/batchWrappers.test.ts +6 -6
- package/src/{tests → functions}/burnFuses.test.ts +12 -15
- package/src/functions/burnFuses.ts +9 -11
- package/src/{tests → functions}/createSubname.test.ts +9 -17
- package/src/functions/createSubname.ts +20 -14
- package/src/{tests → functions}/deleteSubname.test.ts +12 -31
- package/src/functions/deleteSubname.ts +10 -12
- package/src/functions/getDNSOwner.test.ts +118 -0
- package/src/functions/getDNSOwner.ts +61 -0
- package/src/functions/getExpiry.test.ts +59 -0
- package/src/functions/getExpiry.ts +87 -9
- package/src/{tests → functions}/getFuses.test.ts +16 -37
- package/src/functions/getFuses.ts +12 -17
- package/src/functions/getHistory.test.ts +29 -0
- package/src/functions/getHistory.ts +2 -127
- package/src/{tests → functions}/getName.test.ts +6 -6
- package/src/functions/getName.ts +1 -1
- package/src/{tests → functions}/getNames.test.ts +98 -69
- package/src/{tests → functions}/getOwner.test.ts +21 -24
- package/src/functions/getOwner.ts +7 -7
- package/src/functions/getProfile.test.ts +143 -0
- package/src/functions/getProfile.ts +151 -24
- package/src/functions/getRecords.ts +1 -0
- package/src/functions/getResolver.test.ts +15 -0
- package/src/{tests → functions}/getSpecificRecord.test.ts +17 -14
- package/src/functions/getSpecificRecord.ts +38 -12
- package/src/functions/getSubnames.test.ts +35 -0
- package/src/functions/getSubnames.ts +76 -67
- package/src/{tests → functions}/makeCommitment.test.ts +2 -2
- package/src/functions/normalise.test.ts +22 -0
- package/src/{tests → functions}/setName.test.ts +11 -11
- package/src/functions/setName.ts +15 -17
- package/src/functions/setRecord.test.ts +103 -0
- package/src/functions/setRecord.ts +63 -0
- package/src/{tests → functions}/setRecords.test.ts +16 -13
- package/src/functions/setRecords.ts +22 -16
- package/src/{tests → functions}/setResolver.test.ts +13 -19
- package/src/functions/setResolver.ts +15 -20
- package/src/{tests → functions}/transferName.test.ts +20 -35
- package/src/functions/transferName.ts +19 -22
- package/src/{tests → functions}/transferSubname.test.ts +14 -33
- package/src/functions/transferSubname.ts +39 -13
- package/src/{tests → functions}/unwrapName.test.ts +16 -30
- package/src/functions/unwrapName.ts +20 -15
- package/src/functions/wrapName.test.ts +142 -0
- package/src/functions/wrapName.ts +63 -49
- 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 +117 -47
- package/src/tests/populateTransaction.test.ts +40 -0
- package/src/tests/setup.ts +17 -13
- package/src/tests/signerInjection.test.ts +46 -0
- package/src/tests/withProvider.test.ts +3 -3
- package/src/utils/labels.ts +6 -4
- package/src/utils/makeHashIndexes.ts +4 -4
- package/src/utils/normalise.ts +29 -0
- package/src/utils/recordHelpers.ts +52 -18
- package/src/utils/registerHelpers.ts +3 -4
- package/src/utils/wrapperExpiry.ts +31 -0
- package/src/utils/writeTx.ts +6 -0
- 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/getExpiry.test.ts +0 -37
- package/src/tests/getHistory.test.ts +0 -101
- package/src/tests/getProfile.test.ts +0 -102
- package/src/tests/getResolver.test.ts +0 -19
- package/src/tests/getSubnames.test.ts +0 -31
- package/src/tests/wrapName.test.ts +0 -67
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ethers } from 'ethers'
|
|
2
2
|
import { ENS } from '..'
|
|
3
|
+
import setup from '../tests/setup'
|
|
3
4
|
import { hexEncodeName } from '../utils/hexEncodedName'
|
|
4
|
-
import setup from './setup'
|
|
5
5
|
|
|
6
6
|
let ENSInstance: ENS
|
|
7
7
|
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
@@ -20,40 +20,34 @@ describe('setResolver', () => {
|
|
|
20
20
|
await revert()
|
|
21
21
|
})
|
|
22
22
|
it('should return a transaction to the registry and set successfully', async () => {
|
|
23
|
-
const tx = await ENSInstance.setResolver(
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
|
|
27
|
-
)
|
|
23
|
+
const tx = await ENSInstance.setResolver('test123.eth', {
|
|
24
|
+
contract: 'registry',
|
|
25
|
+
resolver: '0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC',
|
|
26
|
+
addressOrIndex: 1,
|
|
27
|
+
})
|
|
28
28
|
expect(tx).toBeTruthy()
|
|
29
29
|
await tx.wait()
|
|
30
30
|
|
|
31
31
|
const universalResolver =
|
|
32
32
|
await ENSInstance.contracts!.getUniversalResolver()!
|
|
33
33
|
const [result] = await universalResolver.findResolver(
|
|
34
|
-
hexEncodeName('
|
|
34
|
+
hexEncodeName('test123.eth'),
|
|
35
35
|
)
|
|
36
36
|
expect(result).toBe('0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC')
|
|
37
37
|
})
|
|
38
38
|
it('should return a transaction to the namewrapper and set successfully', async () => {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
'
|
|
42
|
-
|
|
43
|
-
)
|
|
44
|
-
await wrapNameTx.wait()
|
|
45
|
-
const tx = await ENSInstance.setResolver(
|
|
46
|
-
'parthtejpal.eth',
|
|
47
|
-
'nameWrapper',
|
|
48
|
-
'0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC',
|
|
49
|
-
)
|
|
39
|
+
const tx = await ENSInstance.setResolver('wrapped.eth', {
|
|
40
|
+
contract: 'nameWrapper',
|
|
41
|
+
resolver: '0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC',
|
|
42
|
+
addressOrIndex: 1,
|
|
43
|
+
})
|
|
50
44
|
expect(tx).toBeTruthy()
|
|
51
45
|
await tx.wait()
|
|
52
46
|
|
|
53
47
|
const universalResolver =
|
|
54
48
|
await ENSInstance.contracts!.getUniversalResolver()!
|
|
55
49
|
const [result] = await universalResolver.findResolver(
|
|
56
|
-
hexEncodeName('
|
|
50
|
+
hexEncodeName('wrapped.eth'),
|
|
57
51
|
)
|
|
58
52
|
expect(result).toBe('0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC')
|
|
59
53
|
})
|
|
@@ -1,37 +1,32 @@
|
|
|
1
|
-
import { ethers } from 'ethers'
|
|
2
1
|
import { ENSArgs } from '..'
|
|
2
|
+
import { namehash } from '../utils/normalise'
|
|
3
3
|
|
|
4
4
|
export default async function (
|
|
5
|
-
{ contracts,
|
|
5
|
+
{ contracts, signer }: ENSArgs<'contracts' | 'signer'>,
|
|
6
6
|
name: string,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
{
|
|
8
|
+
contract,
|
|
9
|
+
resolver,
|
|
10
|
+
}: {
|
|
11
|
+
contract: 'registry' | 'nameWrapper'
|
|
12
|
+
resolver?: string
|
|
13
|
+
},
|
|
10
14
|
) {
|
|
11
|
-
const address = await provider
|
|
12
|
-
?.getSigner(options?.addressOrIndex)
|
|
13
|
-
.getAddress()
|
|
14
|
-
|
|
15
|
-
if (!address) {
|
|
16
|
-
throw new Error('No signer found')
|
|
17
|
-
}
|
|
18
|
-
|
|
19
15
|
if (!resolver) {
|
|
20
16
|
resolver = (await contracts?.getPublicResolver()!).address
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
switch (contract) {
|
|
24
20
|
case 'registry': {
|
|
25
|
-
const registry = (await contracts?.getRegistry())!.connect(
|
|
26
|
-
|
|
27
|
-
)
|
|
28
|
-
return registry.setResolver(ethers.utils.namehash(name), resolver)
|
|
21
|
+
const registry = (await contracts?.getRegistry())!.connect(signer)
|
|
22
|
+
return registry.populateTransaction.setResolver(namehash(name), resolver)
|
|
29
23
|
}
|
|
30
24
|
case 'nameWrapper': {
|
|
31
|
-
const nameWrapper = (await contracts?.getNameWrapper())!.connect(
|
|
32
|
-
|
|
25
|
+
const nameWrapper = (await contracts?.getNameWrapper())!.connect(signer)
|
|
26
|
+
return nameWrapper.populateTransaction.setResolver(
|
|
27
|
+
namehash(name),
|
|
28
|
+
resolver,
|
|
33
29
|
)
|
|
34
|
-
return nameWrapper.setResolver(ethers.utils.namehash(name), resolver)
|
|
35
30
|
}
|
|
36
31
|
default: {
|
|
37
32
|
throw new Error(`Unknown contract: ${contract}`)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ethers, utils } from 'ethers'
|
|
2
2
|
import { ENS } from '..'
|
|
3
|
-
import setup from '
|
|
3
|
+
import setup from '../tests/setup'
|
|
4
|
+
import { namehash } from '../utils/normalise'
|
|
4
5
|
|
|
5
6
|
let ENSInstance: ENS
|
|
6
7
|
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
@@ -21,60 +22,44 @@ describe('transferName', () => {
|
|
|
21
22
|
await revert()
|
|
22
23
|
})
|
|
23
24
|
it('should allow a transfer on the registrar', async () => {
|
|
24
|
-
const tx = await ENSInstance.transferName(
|
|
25
|
-
'
|
|
26
|
-
accounts[
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
)
|
|
25
|
+
const tx = await ENSInstance.transferName('test123.eth', {
|
|
26
|
+
contract: 'baseRegistrar',
|
|
27
|
+
newOwner: accounts[2],
|
|
28
|
+
addressOrIndex: 1,
|
|
29
|
+
})
|
|
30
30
|
expect(tx).toBeTruthy()
|
|
31
31
|
await tx.wait()
|
|
32
32
|
|
|
33
33
|
const baseRegistrar = await ENSInstance.contracts!.getBaseRegistrar()!
|
|
34
34
|
const result = await baseRegistrar.ownerOf(
|
|
35
|
-
utils.solidityKeccak256(['string'], ['
|
|
35
|
+
utils.solidityKeccak256(['string'], ['test123']),
|
|
36
36
|
)
|
|
37
|
-
expect(result).toBe(accounts[
|
|
37
|
+
expect(result).toBe(accounts[2])
|
|
38
38
|
})
|
|
39
39
|
it('should allow a transfer on the namewrapper', async () => {
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const tx = await ENSInstance.transferName(
|
|
46
|
-
'parthtejpal.eth',
|
|
47
|
-
accounts[1],
|
|
48
|
-
'nameWrapper',
|
|
49
|
-
{ addressOrIndex: 0 },
|
|
50
|
-
)
|
|
40
|
+
const tx = await ENSInstance.transferName('wrapped.eth', {
|
|
41
|
+
newOwner: accounts[2],
|
|
42
|
+
contract: 'nameWrapper',
|
|
43
|
+
addressOrIndex: 1,
|
|
44
|
+
})
|
|
51
45
|
expect(tx).toBeTruthy()
|
|
52
46
|
await tx.wait()
|
|
53
47
|
|
|
54
48
|
const nameWrapper = await ENSInstance.contracts!.getNameWrapper()!
|
|
55
|
-
const result = await nameWrapper.ownerOf(
|
|
56
|
-
expect(result).toBe(accounts[
|
|
49
|
+
const result = await nameWrapper.ownerOf(namehash('wrapped.eth'))
|
|
50
|
+
expect(result).toBe(accounts[2])
|
|
57
51
|
})
|
|
58
52
|
it('should allow a transfer on the registry', async () => {
|
|
59
|
-
const
|
|
60
|
-
|
|
53
|
+
const tx = await ENSInstance.transferName('test.with-subnames.eth', {
|
|
54
|
+
newOwner: accounts[1],
|
|
61
55
|
contract: 'registry',
|
|
62
|
-
|
|
63
|
-
options: { addressOrIndex: accounts[0] },
|
|
56
|
+
addressOrIndex: accounts[2],
|
|
64
57
|
})
|
|
65
|
-
await createSubnameTx.wait()
|
|
66
|
-
|
|
67
|
-
const tx = await ENSInstance.transferName(
|
|
68
|
-
'test.parthtejpal.eth',
|
|
69
|
-
accounts[1],
|
|
70
|
-
'registry',
|
|
71
|
-
{ addressOrIndex: accounts[0] },
|
|
72
|
-
)
|
|
73
58
|
expect(tx).toBeTruthy()
|
|
74
59
|
await tx.wait()
|
|
75
60
|
|
|
76
61
|
const registry = await ENSInstance.contracts!.getRegistry()!
|
|
77
|
-
const result = await registry.owner(
|
|
62
|
+
const result = await registry.owner(namehash('test.with-subnames.eth'))
|
|
78
63
|
expect(result).toBe(accounts[1])
|
|
79
64
|
})
|
|
80
65
|
})
|
|
@@ -1,50 +1,47 @@
|
|
|
1
1
|
import { ethers } from 'ethers'
|
|
2
2
|
import { ENSArgs } from '..'
|
|
3
|
+
import { namehash } from '../utils/normalise'
|
|
3
4
|
|
|
4
5
|
export default async function (
|
|
5
|
-
{ contracts,
|
|
6
|
+
{ contracts, signer }: ENSArgs<'contracts' | 'signer'>,
|
|
6
7
|
name: string,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
{
|
|
9
|
+
newOwner,
|
|
10
|
+
contract,
|
|
11
|
+
}: {
|
|
12
|
+
newOwner: string
|
|
13
|
+
contract: 'registry' | 'nameWrapper' | 'baseRegistrar'
|
|
14
|
+
},
|
|
10
15
|
) {
|
|
11
|
-
const address = await
|
|
12
|
-
?.getSigner(options?.addressOrIndex)
|
|
13
|
-
.getAddress()
|
|
14
|
-
|
|
15
|
-
if (!address) {
|
|
16
|
-
throw new Error('No signer found')
|
|
17
|
-
}
|
|
16
|
+
const address = await signer.getAddress()
|
|
18
17
|
|
|
19
18
|
switch (contract) {
|
|
20
19
|
case 'registry': {
|
|
21
|
-
const registry = (await contracts?.getRegistry())!.connect(
|
|
22
|
-
|
|
23
|
-
)
|
|
24
|
-
return registry.setOwner(ethers.utils.namehash(name), newOwner)
|
|
20
|
+
const registry = (await contracts?.getRegistry())!.connect(signer)
|
|
21
|
+
return registry.populateTransaction.setOwner(namehash(name), newOwner)
|
|
25
22
|
}
|
|
26
23
|
case 'baseRegistrar': {
|
|
27
24
|
const baseRegistrar = (await contracts?.getBaseRegistrar())!.connect(
|
|
28
|
-
|
|
25
|
+
signer,
|
|
29
26
|
)
|
|
30
27
|
const labels = name.split('.')
|
|
31
28
|
if (labels.length > 2 || labels[labels.length - 1] !== 'eth') {
|
|
32
29
|
throw new Error('Invalid name for baseRegistrar')
|
|
33
30
|
}
|
|
34
|
-
return baseRegistrar[
|
|
31
|
+
return baseRegistrar.populateTransaction[
|
|
32
|
+
'safeTransferFrom(address,address,uint256)'
|
|
33
|
+
](
|
|
35
34
|
address,
|
|
36
35
|
newOwner,
|
|
37
36
|
ethers.utils.solidityKeccak256(['string'], [labels[0]]),
|
|
38
37
|
)
|
|
39
38
|
}
|
|
40
39
|
case 'nameWrapper': {
|
|
41
|
-
const nameWrapper = (await contracts?.getNameWrapper())!.connect(
|
|
42
|
-
|
|
43
|
-
)
|
|
44
|
-
return nameWrapper.safeTransferFrom(
|
|
40
|
+
const nameWrapper = (await contracts?.getNameWrapper())!.connect(signer)
|
|
41
|
+
return nameWrapper.populateTransaction.safeTransferFrom(
|
|
45
42
|
address,
|
|
46
43
|
newOwner,
|
|
47
|
-
|
|
44
|
+
namehash(name),
|
|
48
45
|
1,
|
|
49
46
|
'0x',
|
|
50
47
|
)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ethers
|
|
1
|
+
import { ethers } from 'ethers'
|
|
2
2
|
import { ENS } from '..'
|
|
3
|
-
import setup from '
|
|
3
|
+
import setup from '../tests/setup'
|
|
4
|
+
import { namehash } from '../utils/normalise'
|
|
4
5
|
|
|
5
6
|
let ENSInstance: ENS
|
|
6
7
|
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
@@ -21,53 +22,33 @@ describe('transferSubname', () => {
|
|
|
21
22
|
await revert()
|
|
22
23
|
})
|
|
23
24
|
it('should allow transferring a subname on the registry', async () => {
|
|
24
|
-
const
|
|
25
|
+
const tx = await ENSInstance.transferSubname('test.with-subnames.eth', {
|
|
25
26
|
contract: 'registry',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
options: { addressOrIndex: 0 },
|
|
27
|
+
owner: accounts[1],
|
|
28
|
+
addressOrIndex: 1,
|
|
29
29
|
})
|
|
30
|
-
await createSubnameTx.wait()
|
|
31
|
-
|
|
32
|
-
const tx = await ENSInstance.transferSubname(
|
|
33
|
-
'test.parthtejpal.eth',
|
|
34
|
-
'registry',
|
|
35
|
-
accounts[1],
|
|
36
|
-
{ addressOrIndex: 0 },
|
|
37
|
-
)
|
|
38
30
|
expect(tx).toBeTruthy()
|
|
39
31
|
await tx.wait()
|
|
40
32
|
|
|
41
33
|
const registry = await ENSInstance.contracts!.getRegistry()!
|
|
42
|
-
const result = await registry.owner(
|
|
34
|
+
const result = await registry.owner(namehash('test.with-subnames.eth'))
|
|
43
35
|
expect(result).toBe(accounts[1])
|
|
44
36
|
})
|
|
45
37
|
it('should allow transferring a subname on the nameWrapper', async () => {
|
|
46
|
-
const wrapNameTx = await ENSInstance.wrapName(
|
|
47
|
-
'parthtejpal.eth',
|
|
48
|
-
accounts[0],
|
|
49
|
-
)
|
|
50
|
-
await wrapNameTx.wait()
|
|
51
|
-
const createSubnameTx = await ENSInstance.createSubname({
|
|
52
|
-
contract: 'nameWrapper',
|
|
53
|
-
name: 'test.parthtejpal.eth',
|
|
54
|
-
owner: accounts[0],
|
|
55
|
-
options: { addressOrIndex: 0 },
|
|
56
|
-
})
|
|
57
|
-
await createSubnameTx.wait()
|
|
58
|
-
|
|
59
38
|
const tx = await ENSInstance.transferSubname(
|
|
60
|
-
'test.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
39
|
+
'test.wrapped-with-subnames.eth',
|
|
40
|
+
{
|
|
41
|
+
contract: 'nameWrapper',
|
|
42
|
+
owner: accounts[1],
|
|
43
|
+
addressOrIndex: 1,
|
|
44
|
+
},
|
|
64
45
|
)
|
|
65
46
|
expect(tx).toBeTruthy()
|
|
66
47
|
await tx.wait()
|
|
67
48
|
|
|
68
49
|
const nameWrapper = await ENSInstance.contracts!.getNameWrapper()!
|
|
69
50
|
const result = await nameWrapper.ownerOf(
|
|
70
|
-
|
|
51
|
+
namehash('test.wrapped-with-subnames.eth'),
|
|
71
52
|
)
|
|
72
53
|
expect(result).toBe(accounts[1])
|
|
73
54
|
})
|
|
@@ -1,34 +1,60 @@
|
|
|
1
1
|
import { ethers } from 'ethers'
|
|
2
2
|
import { ENSArgs } from '..'
|
|
3
|
+
import { namehash } from '../utils/normalise'
|
|
4
|
+
import { Expiry, makeExpiry } from '../utils/wrapperExpiry'
|
|
5
|
+
|
|
6
|
+
type BaseArgs = {
|
|
7
|
+
owner: string
|
|
8
|
+
resolverAddress?: string
|
|
9
|
+
contract: 'registry' | 'nameWrapper'
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type NameWrapperArgs = {
|
|
13
|
+
contract: 'nameWrapper'
|
|
14
|
+
expiry?: Expiry
|
|
15
|
+
} & BaseArgs
|
|
16
|
+
|
|
17
|
+
type Args = BaseArgs | NameWrapperArgs
|
|
3
18
|
|
|
4
19
|
export default async function (
|
|
5
|
-
{
|
|
20
|
+
{
|
|
21
|
+
contracts,
|
|
22
|
+
signer,
|
|
23
|
+
getExpiry,
|
|
24
|
+
}: ENSArgs<'contracts' | 'signer' | 'getExpiry'>,
|
|
6
25
|
name: string,
|
|
7
|
-
contract
|
|
8
|
-
address: string,
|
|
9
|
-
options?: { addressOrIndex?: string | number },
|
|
26
|
+
{ contract, owner, resolverAddress, ...wrapperArgs }: Args,
|
|
10
27
|
) {
|
|
11
|
-
const signer = provider?.getSigner(options?.addressOrIndex)
|
|
12
|
-
|
|
13
|
-
if (!signer) {
|
|
14
|
-
throw new Error('No signer found')
|
|
15
|
-
}
|
|
16
|
-
|
|
17
28
|
const labels = name.split('.')
|
|
18
29
|
const label = labels.shift() as string
|
|
19
30
|
const labelhash = ethers.utils.solidityKeccak256(['string'], [label])
|
|
20
|
-
const parentNodehash =
|
|
31
|
+
const parentNodehash = namehash(labels.join('.'))
|
|
21
32
|
|
|
22
33
|
switch (contract) {
|
|
23
34
|
case 'registry': {
|
|
24
35
|
const registry = (await contracts?.getRegistry()!).connect(signer)
|
|
25
36
|
|
|
26
|
-
return registry.setSubnodeOwner(
|
|
37
|
+
return registry.populateTransaction.setSubnodeOwner(
|
|
38
|
+
parentNodehash,
|
|
39
|
+
labelhash,
|
|
40
|
+
owner,
|
|
41
|
+
)
|
|
27
42
|
}
|
|
28
43
|
case 'nameWrapper': {
|
|
29
44
|
const nameWrapper = (await contracts?.getNameWrapper()!).connect(signer)
|
|
45
|
+
const expiry = await makeExpiry(
|
|
46
|
+
{ getExpiry },
|
|
47
|
+
labels.join('.'),
|
|
48
|
+
'expiry' in wrapperArgs ? wrapperArgs.expiry : undefined,
|
|
49
|
+
)
|
|
30
50
|
|
|
31
|
-
return nameWrapper.setSubnodeOwner(
|
|
51
|
+
return nameWrapper.populateTransaction.setSubnodeOwner(
|
|
52
|
+
parentNodehash,
|
|
53
|
+
label,
|
|
54
|
+
owner,
|
|
55
|
+
'0',
|
|
56
|
+
expiry,
|
|
57
|
+
)
|
|
32
58
|
}
|
|
33
59
|
default: {
|
|
34
60
|
throw new Error(`Unknown contract: ${contract}`)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ethers, utils } from 'ethers'
|
|
2
2
|
import { ENS } from '..'
|
|
3
|
-
import setup from '
|
|
3
|
+
import setup from '../tests/setup'
|
|
4
|
+
import { namehash } from '../utils/normalise'
|
|
4
5
|
|
|
5
6
|
let ENSInstance: ENS
|
|
6
7
|
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
@@ -21,47 +22,32 @@ describe('unwrapName', () => {
|
|
|
21
22
|
await revert()
|
|
22
23
|
})
|
|
23
24
|
it('should return a .eth unwrap name transaction and succeed', async () => {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
accounts[
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const tx = await ENSInstance.unwrapName(
|
|
31
|
-
'parthtejpal.eth',
|
|
32
|
-
accounts[0],
|
|
33
|
-
accounts[0],
|
|
34
|
-
)
|
|
25
|
+
const tx = await ENSInstance.unwrapName('wrapped.eth', {
|
|
26
|
+
newController: accounts[1],
|
|
27
|
+
newRegistrant: accounts[1],
|
|
28
|
+
addressOrIndex: 1,
|
|
29
|
+
})
|
|
35
30
|
expect(tx).toBeTruthy()
|
|
36
31
|
await tx.wait()
|
|
37
32
|
|
|
38
33
|
const baseRegistrar = await ENSInstance.contracts!.getBaseRegistrar()!
|
|
39
34
|
const result = await baseRegistrar.ownerOf(
|
|
40
|
-
utils.solidityKeccak256(['string'], ['
|
|
35
|
+
utils.solidityKeccak256(['string'], ['wrapped']),
|
|
41
36
|
)
|
|
42
|
-
expect(result).toBe(accounts[
|
|
37
|
+
expect(result).toBe(accounts[1])
|
|
43
38
|
})
|
|
44
39
|
it('should return a regular unwrap name transaction and succeed', async () => {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
)
|
|
49
|
-
await wrapNameTx.wait()
|
|
50
|
-
const createSubnameTx = await ENSInstance.createSubname({
|
|
51
|
-
contract: 'nameWrapper',
|
|
52
|
-
name: 'test.parthtejpal.eth',
|
|
53
|
-
owner: accounts[0],
|
|
54
|
-
shouldWrap: true,
|
|
55
|
-
options: { addressOrIndex: 0 },
|
|
40
|
+
const tx = await ENSInstance.unwrapName('test.wrapped-with-subnames.eth', {
|
|
41
|
+
newController: accounts[1],
|
|
42
|
+
addressOrIndex: 2,
|
|
56
43
|
})
|
|
57
|
-
await createSubnameTx.wait()
|
|
58
|
-
|
|
59
|
-
const tx = await ENSInstance.unwrapName('test.parthtejpal.eth', accounts[0])
|
|
60
44
|
expect(tx).toBeTruthy()
|
|
61
45
|
await tx.wait()
|
|
62
46
|
|
|
63
47
|
const registry = await ENSInstance.contracts!.getRegistry()!
|
|
64
|
-
const result = await registry.owner(
|
|
65
|
-
|
|
48
|
+
const result = await registry.owner(
|
|
49
|
+
namehash('test.wrapped-with-subnames.eth'),
|
|
50
|
+
)
|
|
51
|
+
expect(result).toBe(accounts[1])
|
|
66
52
|
})
|
|
67
53
|
})
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { utils } from 'ethers'
|
|
2
2
|
import { ENSArgs } from '..'
|
|
3
|
+
import { namehash } from '../utils/normalise'
|
|
3
4
|
|
|
4
5
|
export default async function (
|
|
5
|
-
{ contracts,
|
|
6
|
+
{ contracts, signer }: ENSArgs<'contracts' | 'signer'>,
|
|
6
7
|
name: string,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
{
|
|
9
|
+
newController,
|
|
10
|
+
newRegistrant,
|
|
11
|
+
}: {
|
|
12
|
+
newController: string
|
|
13
|
+
newRegistrant?: string
|
|
14
|
+
},
|
|
10
15
|
) {
|
|
11
|
-
const signer = provider?.getSigner(options?.addressOrIndex)
|
|
12
|
-
|
|
13
|
-
const address = await signer?.getAddress()
|
|
14
|
-
|
|
15
|
-
if (!signer || !address) {
|
|
16
|
-
throw new Error('No signer found')
|
|
17
|
-
}
|
|
18
|
-
|
|
19
16
|
const labels = name.split('.')
|
|
20
17
|
const labelhash = utils.solidityKeccak256(['string'], [labels[0]])
|
|
21
|
-
const parentNodehash =
|
|
18
|
+
const parentNodehash = namehash(labels.slice(1).join('.'))
|
|
22
19
|
|
|
23
20
|
const nameWrapper = (await contracts?.getNameWrapper()!).connect(signer)
|
|
24
21
|
|
|
@@ -27,12 +24,20 @@ export default async function (
|
|
|
27
24
|
throw new Error('newRegistrant must be specified for .eth names')
|
|
28
25
|
}
|
|
29
26
|
|
|
30
|
-
return nameWrapper.unwrapETH2LD(
|
|
27
|
+
return nameWrapper.populateTransaction.unwrapETH2LD(
|
|
28
|
+
labelhash,
|
|
29
|
+
newRegistrant,
|
|
30
|
+
newController,
|
|
31
|
+
)
|
|
31
32
|
} else {
|
|
32
33
|
if (newRegistrant) {
|
|
33
34
|
throw new Error('newRegistrant can only be specified for .eth names')
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
return nameWrapper.unwrap(
|
|
37
|
+
return nameWrapper.populateTransaction.unwrap(
|
|
38
|
+
parentNodehash,
|
|
39
|
+
labelhash,
|
|
40
|
+
newController,
|
|
41
|
+
)
|
|
37
42
|
}
|
|
38
43
|
}
|