@ensdomains/ensjs 3.0.0-alpha.40 → 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 (129) 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/getSpecificRecord.js +83 -0
  8. package/dist/cjs/functions/getWrapperData.js +3 -4
  9. package/dist/cjs/functions/renewNames.js +13 -20
  10. package/dist/cjs/functions/{burnFuses.js → setFuses.js} +24 -6
  11. package/dist/cjs/functions/wrapName.js +7 -23
  12. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +6 -55
  13. package/dist/cjs/generated/factories/NameWrapper__factory.js +90 -69
  14. package/dist/cjs/generated/factories/PublicResolver__factory.js +83 -0
  15. package/dist/cjs/generated/factories/UniversalResolver__factory.js +67 -2
  16. package/dist/cjs/index.js +15 -4
  17. package/dist/cjs/utils/consts.js +3 -1
  18. package/dist/cjs/utils/fuses.js +218 -53
  19. package/dist/cjs/utils/normalise.js +2 -2
  20. package/dist/cjs/utils/recordHelpers.js +55 -0
  21. package/dist/cjs/utils/registerHelpers.js +9 -23
  22. package/dist/cjs/utils/subgraph-types.js +16 -0
  23. package/dist/cjs/utils/wrapper.js +2 -2
  24. package/dist/esm/contracts/getContractAddress.mjs +4 -4
  25. package/dist/esm/functions/commitName.mjs +2 -3
  26. package/dist/esm/functions/createSubname.mjs +2 -2
  27. package/dist/esm/functions/getHistory.mjs +14 -7
  28. package/dist/esm/functions/getNames.mjs +10 -6
  29. package/dist/esm/functions/getOwner.mjs +25 -12
  30. package/dist/esm/functions/getSpecificRecord.mjs +78 -1
  31. package/dist/esm/functions/getWrapperData.mjs +3 -4
  32. package/dist/esm/functions/renewNames.mjs +13 -20
  33. package/dist/esm/functions/setFuses.mjs +30 -0
  34. package/dist/esm/functions/wrapName.mjs +8 -18
  35. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +6 -55
  36. package/dist/esm/generated/factories/NameWrapper__factory.mjs +90 -69
  37. package/dist/esm/generated/factories/PublicResolver__factory.mjs +83 -0
  38. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +67 -2
  39. package/dist/esm/index.mjs +15 -4
  40. package/dist/esm/utils/consts.mjs +3 -1
  41. package/dist/esm/utils/fuses.mjs +218 -53
  42. package/dist/esm/utils/normalise.mjs +1 -1
  43. package/dist/esm/utils/recordHelpers.mjs +49 -0
  44. package/dist/esm/utils/registerHelpers.mjs +9 -17
  45. package/dist/esm/utils/subgraph-types.mjs +0 -0
  46. package/dist/esm/utils/wrapper.mjs +1 -1
  47. package/dist/types/functions/commitName.d.ts +5 -6
  48. package/dist/types/functions/createSubname.d.ts +3 -3
  49. package/dist/types/functions/deleteSubname.d.ts +1 -1
  50. package/dist/types/functions/getHistory.d.ts +1 -1
  51. package/dist/types/functions/getNames.d.ts +3 -3
  52. package/dist/types/functions/getOwner.d.ts +1 -0
  53. package/dist/types/functions/getSpecificRecord.d.ts +22 -0
  54. package/dist/types/functions/getWrapperData.d.ts +44 -5
  55. package/dist/types/functions/importDNSSECName.d.ts +1 -1
  56. package/dist/types/functions/registerName.d.ts +1 -1
  57. package/dist/types/functions/renewNames.d.ts +5 -6
  58. package/dist/types/functions/setFuses.d.ts +7 -0
  59. package/dist/types/functions/setName.d.ts +1 -1
  60. package/dist/types/functions/setRecord.d.ts +5 -1
  61. package/dist/types/functions/setRecords.d.ts +1 -1
  62. package/dist/types/functions/setResolver.d.ts +1 -1
  63. package/dist/types/functions/transferController.d.ts +1 -1
  64. package/dist/types/functions/transferName.d.ts +1 -1
  65. package/dist/types/functions/transferSubname.d.ts +1 -1
  66. package/dist/types/functions/types.d.ts +9 -5
  67. package/dist/types/functions/unwrapName.d.ts +1 -1
  68. package/dist/types/functions/wrapName.d.ts +4 -4
  69. package/dist/types/generated/ETHRegistrarController.d.ts +13 -36
  70. package/dist/types/generated/NameWrapper.d.ts +97 -52
  71. package/dist/types/generated/PublicResolver.d.ts +50 -1
  72. package/dist/types/generated/UniversalResolver.d.ts +79 -32
  73. package/dist/types/generated/factories/UniversalResolver__factory.d.ts +15 -0
  74. package/dist/types/index.d.ts +75 -11
  75. package/dist/types/utils/consts.d.ts +1 -0
  76. package/dist/types/utils/fuses.d.ts +115 -45
  77. package/dist/types/utils/recordHelpers.d.ts +14 -2
  78. package/dist/types/utils/registerHelpers.d.ts +7 -25
  79. package/dist/types/utils/subgraph-types.d.ts +284 -0
  80. package/dist/types/utils/writeTx.d.ts +5 -5
  81. package/package.json +8 -5
  82. package/src/@types/pako.d.ts +188 -0
  83. package/src/contracts/bulkRenewal.ts +1 -1
  84. package/src/contracts/getContractAddress.ts +4 -4
  85. package/src/functions/commitName.test.ts +0 -3
  86. package/src/functions/commitName.ts +1 -2
  87. package/src/functions/createSubname.ts +4 -5
  88. package/src/functions/getHistory.ts +59 -25
  89. package/src/functions/getNames.test.ts +1 -1
  90. package/src/functions/getNames.ts +26 -13
  91. package/src/functions/getOwner.test.ts +62 -3
  92. package/src/functions/getOwner.ts +31 -11
  93. package/src/functions/getSpecificRecord.test.ts +162 -0
  94. package/src/functions/getSpecificRecord.ts +95 -1
  95. package/src/functions/getWrapperData.test.ts +11 -45
  96. package/src/functions/getWrapperData.ts +7 -5
  97. package/src/functions/registerName.test.ts +3 -3
  98. package/src/functions/renewNames.ts +17 -23
  99. package/src/functions/setFuses.test.ts +240 -0
  100. package/src/functions/setFuses.ts +44 -0
  101. package/src/functions/setRecord.test.ts +147 -1
  102. package/src/functions/setRecord.ts +6 -1
  103. package/src/functions/types.ts +10 -4
  104. package/src/functions/wrapName.test.ts +8 -7
  105. package/src/functions/wrapName.ts +10 -24
  106. package/src/generated/ETHRegistrarController.ts +12 -79
  107. package/src/generated/NameWrapper.ts +155 -99
  108. package/src/generated/PublicResolver.ts +123 -0
  109. package/src/generated/UniversalResolver.ts +157 -16
  110. package/src/generated/factories/ETHRegistrarController__factory.ts +6 -55
  111. package/src/generated/factories/NameWrapper__factory.ts +90 -69
  112. package/src/generated/factories/PublicResolver__factory.ts +83 -0
  113. package/src/generated/factories/UniversalResolver__factory.ts +67 -2
  114. package/src/index.ts +23 -14
  115. package/src/utils/consts.ts +1 -0
  116. package/src/utils/fuses.ts +299 -102
  117. package/src/utils/normalise.ts +1 -1
  118. package/src/utils/recordHelpers.ts +64 -1
  119. package/src/utils/registerHelpers.ts +13 -41
  120. package/src/utils/subgraph-types.ts +312 -0
  121. package/src/utils/wrapper.ts +1 -1
  122. package/dist/cjs/utils/generateFuseInput.js +0 -40
  123. package/dist/esm/functions/burnFuses.mjs +0 -12
  124. package/dist/esm/utils/generateFuseInput.mjs +0 -15
  125. package/dist/types/functions/burnFuses.d.ts +0 -3
  126. package/dist/types/utils/generateFuseInput.d.ts +0 -3
  127. package/src/functions/burnFuses.test.ts +0 -148
  128. package/src/functions/burnFuses.ts +0 -16
  129. package/src/utils/generateFuseInput.ts +0 -13
