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

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 (277) 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/commitName.d.ts +26 -0
  7. package/dist/cjs/functions/commitName.js +24 -0
  8. package/dist/cjs/functions/createSubname.d.ts +3 -1
  9. package/dist/cjs/functions/createSubname.js +4 -2
  10. package/dist/cjs/functions/deleteSubname.d.ts +1 -1
  11. package/dist/cjs/functions/deleteSubname.js +3 -2
  12. package/dist/cjs/functions/getExpiry.d.ts +9 -2
  13. package/dist/cjs/functions/getExpiry.js +52 -7
  14. package/dist/cjs/functions/getFuses.d.ts +2 -3
  15. package/dist/cjs/functions/getFuses.js +4 -13
  16. package/dist/cjs/functions/getHistory.d.ts +0 -30
  17. package/dist/cjs/functions/getHistory.js +3 -99
  18. package/dist/cjs/functions/getName.d.ts +2 -2
  19. package/dist/cjs/functions/getName.js +1 -1
  20. package/dist/cjs/functions/getProfile.js +1 -1
  21. package/dist/cjs/functions/getSpecificRecord.js +8 -1
  22. package/dist/cjs/functions/getSubnames.d.ts +1 -1
  23. package/dist/cjs/functions/getSubnames.js +1 -1
  24. package/dist/cjs/functions/registerName.d.ts +11 -0
  25. package/dist/cjs/functions/registerName.js +19 -0
  26. package/dist/cjs/functions/renewName.d.ts +6 -0
  27. package/dist/cjs/functions/renewName.js +10 -0
  28. package/dist/cjs/functions/transferSubname.d.ts +12 -3
  29. package/dist/cjs/functions/transferSubname.js +5 -3
  30. package/dist/cjs/functions/wrapName.d.ts +3 -1
  31. package/dist/cjs/functions/wrapName.js +35 -29
  32. package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +222 -201
  33. package/dist/cjs/generated/DNSRegistrar.d.ts +68 -64
  34. package/dist/cjs/generated/DNSSECImpl.d.ts +111 -111
  35. package/dist/cjs/generated/DefaultReverseResolver.d.ts +17 -17
  36. package/dist/cjs/generated/ENSRegistry.d.ts +126 -111
  37. package/dist/cjs/generated/ETHRegistrarController.d.ts +111 -109
  38. package/dist/cjs/generated/Multicall.d.ts +60 -60
  39. package/dist/cjs/generated/NameWrapper.d.ts +493 -354
  40. package/dist/cjs/generated/P256SHA256Algorithm.d.ts +11 -7
  41. package/dist/cjs/generated/PublicResolver.d.ts +259 -235
  42. package/dist/cjs/generated/RSASHA1Algorithm.d.ts +11 -7
  43. package/dist/cjs/generated/RSASHA256Algorithm.d.ts +11 -7
  44. package/dist/cjs/generated/ReverseRegistrar.d.ts +112 -103
  45. package/dist/cjs/generated/Root.d.ts +77 -77
  46. package/dist/cjs/generated/SHA1Digest.d.ts +7 -7
  47. package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +11 -7
  48. package/dist/cjs/generated/SHA256Digest.d.ts +7 -7
  49. package/dist/cjs/generated/StaticMetadataService.d.ts +7 -7
  50. package/dist/cjs/generated/TLDPublicSuffixList.d.ts +7 -7
  51. package/dist/cjs/generated/UniversalResolver.d.ts +31 -31
  52. package/dist/cjs/generated/common.d.ts +1 -0
  53. package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +3 -15
  54. package/dist/cjs/generated/factories/DNSRegistrar__factory.js +3 -26
  55. package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +3 -15
  56. package/dist/cjs/generated/factories/DNSSECImpl__factory.js +3 -26
  57. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +14 -4
  58. package/dist/cjs/generated/factories/NameWrapper__factory.js +210 -79
  59. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
  60. package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +3 -26
  61. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
  62. package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +3 -26
  63. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
  64. package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +3 -26
  65. package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +3 -15
  66. package/dist/cjs/generated/factories/SHA1Digest__factory.js +3 -26
  67. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
  68. package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +3 -26
  69. package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +3 -15
  70. package/dist/cjs/generated/factories/SHA256Digest__factory.js +3 -26
  71. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
  72. package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +3 -26
  73. package/dist/cjs/generated/factories/index.d.ts +14 -0
  74. package/dist/cjs/generated/factories/index.js +29 -1
  75. package/dist/cjs/generated/index.d.ts +29 -1
  76. package/dist/cjs/generated/index.js +31 -3
  77. package/dist/cjs/index.d.ts +24 -40
  78. package/dist/cjs/index.js +9 -5
  79. package/dist/cjs/utils/registerHelpers.d.ts +44 -16
  80. package/dist/cjs/utils/registerHelpers.js +43 -15
  81. package/dist/cjs/utils/wrapperExpiry.d.ts +5 -0
  82. package/dist/cjs/utils/wrapperExpiry.js +30 -0
  83. package/dist/cjs/utils/writeTx.d.ts +18 -1
  84. package/dist/cjs/utils/writeTx.js +4 -1
  85. package/dist/esm/contracts/baseRegistrar.d.ts +1 -1
  86. package/dist/esm/contracts/index.d.ts +3 -3
  87. package/dist/esm/contracts/multicall.d.ts +1 -1
  88. package/dist/esm/contracts/registry.d.ts +1 -1
  89. package/dist/esm/functions/burnFuses.js +1 -1
  90. package/dist/esm/functions/commitName.d.ts +26 -0
  91. package/dist/esm/functions/commitName.js +21 -0
  92. package/dist/esm/functions/createSubname.d.ts +3 -1
  93. package/dist/esm/functions/createSubname.js +4 -2
  94. package/dist/esm/functions/deleteSubname.d.ts +1 -1
  95. package/dist/esm/functions/deleteSubname.js +3 -2
  96. package/dist/esm/functions/getExpiry.d.ts +9 -2
  97. package/dist/esm/functions/getExpiry.js +52 -7
  98. package/dist/esm/functions/getFuses.d.ts +2 -3
  99. package/dist/esm/functions/getFuses.js +5 -14
  100. package/dist/esm/functions/getHistory.d.ts +0 -30
  101. package/dist/esm/functions/getHistory.js +2 -96
  102. package/dist/esm/functions/getName.d.ts +2 -2
  103. package/dist/esm/functions/getName.js +1 -1
  104. package/dist/esm/functions/getProfile.js +1 -1
  105. package/dist/esm/functions/getSpecificRecord.js +8 -1
  106. package/dist/esm/functions/getSubnames.d.ts +1 -1
  107. package/dist/esm/functions/getSubnames.js +1 -1
  108. package/dist/esm/functions/registerName.d.ts +11 -0
  109. package/dist/esm/functions/registerName.js +16 -0
  110. package/dist/esm/functions/renewName.d.ts +6 -0
  111. package/dist/esm/functions/renewName.js +7 -0
  112. package/dist/esm/functions/transferSubname.d.ts +12 -3
  113. package/dist/esm/functions/transferSubname.js +5 -3
  114. package/dist/esm/functions/wrapName.d.ts +3 -1
  115. package/dist/esm/functions/wrapName.js +35 -29
  116. package/dist/esm/generated/BaseRegistrarImplementation.d.ts +222 -201
  117. package/dist/esm/generated/DNSRegistrar.d.ts +68 -64
  118. package/dist/esm/generated/DNSSECImpl.d.ts +111 -111
  119. package/dist/esm/generated/DefaultReverseResolver.d.ts +17 -17
  120. package/dist/esm/generated/ENSRegistry.d.ts +126 -111
  121. package/dist/esm/generated/ETHRegistrarController.d.ts +111 -109
  122. package/dist/esm/generated/Multicall.d.ts +60 -60
  123. package/dist/esm/generated/NameWrapper.d.ts +493 -354
  124. package/dist/esm/generated/P256SHA256Algorithm.d.ts +11 -7
  125. package/dist/esm/generated/PublicResolver.d.ts +259 -235
  126. package/dist/esm/generated/RSASHA1Algorithm.d.ts +11 -7
  127. package/dist/esm/generated/RSASHA256Algorithm.d.ts +11 -7
  128. package/dist/esm/generated/ReverseRegistrar.d.ts +112 -103
  129. package/dist/esm/generated/Root.d.ts +77 -77
  130. package/dist/esm/generated/SHA1Digest.d.ts +7 -7
  131. package/dist/esm/generated/SHA1NSEC3Digest.d.ts +11 -7
  132. package/dist/esm/generated/SHA256Digest.d.ts +7 -7
  133. package/dist/esm/generated/StaticMetadataService.d.ts +7 -7
  134. package/dist/esm/generated/TLDPublicSuffixList.d.ts +7 -7
  135. package/dist/esm/generated/UniversalResolver.d.ts +31 -31
  136. package/dist/esm/generated/common.d.ts +1 -0
  137. package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +3 -15
  138. package/dist/esm/generated/factories/DNSRegistrar__factory.js +2 -25
  139. package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +3 -15
  140. package/dist/esm/generated/factories/DNSSECImpl__factory.js +2 -25
  141. package/dist/esm/generated/factories/ETHRegistrarController__factory.js +14 -4
  142. package/dist/esm/generated/factories/NameWrapper__factory.js +210 -79
  143. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +3 -15
  144. package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +2 -25
  145. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +3 -15
  146. package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +2 -25
  147. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +3 -15
  148. package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +2 -25
  149. package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +3 -15
  150. package/dist/esm/generated/factories/SHA1Digest__factory.js +2 -25
  151. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +3 -15
  152. package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +2 -25
  153. package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +3 -15
  154. package/dist/esm/generated/factories/SHA256Digest__factory.js +2 -25
  155. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +3 -15
  156. package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +2 -25
  157. package/dist/esm/generated/factories/index.d.ts +14 -0
  158. package/dist/esm/generated/factories/index.js +14 -0
  159. package/dist/esm/generated/index.d.ts +29 -1
  160. package/dist/esm/generated/index.js +15 -1
  161. package/dist/esm/index.d.ts +24 -40
  162. package/dist/esm/index.js +9 -5
  163. package/dist/esm/utils/registerHelpers.d.ts +44 -16
  164. package/dist/esm/utils/registerHelpers.js +40 -14
  165. package/dist/esm/utils/wrapperExpiry.d.ts +5 -0
  166. package/dist/esm/utils/wrapperExpiry.js +26 -0
  167. package/dist/esm/utils/writeTx.d.ts +18 -1
  168. package/dist/esm/utils/writeTx.js +4 -1
  169. package/package.json +27 -28
  170. package/src/ABIs/Multicall.json +452 -0
  171. package/src/contracts/index.ts +1 -1
  172. package/src/functions/batch.test.ts +6 -6
  173. package/src/functions/batchWrappers.test.ts +5 -5
  174. package/src/functions/burnFuses.test.ts +5 -10
  175. package/src/functions/burnFuses.ts +1 -1
  176. package/src/functions/commitName.test.ts +61 -0
  177. package/src/functions/commitName.ts +36 -0
  178. package/src/functions/createSubname.test.ts +6 -10
  179. package/src/functions/createSubname.ts +14 -2
  180. package/src/functions/deleteSubname.test.ts +9 -28
  181. package/src/functions/deleteSubname.ts +3 -2
  182. package/src/functions/getDNSOwner.test.ts +1 -5
  183. package/src/functions/getExpiry.test.ts +26 -4
  184. package/src/functions/getExpiry.ts +87 -9
  185. package/src/functions/getFuses.test.ts +10 -33
  186. package/src/functions/getFuses.ts +10 -16
  187. package/src/functions/getHistory.test.ts +7 -79
  188. package/src/functions/getHistory.ts +2 -127
  189. package/src/functions/getName.test.ts +5 -5
  190. package/src/functions/getName.ts +1 -1
  191. package/src/functions/getNames.test.ts +97 -68
  192. package/src/functions/getOwner.test.ts +10 -25
  193. package/src/functions/getProfile.test.ts +32 -24
  194. package/src/functions/getProfile.ts +1 -1
  195. package/src/functions/getResolver.test.ts +2 -6
  196. package/src/functions/getSpecificRecord.test.ts +16 -13
  197. package/src/functions/getSpecificRecord.ts +10 -4
  198. package/src/functions/getSubnames.test.ts +21 -17
  199. package/src/functions/getSubnames.ts +9 -2
  200. package/src/functions/makeCommitment.test.ts +2 -2
  201. package/src/functions/registerName.test.ts +59 -0
  202. package/src/functions/registerName.ts +38 -0
  203. package/src/functions/renewName.test.ts +44 -0
  204. package/src/functions/renewName.ts +22 -0
  205. package/src/functions/setName.test.ts +10 -11
  206. package/src/functions/setRecord.test.ts +12 -9
  207. package/src/functions/setRecords.test.ts +6 -5
  208. package/src/functions/setResolver.test.ts +6 -9
  209. package/src/functions/transferName.test.ts +13 -27
  210. package/src/functions/transferSubname.test.ts +11 -30
  211. package/src/functions/transferSubname.ts +28 -10
  212. package/src/functions/unwrapName.test.ts +13 -28
  213. package/src/functions/wrapName.test.ts +109 -34
  214. package/src/functions/wrapName.ts +45 -29
  215. package/src/generated/BaseRegistrarImplementation.ts +382 -296
  216. package/src/generated/DNSRegistrar.ts +103 -89
  217. package/src/generated/DNSSECImpl.ts +180 -149
  218. package/src/generated/DefaultReverseResolver.ts +37 -21
  219. package/src/generated/ENSRegistry.ts +257 -184
  220. package/src/generated/ETHRegistrarController.ts +252 -191
  221. package/src/generated/Multicall.ts +73 -57
  222. package/src/generated/NameWrapper.ts +979 -649
  223. package/src/generated/P256SHA256Algorithm.ts +21 -16
  224. package/src/generated/PublicResolver.ts +452 -362
  225. package/src/generated/RSASHA1Algorithm.ts +21 -16
  226. package/src/generated/RSASHA256Algorithm.ts +21 -16
  227. package/src/generated/ReverseRegistrar.ts +193 -141
  228. package/src/generated/Root.ts +146 -86
  229. package/src/generated/SHA1Digest.ts +12 -11
  230. package/src/generated/SHA1NSEC3Digest.ts +21 -16
  231. package/src/generated/SHA256Digest.ts +12 -11
  232. package/src/generated/StaticMetadataService.ts +22 -6
  233. package/src/generated/TLDPublicSuffixList.ts +10 -6
  234. package/src/generated/UniversalResolver.ts +44 -40
  235. package/src/generated/common.ts +2 -0
  236. package/src/generated/factories/DNSRegistrar__factory.ts +4 -56
  237. package/src/generated/factories/DNSSECImpl__factory.ts +4 -49
  238. package/src/generated/factories/ETHRegistrarController__factory.ts +14 -4
  239. package/src/generated/factories/NameWrapper__factory.ts +210 -79
  240. package/src/generated/factories/P256SHA256Algorithm__factory.ts +4 -40
  241. package/src/generated/factories/RSASHA1Algorithm__factory.ts +4 -40
  242. package/src/generated/factories/RSASHA256Algorithm__factory.ts +4 -40
  243. package/src/generated/factories/SHA1Digest__factory.ts +4 -40
  244. package/src/generated/factories/SHA1NSEC3Digest__factory.ts +4 -40
  245. package/src/generated/factories/SHA256Digest__factory.ts +4 -40
  246. package/src/generated/factories/TLDPublicSuffixList__factory.ts +4 -40
  247. package/src/generated/factories/index.ts +14 -0
  248. package/src/generated/index.ts +29 -1
  249. package/src/index.ts +28 -26
  250. package/src/utils/registerHelpers.ts +107 -49
  251. package/src/utils/wrapperExpiry.ts +31 -0
  252. package/src/utils/writeTx.ts +12 -2
  253. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  254. package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
  255. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  256. package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
  257. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  258. package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
  259. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
  260. package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
  261. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
  262. package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
  263. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
  264. package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
  265. package/src/ABIs/ETHRegistrarController.json +0 -494
  266. package/src/ABIs/NameWrapper.json +0 -1183
  267. package/src/ABIs/PublicResolver.json +0 -875
  268. package/src/ABIs/ReverseRegistrar.json +0 -323
  269. package/src/ABIs/StaticMetadataService.json +0 -32
  270. package/src/ABIs/UniversalResolver.json +0 -187
  271. package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
  272. package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
  273. package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
  274. package/src/tests/populateTransaction.test.ts +0 -40
  275. package/src/tests/setup.ts +0 -53
  276. package/src/tests/signerInjection.test.ts +0 -46
  277. package/src/tests/withProvider.test.ts +0 -28
