@ensdomains/ensjs 3.0.0-alpha.41 → 3.0.0-alpha.43

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 (190) hide show
  1. package/dist/cjs/contracts/getContractAddress.js +4 -4
  2. package/dist/cjs/functions/commitName.js +2 -3
  3. package/dist/cjs/functions/createSubname.js +2 -8
  4. package/dist/cjs/functions/getDecryptedName.js +111 -0
  5. package/dist/cjs/functions/getHistory.js +14 -7
  6. package/dist/cjs/functions/getNames.js +10 -6
  7. package/dist/cjs/functions/getOwner.js +28 -15
  8. package/dist/cjs/functions/getPrice.js +6 -6
  9. package/dist/cjs/functions/getProfile.js +11 -5
  10. package/dist/cjs/functions/getWrapperData.js +4 -5
  11. package/dist/cjs/functions/renewNames.js +13 -20
  12. package/dist/cjs/functions/{burnFuses.js → setFuses.js} +24 -6
  13. package/dist/cjs/functions/wrapName.js +9 -25
  14. package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +2 -2
  15. package/dist/cjs/generated/factories/BulkRenewal__factory.js +2 -2
  16. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +2 -2
  17. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +2 -2
  18. package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +2 -2
  19. package/dist/cjs/generated/factories/ENSRegistry__factory.js +2 -2
  20. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +8 -57
  21. package/dist/cjs/generated/factories/Multicall__factory.js +2 -2
  22. package/dist/cjs/generated/factories/NameWrapper__factory.js +92 -71
  23. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +2 -2
  24. package/dist/cjs/generated/factories/PublicResolver__factory.js +85 -2
  25. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +2 -2
  26. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +2 -2
  27. package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +2 -2
  28. package/dist/cjs/generated/factories/Root__factory.js +2 -2
  29. package/dist/cjs/generated/factories/SHA1Digest__factory.js +2 -2
  30. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +2 -2
  31. package/dist/cjs/generated/factories/SHA256Digest__factory.js +2 -2
  32. package/dist/cjs/generated/factories/StaticMetadataService__factory.js +2 -2
  33. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +2 -2
  34. package/dist/cjs/generated/factories/UniversalResolver__factory.js +69 -4
  35. package/dist/cjs/index.js +6 -4
  36. package/dist/cjs/utils/ccip.js +3 -3
  37. package/dist/cjs/utils/consts.js +3 -1
  38. package/dist/cjs/utils/fuses.js +218 -53
  39. package/dist/cjs/utils/hexEncodedName.js +2 -0
  40. package/dist/cjs/utils/labels.js +14 -8
  41. package/dist/cjs/utils/normalise.js +2 -2
  42. package/dist/cjs/utils/recordHelpers.js +4 -3
  43. package/dist/cjs/utils/registerHelpers.js +11 -25
  44. package/dist/cjs/utils/subgraph-types.js +16 -0
  45. package/dist/cjs/utils/wrapper.js +3 -3
  46. package/dist/esm/contracts/getContractAddress.mjs +4 -4
  47. package/dist/esm/functions/commitName.mjs +2 -3
  48. package/dist/esm/functions/createSubname.mjs +2 -2
  49. package/dist/esm/functions/getDecryptedName.mjs +96 -0
  50. package/dist/esm/functions/getHistory.mjs +14 -7
  51. package/dist/esm/functions/getNames.mjs +10 -6
  52. package/dist/esm/functions/getOwner.mjs +26 -13
  53. package/dist/esm/functions/getPrice.mjs +2 -2
  54. package/dist/esm/functions/getProfile.mjs +10 -4
  55. package/dist/esm/functions/getWrapperData.mjs +4 -5
  56. package/dist/esm/functions/renewNames.mjs +13 -20
  57. package/dist/esm/functions/setFuses.mjs +30 -0
  58. package/dist/esm/functions/wrapName.mjs +9 -19
  59. package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +1 -1
  60. package/dist/esm/generated/factories/BulkRenewal__factory.mjs +1 -1
  61. package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +1 -1
  62. package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +1 -1
  63. package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +1 -1
  64. package/dist/esm/generated/factories/ENSRegistry__factory.mjs +1 -1
  65. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +7 -56
  66. package/dist/esm/generated/factories/Multicall__factory.mjs +1 -1
  67. package/dist/esm/generated/factories/NameWrapper__factory.mjs +91 -70
  68. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +1 -1
  69. package/dist/esm/generated/factories/PublicResolver__factory.mjs +84 -1
  70. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +1 -1
  71. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +1 -1
  72. package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +1 -1
  73. package/dist/esm/generated/factories/Root__factory.mjs +1 -1
  74. package/dist/esm/generated/factories/SHA1Digest__factory.mjs +1 -1
  75. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +1 -1
  76. package/dist/esm/generated/factories/SHA256Digest__factory.mjs +1 -1
  77. package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +1 -1
  78. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +1 -1
  79. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +68 -3
  80. package/dist/esm/index.mjs +6 -4
  81. package/dist/esm/utils/ccip.mjs +2 -2
  82. package/dist/esm/utils/consts.mjs +3 -1
  83. package/dist/esm/utils/fuses.mjs +218 -53
  84. package/dist/esm/utils/hexEncodedName.mjs +2 -0
  85. package/dist/esm/utils/labels.mjs +11 -8
  86. package/dist/esm/utils/normalise.mjs +1 -1
  87. package/dist/esm/utils/recordHelpers.mjs +2 -1
  88. package/dist/esm/utils/registerHelpers.mjs +10 -18
  89. package/dist/esm/utils/subgraph-types.mjs +0 -0
  90. package/dist/esm/utils/wrapper.mjs +2 -2
  91. package/dist/types/functions/commitName.d.ts +0 -1
  92. package/dist/types/functions/createSubname.d.ts +2 -2
  93. package/dist/types/functions/getDecryptedName.d.ts +9 -0
  94. package/dist/types/functions/getHistory.d.ts +1 -1
  95. package/dist/types/functions/getNames.d.ts +3 -3
  96. package/dist/types/functions/getOwner.d.ts +1 -0
  97. package/dist/types/functions/getPrice.d.ts +1 -1
  98. package/dist/types/functions/getProfile.d.ts +1 -0
  99. package/dist/types/functions/getRecords.d.ts +1 -0
  100. package/dist/types/functions/getWrapperData.d.ts +44 -5
  101. package/dist/types/functions/registerName.d.ts +1 -1
  102. package/dist/types/functions/renewNames.d.ts +5 -6
  103. package/dist/types/functions/setFuses.d.ts +7 -0
  104. package/dist/types/functions/types.d.ts +8 -4
  105. package/dist/types/functions/wrapName.d.ts +3 -3
  106. package/dist/types/generated/ETHRegistrarController.d.ts +13 -36
  107. package/dist/types/generated/NameWrapper.d.ts +97 -52
  108. package/dist/types/generated/PublicResolver.d.ts +50 -1
  109. package/dist/types/generated/UniversalResolver.d.ts +79 -32
  110. package/dist/types/generated/factories/UniversalResolver__factory.d.ts +15 -0
  111. package/dist/types/index.d.ts +60 -9
  112. package/dist/types/static.d.ts +1 -1
  113. package/dist/types/utils/consts.d.ts +1 -0
  114. package/dist/types/utils/fuses.d.ts +115 -45
  115. package/dist/types/utils/hexEncodedName.d.ts +1 -0
  116. package/dist/types/utils/labels.d.ts +2 -1
  117. package/dist/types/utils/registerHelpers.d.ts +7 -25
  118. package/dist/types/utils/subgraph-types.d.ts +284 -0
  119. package/dist/types/utils/wrapper.d.ts +1 -1
  120. package/package.json +5 -5
  121. package/src/contracts/getContractAddress.ts +4 -4
  122. package/src/functions/commitName.test.ts +0 -3
  123. package/src/functions/commitName.ts +1 -2
  124. package/src/functions/createSubname.ts +5 -6
  125. package/src/functions/getDecryptedName.test.ts +49 -0
  126. package/src/functions/getDecryptedName.ts +119 -0
  127. package/src/functions/getExpiry.ts +1 -1
  128. package/src/functions/getHistory.ts +59 -25
  129. package/src/functions/getNames.test.ts +2 -2
  130. package/src/functions/getNames.ts +26 -13
  131. package/src/functions/getOwner.test.ts +62 -3
  132. package/src/functions/getOwner.ts +33 -13
  133. package/src/functions/getPrice.ts +2 -2
  134. package/src/functions/getProfile.test.ts +7 -0
  135. package/src/functions/getProfile.ts +13 -4
  136. package/src/functions/getWrapperData.test.ts +11 -45
  137. package/src/functions/getWrapperData.ts +8 -6
  138. package/src/functions/registerName.test.ts +3 -3
  139. package/src/functions/registerName.ts +1 -1
  140. package/src/functions/renewNames.ts +18 -24
  141. package/src/functions/setFuses.test.ts +240 -0
  142. package/src/functions/setFuses.ts +44 -0
  143. package/src/functions/types.ts +8 -4
  144. package/src/functions/wrapName.test.ts +8 -7
  145. package/src/functions/wrapName.ts +11 -25
  146. package/src/generated/ETHRegistrarController.ts +12 -79
  147. package/src/generated/NameWrapper.ts +155 -99
  148. package/src/generated/PublicResolver.ts +123 -0
  149. package/src/generated/UniversalResolver.ts +157 -16
  150. package/src/generated/factories/BaseRegistrarImplementation__factory.ts +1 -1
  151. package/src/generated/factories/BulkRenewal__factory.ts +1 -1
  152. package/src/generated/factories/DNSRegistrar__factory.ts +1 -1
  153. package/src/generated/factories/DNSSECImpl__factory.ts +1 -1
  154. package/src/generated/factories/DefaultReverseResolver__factory.ts +1 -1
  155. package/src/generated/factories/ENSRegistry__factory.ts +1 -1
  156. package/src/generated/factories/ETHRegistrarController__factory.ts +7 -56
  157. package/src/generated/factories/Multicall__factory.ts +1 -1
  158. package/src/generated/factories/NameWrapper__factory.ts +91 -70
  159. package/src/generated/factories/P256SHA256Algorithm__factory.ts +1 -1
  160. package/src/generated/factories/PublicResolver__factory.ts +84 -1
  161. package/src/generated/factories/RSASHA1Algorithm__factory.ts +1 -1
  162. package/src/generated/factories/RSASHA256Algorithm__factory.ts +1 -1
  163. package/src/generated/factories/ReverseRegistrar__factory.ts +1 -1
  164. package/src/generated/factories/Root__factory.ts +1 -1
  165. package/src/generated/factories/SHA1Digest__factory.ts +1 -1
  166. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +1 -1
  167. package/src/generated/factories/SHA256Digest__factory.ts +1 -1
  168. package/src/generated/factories/StaticMetadataService__factory.ts +1 -1
  169. package/src/generated/factories/TLDPublicSuffixList__factory.ts +1 -1
  170. package/src/generated/factories/UniversalResolver__factory.ts +68 -3
  171. package/src/index.ts +15 -14
  172. package/src/static.ts +1 -1
  173. package/src/utils/ccip.ts +2 -2
  174. package/src/utils/consts.ts +1 -0
  175. package/src/utils/fuses.ts +299 -102
  176. package/src/utils/hexEncodedName.ts +3 -0
  177. package/src/utils/labels.ts +13 -11
  178. package/src/utils/normalise.ts +1 -1
  179. package/src/utils/recordHelpers.ts +2 -1
  180. package/src/utils/registerHelpers.ts +14 -42
  181. package/src/utils/subgraph-types.ts +312 -0
  182. package/src/utils/wrapper.ts +2 -2
  183. package/dist/cjs/utils/generateFuseInput.js +0 -40
  184. package/dist/esm/functions/burnFuses.mjs +0 -12
  185. package/dist/esm/utils/generateFuseInput.mjs +0 -15
  186. package/dist/types/functions/burnFuses.d.ts +0 -3
  187. package/dist/types/utils/generateFuseInput.d.ts +0 -3
  188. package/src/functions/burnFuses.test.ts +0 -148
  189. package/src/functions/burnFuses.ts +0 -16
  190. package/src/utils/generateFuseInput.ts +0 -13
