@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.
- package/dist/cjs/contracts/getContractAddress.js +4 -4
- package/dist/cjs/functions/commitName.js +2 -3
- package/dist/cjs/functions/createSubname.js +2 -8
- package/dist/cjs/functions/getHistory.js +14 -7
- package/dist/cjs/functions/getNames.js +10 -6
- package/dist/cjs/functions/getOwner.js +25 -12
- package/dist/cjs/functions/getWrapperData.js +3 -4
- package/dist/cjs/functions/renewNames.js +13 -20
- package/dist/cjs/functions/{burnFuses.js → setFuses.js} +24 -6
- package/dist/cjs/functions/wrapName.js +7 -23
- package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +6 -55
- package/dist/cjs/generated/factories/NameWrapper__factory.js +90 -69
- package/dist/cjs/generated/factories/PublicResolver__factory.js +83 -0
- package/dist/cjs/generated/factories/UniversalResolver__factory.js +67 -2
- package/dist/cjs/index.js +5 -4
- package/dist/cjs/utils/consts.js +3 -1
- package/dist/cjs/utils/fuses.js +218 -53
- package/dist/cjs/utils/normalise.js +2 -2
- package/dist/cjs/utils/recordHelpers.js +4 -3
- package/dist/cjs/utils/registerHelpers.js +9 -23
- package/dist/cjs/utils/subgraph-types.js +16 -0
- package/dist/cjs/utils/wrapper.js +2 -2
- package/dist/esm/contracts/getContractAddress.mjs +4 -4
- package/dist/esm/functions/commitName.mjs +2 -3
- package/dist/esm/functions/createSubname.mjs +2 -2
- package/dist/esm/functions/getHistory.mjs +14 -7
- package/dist/esm/functions/getNames.mjs +10 -6
- package/dist/esm/functions/getOwner.mjs +25 -12
- package/dist/esm/functions/getWrapperData.mjs +3 -4
- package/dist/esm/functions/renewNames.mjs +13 -20
- package/dist/esm/functions/setFuses.mjs +30 -0
- package/dist/esm/functions/wrapName.mjs +8 -18
- package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +6 -55
- package/dist/esm/generated/factories/NameWrapper__factory.mjs +90 -69
- package/dist/esm/generated/factories/PublicResolver__factory.mjs +83 -0
- package/dist/esm/generated/factories/UniversalResolver__factory.mjs +67 -2
- package/dist/esm/index.mjs +5 -4
- package/dist/esm/utils/consts.mjs +3 -1
- package/dist/esm/utils/fuses.mjs +218 -53
- package/dist/esm/utils/normalise.mjs +1 -1
- package/dist/esm/utils/recordHelpers.mjs +2 -1
- package/dist/esm/utils/registerHelpers.mjs +9 -17
- package/dist/esm/utils/subgraph-types.mjs +0 -0
- package/dist/esm/utils/wrapper.mjs +1 -1
- package/dist/types/functions/commitName.d.ts +0 -1
- package/dist/types/functions/createSubname.d.ts +2 -2
- package/dist/types/functions/getHistory.d.ts +1 -1
- package/dist/types/functions/getNames.d.ts +3 -3
- package/dist/types/functions/getOwner.d.ts +1 -0
- package/dist/types/functions/getWrapperData.d.ts +44 -5
- package/dist/types/functions/renewNames.d.ts +4 -5
- package/dist/types/functions/setFuses.d.ts +7 -0
- package/dist/types/functions/types.d.ts +6 -4
- package/dist/types/functions/wrapName.d.ts +3 -3
- package/dist/types/generated/ETHRegistrarController.d.ts +13 -36
- package/dist/types/generated/NameWrapper.d.ts +97 -52
- package/dist/types/generated/PublicResolver.d.ts +50 -1
- package/dist/types/generated/UniversalResolver.d.ts +79 -32
- package/dist/types/generated/factories/UniversalResolver__factory.d.ts +15 -0
- package/dist/types/index.d.ts +51 -9
- package/dist/types/utils/consts.d.ts +1 -0
- package/dist/types/utils/fuses.d.ts +115 -45
- package/dist/types/utils/registerHelpers.d.ts +7 -25
- package/dist/types/utils/subgraph-types.d.ts +284 -0
- package/package.json +5 -5
- package/src/contracts/getContractAddress.ts +4 -4
- package/src/functions/commitName.test.ts +0 -3
- package/src/functions/commitName.ts +1 -2
- package/src/functions/createSubname.ts +4 -5
- package/src/functions/getHistory.ts +59 -25
- package/src/functions/getNames.test.ts +1 -1
- package/src/functions/getNames.ts +26 -13
- package/src/functions/getOwner.test.ts +62 -3
- package/src/functions/getOwner.ts +31 -11
- package/src/functions/getWrapperData.test.ts +11 -45
- package/src/functions/getWrapperData.ts +7 -5
- package/src/functions/registerName.test.ts +3 -3
- package/src/functions/renewNames.ts +17 -23
- package/src/functions/setFuses.test.ts +240 -0
- package/src/functions/setFuses.ts +44 -0
- package/src/functions/types.ts +6 -4
- package/src/functions/wrapName.test.ts +8 -7
- package/src/functions/wrapName.ts +10 -24
- package/src/generated/ETHRegistrarController.ts +12 -79
- package/src/generated/NameWrapper.ts +155 -99
- package/src/generated/PublicResolver.ts +123 -0
- package/src/generated/UniversalResolver.ts +157 -16
- package/src/generated/factories/ETHRegistrarController__factory.ts +6 -55
- package/src/generated/factories/NameWrapper__factory.ts +90 -69
- package/src/generated/factories/PublicResolver__factory.ts +83 -0
- package/src/generated/factories/UniversalResolver__factory.ts +67 -2
- package/src/index.ts +11 -14
- package/src/utils/consts.ts +1 -0
- package/src/utils/fuses.ts +299 -102
- package/src/utils/normalise.ts +1 -1
- package/src/utils/recordHelpers.ts +2 -1
- package/src/utils/registerHelpers.ts +13 -41
- package/src/utils/subgraph-types.ts +312 -0
- package/src/utils/wrapper.ts +1 -1
- package/dist/cjs/utils/generateFuseInput.js +0 -40
- package/dist/esm/functions/burnFuses.mjs +0 -12
- package/dist/esm/utils/generateFuseInput.mjs +0 -15
- package/dist/types/functions/burnFuses.d.ts +0 -3
- package/dist/types/utils/generateFuseInput.d.ts +0 -3
- package/src/functions/burnFuses.test.ts +0 -148
- package/src/functions/burnFuses.ts +0 -16
- package/src/utils/generateFuseInput.ts +0 -13
|
@@ -56,6 +56,25 @@ var _abi = [
|
|
|
56
56
|
name: "OffchainLookup",
|
|
57
57
|
type: "error"
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
anonymous: false,
|
|
61
|
+
inputs: [
|
|
62
|
+
{
|
|
63
|
+
indexed: true,
|
|
64
|
+
internalType: "address",
|
|
65
|
+
name: "previousOwner",
|
|
66
|
+
type: "address"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
indexed: true,
|
|
70
|
+
internalType: "address",
|
|
71
|
+
name: "newOwner",
|
|
72
|
+
type: "address"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
name: "OwnershipTransferred",
|
|
76
|
+
type: "event"
|
|
77
|
+
},
|
|
59
78
|
{
|
|
60
79
|
inputs: [
|
|
61
80
|
{
|
|
@@ -143,6 +162,19 @@ var _abi = [
|
|
|
143
162
|
stateMutability: "view",
|
|
144
163
|
type: "function"
|
|
145
164
|
},
|
|
165
|
+
{
|
|
166
|
+
inputs: [],
|
|
167
|
+
name: "owner",
|
|
168
|
+
outputs: [
|
|
169
|
+
{
|
|
170
|
+
internalType: "address",
|
|
171
|
+
name: "",
|
|
172
|
+
type: "address"
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
stateMutability: "view",
|
|
176
|
+
type: "function"
|
|
177
|
+
},
|
|
146
178
|
{
|
|
147
179
|
inputs: [],
|
|
148
180
|
name: "registry",
|
|
@@ -156,6 +188,13 @@ var _abi = [
|
|
|
156
188
|
stateMutability: "view",
|
|
157
189
|
type: "function"
|
|
158
190
|
},
|
|
191
|
+
{
|
|
192
|
+
inputs: [],
|
|
193
|
+
name: "renounceOwnership",
|
|
194
|
+
outputs: [],
|
|
195
|
+
stateMutability: "nonpayable",
|
|
196
|
+
type: "function"
|
|
197
|
+
},
|
|
159
198
|
{
|
|
160
199
|
inputs: [
|
|
161
200
|
{
|
|
@@ -308,7 +347,7 @@ var _abi = [
|
|
|
308
347
|
type: "address"
|
|
309
348
|
}
|
|
310
349
|
],
|
|
311
|
-
stateMutability: "
|
|
350
|
+
stateMutability: "view",
|
|
312
351
|
type: "function"
|
|
313
352
|
},
|
|
314
353
|
{
|
|
@@ -337,7 +376,7 @@ var _abi = [
|
|
|
337
376
|
type: "address"
|
|
338
377
|
}
|
|
339
378
|
],
|
|
340
|
-
stateMutability: "
|
|
379
|
+
stateMutability: "view",
|
|
341
380
|
type: "function"
|
|
342
381
|
},
|
|
343
382
|
{
|
|
@@ -449,6 +488,19 @@ var _abi = [
|
|
|
449
488
|
type: "address"
|
|
450
489
|
}
|
|
451
490
|
],
|
|
491
|
+
stateMutability: "view",
|
|
492
|
+
type: "function"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
inputs: [
|
|
496
|
+
{
|
|
497
|
+
internalType: "string[]",
|
|
498
|
+
name: "_urls",
|
|
499
|
+
type: "string[]"
|
|
500
|
+
}
|
|
501
|
+
],
|
|
502
|
+
name: "setGatewayURLs",
|
|
503
|
+
outputs: [],
|
|
452
504
|
stateMutability: "nonpayable",
|
|
453
505
|
type: "function"
|
|
454
506
|
},
|
|
@@ -470,6 +522,19 @@ var _abi = [
|
|
|
470
522
|
],
|
|
471
523
|
stateMutability: "view",
|
|
472
524
|
type: "function"
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
inputs: [
|
|
528
|
+
{
|
|
529
|
+
internalType: "address",
|
|
530
|
+
name: "newOwner",
|
|
531
|
+
type: "address"
|
|
532
|
+
}
|
|
533
|
+
],
|
|
534
|
+
name: "transferOwnership",
|
|
535
|
+
outputs: [],
|
|
536
|
+
stateMutability: "nonpayable",
|
|
537
|
+
type: "function"
|
|
473
538
|
}
|
|
474
539
|
];
|
|
475
540
|
var UniversalResolver__factory = class {
|
package/dist/esm/index.mjs
CHANGED
|
@@ -278,16 +278,17 @@ var ENS = class {
|
|
|
278
278
|
transferController = this.generateWriteFunction("transferController", ["contracts"]);
|
|
279
279
|
wrapName = this.generateWriteFunction(
|
|
280
280
|
"wrapName",
|
|
281
|
-
["contracts"
|
|
281
|
+
["contracts"]
|
|
282
282
|
);
|
|
283
283
|
unwrapName = this.generateWriteFunction(
|
|
284
284
|
"unwrapName",
|
|
285
285
|
["contracts"]
|
|
286
286
|
);
|
|
287
|
-
|
|
288
|
-
"
|
|
287
|
+
setFuses = this.generateWriteFunction(
|
|
288
|
+
"setFuses",
|
|
289
289
|
["contracts"]
|
|
290
290
|
);
|
|
291
|
+
setChildFuses = this.generateWriteFunction("setFuses", ["contracts"], "setChildFuses");
|
|
291
292
|
importDNSSECName = this.generateWriteFunction("importDNSSECName", ["contracts", "provider", "signer"]);
|
|
292
293
|
createSubname = this.generateWriteFunction("createSubname", ["contracts", "getExpiry"]);
|
|
293
294
|
deleteSubname = this.generateWriteFunction("deleteSubname", ["contracts"]);
|
|
@@ -301,7 +302,7 @@ var ENS = class {
|
|
|
301
302
|
"renewNames",
|
|
302
303
|
["contracts"]
|
|
303
304
|
);
|
|
304
|
-
|
|
305
|
+
extendWrappedName = this.generateWriteFunction("renewNames", ["contracts"], "extendWrappedName");
|
|
305
306
|
};
|
|
306
307
|
export {
|
|
307
308
|
ENS,
|
package/dist/esm/utils/fuses.mjs
CHANGED
|
@@ -1,23 +1,43 @@
|
|
|
1
1
|
// src/utils/fuses.ts
|
|
2
|
-
import { BigNumber } from "@ethersproject/bignumber/lib.esm/bignumber.js";
|
|
3
2
|
var CANNOT_UNWRAP = 1;
|
|
4
3
|
var CANNOT_BURN_FUSES = 2;
|
|
5
4
|
var CANNOT_TRANSFER = 4;
|
|
6
5
|
var CANNOT_SET_RESOLVER = 8;
|
|
7
6
|
var CANNOT_SET_TTL = 16;
|
|
8
7
|
var CANNOT_CREATE_SUBDOMAIN = 32;
|
|
9
|
-
var PARENT_CANNOT_CONTROL =
|
|
8
|
+
var PARENT_CANNOT_CONTROL = 65536;
|
|
9
|
+
var IS_DOT_ETH = 131072;
|
|
10
|
+
var CAN_EXTEND_EXPIRY = 262144;
|
|
11
|
+
var CHILD_CONTROLLED_FUSES = 65535;
|
|
12
|
+
var PARENT_CONTROLLED_FUSES = 4294901760;
|
|
13
|
+
var USER_SETTABLE_FUSES = 4294836223;
|
|
10
14
|
var CAN_DO_EVERYTHING = 0;
|
|
11
|
-
var
|
|
15
|
+
var childFuseEnum = {
|
|
12
16
|
CANNOT_UNWRAP,
|
|
13
17
|
CANNOT_BURN_FUSES,
|
|
14
18
|
CANNOT_TRANSFER,
|
|
15
19
|
CANNOT_SET_RESOLVER,
|
|
16
20
|
CANNOT_SET_TTL,
|
|
17
|
-
CANNOT_CREATE_SUBDOMAIN
|
|
18
|
-
PARENT_CANNOT_CONTROL
|
|
21
|
+
CANNOT_CREATE_SUBDOMAIN
|
|
19
22
|
};
|
|
20
|
-
var
|
|
23
|
+
var parentFuseEnum = {
|
|
24
|
+
PARENT_CANNOT_CONTROL,
|
|
25
|
+
CAN_EXTEND_EXPIRY
|
|
26
|
+
};
|
|
27
|
+
var fullParentFuseEnum = {
|
|
28
|
+
...parentFuseEnum,
|
|
29
|
+
IS_DOT_ETH
|
|
30
|
+
};
|
|
31
|
+
var userSettableFuseEnum = {
|
|
32
|
+
...childFuseEnum,
|
|
33
|
+
...parentFuseEnum
|
|
34
|
+
};
|
|
35
|
+
var fullFuseEnum = {
|
|
36
|
+
...userSettableFuseEnum,
|
|
37
|
+
CAN_DO_EVERYTHING
|
|
38
|
+
};
|
|
39
|
+
var unnamedChildFuses = [
|
|
40
|
+
64,
|
|
21
41
|
128,
|
|
22
42
|
256,
|
|
23
43
|
512,
|
|
@@ -26,10 +46,9 @@ var unnamedFuses = [
|
|
|
26
46
|
4096,
|
|
27
47
|
8192,
|
|
28
48
|
16384,
|
|
29
|
-
32768
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
262144,
|
|
49
|
+
32768
|
|
50
|
+
];
|
|
51
|
+
var unnamedParentFuses = [
|
|
33
52
|
524288,
|
|
34
53
|
1048576,
|
|
35
54
|
2097152,
|
|
@@ -42,74 +61,220 @@ var unnamedFuses = [
|
|
|
42
61
|
268435456,
|
|
43
62
|
536870912,
|
|
44
63
|
1073741824,
|
|
45
|
-
2147483648
|
|
46
|
-
4294967296
|
|
64
|
+
2147483648
|
|
47
65
|
];
|
|
48
|
-
var
|
|
49
|
-
...
|
|
50
|
-
|
|
66
|
+
var unnamedUserSettableFuses = [
|
|
67
|
+
...unnamedChildFuses,
|
|
68
|
+
...unnamedParentFuses
|
|
69
|
+
];
|
|
70
|
+
var childFuseKeys = Object.keys(
|
|
71
|
+
childFuseEnum
|
|
72
|
+
);
|
|
73
|
+
var parentFuseKeys = Object.keys(
|
|
74
|
+
parentFuseEnum
|
|
75
|
+
);
|
|
76
|
+
var fullParentFuseKeys = Object.keys(
|
|
77
|
+
fullParentFuseEnum
|
|
78
|
+
);
|
|
79
|
+
var userSettableFuseKeys = Object.keys(
|
|
80
|
+
userSettableFuseEnum
|
|
81
|
+
);
|
|
82
|
+
var checkNumber = (fuses) => {
|
|
83
|
+
if (fuses > 2 ** 32 || fuses < 1) {
|
|
84
|
+
throw new Error(
|
|
85
|
+
`Fuse number must be limited to uint32, ${fuses} was too ${fuses < 1 ? "low" : "high"}.`
|
|
86
|
+
);
|
|
87
|
+
} else if (fuses % 1 !== 0) {
|
|
88
|
+
throw new Error(`Fuse number must be an integer, ${fuses} was not.`);
|
|
89
|
+
} else if ((fuses & USER_SETTABLE_FUSES) !== fuses) {
|
|
90
|
+
throw new Error(
|
|
91
|
+
`Fuse number must be limited to user settable fuses, ${fuses} was not.`
|
|
92
|
+
);
|
|
93
|
+
}
|
|
51
94
|
};
|
|
52
|
-
var
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
95
|
+
var testFuses = (fuses) => {
|
|
96
|
+
if ("named" in fuses && fuses.named.length > 0) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
if ("unnamed" in fuses && fuses.unnamed.length > 0) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
if ("number" in fuses && fuses.number !== 0) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
};
|
|
107
|
+
var hasFuses = (fuses) => {
|
|
108
|
+
if (typeof fuses === "number") {
|
|
109
|
+
return fuses !== 0;
|
|
110
|
+
}
|
|
111
|
+
if (typeof fuses === "object") {
|
|
112
|
+
if ("child" in fuses && testFuses(fuses.child)) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
if ("parent" in fuses && testFuses(fuses.parent)) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
if (testFuses(fuses)) {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
};
|
|
124
|
+
function encodeFuses(fuses, restrictTo) {
|
|
56
125
|
let encodedFuses = 0;
|
|
57
|
-
if (
|
|
58
|
-
if (
|
|
59
|
-
throw new Error(
|
|
60
|
-
`Fuse number must be limited to uint32, ${fuses.fuseNumberToBurn} was too ${fuses.fuseNumberToBurn < 1 ? "low" : "high"}.`
|
|
61
|
-
);
|
|
62
|
-
} else if (fuses.fuseNumberToBurn % 1 !== 0) {
|
|
63
|
-
throw new Error(
|
|
64
|
-
`Fuse number must be an integer, ${fuses.fuseNumberToBurn} was not.`
|
|
65
|
-
);
|
|
126
|
+
if (typeof fuses === "number") {
|
|
127
|
+
if (restrictTo) {
|
|
128
|
+
throw new Error("Cannot specify an exact fuse value when restricted.");
|
|
66
129
|
}
|
|
67
|
-
|
|
130
|
+
checkNumber(fuses);
|
|
131
|
+
encodedFuses = fuses;
|
|
68
132
|
} else {
|
|
69
|
-
|
|
70
|
-
|
|
133
|
+
let fusesRef = fuses;
|
|
134
|
+
let allowedNamed = [];
|
|
135
|
+
let allowedUnnamed = [];
|
|
136
|
+
let namedArray = [];
|
|
137
|
+
let unnamedArray = [];
|
|
138
|
+
if (restrictTo) {
|
|
139
|
+
if ("parent" in fuses || "child" in fuses) {
|
|
140
|
+
throw new Error("Can't specify fuse category when restricted.");
|
|
141
|
+
}
|
|
142
|
+
allowedNamed = restrictTo === "child" ? childFuseKeys : parentFuseKeys;
|
|
143
|
+
allowedUnnamed = restrictTo === "child" ? unnamedChildFuses : unnamedParentFuses;
|
|
144
|
+
fusesRef = { [restrictTo]: fuses };
|
|
145
|
+
} else {
|
|
146
|
+
allowedNamed = userSettableFuseKeys;
|
|
147
|
+
allowedUnnamed = unnamedUserSettableFuses;
|
|
148
|
+
}
|
|
149
|
+
if ("parent" in fusesRef) {
|
|
150
|
+
if ("named" in fusesRef.parent)
|
|
151
|
+
namedArray = fusesRef.parent.named;
|
|
152
|
+
if ("unnamed" in fusesRef.parent)
|
|
153
|
+
unnamedArray = fusesRef.parent.unnamed;
|
|
154
|
+
if ("number" in fusesRef.parent) {
|
|
155
|
+
if ("named" in fusesRef.parent || "unnamed" in fusesRef.parent) {
|
|
156
|
+
throw new Error(
|
|
157
|
+
"Cannot specify both a fuse number and named/unnamed fuses."
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
checkNumber(fusesRef.parent.number);
|
|
161
|
+
if ((fusesRef.parent.number & PARENT_CONTROLLED_FUSES) !== fusesRef.parent.number) {
|
|
162
|
+
throw new Error(
|
|
163
|
+
"Cannot specify a fuse value to set that is outside of the parent's control."
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
encodedFuses |= fusesRef.parent.number;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if ("child" in fusesRef) {
|
|
170
|
+
if ("named" in fusesRef.child)
|
|
171
|
+
namedArray = [...namedArray, ...fusesRef.child.named];
|
|
172
|
+
if ("unnamed" in fusesRef.child)
|
|
173
|
+
unnamedArray = [...unnamedArray, ...fusesRef.child.unnamed];
|
|
174
|
+
if ("number" in fusesRef.child) {
|
|
175
|
+
if ("named" in fusesRef.child || "unnamed" in fusesRef.child) {
|
|
176
|
+
throw new Error(
|
|
177
|
+
"Cannot specify both a fuse number and named/unnamed fuses."
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
checkNumber(fusesRef.child.number);
|
|
181
|
+
if ((fusesRef.child.number & CHILD_CONTROLLED_FUSES) !== fusesRef.child.number) {
|
|
182
|
+
throw new Error(
|
|
183
|
+
"Cannot specify a fuse value to set that is outside of the owner's control."
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
encodedFuses |= fusesRef.child.number;
|
|
187
|
+
}
|
|
71
188
|
}
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
189
|
+
if (!namedArray.length && !unnamedArray.length && !encodedFuses) {
|
|
190
|
+
throw new Error("Must specify at least one fuse.");
|
|
191
|
+
}
|
|
192
|
+
for (const fuse of namedArray) {
|
|
193
|
+
if (!allowedNamed.includes(fuse)) {
|
|
194
|
+
if (!userSettableFuseKeys.includes(fuse)) {
|
|
75
195
|
throw new Error(`${fuse} is not a valid named fuse.`);
|
|
76
196
|
}
|
|
77
|
-
|
|
197
|
+
throw new Error(`Fuse ${fuse} is not allowed for this operation.`);
|
|
78
198
|
}
|
|
199
|
+
encodedFuses |= userSettableFuseEnum[fuse];
|
|
79
200
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (!
|
|
201
|
+
for (const fuse of unnamedArray) {
|
|
202
|
+
if (!allowedUnnamed.includes(fuse)) {
|
|
203
|
+
if (!unnamedUserSettableFuses.includes(fuse)) {
|
|
83
204
|
throw new Error(
|
|
84
|
-
`${fuse} is not a valid unnamed fuse. If you are trying to
|
|
205
|
+
`${fuse} is not a valid unnamed fuse. If you are trying to set a named fuse, use the named property.`
|
|
85
206
|
);
|
|
86
207
|
}
|
|
87
|
-
|
|
208
|
+
throw new Error(`Fuse ${fuse} is not allowed for this operation.`);
|
|
88
209
|
}
|
|
210
|
+
encodedFuses |= fuse;
|
|
89
211
|
}
|
|
90
212
|
}
|
|
91
213
|
return encodedFuses;
|
|
92
|
-
}
|
|
93
|
-
var
|
|
94
|
-
const bnFuses = BigNumber.from(fuses);
|
|
214
|
+
}
|
|
215
|
+
var decodeNamedFuses = (fuses, arr) => {
|
|
95
216
|
const fuseObj = Object.fromEntries(
|
|
96
|
-
|
|
217
|
+
arr.map((fuse) => [
|
|
97
218
|
fuse,
|
|
98
|
-
|
|
219
|
+
(fuses & userSettableFuseEnum[fuse]) > 0
|
|
99
220
|
])
|
|
100
221
|
);
|
|
101
|
-
if (bnFuses.eq(0)) {
|
|
102
|
-
fuseObj.CAN_DO_EVERYTHING = true;
|
|
103
|
-
} else {
|
|
104
|
-
fuseObj.CAN_DO_EVERYTHING = false;
|
|
105
|
-
}
|
|
106
222
|
return fuseObj;
|
|
107
223
|
};
|
|
224
|
+
var decodeUnnamedFuses = (fuses, arr) => {
|
|
225
|
+
const fuseObj = Object.fromEntries(
|
|
226
|
+
arr.map((fuse) => [fuse, (fuses & fuse) > 0])
|
|
227
|
+
);
|
|
228
|
+
return fuseObj;
|
|
229
|
+
};
|
|
230
|
+
var decodeFuses = (fuses) => {
|
|
231
|
+
const parentNamedFuses = decodeNamedFuses(
|
|
232
|
+
fuses,
|
|
233
|
+
fullParentFuseKeys
|
|
234
|
+
);
|
|
235
|
+
const parentUnnamedFuses = decodeUnnamedFuses(
|
|
236
|
+
fuses,
|
|
237
|
+
unnamedParentFuses
|
|
238
|
+
);
|
|
239
|
+
const childNamedFuses = decodeNamedFuses(
|
|
240
|
+
fuses,
|
|
241
|
+
childFuseKeys
|
|
242
|
+
);
|
|
243
|
+
const childUnnamedFuses = decodeUnnamedFuses(
|
|
244
|
+
fuses,
|
|
245
|
+
unnamedChildFuses
|
|
246
|
+
);
|
|
247
|
+
return {
|
|
248
|
+
parent: {
|
|
249
|
+
...parentNamedFuses,
|
|
250
|
+
unnamed: parentUnnamedFuses
|
|
251
|
+
},
|
|
252
|
+
child: {
|
|
253
|
+
...childNamedFuses,
|
|
254
|
+
CAN_DO_EVERYTHING: (fuses & CHILD_CONTROLLED_FUSES) === 0,
|
|
255
|
+
unnamed: childUnnamedFuses
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
};
|
|
108
259
|
var fuses_default = fullFuseEnum;
|
|
109
260
|
export {
|
|
261
|
+
CHILD_CONTROLLED_FUSES,
|
|
262
|
+
PARENT_CONTROLLED_FUSES,
|
|
263
|
+
USER_SETTABLE_FUSES,
|
|
264
|
+
childFuseEnum,
|
|
265
|
+
childFuseKeys,
|
|
110
266
|
decodeFuses,
|
|
111
267
|
fuses_default as default,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
268
|
+
encodeFuses,
|
|
269
|
+
fullFuseEnum,
|
|
270
|
+
fullParentFuseEnum,
|
|
271
|
+
fullParentFuseKeys,
|
|
272
|
+
hasFuses,
|
|
273
|
+
parentFuseEnum,
|
|
274
|
+
parentFuseKeys,
|
|
275
|
+
unnamedChildFuses,
|
|
276
|
+
unnamedParentFuses,
|
|
277
|
+
unnamedUserSettableFuses,
|
|
278
|
+
userSettableFuseEnum,
|
|
279
|
+
userSettableFuseKeys
|
|
115
280
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/utils/normalise.ts
|
|
2
2
|
import { concat, hexlify } from "@ethersproject/bytes";
|
|
3
3
|
import { keccak256 } from "@ethersproject/keccak256";
|
|
4
|
-
import { toUtf8Bytes } from "@ethersproject/strings
|
|
4
|
+
import { toUtf8Bytes } from "@ethersproject/strings";
|
|
5
5
|
import uts46 from "idna-uts46-hx/uts46bundle.js";
|
|
6
6
|
import { decodeLabelhash, isEncodedLabelhash } from "./labels.mjs";
|
|
7
7
|
var zeros = new Uint8Array(32);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// src/utils/recordHelpers.ts
|
|
2
2
|
import { formatsByCoinType, formatsByName } from "@ensdomains/address-encoder";
|
|
3
|
-
import { isBytesLike
|
|
3
|
+
import { isBytesLike } from "@ethersproject/bytes";
|
|
4
|
+
import { toUtf8Bytes } from "@ethersproject/strings";
|
|
4
5
|
import { encodeContenthash } from "./contentHash.mjs";
|
|
5
6
|
var generateSetAddr = (namehash, coinType, address, resolver) => {
|
|
6
7
|
let coinTypeInstance;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
// src/utils/registerHelpers.ts
|
|
2
2
|
import { defaultAbiCoder } from "@ethersproject/abi/lib.esm/abi-coder.js";
|
|
3
3
|
import { keccak256 } from "@ethersproject/keccak256";
|
|
4
|
-
import
|
|
4
|
+
import { encodeFuses, hasFuses } from "./fuses.mjs";
|
|
5
5
|
import { labelhash } from "./labels.mjs";
|
|
6
6
|
import { namehash } from "./normalise.mjs";
|
|
7
7
|
import { generateRecordCallArray } from "./recordHelpers.mjs";
|
|
8
|
-
var MAX_INT_64 = 2n ** 64n - 1n;
|
|
9
8
|
var randomSecret = () => {
|
|
10
9
|
const bytes = Buffer.allocUnsafe(32);
|
|
11
10
|
return `0x${crypto.getRandomValues(bytes).toString("hex")}`;
|
|
@@ -18,13 +17,12 @@ var makeCommitmentData = ({
|
|
|
18
17
|
records,
|
|
19
18
|
reverseRecord,
|
|
20
19
|
fuses,
|
|
21
|
-
wrapperExpiry,
|
|
22
20
|
secret
|
|
23
21
|
}) => {
|
|
24
|
-
const
|
|
22
|
+
const labelHash = labelhash(name.split(".")[0]);
|
|
25
23
|
const hash = namehash(name);
|
|
26
24
|
const resolverAddress = resolver.address;
|
|
27
|
-
const fuseData = fuses ?
|
|
25
|
+
const fuseData = hasFuses(fuses) ? encodeFuses(fuses, "child") : 0;
|
|
28
26
|
if (reverseRecord) {
|
|
29
27
|
if (!records) {
|
|
30
28
|
records = { coinTypes: [{ key: "ETH", value: owner }] };
|
|
@@ -36,23 +34,20 @@ var makeCommitmentData = ({
|
|
|
36
34
|
}
|
|
37
35
|
const data = records ? generateRecordCallArray(hash, records, resolver) : [];
|
|
38
36
|
return [
|
|
39
|
-
|
|
37
|
+
labelHash,
|
|
40
38
|
owner,
|
|
41
39
|
duration,
|
|
40
|
+
secret,
|
|
42
41
|
resolverAddress,
|
|
43
42
|
data,
|
|
44
|
-
secret,
|
|
45
43
|
!!reverseRecord,
|
|
46
|
-
fuseData
|
|
47
|
-
wrapperExpiry || MAX_INT_64
|
|
44
|
+
fuseData
|
|
48
45
|
];
|
|
49
46
|
};
|
|
50
47
|
var makeRegistrationData = (params) => {
|
|
51
48
|
const commitmentData = makeCommitmentData(params);
|
|
52
49
|
const label = params.name.split(".")[0];
|
|
53
50
|
commitmentData[0] = label;
|
|
54
|
-
const secret = commitmentData.splice(5, 1)[0];
|
|
55
|
-
commitmentData.splice(3, 0, secret);
|
|
56
51
|
return commitmentData;
|
|
57
52
|
};
|
|
58
53
|
var _makeCommitment = (params) => {
|
|
@@ -62,12 +57,11 @@ var _makeCommitment = (params) => {
|
|
|
62
57
|
"bytes32",
|
|
63
58
|
"address",
|
|
64
59
|
"uint256",
|
|
60
|
+
"bytes32",
|
|
65
61
|
"address",
|
|
66
62
|
"bytes[]",
|
|
67
|
-
"bytes32",
|
|
68
63
|
"bool",
|
|
69
|
-
"
|
|
70
|
-
"uint64"
|
|
64
|
+
"uint16"
|
|
71
65
|
],
|
|
72
66
|
params
|
|
73
67
|
)
|
|
@@ -84,12 +78,10 @@ var makeCommitment = ({
|
|
|
84
78
|
const commitment = _makeCommitment(generatedParams);
|
|
85
79
|
return {
|
|
86
80
|
secret,
|
|
87
|
-
commitment
|
|
88
|
-
wrapperExpiry: generatedParams[8]
|
|
81
|
+
commitment
|
|
89
82
|
};
|
|
90
83
|
};
|
|
91
84
|
export {
|
|
92
|
-
MAX_INT_64,
|
|
93
85
|
_makeCommitment,
|
|
94
86
|
makeCommitment,
|
|
95
87
|
makeCommitmentData,
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/utils/wrapper.ts
|
|
2
2
|
import { BigNumber } from "@ethersproject/bignumber/lib.esm/bignumber.js";
|
|
3
|
-
import { toUtf8Bytes } from "@ethersproject/strings
|
|
3
|
+
import { toUtf8Bytes } from "@ethersproject/strings";
|
|
4
4
|
var MAX_EXPIRY = BigNumber.from(2).pow(64).sub(1);
|
|
5
5
|
var makeExpiry = async ({ getExpiry }, name, expiry) => {
|
|
6
6
|
if (expiry) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ENSArgs } from '..';
|
|
2
|
-
import {
|
|
2
|
+
import { CombinedFuseInput } from '../utils/fuses';
|
|
3
3
|
import { Expiry } from '../utils/wrapper';
|
|
4
4
|
declare type BaseArgs = {
|
|
5
5
|
owner: string;
|
|
@@ -8,7 +8,7 @@ declare type BaseArgs = {
|
|
|
8
8
|
};
|
|
9
9
|
declare type NameWrapperArgs = {
|
|
10
10
|
contract: 'nameWrapper';
|
|
11
|
-
fuses?:
|
|
11
|
+
fuses?: CombinedFuseInput;
|
|
12
12
|
expiry?: Expiry;
|
|
13
13
|
} & BaseArgs;
|
|
14
14
|
declare type Args = BaseArgs | NameWrapperArgs;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ENSArgs } from '..';
|
|
2
|
-
declare type DomainEvent = 'NewOwner' | 'NewResolver' | 'Transfer' | 'NewTTL' | 'WrappedTransfer' | 'NameWrapped' | 'NameUnwrapped' | 'FusesSet';
|
|
2
|
+
declare type DomainEvent = 'NewOwner' | 'NewResolver' | 'Transfer' | 'NewTTL' | 'WrappedTransfer' | 'NameWrapped' | 'NameUnwrapped' | 'FusesSet' | 'ExpiryExtended';
|
|
3
3
|
declare type RegistrationEvent = 'NameRegistered' | 'NameRenewed' | 'NameTransferred';
|
|
4
4
|
declare type ResolverEvent = 'AddrChanged' | 'MulticoinAddrChanged' | 'NameChanged' | 'AbiChanged' | 'PubkeyChanged' | 'TextChanged' | 'ContenthashChanged' | 'InterfaceChanged' | 'AuthorisationChanged' | 'VersionChanged';
|
|
5
5
|
export declare function getHistory({ gqlInstance }: ENSArgs<'gqlInstance'>, name: string): Promise<{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ENSArgs } from '..';
|
|
2
|
-
import {
|
|
2
|
+
import { AllCurrentFuses } from '../utils/fuses';
|
|
3
3
|
export declare type Name = {
|
|
4
4
|
id: string;
|
|
5
5
|
labelName: string | null;
|
|
@@ -13,7 +13,7 @@ export declare type Name = {
|
|
|
13
13
|
createdAt?: Date;
|
|
14
14
|
registrationDate?: Date;
|
|
15
15
|
expiryDate?: Date;
|
|
16
|
-
fuses?:
|
|
16
|
+
fuses?: AllCurrentFuses;
|
|
17
17
|
registration?: {
|
|
18
18
|
expiryDate: Date;
|
|
19
19
|
registrationDate: Date;
|
|
@@ -37,7 +37,7 @@ declare type OwnerParams = {
|
|
|
37
37
|
};
|
|
38
38
|
declare type WrappedOwnerParams = {
|
|
39
39
|
type: 'wrappedOwner';
|
|
40
|
-
orderBy?: 'expiryDate' | '
|
|
40
|
+
orderBy?: 'expiryDate' | 'name';
|
|
41
41
|
};
|
|
42
42
|
declare type AllParams = {
|
|
43
43
|
type: 'all';
|
|
@@ -3,6 +3,7 @@ declare type Owner = {
|
|
|
3
3
|
registrant?: string;
|
|
4
4
|
owner?: string;
|
|
5
5
|
ownershipLevel: 'nameWrapper' | 'registry' | 'registrar';
|
|
6
|
+
expired?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare const _default: {
|
|
8
9
|
raw: ({ contracts, multicallWrapper }: ENSArgs<"contracts" | "multicallWrapper">, name: string, contract?: "nameWrapper" | "registrar" | "registry" | undefined) => Promise<{
|