@@ -37,19 +37,19 @@ const addresses = {
37
37
  "1": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
38
38
  "3": "0xa5627AB7Ae47063B533622C34FEBDb52d3281dF8",
39
39
  "4": "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5",
40
- "5": "0x9C51161bA2FB02Cc0a403332B607117685f34831"
40
+ "5": "0xb7A1f9e633fdeaAa2ec44bE00a61a7Db9a733D70"
41
41
  },
42
42
  Multicall: "0xcA11bde05977b3631167028862bE2a173976CA11",
43
43
  NameWrapper: {
44
44
  "1": "0x0000000000000000000000000000000000000000",
45
45
  "3": "0xF82155e2a43Be0871821E9654Fc8Ae894FB8307C",
46
46
  "4": "0x0000000000000000000000000000000000000000",
47
- "5": "0x582224b8d4534F4749EFA4f22eF7241E0C56D4B8"
47
+ "5": "0xEe1F756aCde7E81B2D8cC6aB3c8A1E2cE6db0F39"
48
48
  },
49
49
  PublicResolver: {
50
50
  "1": "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41",
51
51
  "3": "0x13F0659Ee6bb7484C884FEeFb7F75C93951ef837",
52
- "5": "0xE264d5bb84bA3b8061ADC38D3D76e6674aB91852"
52
+ "5": "0x2800Ec5BAB9CE9226d19E0ad5BC607e3cfC4347E"
53
53
  },