@@ -37,19 +37,19 @@ const addresses = {
37
37
  "1": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
38
38
  "3": "0xa5627AB7Ae47063B533622C34FEBDb52d3281dF8",
39
39
  "4": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
40
- "5": "0x9C51161bA2FB02Cc0a403332B607117685f34831"
40
+ "5": "0xb7A1f9e633fdeaAa2ec44bE00a61a7Db9a733D70"
41
41
  },
42
42
  Multicall: "0xcA11bde05977b3631167028862bE2a173976CA11",
43
43
  NameWrapper: {
44
44
  "1": "0x0000000000000000000000000000000000000000",
45
45
  "3": "0xF82155e2a43Be0871821E9654Fc8Ae894FB8307C",
46
46
  "4": "0x0000000000000000000000000000000000000000",
47
- "5": "0x582224b8d4534F4749EFA4f22eF7241E0C56D4B8"
47
+ "5": "0xEe1F756aCde7E81B2D8cC6aB3c8A1E2cE6db0F39"
48
48
  },
49
49
  PublicResolver: {
50
50
  "1": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
51
51
  "3": "0x13F0659Ee6bb7484C884FEeFb7F75C93951ef837",
52
- "5": "0xE264d5bb84bA3b8061ADC38D3D76e6674aB91852"
52
+ "5": "0x2800Ec5BAB9CE9226d19E0ad5BC607e3cfC4347E"
53
53
  },