@@ -4,8 +4,11 @@ import ContractManager from './contracts';
4
4
  import { getContractAddress as _getContractAddress } from './contracts/getContractAddress';
5
5
  import { SupportedNetworkId } from './contracts/types';
6
6
  import type burnFuses from './functions/burnFuses';
7
+ import type commitName from './functions/commitName';
7
8
  import type createSubname from './functions/createSubname';
8
9
  import type deleteSubname from './functions/deleteSubname';
10
+ import registerName from './functions/registerName';
11
+ import renewName from './functions/renewName';
9
12
  import type setName from './functions/setName';
10
13
  import type setRecord from './functions/setRecord';
11
14
  import type setRecords from './functions/setRecords';
@@ -36,7 +39,9 @@ declare type WriteOptions = {
36
39
  };
37
40
  declare type OptionalWriteOptions<F> = F extends (x: any, arg_0: infer Z, options?: infer P) => infer R ? (name: Z, options?: P & WriteOptions) => R : F extends (x: any, arg_0: infer Z, options: infer P) => infer R ? (name: Z, options: P & WriteOptions) => R : never;
38
41
  interface WriteFunction<F extends (...args: any) => any> extends Function {
39
- (...args: Parameters<OptionalWriteOptions<F>>): Promise<ContractTransaction>;
42
+ (...args: Parameters<OptionalWriteOptions<F>>): Promise<ContractTransaction & {
43
+ customData?: Record<string, any>;
44
+ }>;
40
45
  populateTransaction: (...args: Parameters<OptionalWriteOptions<F>>) => Promise<PopulatedTransaction>;
41
46
  }
