@ensdomains/ensjs 3.0.0-alpha.42 → 3.0.0-alpha.44

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.
Files changed (153) hide show
  1. package/dist/cjs/contracts/getContractAddress.js +3 -3
  2. package/dist/cjs/functions/batch.js +14 -6
  3. package/dist/cjs/functions/getDecryptedName.js +111 -0
  4. package/dist/cjs/functions/getExpiry.js +2 -1
  5. package/dist/cjs/functions/getHistory.js +16 -9
  6. package/dist/cjs/functions/getOwner.js +5 -4
  7. package/dist/cjs/functions/getPrice.js +6 -6
  8. package/dist/cjs/functions/getProfile.js +11 -5
  9. package/dist/cjs/functions/getWrapperData.js +2 -2
  10. package/dist/cjs/functions/unwrapName.js +2 -1
  11. package/dist/cjs/functions/wrapName.js +4 -3
  12. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +2 -2
  13. package/dist/cjs/generated/factories/BulkRenewal__factory.js +2 -2
  14. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +2 -2
  15. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +2 -2
  16. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +2 -2
  17. package/dist/cjs/generated/factories/ENSRegistry__factory.js +2 -2
  18. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +2 -2
  19. package/dist/cjs/generated/factories/Multicall__factory.js +2 -2
  20. package/dist/cjs/generated/factories/NameWrapper__factory.js +2 -2
  21. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +2 -2
  22. package/dist/cjs/generated/factories/PublicResolver__factory.js +2 -2
  23. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +2 -2
  24. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +2 -2
  25. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +2 -2
  26. package/dist/cjs/generated/factories/Root__factory.js +2 -2
  27. package/dist/cjs/generated/factories/SHA1Digest__factory.js +2 -2
  28. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +2 -2
  29. package/dist/cjs/generated/factories/SHA256Digest__factory.js +2 -2
  30. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +2 -2
  31. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +2 -2
  32. package/dist/cjs/generated/factories/UniversalResolver__factory.js +2 -2
  33. package/dist/cjs/index.js +2 -1
  34. package/dist/cjs/utils/ccip.js +4 -4
  35. package/dist/cjs/utils/fuses.js +3 -2
  36. package/dist/cjs/utils/hexEncodedName.js +2 -0
  37. package/dist/cjs/utils/labels.js +14 -8
  38. package/dist/cjs/utils/registerHelpers.js +2 -2
  39. package/dist/cjs/utils/singleCall.js +9 -1
  40. package/dist/cjs/utils/validation.js +2 -0
  41. package/dist/cjs/utils/wrapper.js +1 -1
  42. package/dist/esm/contracts/getContractAddress.mjs +3 -3
  43. package/dist/esm/functions/batch.mjs +14 -6
  44. package/dist/esm/functions/getDecryptedName.mjs +96 -0
  45. package/dist/esm/functions/getExpiry.mjs +2 -1
  46. package/dist/esm/functions/getHistory.mjs +16 -9
  47. package/dist/esm/functions/getOwner.mjs +3 -2
  48. package/dist/esm/functions/getPrice.mjs +2 -2
  49. package/dist/esm/functions/getProfile.mjs +10 -4
  50. package/dist/esm/functions/getWrapperData.mjs +2 -2
  51. package/dist/esm/functions/unwrapName.mjs +2 -1
  52. package/dist/esm/functions/wrapName.mjs +3 -2
  53. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +1 -1
  54. package/dist/esm/generated/factories/BulkRenewal__factory.mjs +1 -1
  55. package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +1 -1
  56. package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +1 -1
  57. package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +1 -1
  58. package/dist/esm/generated/factories/ENSRegistry__factory.mjs +1 -1
  59. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +1 -1
  60. package/dist/esm/generated/factories/Multicall__factory.mjs +1 -1
  61. package/dist/esm/generated/factories/NameWrapper__factory.mjs +1 -1
  62. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +1 -1
  63. package/dist/esm/generated/factories/PublicResolver__factory.mjs +1 -1
  64. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +1 -1
  65. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +1 -1
  66. package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +1 -1
  67. package/dist/esm/generated/factories/Root__factory.mjs +1 -1
  68. package/dist/esm/generated/factories/SHA1Digest__factory.mjs +1 -1
  69. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +1 -1
  70. package/dist/esm/generated/factories/SHA256Digest__factory.mjs +1 -1
  71. package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +1 -1
  72. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +1 -1
  73. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +1 -1
  74. package/dist/esm/index.mjs +2 -1
  75. package/dist/esm/utils/ccip.mjs +3 -3
  76. package/dist/esm/utils/fuses.mjs +3 -2
  77. package/dist/esm/utils/hexEncodedName.mjs +2 -0
  78. package/dist/esm/utils/labels.mjs +11 -8
  79. package/dist/esm/utils/registerHelpers.mjs +1 -1
  80. package/dist/esm/utils/singleCall.mjs +9 -1
  81. package/dist/esm/utils/validation.mjs +2 -0
  82. package/dist/esm/utils/wrapper.mjs +1 -1
  83. package/dist/types/functions/batch.d.ts +8 -1
  84. package/dist/types/functions/getDecryptedName.d.ts +9 -0
  85. package/dist/types/functions/getHistory.d.ts +16 -0
  86. package/dist/types/functions/getPrice.d.ts +1 -1
  87. package/dist/types/functions/getProfile.d.ts +1 -0
  88. package/dist/types/functions/getRecords.d.ts +1 -0
  89. package/dist/types/functions/registerName.d.ts +1 -1
  90. package/dist/types/functions/renewNames.d.ts +1 -1
  91. package/dist/types/functions/types.d.ts +2 -0
  92. package/dist/types/index.d.ts +32 -1
  93. package/dist/types/static.d.ts +1 -1
  94. package/dist/types/utils/fuses.d.ts +1 -0
  95. package/dist/types/utils/hexEncodedName.d.ts +1 -0
  96. package/dist/types/utils/labels.d.ts +2 -1
  97. package/dist/types/utils/singleCall.d.ts +1 -0
  98. package/dist/types/utils/validation.d.ts +1 -0
  99. package/dist/types/utils/wrapper.d.ts +1 -1
  100. package/package.json +2 -2
  101. package/src/contracts/getContractAddress.ts +3 -3
  102. package/src/functions/batch.ts +15 -5
  103. package/src/functions/ccip.test.ts +62 -0
  104. package/src/functions/createSubname.ts +1 -1
  105. package/src/functions/getDecryptedName.test.ts +49 -0
  106. package/src/functions/getDecryptedName.ts +119 -0
  107. package/src/functions/getExpiry.ts +3 -2
  108. package/src/functions/getHistory.test.ts +11 -0
  109. package/src/functions/getHistory.ts +16 -9
  110. package/src/functions/getNames.test.ts +1 -1
  111. package/src/functions/getOwner.ts +4 -3
  112. package/src/functions/getPrice.ts +2 -2
  113. package/src/functions/getProfile.test.ts +7 -0
  114. package/src/functions/getProfile.ts +13 -4
  115. package/src/functions/getWrapperData.test.ts +3 -0
  116. package/src/functions/getWrapperData.ts +2 -2
  117. package/src/functions/registerName.ts +1 -1
  118. package/src/functions/renewNames.ts +1 -1
  119. package/src/functions/types.ts +2 -0
  120. package/src/functions/unwrapName.ts +2 -1
  121. package/src/functions/wrapName.ts +3 -2
  122. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +1 -1
  123. package/src/generated/factories/BulkRenewal__factory.ts +1 -1
  124. package/src/generated/factories/DNSRegistrar__factory.ts +1 -1
  125. package/src/generated/factories/DNSSECImpl__factory.ts +1 -1
  126. package/src/generated/factories/DefaultReverseResolver__factory.ts +1 -1
  127. package/src/generated/factories/ENSRegistry__factory.ts +1 -1
  128. package/src/generated/factories/ETHRegistrarController__factory.ts +1 -1
  129. package/src/generated/factories/Multicall__factory.ts +1 -1
  130. package/src/generated/factories/NameWrapper__factory.ts +1 -1
  131. package/src/generated/factories/P256SHA256Algorithm__factory.ts +1 -1
  132. package/src/generated/factories/PublicResolver__factory.ts +1 -1
  133. package/src/generated/factories/RSASHA1Algorithm__factory.ts +1 -1
  134. package/src/generated/factories/RSASHA256Algorithm__factory.ts +1 -1
  135. package/src/generated/factories/ReverseRegistrar__factory.ts +1 -1
  136. package/src/generated/factories/Root__factory.ts +1 -1
  137. package/src/generated/factories/SHA1Digest__factory.ts +1 -1
  138. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +1 -1
  139. package/src/generated/factories/SHA256Digest__factory.ts +1 -1
  140. package/src/generated/factories/StaticMetadataService__factory.ts +1 -1
  141. package/src/generated/factories/TLDPublicSuffixList__factory.ts +1 -1
  142. package/src/generated/factories/UniversalResolver__factory.ts +1 -1
  143. package/src/index.ts +5 -1
  144. package/src/static.ts +1 -1
  145. package/src/utils/ccip.ts +3 -3
  146. package/src/utils/fuses.ts +4 -4
  147. package/src/utils/hexEncodedName.ts +3 -0
  148. package/src/utils/labels.ts +13 -11
  149. package/src/utils/registerHelpers.ts +1 -1
  150. package/src/utils/singleCall.ts +11 -6
  151. package/src/utils/validation.ts +3 -0
  152. package/src/utils/wrapper.ts +1 -1
  153. package/src/functions/getProfile-ccip.test.ts +0 -29
