@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
@@ -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
  }
@@ -111,27 +111,39 @@ var decode = async ({
111
111
  const registryOwner = decodedData[0][0];
112
112
  const nameWrapperOwner = decodedData[1][0];
113
113
  let registrarOwner = decodedData[2]?.[0];
114
+ let baseReturnObject = {};
114
115
  if (labels[labels.length - 1] === "eth") {
115
- if (!registrarOwner && labels.length === 2) {
116
- const graphRegistrantResult = await gqlInstance.client.request(
117
- registrantQuery,
118
- {
119
- namehash: makeNamehash(name)
120
- }
121
- );
122
- registrarOwner = graphRegistrantResult.domain?.registration?.registrant?.id;
116
+ if (labels.length === 2) {
117
+ if (!registrarOwner) {
118
+ const graphRegistrantResult = await gqlInstance.client.request(
119
+ registrantQuery,
120
+ {
121
+ namehash: makeNamehash(name)
122
+ }
123
+ );
124
+ registrarOwner = graphRegistrantResult.domain?.registration?.registrant?.id;
125
+ baseReturnObject = {
126
+ expired: true
127
+ };
128
+ } else {
129
+ baseReturnObject = {
130
+ expired: false
131
+ };
132
+ }
123
133
  }
124
- if (registrarOwner === nameWrapper.address) {
134
+ if (registrarOwner?.toLowerCase() === nameWrapper.address.toLowerCase()) {
125
135
  return {
126
136
  owner: nameWrapperOwner,
127
- ownershipLevel: "nameWrapper"
137
+ ownershipLevel: "nameWrapper",
138
+ ...baseReturnObject
128
139
  };
129
140
  }
130
141
  if (registrarOwner) {
131
142
  return {
132
143
  registrant: registrarOwner,
133
144
  owner: registryOwner,
134
- ownershipLevel: "registrar"
145
+ ownershipLevel: "registrar",
146
+ ...baseReturnObject
135
147
  };
136
148
  }
137
149
  if (hexStripZeros(registryOwner) !== "0x") {
@@ -139,7 +151,8 @@ var decode = async ({
139
151
  return {
140
152
  registrant: void 0,
141
153
  owner: registryOwner,
142
- ownershipLevel: "registrar"
154
+ ownershipLevel: "registrar",
155
+ expired: true
143
156
  };
144
157
  }
145
158
  if (registryOwner === nameWrapper.address && nameWrapperOwner && hexStripZeros(nameWrapperOwner) !== "0x") {
@@ -1,6 +1,7 @@
1
1
  // src/functions/getSpecificRecord.ts
2
2
  import { formatsByCoinType, formatsByName } from "@ensdomains/address-encoder";
3
- import { hexStripZeros, isBytesLike } from "@ethersproject/bytes";
3
+ import { arrayify, hexStripZeros, isBytesLike } from "@ethersproject/bytes";
4
+ import { toUtf8String } from "@ethersproject/strings";
4
5
  import { decodeContenthash } from "../utils/contentHash.mjs";
5
6
  import { namehash } from "../utils/normalise.mjs";
6
7
  var _getContentHash = {
@@ -166,10 +167,86 @@ var getAddr = {
166
167
  return _getAddr.decode({ contracts }, urData.data, _name, coinType);
167
168
  }
168
169
  };
170
+ var supportedContentTypes = "0xf";
171
+ var _getABI = {
172
+ raw: async ({ contracts }, name) => {
173
+ const publicResolver = await contracts?.getPublicResolver();
174
+ return {
175
+ to: "0x0000000000000000000000000000000000000000",
176
+ data: publicResolver.interface.encodeFunctionData("ABI", [
177
+ namehash(name),
178
+ supportedContentTypes
179
+ ])
180
+ };
181
+ },
182
+ decode: async ({ contracts }, data) => {
183
+ const publicResolver = await contracts?.getPublicResolver();
184
+ const [bnContentType, encodedABIData] = publicResolver.interface.decodeFunctionResult("ABI", data);
185
+ if (!bnContentType || !data) {
186
+ return;
187
+ }
188
+ const contentType = bnContentType.toNumber();
189
+ if (!contentType) {
190
+ return;
191
+ }
192
+ let abiData;
193
+ let decoded = false;
194
+ switch (contentType) {
195
+ case 1:
196
+ abiData = JSON.parse(toUtf8String(encodedABIData));
197
+ decoded = true;
198
+ break;
199
+ case 2: {
200
+ const { inflate } = await import("pako/dist/pako_inflate.min.js");
201
+ abiData = JSON.parse(
202
+ inflate(arrayify(encodedABIData), { to: "string" })
203
+ );
204
+ decoded = true;
205
+ break;
206
+ }
207
+ case 4: {
208
+ const { decodeFirst } = await import("cbor");
209
+ abiData = await decodeFirst(arrayify(encodedABIData));
210
+ decoded = true;
211
+ break;
212
+ }
213
+ case 8:
214
+ abiData = toUtf8String(encodedABIData);
215
+ decoded = false;
216
+ break;
217
+ default:
218
+ try {
219
+ abiData = toUtf8String(encodedABIData);
220
+ } catch {
221
+ abiData = encodedABIData;
222
+ }
223
+ decoded = false;
224
+ }
225
+ return {
226
+ contentType,
227
+ decoded,
228
+ abi: abiData
229
+ };
230
+ }
231
+ };
232
+ var getABI = {
233
+ raw: async ({ contracts, universalWrapper }, name) => {
234
+ const prData = await _getABI.raw({ contracts }, name);
235
+ return universalWrapper.raw(name, prData.data);
236
+ },
237
+ decode: async ({ contracts, universalWrapper }, data) => {
238
+ const urData = await universalWrapper.decode(data);
239
+ if (!urData)
240
+ return;
241
+ return _getABI.decode({ contracts }, urData.data);
242
+ }
243
+ };
169
244
  export {
245
+ _getABI,
170
246
  _getAddr,
171
247
  _getContentHash,
172
248
  _getText,
249
+ getABI,
173
250
  getAddr,
174
251
  getContentHash,
175
252
  getText
@@ -12,15 +12,14 @@ var raw = async ({ contracts }, name) => {
12
12
  var decode = async ({ contracts }, data) => {
13
13
  const nameWrapper = await contracts?.getNameWrapper();
14
14
  try {
15
- const [owner, _fuses, expiry] = nameWrapper.interface.decodeFunctionResult(
15
+ const [owner, fuses, expiry] = nameWrapper.interface.decodeFunctionResult(
16
16
  "getData",
17
17
  data
18
18
  );
19
- const fuses = BigNumber.from(_fuses);
20
19
  const fuseObj = decodeFuses(fuses);
21
- const expiryDate = new Date(expiry * 1e3);
20
+ const expiryDate = expiry.gt(0) && expiry.lt(BigNumber.from(2).pow(32)) ? new Date(expiry.mul(1e3).toString()) : void 0;
22
21
  return {
23
- fuseObj,
22
+ ...fuseObj,
24
23
  expiryDate,
25
24
  rawFuses: fuses,
26
25
  owner
@@ -1,24 +1,17 @@
1
1
  // src/functions/renewNames.ts
2
- import { validateFuses } from "../utils/fuses.mjs";
3
- import { MAX_INT_64 } from "../utils/registerHelpers.mjs";
4
- async function renewNameWithData({ contracts }, name, {
5
- duration,
6
- value,
7
- fuses,
8
- wrapperExpiry = MAX_INT_64
9
- }) {
2
+ import { MAX_INT_64 } from "../utils/consts.mjs";
3
+ import { labelhash } from "../utils/labels.mjs";
4
+ import { namehash } from "../utils/normalise.mjs";
5
+ async function extendWrappedName({ contracts }, name, options) {
6
+ const expiry = options?.duration || MAX_INT_64;
10
7
  const labels = name.split(".");
11
- if (labels.length !== 2 || labels[1] !== "eth") {
12
- throw new Error("Currently only .eth TLD renewals are supported");
13
- }
14
- const encodedFuses = fuses ? validateFuses(fuses) : 0;
15
- const controller = await contracts.getEthRegistrarController();
16
- return controller.populateTransaction.renewWithFuses(
17
- labels[0],
18
- duration,
19
- encodedFuses,
20
- wrapperExpiry,
21
- { value }
8
+ const labelHash = labelhash(labels.shift());
9
+ const parentNode = namehash(labels.join("."));
10
+ const nameWrapper = await contracts.getNameWrapper();
11
+ return nameWrapper.populateTransaction.extendExpiry(
12
+ parentNode,
13
+ labelHash,
14
+ expiry
22
15
  );
23
16
  }
24
17
  async function renewNames_default({ contracts }, nameOrNames, { duration, value }) {
@@ -39,5 +32,5 @@ async function renewNames_default({ contracts }, nameOrNames, { duration, value
39
32
  }
40
33
  export {
41
34
  renewNames_default as default,
42
- renewNameWithData
35
+ extendWrappedName
43
36
  };
@@ -0,0 +1,30 @@
1
+ // src/functions/setFuses.ts
2
+ import { encodeFuses } from "../utils/fuses.mjs";
3
+ import { labelhash } from "../utils/labels.mjs";
4
+ import { namehash } from "../utils/normalise.mjs";
5
+ async function setChildFuses({ contracts, signer }, name, {
6
+ fuses,
7
+ expiry = 0
8
+ }) {
9
+ const encodedFuses = encodeFuses(fuses);
10
+ const labels = name.split(".");
11
+ const labelHash = labelhash(labels.shift());
12
+ const parentNode = namehash(labels.join("."));
13
+ const nameWrapper = (await contracts.getNameWrapper()).connect(signer);
14
+ return nameWrapper.populateTransaction.setChildFuses(
15
+ parentNode,
16
+ labelHash,
17
+ encodedFuses,
18
+ expiry
19
+ );
20
+ }
21
+ async function setFuses_default({ contracts, signer }, name, props) {
22
+ const encodedFuses = encodeFuses(props, "child");
23
+ const nameWrapper = (await contracts.getNameWrapper()).connect(signer);
24
+ const hash = namehash(name);
25
+ return nameWrapper.populateTransaction.setFuses(hash, encodedFuses);
26
+ }
27
+ export {
28
+ setFuses_default as default,
29
+ setChildFuses
30
+ };
@@ -1,16 +1,16 @@
1
1
  // src/functions/wrapName.ts
2
2
  import { defaultAbiCoder } from "@ethersproject/abi/lib.esm/abi-coder.js";
3
3
  import { keccak256 as solidityKeccak256 } from "@ethersproject/solidity";
4
- import generateFuseInput from "../utils/generateFuseInput.mjs";
4
+ import { encodeFuses } from "../utils/fuses.mjs";
5
5
  import { hexEncodeName } from "../utils/hexEncodedName.mjs";
6
- import { makeExpiry, wrappedLabelLengthCheck } from "../utils/wrapper.mjs";
7
- async function wrapETH({ contracts }, labels, wrappedOwner, expiry, decodedFuses, resolverAddress, signer, address) {
6
+ import { wrappedLabelLengthCheck } from "../utils/wrapper.mjs";
7
+ async function wrapETH({ contracts }, labels, wrappedOwner, decodedFuses, resolverAddress, signer, address) {
8
8
  const nameWrapper = await contracts?.getNameWrapper();
9
9
  const baseRegistrar = (await contracts.getBaseRegistrar()).connect(signer);
10
10
  const labelhash = solidityKeccak256(["string"], [labels[0]]);
11
11
  const data = defaultAbiCoder.encode(
12
- ["string", "address", "uint32", "uint64", "address"],
13
- [labels[0], wrappedOwner, decodedFuses, expiry, resolverAddress]
12
+ ["string", "address", "uint16", "address"],
13
+ [labels[0], wrappedOwner, decodedFuses, resolverAddress]
14
14
  );
15
15
  return baseRegistrar.populateTransaction["safeTransferFrom(address,address,uint256,bytes)"](address, nameWrapper.address, labelhash, data);
16
16
  }
@@ -32,11 +32,7 @@ async function wrapOther({ contracts }, name, wrappedOwner, resolverAddress, add
32
32
  resolverAddress
33
33
  );
34
34
  }
35
- async function wrapName_default({
36
- contracts,
37
- signer,
38
- getExpiry
39
- }, name, {
35
+ async function wrapName_default({ contracts, signer }, name, {
40
36
  wrappedOwner,
41
37
  fuseOptions,
42
38
  expiry,
@@ -52,31 +48,25 @@ async function wrapName_default({
52
48
  if (labels.length === 2 && labels[1] === "eth") {
53
49
  switch (typeof fuseOptions) {
54
50
  case "object": {
55
- decodedFuses = generateFuseInput(fuseOptions);
51
+ decodedFuses = encodeFuses(fuseOptions);
56
52
  break;
57
53
  }
58
54
  case "number": {
59
- decodedFuses = fuseOptions.toString(16);
60
- break;
61
- }
62
- case "string": {
63
55
  decodedFuses = fuseOptions;
64
56
  break;
65
57
  }
66
58
  case "undefined": {
67
- decodedFuses = "0";
59
+ decodedFuses = 0;
68
60
  break;
69
61
  }
70
62
  default: {
71
63
  throw new Error(`Invalid fuseOptions type: ${typeof fuseOptions}`);
72
64
  }
73
65
  }
74
- const expiryToUse = await makeExpiry({ getExpiry }, name, expiry);
75
66
  return wrapETH(
76
67
  { contracts },
77
68
  labels,
78
69
  wrappedOwner,
79
- expiryToUse,
80
70
  decodedFuses,
81
71
  resolverAddress,
82
72
  signer,
@@ -109,17 +109,6 @@ var _abi = [
109
109
  name: "ResolverRequiredWhenDataSupplied",
110
110
  type: "error"
111
111
  },
112
- {
113
- inputs: [
114
- {
115
- internalType: "bytes32",
116
- name: "node",
117
- type: "bytes32"
118
- }
119
- ],
120
- name: "Unauthorised",
121
- type: "error"
122
- },
123
112
  {
124
113
  inputs: [
125
114
  {
@@ -326,14 +315,9 @@ var _abi = [
326
315
  type: "bool"
327
316
  },
328
317
  {
329
- internalType: "uint32",
330
- name: "fuses",
331
- type: "uint32"
332
- },
333
- {
334
- internalType: "uint64",
335
- name: "wrapperExpiry",
336
- type: "uint64"
318
+ internalType: "uint16",
319
+ name: "ownerControlledFuses",
320
+ type: "uint16"
337
321
  }
338
322
  ],
339
323
  name: "makeCommitment",
@@ -473,14 +457,9 @@ var _abi = [
473
457
  type: "bool"
474
458
  },
475
459
  {
476
- internalType: "uint32",
477
- name: "fuses",
478
- type: "uint32"
479
- },
480
- {
481
- internalType: "uint64",
482
- name: "wrapperExpiry",
483
- type: "uint64"
460
+ internalType: "uint16",
461
+ name: "ownerControlledFuses",
462
+ type: "uint16"
484
463
  }
485
464
  ],
486
465
  name: "register",
@@ -506,34 +485,6 @@ var _abi = [
506
485
  stateMutability: "payable",
507
486
  type: "function"
508
487
  },
509
- {
510
- inputs: [
511
- {
512
- internalType: "string",
513
- name: "name",
514
- type: "string"
515
- },
516
- {
517
- internalType: "uint256",
518
- name: "duration",
519
- type: "uint256"
520
- },
521
- {
522
- internalType: "uint32",
523
- name: "fuses",
524
- type: "uint32"
525
- },
526
- {
527
- internalType: "uint64",
528
- name: "wrapperExpiry",
529
- type: "uint64"
530
- }
531
- ],
532
- name: "renewWithFuses",
533
- outputs: [],
534
- stateMutability: "payable",
535
- type: "function"
536
- },
537
488
  {
538
489
  inputs: [],
539
490
  name: "renounceOwnership",