@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
@@ -21,7 +21,7 @@ __export(P256SHA256Algorithm_factory_exports, {
21
21
  P256SHA256Algorithm__factory: () => P256SHA256Algorithm__factory
22
22
  });
23
23
  module.exports = __toCommonJS(P256SHA256Algorithm_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
  {
@@ -56,7 +56,7 @@ const _abi = [
56
56
  ];
57
57
  class P256SHA256Algorithm__factory {
58
58
  static createInterface() {
59
- return new import_interface.Interface(_abi);
59
+ return new import_abi.Interface(_abi);
60
60
  }
61
61
  static connect(address, signerOrProvider) {
62
62
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(PublicResolver_factory_exports, {
21
21
  PublicResolver__factory: () => PublicResolver__factory
22
22
  });
23
23
  module.exports = __toCommonJS(PublicResolver_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
  {
@@ -1038,7 +1038,7 @@ const _abi = [
1038
1038
  ];
1039
1039
  class PublicResolver__factory {
1040
1040
  static createInterface() {
1041
- return new import_interface.Interface(_abi);
1041
+ return new import_abi.Interface(_abi);
1042
1042
  }
1043
1043
  static connect(address, signerOrProvider) {
1044
1044
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(RSASHA1Algorithm_factory_exports, {
21
21
  RSASHA1Algorithm__factory: () => RSASHA1Algorithm__factory
22
22
  });
23
23
  module.exports = __toCommonJS(RSASHA1Algorithm_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
  {
@@ -56,7 +56,7 @@ const _abi = [
56
56
  ];
57
57
  class RSASHA1Algorithm__factory {
58
58
  static createInterface() {
59
- return new import_interface.Interface(_abi);
59
+ return new import_abi.Interface(_abi);
60
60
  }
61
61
  static connect(address, signerOrProvider) {
62
62
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(RSASHA256Algorithm_factory_exports, {
21
21
  RSASHA256Algorithm__factory: () => RSASHA256Algorithm__factory
22
22
  });
23
23
  module.exports = __toCommonJS(RSASHA256Algorithm_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
  {
@@ -56,7 +56,7 @@ const _abi = [
56
56
  ];
57
57
  class RSASHA256Algorithm__factory {
58
58
  static createInterface() {
59
- return new import_interface.Interface(_abi);
59
+ return new import_abi.Interface(_abi);
60
60
  }
61
61
  static connect(address, signerOrProvider) {
62
62
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(ReverseRegistrar_factory_exports, {
21
21
  ReverseRegistrar__factory: () => ReverseRegistrar__factory
22
22
  });
23
23
  module.exports = __toCommonJS(ReverseRegistrar_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
  {
@@ -361,7 +361,7 @@ const _abi = [
361
361
  ];
362
362
  class ReverseRegistrar__factory {
363
363
  static createInterface() {
364
- return new import_interface.Interface(_abi);
364
+ return new import_abi.Interface(_abi);
365
365
  }
366
366
  static connect(address, signerOrProvider) {
367
367
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(Root_factory_exports, {
21
21
  Root__factory: () => Root__factory
22
22
  });
23
23
  module.exports = __toCommonJS(Root_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
  {
@@ -251,7 +251,7 @@ const _abi = [
251
251
  ];
252
252
  class Root__factory {
253
253
  static createInterface() {
254
- return new import_interface.Interface(_abi);
254
+ return new import_abi.Interface(_abi);
255
255
  }
256
256
  static connect(address, signerOrProvider) {
257
257
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(SHA1Digest_factory_exports, {
21
21
  SHA1Digest__factory: () => SHA1Digest__factory
22
22
  });
23
23
  module.exports = __toCommonJS(SHA1Digest_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
  {
@@ -51,7 +51,7 @@ const _abi = [
51
51
  ];
52
52
  class SHA1Digest__factory {
53
53
  static createInterface() {
54
- return new import_interface.Interface(_abi);
54
+ return new import_abi.Interface(_abi);
55
55
  }
56
56
  static connect(address, signerOrProvider) {
57
57
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(SHA1NSEC3Digest_factory_exports, {
21
21
  SHA1NSEC3Digest__factory: () => SHA1NSEC3Digest__factory
22
22
  });
23
23
  module.exports = __toCommonJS(SHA1NSEC3Digest_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
  {
@@ -56,7 +56,7 @@ const _abi = [
56
56
  ];
57
57
  class SHA1NSEC3Digest__factory {
58
58
  static createInterface() {
59
- return new import_interface.Interface(_abi);
59
+ return new import_abi.Interface(_abi);
60
60
  }
61
61
  static connect(address, signerOrProvider) {
62
62
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(SHA256Digest_factory_exports, {
21
21
  SHA256Digest__factory: () => SHA256Digest__factory
22
22
  });
23
23
  module.exports = __toCommonJS(SHA256Digest_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
  {
@@ -51,7 +51,7 @@ const _abi = [
51
51
  ];
52
52
  class SHA256Digest__factory {
53
53
  static createInterface() {
54
- return new import_interface.Interface(_abi);
54
+ return new import_abi.Interface(_abi);
55
55
  }
56
56
  static connect(address, signerOrProvider) {
57
57
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(StaticMetadataService_factory_exports, {
21
21
  StaticMetadataService__factory: () => StaticMetadataService__factory
22
22
  });
23
23
  module.exports = __toCommonJS(StaticMetadataService_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
  {
@@ -57,7 +57,7 @@ const _abi = [
57
57
  ];
58
58
  class StaticMetadataService__factory {
59
59
  static createInterface() {
60
- return new import_interface.Interface(_abi);
60
+ return new import_abi.Interface(_abi);
61
61
  }
62
62
  static connect(address, signerOrProvider) {
63
63
  return new import_contracts.Contract(
@@ -21,7 +21,7 @@ __export(TLDPublicSuffixList_factory_exports, {
21
21
  TLDPublicSuffixList__factory: () => TLDPublicSuffixList__factory
22
22
  });
23
23
  module.exports = __toCommonJS(TLDPublicSuffixList_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
  {
@@ -46,7 +46,7 @@ const _abi = [
46
46
  ];
47
47
  class TLDPublicSuffixList__factory {
48
48
  static createInterface() {
49
- return new import_interface.Interface(_abi);
49
+ return new import_abi.Interface(_abi);
50
50
  }
51
51
  static connect(address, signerOrProvider) {
52
52
  return new import_contracts.Contract(address, _abi, signerOrProvider);
@@ -21,7 +21,7 @@ __export(UniversalResolver_factory_exports, {
21
21
  UniversalResolver__factory: () => UniversalResolver__factory
22
22
  });
23
23
  module.exports = __toCommonJS(UniversalResolver_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
  {
@@ -554,7 +554,7 @@ const _abi = [
554
554
  ];
555
555
  class UniversalResolver__factory {
556
556
  static createInterface() {
557
- return new import_interface.Interface(_abi);
557
+ return new import_abi.Interface(_abi);
558
558
  }
559
559
  static connect(address, signerOrProvider) {
560
560
  return new import_contracts.Contract(address, _abi, signerOrProvider);
package/dist/cjs/index.js CHANGED
@@ -278,9 +278,10 @@ class ENS {
278
278
  "getAvailable",
279
279
  ["contracts"]
280
280
  );
281
+ this.getDecryptedName = this.generateRawFunction("getDecryptedName", ["contracts", "gqlInstance"]);
281
282
  this.universalWrapper = this.generateRawFunction("initialGetters", ["contracts"], "universalWrapper");
282
283
  this.resolverMulticallWrapper = this.generateRawFunction("initialGetters", ["contracts"], "resolverMulticallWrapper");
283
- this.multicallWrapper = this.generateRawFunction("initialGetters", ["contracts"], "multicallWrapper");
284
+ this.multicallWrapper = this.generateRawFunction("initialGetters", ["contracts", "provider"], "multicallWrapper");
284
285
  this.setName = this.generateWriteFunction(
285
286
  "setName",
286
287
  ["contracts"]
@@ -21,9 +21,9 @@ __export(ccip_exports, {
21
21
  default: () => ccip_default
22
22
  });
23
23
  module.exports = __toCommonJS(ccip_exports);
24
- var import_bignumber = require("@ethersproject/bignumber/lib/bignumber");
24
+ var import_bignumber = require("@ethersproject/bignumber");
25
25
  var import_bytes = require("@ethersproject/bytes");
26
- var import_utf8 = require("@ethersproject/strings/lib/utf8");
26
+ var import_strings = require("@ethersproject/strings");
27
27
  function bytesPad(value) {
28
28
  if (value.length % 32 === 0) {
29
29
  return value;
@@ -74,7 +74,7 @@ function _parseString(result, start) {
74
74
  const bytes = _parseBytes(result, start);
75
75
  if (bytes == null)
76
76
  return null;
77
- return (0, import_utf8.toUtf8String)(bytes);
77
+ return (0, import_strings.toUtf8String)(bytes);
78
78
  } catch (error) {
79
79
  }
80
80
  return null;
@@ -115,7 +115,7 @@ const ccipLookup = async (provider, transaction, result) => {
115
115
  throw new Error("CCIP Read disabled or provided no URLs");
116
116
  }
117
117
  const tx = {
118
- to: sender,
118
+ to: txSender,
119
119
  data: (0, import_bytes.hexConcat)([
120
120
  callbackSelector,
121
121
  encodeBytes([ccipResult, extraData])
@@ -74,6 +74,7 @@ const userSettableFuseEnum = {
74
74
  };
75
75
  const fullFuseEnum = {
76
76
  ...userSettableFuseEnum,
77
+ ...fullParentFuseEnum,
77
78
  CAN_DO_EVERYTHING
78
79
  };
79
80
  const unnamedChildFuses = [
@@ -256,14 +257,14 @@ const decodeNamedFuses = (fuses, arr) => {
256
257
  const fuseObj = Object.fromEntries(
257
258
  arr.map((fuse) => [
258
259
  fuse,
259
- (fuses & userSettableFuseEnum[fuse]) > 0
260
+ (fuses & fullFuseEnum[fuse]) === fullFuseEnum[fuse]
260
261
  ])
261
262
  );
262
263
  return fuseObj;
263
264
  };
264
265
  const decodeUnnamedFuses = (fuses, arr) => {
265
266
  const fuseObj = Object.fromEntries(
266
- arr.map((fuse) => [fuse, (fuses & fuse) > 0])
267
+ arr.map((fuse) => [fuse, (fuses & fuse) === fuse])
267
268
  );
268
269
  return fuseObj;
269
270
  };
@@ -24,8 +24,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
25
  var hexEncodedName_exports = {};
26
26
  __export(hexEncodedName_exports, {
27
+ hexDecodeName: () => hexDecodeName,
27
28
  hexEncodeName: () => hexEncodeName
28
29
  });
29
30
  module.exports = __toCommonJS(hexEncodedName_exports);
30
31
  var import_dns_packet = __toESM(require("dns-packet"));
31
32
  const hexEncodeName = (name) => `0x${import_dns_packet.default.name.encode(name).toString("hex")}`;
33
+ const hexDecodeName = (hex) => import_dns_packet.default.name.decode(Buffer.from(hex.slice(2), "hex")).toString();
@@ -25,6 +25,7 @@ __export(labels_exports, {
25
25
  decryptName: () => decryptName,
26
26
  encodeLabel: () => encodeLabel,
27
27
  encodeLabelhash: () => encodeLabelhash,
28
+ getEncryptedLabelAmount: () => getEncryptedLabelAmount,
28
29
  isEncodedLabelhash: () => isEncodedLabelhash,
29
30
  keccakFromString: () => keccakFromString,
30
31
  labelhash: () => labelhash,
@@ -84,18 +85,18 @@ function saveLabel(label) {
84
85
  }
85
86
  function saveName(name) {
86
87
  const nameArray = name.split(".");
87
- nameArray.forEach((label) => {
88
- saveLabel(label);
89
- });
88
+ for (const label of nameArray) {
89
+ if (!isEncodedLabelhash(label)) {
90
+ saveLabel(label);
91
+ }
92
+ }
90
93
  }
91
94
  function checkLabel(hash) {
92
95
  const labels = getLabels();
93
96
  if (isEncodedLabelhash(hash)) {
94
- return labels[decodeLabelhash(hash)];
95
- }
96
- if (hash.startsWith("0x")) {
97
- return labels[`${hash.slice(2)}`];
97
+ return labels[decodeLabelhash(hash)] || hash;
98
98
  }
99
+ return hash;
99
100
  }
100
101
  function encodeLabel(label) {
101
102
  try {
@@ -112,7 +113,7 @@ function checkIsDecrypted(string) {
112
113
  return !(string == null ? void 0 : string.includes("["));
113
114
  }
114
115
  function decryptName(name) {
115
- return name.split(".").map((label) => checkLabel(label) || label).join(".");
116
+ return name.split(".").map((label) => checkLabel(label)).join(".");
116
117
  }
117
118
  const truncateUndecryptedName = (name) => (0, import_format.truncateFormat)(name);
118
119
  function checkLocalStorageSize() {
@@ -126,3 +127,8 @@ function checkLocalStorageSize() {
126
127
  }
127
128
  return allStrings ? `${3 + allStrings.length * 16 / (8 * 1024)} KB` : "Empty (0 KB)";
128
129
  }
130
+ const encodedLabelRegex = /\[[a-fA-F0-9]{64}\]/g;
131
+ const getEncryptedLabelAmount = (name) => {
132
+ var _a;
133
+ return ((_a = name.match(encodedLabelRegex)) == null ? void 0 : _a.length) || 0;
134
+ };
@@ -25,7 +25,7 @@ __export(registerHelpers_exports, {
25
25
  randomSecret: () => randomSecret
26
26
  });
27
27
  module.exports = __toCommonJS(registerHelpers_exports);
28
- var import_abi_coder = require("@ethersproject/abi/lib/abi-coder");
28
+ var import_abi = require("@ethersproject/abi");
29
29
  var import_keccak256 = require("@ethersproject/keccak256");
30
30
  var import_fuses = require("./fuses");
31
31
  var import_labels = require("./labels");
@@ -79,7 +79,7 @@ const makeRegistrationData = (params) => {
79
79
  };
80
80
  const _makeCommitment = (params) => {
81
81
  return (0, import_keccak256.keccak256)(
82
- import_abi_coder.defaultAbiCoder.encode(
82
+ import_abi.defaultAbiCoder.encode(
83
83
  [
84
84
  "bytes32",
85
85
  "address",
@@ -21,4 +21,12 @@ __export(singleCall_exports, {
21
21
  default: () => singleCall_default
22
22
  });
23
23
  module.exports = __toCommonJS(singleCall_exports);
24
- var singleCall_default = async (provider, ensData, func, ...data) => func.raw(ensData, ...data).then((rawData) => provider.call({ ...rawData, ccipReadEnabled: true })).catch(() => null).then((ret) => func.decode(ensData, ret, ...data));
24
+ var singleCall_default = async (provider, ensData, func, ...data) => {
25
+ const { passthrough, ...rawData } = await func.raw(ensData, ...data);
26
+ const result = await provider.call({ ...rawData, ccipReadEnabled: true }).catch(() => null);
27
+ if (!result)
28
+ return;
29
+ if (passthrough)
30
+ return func.decode(ensData, result, passthrough, ...data);
31
+ return func.decode(ensData, result, ...data);
32
+ };
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var validation_exports = {};
20
20
  __export(validation_exports, {
21
+ checkIsDotEth: () => checkIsDotEth,
21
22
  parseInputType: () => parseInputType,
22
23
  validateName: () => validateName,
23
24
  validateTLD: () => validateTLD
@@ -84,3 +85,4 @@ const parseInputType = (input) => {
84
85
  type: "label"
85
86
  };
86
87
  };
88
+ const checkIsDotEth = (labels) => labels.length === 2 && labels[1] === "eth";
@@ -23,7 +23,7 @@ __export(wrapper_exports, {
23
23
  wrappedLabelLengthCheck: () => wrappedLabelLengthCheck
24
24
  });
25
25
  module.exports = __toCommonJS(wrapper_exports);
26
- var import_bignumber = require("@ethersproject/bignumber/lib/bignumber");
26
+ var import_bignumber = require("@ethersproject/bignumber");
27
27
  var import_strings = require("@ethersproject/strings");
28
28
  const MAX_EXPIRY = import_bignumber.BigNumber.from(2).pow(64).sub(1);
29
29
  const makeExpiry = async ({ getExpiry }, name, expiry) => {
@@ -15,19 +15,19 @@ var addresses = {
15
15
  "1": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
16
16
  "3": "0xa5627AB7Ae47063B533622C34FEBDb52d3281dF8",
17
17
  "4": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
18
- "5": "0xb7A1f9e633fdeaAa2ec44bE00a61a7Db9a733D70"
18
+ "5": "0x603A4F2e7615d0099244496883062bA2eFBbeaf0"
19
19
  },
20
20
  Multicall: "0xcA11bde05977b3631167028862bE2a173976CA11",
21
21
  NameWrapper: {
22
22
  "1": "0x0000000000000000000000000000000000000000",
23
23
  "3": "0xF82155e2a43Be0871821E9654Fc8Ae894FB8307C",
24
24
  "4": "0x0000000000000000000000000000000000000000",
25
- "5": "0xEe1F756aCde7E81B2D8cC6aB3c8A1E2cE6db0F39"
25
+ "5": "0x060f1546642E67c485D56248201feA2f9AB1803C"
26
26
  },
27
27
  PublicResolver: {
28
28
  "1": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
29
29
  "3": "0x13F0659Ee6bb7484C884FEeFb7F75C93951ef837",
30
- "5": "0x2800Ec5BAB9CE9226d19E0ad5BC607e3cfC4347E"
30
+ "5": "0x19c2d5D0f035563344dBB7bE5fD09c8dad62b001"
31
31
  },
32
32
  ENSRegistry: {
33
33
  "1": "0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e",
@@ -8,16 +8,24 @@ var raw = async ({ multicallWrapper }, ...items) => {
8
8
  return rawRef(...args);
9
9
  })
10
10
  );
11
- return multicallWrapper.raw(rawDataArr);
11
+ const response = await multicallWrapper.raw(rawDataArr);
12
+ return { ...response, passthrough: rawDataArr };
12
13
  };
13
- var decode = async ({ multicallWrapper }, data, ...items) => {
14
- const response = await multicallWrapper.decode(data);
14
+ var decode = async ({ multicallWrapper }, data, passthrough, ...items) => {
15
+ const response = await multicallWrapper.decode(data, passthrough);
15
16
  if (!response)
16
17
  return;
17
18
  return Promise.all(
18
- response.map(
19
- (ret, i) => items[i].decode(ret.returnData, ...items[i].args)
20
- )
19
+ response.map((ret, i) => {
20
+ if (passthrough[i].passthrough) {
21
+ return items[i].decode(
22
+ ret.returnData,
23
+ passthrough[i].passthrough,
24
+ ...items[i].args
25
+ );
26
+ }
27
+ return items[i].decode(ret.returnData, ...items[i].args);
28
+ })
21
29
  );
22
30
  };
23
31
  var batch_default = {
@@ -0,0 +1,96 @@
1
+ // src/functions/getDecryptedName.ts
2
+ import { hexStripZeros } from "@ethersproject/bytes";
3
+ import { hexDecodeName } from "../utils/hexEncodedName.mjs";
4
+ import {
5
+ checkIsDecrypted,
6
+ decodeLabelhash,
7
+ getEncryptedLabelAmount,
8
+ isEncodedLabelhash
9
+ } from "../utils/labels.mjs";
10
+ import { namehash } from "../utils/normalise.mjs";
11
+ var raw = async ({ contracts }, name, allowIncomplete) => {
12
+ const nameWrapper = await contracts?.getNameWrapper();
13
+ return {
14
+ to: nameWrapper.address,
15
+ data: nameWrapper.interface.encodeFunctionData("names", [namehash(name)])
16
+ };
17
+ };
18
+ var generateNameQuery = (labels) => {
19
+ let query = "";
20
+ for (let i = 0; i < labels.length; i += 1) {
21
+ const label = labels[i];
22
+ if (isEncodedLabelhash(label)) {
23
+ query += `
24
+ label${i}: domains(where: { labelhash: "${decodeLabelhash(
25
+ label
26
+ ).toLowerCase()}", labelName_not: null }) {
27
+ labelName
28
+ }
29
+ `;
30
+ }
31
+ }
32
+ return query;
33
+ };
34
+ var decode = async ({ contracts, gqlInstance }, data, name, allowIncomplete = false) => {
35
+ if (data !== null) {
36
+ const nameWrapper = await contracts?.getNameWrapper();
37
+ try {
38
+ const result = nameWrapper.interface.decodeFunctionResult("names", data);
39
+ if (hexStripZeros(result["0"]) !== "0x") {
40
+ const decoded = hexDecodeName(result["0"]);
41
+ if (decoded && decoded !== ".")
42
+ return decoded;
43
+ }
44
+ } catch (e) {
45
+ console.error("Error decoding name: ", e);
46
+ return;
47
+ }
48
+ }
49
+ if (checkIsDecrypted(name))
50
+ return name;
51
+ const labels = name.split(".");
52
+ const decryptedNameQuery = gqlInstance.gql`
53
+ query decodedName($id: String!) {
54
+ namehashLookup: domains(where: { id: $id }) {
55
+ name
56
+ }
57
+ ${generateNameQuery(labels)}
58
+ }
59
+ `;
60
+ const decryptedNameResult = await gqlInstance.client.request(
61
+ decryptedNameQuery,
62
+ {
63
+ id: namehash(name)
64
+ }
65
+ );
66
+ if (!decryptedNameResult)
67
+ return;
68
+ const namehashLookupResult = decryptedNameResult?.namehashLookup[0]?.name;
69
+ let bestResult = namehashLookupResult;
70
+ if (namehashLookupResult && checkIsDecrypted(namehashLookupResult)) {
71
+ return namehashLookupResult;
72
+ }
73
+ const { namehashLookup: _, ...labelNames } = decryptedNameResult;
74
+ if (Object.keys(labelNames).length !== 0) {
75
+ for (const [key, value] of Object.entries(
76
+ labelNames
77
+ )) {
78
+ if (value.length && value[0].labelName) {
79
+ labels[parseInt(key.replace("label", ""))] = value[0].labelName;
80
+ }
81
+ }
82
+ const labelLookupResult = labels.join(".");
83
+ if (!namehashLookupResult || getEncryptedLabelAmount(namehashLookupResult) > getEncryptedLabelAmount(labelLookupResult))
84
+ bestResult = labelLookupResult;
85
+ }
86
+ if (!bestResult || !allowIncomplete && !checkIsDecrypted(bestResult))
87
+ return;
88
+ return bestResult;
89
+ };
90
+ var getDecryptedName_default = {
91
+ raw,
92
+ decode
93
+ };
94
+ export {
95
+ getDecryptedName_default as default
96
+ };
@@ -1,6 +1,7 @@
1
1
  // src/functions/getExpiry.ts
2
2
  import { keccak256 as solidityKeccak256 } from "@ethersproject/solidity";
3
3
  import { namehash } from "../utils/normalise.mjs";
4
+ import { checkIsDotEth } from "../utils/validation.mjs";
4
5
  var getRegistrarExpiry = async ({ contracts, multicallWrapper }, labels) => {
5
6
  if (labels.length > 2 || labels[1] !== "eth") {
6
7
  throw new Error("Only .eth names have expiry dates on the registrar");
@@ -34,7 +35,7 @@ var getWrapperExpiry = async ({ contracts }, labels) => {
34
35
  var getContractToUse = (contract, labels) => {
35
36
  if (contract)
36
37
  return contract;
37
- if (labels.length === 2 && labels[1] === "eth") {
38
+ if (checkIsDotEth(labels)) {
38
39
  return "registrar";
39
40
  }
40
41
  return "nameWrapper";
@@ -2,8 +2,8 @@
2
2
  import { formatsByCoinType } from "@ensdomains/address-encoder";
3
3
  import { hexStripZeros } from "@ethersproject/bytes";
4
4
  import { decodeContenthash } from "../utils/contentHash.mjs";
5
- import { labelhash } from "../utils/labels.mjs";
6
5
  import { namehash } from "../utils/normalise.mjs";
6
+ import { checkIsDotEth } from "../utils/validation.mjs";
7
7
  var eventFormat = {
8
8
  Domain: {
9
9
  NewOwner: (args) => ({ owner: args.owner.id }),
@@ -84,7 +84,7 @@ var mapEvents = (eventArray, type) => eventArray.map(
84
84
  async function getHistory({ gqlInstance }, name) {
85
85
  const { client } = gqlInstance;
86
86
  const query = gqlInstance.gql`
87
- query getHistory($namehash: String!, $labelhash: String!) {
87
+ query getHistory($namehash: String!) {
88
88
  domain(id: $namehash) {
89
89
  events {
90
90
  id
@@ -204,32 +204,39 @@ async function getHistory({ gqlInstance }, name) {
204
204
  }
205
205
  }
206
206
  `;
207
- const label = name.split(".")[0];
208
207
  const nameHash = namehash(name);
209
- const labelHash = labelhash(label);
208
+ const labels = name.split(".");
209
+ const is2ldEth = checkIsDotEth(labels);
210
210
  const response = await client.request(query, {
211
- namehash: nameHash,
212
- labelhash: labelHash
211
+ namehash: nameHash
213
212
  });
214
213
  const domain = response?.domain;
215
214
  if (!domain)
216
215
  return;
217
216
  const {
218
217
  events: domainEvents,
219
- registration: { events: registrationEvents },
220
218
  resolver: { events: resolverEvents }
221
219
  } = domain;
222
220
  const domainHistory = mapEvents(domainEvents, "Domain");
223
- const registrationHistory = mapEvents(registrationEvents, "Registration");
224
221
  const resolverHistory = mapEvents(
225
222
  resolverEvents.filter(
226
223
  (event) => !event.coinType || event.coinType !== "60"
227
224
  ),
228
225
  "Resolver"
229
226
  );
227
+ if (is2ldEth) {
228
+ const {
229
+ registration: { events: registrationEvents }
230
+ } = domain;
231
+ const registrationHistory = mapEvents(registrationEvents, "Registration");
232
+ return {
233
+ domain: domainHistory,
234
+ registration: registrationHistory,
235
+ resolver: resolverHistory
236
+ };
237
+ }
230
238
  return {
231
239
  domain: domainHistory,
232
- registration: registrationHistory,
233
240
  resolver: resolverHistory
234
241
  };
235
242
  }