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

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 (107) hide show
  1. package/dist/cjs/contracts/getContractAddress.js +4 -4
  2. package/dist/cjs/functions/commitName.js +2 -3
  3. package/dist/cjs/functions/createSubname.js +2 -8
  4. package/dist/cjs/functions/getHistory.js +14 -7
  5. package/dist/cjs/functions/getNames.js +10 -6
  6. package/dist/cjs/functions/getOwner.js +25 -12
  7. package/dist/cjs/functions/getWrapperData.js +3 -4
  8. package/dist/cjs/functions/renewNames.js +13 -20
  9. package/dist/cjs/functions/{burnFuses.js → setFuses.js} +24 -6
  10. package/dist/cjs/functions/wrapName.js +7 -23
  11. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +6 -55
  12. package/dist/cjs/generated/factories/NameWrapper__factory.js +90 -69
  13. package/dist/cjs/generated/factories/PublicResolver__factory.js +83 -0
  14. package/dist/cjs/generated/factories/UniversalResolver__factory.js +67 -2
  15. package/dist/cjs/index.js +5 -4
  16. package/dist/cjs/utils/consts.js +3 -1
  17. package/dist/cjs/utils/fuses.js +218 -53
  18. package/dist/cjs/utils/normalise.js +2 -2
  19. package/dist/cjs/utils/recordHelpers.js +4 -3
  20. package/dist/cjs/utils/registerHelpers.js +9 -23
  21. package/dist/cjs/utils/subgraph-types.js +16 -0
  22. package/dist/cjs/utils/wrapper.js +2 -2
  23. package/dist/esm/contracts/getContractAddress.mjs +4 -4
  24. package/dist/esm/functions/commitName.mjs +2 -3
  25. package/dist/esm/functions/createSubname.mjs +2 -2
  26. package/dist/esm/functions/getHistory.mjs +14 -7
  27. package/dist/esm/functions/getNames.mjs +10 -6
  28. package/dist/esm/functions/getOwner.mjs +25 -12
  29. package/dist/esm/functions/getWrapperData.mjs +3 -4
  30. package/dist/esm/functions/renewNames.mjs +13 -20
  31. package/dist/esm/functions/setFuses.mjs +30 -0
  32. package/dist/esm/functions/wrapName.mjs +8 -18
  33. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +6 -55
  34. package/dist/esm/generated/factories/NameWrapper__factory.mjs +90 -69
  35. package/dist/esm/generated/factories/PublicResolver__factory.mjs +83 -0
  36. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +67 -2
  37. package/dist/esm/index.mjs +5 -4
  38. package/dist/esm/utils/consts.mjs +3 -1
  39. package/dist/esm/utils/fuses.mjs +218 -53
  40. package/dist/esm/utils/normalise.mjs +1 -1
  41. package/dist/esm/utils/recordHelpers.mjs +2 -1
  42. package/dist/esm/utils/registerHelpers.mjs +9 -17
  43. package/dist/esm/utils/subgraph-types.mjs +0 -0
  44. package/dist/esm/utils/wrapper.mjs +1 -1
  45. package/dist/types/functions/commitName.d.ts +0 -1
  46. package/dist/types/functions/createSubname.d.ts +2 -2
  47. package/dist/types/functions/getHistory.d.ts +1 -1
  48. package/dist/types/functions/getNames.d.ts +3 -3
  49. package/dist/types/functions/getOwner.d.ts +1 -0
  50. package/dist/types/functions/getWrapperData.d.ts +44 -5
  51. package/dist/types/functions/renewNames.d.ts +4 -5
  52. package/dist/types/functions/setFuses.d.ts +7 -0
  53. package/dist/types/functions/types.d.ts +6 -4
  54. package/dist/types/functions/wrapName.d.ts +3 -3
  55. package/dist/types/generated/ETHRegistrarController.d.ts +13 -36
  56. package/dist/types/generated/NameWrapper.d.ts +97 -52
  57. package/dist/types/generated/PublicResolver.d.ts +50 -1
  58. package/dist/types/generated/UniversalResolver.d.ts +79 -32
  59. package/dist/types/generated/factories/UniversalResolver__factory.d.ts +15 -0
  60. package/dist/types/index.d.ts +51 -9
  61. package/dist/types/utils/consts.d.ts +1 -0
  62. package/dist/types/utils/fuses.d.ts +115 -45
  63. package/dist/types/utils/registerHelpers.d.ts +7 -25
  64. package/dist/types/utils/subgraph-types.d.ts +284 -0
  65. package/package.json +5 -5
  66. package/src/contracts/getContractAddress.ts +4 -4
  67. package/src/functions/commitName.test.ts +0 -3
  68. package/src/functions/commitName.ts +1 -2
  69. package/src/functions/createSubname.ts +4 -5
  70. package/src/functions/getHistory.ts +59 -25
  71. package/src/functions/getNames.test.ts +1 -1
  72. package/src/functions/getNames.ts +26 -13
  73. package/src/functions/getOwner.test.ts +62 -3
  74. package/src/functions/getOwner.ts +31 -11
  75. package/src/functions/getWrapperData.test.ts +11 -45
  76. package/src/functions/getWrapperData.ts +7 -5
  77. package/src/functions/registerName.test.ts +3 -3
  78. package/src/functions/renewNames.ts +17 -23
  79. package/src/functions/setFuses.test.ts +240 -0
  80. package/src/functions/setFuses.ts +44 -0
  81. package/src/functions/types.ts +6 -4
  82. package/src/functions/wrapName.test.ts +8 -7
  83. package/src/functions/wrapName.ts +10 -24
  84. package/src/generated/ETHRegistrarController.ts +12 -79
  85. package/src/generated/NameWrapper.ts +155 -99
  86. package/src/generated/PublicResolver.ts +123 -0
  87. package/src/generated/UniversalResolver.ts +157 -16
  88. package/src/generated/factories/ETHRegistrarController__factory.ts +6 -55
  89. package/src/generated/factories/NameWrapper__factory.ts +90 -69
  90. package/src/generated/factories/PublicResolver__factory.ts +83 -0
  91. package/src/generated/factories/UniversalResolver__factory.ts +67 -2
  92. package/src/index.ts +11 -14
  93. package/src/utils/consts.ts +1 -0
  94. package/src/utils/fuses.ts +299 -102
  95. package/src/utils/normalise.ts +1 -1
  96. package/src/utils/recordHelpers.ts +2 -1
  97. package/src/utils/registerHelpers.ts +13 -41
  98. package/src/utils/subgraph-types.ts +312 -0
  99. package/src/utils/wrapper.ts +1 -1
  100. package/dist/cjs/utils/generateFuseInput.js +0 -40
  101. package/dist/esm/functions/burnFuses.mjs +0 -12
  102. package/dist/esm/utils/generateFuseInput.mjs +0 -15
  103. package/dist/types/functions/burnFuses.d.ts +0 -3
  104. package/dist/types/utils/generateFuseInput.d.ts +0 -3
  105. package/src/functions/burnFuses.test.ts +0 -148
  106. package/src/functions/burnFuses.ts +0 -16
  107. package/src/utils/generateFuseInput.ts +0 -13
