@ensdomains/ensjs 3.0.0-alpha.10 → 3.0.0-alpha.11

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 (234) hide show
  1. package/dist/cjs/contracts/baseRegistrar.d.ts +1 -1
  2. package/dist/cjs/contracts/index.d.ts +3 -3
  3. package/dist/cjs/contracts/multicall.d.ts +1 -1
  4. package/dist/cjs/contracts/registry.d.ts +1 -1
  5. package/dist/cjs/functions/burnFuses.js +1 -1
  6. package/dist/cjs/functions/createSubname.d.ts +3 -1
  7. package/dist/cjs/functions/createSubname.js +4 -2
  8. package/dist/cjs/functions/deleteSubname.d.ts +1 -1
  9. package/dist/cjs/functions/deleteSubname.js +3 -2
  10. package/dist/cjs/functions/getExpiry.d.ts +9 -2
  11. package/dist/cjs/functions/getExpiry.js +52 -7
  12. package/dist/cjs/functions/getFuses.d.ts +2 -3
  13. package/dist/cjs/functions/getFuses.js +4 -13
  14. package/dist/cjs/functions/getSpecificRecord.js +8 -1
  15. package/dist/cjs/functions/getSubnames.d.ts +1 -1
  16. package/dist/cjs/functions/getSubnames.js +1 -1
  17. package/dist/cjs/functions/transferSubname.d.ts +12 -3
  18. package/dist/cjs/functions/transferSubname.js +5 -3
  19. package/dist/cjs/functions/wrapName.d.ts +3 -1
  20. package/dist/cjs/functions/wrapName.js +35 -29
  21. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +222 -201
  22. package/dist/cjs/generated/DNSRegistrar.d.ts +68 -64
  23. package/dist/cjs/generated/DNSSECImpl.d.ts +111 -111
  24. package/dist/cjs/generated/DefaultReverseResolver.d.ts +17 -17
  25. package/dist/cjs/generated/ENSRegistry.d.ts +126 -111
  26. package/dist/cjs/generated/ETHRegistrarController.d.ts +111 -109
  27. package/dist/cjs/generated/Multicall.d.ts +60 -60
  28. package/dist/cjs/generated/NameWrapper.d.ts +493 -354
  29. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +11 -7
  30. package/dist/cjs/generated/PublicResolver.d.ts +259 -235
  31. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +11 -7
  32. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +11 -7
  33. package/dist/cjs/generated/ReverseRegistrar.d.ts +112 -103
  34. package/dist/cjs/generated/Root.d.ts +77 -77
  35. package/dist/cjs/generated/SHA1Digest.d.ts +7 -7
  36. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +11 -7
  37. package/dist/cjs/generated/SHA256Digest.d.ts +7 -7
  38. package/dist/cjs/generated/StaticMetadataService.d.ts +7 -7
  39. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +7 -7
  40. package/dist/cjs/generated/UniversalResolver.d.ts +31 -31
  41. package/dist/cjs/generated/common.d.ts +1 -0
  42. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +3 -15
  43. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +3 -26
  44. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +3 -15
  45. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +3 -26
  46. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +14 -4
  47. package/dist/cjs/generated/factories/NameWrapper__factory.js +210 -79
  48. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
  49. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +3 -26
  50. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
  51. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +3 -26
  52. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
  53. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +3 -26
  54. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +3 -15
  55. package/dist/cjs/generated/factories/SHA1Digest__factory.js +3 -26
  56. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
  57. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +3 -26
  58. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +3 -15
  59. package/dist/cjs/generated/factories/SHA256Digest__factory.js +3 -26
  60. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
  61. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +3 -26
  62. package/dist/cjs/generated/factories/index.d.ts +14 -0
  63. package/dist/cjs/generated/factories/index.js +29 -1
  64. package/dist/cjs/generated/index.d.ts +29 -1
  65. package/dist/cjs/generated/index.js +31 -3
  66. package/dist/cjs/index.d.ts +12 -6
  67. package/dist/cjs/index.js +3 -2
  68. package/dist/cjs/utils/wrapperExpiry.d.ts +5 -0
  69. package/dist/cjs/utils/wrapperExpiry.js +30 -0
  70. package/dist/esm/contracts/baseRegistrar.d.ts +1 -1
  71. package/dist/esm/contracts/index.d.ts +3 -3
  72. package/dist/esm/contracts/multicall.d.ts +1 -1
  73. package/dist/esm/contracts/registry.d.ts +1 -1
  74. package/dist/esm/functions/burnFuses.js +1 -1
  75. package/dist/esm/functions/createSubname.d.ts +3 -1
  76. package/dist/esm/functions/createSubname.js +4 -2
  77. package/dist/esm/functions/deleteSubname.d.ts +1 -1
  78. package/dist/esm/functions/deleteSubname.js +3 -2
  79. package/dist/esm/functions/getExpiry.d.ts +9 -2
  80. package/dist/esm/functions/getExpiry.js +52 -7
  81. package/dist/esm/functions/getFuses.d.ts +2 -3
  82. package/dist/esm/functions/getFuses.js +5 -14
  83. package/dist/esm/functions/getSpecificRecord.js +8 -1
  84. package/dist/esm/functions/getSubnames.d.ts +1 -1
  85. package/dist/esm/functions/getSubnames.js +1 -1
  86. package/dist/esm/functions/transferSubname.d.ts +12 -3
  87. package/dist/esm/functions/transferSubname.js +5 -3
  88. package/dist/esm/functions/wrapName.d.ts +3 -1
  89. package/dist/esm/functions/wrapName.js +35 -29
  90. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +222 -201
  91. package/dist/esm/generated/DNSRegistrar.d.ts +68 -64
  92. package/dist/esm/generated/DNSSECImpl.d.ts +111 -111
  93. package/dist/esm/generated/DefaultReverseResolver.d.ts +17 -17
  94. package/dist/esm/generated/ENSRegistry.d.ts +126 -111
  95. package/dist/esm/generated/ETHRegistrarController.d.ts +111 -109
  96. package/dist/esm/generated/Multicall.d.ts +60 -60
  97. package/dist/esm/generated/NameWrapper.d.ts +493 -354
  98. package/dist/esm/generated/P256SHA256Algorithm.d.ts +11 -7
  99. package/dist/esm/generated/PublicResolver.d.ts +259 -235
  100. package/dist/esm/generated/RSASHA1Algorithm.d.ts +11 -7
  101. package/dist/esm/generated/RSASHA256Algorithm.d.ts +11 -7
  102. package/dist/esm/generated/ReverseRegistrar.d.ts +112 -103
  103. package/dist/esm/generated/Root.d.ts +77 -77
  104. package/dist/esm/generated/SHA1Digest.d.ts +7 -7
  105. package/dist/esm/generated/SHA1NSEC3Digest.d.ts +11 -7
  106. package/dist/esm/generated/SHA256Digest.d.ts +7 -7
  107. package/dist/esm/generated/StaticMetadataService.d.ts +7 -7
  108. package/dist/esm/generated/TLDPublicSuffixList.d.ts +7 -7
  109. package/dist/esm/generated/UniversalResolver.d.ts +31 -31
  110. package/dist/esm/generated/common.d.ts +1 -0
  111. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +3 -15
  112. package/dist/esm/generated/factories/DNSRegistrar__factory.js +2 -25
  113. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +3 -15
  114. package/dist/esm/generated/factories/DNSSECImpl__factory.js +2 -25
  115. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +14 -4
  116. package/dist/esm/generated/factories/NameWrapper__factory.js +210 -79
  117. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
  118. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +2 -25
  119. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
  120. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +2 -25
  121. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
  122. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +2 -25
  123. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +3 -15
  124. package/dist/esm/generated/factories/SHA1Digest__factory.js +2 -25
  125. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
  126. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +2 -25
  127. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +3 -15
  128. package/dist/esm/generated/factories/SHA256Digest__factory.js +2 -25
  129. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
  130. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +2 -25
  131. package/dist/esm/generated/factories/index.d.ts +14 -0
  132. package/dist/esm/generated/factories/index.js +14 -0
  133. package/dist/esm/generated/index.d.ts +29 -1
  134. package/dist/esm/generated/index.js +15 -1
  135. package/dist/esm/index.d.ts +12 -6
  136. package/dist/esm/index.js +3 -2
  137. package/dist/esm/utils/wrapperExpiry.d.ts +5 -0
  138. package/dist/esm/utils/wrapperExpiry.js +26 -0
  139. package/package.json +12 -10
  140. package/src/ABIs/Multicall.json +452 -0
  141. package/src/contracts/index.ts +1 -1
  142. package/src/functions/batch.test.ts +6 -6
  143. package/src/functions/batchWrappers.test.ts +5 -5
  144. package/src/functions/burnFuses.test.ts +5 -10
  145. package/src/functions/burnFuses.ts +1 -1
  146. package/src/functions/createSubname.test.ts +6 -10
  147. package/src/functions/createSubname.ts +14 -2
  148. package/src/functions/deleteSubname.test.ts +9 -28
  149. package/src/functions/deleteSubname.ts +3 -2
  150. package/src/functions/getDNSOwner.test.ts +1 -5
  151. package/src/functions/getExpiry.test.ts +26 -4
  152. package/src/functions/getExpiry.ts +87 -9
  153. package/src/functions/getFuses.test.ts +10 -33
  154. package/src/functions/getFuses.ts +10 -16
  155. package/src/functions/getHistory.test.ts +23 -11
  156. package/src/functions/getName.test.ts +4 -4
  157. package/src/functions/getNames.test.ts +97 -68
  158. package/src/functions/getOwner.test.ts +10 -25
  159. package/src/functions/getProfile.test.ts +32 -24
  160. package/src/functions/getResolver.test.ts +2 -6
  161. package/src/functions/getSpecificRecord.test.ts +16 -13
  162. package/src/functions/getSpecificRecord.ts +10 -4
  163. package/src/functions/getSubnames.test.ts +21 -17
  164. package/src/functions/getSubnames.ts +9 -2
  165. package/src/functions/makeCommitment.test.ts +2 -2
  166. package/src/functions/setName.test.ts +10 -11
  167. package/src/functions/setRecord.test.ts +12 -9
  168. package/src/functions/setRecords.test.ts +6 -5
  169. package/src/functions/setResolver.test.ts +6 -9
  170. package/src/functions/transferName.test.ts +13 -27
  171. package/src/functions/transferSubname.test.ts +11 -30
  172. package/src/functions/transferSubname.ts +28 -10
  173. package/src/functions/unwrapName.test.ts +13 -28
  174. package/src/functions/wrapName.test.ts +109 -34
  175. package/src/functions/wrapName.ts +45 -29
  176. package/src/generated/BaseRegistrarImplementation.ts +382 -296
  177. package/src/generated/DNSRegistrar.ts +103 -89
  178. package/src/generated/DNSSECImpl.ts +180 -149
  179. package/src/generated/DefaultReverseResolver.ts +37 -21
  180. package/src/generated/ENSRegistry.ts +257 -184
  181. package/src/generated/ETHRegistrarController.ts +252 -191
  182. package/src/generated/Multicall.ts +73 -57
  183. package/src/generated/NameWrapper.ts +979 -649
  184. package/src/generated/P256SHA256Algorithm.ts +21 -16
  185. package/src/generated/PublicResolver.ts +452 -362
  186. package/src/generated/RSASHA1Algorithm.ts +21 -16
  187. package/src/generated/RSASHA256Algorithm.ts +21 -16
  188. package/src/generated/ReverseRegistrar.ts +193 -141
  189. package/src/generated/Root.ts +146 -86
  190. package/src/generated/SHA1Digest.ts +12 -11
  191. package/src/generated/SHA1NSEC3Digest.ts +21 -16
  192. package/src/generated/SHA256Digest.ts +12 -11
  193. package/src/generated/StaticMetadataService.ts +22 -6
  194. package/src/generated/TLDPublicSuffixList.ts +10 -6
  195. package/src/generated/UniversalResolver.ts +44 -40
  196. package/src/generated/common.ts +2 -0
  197. package/src/generated/factories/DNSRegistrar__factory.ts +4 -56
  198. package/src/generated/factories/DNSSECImpl__factory.ts +4 -49
  199. package/src/generated/factories/ETHRegistrarController__factory.ts +14 -4
  200. package/src/generated/factories/NameWrapper__factory.ts +210 -79
  201. package/src/generated/factories/P256SHA256Algorithm__factory.ts +4 -40
  202. package/src/generated/factories/RSASHA1Algorithm__factory.ts +4 -40
  203. package/src/generated/factories/RSASHA256Algorithm__factory.ts +4 -40
  204. package/src/generated/factories/SHA1Digest__factory.ts +4 -40
  205. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +4 -40
  206. package/src/generated/factories/SHA256Digest__factory.ts +4 -40
  207. package/src/generated/factories/TLDPublicSuffixList__factory.ts +4 -40
  208. package/src/generated/factories/index.ts +14 -0
  209. package/src/generated/index.ts +29 -1
  210. package/src/index.ts +3 -2
  211. package/src/tests/setup.ts +18 -13
  212. package/src/tests/withProvider.test.ts +2 -2
  213. package/src/utils/wrapperExpiry.ts +31 -0
  214. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  215. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
  216. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  217. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
  218. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  219. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
  220. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  221. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
  222. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  223. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
  224. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  225. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
  226. package/src/ABIs/ETHRegistrarController.json +0 -494
  227. package/src/ABIs/NameWrapper.json +0 -1183
  228. package/src/ABIs/PublicResolver.json +0 -875
  229. package/src/ABIs/ReverseRegistrar.json +0 -323
  230. package/src/ABIs/StaticMetadataService.json +0 -32
  231. package/src/ABIs/UniversalResolver.json +0 -187
  232. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
  233. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
  234. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
