@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
@@ -6,12 +6,56 @@ import { labelhash } from './labels'
6
6
  import { namehash } from './normalise'
7
7
  import { generateRecordCallArray, RecordOptions } from './recordHelpers'
8
8
 
9
+ export type RegistrationParams = {
10
+ name: string
11
+ owner: string
12
+ duration: number
13
+ secret: string
14
+ resolver: PublicResolver
15
+ records?: RecordOptions
16
+ reverseRecord?: boolean
17
+ fuses?: FuseOptions
18
+ wrapperExpiry: number
19
+ }
20
+
21
+ export type CommitmentParams = Omit<
22
+ RegistrationParams,
23
+ 'secret' | 'wrapperExpiry'
24
+ > & {
25
+ secret?: string
26
+ wrapperExpiry?: number
27
+ }
28
+
29
+ export type RegistrationTuple = [
30
+ name: string,
31
+ owner: string,
32
+ duration: number,
33
+ secret: string,
34
+ resolver: string,
35
+ data: string[],
36
+ reverseRecord: boolean,
37
+ fuses: string,
38
+ wrapperExpiry: number,
39
+ ]
40
+
41
+ export type CommitmentTuple = [
42
+ labelhash: string,
43
+ owner: string,
44
+ duration: number,
45
+ resolver: string,
46
+ data: string[],
47
+ secret: string,
48
+ reverseRecord: boolean,
49
+ fuses: string,
50
+ wrapperExpiry: number,
51
+ ]
52
+
9
53
  export const randomSecret = () => {
10
54
  const bytes = Buffer.allocUnsafe(32)
11
55
  return '0x' + crypto.getRandomValues(bytes).toString('hex')
12
56
  }
13
57
 