@@ -18,32 +18,66 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var fuses_exports = {};
20
20
  __export(fuses_exports, {
21
+ CHILD_CONTROLLED_FUSES: () => CHILD_CONTROLLED_FUSES,
22
+ PARENT_CONTROLLED_FUSES: () => PARENT_CONTROLLED_FUSES,
23
+ USER_SETTABLE_FUSES: () => USER_SETTABLE_FUSES,
24
+ childFuseEnum: () => childFuseEnum,
25
+ childFuseKeys: () => childFuseKeys,
21
26
  decodeFuses: () => decodeFuses,
22
27
  default: () => fuses_default,
23
- fuseEnum: () => fuseEnum,
24
- unnamedFuses: () => unnamedFuses,
25
- validateFuses: () => validateFuses
28
+ encodeFuses: () => encodeFuses,
29
+ fullFuseEnum: () => fullFuseEnum,
30
+ fullParentFuseEnum: () => fullParentFuseEnum,
31
+ fullParentFuseKeys: () => fullParentFuseKeys,
32
+ hasFuses: () => hasFuses,
33
+ parentFuseEnum: () => parentFuseEnum,
34
+ parentFuseKeys: () => parentFuseKeys,
35
+ unnamedChildFuses: () => unnamedChildFuses,
36
+ unnamedParentFuses: () => unnamedParentFuses,
37
+ unnamedUserSettableFuses: () => unnamedUserSettableFuses,
38
+ userSettableFuseEnum: () => userSettableFuseEnum,
39
+ userSettableFuseKeys: () => userSettableFuseKeys
26
40
  });
27
41
  module.exports = __toCommonJS(fuses_exports);
28
- var import_bignumber = require("@ethersproject/bignumber/lib/bignumber");
29
42
  const CANNOT_UNWRAP = 1;
30
43
  const CANNOT_BURN_FUSES = 2;
31
44
  const CANNOT_TRANSFER = 4;
32
45
  const CANNOT_SET_RESOLVER = 8;
33
46
  const CANNOT_SET_TTL = 16;
34
47
  const CANNOT_CREATE_SUBDOMAIN = 32;
35
- const PARENT_CANNOT_CONTROL = 64;
48
+ const PARENT_CANNOT_CONTROL = 65536;
49
+ const IS_DOT_ETH = 131072;
50
+ const CAN_EXTEND_EXPIRY = 262144;
51
+ const CHILD_CONTROLLED_FUSES = 65535;
52
+ const PARENT_CONTROLLED_FUSES = 4294901760;
53
+ const USER_SETTABLE_FUSES = 4294836223;
36
54
  const CAN_DO_EVERYTHING = 0;