@@ -23,16 +23,44 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.UniversalResolver__factory = exports.StaticMetadataService__factory = exports.ReverseRegistrar__factory = exports.PublicResolver__factory = exports.NameWrapper__factory = exports.ETHRegistrarController__factory = exports.factories = void 0;
26
+ exports.UniversalResolver__factory = exports.StaticMetadataService__factory = exports.NameWrapper__factory = exports.Multicall__factory = exports.TLDPublicSuffixList__factory = exports.SHA256Digest__factory = exports.SHA1NSEC3Digest__factory = exports.SHA1Digest__factory = exports.RSASHA256Algorithm__factory = exports.RSASHA1Algorithm__factory = exports.Root__factory = exports.ReverseRegistrar__factory = exports.PublicResolver__factory = exports.P256SHA256Algorithm__factory = exports.ETHRegistrarController__factory = exports.ENSRegistry__factory = exports.DNSSECImpl__factory = exports.DNSRegistrar__factory = exports.DefaultReverseResolver__factory = exports.BaseRegistrarImplementation__factory = exports.factories = void 0;
27
27
  exports.factories = __importStar(require("./factories"));
28
+ var BaseRegistrarImplementation__factory_1 = require("./factories/BaseRegistrarImplementation__factory");
29
+ Object.defineProperty(exports, "BaseRegistrarImplementation__factory", { enumerable: true, get: function () { return BaseRegistrarImplementation__factory_1.BaseRegistrarImplementation__factory; } });
30
+ var DefaultReverseResolver__factory_1 = require("./factories/DefaultReverseResolver__factory");
31
+ Object.defineProperty(exports, "DefaultReverseResolver__factory", { enumerable: true, get: function () { return DefaultReverseResolver__factory_1.DefaultReverseResolver__factory; } });
32
+ var DNSRegistrar__factory_1 = require("./factories/DNSRegistrar__factory");
33
+ Object.defineProperty(exports, "DNSRegistrar__factory", { enumerable: true, get: function () { return DNSRegistrar__factory_1.DNSRegistrar__factory; } });
34
+ var DNSSECImpl__factory_1 = require("./factories/DNSSECImpl__factory");
35
+ Object.defineProperty(exports, "DNSSECImpl__factory", { enumerable: true, get: function () { return DNSSECImpl__factory_1.DNSSECImpl__factory; } });
36
+ var ENSRegistry__factory_1 = require("./factories/ENSRegistry__factory");
37
+ Object.defineProperty(exports, "ENSRegistry__factory", { enumerable: true, get: function () { return ENSRegistry__factory_1.ENSRegistry__factory; } });
28
38
  var ETHRegistrarController__factory_1 = require("./factories/ETHRegistrarController__factory");