14
- export const makeCommitment = ({
58
+ export const makeCommitmentData = ({
15
59
  name,
16
60
  owner,
17
61
  duration,
@@ -19,69 +63,83 @@ export const makeCommitment = ({
19
63
  records,
20
64
  reverseRecord,
21
65
  fuses,
22
- }: {
23
- name: string
24
- owner: string
25
- duration: number
26
- resolver: PublicResolver
27
- records?: RecordOptions
28
- reverseRecord?: boolean
29
- fuses?: FuseOptions
30
- }) => {
66
+ wrapperExpiry,
67
+ secret,
68
+ }: CommitmentParams & {
69
+ secret: string
70
+ }): CommitmentTuple => {
31
71
  const label = labelhash(name.split('.')[0])
32
72
  const hash = namehash(name)
33
73
  const resolverAddress = resolver.address
34
- const data = records ? generateRecordCallArray(hash, records, resolver) : []
35
- const secret = randomSecret()
36
74
  const fuseData = fuses ? generateFuseInput(fuses) : '0'
37
75
 
38
- const commitment = _makeCommitment({
39
- labelhash: label,
76
+ if (reverseRecord) {
77
+ if (!records) {
78
+ records = { coinTypes: [{ key: 'ETH', value: owner }] }
79
+ } else if (!records.coinTypes?.find((c) => c.key === 'ETH')) {
80
+ if (!records.coinTypes) records.coinTypes = []
81
+ records.coinTypes.push({ key: 'ETH', value: owner })
82
+ }
83
+ }
84
+
85
+ const data = records ? generateRecordCallArray(hash, records, resolver) : []
86
+
87
+ return [
88
+ label,
40
89
  owner,
41
90
  duration,
42
- secret,
43
- resolver: resolverAddress,
91
+ resolverAddress,
44
92
  data,
45
- reverseRecord: !!reverseRecord,
46
- fuses: fuseData,
93
+ secret,
94
+ !!reverseRecord,
95
+ fuseData,
96
+ wrapperExpiry || Math.floor(Date.now() / 1000) + duration,
97
+ ]
98
+ }
99
+
100
+ export const makeRegistrationData = (
101
+ params: RegistrationParams,
102
+ ): RegistrationTuple => {
103
+ const commitmentData = makeCommitmentData(params)
104
+ commitmentData[0] = params.name.split('.')[0]
105
+ const secret = commitmentData.splice(5, 1)[0]
106
+ commitmentData.splice(3, 0, secret)
107
+ return commitmentData as unknown as RegistrationTuple
108
+ }
109
+
110
+ export const makeCommitment = ({
111
+ secret = randomSecret(),
112
+ ...inputParams
113
+ }: CommitmentParams) => {
114
+ const generatedParams = makeCommitmentData({
115
+ ...inputParams,
116
+ secret,
47
117
  })
48
118
 
119
+ const commitment = _makeCommitment(generatedParams)
120
+
49
121
  return {
50
122
  secret,
51
123
  commitment,
124
+ wrapperExpiry: generatedParams[8],
52
125
  }
53
126
  }
54
127
 
55
- export const _makeCommitment = ({
56
- labelhash,
57
- owner,
58
- duration,
59
- secret,
60
- resolver,
61
- data,
62
- reverseRecord,
63
- fuses,
64
- }: {
65
- labelhash: string
66
- owner: string
67
- duration: number
68
- secret: string
69
- resolver: string
70
- data: string[]
71
- reverseRecord: boolean
72
- fuses: string
73
- }) => {
74
- return utils.solidityKeccak256(
75
- [
76
- 'bytes32',
77
- 'address',
78
- 'uint256',
79
- 'bytes32',
80
- 'address',
81
- 'bytes[]',
82
- 'bool',
83
- 'uint96',
84
- ],
85
- [labelhash, owner, duration, secret, resolver, data, reverseRecord, fuses],
128
+ export const _makeCommitment = (params: CommitmentTuple) => {
129
+ return utils.keccak256(
130
+ utils.defaultAbiCoder.encode(
131
+ [
132
+ 'bytes32',
133
+ 'address',
134
+ 'uint256',
135
+ 'address',
136
+ 'bytes[]',
137
+ 'bytes32',
138
+ 'bool',
139
+ 'uint32',
140
+ 'uint64',
141
+ ],
142
+ params,
143
+ ),
86
144
  )
87
145
  }
@@ -0,0 +1,31 @@
1
+ import { BigNumber } from 'ethers'
2
+ import { ENSArgs } from '..'
3
+
4
+ export type Expiry = string | number | Date | BigNumber
5
+
6
+ export const MAX_EXPIRY = BigNumber.from(2).pow(64).sub(1)
7
+
8
+ export const makeExpiry = async (
9
+ { getExpiry }: ENSArgs<'getExpiry'>,
10
+ name: string,
11
+ expiry?: Expiry,
12
+ ) => {
13
+ if (expiry) {
14
+ if (expiry instanceof Date) {
15
+ return BigNumber.from(expiry.getTime() / 1000)
16
+ } else if (expiry instanceof BigNumber) {
17
+ return expiry
18
+ } else {
19
+ return BigNumber.from(expiry)
20
+ }
21
+ } else {
22
+ if (name.endsWith('.eth')) {
23
+ const expResponse = await getExpiry(name)
24
+ if (!expResponse?.expiry)
25
+ throw new Error("Couldn't get expiry for name, please provide one.")
26
+ return BigNumber.from(expResponse.expiry.getTime() / 1000)
27
+ } else {
28
+ return MAX_EXPIRY
29
+ }
30
+ }
31
+ }
@@ -1,6 +1,16 @@
1
1
  import { JsonRpcSigner } from '@ethersproject/providers'
2
2
  import type { PopulatedTransaction } from 'ethers'
3
3
 
4
+ type CustomData = Record<string, any>
5
+
6
+ const withCustomData = <T extends object>(
7
+ tx: T,
8
+ customData: CustomData | undefined,
9
+ ): (T & { customData: CustomData }) | T =>
10
+ customData ? { ...tx, customData } : tx
11
+
4
12
  export default (signer: JsonRpcSigner, populate: boolean) =>
5
- (tx: PopulatedTransaction) =>
6
- populate ? tx : signer.sendTransaction(tx)
13
+ ({ customData, ...tx }: PopulatedTransaction) =>
14
+ populate
15
+ ? withCustomData(tx, customData)
16
+ : signer.sendTransaction(tx).then((r) => withCustomData(r, customData))
@@ -1,3 +0,0 @@
1
- import { ethers } from 'ethers';
2
- declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated/DoNotCallOnChainUniversalResolverProxy").DoNotCallOnChainUniversalResolverProxy;
3
- export default _default;
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const DoNotCallOnChainUniversalResolverProxy__factory_1 = require("../generated/factories/DoNotCallOnChainUniversalResolverProxy__factory");
4
- exports.default = (provider, address) => DoNotCallOnChainUniversalResolverProxy__factory_1.DoNotCallOnChainUniversalResolverProxy__factory.connect(address, provider);
@@ -1,144 +0,0 @@
1
- import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
2
- import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
3
- import type { Listener, Provider } from "@ethersproject/providers";
4
- import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
5
- export declare namespace DoNotCallOnChainUniversalResolverProxy {
6
- type ReverseCallStruct = {
7
- target: string;
8
- data: BytesLike;
9
- dataType: BigNumberish;
10
- locations: BigNumberish[];
11
- };
12
- type ReverseCallStructOutput = [
13
- string,
14
- string,
15
- number,
16
- BigNumber[]
17
- ] & {
18
- target: string;
19
- data: string;
20
- dataType: number;
21
- locations: BigNumber[];
22
- };
23
- }
24
- export interface DoNotCallOnChainUniversalResolverProxyInterface extends utils.Interface {
25
- functions: {
26
- "isOwner(address)": FunctionFragment;
27
- "owner()": FunctionFragment;
28
- "reverse(bytes,(address,bytes,uint8,uint256[])[])": FunctionFragment;
29
- "setUniversalResolver(address)": FunctionFragment;
30
- "transferOwnership(address)": FunctionFragment;
31
- "universalResolver()": FunctionFragment;
32
- };
33
- getFunction(nameOrSignatureOrTopic: "isOwner" | "owner" | "reverse" | "setUniversalResolver" | "transferOwnership" | "universalResolver"): FunctionFragment;
34
- encodeFunctionData(functionFragment: "isOwner", values: [string]): string;
35
- encodeFunctionData(functionFragment: "owner", values?: undefined): string;
36
- encodeFunctionData(functionFragment: "reverse", values: [
37
- BytesLike,
38
- DoNotCallOnChainUniversalResolverProxy.ReverseCallStruct[]
39
- ]): string;
40
- encodeFunctionData(functionFragment: "setUniversalResolver", values: [string]): string;
41
- encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
42
- encodeFunctionData(functionFragment: "universalResolver", values?: undefined): string;
43
- decodeFunctionResult(functionFragment: "isOwner", data: BytesLike): Result;
44
- decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
45
- decodeFunctionResult(functionFragment: "reverse", data: BytesLike): Result;
46
- decodeFunctionResult(functionFragment: "setUniversalResolver", data: BytesLike): Result;
47
- decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
48
- decodeFunctionResult(functionFragment: "universalResolver", data: BytesLike): Result;
49
- events: {
50
- "OwnershipTransferred(address,address)": EventFragment;
51
- };
52
- getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
53
- }
54
- export interface OwnershipTransferredEventObject {
55
- previousOwner: string;
56
- newOwner: string;
57
- }
58
- export declare type OwnershipTransferredEvent = TypedEvent<[
59
- string,
60
- string
61
- ], OwnershipTransferredEventObject>;
62
- export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
63
- export interface DoNotCallOnChainUniversalResolverProxy extends BaseContract {
64
- connect(signerOrProvider: Signer | Provider | string): this;
65
- attach(addressOrName: string): this;
66
- deployed(): Promise<this>;
67
- interface: DoNotCallOnChainUniversalResolverProxyInterface;
68
- queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
69
- listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
70
- listeners(eventName?: string): Array<Listener>;
71
- removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
72
- removeAllListeners(eventName?: string): this;
73
- off: OnEvent<this>;
74
- on: OnEvent<this>;
75
- once: OnEvent<this>;
76
- removeListener: OnEvent<this>;
77
- functions: {
78
- isOwner(addr: string, overrides?: CallOverrides): Promise<[boolean]>;
79
- owner(overrides?: CallOverrides): Promise<[string]>;
80
- reverse(reverseNode: BytesLike, calls: DoNotCallOnChainUniversalResolverProxy.ReverseCallStruct[], overrides?: CallOverrides): Promise<[string, string[]] & {
81
- name: string;
82
- returnData: string[];
83
- }>;
84
- setUniversalResolver(newUniversalResolver: string, overrides?: Overrides & {
85
- from?: string | Promise<string>;
86
- }): Promise<ContractTransaction>;
87
- transferOwnership(newOwner: string, overrides?: Overrides & {
88
- from?: string | Promise<string>;
89
- }): Promise<ContractTransaction>;
90
- universalResolver(overrides?: CallOverrides): Promise<[string]>;
91
- };
92
- isOwner(addr: string, overrides?: CallOverrides): Promise<boolean>;
93
- owner(overrides?: CallOverrides): Promise<string>;
94
- reverse(reverseNode: BytesLike, calls: DoNotCallOnChainUniversalResolverProxy.ReverseCallStruct[], overrides?: CallOverrides): Promise<[string, string[]] & {
95
- name: string;
96
- returnData: string[];
97
- }>;
98
- setUniversalResolver(newUniversalResolver: string, overrides?: Overrides & {
99
- from?: string | Promise<string>;
100
- }): Promise<ContractTransaction>;
101
- transferOwnership(newOwner: string, overrides?: Overrides & {
102
- from?: string | Promise<string>;
103
- }): Promise<ContractTransaction>;
104
- universalResolver(overrides?: CallOverrides): Promise<string>;
105
- callStatic: {
106
- isOwner(addr: string, overrides?: CallOverrides): Promise<boolean>;
107
- owner(overrides?: CallOverrides): Promise<string>;
108
- reverse(reverseNode: BytesLike, calls: DoNotCallOnChainUniversalResolverProxy.ReverseCallStruct[], overrides?: CallOverrides): Promise<[string, string[]] & {
109
- name: string;
110
- returnData: string[];
111
- }>;
112
- setUniversalResolver(newUniversalResolver: string, overrides?: CallOverrides): Promise<void>;
113
- transferOwnership(newOwner: string, overrides?: CallOverrides): Promise<void>;
114
- universalResolver(overrides?: CallOverrides): Promise<string>;
115
- };
116
- filters: {
117
- "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
118
- OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
119
- };
120
- estimateGas: {
121
- isOwner(addr: string, overrides?: CallOverrides): Promise<BigNumber>;
122
- owner(overrides?: CallOverrides): Promise<BigNumber>;
123
- reverse(reverseNode: BytesLike, calls: DoNotCallOnChainUniversalResolverProxy.ReverseCallStruct[], overrides?: CallOverrides): Promise<BigNumber>;
124
- setUniversalResolver(newUniversalResolver: string, overrides?: Overrides & {
125
- from?: string | Promise<string>;
126
- }): Promise<BigNumber>;
127
- transferOwnership(newOwner: string, overrides?: Overrides & {
128
- from?: string | Promise<string>;
129
- }): Promise<BigNumber>;
130
- universalResolver(overrides?: CallOverrides): Promise<BigNumber>;
131
- };
132
- populateTransaction: {
133
- isOwner(addr: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
134
- owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
135
- reverse(reverseNode: BytesLike, calls: DoNotCallOnChainUniversalResolverProxy.ReverseCallStruct[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
136
- setUniversalResolver(newUniversalResolver: string, overrides?: Overrides & {
137
- from?: string | Promise<string>;
138
- }): Promise<PopulatedTransaction>;
139
- transferOwnership(newOwner: string, overrides?: Overrides & {
140
- from?: string | Promise<string>;
141
- }): Promise<PopulatedTransaction>;
142
- universalResolver(overrides?: CallOverrides): Promise<PopulatedTransaction>;
143
- };
144
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,56 +0,0 @@
1
- import { Signer } from "ethers";
2
- import type { Provider } from "@ethersproject/providers";
3
- import type { DoNotCallOnChainUniversalResolverProxy, DoNotCallOnChainUniversalResolverProxyInterface } from "../DoNotCallOnChainUniversalResolverProxy";
4
- export declare class DoNotCallOnChainUniversalResolverProxy__factory {
5
- static readonly abi: ({
6
- inputs: {
7
- internalType: string;
8
- name: string;
9
- type: string;
10
- }[];
11
- stateMutability: string;
12
- type: string;
13
- anonymous?: undefined;
14
- name?: undefined;
15
- outputs?: undefined;
16
- } | {
17
- anonymous: boolean;
18
- inputs: {
19
- indexed: boolean;
20
- internalType: string;
21
- name: string;
22
- type: string;
23
- }[];
24
- name: string;
25
- type: string;
26
- stateMutability?: undefined;
27
- outputs?: undefined;
28
- } | {
29
- inputs: ({
30
- internalType: string;
31
- name: string;
32
- type: string;
33
- components?: undefined;
34
- } | {
35
- components: {
36
- internalType: string;
37
- name: string;
38
- type: string;
39
- }[];
40
- internalType: string;
41
- name: string;
42
- type: string;
43
- })[];
44
- name: string;
45
- outputs: {
46
- internalType: string;
47
- name: string;
48
- type: string;
49
- }[];
50
- stateMutability: string;
51
- type: string;
52
- anonymous?: undefined;
53
- })[];
54
- static createInterface(): DoNotCallOnChainUniversalResolverProxyInterface;
55
- static connect(address: string, signerOrProvider: Signer | Provider): DoNotCallOnChainUniversalResolverProxy;
56
- }
@@ -1,171 +0,0 @@
1
- "use strict";
2
- /* Autogenerated file. Do not edit manually. */
3
- /* tslint:disable */
4
- /* eslint-disable */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DoNotCallOnChainUniversalResolverProxy__factory = void 0;
7
- const ethers_1 = require("ethers");
8
- const _abi = [
9
- {
10
- inputs: [
11
- {
12
- internalType: "address",
13
- name: "_resolver",
14
- type: "address",
15
- },
16
- ],
17
- stateMutability: "nonpayable",
18
- type: "constructor",
19
- },
20
- {
21
- anonymous: false,
22
- inputs: [
23
- {
24
- indexed: true,
25
- internalType: "address",
26
- name: "previousOwner",
27
- type: "address",
28
- },
29
- {
30
- indexed: true,
31
- internalType: "address",
32
- name: "newOwner",
33
- type: "address",
34
- },
35
- ],
36
- name: "OwnershipTransferred",
37
- type: "event",
38
- },
39
- {
40
- inputs: [
41
- {
42
- internalType: "address",
43
- name: "addr",
44
- type: "address",
45
- },
46
- ],
47
- name: "isOwner",
48
- outputs: [
49
- {
50
- internalType: "bool",
51
- name: "",
52
- type: "bool",
53
- },
54
- ],
55
- stateMutability: "view",
56
- type: "function",
57
- },
58
- {
59
- inputs: [],
60
- name: "owner",
61
- outputs: [
62
- {
63
- internalType: "address",
64
- name: "",
65
- type: "address",
66
- },
67
- ],
68
- stateMutability: "view",
69
- type: "function",
70
- },
71
- {
72
- inputs: [
73
- {
74
- internalType: "bytes",
75
- name: "reverseNode",
76
- type: "bytes",
77
- },
78
- {
79
- components: [
80
- {
81
- internalType: "address",
82
- name: "target",
83
- type: "address",
84
- },
85
- {
86
- internalType: "bytes",
87
- name: "data",
88
- type: "bytes",
89
- },
90
- {
91
- internalType: "enum DoNotCallOnChainUniversalResolverProxy.ReverseCallDataType",
92
- name: "dataType",
93
- type: "uint8",
94
- },
95
- {
96
- internalType: "uint256[]",
97
- name: "locations",
98
- type: "uint256[]",
99
- },
100
- ],
101
- internalType: "struct DoNotCallOnChainUniversalResolverProxy.ReverseCall[]",
102
- name: "calls",
103
- type: "tuple[]",
104
- },
105
- ],
106
- name: "reverse",
107
- outputs: [
108
- {
109
- internalType: "string",
110
- name: "name",
111
- type: "string",
112
- },
113
- {
114
- internalType: "bytes[]",
115
- name: "returnData",
116
- type: "bytes[]",
117
- },
118
- ],
119
- stateMutability: "view",
120
- type: "function",
121
- },
122
- {
123
- inputs: [
124
- {
125
- internalType: "address",
126
- name: "newUniversalResolver",
127
- type: "address",
128
- },
129
- ],
130
- name: "setUniversalResolver",
131
- outputs: [],
132
- stateMutability: "nonpayable",
133
- type: "function",
134
- },
135
- {
136
- inputs: [
137
- {
138
- internalType: "address",
139
- name: "newOwner",
140
- type: "address",
141
- },
142
- ],
143
- name: "transferOwnership",
144
- outputs: [],
145
- stateMutability: "nonpayable",
146
- type: "function",
147
- },
148
- {
149
- inputs: [],
150
- name: "universalResolver",
151
- outputs: [
152
- {
153
- internalType: "contract UniversalResolver",
154
- name: "",
155
- type: "address",
156
- },
157
- ],
158
- stateMutability: "view",
159
- type: "function",
160
- },
161
- ];
162
- class DoNotCallOnChainUniversalResolverProxy__factory {
163
- static abi = _abi;
164
- static createInterface() {
165
- return new ethers_1.utils.Interface(_abi);
166
- }
167
- static connect(address, signerOrProvider) {
168
- return new ethers_1.Contract(address, _abi, signerOrProvider);
169
- }
170
- }
171
- exports.DoNotCallOnChainUniversalResolverProxy__factory = DoNotCallOnChainUniversalResolverProxy__factory;
@@ -1,3 +0,0 @@
1
- import { ethers } from 'ethers';
2
- declare const _default: (provider: ethers.providers.JsonRpcProvider, address: string) => import("../generated/DoNotCallOnChainUniversalResolverProxy").DoNotCallOnChainUniversalResolverProxy;
3
- export default _default;
@@ -1,2 +0,0 @@
1
- import { DoNotCallOnChainUniversalResolverProxy__factory } from '../generated/factories/DoNotCallOnChainUniversalResolverProxy__factory';
2
- export default (provider, address) => DoNotCallOnChainUniversalResolverProxy__factory.connect(address, provider);