42
47
  export declare type RawFunction = {
@@ -206,8 +211,8 @@ export declare class ENS {
206
211
  reverseResolverAddress: any;
207
212
  resolverAddress: any;
208
213
  } | {
209
- name: null;
210
- match: boolean;
214
+ name: undefined;
215
+ match?: undefined;
211
216
  reverseResolverAddress?: undefined;
212
217
  resolverAddress?: undefined;
213
218
  } | undefined>;
@@ -226,10 +231,9 @@ export declare class ENS {
226
231
  }>;
227
232
  decode: ({ contracts }: ENSArgs<"contracts">, data: string, name: string) => Promise<{
228
233
  fuseObj: {
229
- [k: string]: any;
234
+ [k: string]: boolean;
230
235
  };
231
- vulnerability: any;
232
- vulnerableNode: null;
236
+ expiryDate: Date;
233
237
  rawFuses: ethers.BigNumber;
234
238
  } | undefined>;
235
239
  }>;
@@ -256,36 +260,6 @@ export declare class ENS {
256
260
  data: Record<string, any>;
257
261
  }[];
258
262
  } | undefined>;
259
- getHistoryWithDetail: (name: string) => Promise<{
260
- domain: {
261
- type: any;
262
- blockNumber: any;
263
- transactionHash: any;
264
- id: any;
265
- data: Record<string, any>;
266
- }[];
267
- registration: {
268
- type: any;
269
- blockNumber: any;
270
- transactionHash: any;
271
- id: any;
272
- data: Record<string, any>;
273
- }[];
274
- resolver: {
275
- type: any;
276
- blockNumber: any;
277
- transactionHash: any;
278
- id: any;
279
- data: Record<string, any>;
280
- }[];
281
- } | undefined>;
282
- getHistoryDetailForTransactionHash: (hash: string, indexInTransaction?: number | undefined) => Promise<({
283
- key: any;
284
- value: any;
285
- } | undefined)[] | {
286
- key: any;
287
- value: any;
288
- } | undefined>;
289
263
  getContentHash: GeneratedRawFunction<{
290
264
  raw: ({ contracts, universalWrapper }: ENSArgs<"contracts" | "universalWrapper">, name: string) => Promise<{
291
265
  to: string;
@@ -370,11 +344,18 @@ export declare class ENS {
370
344
  } | undefined>;
371
345
  }>;
372
346
  getExpiry: GeneratedRawFunction<{
373
- raw: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, name: string) => Promise<{
347
+ raw: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, name: string, { contract }?: {
348
+ contract?: ("nameWrapper" | "registrar") | undefined;
349
+ }) => Promise<{
374
350
  to: string;
375
351
  data: string;
376
352
  }>;
377
- decode: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, data: string) => Promise<{
353
+ decode: (ensArgs: ENSArgs<"contracts" | "multicallWrapper">, data: string, name: string, { contract }?: {
354
+ contract?: ("nameWrapper" | "registrar") | undefined;
355
+ }) => Promise<{
356
+ expiry: Date;
357
+ gracePeriod: null;
358
+ } | {
378
359
  expiry: Date | null;
379
360
  gracePeriod: number;
380
361
  } | undefined>;
@@ -385,7 +366,7 @@ export declare class ENS {
385
366
  pageSize?: number | undefined;
386
367
  orderDirection?: "asc" | "desc" | undefined;
387
368
  orderBy?: "labelName" | "createdAt" | undefined;
388
- lastSubnames: any[];
369
+ lastSubnames?: any[] | undefined;
389
370
  isLargeQuery?: boolean | undefined;
390
371
  }) => Promise<{
391
372
  subnames: {
@@ -429,6 +410,7 @@ export declare class ENS {
429
410
  premium: ethers.BigNumber;
430
411
  } | undefined>;
431
412
  }>;
413
+ getDNSOwner: (dnsName: string) => Promise<any>;
432
414
  universalWrapper: GeneratedRawFunction<{
433
415
  raw: ({ contracts }: ENSArgs<"contracts">, name: string, data: string) => Promise<{
434
416
  to: string;
@@ -467,6 +449,8 @@ export declare class ENS {
467
449
  createSubname: WriteFunction<typeof createSubname>;
468
450
  deleteSubname: WriteFunction<typeof deleteSubname>;
469
451
  transferSubname: WriteFunction<typeof transferSubname>;
470
- getDNSOwner: (dnsName: string) => Promise<any>;
452
+ commitName: WriteFunction<typeof commitName>;
453
+ registerName: WriteFunction<typeof registerName>;
454
+ renewName: WriteFunction<typeof renewName>;
471
455
  }
472
456
  export {};
package/dist/esm/index.js CHANGED
@@ -168,8 +168,6 @@ export class ENS {
168
168
  'contracts',
169
169
  ]);
170
170
  this.getHistory = this.generateFunction('getHistory', ['gqlInstance'], 'getHistory');
171
- this.getHistoryWithDetail = this.generateFunction('getHistory', ['contracts', 'gqlInstance', 'provider'], 'getHistoryWithDetail');
172
- this.getHistoryDetailForTransactionHash = this.generateFunction('getHistory', ['contracts', 'provider'], 'getHistoryDetailForTransactionHash');
173
171
  this.getContentHash = this.generateRawFunction('initialGetters', ['contracts', 'universalWrapper'], 'getContentHash');
174
172
  this._getContentHash = this.generateRawFunction('initialGetters', ['contracts'], '_getContentHash');
175
173
  this.getAddr = this.generateRawFunction('initialGetters', ['contracts', 'universalWrapper'], 'getAddr');
@@ -181,6 +179,7 @@ export class ENS {
181
179
  this.getSubnames = this.generateFunction('initialGetters', ['gqlInstance'], 'getSubnames');
182
180
  this.getNames = this.generateFunction('initialGetters', ['gqlInstance'], 'getNames');
183
181
  this.getPrice = this.generateRawFunction('initialGetters', ['contracts', 'multicallWrapper'], 'getPrice');
182
+ this.getDNSOwner = this.generateFunction('getDNSOwner', []);
184
183
  this.universalWrapper = this.generateRawFunction('initialGetters', ['contracts'], 'universalWrapper');
185
184
  this.resolverMulticallWrapper = this.generateRawFunction('initialGetters', ['contracts'], 'resolverMulticallWrapper');
186
185
  this.multicallWrapper = this.generateRawFunction('initialGetters', ['contracts'], 'multicallWrapper');
@@ -197,15 +196,20 @@ export class ENS {
197
196
  this.transferName = this.generateWriteFunction('transferName', ['contracts']);
198
197
  this.wrapName = this.generateWriteFunction('wrapName', [
199
198
  'contracts',
199
+ 'getExpiry',
200
200
  ]);
201
201
  this.unwrapName = this.generateWriteFunction('unwrapName', ['contracts']);
202
202
  this.burnFuses = this.generateWriteFunction('burnFuses', [
203
203
  'contracts',
204
204
  ]);
205
- this.createSubname = this.generateWriteFunction('createSubname', ['contracts']);
205
+ this.createSubname = this.generateWriteFunction('createSubname', ['contracts', 'getExpiry']);
206
206
  this.deleteSubname = this.generateWriteFunction('deleteSubname', ['transferSubname']);
207
- this.transferSubname = this.generateWriteFunction('transferSubname', ['contracts']);
208
- this.getDNSOwner = this.generateFunction('getDNSOwner', []);
207
+ this.transferSubname = this.generateWriteFunction('transferSubname', ['contracts', 'getExpiry']);
208
+ this.commitName = this.generateWriteFunction('commitName', ['contracts']);
209
+ this.registerName = this.generateWriteFunction('registerName', ['contracts']);
210
+ this.renewName = this.generateWriteFunction('renewName', [
211
+ 'contracts',
212
+ ]);
209
213
  this.options = options;
210
214
  this.getContractAddress = options?.getContractAddress || _getContractAddress;
211
215
  }
@@ -1,26 +1,54 @@
1
1
  import type { FuseOptions } from '../@types/FuseOptions';
2
2
  import type { PublicResolver } from '../generated';
3
3
  import { RecordOptions } from './recordHelpers';
4
- export declare const randomSecret: () => string;
5
- export declare const makeCommitment: ({ name, owner, duration, resolver, records, reverseRecord, fuses, }: {
4
+ export declare type RegistrationParams = {
6
5
  name: string;
7
6
  owner: string;
8
7
  duration: number;
8
+ secret: string;
9
9
  resolver: PublicResolver;
10
- records?: RecordOptions | undefined;
11
- reverseRecord?: boolean | undefined;
12
- fuses?: FuseOptions | undefined;
13
- }) => {
10
+ records?: RecordOptions;
11
+ reverseRecord?: boolean;
12
+ fuses?: FuseOptions;
13
+ wrapperExpiry: number;
14
+ };
15
+ export declare type CommitmentParams = Omit<RegistrationParams, 'secret' | 'wrapperExpiry'> & {
16
+ secret?: string;
17
+ wrapperExpiry?: number;
18
+ };
19
+ export declare type RegistrationTuple = [
20
+ name: string,
21
+ owner: string,
22
+ duration: number,
23
+ secret: string,
24
+ resolver: string,
25
+ data: string[],
26
+ reverseRecord: boolean,
27
+ fuses: string,
28
+ wrapperExpiry: number
29
+ ];
30
+ export declare type CommitmentTuple = [
31
+ labelhash: string,
32
+ owner: string,
33
+ duration: number,
34
+ resolver: string,
35
+ data: string[],
36
+ secret: string,
37
+ reverseRecord: boolean,
38
+ fuses: string,
39
+ wrapperExpiry: number
40
+ ];
41
+ export declare const randomSecret: () => string;
42
+ export declare const makeCommitmentData: ({ name, owner, duration, resolver, records, reverseRecord, fuses, wrapperExpiry, secret, }: Omit<RegistrationParams, "secret" | "wrapperExpiry"> & {
43
+ secret?: string | undefined;
44
+ wrapperExpiry?: number | undefined;
45
+ } & {
46
+ secret: string;
47
+ }) => CommitmentTuple;
48
+ export declare const makeRegistrationData: (params: RegistrationParams) => RegistrationTuple;
49
+ export declare const makeCommitment: ({ secret, ...inputParams }: CommitmentParams) => {
14
50
  secret: string;
15
51
  commitment: string;
52
+ wrapperExpiry: number;
16
53
  };
17
- export declare const _makeCommitment: ({ labelhash, owner, duration, secret, resolver, data, reverseRecord, fuses, }: {
18
- labelhash: string;
19
- owner: string;
20
- duration: number;
21
- secret: string;
22
- resolver: string;
23
- data: string[];
24
- reverseRecord: boolean;
25
- fuses: string;
26
- }) => string;
54
+ export declare const _makeCommitment: (params: CommitmentTuple) => string;
@@ -7,37 +7,63 @@ export const randomSecret = () => {
7
7
  const bytes = Buffer.allocUnsafe(32);
8
8
  return '0x' + crypto.getRandomValues(bytes).toString('hex');
9
9
  };
10
- export const makeCommitment = ({ name, owner, duration, resolver, records, reverseRecord, fuses, }) => {
10
+ export const makeCommitmentData = ({ name, owner, duration, resolver, records, reverseRecord, fuses, wrapperExpiry, secret, }) => {
11
11
  const label = labelhash(name.split('.')[0]);
12
12
  const hash = namehash(name);
13
13
  const resolverAddress = resolver.address;
14
- const data = records ? generateRecordCallArray(hash, records, resolver) : [];
15
- const secret = randomSecret();
16
14
  const fuseData = fuses ? generateFuseInput(fuses) : '0';
17
- const commitment = _makeCommitment({
18
- labelhash: label,
15
+ if (reverseRecord) {
16
+ if (!records) {
17
+ records = { coinTypes: [{ key: 'ETH', value: owner }] };
18
+ }
19
+ else if (!records.coinTypes?.find((c) => c.key === 'ETH')) {
20
+ if (!records.coinTypes)
21
+ records.coinTypes = [];
22
+ records.coinTypes.push({ key: 'ETH', value: owner });
23
+ }
24
+ }
25
+ const data = records ? generateRecordCallArray(hash, records, resolver) : [];
26
+ return [
27
+ label,
19
28
  owner,
20
29
  duration,
21
- secret,
22
- resolver: resolverAddress,
30
+ resolverAddress,
23
31
  data,
24
- reverseRecord: !!reverseRecord,
25
- fuses: fuseData,
32
+ secret,
33
+ !!reverseRecord,
34
+ fuseData,
35
+ wrapperExpiry || Math.floor(Date.now() / 1000) + duration,
36
+ ];
37
+ };
38
+ export const makeRegistrationData = (params) => {
39
+ const commitmentData = makeCommitmentData(params);
40
+ commitmentData[0] = params.name.split('.')[0];
41
+ const secret = commitmentData.splice(5, 1)[0];
42
+ commitmentData.splice(3, 0, secret);
43
+ return commitmentData;
44
+ };
45
+ export const makeCommitment = ({ secret = randomSecret(), ...inputParams }) => {
46
+ const generatedParams = makeCommitmentData({
47
+ ...inputParams,
48
+ secret,
26
49
  });
50
+ const commitment = _makeCommitment(generatedParams);
27
51
  return {
28
52
  secret,
29
53
  commitment,
54
+ wrapperExpiry: generatedParams[8],
30
55
  };
31
56
  };
32
- export const _makeCommitment = ({ labelhash, owner, duration, secret, resolver, data, reverseRecord, fuses, }) => {
33
- return utils.solidityKeccak256([
57
+ export const _makeCommitment = (params) => {
58
+ return utils.keccak256(utils.defaultAbiCoder.encode([
34
59
  'bytes32',
35
60
  'address',
36
61
  'uint256',
37
- 'bytes32',
38
62
  'address',
39
63
  'bytes[]',
64
+ 'bytes32',
40
65
  'bool',
41
- 'uint96',
42
- ], [labelhash, owner, duration, secret, resolver, data, reverseRecord, fuses]);
66
+ 'uint32',
67
+ 'uint64',
68
+ ], params));
43
69
  };
@@ -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,26 @@
1
+ import { BigNumber } from 'ethers';
2
+ export const MAX_EXPIRY = BigNumber.from(2).pow(64).sub(1);
3
+ export const makeExpiry = async ({ getExpiry }, name, expiry) => {
4
+ if (expiry) {
5
+ if (expiry instanceof Date) {
6
+ return BigNumber.from(expiry.getTime() / 1000);
7
+ }
8
+ else if (expiry instanceof BigNumber) {
9
+ return expiry;
10
+ }
11
+ else {
12
+ return BigNumber.from(expiry);
13
+ }
14
+ }
15
+ else {
16
+ if (name.endsWith('.eth')) {
17
+ const expResponse = await getExpiry(name);
18
+ if (!expResponse?.expiry)
19
+ throw new Error("Couldn't get expiry for name, please provide one.");
20
+ return BigNumber.from(expResponse.expiry.getTime() / 1000);
21
+ }
22
+ else {
23
+ return MAX_EXPIRY;
24
+ }
25
+ }
26
+ };
@@ -1,4 +1,21 @@
1
1
  import { JsonRpcSigner } from '@ethersproject/providers';
2
2
  import type { PopulatedTransaction } from 'ethers';
3
- declare const _default: (signer: JsonRpcSigner, populate: boolean) => (tx: PopulatedTransaction) => PopulatedTransaction | Promise<import("@ethersproject/abstract-provider").TransactionResponse>;
3
+ declare type CustomData = Record<string, any>;
4
+ declare const _default: (signer: JsonRpcSigner, populate: boolean) => ({ customData, ...tx }: PopulatedTransaction) => {
5
+ to?: string | undefined;
6
+ from?: string | undefined;
7
+ nonce?: number | undefined;
8
+ gasLimit?: import("ethers").BigNumber | undefined;
9
+ gasPrice?: import("ethers").BigNumber | undefined;
10
+ data?: string | undefined;
11
+ value?: import("ethers").BigNumber | undefined;
12
+ chainId?: number | undefined;
13
+ type?: number | undefined;
14
+ accessList?: import("ethers/lib/utils").AccessList | undefined;
15
+ maxFeePerGas?: import("ethers").BigNumber | undefined;
16
+ maxPriorityFeePerGas?: import("ethers").BigNumber | undefined;
17
+ ccipReadEnabled?: boolean | undefined;
18
+ } | Promise<import("@ethersproject/providers").TransactionResponse | (import("@ethersproject/providers").TransactionResponse & {
19
+ customData: CustomData;
20
+ })>;
4
21
  export default _default;
@@ -1 +1,4 @@
1
- export default (signer, populate) => (tx) => populate ? tx : signer.sendTransaction(tx);
1
+ const withCustomData = (tx, customData) => customData ? { ...tx, customData } : tx;
2
+ export default (signer, populate) => ({ customData, ...tx }) => populate
3
+ ? withCustomData(tx, customData)
4
+ : signer.sendTransaction(tx).then((r) => withCustomData(r, customData));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ensdomains/ensjs",
3
- "version": "3.0.0-alpha.10",
3
+ "version": "3.0.0-alpha.13",
4
4
  "description": "ENS javascript library for contract interaction",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
@@ -22,27 +22,9 @@
22
22
  "repository": "git@github.com:ensdomains/ensjs-v3.git",
23
23
  "author": "TateB <yo@taytems.xyz>",
24
24
  "license": "MIT",
25
- "scripts": {
26
- "env": "yarn ens-test-env",
27
- "generate-types": "ts-node scripts/runTypechain.ts",
28
- "generate-abis": "hardhat export-abi",
29
- "start": "ts-node --files src/index.test.ts",
30
- "test": "jest --run-in-band",
31
- "test:watch": "jest --watch --run-in-band",
32
- "test:specific": "ts-node --files ",
33
- "clean": "rm -rf ./dist ./README.md ./LICENSE",
34
- "build:esm": "tsc --project tsconfig.esm.json",
35
- "build:cjs": "tsc --project tsconfig.cjs.json",
36
- "build": "yarn clean && yarn build:esm && yarn build:cjs",
37
- "prepublish": "yarn build && cp ../../{README.md,LICENSE} ./",
38
- "remove-stableVersion": "ex -c '%s/,\\n\\s\\+\"stableVersion\".*\"//g' -cwq ./package.json",
39
- "version:create": "yarn remove-stableVersion && yarn version"
40
- },
41
- "packageManager": "yarn@3.2.0",
42
25
  "dependencies": {
43
- "@ensdomains/address-encoder": "^0.2.16",
26
+ "@ensdomains/address-encoder": "0.2.16",
44
27
  "@ensdomains/content-hash": "^2.5.7",
45
- "@ensdomains/ens-contracts": "^0.0.11",
46
28
  "dns-packet": "^5.3.1",
47
29
  "ethers": "^5.6.1",
48
30
  "graphql": "^16.3.0",
@@ -52,36 +34,53 @@
52
34
  },
53
35
  "devDependencies": {
54
36
  "@ensdomains/buffer": "^0.0.13",
55
- "@ensdomains/ens-test-env": "0.1.5",
37
+ "@ensdomains/ens-contracts": "^0.0.12",
38
+ "@ensdomains/ens-test-env": "0.2.2",
56
39
  "@ethersproject/abi": "^5.6.0",
57
40
  "@ethersproject/providers": "^5.6.2",
58
- "@nomiclabs/hardhat-ethers": "^2.0.5",
41
+ "@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers",
59
42
  "@openzeppelin/contracts": "^4.5.0",
60
43
  "@swc/core": "^1.2.162",
61
44
  "@swc/jest": "^0.2.20",
62
- "@typechain/ethers-v5": "^10.0.0",
45
+ "@typechain/ethers-v5": "^10.1.0",
63
46
  "@types/bn.js": "^5.1.0",
64
47
  "@types/jest": "^27.4.1",
65
48
  "@types/traverse": "^0.6.32",
66
49
  "dotenv": "^16.0.0",
67
- "ens-contracts": "github:ensdomains/ens-contracts#head=master&commit=3ecc56b14beb4aae8296f8a94f7c0d095e62fd93",
68
- "hardhat": "^2.9.3",
50
+ "ganache": "^7.4.0",
51
+ "hardhat": "^2.10.1",
69
52
  "hardhat-abi-exporter": "^2.8.0",
70
- "hardhat-deploy": "^0.11.4",
53
+ "hardhat-deploy": "^0.11.12",
71
54
  "jest": "^27.5.1",
72
55
  "jest-environment-node": "^27.5.1",
73
56
  "jest-localstorage-mock": "^2.4.21",
74
57
  "nock": "^13.2.8",
75
58
  "node-fetch": "^3.2.6",
59
+ "node-fetch-commonjs": "^3.1.1",
76
60
  "solc": "^0.8.13",
77
61
  "ts-jest": "^27.1.4",
78
62
  "ts-node": "^10.7.0",
79
- "typechain": "^8.0.0",
63
+ "typechain": "^8.1.0",
80
64
  "typescript": "^4.6.2",
81
65
  "wait-on": "^6.0.1"
82
66
  },
83
67
  "peerDependencies": {
84
68
  "ethers": "*"
85
69
  },
86
- "stableVersion": "3.0.0-alpha.9"
70
+ "scripts": {
71
+ "tenv": "ens-test-env -a",
72
+ "generate-types": "ts-node scripts/runTypechain.ts",
73
+ "generate-abis": "hardhat export-abi",
74
+ "start": "ts-node --files src/index.test.ts",
75
+ "test": "jest --run-in-band",
76
+ "test:watch": "jest --watch --run-in-band",
77
+ "test:specific": "ts-node --files ",
78
+ "clean": "rm -rf ./dist ./README.md ./LICENSE",
79
+ "build:esm": "tsc --project tsconfig.esm.json",
80
+ "build:cjs": "tsc --project tsconfig.cjs.json",
81
+ "build": "pnpm clean && pnpm build:esm && pnpm build:cjs",
82
+ "prepublish": "pnpm build && cp ../../README.md ../../LICENSE ./",
83
+ "enode": "ganache --wallet.mnemonic=\"test test test test test test test test test test test junk\" --chain.chainId 1337 --chain.networkId 1337 --chain.time 1659500634000",
84
+ "ver": "pnpm version --no-workspaces-update"
85
+ }
87
86
  }