29
39
  Object.defineProperty(exports, "ETHRegistrarController__factory", { enumerable: true, get: function () { return ETHRegistrarController__factory_1.ETHRegistrarController__factory; } });
30
- var NameWrapper__factory_1 = require("./factories/NameWrapper__factory");
31
- Object.defineProperty(exports, "NameWrapper__factory", { enumerable: true, get: function () { return NameWrapper__factory_1.NameWrapper__factory; } });
40
+ var P256SHA256Algorithm__factory_1 = require("./factories/P256SHA256Algorithm__factory");
41
+ Object.defineProperty(exports, "P256SHA256Algorithm__factory", { enumerable: true, get: function () { return P256SHA256Algorithm__factory_1.P256SHA256Algorithm__factory; } });
32
42
  var PublicResolver__factory_1 = require("./factories/PublicResolver__factory");
33
43
  Object.defineProperty(exports, "PublicResolver__factory", { enumerable: true, get: function () { return PublicResolver__factory_1.PublicResolver__factory; } });
34
44
  var ReverseRegistrar__factory_1 = require("./factories/ReverseRegistrar__factory");
35
45
  Object.defineProperty(exports, "ReverseRegistrar__factory", { enumerable: true, get: function () { return ReverseRegistrar__factory_1.ReverseRegistrar__factory; } });