@@ -37,19 +37,19 @@ const addresses = {
37
37
  "1": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
38
38
  "3": "0xa5627AB7Ae47063B533622C34FEBDb52d3281dF8",
39
39
  "4": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
40
- "5": "0xb7A1f9e633fdeaAa2ec44bE00a61a7Db9a733D70"
40
+ "5": "0x603A4F2e7615d0099244496883062bA2eFBbeaf0"
41
41
  },
42
42
  Multicall: "0xcA11bde05977b3631167028862bE2a173976CA11",
43
43
  NameWrapper: {
44
44
  "1": "0x0000000000000000000000000000000000000000",
45
45
  "3": "0xF82155e2a43Be0871821E9654Fc8Ae894FB8307C",
46
46
  "4": "0x0000000000000000000000000000000000000000",
47
- "5": "0xEe1F756aCde7E81B2D8cC6aB3c8A1E2cE6db0F39"
47
+ "5": "0x060f1546642E67c485D56248201feA2f9AB1803C"
48
48
  },
49
49
  PublicResolver: {
50
50
  "1": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
51
51
  "3": "0x13F0659Ee6bb7484C884FEeFb7F75C93951ef837",
52
- "5": "0x2800Ec5BAB9CE9226d19E0ad5BC607e3cfC4347E"
52
+ "5": "0x19c2d5D0f035563344dBB7bE5fD09c8dad62b001"
53
53
  },