54
54
  ENSRegistry: {
55
55
  "1": "0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e",
@@ -60,7 +60,7 @@ const addresses = {
60
60
  ReverseRegistrar: {
61
61
  "1": "0x084b1c3C81545d370f3634392De611CaaBFf8148",
62
62
  "3": "0x806246b52f8cB61655d3038c58D2f63Aa55d4edE",
63
- "5": "0xD5610A08E370051a01fdfe4bB3ddf5270af1aA48"
63
+ "5": "0x9a879320A9F7ad2BBb02063d67baF5551D6BD8B0"
64
64
  },
65
65
  UniversalResolver: {
66
66
  "1": "0x74E20Bd2A1fE0cdbe45b9A1d89cb7e0a45b36376",
@@ -33,7 +33,7 @@ async function commitName_default({ contracts }, name, { resolverAddress, ...par
33
33
  void 0,
34
34
  resolverAddress
35
35
  );
36
- const { secret, commitment, wrapperExpiry } = (0, import_registerHelpers.makeCommitment)({
36
+ const { secret, commitment } = (0, import_registerHelpers.makeCommitment)({
37
37
  name,
38
38
  resolver,
39
39
  ...params
@@ -42,8 +42,7 @@ async function commitName_default({ contracts }, name, { resolverAddress, ...par
42
42
  ...await controller.populateTransaction.commit(commitment),
43
43
  customData: {
44
44
  secret,
45
- commitment,
46
- wrapperExpiry
45
+ commitment
47
46
  }
48
47
  };
49
48
  }
@@ -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,10 +15,6 @@ 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 createSubname_exports = {};
26
20
  __export(createSubname_exports, {
@@ -28,7 +22,7 @@ __export(createSubname_exports, {
28
22
  });
29
23
  module.exports = __toCommonJS(createSubname_exports);
30
24
  var import_solidity = require("@ethersproject/solidity");
31
- var import_generateFuseInput = __toESM(require("../utils/generateFuseInput"));
25
+ var import_fuses = require("../utils/fuses");
32
26
  var import_normalise = require("../utils/normalise");
33
27
  var import_wrapper = require("../utils/wrapper");
34
28
  async function createSubname_default({
@@ -68,7 +62,7 @@ async function createSubname_default({
68
62
  name,
69
63
  "expiry" in wrapperArgs ? wrapperArgs.expiry : void 0
70
64
  );
71
- const generatedFuses = "fuses" in wrapperArgs && wrapperArgs.fuses ? (0, import_generateFuseInput.default)(wrapperArgs.fuses) : "0";
65
+ const generatedFuses = "fuses" in wrapperArgs && wrapperArgs.fuses ? (0, import_fuses.encodeFuses)(wrapperArgs.fuses) : 0;
72
66
  return nameWrapper.populateTransaction.setSubnodeRecord(
73
67
  parentNodehash,
74
68
  label,
@@ -29,17 +29,20 @@ var import_normalise = require("../utils/normalise");
29
29
  const eventFormat = {
30
30
  Domain: {
31
31
  NewOwner: (args) => ({ owner: args.owner.id }),
32
- NewResolver: (args) => ({ resolver: args.resolver.id.split("-")[0] }),
32
+ NewResolver: (args) => ({
33
+ resolver: args.resolver.id.split("-")[0]
34
+ }),
33
35
  Transfer: (args) => ({ owner: args.owner.id }),
34
36
  NewTTL: (args) => ({ ttl: args.ttl }),
35
37
  WrappedTransfer: (args) => ({ owner: args.owner.id }),
36
38
  NameWrapped: (args) => ({
37
39
  fuses: args.fuses,
38
40
  owner: args.owner.id,
39
- expiry: args.expiry
41
+ expiryDate: args.expiryDate
40
42
  }),
41
43
  NameUnwrapped: (args) => ({ owner: args.owner.id }),
42
- FusesSet: (args) => ({ fuses: args.fuses, expiry: args.expiry })
44
+ FusesSet: (args) => ({ fuses: args.fuses }),
45
+ ExpiryExtended: (args) => ({ expiryDate: args.expiryDate })
43
46
  },
44
47
  Registration: {
45
48
  NameRegistered: (args) => ({
@@ -76,9 +79,11 @@ const eventFormat = {
76
79
  AbiChanged: (args) => ({ contentType: args.contentType }),
77
80
  PubkeyChanged: (args) => ({ x: args.x, y: args.y }),
78
81
  TextChanged: (args) => ({ key: args.key, value: args.value }),
79
- ContenthashChanged: (args) => ({ hash: (0, import_contentHash.decodeContenthash)(args.hash) }),
82
+ ContenthashChanged: (args) => ({
83
+ hash: (0, import_contentHash.decodeContenthash)(args.hash)
84
+ }),
80
85
  InterfaceChanged: (args) => ({
81
- interfaceId: args.interfaceId,
86
+ interfaceId: args.interfaceID,
82
87
  implementer: args.implementer
83
88
  }),
84
89
  AuthorisationChanged: (args) => ({
@@ -133,7 +138,7 @@ async function getHistory({ gqlInstance }, name) {
133
138
  }
134
139
  ...on NameWrapped {
135
140
  fuses
136
- expiry
141
+ expiryDate
137
142
  owner {
138
143
  id
139
144
  }
@@ -145,7 +150,9 @@ async function getHistory({ gqlInstance }, name) {
145
150
  }
146
151
  ...on FusesSet {
147
152
  fuses
148
- expiry
153
+ }
154
+ ...on ExpiryExtended {
155
+ expiryDate
149
156
  }
150
157
  }
151
158
  registration {
@@ -24,12 +24,12 @@ module.exports = __toCommonJS(getNames_exports);
24
24
  var import_format = require("../utils/format");
25
25
  var import_fuses = require("../utils/fuses");
26
26
  var import_labels = require("../utils/labels");
27
- const mapDomain = (domain) => {
28
- const decrypted = (0, import_labels.decryptName)(domain.name);
27
+ const mapDomain = ({ name, ...domain }) => {
28
+ const decrypted = name ? (0, import_labels.decryptName)(name) : void 0;
29
29
  return {
30
30
  ...domain,
31
31
  name: decrypted,
32
- truncatedName: (0, import_format.truncateFormat)(decrypted),
32
+ truncatedName: decrypted ? (0, import_format.truncateFormat)(decrypted) : void 0,
33
33
  createdAt: new Date(parseInt(domain.createdAt) * 1e3),
34
34
  type: "domain"
35
35
  };
@@ -38,8 +38,12 @@ const mapWrappedDomain = (wrappedDomain) => {
38
38
  const domain = mapDomain(wrappedDomain.domain);
39
39
  if (domain.registration) {
40
40
  domain.registration = {
41
- expiryDate: new Date(parseInt(domain.registration.expiryDate) * 1e3),
42
- registrationDate: new Date(domain.registration.registrationDate * 1e3)
41
+ expiryDate: new Date(
42
+ parseInt(domain.registration.expiryDate) * 1e3
43
+ ),
44
+ registrationDate: new Date(
45
+ parseInt(domain.registration.registrationDate) * 1e3
46
+ )
43
47
  };
44
48
  }
45
49
  return {
@@ -231,7 +235,7 @@ const getNames = async ({ gqlInstance }, {
231
235
  id: address,
232
236
  first: pageSize,
233
237
  skip: (page || 0) * pageSize,
234
- orderBy,
238
+ orderBy: orderBy === "labelName" ? "name" : orderBy,
235
239
  orderDirection
236
240
  };
237
241
  }
@@ -134,27 +134,39 @@ const decode = async ({
134
134
  const registryOwner = decodedData[0][0];
135
135
  const nameWrapperOwner = decodedData[1][0];
136
136
  let registrarOwner = (_b = decodedData[2]) == null ? void 0 : _b[0];
137
+ let baseReturnObject = {};
137
138
  if (labels[labels.length - 1] === "eth") {
138
- if (!registrarOwner && labels.length === 2) {
139
- const graphRegistrantResult = await gqlInstance.client.request(
140
- registrantQuery,
141
- {
142
- namehash: (0, import_normalise.namehash)(name)
143
- }
144
- );
145
- registrarOwner = (_e = (_d = (_c = graphRegistrantResult.domain) == null ? void 0 : _c.registration) == null ? void 0 : _d.registrant) == null ? void 0 : _e.id;
139
+ if (labels.length === 2) {
140
+ if (!registrarOwner) {
141
+ const graphRegistrantResult = await gqlInstance.client.request(
142
+ registrantQuery,
143
+ {
144
+ namehash: (0, import_normalise.namehash)(name)
145
+ }
146
+ );
147
+ registrarOwner = (_e = (_d = (_c = graphRegistrantResult.domain) == null ? void 0 : _c.registration) == null ? void 0 : _d.registrant) == null ? void 0 : _e.id;
148
+ baseReturnObject = {
149
+ expired: true
150
+ };
151
+ } else {
152
+ baseReturnObject = {
153
+ expired: false
154
+ };
155
+ }
146
156
  }
147
- if (registrarOwner === nameWrapper.address) {
157
+ if ((registrarOwner == null ? void 0 : registrarOwner.toLowerCase()) === nameWrapper.address.toLowerCase()) {
148
158
  return {
149
159
  owner: nameWrapperOwner,
150
- ownershipLevel: "nameWrapper"
160
+ ownershipLevel: "nameWrapper",
161
+ ...baseReturnObject
151
162
  };
152
163
  }
153
164
  if (registrarOwner) {
154
165
  return {
155
166
  registrant: registrarOwner,
156
167
  owner: registryOwner,
157
- ownershipLevel: "registrar"
168
+ ownershipLevel: "registrar",
169
+ ...baseReturnObject
158
170
  };
159
171
  }
160
172
  if ((0, import_bytes.hexStripZeros)(registryOwner) !== "0x") {
@@ -162,7 +174,8 @@ const decode = async ({
162
174
  return {
163
175
  registrant: void 0,
164
176
  owner: registryOwner,
165
- ownershipLevel: "registrar"
177
+ ownershipLevel: "registrar",
178
+ expired: true
166
179
  };
167
180
  }
168
181
  if (registryOwner === nameWrapper.address && nameWrapperOwner && (0, import_bytes.hexStripZeros)(nameWrapperOwner) !== "0x") {
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,12 +17,18 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
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
+ ));
18
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
25
  var getSpecificRecord_exports = {};
20
26
  __export(getSpecificRecord_exports, {
27
+ _getABI: () => _getABI,
21
28
  _getAddr: () => _getAddr,
22
29
  _getContentHash: () => _getContentHash,
23
30
  _getText: () => _getText,
31
+ getABI: () => getABI,
24
32
  getAddr: () => getAddr,
25
33
  getContentHash: () => getContentHash,
26
34
  getText: () => getText
@@ -28,6 +36,7 @@ __export(getSpecificRecord_exports, {
28
36
  module.exports = __toCommonJS(getSpecificRecord_exports);
29
37
  var import_address_encoder = require("@ensdomains/address-encoder");
30
38
  var import_bytes = require("@ethersproject/bytes");
39
+ var import_strings = require("@ethersproject/strings");
31
40
  var import_contentHash = require("../utils/contentHash");
32
41
  var import_normalise = require("../utils/normalise");
33
42
  const _getContentHash = {
@@ -193,3 +202,77 @@ const getAddr = {
193
202
  return _getAddr.decode({ contracts }, urData.data, _name, coinType);
194
203
  }
195
204
  };
205
+ const supportedContentTypes = "0xf";
206
+ const _getABI = {
207
+ raw: async ({ contracts }, name) => {
208
+ const publicResolver = await (contracts == null ? void 0 : contracts.getPublicResolver());
209
+ return {
210
+ to: "0x0000000000000000000000000000000000000000",
211
+ data: publicResolver.interface.encodeFunctionData("ABI", [
212
+ (0, import_normalise.namehash)(name),
213
+ supportedContentTypes
214
+ ])
215
+ };
216
+ },
217
+ decode: async ({ contracts }, data) => {
218
+ const publicResolver = await (contracts == null ? void 0 : contracts.getPublicResolver());
219
+ const [bnContentType, encodedABIData] = publicResolver.interface.decodeFunctionResult("ABI", data);
220
+ if (!bnContentType || !data) {
221
+ return;
222
+ }
223
+ const contentType = bnContentType.toNumber();
224
+ if (!contentType) {
225
+ return;
226
+ }
227
+ let abiData;
228
+ let decoded = false;
229
+ switch (contentType) {
230
+ case 1:
231
+ abiData = JSON.parse((0, import_strings.toUtf8String)(encodedABIData));
232
+ decoded = true;
233
+ break;
234
+ case 2: {
235
+ const { inflate } = await import("pako/dist/pako_inflate.min.js");
236
+ abiData = JSON.parse(
237
+ inflate((0, import_bytes.arrayify)(encodedABIData), { to: "string" })
238
+ );
239
+ decoded = true;
240
+ break;
241
+ }
242
+ case 4: {
243
+ const { decodeFirst } = await import("cbor");
244
+ abiData = await decodeFirst((0, import_bytes.arrayify)(encodedABIData));
245
+ decoded = true;
246
+ break;
247
+ }
248
+ case 8:
249
+ abiData = (0, import_strings.toUtf8String)(encodedABIData);
250
+ decoded = false;
251
+ break;
252
+ default:
253
+ try {
254
+ abiData = (0, import_strings.toUtf8String)(encodedABIData);
255
+ } catch {
256
+ abiData = encodedABIData;
257
+ }
258
+ decoded = false;
259
+ }
260
+ return {
261
+ contentType,
262
+ decoded,
263
+ abi: abiData
264
+ };
265
+ }
266
+ };
267
+ const getABI = {
268
+ raw: async ({ contracts, universalWrapper }, name) => {
269
+ const prData = await _getABI.raw({ contracts }, name);
270
+ return universalWrapper.raw(name, prData.data);
271
+ },
272
+ decode: async ({ contracts, universalWrapper }, data) => {
273
+ const urData = await universalWrapper.decode(data);
274
+ if (!urData)
275
+ return;
276
+ return _getABI.decode({ contracts }, urData.data);
277
+ }
278
+ };
@@ -34,15 +34,14 @@ const raw = async ({ contracts }, name) => {
34
34
  const decode = async ({ contracts }, data) => {
35
35
  const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
36
36
  try {
37
- const [owner, _fuses, expiry] = nameWrapper.interface.decodeFunctionResult(
37
+ const [owner, fuses, expiry] = nameWrapper.interface.decodeFunctionResult(
38
38
  "getData",
39
39
  data
40
40
  );
41
- const fuses = import_bignumber.BigNumber.from(_fuses);
42
41
  const fuseObj = (0, import_fuses.decodeFuses)(fuses);
43
- const expiryDate = new Date(expiry * 1e3);
42
+ const expiryDate = expiry.gt(0) && expiry.lt(import_bignumber.BigNumber.from(2).pow(32)) ? new Date(expiry.mul(1e3).toString()) : void 0;
44
43
  return {
45
- fuseObj,
44
+ ...fuseObj,
46
45
  expiryDate,
47
46
  rawFuses: fuses,
48
47
  owner
@@ -19,29 +19,22 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var renewNames_exports = {};
20
20
  __export(renewNames_exports, {
21
21
  default: () => renewNames_default,
22
- renewNameWithData: () => renewNameWithData
22
+ extendWrappedName: () => extendWrappedName
23
23
  });
24
24
  module.exports = __toCommonJS(renewNames_exports);
25
- var import_fuses = require("../utils/fuses");
26
- var import_registerHelpers = require("../utils/registerHelpers");
27
- async function renewNameWithData({ contracts }, name, {
28
- duration,
29
- value,
30
- fuses,
31
- wrapperExpiry = import_registerHelpers.MAX_INT_64
32
- }) {
25
+ var import_consts = require("../utils/consts");
26
+ var import_labels = require("../utils/labels");
27
+ var import_normalise = require("../utils/normalise");
28
+ async function extendWrappedName({ contracts }, name, options) {
29
+ const expiry = (options == null ? void 0 : options.duration) || import_consts.MAX_INT_64;
33
30
  const labels = name.split(".");
34
- if (labels.length !== 2 || labels[1] !== "eth") {
35
- throw new Error("Currently only .eth TLD renewals are supported");
36
- }
37
- const encodedFuses = fuses ? (0, import_fuses.validateFuses)(fuses) : 0;
38
- const controller = await contracts.getEthRegistrarController();
39
- return controller.populateTransaction.renewWithFuses(
40
- labels[0],
41
- duration,
42
- encodedFuses,
43
- wrapperExpiry,
44
- { value }
31
+ const labelHash = (0, import_labels.labelhash)(labels.shift());
32
+ const parentNode = (0, import_normalise.namehash)(labels.join("."));
33
+ const nameWrapper = await contracts.getNameWrapper();
34
+ return nameWrapper.populateTransaction.extendExpiry(
35
+ parentNode,
36
+ labelHash,
37
+ expiry
45
38
  );
46
39
  }
47
40
  async function renewNames_default({ contracts }, nameOrNames, { duration, value }) {
@@ -16,15 +16,33 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var burnFuses_exports = {};
20
- __export(burnFuses_exports, {
21
- default: () => burnFuses_default
19
+ var setFuses_exports = {};
20
+ __export(setFuses_exports, {
21
+ default: () => setFuses_default,
22
+ setChildFuses: () => setChildFuses
22
23
  });
23
- module.exports = __toCommonJS(burnFuses_exports);
24
+ module.exports = __toCommonJS(setFuses_exports);
24
25
  var import_fuses = require("../utils/fuses");
26
+ var import_labels = require("../utils/labels");
25
27
  var import_normalise = require("../utils/normalise");
26
- async function burnFuses_default({ contracts, signer }, name, props) {
27
- const encodedFuses = (0, import_fuses.validateFuses)(props);
28
+ async function setChildFuses({ contracts, signer }, name, {
29
+ fuses,
30
+ expiry = 0
31
+ }) {
32
+ const encodedFuses = (0, import_fuses.encodeFuses)(fuses);
33
+ const labels = name.split(".");
34
+ const labelHash = (0, import_labels.labelhash)(labels.shift());
35
+ const parentNode = (0, import_normalise.namehash)(labels.join("."));
36
+ const nameWrapper = (await contracts.getNameWrapper()).connect(signer);
37
+ return nameWrapper.populateTransaction.setChildFuses(
38
+ parentNode,
39
+ labelHash,
40
+ encodedFuses,
41
+ expiry
42
+ );
43
+ }
44
+ async function setFuses_default({ contracts, signer }, name, props) {
45
+ const encodedFuses = (0, import_fuses.encodeFuses)(props, "child");
28
46
  const nameWrapper = (await contracts.getNameWrapper()).connect(signer);
29
47
  const hash = (0, import_normalise.namehash)(name);
30
48
  return nameWrapper.populateTransaction.setFuses(hash, encodedFuses);
@@ -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,10 +15,6 @@ 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 wrapName_exports = {};
26
20
  __export(wrapName_exports, {
@@ -29,16 +23,16 @@ __export(wrapName_exports, {
29
23
  module.exports = __toCommonJS(wrapName_exports);
30
24
  var import_abi_coder = require("@ethersproject/abi/lib/abi-coder");
31
25
  var import_solidity = require("@ethersproject/solidity");
32
- var import_generateFuseInput = __toESM(require("../utils/generateFuseInput"));
26
+ var import_fuses = require("../utils/fuses");
33
27
  var import_hexEncodedName = require("../utils/hexEncodedName");
34
28
  var import_wrapper = require("../utils/wrapper");
35
- async function wrapETH({ contracts }, labels, wrappedOwner, expiry, decodedFuses, resolverAddress, signer, address) {
29
+ async function wrapETH({ contracts }, labels, wrappedOwner, decodedFuses, resolverAddress, signer, address) {
36
30
  const nameWrapper = await (contracts == null ? void 0 : contracts.getNameWrapper());
37
31
  const baseRegistrar = (await contracts.getBaseRegistrar()).connect(signer);
38
32
  const labelhash = (0, import_solidity.keccak256)(["string"], [labels[0]]);
39
33
  const data = import_abi_coder.defaultAbiCoder.encode(
40
- ["string", "address", "uint32", "uint64", "address"],
41
- [labels[0], wrappedOwner, decodedFuses, expiry, resolverAddress]
34
+ ["string", "address", "uint16", "address"],
35
+ [labels[0], wrappedOwner, decodedFuses, resolverAddress]
42
36
  );
43
37
  return baseRegistrar.populateTransaction["safeTransferFrom(address,address,uint256,bytes)"](address, nameWrapper.address, labelhash, data);
44
38
  }
@@ -60,11 +54,7 @@ async function wrapOther({ contracts }, name, wrappedOwner, resolverAddress, add
60
54
  resolverAddress
61
55
  );
62
56
  }
63
- async function wrapName_default({
64
- contracts,
65
- signer,
66
- getExpiry
67
- }, name, {
57
+ async function wrapName_default({ contracts, signer }, name, {
68
58
  wrappedOwner,
69
59
  fuseOptions,
70
60
  expiry,
@@ -80,31 +70,25 @@ async function wrapName_default({
80
70
  if (labels.length === 2 && labels[1] === "eth") {
81
71
  switch (typeof fuseOptions) {
82
72
  case "object": {
83
- decodedFuses = (0, import_generateFuseInput.default)(fuseOptions);
73
+ decodedFuses = (0, import_fuses.encodeFuses)(fuseOptions);
84
74
  break;
85
75
  }
86
76
  case "number": {
87
- decodedFuses = fuseOptions.toString(16);
88
- break;
89
- }
90
- case "string": {
91
77
  decodedFuses = fuseOptions;
92
78
  break;
93
79
  }
94
80
  case "undefined": {
95
- decodedFuses = "0";
81
+ decodedFuses = 0;
96
82
  break;
97
83
  }
98
84
  default: {
99
85
  throw new Error(`Invalid fuseOptions type: ${typeof fuseOptions}`);
100
86
  }
101
87
  }
102
- const expiryToUse = await (0, import_wrapper.makeExpiry)({ getExpiry }, name, expiry);
103
88
  return wrapETH(
104
89
  { contracts },
105
90
  labels,
106
91
  wrappedOwner,
107
- expiryToUse,
108
92
  decodedFuses,
109
93
  resolverAddress,
110
94
  signer,
@@ -124,17 +124,6 @@ const _abi = [
124
124
  name: "ResolverRequiredWhenDataSupplied",
125
125
  type: "error"
126
126
  },
127
- {
128
- inputs: [
129
- {
130
- internalType: "bytes32",
131
- name: "node",
132
- type: "bytes32"
133
- }
134
- ],
135
- name: "Unauthorised",
136
- type: "error"
137
- },
138
127
  {
139
128
  inputs: [
140
129
  {
@@ -341,14 +330,9 @@ const _abi = [
341
330
  type: "bool"
342
331
  },
343
332
  {
344
- internalType: "uint32",
345
- name: "fuses",
346
- type: "uint32"
347
- },
348
- {
349
- internalType: "uint64",
350
- name: "wrapperExpiry",
351
- type: "uint64"
333
+ internalType: "uint16",
334
+ name: "ownerControlledFuses",
335
+ type: "uint16"
352
336
  }
353
337
  ],
354
338
  name: "makeCommitment",
@@ -488,14 +472,9 @@ const _abi = [
488
472
  type: "bool"
489
473
  },
490
474
  {
491
- internalType: "uint32",
492
- name: "fuses",
493
- type: "uint32"
494
- },
495
- {
496
- internalType: "uint64",
497
- name: "wrapperExpiry",
498
- type: "uint64"
475
+ internalType: "uint16",
476
+ name: "ownerControlledFuses",
477
+ type: "uint16"
499
478
  }
500
479
  ],
501
480
  name: "register",
@@ -521,34 +500,6 @@ const _abi = [
521
500
  stateMutability: "payable",
522
501
  type: "function"
523
502
  },
524
- {
525
- inputs: [
526
- {
527
- internalType: "string",
528
- name: "name",
529
- type: "string"
530
- },
531
- {
532
- internalType: "uint256",
533
- name: "duration",
534
- type: "uint256"
535
- },
536
- {
537
- internalType: "uint32",
538
- name: "fuses",
539
- type: "uint32"
540
- },
541
- {
542
- internalType: "uint64",
543
- name: "wrapperExpiry",
544
- type: "uint64"
545
- }
546
- ],
547
- name: "renewWithFuses",
548
- outputs: [],
549
- stateMutability: "payable",
550
- type: "function"
551
- },
552
503
  {
553
504
  inputs: [],
554
505
  name: "renounceOwnership",