37
- const fuseEnum = {
55
+ const childFuseEnum = {
38
56
  CANNOT_UNWRAP,
39
57
  CANNOT_BURN_FUSES,
40
58
  CANNOT_TRANSFER,
41
59
  CANNOT_SET_RESOLVER,
42
60
  CANNOT_SET_TTL,
43
- CANNOT_CREATE_SUBDOMAIN,
44
- PARENT_CANNOT_CONTROL
61
+ CANNOT_CREATE_SUBDOMAIN
45
62
  };
46
- const unnamedFuses = [
63
+ const parentFuseEnum = {
64
+ PARENT_CANNOT_CONTROL,
65
+ CAN_EXTEND_EXPIRY
66
+ };
67
+ const fullParentFuseEnum = {
68
+ ...parentFuseEnum,
69
+ IS_DOT_ETH
70
+ };
71
+ const userSettableFuseEnum = {
72
+ ...childFuseEnum,
73
+ ...parentFuseEnum
74
+ };
75
+ const fullFuseEnum = {
76
+ ...userSettableFuseEnum,
77
+ CAN_DO_EVERYTHING
78
+ };
79
+ const unnamedChildFuses = [
80
+ 64,
47
81
  128,
48
82
  256,
49
83
  512,
@@ -52,10 +86,9 @@ const unnamedFuses = [
52
86
  4096,
53
87
  8192,
54
88
  16384,
55
- 32768,
56
- 65536,
57
- 131072,
58
- 262144,
89
+ 32768
90
+ ];
91
+ const unnamedParentFuses = [
59
92
  524288,
60
93
  1048576,
61
94
  2097152,
@@ -68,67 +101,199 @@ const unnamedFuses = [
68
101
  268435456,
69
102
  536870912,
70
103
  1073741824,
71
- 2147483648,
72
- 4294967296
104
+ 2147483648
73
105
  ];
74
- const fullFuseEnum = {
75
- ...fuseEnum,
76
- CAN_DO_EVERYTHING
106
+ const unnamedUserSettableFuses = [
107
+ ...unnamedChildFuses,
108
+ ...unnamedParentFuses
109
+ ];
110
+ const childFuseKeys = Object.keys(
111
+ childFuseEnum
112
+ );
113
+ const parentFuseKeys = Object.keys(
114
+ parentFuseEnum
115
+ );
116
+ const fullParentFuseKeys = Object.keys(
117
+ fullParentFuseEnum
118
+ );
119
+ const userSettableFuseKeys = Object.keys(
120
+ userSettableFuseEnum
121
+ );
122
+ const checkNumber = (fuses) => {
123
+ if (fuses > 2 ** 32 || fuses < 1) {
124
+ throw new Error(
125
+ `Fuse number must be limited to uint32, ${fuses} was too ${fuses < 1 ? "low" : "high"}.`
126
+ );
127
+ } else if (fuses % 1 !== 0) {
128
+ throw new Error(`Fuse number must be an integer, ${fuses} was not.`);
129
+ } else if ((fuses & USER_SETTABLE_FUSES) !== fuses) {
130
+ throw new Error(
131
+ `Fuse number must be limited to user settable fuses, ${fuses} was not.`
132
+ );
133
+ }
77
134
  };
78
- const validateFuses = (fuses) => {
79
- const isNumber = "fuseNumberToBurn" in fuses;
80
- const hasNamedArray = "namedFusesToBurn" in fuses;
81
- const hasUnnamedArray = "unnamedFusesToBurn" in fuses;
135
+ const testFuses = (fuses) => {
136
+ if ("named" in fuses && fuses.named.length > 0) {
137
+ return true;
138
+ }
139
+ if ("unnamed" in fuses && fuses.unnamed.length > 0) {
140
+ return true;
141
+ }
142
+ if ("number" in fuses && fuses.number !== 0) {
143
+ return true;
144
+ }
145
+ return false;
146
+ };
147
+ const hasFuses = (fuses) => {
148
+ if (typeof fuses === "number") {
149
+ return fuses !== 0;
150
+ }
151
+ if (typeof fuses === "object") {
152
+ if ("child" in fuses && testFuses(fuses.child)) {
153
+ return true;
154
+ }
155
+ if ("parent" in fuses && testFuses(fuses.parent)) {
156
+ return true;
157
+ }
158
+ if (testFuses(fuses)) {
159
+ return true;
160
+ }
161
+ }
162
+ return false;
163
+ };
164
+ function encodeFuses(fuses, restrictTo) {
82
165
  let encodedFuses = 0;
83
- if (isNumber) {
84
- if (fuses.fuseNumberToBurn > 2 ** 32 || fuses.fuseNumberToBurn < 1) {
85
- throw new Error(
86
- `Fuse number must be limited to uint32, ${fuses.fuseNumberToBurn} was too ${fuses.fuseNumberToBurn < 1 ? "low" : "high"}.`
87
- );
88
- } else if (fuses.fuseNumberToBurn % 1 !== 0) {
89
- throw new Error(
90
- `Fuse number must be an integer, ${fuses.fuseNumberToBurn} was not.`
91
- );
166
+ if (typeof fuses === "number") {
167
+ if (restrictTo) {
168
+ throw new Error("Cannot specify an exact fuse value when restricted.");
92
169
  }
93
- encodedFuses = fuses.fuseNumberToBurn;
170
+ checkNumber(fuses);
171
+ encodedFuses = fuses;
94
172
  } else {
95
- if (!hasNamedArray && !hasUnnamedArray) {
96
- throw new Error("Please provide fuses to burn");
173
+ let fusesRef = fuses;
174
+ let allowedNamed = [];
175
+ let allowedUnnamed = [];
176
+ let namedArray = [];
177
+ let unnamedArray = [];
178
+ if (restrictTo) {
179
+ if ("parent" in fuses || "child" in fuses) {
180
+ throw new Error("Can't specify fuse category when restricted.");
181
+ }
182
+ allowedNamed = restrictTo === "child" ? childFuseKeys : parentFuseKeys;
183
+ allowedUnnamed = restrictTo === "child" ? unnamedChildFuses : unnamedParentFuses;
184
+ fusesRef = { [restrictTo]: fuses };
185
+ } else {
186
+ allowedNamed = userSettableFuseKeys;
187
+ allowedUnnamed = unnamedUserSettableFuses;
188
+ }
189
+ if ("parent" in fusesRef) {
190
+ if ("named" in fusesRef.parent)
191
+ namedArray = fusesRef.parent.named;
192
+ if ("unnamed" in fusesRef.parent)
193
+ unnamedArray = fusesRef.parent.unnamed;
194
+ if ("number" in fusesRef.parent) {
195
+ if ("named" in fusesRef.parent || "unnamed" in fusesRef.parent) {
196
+ throw new Error(
197
+ "Cannot specify both a fuse number and named/unnamed fuses."
198
+ );
199
+ }
200
+ checkNumber(fusesRef.parent.number);
201
+ if ((fusesRef.parent.number & PARENT_CONTROLLED_FUSES) !== fusesRef.parent.number) {
202
+ throw new Error(
203
+ "Cannot specify a fuse value to set that is outside of the parent's control."
204
+ );
205
+ }
206
+ encodedFuses |= fusesRef.parent.number;
207
+ }
208
+ }
209
+ if ("child" in fusesRef) {
210
+ if ("named" in fusesRef.child)
211
+ namedArray = [...namedArray, ...fusesRef.child.named];
212
+ if ("unnamed" in fusesRef.child)
213
+ unnamedArray = [...unnamedArray, ...fusesRef.child.unnamed];
214
+ if ("number" in fusesRef.child) {
215
+ if ("named" in fusesRef.child || "unnamed" in fusesRef.child) {
216
+ throw new Error(
217
+ "Cannot specify both a fuse number and named/unnamed fuses."
218
+ );
219
+ }
220
+ checkNumber(fusesRef.child.number);
221
+ if ((fusesRef.child.number & CHILD_CONTROLLED_FUSES) !== fusesRef.child.number) {
222
+ throw new Error(
223
+ "Cannot specify a fuse value to set that is outside of the owner's control."
224
+ );
225
+ }
226
+ encodedFuses |= fusesRef.child.number;
227
+ }
97
228
  }
98
- if (hasNamedArray) {
99
- for (const fuse of fuses.namedFusesToBurn) {
100
- if (!(fuse in fuseEnum)) {
229
+ if (!namedArray.length && !unnamedArray.length && !encodedFuses) {
230
+ throw new Error("Must specify at least one fuse.");
231
+ }
232
+ for (const fuse of namedArray) {
233
+ if (!allowedNamed.includes(fuse)) {
234
+ if (!userSettableFuseKeys.includes(fuse)) {
101
235
  throw new Error(`${fuse} is not a valid named fuse.`);
102
236
  }
103
- encodedFuses |= fuseEnum[fuse];
237
+ throw new Error(`Fuse ${fuse} is not allowed for this operation.`);
104
238
  }
239
+ encodedFuses |= userSettableFuseEnum[fuse];
105
240
  }
106
- if (hasUnnamedArray) {
107
- for (const fuse of fuses.unnamedFusesToBurn) {
108
- if (!unnamedFuses.includes(fuse)) {
241
+ for (const fuse of unnamedArray) {
242
+ if (!allowedUnnamed.includes(fuse)) {
243
+ if (!unnamedUserSettableFuses.includes(fuse)) {
109
244
  throw new Error(
110
- `${fuse} is not a valid unnamed fuse. If you are trying to burn a named fuse, use the namedFusesToBurn property.`
245
+ `${fuse} is not a valid unnamed fuse. If you are trying to set a named fuse, use the named property.`
111
246
  );
112
247
  }
113
- encodedFuses |= fuse;
248
+ throw new Error(`Fuse ${fuse} is not allowed for this operation.`);
114
249
  }
250
+ encodedFuses |= fuse;
115
251
  }
116
252
  }
117
253
  return encodedFuses;
118
- };
119
- const decodeFuses = (fuses) => {
120
- const bnFuses = import_bignumber.BigNumber.from(fuses);
254
+ }
255
+ const decodeNamedFuses = (fuses, arr) => {
121
256
  const fuseObj = Object.fromEntries(
122
- Object.keys(fuseEnum).map((fuse) => [
257
+ arr.map((fuse) => [
123
258
  fuse,
124
- bnFuses.and(fuseEnum[fuse]).gt(0)
259
+ (fuses & userSettableFuseEnum[fuse]) > 0
125
260
  ])
126
261
  );
127
- if (bnFuses.eq(0)) {
128
- fuseObj.CAN_DO_EVERYTHING = true;
129
- } else {
130
- fuseObj.CAN_DO_EVERYTHING = false;
131
- }
132
262
  return fuseObj;
133
263
  };
264
+ const decodeUnnamedFuses = (fuses, arr) => {
265
+ const fuseObj = Object.fromEntries(
266
+ arr.map((fuse) => [fuse, (fuses & fuse) > 0])
267
+ );
268
+ return fuseObj;
269
+ };
270
+ const decodeFuses = (fuses) => {
271
+ const parentNamedFuses = decodeNamedFuses(
272
+ fuses,
273
+ fullParentFuseKeys
274
+ );
275
+ const parentUnnamedFuses = decodeUnnamedFuses(
276
+ fuses,
277
+ unnamedParentFuses
278
+ );
279
+ const childNamedFuses = decodeNamedFuses(
280
+ fuses,
281
+ childFuseKeys
282
+ );
283
+ const childUnnamedFuses = decodeUnnamedFuses(
284
+ fuses,
285
+ unnamedChildFuses
286
+ );
287
+ return {
288
+ parent: {
289
+ ...parentNamedFuses,
290
+ unnamed: parentUnnamedFuses
291
+ },
292
+ child: {
293
+ ...childNamedFuses,
294
+ CAN_DO_EVERYTHING: (fuses & CHILD_CONTROLLED_FUSES) === 0,
295
+ unnamed: childUnnamedFuses
296
+ }
297
+ };
298
+ };
134
299
  var fuses_default = fullFuseEnum;
@@ -30,7 +30,7 @@ __export(normalise_exports, {
30
30
  module.exports = __toCommonJS(normalise_exports);
31
31
  var import_bytes = require("@ethersproject/bytes");
32
32
  var import_keccak256 = require("@ethersproject/keccak256");
33
- var import_utf8 = require("@ethersproject/strings/lib/utf8");
33
+ var import_strings = require("@ethersproject/strings");
34
34
  var import_uts46bundle = __toESM(require("idna-uts46-hx/uts46bundle.js"));
35
35
  var import_labels = require("./labels");
36
36
  const zeros = new Uint8Array(32);
@@ -46,7 +46,7 @@ const namehash = (name) => {
46
46
  labelSha = (0, import_labels.decodeLabelhash)(labels[i]);
47
47
  } else {
48
48
  const normalised = normalise(labels[i]);
49
- labelSha = (0, import_keccak256.keccak256)((0, import_utf8.toUtf8Bytes)(normalised));
49
+ labelSha = (0, import_keccak256.keccak256)((0, import_strings.toUtf8Bytes)(normalised));
50
50
  }
51
51
  result = (0, import_keccak256.keccak256)((0, import_bytes.concat)([result, labelSha]));
52
52
  }
@@ -31,7 +31,8 @@ __export(recordHelpers_exports, {
31
31
  });
32
32
  module.exports = __toCommonJS(recordHelpers_exports);
33
33
  var import_address_encoder = require("@ensdomains/address-encoder");
34
- var import_utils = require("ethers/lib/utils");
34
+ var import_bytes = require("@ethersproject/bytes");
35
+ var import_strings = require("@ethersproject/strings");
35
36
  var import_contentHash = require("./contentHash");
36
37
  const generateSetAddr = (namehash, coinType, address, resolver) => {
37
38
  let coinTypeInstance;
@@ -97,11 +98,11 @@ function generateSingleRecordCall(namehash, resolver, type) {
97
98
  const record = _r;
98
99
  const { contentType = 1, data } = record;
99
100
  let encodedData = data;
100
- if (!(0, import_utils.isBytesLike)(encodedData)) {
101
+ if (!(0, import_bytes.isBytesLike)(encodedData)) {
101
102
  if (typeof encodedData === "object") {
102
103
  encodedData = JSON.stringify(encodedData);
103
104
  }
104
- encodedData = (0, import_utils.toUtf8Bytes)(encodedData);
105
+ encodedData = (0, import_strings.toUtf8Bytes)(encodedData);
105
106
  }
106
107
  return resolver.interface.encodeFunctionData("setABI", [
107
108
  namehash,
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,9 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
19
  var registerHelpers_exports = {};
26
20
  __export(registerHelpers_exports, {
27
- MAX_INT_64: () => MAX_INT_64,
28
21
  _makeCommitment: () => _makeCommitment,
29
22
  makeCommitment: () => makeCommitment,
30
23
  makeCommitmentData: () => makeCommitmentData,
@@ -34,11 +27,10 @@ __export(registerHelpers_exports, {
34
27
  module.exports = __toCommonJS(registerHelpers_exports);
35
28
  var import_abi_coder = require("@ethersproject/abi/lib/abi-coder");
36
29
  var import_keccak256 = require("@ethersproject/keccak256");
37
- var import_generateFuseInput = __toESM(require("./generateFuseInput"));
30
+ var import_fuses = require("./fuses");
38
31
  var import_labels = require("./labels");
39
32
  var import_normalise = require("./normalise");
40
33
  var import_recordHelpers = require("./recordHelpers");
41
- const MAX_INT_64 = 2n ** 64n - 1n;
42
34
  const randomSecret = () => {
43
35
  const bytes = Buffer.allocUnsafe(32);
44
36
  return `0x${crypto.getRandomValues(bytes).toString("hex")}`;
@@ -51,14 +43,13 @@ const makeCommitmentData = ({
51
43
  records,
52
44
  reverseRecord,
53
45
  fuses,
54
- wrapperExpiry,
55
46
  secret
56
47
  }) => {
57
48
  var _a;
58
- const label = (0, import_labels.labelhash)(name.split(".")[0]);
49
+ const labelHash = (0, import_labels.labelhash)(name.split(".")[0]);
59
50
  const hash = (0, import_normalise.namehash)(name);
60
51
  const resolverAddress = resolver.address;
61
- const fuseData = fuses ? (0, import_generateFuseInput.default)(fuses) : "0";
52
+ const fuseData = (0, import_fuses.hasFuses)(fuses) ? (0, import_fuses.encodeFuses)(fuses, "child") : 0;
62
53
  if (reverseRecord) {
63
54
  if (!records) {
64
55
  records = { coinTypes: [{ key: "ETH", value: owner }] };
@@ -70,23 +61,20 @@ const makeCommitmentData = ({
70
61
  }
71
62
  const data = records ? (0, import_recordHelpers.generateRecordCallArray)(hash, records, resolver) : [];
72
63
  return [
73
- label,
64
+ labelHash,
74
65
  owner,
75
66
  duration,
67
+ secret,
76
68
  resolverAddress,
77
69
  data,
78
- secret,
79
70
  !!reverseRecord,
80
- fuseData,
81
- wrapperExpiry || MAX_INT_64
71
+ fuseData
82
72
  ];
83
73
  };
84
74
  const makeRegistrationData = (params) => {
85
75
  const commitmentData = makeCommitmentData(params);
86
76
  const label = params.name.split(".")[0];
87
77
  commitmentData[0] = label;
88
- const secret = commitmentData.splice(5, 1)[0];
89
- commitmentData.splice(3, 0, secret);
90
78
  return commitmentData;
91
79
  };
92
80
  const _makeCommitment = (params) => {
@@ -96,12 +84,11 @@ const _makeCommitment = (params) => {
96
84
  "bytes32",
97
85
  "address",
98
86
  "uint256",
87
+ "bytes32",
99
88
  "address",
100
89
  "bytes[]",
101
- "bytes32",
102
90
  "bool",
103
- "uint32",
104
- "uint64"
91
+ "uint16"
105
92
  ],
106
93
  params
107
94
  )
@@ -118,7 +105,6 @@ const makeCommitment = ({
118
105
  const commitment = _makeCommitment(generatedParams);
119
106
  return {
120
107
  secret,
121
- commitment,
122
- wrapperExpiry: generatedParams[8]
108
+ commitment
123
109
  };
124
110
  };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var subgraph_types_exports = {};
16
+ module.exports = __toCommonJS(subgraph_types_exports);
@@ -24,7 +24,7 @@ __export(wrapper_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(wrapper_exports);
26
26
  var import_bignumber = require("@ethersproject/bignumber/lib/bignumber");
27
- var import_utf8 = require("@ethersproject/strings/lib/utf8");
27
+ var import_strings = require("@ethersproject/strings");
28
28
  const MAX_EXPIRY = import_bignumber.BigNumber.from(2).pow(64).sub(1);
29
29
  const makeExpiry = async ({ getExpiry }, name, expiry) => {
30
30
  if (expiry) {
@@ -45,7 +45,7 @@ const makeExpiry = async ({ getExpiry }, name, expiry) => {
45
45
  return MAX_EXPIRY;
46
46
  };
47
47
  const wrappedLabelLengthCheck = (label) => {
48
- const bytes = (0, import_utf8.toUtf8Bytes)(label);
48
+ const bytes = (0, import_strings.toUtf8Bytes)(label);
49
49
  if (bytes.byteLength > 255)
50
50
  throw new Error("Label can't be longer than 255 bytes");
51
51
  };
@@ -15,19 +15,19 @@ var addresses = {
15
15
  "1": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
16
16
  "3": "0xa5627AB7Ae47063B533622C34FEBDb52d3281dF8",
17
17
  "4": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
18
- "5": "0x9C51161bA2FB02Cc0a403332B607117685f34831"
18
+ "5": "0xb7A1f9e633fdeaAa2ec44bE00a61a7Db9a733D70"
19
19
  },
20
20
  Multicall: "0xcA11bde05977b3631167028862bE2a173976CA11",
21
21
  NameWrapper: {
22
22
  "1": "0x0000000000000000000000000000000000000000",
23
23
  "3": "0xF82155e2a43Be0871821E9654Fc8Ae894FB8307C",
24
24
  "4": "0x0000000000000000000000000000000000000000",
25
- "5": "0x582224b8d4534F4749EFA4f22eF7241E0C56D4B8"
25
+ "5": "0xEe1F756aCde7E81B2D8cC6aB3c8A1E2cE6db0F39"
26
26
  },
27
27
  PublicResolver: {
28
28
  "1": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
29
29
  "3": "0x13F0659Ee6bb7484C884FEeFb7F75C93951ef837",
30
- "5": "0xE264d5bb84bA3b8061ADC38D3D76e6674aB91852"
30
+ "5": "0x2800Ec5BAB9CE9226d19E0ad5BC607e3cfC4347E"
31
31
  },
32
32
  ENSRegistry: {
33
33
  "1": "0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e",
@@ -38,7 +38,7 @@ var addresses = {
38
38
  ReverseRegistrar: {
39
39
  "1": "0x084b1c3C81545d370f3634392De611CaaBFf8148",
40
40
  "3": "0x806246b52f8cB61655d3038c58D2f63Aa55d4edE",
41
- "5": "0xD5610A08E370051a01fdfe4bB3ddf5270af1aA48"
41
+ "5": "0x9a879320A9F7ad2BBb02063d67baF5551D6BD8B0"
42
42
  },
43
43
  UniversalResolver: {
44
44
  "1": "0x74E20Bd2A1fE0cdbe45b9A1d89cb7e0a45b36376",
@@ -11,7 +11,7 @@ async function commitName_default({ contracts }, name, { resolverAddress, ...par
11
11
  void 0,
12
12
  resolverAddress
13
13
  );
14
- const { secret, commitment, wrapperExpiry } = makeCommitment({
14
+ const { secret, commitment } = makeCommitment({
15
15
  name,
16
16
  resolver,
17
17
  ...params
@@ -20,8 +20,7 @@ async function commitName_default({ contracts }, name, { resolverAddress, ...par
20
20
  ...await controller.populateTransaction.commit(commitment),
21
21
  customData: {
22
22
  secret,
23
- commitment,
24
- wrapperExpiry
23
+ commitment
25
24
  }
26
25
  };
27
26
  }
@@ -1,6 +1,6 @@
1
1
  // src/functions/createSubname.ts
2
2
  import { keccak256 as solidityKeccak256 } from "@ethersproject/solidity";
3
- import generateFuseInput from "../utils/generateFuseInput.mjs";
3
+ import { encodeFuses } from "../utils/fuses.mjs";
4
4
  import { namehash } from "../utils/normalise.mjs";
5
5
  import { makeExpiry, wrappedLabelLengthCheck } from "../utils/wrapper.mjs";
6
6
  async function createSubname_default({
@@ -40,7 +40,7 @@ async function createSubname_default({
40
40
  name,
41
41
  "expiry" in wrapperArgs ? wrapperArgs.expiry : void 0
42
42
  );
43
- const generatedFuses = "fuses" in wrapperArgs && wrapperArgs.fuses ? generateFuseInput(wrapperArgs.fuses) : "0";
43
+ const generatedFuses = "fuses" in wrapperArgs && wrapperArgs.fuses ? encodeFuses(wrapperArgs.fuses) : 0;
44
44
  return nameWrapper.populateTransaction.setSubnodeRecord(
45
45
  parentNodehash,
46
46
  label,
@@ -7,17 +7,20 @@ import { namehash } from "../utils/normalise.mjs";
7
7
  var eventFormat = {
8
8
  Domain: {
9
9
  NewOwner: (args) => ({ owner: args.owner.id }),
10
- NewResolver: (args) => ({ resolver: args.resolver.id.split("-")[0] }),
10
+ NewResolver: (args) => ({
11
+ resolver: args.resolver.id.split("-")[0]
12
+ }),
11
13
  Transfer: (args) => ({ owner: args.owner.id }),
12
14
  NewTTL: (args) => ({ ttl: args.ttl }),
13
15
  WrappedTransfer: (args) => ({ owner: args.owner.id }),
14
16
  NameWrapped: (args) => ({
15
17
  fuses: args.fuses,
16
18
  owner: args.owner.id,
17
- expiry: args.expiry
19
+ expiryDate: args.expiryDate
18
20
  }),
19
21
  NameUnwrapped: (args) => ({ owner: args.owner.id }),
20
- FusesSet: (args) => ({ fuses: args.fuses, expiry: args.expiry })
22
+ FusesSet: (args) => ({ fuses: args.fuses }),
23
+ ExpiryExtended: (args) => ({ expiryDate: args.expiryDate })
21
24
  },
22
25
  Registration: {
23
26
  NameRegistered: (args) => ({
@@ -54,9 +57,11 @@ var eventFormat = {
54
57
  AbiChanged: (args) => ({ contentType: args.contentType }),
55
58
  PubkeyChanged: (args) => ({ x: args.x, y: args.y }),
56
59
  TextChanged: (args) => ({ key: args.key, value: args.value }),
57
- ContenthashChanged: (args) => ({ hash: decodeContenthash(args.hash) }),
60
+ ContenthashChanged: (args) => ({
61
+ hash: decodeContenthash(args.hash)
62
+ }),
58
63
  InterfaceChanged: (args) => ({
59
- interfaceId: args.interfaceId,
64
+ interfaceId: args.interfaceID,
60
65
  implementer: args.implementer
61
66
  }),
62
67
  AuthorisationChanged: (args) => ({
@@ -111,7 +116,7 @@ async function getHistory({ gqlInstance }, name) {
111
116
  }
112
117
  ...on NameWrapped {
113
118
  fuses
114
- expiry
119
+ expiryDate
115
120
  owner {
116
121
  id
117
122
  }
@@ -123,7 +128,9 @@ async function getHistory({ gqlInstance }, name) {
123
128
  }
124
129
  ...on FusesSet {
125
130
  fuses
126
- expiry
131
+ }
132
+ ...on ExpiryExtended {
133
+ expiryDate
127
134
  }
128
135
  }
129
136
  registration {
@@ -2,12 +2,12 @@
2
2
  import { truncateFormat } from "../utils/format.mjs";
3
3
  import { decodeFuses } from "../utils/fuses.mjs";
4
4
  import { decryptName } from "../utils/labels.mjs";
5
- var mapDomain = (domain) => {
6
- const decrypted = decryptName(domain.name);
5
+ var mapDomain = ({ name, ...domain }) => {
6
+ const decrypted = name ? decryptName(name) : void 0;
7
7
  return {
8
8
  ...domain,
9
9
  name: decrypted,
10
- truncatedName: truncateFormat(decrypted),
10
+ truncatedName: decrypted ? truncateFormat(decrypted) : void 0,
11
11
  createdAt: new Date(parseInt(domain.createdAt) * 1e3),
12
12
  type: "domain"
13
13
  };
@@ -16,8 +16,12 @@ var mapWrappedDomain = (wrappedDomain) => {
16
16
  const domain = mapDomain(wrappedDomain.domain);
17
17
  if (domain.registration) {
18
18
  domain.registration = {
19
- expiryDate: new Date(parseInt(domain.registration.expiryDate) * 1e3),
20
- registrationDate: new Date(domain.registration.registrationDate * 1e3)
19
+ expiryDate: new Date(
20
+ parseInt(domain.registration.expiryDate) * 1e3
21
+ ),
22
+ registrationDate: new Date(
23
+ parseInt(domain.registration.registrationDate) * 1e3
24
+ )
21
25
  };
22
26
  }
23
27
  return {
@@ -209,7 +213,7 @@ var getNames = async ({ gqlInstance }, {
209
213
  id: address,
210
214
  first: pageSize,
211
215
  skip: (page || 0) * pageSize,
212
- orderBy,
216
+ orderBy: orderBy === "labelName" ? "name" : orderBy,
213
217
  orderDirection
214
218
  };
215
219
  }