54
54
  ENSRegistry: {
55
55
  "1": "0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e",
@@ -30,16 +30,24 @@ const raw = async ({ multicallWrapper }, ...items) => {
30
30
  return rawRef(...args);
31
31
  })
32
32
  );
33
- return multicallWrapper.raw(rawDataArr);
33
+ const response = await multicallWrapper.raw(rawDataArr);
34
+ return { ...response, passthrough: rawDataArr };
34
35
  };
35
- const decode = async ({ multicallWrapper }, data, ...items) => {
36
- const response = await multicallWrapper.decode(data);
36
+ const decode = async ({ multicallWrapper }, data, passthrough, ...items) => {
37
+ const response = await multicallWrapper.decode(data, passthrough);
37
38
  if (!response)
38
39
  return;
39
40
  return Promise.all(
40
- response.map(
41
- (ret, i) => items[i].decode(ret.returnData, ...items[i].args)
42
- )
41
+ response.map((ret, i) => {
42
+ if (passthrough[i].passthrough) {
43
+ return items[i].decode(
44
+ ret.returnData,
45
+ passthrough[i].passthrough,
46
+ ...items[i].args
47
+ );
48
+ }
49
+ return items[i].decode(ret.returnData, ...items[i].args);
50
+ })
43
51
  );
44
52
  };
45
53
  var batch_default = {
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var getDecryptedName_exports = {};
20
+ __export(getDecryptedName_exports, {
21
+ default: () => getDecryptedName_default
22
+ });
23
+ module.exports = __toCommonJS(getDecryptedName_exports);
24
+ var import_bytes = require("@ethersproject/bytes");
25
+ var import_hexEncodedName = require("../utils/hexEncodedName");
26
+ var import_labels = require("../utils/labels");
27
+ var import_normalise = require("../utils/normalise");
28
+ const raw = async ({ contracts }, name, allowIncomplete) => {
29
+ const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
30
+ return {
31
+ to: nameWrapper.address,
32
+ data: nameWrapper.interface.encodeFunctionData("names", [(0, import_normalise.namehash)(name)])
33
+ };
34
+ };
35
+ const generateNameQuery = (labels) => {
36
+ let query = "";
37
+ for (let i = 0; i < labels.length; i += 1) {
38
+ const label = labels[i];
39
+ if ((0, import_labels.isEncodedLabelhash)(label)) {
40
+ query += `
41
+ label${i}: domains(where: { labelhash: "${(0, import_labels.decodeLabelhash)(
42
+ label
43
+ ).toLowerCase()}", labelName_not: null }) {
44
+ labelName
45
+ }
46
+ `;
47
+ }
48
+ }
49
+ return query;
50
+ };
51
+ const decode = async ({ contracts, gqlInstance }, data, name, allowIncomplete = false) => {
52
+ var _a;
53
+ if (data !== null) {
54
+ const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
55
+ try {
56
+ const result = nameWrapper.interface.decodeFunctionResult("names", data);
57
+ if ((0, import_bytes.hexStripZeros)(result["0"]) !== "0x") {
58
+ const decoded = (0, import_hexEncodedName.hexDecodeName)(result["0"]);
59
+ if (decoded && decoded !== ".")
60
+ return decoded;
61
+ }
62
+ } catch (e) {
63
+ console.error("Error decoding name: ", e);
64
+ return;
65
+ }
66
+ }
67
+ if ((0, import_labels.checkIsDecrypted)(name))
68
+ return name;
69
+ const labels = name.split(".");
70
+ const decryptedNameQuery = gqlInstance.gql`
71
+ query decodedName($id: String!) {
72
+ namehashLookup: domains(where: { id: $id }) {
73
+ name
74
+ }
75
+ ${generateNameQuery(labels)}
76
+ }
77
+ `;
78
+ const decryptedNameResult = await gqlInstance.client.request(
79
+ decryptedNameQuery,
80
+ {
81
+ id: (0, import_normalise.namehash)(name)
82
+ }
83
+ );
84
+ if (!decryptedNameResult)
85
+ return;
86
+ const namehashLookupResult = (_a = decryptedNameResult == null ? void 0 : decryptedNameResult.namehashLookup[0]) == null ? void 0 : _a.name;
87
+ let bestResult = namehashLookupResult;
88
+ if (namehashLookupResult && (0, import_labels.checkIsDecrypted)(namehashLookupResult)) {
89
+ return namehashLookupResult;
90
+ }
91
+ const { namehashLookup: _, ...labelNames } = decryptedNameResult;
92
+ if (Object.keys(labelNames).length !== 0) {
93
+ for (const [key, value] of Object.entries(
94
+ labelNames
95
+ )) {
96
+ if (value.length && value[0].labelName) {
97
+ labels[parseInt(key.replace("label", ""))] = value[0].labelName;
98
+ }
99
+ }
100
+ const labelLookupResult = labels.join(".");
101
+ if (!namehashLookupResult || (0, import_labels.getEncryptedLabelAmount)(namehashLookupResult) > (0, import_labels.getEncryptedLabelAmount)(labelLookupResult))
102
+ bestResult = labelLookupResult;
103
+ }
104
+ if (!bestResult || !allowIncomplete && !(0, import_labels.checkIsDecrypted)(bestResult))
105
+ return;
106
+ return bestResult;
107
+ };
108
+ var getDecryptedName_default = {
109
+ raw,
110
+ decode
111
+ };
@@ -23,6 +23,7 @@ __export(getExpiry_exports, {
23
23
  module.exports = __toCommonJS(getExpiry_exports);
24
24
  var import_solidity = require("@ethersproject/solidity");
25
25
  var import_normalise = require("../utils/normalise");
26
+ var import_validation = require("../utils/validation");
26
27
  const getRegistrarExpiry = async ({ contracts, multicallWrapper }, labels) => {
27
28
  if (labels.length > 2 || labels[1] !== "eth") {
28
29
  throw new Error("Only .eth names have expiry dates on the registrar");
@@ -56,7 +57,7 @@ const getWrapperExpiry = async ({ contracts }, labels) => {
56
57
  const getContractToUse = (contract, labels) => {
57
58
  if (contract)
58
59
  return contract;
59
- if (labels.length === 2 && labels[1] === "eth") {
60
+ if ((0, import_validation.checkIsDotEth)(labels)) {
60
61
  return "registrar";
61
62
  }
62
63
  return "nameWrapper";
@@ -24,8 +24,8 @@ module.exports = __toCommonJS(getHistory_exports);
24
24
  var import_address_encoder = require("@ensdomains/address-encoder");
25
25
  var import_bytes = require("@ethersproject/bytes");
26
26
  var import_contentHash = require("../utils/contentHash");
27
- var import_labels = require("../utils/labels");
28
27
  var import_normalise = require("../utils/normalise");
28
+ var import_validation = require("../utils/validation");
29
29
  const eventFormat = {
30
30
  Domain: {
31
31
  NewOwner: (args) => ({ owner: args.owner.id }),
@@ -106,7 +106,7 @@ const mapEvents = (eventArray, type) => eventArray.map(
106
106
  async function getHistory({ gqlInstance }, name) {
107
107
  const { client } = gqlInstance;
108
108
  const query = gqlInstance.gql`
109
- query getHistory($namehash: String!, $labelhash: String!) {
109
+ query getHistory($namehash: String!) {
110
110
  domain(id: $namehash) {
111
111
  events {
112
112
  id
@@ -226,32 +226,39 @@ async function getHistory({ gqlInstance }, name) {
226
226
  }
227
227
  }
228
228
  `;
229
- const label = name.split(".")[0];
230
229
  const nameHash = (0, import_normalise.namehash)(name);
231
- const labelHash = (0, import_labels.labelhash)(label);
230
+ const labels = name.split(".");
231
+ const is2ldEth = (0, import_validation.checkIsDotEth)(labels);
232
232
  const response = await client.request(query, {
233
- namehash: nameHash,
234
- labelhash: labelHash
233
+ namehash: nameHash
235
234
  });
236
235
  const domain = response == null ? void 0 : response.domain;
237
236
  if (!domain)
238
237
  return;
239
238
  const {
240
239
  events: domainEvents,
241
- registration: { events: registrationEvents },
242
240
  resolver: { events: resolverEvents }
243
241
  } = domain;
244
242
  const domainHistory = mapEvents(domainEvents, "Domain");
245
- const registrationHistory = mapEvents(registrationEvents, "Registration");
246
243
  const resolverHistory = mapEvents(
247
244
  resolverEvents.filter(
248
245
  (event) => !event.coinType || event.coinType !== "60"
249
246
  ),
250
247
  "Resolver"
251
248
  );
249
+ if (is2ldEth) {
250
+ const {
251
+ registration: { events: registrationEvents }
252
+ } = domain;
253
+ const registrationHistory = mapEvents(registrationEvents, "Registration");
254
+ return {
255
+ domain: domainHistory,
256
+ registration: registrationHistory,
257
+ resolver: resolverHistory
258
+ };
259
+ }
252
260
  return {
253
261
  domain: domainHistory,
254
- registration: registrationHistory,
255
262
  resolver: resolverHistory
256
263
  };
257
264
  }
@@ -21,10 +21,11 @@ __export(getOwner_exports, {
21
21
  default: () => getOwner_default
22
22
  });
23
23
  module.exports = __toCommonJS(getOwner_exports);
24
- var import_abi_coder = require("@ethersproject/abi/lib/abi-coder");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_bytes = require("@ethersproject/bytes");
26
26
  var import_labels = require("../utils/labels");
27
27
  var import_normalise = require("../utils/normalise");
28
+ var import_validation = require("../utils/validation");
28
29
  const singleContractOwnerRaw = async ({ contracts }, contract, namehash, labels) => {
29
30
  switch (contract) {
30
31
  case "nameWrapper": {
@@ -82,7 +83,7 @@ const raw = async ({ contracts, multicallWrapper }, name, contract) => {
82
83
  labels
83
84
  );
84
85
  const data = [registryData, nameWrapperData];
85
- if (labels.length === 2 && labels[1] === "eth") {
86
+ if ((0, import_validation.checkIsDotEth)(labels)) {
86
87
  data.push(registrarData);
87
88
  }
88
89
  return multicallWrapper.raw(data);
@@ -98,7 +99,7 @@ const registrantQuery = `
98
99
  }
99
100
  }
100
101
  `;
101
- const singleContractOwnerDecode = (data) => import_abi_coder.defaultAbiCoder.decode(["address"], data)[0];
102
+ const singleContractOwnerDecode = (data) => import_abi.defaultAbiCoder.decode(["address"], data)[0];
102
103
  const decode = async ({
103
104
  contracts,
104
105
  multicallWrapper,
@@ -129,7 +130,7 @@ const decode = async ({
129
130
  return;
130
131
  const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
131
132
  const decodedData = [result[0][1], result[1][1], (_a = result[2]) == null ? void 0 : _a[1]].map(
132
- (ret) => ret && ret !== "0x" && import_abi_coder.defaultAbiCoder.decode(["address"], ret)
133
+ (ret) => ret && ret !== "0x" && import_abi.defaultAbiCoder.decode(["address"], ret)
133
134
  );
134
135
  const registryOwner = decodedData[0][0];
135
136
  const nameWrapperOwner = decodedData[1][0];
@@ -21,8 +21,8 @@ __export(getPrice_exports, {
21
21
  default: () => getPrice_default
22
22
  });
23
23
  module.exports = __toCommonJS(getPrice_exports);
24
- var import_abi_coder = require("@ethersproject/abi/lib/abi-coder");
25
- var import_bignumber = require("@ethersproject/bignumber/lib/bignumber");
24
+ var import_abi = require("@ethersproject/abi");
25
+ var import_bignumber = require("@ethersproject/bignumber");
26
26
  const raw = async ({ contracts, multicallWrapper }, nameOrNames, duration, legacy) => {
27
27
  const names = Array.isArray(nameOrNames) ? nameOrNames : [nameOrNames];
28
28
  if (names.length > 1) {
@@ -79,11 +79,11 @@ const decode = async ({ contracts, multicallWrapper }, data, _nameOrNames, _dura
79
79
  const isBulkRenewal = Array.isArray(_nameOrNames) && _nameOrNames.length > 1;
80
80
  if (isBulkRenewal && legacy) {
81
81
  const result = await multicallWrapper.decode(data);
82
- const [price] = import_abi_coder.defaultAbiCoder.decode(
82
+ const [price] = import_abi.defaultAbiCoder.decode(
83
83
  ["uint256"],
84
84
  result[0].returnData
85
85
  );
86
- [premium] = import_abi_coder.defaultAbiCoder.decode(
86
+ [premium] = import_abi.defaultAbiCoder.decode(
87
87
  ["uint256"],
88
88
  result[1].returnData
89
89
  );
@@ -98,11 +98,11 @@ const decode = async ({ contracts, multicallWrapper }, data, _nameOrNames, _dura
98
98
  premium = import_bignumber.BigNumber.from(0);
99
99
  } else if (!isBulkRenewal && legacy) {
100
100
  const result = await multicallWrapper.decode(data);
101
- const [price] = import_abi_coder.defaultAbiCoder.decode(
101
+ const [price] = import_abi.defaultAbiCoder.decode(
102
102
  ["uint256"],
103
103
  result[0].returnData
104
104
  );
105
- [premium] = import_abi_coder.defaultAbiCoder.decode(
105
+ [premium] = import_abi.defaultAbiCoder.decode(
106
106
  ["uint256"],
107
107
  result[1].returnData
108
108
  );
@@ -22,7 +22,7 @@ __export(getProfile_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(getProfile_exports);
24
24
  var import_address_encoder = require("@ensdomains/address-encoder");
25
- var import_abi_coder = require("@ethersproject/abi/lib/abi-coder");
25
+ var import_abi = require("@ethersproject/abi");
26
26
  var import_bytes = require("@ethersproject/bytes");
27
27
  var import_contentHash = require("../utils/contentHash");
28
28
  var import_hexEncodedName = require("../utils/hexEncodedName");
@@ -96,7 +96,7 @@ const formatRecords = async ({
96
96
  };
97
97
  if (itemRet.type === "contentHash") {
98
98
  ;
99
- [decodedFromAbi] = import_abi_coder.defaultAbiCoder.decode(["bytes"], item);
99
+ [decodedFromAbi] = import_abi.defaultAbiCoder.decode(["bytes"], item);
100
100
  if ((0, import_bytes.hexStripZeros)(decodedFromAbi) === "0x") {
101
101
  return;
102
102
  }
@@ -251,6 +251,7 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords, resolverAddress)
251
251
  const query = gqlInstance.gql`
252
252
  query getRecords($id: String!) {
253
253
  domain(id: $id) {
254
+ name
254
255
  isMigrated
255
256
  createdAt
256
257
  resolver {
@@ -267,6 +268,7 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords, resolverAddress)
267
268
  const customResolverQuery = gqlInstance.gql`
268
269
  query getRecordsWithCustomResolver($id: String!, $resolverId: String!) {
269
270
  domain(id: $id) {
271
+ name
270
272
  isMigrated
271
273
  createdAt
272
274
  }
@@ -299,10 +301,10 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords, resolverAddress)
299
301
  }
300
302
  if (!domain)
301
303
  return;
302
- const { isMigrated, createdAt } = domain;
304
+ const { isMigrated, createdAt, name: decryptedName } = domain;
303
305
  const returnedRecords = {};
304
306
  if (!resolverResponse || !wantedRecords)
305
- return { isMigrated, createdAt };
307
+ return { isMigrated, createdAt, decryptedName };
306
308
  Object.keys(wantedRecords).forEach((key) => {
307
309
  const data = wantedRecords[key];
308
310
  if (typeof data === "boolean" && data) {
@@ -315,6 +317,7 @@ const graphFetch = async ({ gqlInstance }, name, wantedRecords, resolverAddress)
315
317
  });
316
318
  return {
317
319
  ...returnedRecords,
320
+ decryptedName,
318
321
  isMigrated,
319
322
  createdAt
320
323
  };
@@ -345,6 +348,7 @@ const getProfileFromName = async ({
345
348
  );
346
349
  let isMigrated = null;
347
350
  let createdAt = null;
351
+ let decryptedName = null;
348
352
  let result = null;
349
353
  if (!graphResult) {
350
354
  if (!fallback)
@@ -366,10 +370,12 @@ const getProfileFromName = async ({
366
370
  const {
367
371
  isMigrated: _isMigrated,
368
372
  createdAt: _createdAt,
373
+ decryptedName: _decryptedName,
369
374
  ...wantedRecords
370
375
  } = graphResult;
371
376
  isMigrated = _isMigrated;
372
377
  createdAt = _createdAt;
378
+ decryptedName = _decryptedName;
373
379
  let recordsWithFallback = usingOptions ? wantedRecords : _options;
374
380
  if ((Object.keys(recordsWithFallback).length === 0 || !recordsWithFallback.coinTypes && !recordsWithFallback.texts && Object.keys(recordsWithFallback.contentHash || {}).length === 0) && fallback) {
375
381
  recordsWithFallback = fallback;
@@ -394,7 +400,7 @@ const getProfileFromName = async ({
394
400
  createdAt,
395
401
  message: !result ? "Records fetch didn't complete" : "Name doesn't have a resolver"
396
402
  };
397
- return { ...result, isMigrated, createdAt, message: void 0 };
403
+ return { ...result, isMigrated, createdAt, decryptedName, message: void 0 };
398
404
  };
399
405
  const getProfileFromAddress = async ({
400
406
  contracts,
@@ -21,7 +21,7 @@ __export(getWrapperData_exports, {
21
21
  default: () => getWrapperData_default
22
22
  });
23
23
  module.exports = __toCommonJS(getWrapperData_exports);
24
- var import_bignumber = require("@ethersproject/bignumber/lib/bignumber");
24
+ var import_bignumber = require("@ethersproject/bignumber");
25
25
  var import_fuses = require("../utils/fuses");
26
26
  var import_normalise = require("../utils/normalise");
27
27
  const raw = async ({ contracts }, name) => {
@@ -39,7 +39,7 @@ const decode = async ({ contracts }, data) => {
39
39
  data
40
40
  );
41
41
  const fuseObj = (0, import_fuses.decodeFuses)(fuses);
42
- const expiryDate = expiry.gt(0) && expiry.lt(import_bignumber.BigNumber.from(2).pow(32)) ? new Date(expiry.mul(1e3).toString()) : void 0;
42
+ const expiryDate = expiry.gt(0) && expiry.lt(import_bignumber.BigNumber.from(2).pow(32)) ? new Date(expiry.mul(1e3).toNumber()) : void 0;
43
43
  return {
44
44
  ...fuseObj,
45
45
  expiryDate,
@@ -23,6 +23,7 @@ __export(unwrapName_exports, {
23
23
  module.exports = __toCommonJS(unwrapName_exports);
24
24
  var import_solidity = require("@ethersproject/solidity");
25
25
  var import_normalise = require("../utils/normalise");
26
+ var import_validation = require("../utils/validation");
26
27
  async function unwrapName_default({ contracts, signer }, name, {
27
28
  newController,
28
29
  newRegistrant
@@ -31,7 +32,7 @@ async function unwrapName_default({ contracts, signer }, name, {
31
32
  const labelhash = (0, import_solidity.keccak256)(["string"], [labels[0]]);
32
33
  const parentNodehash = (0, import_normalise.namehash)(labels.slice(1).join("."));
33
34
  const nameWrapper = (await contracts.getNameWrapper()).connect(signer);
34
- if (labels.length === 2 && labels[1] === "eth") {
35
+ if ((0, import_validation.checkIsDotEth)(labels)) {
35
36
  if (!newRegistrant) {
36
37
  throw new Error("newRegistrant must be specified for .eth names");
37
38
  }
@@ -21,16 +21,17 @@ __export(wrapName_exports, {
21
21
  default: () => wrapName_default
22
22
  });
23
23
  module.exports = __toCommonJS(wrapName_exports);
24
- var import_abi_coder = require("@ethersproject/abi/lib/abi-coder");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_solidity = require("@ethersproject/solidity");
26
26
  var import_fuses = require("../utils/fuses");
27
27
  var import_hexEncodedName = require("../utils/hexEncodedName");
28
+ var import_validation = require("../utils/validation");
28
29
  var import_wrapper = require("../utils/wrapper");
29
30
  async function wrapETH({ contracts }, labels, wrappedOwner, decodedFuses, resolverAddress, signer, address) {
30
31
  const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
31
32
  const baseRegistrar = (await contracts.getBaseRegistrar()).connect(signer);
32
33
  const labelhash = (0, import_solidity.keccak256)(["string"], [labels[0]]);
33
- const data = import_abi_coder.defaultAbiCoder.encode(
34
+ const data = import_abi.defaultAbiCoder.encode(
34
35
  ["string", "address", "uint16", "address"],
35
36
  [labels[0], wrappedOwner, decodedFuses, resolverAddress]
36
37
  );
@@ -67,7 +68,7 @@ async function wrapName_default({ contracts, signer }, name, {
67
68
  resolverAddress = publicResolver.address;
68
69
  const labels = name.split(".");
69
70
  (0, import_wrapper.wrappedLabelLengthCheck)(labels[0]);
70
- if (labels.length === 2 && labels[1] === "eth") {
71
+ if ((0, import_validation.checkIsDotEth)(labels)) {
71
72
  switch (typeof fuseOptions) {
72
73
  case "object": {
73
74
  decodedFuses = (0, import_fuses.encodeFuses)(fuseOptions);
@@ -21,7 +21,7 @@ __export(BaseRegistrarImplementation_factory_exports, {
21
21
  BaseRegistrarImplementation__factory: () => BaseRegistrarImplementation__factory
22
22
  });
23
23
  module.exports = __toCommonJS(BaseRegistrarImplementation_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -778,7 +778,7 @@ const _abi = [
778
778
  ];
779
779
  class BaseRegistrarImplementation__factory {
780
780
  static createInterface() {
781
- return new import_interface.Interface(_abi);
781
+ return new import_abi.Interface(_abi);
782
782
  }
783
783
  static connect(address, signerOrProvider) {
784
784
  return new import_contracts.Contract(
@@ -21,7 +21,7 @@ __export(BulkRenewal_factory_exports, {
21
21
  BulkRenewal__factory: () => BulkRenewal__factory
22
22
  });
23
23
  module.exports = __toCommonJS(BulkRenewal_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -112,7 +112,7 @@ const _abi = [
112
112
  ];
113
113
  class BulkRenewal__factory {
114
114
  static createInterface() {
115
- return new import_interface.Interface(_abi);
115
+ return new import_abi.Interface(_abi);
116
116
  }
117
117
  static connect(address, signerOrProvider) {
118
118
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(DNSRegistrar_factory_exports, {
21
21
  DNSRegistrar__factory: () => DNSRegistrar__factory
22
22
  });
23
23
  module.exports = __toCommonJS(DNSRegistrar_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -281,7 +281,7 @@ const _abi = [
281
281
  ];
282
282
  class DNSRegistrar__factory {
283
283
  static createInterface() {
284
- return new import_interface.Interface(_abi);
284
+ return new import_abi.Interface(_abi);
285
285
  }
286
286
  static connect(address, signerOrProvider) {
287
287
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(DNSSECImpl_factory_exports, {
21
21
  DNSSECImpl__factory: () => DNSSECImpl__factory
22
22
  });
23
23
  module.exports = __toCommonJS(DNSSECImpl_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -486,7 +486,7 @@ const _abi = [
486
486
  ];
487
487
  class DNSSECImpl__factory {
488
488
  static createInterface() {
489
- return new import_interface.Interface(_abi);
489
+ return new import_abi.Interface(_abi);
490
490
  }
491
491
  static connect(address, signerOrProvider) {
492
492
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(DefaultReverseResolver_factory_exports, {
21
21
  DefaultReverseResolver__factory: () => DefaultReverseResolver__factory
22
22
  });
23
23
  module.exports = __toCommonJS(DefaultReverseResolver_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -95,7 +95,7 @@ const _abi = [
95
95
  ];
96
96
  class DefaultReverseResolver__factory {
97
97
  static createInterface() {
98
- return new import_interface.Interface(_abi);
98
+ return new import_abi.Interface(_abi);
99
99
  }
100
100
  static connect(address, signerOrProvider) {
101
101
  return new import_contracts.Contract(
@@ -21,7 +21,7 @@ __export(ENSRegistry_factory_exports, {
21
21
  ENSRegistry__factory: () => ENSRegistry__factory
22
22
  });
23
23
  module.exports = __toCommonJS(ENSRegistry_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -447,7 +447,7 @@ const _abi = [
447
447
  ];
448
448
  class ENSRegistry__factory {
449
449
  static createInterface() {
450
- return new import_interface.Interface(_abi);
450
+ return new import_abi.Interface(_abi);
451
451
  }
452
452
  static connect(address, signerOrProvider) {
453
453
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(ETHRegistrarController_factory_exports, {
21
21
  ETHRegistrarController__factory: () => ETHRegistrarController__factory
22
22
  });
23
23
  module.exports = __toCommonJS(ETHRegistrarController_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -617,7 +617,7 @@ const _abi = [
617
617
  ];
618
618
  class ETHRegistrarController__factory {
619
619
  static createInterface() {
620
- return new import_interface.Interface(_abi);
620
+ return new import_abi.Interface(_abi);
621
621
  }
622
622
  static connect(address, signerOrProvider) {
623
623
  return new import_contracts.Contract(
@@ -21,7 +21,7 @@ __export(Multicall_factory_exports, {
21
21
  Multicall__factory: () => Multicall__factory
22
22
  });
23
23
  module.exports = __toCommonJS(Multicall_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -465,7 +465,7 @@ const _abi = [
465
465
  ];
466
466
  class Multicall__factory {
467
467
  static createInterface() {
468
- return new import_interface.Interface(_abi);
468
+ return new import_abi.Interface(_abi);
469
469
  }
470
470
  static connect(address, signerOrProvider) {
471
471
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(NameWrapper_factory_exports, {
21
21
  NameWrapper__factory: () => NameWrapper__factory
22
22
  });
23
23
  module.exports = __toCommonJS(NameWrapper_factory_exports);
24
- var import_interface = require("@ethersproject/abi/lib/interface");
24
+ var import_abi = require("@ethersproject/abi");
25
25
  var import_contracts = require("@ethersproject/contracts");
26
26
  const _abi = [
27
27
  {
@@ -1397,7 +1397,7 @@ const _abi = [
1397
1397
  ];
1398
1398
  class NameWrapper__factory {
1399
1399
  static createInterface() {
1400
- return new import_interface.Interface(_abi);
1400
+ return new import_abi.Interface(_abi);
1401
1401
  }
1402
1402
  static connect(address, signerOrProvider) {
1403
1403
  return new import_contracts.Contract(address, _abi, signerOrProvider);