54
54
  ENSRegistry: {
55
55
  "1": "0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e",
@@ -60,7 +60,7 @@ const addresses = {
60
60
  ReverseRegistrar: {
61
61
  "1": "0x084b1c3C81545d370f3634392De611CaaBFf8148",
62
62
  "3": "0x806246b52f8cB61655d3038c58D2f63Aa55d4edE",
63
- "5": "0xD5610A08E370051a01fdfe4bB3ddf5270af1aA48"
63
+ "5": "0x9a879320A9F7ad2BBb02063d67baF5551D6BD8B0"
64
64
  },
65
65
  UniversalResolver: {
66
66
  "1": "0x74E20Bd2A1fE0cdbe45b9A1d89cb7e0a45b36376",
@@ -33,7 +33,7 @@ async function commitName_default({ contracts }, name, { resolverAddress, ...par
33
33
  void 0,
34
34
  resolverAddress
35
35
  );
36
- const { secret, commitment, wrapperExpiry } = (0, import_registerHelpers.makeCommitment)({
36
+ const { secret, commitment } = (0, import_registerHelpers.makeCommitment)({
37
37
  name,
38
38
  resolver,
39
39
  ...params
@@ -42,8 +42,7 @@ async function commitName_default({ contracts }, name, { resolverAddress, ...par
42
42
  ...await controller.populateTransaction.commit(commitment),
43
43
  customData: {
44
44
  secret,
45
- commitment,
46
- wrapperExpiry
45
+ commitment
47
46
  }
48
47
  };
49
48
  }
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
19
  var createSubname_exports = {};
26
20
  __export(createSubname_exports, {
@@ -28,7 +22,7 @@ __export(createSubname_exports, {
28
22
  });
29
23
  module.exports = __toCommonJS(createSubname_exports);
30
24
  var import_solidity = require("@ethersproject/solidity");
31
- var import_generateFuseInput = __toESM(require("../utils/generateFuseInput"));
25
+ var import_fuses = require("../utils/fuses");
32
26
  var import_normalise = require("../utils/normalise");
33
27
  var import_wrapper = require("../utils/wrapper");
34
28
  async function createSubname_default({
@@ -68,7 +62,7 @@ async function createSubname_default({
68
62
  name,
69
63
  "expiry" in wrapperArgs ? wrapperArgs.expiry : void 0
70
64
  );
71
- const generatedFuses = "fuses" in wrapperArgs && wrapperArgs.fuses ? (0, import_generateFuseInput.default)(wrapperArgs.fuses) : "0";
65
+ const generatedFuses = "fuses" in wrapperArgs && wrapperArgs.fuses ? (0, import_fuses.encodeFuses)(wrapperArgs.fuses) : 0;
72
66
  return nameWrapper.populateTransaction.setSubnodeRecord(
73
67
  parentNodehash,
74
68
  label,
@@ -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
+ };
@@ -29,17 +29,20 @@ var import_normalise = require("../utils/normalise");
29
29
  const eventFormat = {
30
30
  Domain: {
31
31
  NewOwner: (args) => ({ owner: args.owner.id }),
32
- NewResolver: (args) => ({ resolver: args.resolver.id.split("-")[0] }),
32
+ NewResolver: (args) => ({
33
+ resolver: args.resolver.id.split("-")[0]
34
+ }),
33
35
  Transfer: (args) => ({ owner: args.owner.id }),
34
36
  NewTTL: (args) => ({ ttl: args.ttl }),
35
37
  WrappedTransfer: (args) => ({ owner: args.owner.id }),
36
38
  NameWrapped: (args) => ({
37
39
  fuses: args.fuses,
38
40
  owner: args.owner.id,
39
- expiry: args.expiry
41
+ expiryDate: args.expiryDate
40
42
  }),
41
43
  NameUnwrapped: (args) => ({ owner: args.owner.id }),
42
- FusesSet: (args) => ({ fuses: args.fuses, expiry: args.expiry })
44
+ FusesSet: (args) => ({ fuses: args.fuses }),
45
+ ExpiryExtended: (args) => ({ expiryDate: args.expiryDate })
43
46
  },
44
47
  Registration: {
45
48
  NameRegistered: (args) => ({
@@ -76,9 +79,11 @@ const eventFormat = {
76
79
  AbiChanged: (args) => ({ contentType: args.contentType }),
77
80
  PubkeyChanged: (args) => ({ x: args.x, y: args.y }),
78
81
  TextChanged: (args) => ({ key: args.key, value: args.value }),
79
- ContenthashChanged: (args) => ({ hash: (0, import_contentHash.decodeContenthash)(args.hash) }),
82
+ ContenthashChanged: (args) => ({
83
+ hash: (0, import_contentHash.decodeContenthash)(args.hash)
84
+ }),
80
85
  InterfaceChanged: (args) => ({
81
- interfaceId: args.interfaceId,
86
+ interfaceId: args.interfaceID,
82
87
  implementer: args.implementer
83
88
  }),
84
89
  AuthorisationChanged: (args) => ({
@@ -133,7 +138,7 @@ async function getHistory({ gqlInstance }, name) {
133
138
  }
134
139
  ...on NameWrapped {
135
140
  fuses
136
- expiry
141
+ expiryDate
137
142
  owner {
138
143
  id
139
144
  }
@@ -145,7 +150,9 @@ async function getHistory({ gqlInstance }, name) {
145
150
  }
146
151
  ...on FusesSet {
147
152
  fuses
148
- expiry
153
+ }
154
+ ...on ExpiryExtended {
155
+ expiryDate
149
156
  }
150
157
  }
151
158
  registration {
@@ -24,12 +24,12 @@ module.exports = __toCommonJS(getNames_exports);
24
24
  var import_format = require("../utils/format");
25
25
  var import_fuses = require("../utils/fuses");
26
26
  var import_labels = require("../utils/labels");
27
- const mapDomain = (domain) => {
28
- const decrypted = (0, import_labels.decryptName)(domain.name);
27
+ const mapDomain = ({ name, ...domain }) => {
28
+ const decrypted = name ? (0, import_labels.decryptName)(name) : void 0;
29
29
  return {
30
30
  ...domain,
31
31
  name: decrypted,
32
- truncatedName: (0, import_format.truncateFormat)(decrypted),
32
+ truncatedName: decrypted ? (0, import_format.truncateFormat)(decrypted) : void 0,
33
33
  createdAt: new Date(parseInt(domain.createdAt) * 1e3),
34
34
  type: "domain"
35
35
  };
@@ -38,8 +38,12 @@ const mapWrappedDomain = (wrappedDomain) => {
38
38
  const domain = mapDomain(wrappedDomain.domain);
39
39
  if (domain.registration) {
40
40
  domain.registration = {
41
- expiryDate: new Date(parseInt(domain.registration.expiryDate) * 1e3),
42
- registrationDate: new Date(domain.registration.registrationDate * 1e3)
41
+ expiryDate: new Date(
42
+ parseInt(domain.registration.expiryDate) * 1e3
43
+ ),
44
+ registrationDate: new Date(
45
+ parseInt(domain.registration.registrationDate) * 1e3
46
+ )
43
47
  };
44
48
  }
45
49
  return {
@@ -231,7 +235,7 @@ const getNames = async ({ gqlInstance }, {
231
235
  id: address,
232
236
  first: pageSize,
233
237
  skip: (page || 0) * pageSize,
234
- orderBy,
238
+ orderBy: orderBy === "labelName" ? "name" : orderBy,
235
239
  orderDirection
236
240
  };
237
241
  }
@@ -21,7 +21,7 @@ __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");
@@ -98,7 +98,7 @@ const registrantQuery = `
98
98
  }
99
99
  }
100
100
  `;
101
- const singleContractOwnerDecode = (data) => import_abi_coder.defaultAbiCoder.decode(["address"], data)[0];
101
+ const singleContractOwnerDecode = (data) => import_abi.defaultAbiCoder.decode(["address"], data)[0];
102
102
  const decode = async ({
103
103
  contracts,
104
104
  multicallWrapper,
@@ -129,32 +129,44 @@ const decode = async ({
129
129
  return;
130
130
  const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
131
131
  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)
132
+ (ret) => ret && ret !== "0x" && import_abi.defaultAbiCoder.decode(["address"], ret)
133
133
  );
134
134
  const registryOwner = decodedData[0][0];
135
135
  const nameWrapperOwner = decodedData[1][0];
136
136
  let registrarOwner = (_b = decodedData[2]) == null ? void 0 : _b[0];
137
+ let baseReturnObject = {};
137
138
  if (labels[labels.length - 1] === "eth") {
138
- if (!registrarOwner && labels.length === 2) {
139
- const graphRegistrantResult = await gqlInstance.client.request(
140
- registrantQuery,
141
- {
142
- namehash: (0, import_normalise.namehash)(name)
143
- }
144
- );
145
- registrarOwner = (_e = (_d = (_c = graphRegistrantResult.domain) == null ? void 0 : _c.registration) == null ? void 0 : _d.registrant) == null ? void 0 : _e.id;
139
+ if (labels.length === 2) {
140
+ if (!registrarOwner) {
141
+ const graphRegistrantResult = await gqlInstance.client.request(
142
+ registrantQuery,
143
+ {
144
+ namehash: (0, import_normalise.namehash)(name)
145
+ }
146
+ );
147
+ registrarOwner = (_e = (_d = (_c = graphRegistrantResult.domain) == null ? void 0 : _c.registration) == null ? void 0 : _d.registrant) == null ? void 0 : _e.id;
148
+ baseReturnObject = {
149
+ expired: true
150
+ };
151
+ } else {
152
+ baseReturnObject = {
153
+ expired: false
154
+ };
155
+ }
146
156
  }
147
- if (registrarOwner === nameWrapper.address) {
157
+ if ((registrarOwner == null ? void 0 : registrarOwner.toLowerCase()) === nameWrapper.address.toLowerCase()) {
148
158
  return {
149
159
  owner: nameWrapperOwner,
150
- ownershipLevel: "nameWrapper"
160
+ ownershipLevel: "nameWrapper",
161
+ ...baseReturnObject
151
162
  };
152
163
  }
153
164
  if (registrarOwner) {
154
165
  return {
155
166
  registrant: registrarOwner,
156
167
  owner: registryOwner,
157
- ownershipLevel: "registrar"
168
+ ownershipLevel: "registrar",
169
+ ...baseReturnObject
158
170
  };
159
171
  }
160
172
  if ((0, import_bytes.hexStripZeros)(registryOwner) !== "0x") {
@@ -162,7 +174,8 @@ const decode = async ({
162
174
  return {
163
175
  registrant: void 0,
164
176
  owner: registryOwner,
165
- ownershipLevel: "registrar"
177
+ ownershipLevel: "registrar",
178
+ expired: true
166
179
  };
167
180
  }
168
181
  if (registryOwner === nameWrapper.address && nameWrapperOwner && (0, import_bytes.hexStripZeros)(nameWrapperOwner) !== "0x") {
@@ -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) => {
@@ -34,15 +34,14 @@ const raw = async ({ contracts }, name) => {
34
34
  const decode = async ({ contracts }, data) => {
35
35
  const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
36
36
  try {
37
- const [owner, _fuses, expiry] = nameWrapper.interface.decodeFunctionResult(
37
+ const [owner, fuses, expiry] = nameWrapper.interface.decodeFunctionResult(
38
38
  "getData",
39
39
  data
40
40
  );
41
- const fuses = import_bignumber.BigNumber.from(_fuses);
42
41
  const fuseObj = (0, import_fuses.decodeFuses)(fuses);
43
- const expiryDate = new Date(expiry * 1e3);
42
+ const expiryDate = expiry.gt(0) && expiry.lt(import_bignumber.BigNumber.from(2).pow(32)) ? new Date(expiry.mul(1e3).toString()) : void 0;
44
43
  return {
45
- fuseObj,
44
+ ...fuseObj,
46
45
  expiryDate,
47
46
  rawFuses: fuses,
48
47
  owner
@@ -19,29 +19,22 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var renewNames_exports = {};
20
20
  __export(renewNames_exports, {
21
21
  default: () => renewNames_default,
22
- renewNameWithData: () => renewNameWithData
22
+ extendWrappedName: () => extendWrappedName
23
23
  });
24
24
  module.exports = __toCommonJS(renewNames_exports);
25
- var import_fuses = require("../utils/fuses");
26
- var import_registerHelpers = require("../utils/registerHelpers");
27
- async function renewNameWithData({ contracts }, name, {
28
- duration,
29
- value,
30
- fuses,
31
- wrapperExpiry = import_registerHelpers.MAX_INT_64
32
- }) {
25
+ var import_consts = require("../utils/consts");
26
+ var import_labels = require("../utils/labels");
27
+ var import_normalise = require("../utils/normalise");
28
+ async function extendWrappedName({ contracts }, name, options) {
29
+ const expiry = (options == null ? void 0 : options.duration) || import_consts.MAX_INT_64;
33
30
  const labels = name.split(".");
34
- if (labels.length !== 2 || labels[1] !== "eth") {
35
- throw new Error("Currently only .eth TLD renewals are supported");
36
- }
37
- const encodedFuses = fuses ? (0, import_fuses.validateFuses)(fuses) : 0;
38
- const controller = await contracts.getEthRegistrarController();
39
- return controller.populateTransaction.renewWithFuses(
40
- labels[0],
41
- duration,
42
- encodedFuses,
43
- wrapperExpiry,
44
- { value }
31
+ const labelHash = (0, import_labels.labelhash)(labels.shift());
32
+ const parentNode = (0, import_normalise.namehash)(labels.join("."));
33
+ const nameWrapper = await contracts.getNameWrapper();
34
+ return nameWrapper.populateTransaction.extendExpiry(
35
+ parentNode,
36
+ labelHash,
37
+ expiry
45
38
  );
46
39
  }
47
40
  async function renewNames_default({ contracts }, nameOrNames, { duration, value }) {
@@ -16,15 +16,33 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var burnFuses_exports = {};
20
- __export(burnFuses_exports, {
21
- default: () => burnFuses_default
19
+ var setFuses_exports = {};
20
+ __export(setFuses_exports, {
21
+ default: () => setFuses_default,
22
+ setChildFuses: () => setChildFuses
22
23
  });
23
- module.exports = __toCommonJS(burnFuses_exports);
24
+ module.exports = __toCommonJS(setFuses_exports);
24
25
  var import_fuses = require("../utils/fuses");
26
+ var import_labels = require("../utils/labels");
25
27
  var import_normalise = require("../utils/normalise");
26
- async function burnFuses_default({ contracts, signer }, name, props) {
27
- const encodedFuses = (0, import_fuses.validateFuses)(props);
28
+ async function setChildFuses({ contracts, signer }, name, {
29
+ fuses,
30
+ expiry = 0
31
+ }) {
32
+ const encodedFuses = (0, import_fuses.encodeFuses)(fuses);
33
+ const labels = name.split(".");
34
+ const labelHash = (0, import_labels.labelhash)(labels.shift());
35
+ const parentNode = (0, import_normalise.namehash)(labels.join("."));
36
+ const nameWrapper = (await contracts.getNameWrapper()).connect(signer);
37
+ return nameWrapper.populateTransaction.setChildFuses(
38
+ parentNode,
39
+ labelHash,
40
+ encodedFuses,
41
+ expiry
42
+ );
43
+ }
44
+ async function setFuses_default({ contracts, signer }, name, props) {
45
+ const encodedFuses = (0, import_fuses.encodeFuses)(props, "child");
28
46
  const nameWrapper = (await contracts.getNameWrapper()).connect(signer);
29
47
  const hash = (0, import_normalise.namehash)(name);
30
48
  return nameWrapper.populateTransaction.setFuses(hash, encodedFuses);