@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,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getHistory = void 0;
|
|
4
4
|
const address_encoder_1 = require("@ensdomains/address-encoder");
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
6
|
const contentHash_1 = require("../utils/contentHash");
|
|
7
|
-
const makeHashIndexes_1 = require("../utils/makeHashIndexes");
|
|
8
7
|
const eventFormat = {
|
|
9
8
|
Domain: {
|
|
10
9
|
NewOwner: (args) => ({ owner: args.owner.id }),
|
|
@@ -46,7 +45,7 @@ const eventFormat = {
|
|
|
46
45
|
NameChanged: (args) => ({ name: args.name }),
|
|
47
46
|
AbiChanged: (args) => ({ contentType: args.contentType }),
|
|
48
47
|
PubkeyChanged: (args) => ({ x: args.x, y: args.y }),
|
|
49
|
-
TextChanged: (args) => ({ key: args.key }),
|
|
48
|
+
TextChanged: (args) => ({ key: args.key, value: args.value }),
|
|
50
49
|
ContenthashChanged: (args) => ({ hash: (0, contentHash_1.decodeContenthash)(args.hash) }),
|
|
51
50
|
InterfaceChanged: (args) => ({
|
|
52
51
|
interfaceId: args.interfaceId,
|
|
@@ -66,31 +65,6 @@ const mapEvents = (eventArray, type) => eventArray.map((event) => ({
|
|
|
66
65
|
id: event.id,
|
|
67
66
|
data: eventFormat[type][event.__typename](event),
|
|
68
67
|
}));
|
|
69
|
-
const mapResultDetailDecode = (publicResolver) => (result) => {
|
|
70
|
-
const hashIndexes = (0, makeHashIndexes_1.makeOtherIndexes)(result.input, '10f13a8c');
|
|
71
|
-
const abiLengths = hashIndexes.map((x) => ({
|
|
72
|
-
index: x,
|
|
73
|
-
length: x === 0
|
|
74
|
-
? ethers_1.ethers.utils.hexDataLength(result.input)
|
|
75
|
-
: parseInt(ethers_1.ethers.utils.hexDataSlice(result.input, x - 32, x), 16),
|
|
76
|
-
}));
|
|
77
|
-
const ABIs = abiLengths.map(({ index, length }) => ethers_1.ethers.utils.hexDataSlice(result.input, index, index + length));
|
|
78
|
-
return ABIs.map((abi) => {
|
|
79
|
-
try {
|
|
80
|
-
return publicResolver.interface.decodeFunctionData('setText(bytes32,string,string)', abi);
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
const expandDecode = (prev, curr) => {
|
|
88
|
-
if (!curr)
|
|
89
|
-
return [...prev, { value: null }];
|
|
90
|
-
if (!curr.length)
|
|
91
|
-
return [...prev, curr];
|
|
92
|
-
return [...prev, ...curr];
|
|
93
|
-
};
|
|
94
68
|
async function getHistory({ gqlInstance }, name) {
|
|
95
69
|
const client = gqlInstance.client;
|
|
96
70
|
const query = gqlInstance.gql `
|
|
@@ -171,6 +145,7 @@ async function getHistory({ gqlInstance }, name) {
|
|
|
171
145
|
}
|
|
172
146
|
...on TextChanged {
|
|
173
147
|
key
|
|
148
|
+
value
|
|
174
149
|
}
|
|
175
150
|
...on ContenthashChanged {
|
|
176
151
|
hash
|
|
@@ -206,74 +181,3 @@ async function getHistory({ gqlInstance }, name) {
|
|
|
206
181
|
};
|
|
207
182
|
}
|
|
208
183
|
exports.getHistory = getHistory;
|
|
209
|
-
async function getHistoryWithDetail({ contracts, gqlInstance, provider, }, name) {
|
|
210
|
-
const historyRes = await getHistory({ gqlInstance }, name);
|
|
211
|
-
if (!historyRes)
|
|
212
|
-
return;
|
|
213
|
-
const { domain, registration, resolver: resolverHistory } = historyRes;
|
|
214
|
-
const textEvents = resolverHistory.filter((event) => event.type === 'TextChanged');
|
|
215
|
-
const transactions = textEvents.reduce((prev, curr) => {
|
|
216
|
-
if (prev.includes(curr.transactionHash)) {
|
|
217
|
-
return prev;
|
|
218
|
-
}
|
|
219
|
-
return [...prev, curr.transactionHash];
|
|
220
|
-
}, []);
|
|
221
|
-
const publicResolver = await contracts?.getPublicResolver();
|
|
222
|
-
const fetchResult = (await ethers_1.ethers.utils.fetchJson(provider.connection, JSON.stringify(transactions.map((tx, i) => ({
|
|
223
|
-
jsonrpc: '2.0',
|
|
224
|
-
id: i,
|
|
225
|
-
method: 'eth_getTransactionByHash',
|
|
226
|
-
params: [tx],
|
|
227
|
-
})))))
|
|
228
|
-
.map((result) => result.result)
|
|
229
|
-
.map(mapResultDetailDecode(publicResolver))
|
|
230
|
-
.reduce(expandDecode, []);
|
|
231
|
-
const detailedResolverHistory = resolverHistory.map((event) => {
|
|
232
|
-
if (event.type !== 'TextChanged')
|
|
233
|
-
return event;
|
|
234
|
-
const { id } = event;
|
|
235
|
-
const matchedTextInx = textEvents.findIndex((x) => x.id === id);
|
|
236
|
-
return {
|
|
237
|
-
...event,
|
|
238
|
-
data: {
|
|
239
|
-
...event.data,
|
|
240
|
-
value: fetchResult[matchedTextInx] && fetchResult[matchedTextInx].value,
|
|
241
|
-
},
|
|
242
|
-
};
|
|
243
|
-
});
|
|
244
|
-
return {
|
|
245
|
-
domain,
|
|
246
|
-
registration,
|
|
247
|
-
resolver: detailedResolverHistory,
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
exports.getHistoryWithDetail = getHistoryWithDetail;
|
|
251
|
-
async function getHistoryDetailForTransactionHash({ contracts, provider }, hash, indexInTransaction) {
|
|
252
|
-
const publicResolver = await contracts?.getPublicResolver();
|
|
253
|
-
const transaction = await provider.getTransaction(hash);
|
|
254
|
-
if (!transaction)
|
|
255
|
-
return;
|
|
256
|
-
const result = mapResultDetailDecode(publicResolver)({
|
|
257
|
-
input: transaction.data,
|
|
258
|
-
});
|
|
259
|
-
if (!result || !result.length)
|
|
260
|
-
return;
|
|
261
|
-
if (typeof indexInTransaction === 'number') {
|
|
262
|
-
if (indexInTransaction + 1 > result.length)
|
|
263
|
-
return;
|
|
264
|
-
const resultItem = result[indexInTransaction];
|
|
265
|
-
if (!resultItem ||
|
|
266
|
-
!resultItem.key ||
|
|
267
|
-
(!resultItem.value && resultItem.value !== ''))
|
|
268
|
-
return;
|
|
269
|
-
return { key: resultItem.key, value: resultItem.value };
|
|
270
|
-
}
|
|
271
|
-
return result.map((item) => {
|
|
272
|
-
if (!item.key)
|
|
273
|
-
return;
|
|
274
|
-
if (!item.value && item.value !== '')
|
|
275
|
-
return { key: item.key, value: null };
|
|
276
|
-
return { key: item.key, value: item.value };
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
exports.getHistoryDetailForTransactionHash = getHistoryDetailForTransactionHash;
|
|
@@ -10,8 +10,8 @@ declare const _default: {
|
|
|
10
10
|
reverseResolverAddress: any;
|
|
11
11
|
resolverAddress: any;
|
|
12
12
|
} | {
|
|
13
|
-
name:
|
|
14
|
-
match
|
|
13
|
+
name: undefined;
|
|
14
|
+
match?: undefined;
|
|
15
15
|
reverseResolverAddress?: undefined;
|
|
16
16
|
resolverAddress?: undefined;
|
|
17
17
|
} | undefined>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const ethers_1 = require("ethers");
|
|
4
4
|
const labels_1 = require("../utils/labels");
|
|
5
|
+
const normalise_1 = require("../utils/normalise");
|
|
5
6
|
const singleContractOwnerRaw = async ({ contracts }, contract, namehash, labels) => {
|
|
6
7
|
switch (contract) {
|
|
7
8
|
case 'nameWrapper': {
|
|
@@ -30,10 +31,10 @@ const singleContractOwnerRaw = async ({ contracts }, contract, namehash, labels)
|
|
|
30
31
|
}
|
|
31
32
|
};
|
|
32
33
|
const raw = async ({ contracts, multicallWrapper }, name, contract) => {
|
|
33
|
-
const namehash =
|
|
34
|
+
const namehash = (0, normalise_1.namehash)(name);
|
|
34
35
|
const labels = name.split('.');
|
|
35
|
-
if (contract) {
|
|
36
|
-
return await singleContractOwnerRaw({ contracts }, contract, namehash, labels);
|
|
36
|
+
if (contract || labels.length === 1) {
|
|
37
|
+
return await singleContractOwnerRaw({ contracts }, contract || 'registry', namehash, labels);
|
|
37
38
|
}
|
|
38
39
|
const registryData = await singleContractOwnerRaw({ contracts }, 'registry', namehash, labels);
|
|
39
40
|
const nameWrapperData = await singleContractOwnerRaw({ contracts }, 'nameWrapper', namehash, labels);
|
|
@@ -48,10 +49,11 @@ const singleContractOwnerDecode = (data) => ethers_1.ethers.utils.defaultAbiCode
|
|
|
48
49
|
const decode = async ({ contracts, multicallWrapper }, data, name, contract) => {
|
|
49
50
|
if (data === null)
|
|
50
51
|
return;
|
|
51
|
-
|
|
52
|
+
const labels = name.split('.');
|
|
53
|
+
if (contract || labels.length === 1) {
|
|
52
54
|
const singleOwner = singleContractOwnerDecode(data);
|
|
53
55
|
let obj = {
|
|
54
|
-
ownershipLevel: contract,
|
|
56
|
+
ownershipLevel: contract || 'registry',
|
|
55
57
|
};
|
|
56
58
|
if (contract === 'registrar') {
|
|
57
59
|
return {
|
|
@@ -76,7 +78,6 @@ const decode = async ({ contracts, multicallWrapper }, data, name, contract) =>
|
|
|
76
78
|
const registryOwner = decodedData[0][0];
|
|
77
79
|
const nameWrapperOwner = decodedData[1][0];
|
|
78
80
|
const registrarOwner = decodedData[2]?.[0];
|
|
79
|
-
const labels = name.split('.');
|
|
80
81
|
// check for only .eth names
|
|
81
82
|
if (labels[labels.length - 1] === 'eth') {
|
|
82
83
|
// if the owner on the registrar is the namewrapper, then the namewrapper owner is the owner
|
|
@@ -26,5 +26,8 @@ declare type ProfileOptions = {
|
|
|
26
26
|
texts?: boolean | string[];
|
|
27
27
|
coinTypes?: boolean | string[];
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
declare type InputProfileOptions = ProfileOptions & {
|
|
30
|
+
resolverAddress?: string;
|
|
31
|
+
};
|
|
32
|
+
export default function ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }: ENSArgs<'contracts' | 'gqlInstance' | 'getName' | '_getText' | '_getAddr' | '_getContentHash' | 'resolverMulticallWrapper' | 'multicallWrapper'>, nameOrAddress: string, options?: InputProfileOptions): Promise<ResolvedProfile | undefined>;
|
|
30
33
|
export {};
|
|
@@ -4,6 +4,7 @@ const address_encoder_1 = require("@ensdomains/address-encoder");
|
|
|
4
4
|
const ethers_1 = require("ethers");
|
|
5
5
|
const contentHash_1 = require("../utils/contentHash");
|
|
6
6
|
const hexEncodedName_1 = require("../utils/hexEncodedName");
|
|
7
|
+
const normalise_1 = require("../utils/normalise");
|
|
7
8
|
const validation_1 = require("../utils/validation");
|
|
8
9
|
const makeMulticallData = async ({ _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, name, options) => {
|
|
9
10
|
let calls = [];
|
|
@@ -42,23 +43,51 @@ const makeMulticallData = async ({ _getAddr, _getContentHash, _getText, resolver
|
|
|
42
43
|
const prRawData = await resolverMulticallWrapper.raw(calls.map((x) => x.data));
|
|
43
44
|
return { data: prRawData.data, calls };
|
|
44
45
|
};
|
|
45
|
-
const
|
|
46
|
-
const
|
|
46
|
+
const fetchWithoutResolverMulticall = async ({ multicallWrapper }, calls, resolverAddress) => {
|
|
47
|
+
const callsWithResolver = calls.map((call) => ({
|
|
48
|
+
to: resolverAddress,
|
|
49
|
+
data: call.data.data,
|
|
50
|
+
}));
|
|
51
|
+
return (await multicallWrapper(callsWithResolver)).map((x) => x[1]);
|
|
52
|
+
};
|
|
53
|
+
const getDataForName = async ({ contracts, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, name, options, fallbackResolver, specificResolver) => {
|
|
47
54
|
const universalResolver = await contracts?.getUniversalResolver();
|
|
48
55
|
const { data, calls } = await makeMulticallData({ _getAddr, _getContentHash, _getText, resolverMulticallWrapper }, name, options);
|
|
49
|
-
let
|
|
56
|
+
let resolvedData;
|
|
57
|
+
let useFallbackResolver = false;
|
|
50
58
|
try {
|
|
51
|
-
|
|
59
|
+
if (specificResolver) {
|
|
60
|
+
const publicResolver = await contracts?.getPublicResolver(undefined, specificResolver);
|
|
61
|
+
resolvedData = await publicResolver?.callStatic.multicall(calls.map((x) => x.data));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
resolvedData = await universalResolver?.resolve((0, hexEncodedName_1.hexEncodeName)(name), data);
|
|
65
|
+
}
|
|
52
66
|
}
|
|
53
67
|
catch {
|
|
54
|
-
|
|
68
|
+
useFallbackResolver = true;
|
|
69
|
+
}
|
|
70
|
+
let resolverAddress;
|
|
71
|
+
let recordData;
|
|
72
|
+
if (useFallbackResolver) {
|
|
73
|
+
resolverAddress = specificResolver || fallbackResolver;
|
|
74
|
+
recordData = await fetchWithoutResolverMulticall({ multicallWrapper }, calls, resolverAddress);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
resolverAddress = specificResolver || resolvedData['1'];
|
|
78
|
+
if (specificResolver) {
|
|
79
|
+
recordData = resolvedData;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
;
|
|
83
|
+
[recordData] = await resolverMulticallWrapper.decode(resolvedData['0']);
|
|
84
|
+
}
|
|
55
85
|
}
|
|
56
|
-
const [recordData] = await resolverMulticallWrapper.decode(resolver['0']);
|
|
57
86
|
const matchAddress = recordData[calls.findIndex((x) => x.key === '60')];
|
|
58
87
|
return {
|
|
59
88
|
address: matchAddress && (await _getAddr.decode(matchAddress)),
|
|
60
89
|
records: await formatRecords({ _getAddr, _getContentHash, _getText }, recordData, calls, options),
|
|
61
|
-
resolverAddress
|
|
90
|
+
resolverAddress,
|
|
62
91
|
};
|
|
63
92
|
};
|
|
64
93
|
const formatRecords = async ({ _getText, _getAddr, _getContentHash, }, data, calls, options) => {
|
|
@@ -68,7 +97,7 @@ const formatRecords = async ({ _getText, _getAddr, _getContentHash, }, data, cal
|
|
|
68
97
|
key: calls[i].key,
|
|
69
98
|
type: calls[i].type,
|
|
70
99
|
};
|
|
71
|
-
if (itemRet.type === '
|
|
100
|
+
if (itemRet.type === 'contenthash') {
|
|
72
101
|
decodedFromAbi = ethers_1.ethers.utils.defaultAbiCoder.decode(['bytes'], item)[0];
|
|
73
102
|
if (ethers_1.ethers.utils.hexStripZeros(decodedFromAbi) === '0x') {
|
|
74
103
|
return;
|
|
@@ -144,10 +173,10 @@ const formatRecords = async ({ _getText, _getAddr, _getContentHash, }, data, cal
|
|
|
144
173
|
}
|
|
145
174
|
return returnedResponse;
|
|
146
175
|
};
|
|
147
|
-
const graphFetch = async ({ gqlInstance }, name, wantedRecords) => {
|
|
176
|
+
const graphFetch = async ({ gqlInstance }, name, wantedRecords, resolverAddress) => {
|
|
148
177
|
const query = gqlInstance.gql `
|
|
149
|
-
query getRecords($
|
|
150
|
-
|
|
178
|
+
query getRecords($id: String!) {
|
|
179
|
+
domain(id: $id) {
|
|
151
180
|
isMigrated
|
|
152
181
|
createdAt
|
|
153
182
|
resolver {
|
|
@@ -157,18 +186,52 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords) => {
|
|
|
157
186
|
addr {
|
|
158
187
|
id
|
|
159
188
|
}
|
|
189
|
+
address
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
`;
|
|
194
|
+
const customResolverQuery = gqlInstance.gql `
|
|
195
|
+
query getRecordsWithCustomResolver($id: String!, $resolverId: String!) {
|
|
196
|
+
domain(id: $id) {
|
|
197
|
+
isMigrated
|
|
198
|
+
createdAt
|
|
199
|
+
}
|
|
200
|
+
resolver(id: $resolverId) {
|
|
201
|
+
texts
|
|
202
|
+
coinTypes
|
|
203
|
+
contentHash
|
|
204
|
+
addr {
|
|
205
|
+
id
|
|
160
206
|
}
|
|
161
207
|
}
|
|
162
208
|
}
|
|
163
209
|
`;
|
|
164
210
|
const client = gqlInstance.client;
|
|
165
|
-
const
|
|
166
|
-
|
|
211
|
+
const id = (0, normalise_1.namehash)(name);
|
|
212
|
+
let domain;
|
|
213
|
+
let resolverResponse;
|
|
214
|
+
if (!resolverAddress) {
|
|
215
|
+
;
|
|
216
|
+
({ domain } = await client.request(query, { id }));
|
|
217
|
+
resolverResponse = domain?.resolver;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
const resolverId = `${resolverAddress}-${id}`;
|
|
221
|
+
({ resolver: resolverResponse, domain } = await client.request(customResolverQuery, { id, resolverId }));
|
|
222
|
+
}
|
|
223
|
+
if (!domain)
|
|
167
224
|
return;
|
|
168
|
-
const
|
|
225
|
+
const { isMigrated, createdAt } = domain;
|
|
169
226
|
let returnedRecords = {};
|
|
170
|
-
if (!
|
|
227
|
+
if (!resolverResponse)
|
|
171
228
|
return { isMigrated, createdAt };
|
|
229
|
+
if (!wantedRecords)
|
|
230
|
+
return {
|
|
231
|
+
isMigrated,
|
|
232
|
+
createdAt,
|
|
233
|
+
graphResolverAddress: resolverResponse.address || resolverAddress,
|
|
234
|
+
};
|
|
172
235
|
Object.keys(wantedRecords).forEach((key) => {
|
|
173
236
|
const data = wantedRecords[key];
|
|
174
237
|
if (typeof data === 'boolean' && data) {
|
|
@@ -180,28 +243,40 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords) => {
|
|
|
180
243
|
}
|
|
181
244
|
}
|
|
182
245
|
});
|
|
183
|
-
return {
|
|
246
|
+
return {
|
|
247
|
+
...returnedRecords,
|
|
248
|
+
isMigrated,
|
|
249
|
+
createdAt,
|
|
250
|
+
graphResolverAddress: resolverResponse.address || resolverAddress,
|
|
251
|
+
};
|
|
184
252
|
};
|
|
185
|
-
const getProfileFromName = async ({ contracts, gqlInstance, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, name, options) => {
|
|
186
|
-
const
|
|
187
|
-
|
|
253
|
+
const getProfileFromName = async ({ contracts, gqlInstance, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, name, options) => {
|
|
254
|
+
const { resolverAddress, ..._options } = options || {};
|
|
255
|
+
const optsLength = Object.keys(_options).length;
|
|
256
|
+
const usingOptions = !optsLength || _options?.texts === true || _options?.coinTypes === true
|
|
257
|
+
? optsLength
|
|
258
|
+
? _options
|
|
259
|
+
: { contentHash: true, texts: true, coinTypes: true }
|
|
188
260
|
: undefined;
|
|
189
|
-
const graphResult = await graphFetch({ gqlInstance }, name, usingOptions);
|
|
261
|
+
const graphResult = await graphFetch({ gqlInstance }, name, usingOptions, resolverAddress);
|
|
190
262
|
if (!graphResult)
|
|
191
263
|
return;
|
|
192
|
-
const { isMigrated, createdAt, ...wantedRecords } = graphResult;
|
|
264
|
+
const { isMigrated, createdAt, graphResolverAddress, ...wantedRecords } = graphResult;
|
|
265
|
+
if (!graphResolverAddress && !options?.resolverAddress)
|
|
266
|
+
return { isMigrated, createdAt, message: "Name doesn't have a resolver" };
|
|
193
267
|
const result = await getDataForName({
|
|
194
268
|
contracts,
|
|
195
269
|
_getAddr,
|
|
196
270
|
_getContentHash,
|
|
197
271
|
_getText,
|
|
198
272
|
resolverMulticallWrapper,
|
|
199
|
-
|
|
273
|
+
multicallWrapper,
|
|
274
|
+
}, name, usingOptions ? wantedRecords : options, graphResolverAddress, options?.resolverAddress);
|
|
200
275
|
if (!result)
|
|
201
276
|
return { isMigrated, createdAt, message: "Records fetch didn't complete" };
|
|
202
277
|
return { ...result, isMigrated, createdAt, message: undefined };
|
|
203
278
|
};
|
|
204
|
-
const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, address, options) => {
|
|
279
|
+
const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, address, options) => {
|
|
205
280
|
let name;
|
|
206
281
|
try {
|
|
207
282
|
name = await getName(address);
|
|
@@ -220,6 +295,7 @@ const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr
|
|
|
220
295
|
_getContentHash,
|
|
221
296
|
_getText,
|
|
222
297
|
resolverMulticallWrapper,
|
|
298
|
+
multicallWrapper,
|
|
223
299
|
}, name.name, options);
|
|
224
300
|
if (!result || result.message)
|
|
225
301
|
return;
|
|
@@ -230,7 +306,7 @@ const getProfileFromAddress = async ({ contracts, gqlInstance, getName, _getAddr
|
|
|
230
306
|
message: undefined,
|
|
231
307
|
};
|
|
232
308
|
};
|
|
233
|
-
async function default_1({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, }, nameOrAddress, options) {
|
|
309
|
+
async function default_1({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }, nameOrAddress, options) {
|
|
234
310
|
if (options && options.coinTypes && typeof options.coinTypes !== 'boolean') {
|
|
235
311
|
options.coinTypes = options.coinTypes.map((coin) => {
|
|
236
312
|
if (!isNaN(parseInt(coin))) {
|
|
@@ -254,6 +330,7 @@ async function default_1({ contracts, gqlInstance, getName, _getAddr, _getConten
|
|
|
254
330
|
_getContentHash,
|
|
255
331
|
_getText,
|
|
256
332
|
resolverMulticallWrapper,
|
|
333
|
+
multicallWrapper,
|
|
257
334
|
}, nameOrAddress, options);
|
|
258
335
|
}
|
|
259
336
|
return getProfileFromName({
|
|
@@ -263,6 +340,7 @@ async function default_1({ contracts, gqlInstance, getName, _getAddr, _getConten
|
|
|
263
340
|
_getContentHash,
|
|
264
341
|
_getText,
|
|
265
342
|
resolverMulticallWrapper,
|
|
343
|
+
multicallWrapper,
|
|
266
344
|
}, nameOrAddress, options);
|
|
267
345
|
}
|
|
268
346
|
exports.default = default_1;
|
|
@@ -3,6 +3,7 @@ declare type ProfileOptions = {
|
|
|
3
3
|
contentHash?: boolean;
|
|
4
4
|
texts?: boolean | string[];
|
|
5
5
|
coinTypes?: boolean | string[];
|
|
6
|
+
resolverAddress?: string;
|
|
6
7
|
};
|
|
7
8
|
export default function ({ getProfile }: ENSArgs<'getProfile'>, name: string, options?: ProfileOptions): Promise<{
|
|
8
9
|
isMigrated: boolean | null;
|
|
@@ -4,19 +4,27 @@ exports.getAddr = exports._getAddr = exports.getText = exports._getText = export
|
|
|
4
4
|
const address_encoder_1 = require("@ensdomains/address-encoder");
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
6
|
const contentHash_1 = require("../utils/contentHash");
|
|
7
|
+
const normalise_1 = require("../utils/normalise");
|
|
7
8
|
exports._getContentHash = {
|
|
8
9
|
raw: async ({ contracts }, name) => {
|
|
9
10
|
const publicResolver = await contracts?.getPublicResolver();
|
|
10
11
|
return {
|
|
11
12
|
to: '0x0000000000000000000000000000000000000000',
|
|
12
13
|
data: publicResolver.interface.encodeFunctionData('contenthash', [
|
|
13
|
-
|
|
14
|
+
(0, normalise_1.namehash)(name),
|
|
14
15
|
]),
|
|
15
16
|
};
|
|
16
17
|
},
|
|
17
18
|
decode: async ({ contracts }, data) => {
|
|
19
|
+
let response;
|
|
18
20
|
const publicResolver = await contracts?.getPublicResolver();
|
|
19
|
-
|
|
21
|
+
try {
|
|
22
|
+
;
|
|
23
|
+
[response] = publicResolver.interface.decodeFunctionResult('contenthash', data);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
20
28
|
if (!response) {
|
|
21
29
|
return;
|
|
22
30
|
}
|
|
@@ -48,7 +56,7 @@ exports._getText = {
|
|
|
48
56
|
return {
|
|
49
57
|
to: '0x0000000000000000000000000000000000000000',
|
|
50
58
|
data: publicResolver.interface.encodeFunctionData('text', [
|
|
51
|
-
|
|
59
|
+
(0, normalise_1.namehash)(name),
|
|
52
60
|
key,
|
|
53
61
|
]),
|
|
54
62
|
};
|
|
@@ -80,10 +88,18 @@ exports._getAddr = {
|
|
|
80
88
|
coinType = 60;
|
|
81
89
|
}
|
|
82
90
|
const publicResolver = await contracts?.getPublicResolver();
|
|
91
|
+
if (coinType === 60 || coinType === '60') {
|
|
92
|
+
return {
|
|
93
|
+
to: '0x0000000000000000000000000000000000000000',
|
|
94
|
+
data: publicResolver.interface.encodeFunctionData('addr(bytes32)', [
|
|
95
|
+
(0, normalise_1.namehash)(name),
|
|
96
|
+
]),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
83
99
|
if (bypassFormat) {
|
|
84
100
|
return {
|
|
85
101
|
to: '0x0000000000000000000000000000000000000000',
|
|
86
|
-
data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [
|
|
102
|
+
data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [(0, normalise_1.namehash)(name), coinType]),
|
|
87
103
|
};
|
|
88
104
|
}
|
|
89
105
|
const formatter = typeof coinType === 'string' && isNaN(parseInt(coinType))
|
|
@@ -94,7 +110,7 @@ exports._getAddr = {
|
|
|
94
110
|
}
|
|
95
111
|
return {
|
|
96
112
|
to: '0x0000000000000000000000000000000000000000',
|
|
97
|
-
data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [
|
|
113
|
+
data: publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [(0, normalise_1.namehash)(name), formatter.coinType]),
|
|
98
114
|
};
|
|
99
115
|
},
|
|
100
116
|
decode: async ({ contracts }, data, _name, coinType) => {
|
|
@@ -107,7 +123,15 @@ exports._getAddr = {
|
|
|
107
123
|
const formatter = typeof coinType === 'string' && isNaN(parseInt(coinType))
|
|
108
124
|
? address_encoder_1.formatsByName[coinType]
|
|
109
125
|
: address_encoder_1.formatsByCoinType[typeof coinType === 'number' ? coinType : parseInt(coinType)];
|
|
110
|
-
|
|
126
|
+
let response;
|
|
127
|
+
if (coinType === 60 || coinType === '60') {
|
|
128
|
+
;
|
|
129
|
+
[response] = publicResolver.interface.decodeFunctionResult('addr(bytes32)', data);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
;
|
|
133
|
+
[response] = publicResolver.interface.decodeFunctionResult('addr(bytes32,uint256)', data);
|
|
134
|
+
}
|
|
111
135
|
if (!response)
|
|
112
136
|
return;
|
|
113
137
|
if (ethers_1.ethers.utils.hexStripZeros(response) === '0x') {
|
|
@@ -16,7 +16,7 @@ declare type Params = {
|
|
|
16
16
|
pageSize?: number;
|
|
17
17
|
orderDirection?: 'asc' | 'desc';
|
|
18
18
|
orderBy?: 'createdAt' | 'labelName';
|
|
19
|
-
lastSubnames
|
|
19
|
+
lastSubnames?: Array<any>;
|
|
20
20
|
isLargeQuery?: boolean;
|
|
21
21
|
};
|
|
22
22
|
declare const getSubnames: (injected: ENSArgs<'gqlInstance'>, functionArgs: Params) => Promise<{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("ethers/lib/utils");
|
|
4
3
|
const format_1 = require("../utils/format");
|
|
5
4
|
const labels_1 = require("../utils/labels");
|
|
6
|
-
const
|
|
5
|
+
const normalise_1 = require("../utils/normalise");
|
|
6
|
+
const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDirection, orderBy, lastSubnames = [], }) => {
|
|
7
7
|
const client = gqlInstance.client;
|
|
8
8
|
let finalQuery = gqlInstance.gql `
|
|
9
9
|
query getSubnames(
|
|
@@ -38,7 +38,7 @@ const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
|
|
|
38
38
|
}
|
|
39
39
|
`;
|
|
40
40
|
let queryVars = {
|
|
41
|
-
id: (0,
|
|
41
|
+
id: (0, normalise_1.namehash)(name),
|
|
42
42
|
first: pageSize,
|
|
43
43
|
lastCreatedAt: lastSubnames[lastSubnames.length - 1]?.createdAt,
|
|
44
44
|
orderBy,
|
|
@@ -55,7 +55,7 @@ const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
|
|
|
55
55
|
});
|
|
56
56
|
return {
|
|
57
57
|
subnames: subdomains,
|
|
58
|
-
subnameCount: domain.subdomainCount
|
|
58
|
+
subnameCount: domain.subdomainCount,
|
|
59
59
|
};
|
|
60
60
|
};
|
|
61
61
|
const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDirection, orderBy }) => {
|
|
@@ -94,7 +94,7 @@ const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
|
|
|
94
94
|
}
|
|
95
95
|
`;
|
|
96
96
|
queryVars = {
|
|
97
|
-
id: (0,
|
|
97
|
+
id: (0, normalise_1.namehash)(name),
|
|
98
98
|
orderBy,
|
|
99
99
|
orderDirection,
|
|
100
100
|
};
|
|
@@ -124,7 +124,7 @@ const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
|
|
|
124
124
|
}
|
|
125
125
|
`;
|
|
126
126
|
queryVars = {
|
|
127
|
-
id: (0,
|
|
127
|
+
id: (0, normalise_1.namehash)(name),
|
|
128
128
|
first: pageSize,
|
|
129
129
|
skip: (page || 0) * pageSize,
|
|
130
130
|
orderBy,
|
|
@@ -142,7 +142,7 @@ const smallQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDir
|
|
|
142
142
|
});
|
|
143
143
|
return {
|
|
144
144
|
subnames: subdomains,
|
|
145
|
-
subnameCount: domain.subdomainCount
|
|
145
|
+
subnameCount: domain.subdomainCount,
|
|
146
146
|
};
|
|
147
147
|
};
|
|
148
148
|
const getSubnames = (injected, functionArgs) => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ENSArgs } from '..';
|
|
2
|
-
export default function ({ contracts,
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
export default function ({ contracts, signer }: ENSArgs<'contracts' | 'signer'>, name: string, { address, resolver, }?: {
|
|
3
|
+
address?: string;
|
|
4
|
+
resolver?: string;
|
|
5
|
+
}): Promise<import("ethers").PopulatedTransaction>;
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
async function default_1({ contracts,
|
|
4
|
-
const signerAddress = await
|
|
5
|
-
|
|
6
|
-
.getAddress();
|
|
7
|
-
if (!signerAddress) {
|
|
8
|
-
throw new Error('No signer found');
|
|
9
|
-
}
|
|
10
|
-
const reverseRegistrar = (await contracts?.getReverseRegistrar())?.connect(provider?.getSigner());
|
|
3
|
+
async function default_1({ contracts, signer }, name, { address, resolver, } = {}) {
|
|
4
|
+
const signerAddress = await signer.getAddress();
|
|
5
|
+
const reverseRegistrar = (await contracts?.getReverseRegistrar())?.connect(signer);
|
|
11
6
|
if (address) {
|
|
12
7
|
const publicResolver = await contracts?.getPublicResolver();
|
|
13
|
-
return reverseRegistrar
|
|
8
|
+
return reverseRegistrar.populateTransaction.setNameForAddr(address, signerAddress, resolver || publicResolver.address, name);
|
|
14
9
|
}
|
|
15
|
-
return reverseRegistrar
|
|
10
|
+
return reverseRegistrar.populateTransaction.setName(name);
|
|
16
11
|
}
|
|
17
12
|
exports.default = default_1;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ENSArgs } from '..';
|
|
2
|
+
import { RecordInput, RecordTypes } from '../utils/recordHelpers';
|
|
3
|
+
declare type BaseInput = {
|
|
4
|
+
resolverAddress?: string;
|
|
5
|
+
};
|
|
6
|
+
declare type ContentHashInput = {
|
|
7
|
+
record: RecordInput<'contentHash'>;
|
|
8
|
+
type: 'contentHash';
|
|
9
|
+
};
|
|
10
|
+
declare type AddrOrTextInput = {
|
|
11
|
+
record: RecordInput<'addr' | 'text'>;
|
|
12
|
+
type: 'addr' | 'text';
|
|
13
|
+
};
|
|
14
|
+
export default function <T extends RecordTypes>({ contracts, provider, getResolver, signer, }: ENSArgs<'contracts' | 'provider' | 'getResolver' | 'signer'>, name: string, { record, type, resolverAddress, }: BaseInput & (ContentHashInput | AddrOrTextInput)): Promise<{
|
|
15
|
+
to: string;
|
|
16
|
+
data: string;
|
|
17
|
+
}>;
|
|
18
|
+
export {};
|