46
+ var Root__factory_1 = require("./factories/Root__factory");
47
+ Object.defineProperty(exports, "Root__factory", { enumerable: true, get: function () { return Root__factory_1.Root__factory; } });
48
+ var RSASHA1Algorithm__factory_1 = require("./factories/RSASHA1Algorithm__factory");
49
+ Object.defineProperty(exports, "RSASHA1Algorithm__factory", { enumerable: true, get: function () { return RSASHA1Algorithm__factory_1.RSASHA1Algorithm__factory; } });
50
+ var RSASHA256Algorithm__factory_1 = require("./factories/RSASHA256Algorithm__factory");
51
+ Object.defineProperty(exports, "RSASHA256Algorithm__factory", { enumerable: true, get: function () { return RSASHA256Algorithm__factory_1.RSASHA256Algorithm__factory; } });
52
+ var SHA1Digest__factory_1 = require("./factories/SHA1Digest__factory");
53
+ Object.defineProperty(exports, "SHA1Digest__factory", { enumerable: true, get: function () { return SHA1Digest__factory_1.SHA1Digest__factory; } });
54
+ var SHA1NSEC3Digest__factory_1 = require("./factories/SHA1NSEC3Digest__factory");
55
+ Object.defineProperty(exports, "SHA1NSEC3Digest__factory", { enumerable: true, get: function () { return SHA1NSEC3Digest__factory_1.SHA1NSEC3Digest__factory; } });
56
+ var SHA256Digest__factory_1 = require("./factories/SHA256Digest__factory");
57
+ Object.defineProperty(exports, "SHA256Digest__factory", { enumerable: true, get: function () { return SHA256Digest__factory_1.SHA256Digest__factory; } });
58
+ var TLDPublicSuffixList__factory_1 = require("./factories/TLDPublicSuffixList__factory");
59
+ Object.defineProperty(exports, "TLDPublicSuffixList__factory", { enumerable: true, get: function () { return TLDPublicSuffixList__factory_1.TLDPublicSuffixList__factory; } });
60
+ var Multicall__factory_1 = require("./factories/Multicall__factory");
61
+ Object.defineProperty(exports, "Multicall__factory", { enumerable: true, get: function () { return Multicall__factory_1.Multicall__factory; } });
62
+ var NameWrapper__factory_1 = require("./factories/NameWrapper__factory");
63
+ Object.defineProperty(exports, "NameWrapper__factory", { enumerable: true, get: function () { return NameWrapper__factory_1.NameWrapper__factory; } });
36
64
  var StaticMetadataService__factory_1 = require("./factories/StaticMetadataService__factory");
37
65
  Object.defineProperty(exports, "StaticMetadataService__factory", { enumerable: true, get: function () { return StaticMetadataService__factory_1.StaticMetadataService__factory; } });
38
66
  var UniversalResolver__factory_1 = require("./factories/UniversalResolver__factory");
@@ -226,10 +226,9 @@ export declare class ENS {
226
226
  }>;
227
227
  decode: ({ contracts }: ENSArgs<"contracts">, data: string, name: string) => Promise<{
228
228
  fuseObj: {
229
- [k: string]: any;
229
+ [k: string]: boolean;
230
230
  };
231
- vulnerability: any;
232
- vulnerableNode: null;
231
+ expiryDate: Date;
233
232
  rawFuses: ethers.BigNumber;
234
233
  } | undefined>;
235
234
  }>;
@@ -370,11 +369,18 @@ export declare class ENS {
370
369
  } | undefined>;
371
370
  }>;
372
371
  getExpiry: GeneratedRawFunction<{
373
- raw: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, name: string) => Promise<{
372
+ raw: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, name: string, { contract }?: {
373
+ contract?: ("nameWrapper" | "registrar") | undefined;
374
+ }) => Promise<{
374
375
  to: string;
375
376
  data: string;
376
377
  }>;
377
- decode: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, data: string) => Promise<{
378
+ decode: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, data: string, name: string, { contract }?: {
379
+ contract?: ("nameWrapper" | "registrar") | undefined;
380
+ }) => Promise<{
381
+ expiry: Date;
382
+ gracePeriod: null;
383
+ } | {
378
384
  expiry: Date | null;
379
385
  gracePeriod: number;
380
386
  } | undefined>;
@@ -385,7 +391,7 @@ export declare class ENS {
385
391
  pageSize?: number | undefined;
386
392
  orderDirection?: "asc" | "desc" | undefined;
387
393
  orderBy?: "labelName" | "createdAt" | undefined;
388
- lastSubnames: any[];
394
+ lastSubnames?: any[] | undefined;
389
395
  isLargeQuery?: boolean | undefined;
390
396
  }) => Promise<{
391
397
  subnames: {
package/dist/cjs/index.js CHANGED
@@ -234,14 +234,15 @@ class ENS {
234
234
  transferName = this.generateWriteFunction('transferName', ['contracts']);
235
235
  wrapName = this.generateWriteFunction('wrapName', [
236
236
  'contracts',
237
+ 'getExpiry',
237
238
  ]);
238
239
  unwrapName = this.generateWriteFunction('unwrapName', ['contracts']);
239
240
  burnFuses = this.generateWriteFunction('burnFuses', [
240
241
  'contracts',
241
242
  ]);
242
- createSubname = this.generateWriteFunction('createSubname', ['contracts']);
243
+ createSubname = this.generateWriteFunction('createSubname', ['contracts', 'getExpiry']);
243
244
  deleteSubname = this.generateWriteFunction('deleteSubname', ['transferSubname']);
244
- transferSubname = this.generateWriteFunction('transferSubname', ['contracts']);
245
+ transferSubname = this.generateWriteFunction('transferSubname', ['contracts', 'getExpiry']);
245
246
  getDNSOwner = this.generateFunction('getDNSOwner', []);
246
247
  }
247
248
  exports.ENS = ENS;
@@ -0,0 +1,5 @@
1
+ import { BigNumber } from 'ethers';
2
+ import { ENSArgs } from '..';
3
+ export declare type Expiry = string | number | Date | BigNumber;
4
+ export declare const MAX_EXPIRY: BigNumber;
5
+ export declare const makeExpiry: ({ getExpiry }: ENSArgs<'getExpiry'>, name: string, expiry?: Expiry | undefined) => Promise<BigNumber>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeExpiry = exports.MAX_EXPIRY = void 0;
4
+ const ethers_1 = require("ethers");
5
+ exports.MAX_EXPIRY = ethers_1.BigNumber.from(2).pow(64).sub(1);
6
+ const makeExpiry = async ({ getExpiry }, name, expiry) => {
7
+ if (expiry) {
8
+ if (expiry instanceof Date) {
9
+ return ethers_1.BigNumber.from(expiry.getTime() / 1000);
10
+ }
11
+ else if (expiry instanceof ethers_1.BigNumber) {
12
+ return expiry;
13
+ }
14
+ else {
15
+ return ethers_1.BigNumber.from(expiry);
16
+ }
17
+ }
18
+ else {
19
+ if (name.endsWith('.eth')) {
20
+ const expResponse = await getExpiry(name);
21
+ if (!expResponse?.expiry)
22
+ throw new Error("Couldn't get expiry for name, please provide one.");
23
+ return ethers_1.BigNumber.from(expResponse.expiry.getTime() / 1000);
24
+ }
25
+ else {
26
+ return exports.MAX_EXPIRY;
27
+ }
28
+ }
29
+ };
30
+ exports.makeExpiry = makeExpiry;
@@ -1,3 +1,3 @@
1
1
  import { ethers } from 'ethers';
2
- declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated/BaseRegistrarImplementation").BaseRegistrarImplementation;
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").BaseRegistrarImplementation;
3
3
  export default _default;
@@ -7,10 +7,10 @@ export default class ContractManager {
7
7
  private generateContractGetter;
8
8
  getPublicResolver: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").PublicResolver>;
9
9
  getUniversalResolver: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").UniversalResolver>;
10
- getRegistry: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated/ENSRegistry").ENSRegistry>;
10
+ getRegistry: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").ENSRegistry>;
11
11
  getReverseRegistrar: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").ReverseRegistrar>;
12
12
  getNameWrapper: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").NameWrapper>;
13
- getBaseRegistrar: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated/BaseRegistrarImplementation").BaseRegistrarImplementation>;
13
+ getBaseRegistrar: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").BaseRegistrarImplementation>;
14
14
  getEthRegistrarController: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").ETHRegistrarController>;
15
- getMulticall: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated/Multicall").Multicall>;
15
+ getMulticall: (passedProvider?: any, address?: string | undefined) => Promise<import("../generated").Multicall>;
16
16
  }
@@ -1,3 +1,3 @@
1
1
  import { ethers } from 'ethers';
2
- declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated/Multicall").Multicall;
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").Multicall;
3
3
  export default _default;
@@ -1,3 +1,3 @@
1
1
  import { ethers } from 'ethers';
2
- declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated/ENSRegistry").ENSRegistry;
2
+ declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated").ENSRegistry;
3
3
  export default _default;
@@ -4,5 +4,5 @@ export default async function ({ contracts, signer }, name, { fusesToBurn, }) {
4
4
  const nameWrapper = (await contracts?.getNameWrapper()).connect(signer);
5
5
  const hash = namehash(name);
6
6
  const encodedFuses = generateFuseInput(fusesToBurn);
7
- return nameWrapper.populateTransaction.burnFuses(hash, encodedFuses);
7
+ return nameWrapper.populateTransaction.setFuses(hash, encodedFuses);
8
8
  }
@@ -1,6 +1,7 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { ENSArgs } from '..';
3
3
  import { FuseOptions } from '../@types/FuseOptions';
4
+ import { Expiry } from '../utils/wrapperExpiry';
4
5
  declare type BaseArgs = {
5
6
  owner: string;
6
7
  resolverAddress?: string;
@@ -9,7 +10,8 @@ declare type BaseArgs = {
9
10
  declare type NameWrapperArgs = {
10
11
  contract: 'nameWrapper';
11
12
  fuses?: FuseOptions;
13
+ expiry?: Expiry;
12
14
  } & BaseArgs;
13
15
  declare type Args = BaseArgs | NameWrapperArgs;
14
- export default function ({ contracts, signer }: ENSArgs<'contracts' | 'signer'>, name: string, { owner, resolverAddress, contract, ...wrapperArgs }: Args): Promise<ethers.PopulatedTransaction>;
16
+ export default function ({ contracts, signer, getExpiry, }: ENSArgs<'contracts' | 'signer' | 'getExpiry'>, name: string, { owner, resolverAddress, contract, ...wrapperArgs }: Args): Promise<ethers.PopulatedTransaction>;
15
17
  export {};
@@ -1,7 +1,8 @@
1
1
  import { ethers } from 'ethers';
2
2
  import generateFuseInput from '../utils/generateFuseInput';
3
3
  import { namehash } from '../utils/normalise';
4
- export default async function ({ contracts, signer }, name, { owner, resolverAddress, contract, ...wrapperArgs }) {
4
+ import { makeExpiry } from '../utils/wrapperExpiry';
5
+ export default async function ({ contracts, signer, getExpiry, }, name, { owner, resolverAddress, contract, ...wrapperArgs }) {
5
6
  const labels = name.split('.');
6
7
  if (labels.length === 1) {
7
8
  throw new Error('Subnames in ENS.js can only be created for 2LDs, not TLDs');
@@ -22,10 +23,11 @@ export default async function ({ contracts, signer }, name, { owner, resolverAdd
22
23
  }
23
24
  case 'nameWrapper': {
24
25
  const nameWrapper = (await contracts?.getNameWrapper()).connect(signer);
26
+ const expiry = await makeExpiry({ getExpiry }, name, 'expiry' in wrapperArgs ? wrapperArgs.expiry : undefined);
25
27
  const generatedFuses = 'fuses' in wrapperArgs && wrapperArgs.fuses
26
28
  ? generateFuseInput(wrapperArgs.fuses)
27
29
  : '0';
28
- return nameWrapper.populateTransaction.setSubnodeRecord(parentNodehash, label, owner, resolverAddress, 0, generatedFuses);
30
+ return nameWrapper.populateTransaction.setSubnodeRecord(parentNodehash, label, owner, resolverAddress, 0, generatedFuses, expiry);
29
31
  }
30
32
  default: {
31
33
  throw new Error(`Unknown contract: ${contract}`);
@@ -1,4 +1,4 @@
1
1
  import { ENSArgs } from '..';
2
- export default function ({ transferSubname }: ENSArgs<'transferSubname'>, name: string, { contract, }: {
2
+ export default function ({ transferSubname, signer }: ENSArgs<'transferSubname' | 'signer'>, name: string, { contract, }: {
3
3
  contract: 'registry' | 'nameWrapper';
4
4
  }): Promise<import("ethers").PopulatedTransaction>;
@@ -1,6 +1,7 @@
1
- export default async function ({ transferSubname }, name, { contract, }) {
1
+ export default async function ({ transferSubname, signer }, name, { contract, }) {
2
2
  return transferSubname.populateTransaction(name, {
3
3
  contract,
4
- address: '0x0000000000000000000000000000000000000000',
4
+ owner: '0x0000000000000000000000000000000000000000',
5
+ signer,
5
6
  });
6
7
  }
@@ -1,10 +1,17 @@
1
1
  import { ENSArgs } from '..';
2
+ declare type ContractOption = 'registrar' | 'nameWrapper';
3
+ declare type Args = {
4
+ contract?: ContractOption;
5
+ };
2
6
  declare const _default: {
3
- raw: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, name: string) => Promise<{
7
+ raw: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, name: string, { contract }?: Args) => Promise<{
4
8
  to: string;
5
9
  data: string;
6
10
  }>;
7
- decode: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, data: string) => Promise<{
11
+ decode: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, data: string, name: string, { contract }?: Args) => Promise<{
12
+ expiry: Date;
13
+ gracePeriod: null;
14
+ } | {
8
15
  expiry: Date | null;
9
16
  gracePeriod: number;
10
17
  } | undefined>;
@@ -1,10 +1,10 @@
1
1
  import { solidityKeccak256 } from 'ethers/lib/utils';
2
- const raw = async ({ contracts, multicallWrapper }, name) => {
3
- const baseRegistrar = await contracts?.getBaseRegistrar();
4
- const labels = name.split('.');
2
+ import { namehash } from '../utils/normalise';
3
+ const getRegistrarExpiry = async ({ contracts, multicallWrapper }, labels) => {
5
4
  if (labels.length > 2 || labels[1] !== 'eth') {
6
- throw new Error('Only .eth names have expiry dates');
5
+ throw new Error('Only .eth names have expiry dates on the registrar');
7
6
  }
7
+ const baseRegistrar = await contracts?.getBaseRegistrar();
8
8
  const expiryCall = baseRegistrar.interface.encodeFunctionData('nameExpires', [
9
9
  solidityKeccak256(['string'], [labels[0]]),
10
10
  ]);
@@ -20,9 +20,32 @@ const raw = async ({ contracts, multicallWrapper }, name) => {
20
20
  },
21
21
  ]);
22
22
  };
23
- const decode = async ({ contracts, multicallWrapper }, data) => {
24
- if (data === null)
25
- return;
23
+ const getWrapperExpiry = async ({ contracts }, labels) => {
24
+ const nameWrapper = await contracts?.getNameWrapper();
25
+ const expiryCall = nameWrapper.interface.encodeFunctionData('getData', [
26
+ namehash(labels.join('.')),
27
+ ]);
28
+ return {
29
+ to: nameWrapper.address,
30
+ data: expiryCall,
31
+ };
32
+ };
33
+ const getContractToUse = (contract, labels) => {
34
+ if (contract)
35
+ return contract;
36
+ if (labels.length === 2 && labels[1] === 'eth') {
37
+ return 'registrar';
38
+ }
39
+ return 'nameWrapper';
40
+ };
41
+ const raw = async (ensArgs, name, { contract } = {}) => {
42
+ const labels = name.split('.');
43
+ const contractToUse = getContractToUse(contract, labels);
44
+ return contractToUse === 'nameWrapper'
45
+ ? getWrapperExpiry(ensArgs, labels)
46
+ : getRegistrarExpiry(ensArgs, labels);
47
+ };
48
+ const decodeRegistrarExpiry = async ({ contracts, multicallWrapper }, data) => {
26
49
  const result = await multicallWrapper.decode(data);
27
50
  const baseRegistrar = await contracts?.getBaseRegistrar();
28
51
  try {
@@ -37,6 +60,28 @@ const decode = async ({ contracts, multicallWrapper }, data) => {
37
60
  return;
38
61
  }
39
62
  };
63
+ const decodeWrapperExpiry = async ({ contracts }, data) => {
64
+ const nameWrapper = await contracts?.getNameWrapper();
65
+ try {
66
+ const [_owner, _fuses, expiry] = nameWrapper.interface.decodeFunctionResult('getData', data);
67
+ return {
68
+ expiry: new Date(expiry * 1000),
69
+ gracePeriod: null,
70
+ };
71
+ }
72
+ catch {
73
+ return;
74
+ }
75
+ };
76
+ const decode = async (ensArgs, data, name, { contract } = {}) => {
77
+ if (data === null)
78
+ return;
79
+ const labels = name.split('.');
80
+ const contractToUse = getContractToUse(contract, labels);
81
+ return contractToUse === 'nameWrapper'
82
+ ? decodeWrapperExpiry(ensArgs, data)
83
+ : decodeRegistrarExpiry(ensArgs, data);
84
+ };
40
85
  export default {
41
86
  raw,
42
87
  decode,
@@ -7,10 +7,9 @@ declare const _default: {
7
7
  }>;
8
8
  decode: ({ contracts }: ENSArgs<"contracts">, data: string, name: string) => Promise<{
9
9
  fuseObj: {
10
- [k: string]: any;
10
+ [k: string]: boolean;
11
11
  };
12
- vulnerability: any;
13
- vulnerableNode: null;
12
+ expiryDate: Date;
14
13
  rawFuses: BigNumber;
15
14
  } | undefined>;
16
15
  };
@@ -1,4 +1,4 @@
1
- import { utils } from 'ethers';
1
+ import { BigNumber } from 'ethers';
2
2
  import { testable as fuseEnums } from '../utils/fuses';
3
3
  import { namehash } from '../utils/normalise';
4
4
  const NameSafety = [
@@ -20,7 +20,8 @@ const raw = async ({ contracts }, name) => {
20
20
  const decode = async ({ contracts }, data, name) => {
21
21
  const nameWrapper = await contracts?.getNameWrapper();
22
22
  try {
23
- const [fuses, vulnerability, vulnerableNode] = nameWrapper.interface.decodeFunctionResult('getFuses', data);
23
+ const [_fuses, expiry] = nameWrapper.interface.decodeFunctionResult('getFuses', data);
24
+ const fuses = BigNumber.from(_fuses);
24
25
  const fuseObj = Object.fromEntries(Object.keys(fuseEnums).map((fuseEnum) => [
25
26
  fuseEnum
26
27
  .toLowerCase()
@@ -33,20 +34,10 @@ const decode = async ({ contracts }, data, name) => {
33
34
  else {
34
35
  fuseObj.canDoEverything = false;
35
36
  }
36
- let returnVulnerableNode = null;
37
- if (utils.hexStripZeros(vulnerableNode) !== '0x') {
38
- name.split('.').forEach((label, index, arr) => {
39
- const node = arr.slice(index).join('.');
40
- const nodehash = namehash(node);
41
- if (nodehash === vulnerableNode) {
42
- returnVulnerableNode = node;
43
- }
44
- });
45
- }
37
+ const expiryDate = new Date(expiry * 1000);
46
38
  return {
47
39
  fuseObj,
48
- vulnerability: NameSafety[vulnerability] || vulnerability,
49
- vulnerableNode: returnVulnerableNode,
40
+ expiryDate,
50
41
  rawFuses: fuses,
51
42
  };
52
43
  }
@@ -13,8 +13,15 @@ export const _getContentHash = {
13
13
  };
14
14
  },
15
15
  decode: async ({ contracts }, data) => {
16
+ let response;
16
17
  const publicResolver = await contracts?.getPublicResolver();
17
- const [response] = publicResolver.interface.decodeFunctionResult('contenthash', data);
18
+ try {
19
+ ;
20
+ [response] = publicResolver.interface.decodeFunctionResult('contenthash', data);
21
+ }
22
+ catch {
23
+ return;
24
+ }
18
25
  if (!response) {
19
26
  return;
20
27
  }
@@ -16,7 +16,7 @@ declare type Params = {
16
16
  pageSize?: number;
17
17
  orderDirection?: 'asc' | 'desc';
18
18
  orderBy?: 'createdAt' | 'labelName';
19
- lastSubnames: Array<any>;
19
+ lastSubnames?: Array<any>;
20
20
  isLargeQuery?: boolean;
21
21
  };
22
22
  declare const getSubnames: (injected: ENSArgs<'gqlInstance'>, functionArgs: Params) => Promise<{
@@ -1,7 +1,7 @@
1
1
  import { truncateFormat } from '../utils/format';
2
2
  import { decryptName } from '../utils/labels';
3
3
  import { namehash } from '../utils/normalise';
4
- const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDirection, orderBy, lastSubnames }) => {
4
+ const largeQuery = async ({ gqlInstance }, { name, page, pageSize = 10, orderDirection, orderBy, lastSubnames = [], }) => {
5
5
  const client = gqlInstance.client;
6
6
  let finalQuery = gqlInstance.gql `
7
7
  query getSubnames(
@@ -1,6 +1,15 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { ENSArgs } from '..';
3
- export default function ({ contracts, signer }: ENSArgs<'contracts' | 'signer'>, name: string, { contract, address, }: {
3
+ import { Expiry } from '../utils/wrapperExpiry';
4
+ declare type BaseArgs = {
5
+ owner: string;
6
+ resolverAddress?: string;
4
7
  contract: 'registry' | 'nameWrapper';
5
- address: string;
6
- }): Promise<ethers.PopulatedTransaction>;
8
+ };
9
+ declare type NameWrapperArgs = {
10
+ contract: 'nameWrapper';
11
+ expiry?: Expiry;
12
+ } & BaseArgs;
13
+ declare type Args = BaseArgs | NameWrapperArgs;
14
+ export default function ({ contracts, signer, getExpiry, }: ENSArgs<'contracts' | 'signer' | 'getExpiry'>, name: string, { contract, owner, resolverAddress, ...wrapperArgs }: Args): Promise<ethers.PopulatedTransaction>;
15
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { namehash } from '../utils/normalise';
3
- export default async function ({ contracts, signer }, name, { contract, address, }) {
3
+ import { makeExpiry } from '../utils/wrapperExpiry';
4
+ export default async function ({ contracts, signer, getExpiry, }, name, { contract, owner, resolverAddress, ...wrapperArgs }) {
4
5
  const labels = name.split('.');
5
6
  const label = labels.shift();
6
7
  const labelhash = ethers.utils.solidityKeccak256(['string'], [label]);
@@ -8,11 +9,12 @@ export default async function ({ contracts, signer }, name, { contract, address,
8
9
  switch (contract) {
9
10
  case 'registry': {
10
11
  const registry = (await contracts?.getRegistry()).connect(signer);
11
- return registry.populateTransaction.setSubnodeOwner(parentNodehash, labelhash, address);
12
+ return registry.populateTransaction.setSubnodeOwner(parentNodehash, labelhash, owner);
12
13
  }
13
14
  case 'nameWrapper': {
14
15
  const nameWrapper = (await contracts?.getNameWrapper()).connect(signer);
15
- return nameWrapper.populateTransaction.setSubnodeOwner(parentNodehash, label, address, '0');
16
+ const expiry = await makeExpiry({ getExpiry }, labels.join('.'), 'expiry' in wrapperArgs ? wrapperArgs.expiry : undefined);
17
+ return nameWrapper.populateTransaction.setSubnodeOwner(parentNodehash, label, owner, '0', expiry);
16
18
  }
17
19
  default: {
18
20
  throw new Error(`Unknown contract: ${contract}`);
@@ -1,8 +1,10 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { ENSArgs } from '..';
3
3
  import type { FuseOptions } from '../@types/FuseOptions';
4
- export default function ({ contracts, signer, populate }: ENSArgs<'contracts' | 'signer' | 'populate'>, name: string, { wrappedOwner, fuseOptions, resolverAddress, }: {
4
+ import { Expiry } from '../utils/wrapperExpiry';
5
+ export default function ({ contracts, signer, getExpiry, }: ENSArgs<'contracts' | 'signer' | 'getExpiry'>, name: string, { wrappedOwner, fuseOptions, expiry, resolverAddress, }: {
5
6
  wrappedOwner: string;
6
7
  fuseOptions?: FuseOptions | string | number;
8
+ expiry?: Expiry;
7
9
  resolverAddress?: string;
8
10
  }): Promise<ethers.PopulatedTransaction>;
@@ -1,54 +1,60 @@
1
1
  import { ethers } from 'ethers';
2
2
  import generateFuseInput from '../utils/generateFuseInput';
3
3
  import { hexEncodeName } from '../utils/hexEncodedName';
4
- async function wrapETH({ contracts }, labels, wrappedOwner, decodedFuses, resolverAddress, signer, address) {
4
+ import { makeExpiry } from '../utils/wrapperExpiry';
5
+ async function wrapETH({ contracts }, labels, wrappedOwner, expiry, decodedFuses, resolverAddress, signer, address) {
5
6
  const nameWrapper = await contracts?.getNameWrapper();
6
7
  const baseRegistrar = (await contracts?.getBaseRegistrar()).connect(signer);
7
8
  const labelhash = ethers.utils.solidityKeccak256(['string'], [labels[0]]);
8
- const data = ethers.utils.defaultAbiCoder.encode(['string', 'address', 'uint32', 'uint64', 'address'], [labels[0], wrappedOwner, '0x0', decodedFuses, resolverAddress]);
9
+ const data = ethers.utils.defaultAbiCoder.encode(['string', 'address', 'uint32', 'uint64', 'address'], [labels[0], wrappedOwner, decodedFuses, expiry, resolverAddress]);
9
10
  return baseRegistrar.populateTransaction['safeTransferFrom(address,address,uint256,bytes)'](address, nameWrapper.address, labelhash, data);
10
11
  }
11
- async function wrapOther({ contracts }, name, wrappedOwner, decodedFuses, resolverAddress, address, signer) {
12
+ async function wrapOther({ contracts }, name, wrappedOwner, resolverAddress, address, signer) {
12
13
  const nameWrapper = (await contracts?.getNameWrapper()).connect(signer);
13
14
  const registry = await contracts?.getRegistry();
14
15
  const hasApproval = await registry.isApprovedForAll(address, nameWrapper.address);
15
16
  if (!hasApproval) {
16
17
  throw new Error('NameWrapper must have approval to wrap a name from this address.');
17
18
  }
18
- return nameWrapper.populateTransaction.wrap(hexEncodeName(name), wrappedOwner, decodedFuses, resolverAddress);
19
+ return nameWrapper.populateTransaction.wrap(hexEncodeName(name), wrappedOwner, resolverAddress);
19
20
  }
20
- export default async function ({ contracts, signer, populate }, name, { wrappedOwner, fuseOptions, resolverAddress, }) {
21
+ export default async function ({ contracts, signer, getExpiry, }, name, { wrappedOwner, fuseOptions, expiry, resolverAddress, }) {
21
22
  const address = await signer.getAddress();
22
23
  let decodedFuses;
23
- switch (typeof fuseOptions) {
24
- case 'object': {
25
- decodedFuses = generateFuseInput(fuseOptions);
26
- break;
27
- }
28
- case 'number': {
29
- decodedFuses = fuseOptions.toString(16);
30
- break;
31
- }
32
- case 'string': {
33
- decodedFuses = fuseOptions;
34
- break;
35
- }
36
- case 'undefined': {
37
- decodedFuses = '0';
38
- break;
39
- }
40
- default: {
41
- throw new Error(`Invalid fuseOptions type: ${typeof fuseOptions}`);
42
- }
43
- }
44
24
  const publicResolver = await contracts?.getPublicResolver();
45
25
  if (!resolverAddress)
46
26
  resolverAddress = publicResolver.address;
47
27
  const labels = name.split('.');
48
- if (labels.length < 3 && labels[labels.length - 1] === 'eth') {
49
- return wrapETH({ contracts }, labels, wrappedOwner, decodedFuses, resolverAddress, signer, address);
28
+ if (labels.length === 2 && labels[1] === 'eth') {
29
+ switch (typeof fuseOptions) {
30
+ case 'object': {
31
+ decodedFuses = generateFuseInput(fuseOptions);
32
+ break;
33
+ }
34
+ case 'number': {
35
+ decodedFuses = fuseOptions.toString(16);
36
+ break;
37
+ }
38
+ case 'string': {
39
+ decodedFuses = fuseOptions;
40
+ break;
41
+ }
42
+ case 'undefined': {
43
+ decodedFuses = '0';
44
+ break;
45
+ }
46
+ default: {
47
+ throw new Error(`Invalid fuseOptions type: ${typeof fuseOptions}`);
48
+ }
49
+ }
50
+ const expiryToUse = await makeExpiry({ getExpiry }, name, expiry);
51
+ return wrapETH({ contracts }, labels, wrappedOwner, expiryToUse, decodedFuses, resolverAddress, signer, address);
50
52
  }
51
53
  else {
52
- return wrapOther({ contracts }, name, wrappedOwner, decodedFuses, resolverAddress, address, signer);
54
+ if (fuseOptions)
55
+ throw new Error('Fuses can not be initially set when wrapping a non .eth name');
56
+ if (expiry)
57
+ throw new Error('Expiry can not be initially set when wrapping a non .eth name');
58
+ return wrapOther({ contracts }, name, wrappedOwner, resolverAddress, address, signer);
53
59
  }
54
60
  }