@ensdomains/ensjs 3.0.0-alpha.22 → 3.0.0-alpha.23
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/functions/burnFuses.js +1 -38
- package/dist/cjs/functions/commitName.js +2 -0
- package/dist/cjs/functions/createSubname.js +3 -2
- package/dist/cjs/functions/getHistory.js +19 -14
- package/dist/cjs/functions/getNames.js +1 -1
- package/dist/cjs/functions/{getFuses.js → getWrapperData.js} +10 -11
- package/dist/cjs/functions/registerName.js +2 -0
- package/dist/cjs/functions/renewNames.js +23 -3
- package/dist/cjs/functions/transferController.js +42 -0
- package/dist/cjs/functions/transferSubname.js +2 -2
- package/dist/cjs/functions/wrapName.js +3 -2
- package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +137 -0
- package/dist/cjs/generated/factories/NameWrapper__factory.js +63 -39
- package/dist/cjs/generated/factories/PublicResolver__factory.js +69 -14
- package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +13 -0
- package/dist/cjs/index.js +6 -3
- package/dist/cjs/utils/fuses.js +43 -1
- package/dist/cjs/utils/recordHelpers.js +5 -0
- package/dist/cjs/utils/registerHelpers.js +1 -0
- package/dist/cjs/utils/{wrapperExpiry.js → wrapper.js} +11 -4
- package/dist/esm/functions/burnFuses.mjs +2 -42
- package/dist/esm/functions/commitName.mjs +2 -0
- package/dist/esm/functions/createSubname.mjs +2 -1
- package/dist/esm/functions/getHistory.mjs +19 -14
- package/dist/esm/functions/getNames.mjs +1 -1
- package/dist/esm/functions/{getFuses.mjs → getWrapperData.mjs} +8 -9
- package/dist/esm/functions/registerName.mjs +2 -0
- package/dist/esm/functions/renewNames.mjs +23 -3
- package/dist/esm/functions/transferController.mjs +23 -0
- package/dist/esm/functions/transferSubname.mjs +1 -1
- package/dist/esm/functions/wrapName.mjs +2 -1
- package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +137 -0
- package/dist/esm/generated/factories/NameWrapper__factory.mjs +63 -39
- package/dist/esm/generated/factories/PublicResolver__factory.mjs +69 -14
- package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +13 -0
- package/dist/esm/index.mjs +6 -3
- package/dist/esm/utils/fuses.mjs +43 -1
- package/dist/esm/utils/recordHelpers.mjs +5 -0
- package/dist/esm/utils/registerHelpers.mjs +1 -0
- package/dist/esm/utils/{wrapperExpiry.mjs → wrapper.mjs} +9 -2
- package/dist/types/functions/burnFuses.d.ts +1 -11
- package/dist/types/functions/createSubname.d.ts +1 -1
- package/dist/types/functions/{getFuses.d.ts → getWrapperData.d.ts} +1 -1
- package/dist/types/functions/renewNames.d.ts +9 -2
- package/dist/types/functions/transferController.d.ts +6 -0
- package/dist/types/functions/transferSubname.d.ts +1 -1
- package/dist/types/functions/wrapName.d.ts +1 -1
- package/dist/types/generated/ETHRegistrarController.d.ts +42 -1
- package/dist/types/generated/NameWrapper.d.ts +66 -78
- package/dist/types/generated/PublicResolver.d.ts +51 -23
- package/dist/types/generated/ReverseRegistrar.d.ts +11 -0
- package/dist/types/generated/factories/ETHRegistrarController__factory.d.ts +12 -1
- package/dist/types/index.d.ts +5 -2
- package/dist/types/utils/fuses.d.ts +11 -0
- package/dist/types/utils/recordHelpers.d.ts +1 -0
- package/dist/types/utils/registerHelpers.d.ts +1 -0
- package/dist/types/utils/{wrapperExpiry.d.ts → wrapper.d.ts} +2 -1
- package/package.json +5 -4
- package/src/functions/burnFuses.test.ts +4 -4
- package/src/functions/burnFuses.ts +2 -65
- package/src/functions/commitName.ts +3 -0
- package/src/functions/createSubname.ts +2 -1
- package/src/functions/getHistory.ts +19 -13
- package/src/functions/getNames.test.ts +0 -1
- package/src/functions/getNames.ts +1 -1
- package/src/functions/getPrice.test.ts +9 -6
- package/src/functions/getProfile.test.ts +5 -6
- package/src/functions/getResolver.test.ts +2 -2
- package/src/functions/{getFuses.test.ts → getWrapperData.test.ts} +8 -6
- package/src/functions/{getFuses.ts → getWrapperData.ts} +6 -7
- package/src/functions/registerName.ts +3 -0
- package/src/functions/renewNames.test.ts +3 -3
- package/src/functions/renewNames.ts +36 -6
- package/src/functions/transferController.ts +28 -0
- package/src/functions/transferSubname.ts +1 -1
- package/src/functions/wrapName.test.ts +12 -3
- package/src/functions/wrapName.ts +3 -1
- package/src/generated/ETHRegistrarController.ts +104 -0
- package/src/generated/NameWrapper.ts +127 -90
- package/src/generated/PublicResolver.ts +114 -33
- package/src/generated/ReverseRegistrar.ts +20 -0
- package/src/generated/factories/ETHRegistrarController__factory.ts +137 -0
- package/src/generated/factories/NameWrapper__factory.ts +63 -39
- package/src/generated/factories/PublicResolver__factory.ts +69 -14
- package/src/generated/factories/ReverseRegistrar__factory.ts +13 -0
- package/src/index.ts +19 -5
- package/src/utils/fuses.ts +64 -0
- package/src/utils/recordHelpers.ts +7 -0
- package/src/utils/registerHelpers.ts +1 -1
- package/src/utils/{wrapperExpiry.ts → wrapper.ts} +8 -1
|
@@ -7,15 +7,17 @@ export interface PublicResolverInterface extends utils.Interface {
|
|
|
7
7
|
"ABI(bytes32,uint256)": FunctionFragment;
|
|
8
8
|
"addr(bytes32)": FunctionFragment;
|
|
9
9
|
"addr(bytes32,uint256)": FunctionFragment;
|
|
10
|
-
"
|
|
10
|
+
"clearRecords(bytes32)": FunctionFragment;
|
|
11
11
|
"contenthash(bytes32)": FunctionFragment;
|
|
12
12
|
"dnsRecord(bytes32,bytes32,uint16)": FunctionFragment;
|
|
13
13
|
"hasDNSRecords(bytes32,bytes32)": FunctionFragment;
|
|
14
14
|
"interfaceImplementer(bytes32,bytes4)": FunctionFragment;
|
|
15
15
|
"isApprovedForAll(address,address)": FunctionFragment;
|
|
16
16
|
"multicall(bytes[])": FunctionFragment;
|
|
17
|
+
"multicallWithNodeCheck(bytes32,bytes[])": FunctionFragment;
|
|
17
18
|
"name(bytes32)": FunctionFragment;
|
|
18
19
|
"pubkey(bytes32)": FunctionFragment;
|
|
20
|
+
"recordVersions(bytes32)": FunctionFragment;
|
|
19
21
|
"setABI(bytes32,uint256,bytes)": FunctionFragment;
|
|
20
22
|
"setAddr(bytes32,uint256,bytes)": FunctionFragment;
|
|
21
23
|
"setAddr(bytes32,address)": FunctionFragment;
|
|
@@ -31,11 +33,11 @@ export interface PublicResolverInterface extends utils.Interface {
|
|
|
31
33
|
"text(bytes32,string)": FunctionFragment;
|
|
32
34
|
"zonehash(bytes32)": FunctionFragment;
|
|
33
35
|
};
|
|
34
|
-
getFunction(nameOrSignatureOrTopic: "ABI" | "addr(bytes32)" | "addr(bytes32,uint256)" | "
|
|
36
|
+
getFunction(nameOrSignatureOrTopic: "ABI" | "addr(bytes32)" | "addr(bytes32,uint256)" | "clearRecords" | "contenthash" | "dnsRecord" | "hasDNSRecords" | "interfaceImplementer" | "isApprovedForAll" | "multicall" | "multicallWithNodeCheck" | "name" | "pubkey" | "recordVersions" | "setABI" | "setAddr(bytes32,uint256,bytes)" | "setAddr(bytes32,address)" | "setApprovalForAll" | "setContenthash" | "setDNSRecords" | "setInterface" | "setName" | "setPubkey" | "setText" | "setZonehash" | "supportsInterface" | "text" | "zonehash"): FunctionFragment;
|
|
35
37
|
encodeFunctionData(functionFragment: "ABI", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
|
|
36
38
|
encodeFunctionData(functionFragment: "addr(bytes32)", values: [PromiseOrValue<BytesLike>]): string;
|
|
37
39
|
encodeFunctionData(functionFragment: "addr(bytes32,uint256)", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
|
|
38
|
-
encodeFunctionData(functionFragment: "
|
|
40
|
+
encodeFunctionData(functionFragment: "clearRecords", values: [PromiseOrValue<BytesLike>]): string;
|
|
39
41
|
encodeFunctionData(functionFragment: "contenthash", values: [PromiseOrValue<BytesLike>]): string;
|
|
40
42
|
encodeFunctionData(functionFragment: "dnsRecord", values: [
|
|
41
43
|
PromiseOrValue<BytesLike>,
|
|
@@ -46,8 +48,10 @@ export interface PublicResolverInterface extends utils.Interface {
|
|
|
46
48
|
encodeFunctionData(functionFragment: "interfaceImplementer", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
|
|
47
49
|
encodeFunctionData(functionFragment: "isApprovedForAll", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
|
|
48
50
|
encodeFunctionData(functionFragment: "multicall", values: [PromiseOrValue<BytesLike>[]]): string;
|
|
51
|
+
encodeFunctionData(functionFragment: "multicallWithNodeCheck", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>[]]): string;
|
|
49
52
|
encodeFunctionData(functionFragment: "name", values: [PromiseOrValue<BytesLike>]): string;
|
|
50
53
|
encodeFunctionData(functionFragment: "pubkey", values: [PromiseOrValue<BytesLike>]): string;
|
|
54
|
+
encodeFunctionData(functionFragment: "recordVersions", values: [PromiseOrValue<BytesLike>]): string;
|
|
51
55
|
encodeFunctionData(functionFragment: "setABI", values: [
|
|
52
56
|
PromiseOrValue<BytesLike>,
|
|
53
57
|
PromiseOrValue<BigNumberish>,
|
|
@@ -85,15 +89,17 @@ export interface PublicResolverInterface extends utils.Interface {
|
|
|
85
89
|
decodeFunctionResult(functionFragment: "ABI", data: BytesLike): Result;
|
|
86
90
|
decodeFunctionResult(functionFragment: "addr(bytes32)", data: BytesLike): Result;
|
|
87
91
|
decodeFunctionResult(functionFragment: "addr(bytes32,uint256)", data: BytesLike): Result;
|
|
88
|
-
decodeFunctionResult(functionFragment: "
|
|
92
|
+
decodeFunctionResult(functionFragment: "clearRecords", data: BytesLike): Result;
|
|
89
93
|
decodeFunctionResult(functionFragment: "contenthash", data: BytesLike): Result;
|
|
90
94
|
decodeFunctionResult(functionFragment: "dnsRecord", data: BytesLike): Result;
|
|
91
95
|
decodeFunctionResult(functionFragment: "hasDNSRecords", data: BytesLike): Result;
|
|
92
96
|
decodeFunctionResult(functionFragment: "interfaceImplementer", data: BytesLike): Result;
|
|
93
97
|
decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result;
|
|
94
98
|
decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
|
|
99
|
+
decodeFunctionResult(functionFragment: "multicallWithNodeCheck", data: BytesLike): Result;
|
|
95
100
|
decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
|
|
96
101
|
decodeFunctionResult(functionFragment: "pubkey", data: BytesLike): Result;
|
|
102
|
+
decodeFunctionResult(functionFragment: "recordVersions", data: BytesLike): Result;
|
|
97
103
|
decodeFunctionResult(functionFragment: "setABI", data: BytesLike): Result;
|
|
98
104
|
decodeFunctionResult(functionFragment: "setAddr(bytes32,uint256,bytes)", data: BytesLike): Result;
|
|
99
105
|
decodeFunctionResult(functionFragment: "setAddr(bytes32,address)", data: BytesLike): Result;
|
|
@@ -116,12 +122,12 @@ export interface PublicResolverInterface extends utils.Interface {
|
|
|
116
122
|
"ContenthashChanged(bytes32,bytes)": EventFragment;
|
|
117
123
|
"DNSRecordChanged(bytes32,bytes,uint16,bytes)": EventFragment;
|
|
118
124
|
"DNSRecordDeleted(bytes32,bytes,uint16)": EventFragment;
|
|
119
|
-
"DNSZoneCleared(bytes32)": EventFragment;
|
|
120
125
|
"DNSZonehashChanged(bytes32,bytes,bytes)": EventFragment;
|
|
121
126
|
"InterfaceChanged(bytes32,bytes4,address)": EventFragment;
|
|
122
127
|
"NameChanged(bytes32,string)": EventFragment;
|
|
123
128
|
"PubkeyChanged(bytes32,bytes32,bytes32)": EventFragment;
|
|
124
|
-
"TextChanged(bytes32,string,string)": EventFragment;
|
|
129
|
+
"TextChanged(bytes32,string,string,string)": EventFragment;
|
|
130
|
+
"VersionChanged(bytes32,uint64)": EventFragment;
|
|
125
131
|
};
|
|
126
132
|
getEvent(nameOrSignatureOrTopic: "ABIChanged"): EventFragment;
|
|
127
133
|
getEvent(nameOrSignatureOrTopic: "AddrChanged"): EventFragment;
|
|
@@ -130,12 +136,12 @@ export interface PublicResolverInterface extends utils.Interface {
|
|
|
130
136
|
getEvent(nameOrSignatureOrTopic: "ContenthashChanged"): EventFragment;
|
|
131
137
|
getEvent(nameOrSignatureOrTopic: "DNSRecordChanged"): EventFragment;
|
|
132
138
|
getEvent(nameOrSignatureOrTopic: "DNSRecordDeleted"): EventFragment;
|
|
133
|
-
getEvent(nameOrSignatureOrTopic: "DNSZoneCleared"): EventFragment;
|
|
134
139
|
getEvent(nameOrSignatureOrTopic: "DNSZonehashChanged"): EventFragment;
|
|
135
140
|
getEvent(nameOrSignatureOrTopic: "InterfaceChanged"): EventFragment;
|
|
136
141
|
getEvent(nameOrSignatureOrTopic: "NameChanged"): EventFragment;
|
|
137
142
|
getEvent(nameOrSignatureOrTopic: "PubkeyChanged"): EventFragment;
|
|
138
143
|
getEvent(nameOrSignatureOrTopic: "TextChanged"): EventFragment;
|
|
144
|
+
getEvent(nameOrSignatureOrTopic: "VersionChanged"): EventFragment;
|
|
139
145
|
}
|
|
140
146
|
export interface ABIChangedEventObject {
|
|
141
147
|
node: string;
|
|
@@ -210,13 +216,6 @@ export declare type DNSRecordDeletedEvent = TypedEvent<[
|
|
|
210
216
|
number
|
|
211
217
|
], DNSRecordDeletedEventObject>;
|
|
212
218
|
export declare type DNSRecordDeletedEventFilter = TypedEventFilter<DNSRecordDeletedEvent>;
|
|
213
|
-
export interface DNSZoneClearedEventObject {
|
|
214
|
-
node: string;
|
|
215
|
-
}
|
|
216
|
-
export declare type DNSZoneClearedEvent = TypedEvent<[
|
|
217
|
-
string
|
|
218
|
-
], DNSZoneClearedEventObject>;
|
|
219
|
-
export declare type DNSZoneClearedEventFilter = TypedEventFilter<DNSZoneClearedEvent>;
|
|
220
219
|
export interface DNSZonehashChangedEventObject {
|
|
221
220
|
node: string;
|
|
222
221
|
lastzonehash: string;
|
|
@@ -263,13 +262,24 @@ export interface TextChangedEventObject {
|
|
|
263
262
|
node: string;
|
|
264
263
|
indexedKey: string;
|
|
265
264
|
key: string;
|
|
265
|
+
value: string;
|
|
266
266
|
}
|
|
267
267
|
export declare type TextChangedEvent = TypedEvent<[
|
|
268
|
+
string,
|
|
268
269
|
string,
|
|
269
270
|
string,
|
|
270
271
|
string
|
|
271
272
|
], TextChangedEventObject>;
|
|
272
273
|
export declare type TextChangedEventFilter = TypedEventFilter<TextChangedEvent>;
|
|
274
|
+
export interface VersionChangedEventObject {
|
|
275
|
+
node: string;
|
|
276
|
+
newVersion: BigNumber;
|
|
277
|
+
}
|
|
278
|
+
export declare type VersionChangedEvent = TypedEvent<[
|
|
279
|
+
string,
|
|
280
|
+
BigNumber
|
|
281
|
+
], VersionChangedEventObject>;
|
|
282
|
+
export declare type VersionChangedEventFilter = TypedEventFilter<VersionChangedEvent>;
|
|
273
283
|
export interface PublicResolver extends BaseContract {
|
|
274
284
|
connect(signerOrProvider: Signer | Provider | string): this;
|
|
275
285
|
attach(addressOrName: string): this;
|
|
@@ -288,7 +298,7 @@ export interface PublicResolver extends BaseContract {
|
|
|
288
298
|
ABI(node: PromiseOrValue<BytesLike>, contentTypes: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string]>;
|
|
289
299
|
"addr(bytes32)"(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
|
|
290
300
|
"addr(bytes32,uint256)"(node: PromiseOrValue<BytesLike>, coinType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
|
|
291
|
-
|
|
301
|
+
clearRecords(node: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
292
302
|
from?: PromiseOrValue<string>;
|
|
293
303
|
}): Promise<ContractTransaction>;
|
|
294
304
|
contenthash(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
|
|
@@ -299,11 +309,15 @@ export interface PublicResolver extends BaseContract {
|
|
|
299
309
|
multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
300
310
|
from?: PromiseOrValue<string>;
|
|
301
311
|
}): Promise<ContractTransaction>;
|
|
312
|
+
multicallWithNodeCheck(nodehash: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
313
|
+
from?: PromiseOrValue<string>;
|
|
314
|
+
}): Promise<ContractTransaction>;
|
|
302
315
|
name(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
|
|
303
316
|
pubkey(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string] & {
|
|
304
317
|
x: string;
|
|
305
318
|
y: string;
|
|
306
319
|
}>;
|
|
320
|
+
recordVersions(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
307
321
|
setABI(node: PromiseOrValue<BytesLike>, contentType: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
308
322
|
from?: PromiseOrValue<string>;
|
|
309
323
|
}): Promise<ContractTransaction>;
|
|
@@ -344,7 +358,7 @@ export interface PublicResolver extends BaseContract {
|
|
|
344
358
|
ABI(node: PromiseOrValue<BytesLike>, contentTypes: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string]>;
|
|
345
359
|
"addr(bytes32)"(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
|
|
346
360
|
"addr(bytes32,uint256)"(node: PromiseOrValue<BytesLike>, coinType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
|
|
347
|
-
|
|
361
|
+
clearRecords(node: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
348
362
|
from?: PromiseOrValue<string>;
|
|
349
363
|
}): Promise<ContractTransaction>;
|
|
350
364
|
contenthash(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
|
|
@@ -355,11 +369,15 @@ export interface PublicResolver extends BaseContract {
|
|
|
355
369
|
multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
356
370
|
from?: PromiseOrValue<string>;
|
|
357
371
|
}): Promise<ContractTransaction>;
|
|
372
|
+
multicallWithNodeCheck(nodehash: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
373
|
+
from?: PromiseOrValue<string>;
|
|
374
|
+
}): Promise<ContractTransaction>;
|
|
358
375
|
name(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
|
|
359
376
|
pubkey(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string] & {
|
|
360
377
|
x: string;
|
|
361
378
|
y: string;
|
|
362
379
|
}>;
|
|
380
|
+
recordVersions(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
363
381
|
setABI(node: PromiseOrValue<BytesLike>, contentType: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
364
382
|
from?: PromiseOrValue<string>;
|
|
365
383
|
}): Promise<ContractTransaction>;
|
|
@@ -400,18 +418,20 @@ export interface PublicResolver extends BaseContract {
|
|
|
400
418
|
ABI(node: PromiseOrValue<BytesLike>, contentTypes: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, string]>;
|
|
401
419
|
"addr(bytes32)"(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
|
|
402
420
|
"addr(bytes32,uint256)"(node: PromiseOrValue<BytesLike>, coinType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
|
|
403
|
-
|
|
421
|
+
clearRecords(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
|
|
404
422
|
contenthash(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
|
|
405
423
|
dnsRecord(node: PromiseOrValue<BytesLike>, name: PromiseOrValue<BytesLike>, resource: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
|
|
406
424
|
hasDNSRecords(node: PromiseOrValue<BytesLike>, name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
|
|
407
425
|
interfaceImplementer(node: PromiseOrValue<BytesLike>, interfaceID: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
|
|
408
426
|
isApprovedForAll(account: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
|
|
409
427
|
multicall(data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<string[]>;
|
|
428
|
+
multicallWithNodeCheck(nodehash: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<string[]>;
|
|
410
429
|
name(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
|
|
411
430
|
pubkey(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string] & {
|
|
412
431
|
x: string;
|
|
413
432
|
y: string;
|
|
414
433
|
}>;
|
|
434
|
+
recordVersions(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
415
435
|
setABI(node: PromiseOrValue<BytesLike>, contentType: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
|
|
416
436
|
"setAddr(bytes32,uint256,bytes)"(node: PromiseOrValue<BytesLike>, coinType: PromiseOrValue<BigNumberish>, a: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
|
|
417
437
|
"setAddr(bytes32,address)"(node: PromiseOrValue<BytesLike>, a: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
|
|
@@ -442,8 +462,6 @@ export interface PublicResolver extends BaseContract {
|
|
|
442
462
|
DNSRecordChanged(node?: PromiseOrValue<BytesLike> | null, name?: null, resource?: null, record?: null): DNSRecordChangedEventFilter;
|
|
443
463
|
"DNSRecordDeleted(bytes32,bytes,uint16)"(node?: PromiseOrValue<BytesLike> | null, name?: null, resource?: null): DNSRecordDeletedEventFilter;
|
|
444
464
|
DNSRecordDeleted(node?: PromiseOrValue<BytesLike> | null, name?: null, resource?: null): DNSRecordDeletedEventFilter;
|
|
445
|
-
"DNSZoneCleared(bytes32)"(node?: PromiseOrValue<BytesLike> | null): DNSZoneClearedEventFilter;
|
|
446
|
-
DNSZoneCleared(node?: PromiseOrValue<BytesLike> | null): DNSZoneClearedEventFilter;
|
|
447
465
|
"DNSZonehashChanged(bytes32,bytes,bytes)"(node?: PromiseOrValue<BytesLike> | null, lastzonehash?: null, zonehash?: null): DNSZonehashChangedEventFilter;
|
|
448
466
|
DNSZonehashChanged(node?: PromiseOrValue<BytesLike> | null, lastzonehash?: null, zonehash?: null): DNSZonehashChangedEventFilter;
|
|
449
467
|
"InterfaceChanged(bytes32,bytes4,address)"(node?: PromiseOrValue<BytesLike> | null, interfaceID?: PromiseOrValue<BytesLike> | null, implementer?: null): InterfaceChangedEventFilter;
|
|
@@ -452,14 +470,16 @@ export interface PublicResolver extends BaseContract {
|
|
|
452
470
|
NameChanged(node?: PromiseOrValue<BytesLike> | null, name?: null): NameChangedEventFilter;
|
|
453
471
|
"PubkeyChanged(bytes32,bytes32,bytes32)"(node?: PromiseOrValue<BytesLike> | null, x?: null, y?: null): PubkeyChangedEventFilter;
|
|
454
472
|
PubkeyChanged(node?: PromiseOrValue<BytesLike> | null, x?: null, y?: null): PubkeyChangedEventFilter;
|
|
455
|
-
"TextChanged(bytes32,string,string)"(node?: PromiseOrValue<BytesLike> | null, indexedKey?: PromiseOrValue<string> | null, key?: null): TextChangedEventFilter;
|
|
456
|
-
TextChanged(node?: PromiseOrValue<BytesLike> | null, indexedKey?: PromiseOrValue<string> | null, key?: null): TextChangedEventFilter;
|
|
473
|
+
"TextChanged(bytes32,string,string,string)"(node?: PromiseOrValue<BytesLike> | null, indexedKey?: PromiseOrValue<string> | null, key?: null, value?: null): TextChangedEventFilter;
|
|
474
|
+
TextChanged(node?: PromiseOrValue<BytesLike> | null, indexedKey?: PromiseOrValue<string> | null, key?: null, value?: null): TextChangedEventFilter;
|
|
475
|
+
"VersionChanged(bytes32,uint64)"(node?: PromiseOrValue<BytesLike> | null, newVersion?: null): VersionChangedEventFilter;
|
|
476
|
+
VersionChanged(node?: PromiseOrValue<BytesLike> | null, newVersion?: null): VersionChangedEventFilter;
|
|
457
477
|
};
|
|
458
478
|
estimateGas: {
|
|
459
479
|
ABI(node: PromiseOrValue<BytesLike>, contentTypes: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
460
480
|
"addr(bytes32)"(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
461
481
|
"addr(bytes32,uint256)"(node: PromiseOrValue<BytesLike>, coinType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
462
|
-
|
|
482
|
+
clearRecords(node: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
463
483
|
from?: PromiseOrValue<string>;
|
|
464
484
|
}): Promise<BigNumber>;
|
|
465
485
|
contenthash(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
@@ -470,8 +490,12 @@ export interface PublicResolver extends BaseContract {
|
|
|
470
490
|
multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
471
491
|
from?: PromiseOrValue<string>;
|
|
472
492
|
}): Promise<BigNumber>;
|
|
493
|
+
multicallWithNodeCheck(nodehash: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
494
|
+
from?: PromiseOrValue<string>;
|
|
495
|
+
}): Promise<BigNumber>;
|
|
473
496
|
name(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
474
497
|
pubkey(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
498
|
+
recordVersions(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
|
|
475
499
|
setABI(node: PromiseOrValue<BytesLike>, contentType: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
476
500
|
from?: PromiseOrValue<string>;
|
|
477
501
|
}): Promise<BigNumber>;
|
|
@@ -513,7 +537,7 @@ export interface PublicResolver extends BaseContract {
|
|
|
513
537
|
ABI(node: PromiseOrValue<BytesLike>, contentTypes: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
514
538
|
"addr(bytes32)"(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
515
539
|
"addr(bytes32,uint256)"(node: PromiseOrValue<BytesLike>, coinType: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
516
|
-
|
|
540
|
+
clearRecords(node: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
517
541
|
from?: PromiseOrValue<string>;
|
|
518
542
|
}): Promise<PopulatedTransaction>;
|
|
519
543
|
contenthash(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
@@ -524,8 +548,12 @@ export interface PublicResolver extends BaseContract {
|
|
|
524
548
|
multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
525
549
|
from?: PromiseOrValue<string>;
|
|
526
550
|
}): Promise<PopulatedTransaction>;
|
|
551
|
+
multicallWithNodeCheck(nodehash: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
|
|
552
|
+
from?: PromiseOrValue<string>;
|
|
553
|
+
}): Promise<PopulatedTransaction>;
|
|
527
554
|
name(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
528
555
|
pubkey(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
556
|
+
recordVersions(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
529
557
|
setABI(node: PromiseOrValue<BytesLike>, contentType: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
|
|
530
558
|
from?: PromiseOrValue<string>;
|
|
531
559
|
}): Promise<PopulatedTransaction>;
|
|
@@ -59,10 +59,12 @@ export interface ReverseRegistrarInterface extends utils.Interface {
|
|
|
59
59
|
decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
|
|
60
60
|
events: {
|
|
61
61
|
"ControllerChanged(address,bool)": EventFragment;
|
|
62
|
+
"DefaultResolverChanged(address)": EventFragment;
|
|
62
63
|
"OwnershipTransferred(address,address)": EventFragment;
|
|
63
64
|
"ReverseClaimed(address,bytes32)": EventFragment;
|
|
64
65
|
};
|
|
65
66
|
getEvent(nameOrSignatureOrTopic: "ControllerChanged"): EventFragment;
|
|
67
|
+
getEvent(nameOrSignatureOrTopic: "DefaultResolverChanged"): EventFragment;
|
|
66
68
|
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
|
|
67
69
|
getEvent(nameOrSignatureOrTopic: "ReverseClaimed"): EventFragment;
|
|
68
70
|
}
|
|
@@ -75,6 +77,13 @@ export declare type ControllerChangedEvent = TypedEvent<[
|
|
|
75
77
|
boolean
|
|
76
78
|
], ControllerChangedEventObject>;
|
|
77
79
|
export declare type ControllerChangedEventFilter = TypedEventFilter<ControllerChangedEvent>;
|
|
80
|
+
export interface DefaultResolverChangedEventObject {
|
|
81
|
+
resolver: string;
|
|
82
|
+
}
|
|
83
|
+
export declare type DefaultResolverChangedEvent = TypedEvent<[
|
|
84
|
+
string
|
|
85
|
+
], DefaultResolverChangedEventObject>;
|
|
86
|
+
export declare type DefaultResolverChangedEventFilter = TypedEventFilter<DefaultResolverChangedEvent>;
|
|
78
87
|
export interface OwnershipTransferredEventObject {
|
|
79
88
|
previousOwner: string;
|
|
80
89
|
newOwner: string;
|
|
@@ -192,6 +201,8 @@ export interface ReverseRegistrar extends BaseContract {
|
|
|
192
201
|
filters: {
|
|
193
202
|
"ControllerChanged(address,bool)"(controller?: PromiseOrValue<string> | null, enabled?: null): ControllerChangedEventFilter;
|
|
194
203
|
ControllerChanged(controller?: PromiseOrValue<string> | null, enabled?: null): ControllerChangedEventFilter;
|
|
204
|
+
"DefaultResolverChanged(address)"(resolver?: PromiseOrValue<string> | null): DefaultResolverChangedEventFilter;
|
|
205
|
+
DefaultResolverChanged(resolver?: PromiseOrValue<string> | null): DefaultResolverChangedEventFilter;
|
|
195
206
|
"OwnershipTransferred(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
|
|
196
207
|
OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
|
|
197
208
|
"ReverseClaimed(address,bytes32)"(addr?: PromiseOrValue<string> | null, node?: PromiseOrValue<BytesLike> | null): ReverseClaimedEventFilter;
|
|
@@ -10,8 +10,19 @@ export declare class ETHRegistrarController__factory {
|
|
|
10
10
|
}[];
|
|
11
11
|
stateMutability: string;
|
|
12
12
|
type: string;
|
|
13
|
-
anonymous?: undefined;
|
|
14
13
|
name?: undefined;
|
|
14
|
+
anonymous?: undefined;
|
|
15
|
+
outputs?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
inputs: {
|
|
18
|
+
internalType: string;
|
|
19
|
+
name: string;
|
|
20
|
+
type: string;
|
|
21
|
+
}[];
|
|
22
|
+
name: string;
|
|
23
|
+
type: string;
|
|
24
|
+
stateMutability?: undefined;
|
|
25
|
+
anonymous?: undefined;
|
|
15
26
|
outputs?: undefined;
|
|
16
27
|
} | {
|
|
17
28
|
anonymous: boolean;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,12 +8,13 @@ import type commitName from './functions/commitName';
|
|
|
8
8
|
import type createSubname from './functions/createSubname';
|
|
9
9
|
import type deleteSubname from './functions/deleteSubname';
|
|
10
10
|
import type registerName from './functions/registerName';
|
|
11
|
-
import type renewNames from './functions/renewNames';
|
|
11
|
+
import type { default as renewNames, renewNameWithData } from './functions/renewNames';
|
|
12
12
|
import type setName from './functions/setName';
|
|
13
13
|
import type setRecord from './functions/setRecord';
|
|
14
14
|
import type setRecords from './functions/setRecords';
|
|
15
15
|
import type setResolver from './functions/setResolver';
|
|
16
16
|
import type transferName from './functions/transferName';
|
|
17
|
+
import type transferController from './functions/transferController';
|
|
17
18
|
import type transferSubname from './functions/transferSubname';
|
|
18
19
|
import type unwrapName from './functions/unwrapName';
|
|
19
20
|
import type wrapName from './functions/wrapName';
|
|
@@ -225,7 +226,7 @@ export declare class ENS {
|
|
|
225
226
|
}>;
|
|
226
227
|
decode: ({ contracts }: ENSArgs<"contracts">, data: string) => Promise<any>;
|
|
227
228
|
}>;
|
|
228
|
-
|
|
229
|
+
getWrapperData: GeneratedRawFunction<{
|
|
229
230
|
raw: ({ contracts }: ENSArgs<"contracts">, name: string) => Promise<{
|
|
230
231
|
to: string;
|
|
231
232
|
data: string;
|
|
@@ -443,6 +444,7 @@ export declare class ENS {
|
|
|
443
444
|
setRecord: WriteFunction<typeof setRecord>;
|
|
444
445
|
setResolver: WriteFunction<typeof setResolver>;
|
|
445
446
|
transferName: WriteFunction<typeof transferName>;
|
|
447
|
+
transferController: WriteFunction<typeof transferController>;
|
|
446
448
|
wrapName: WriteFunction<typeof wrapName>;
|
|
447
449
|
unwrapName: WriteFunction<typeof unwrapName>;
|
|
448
450
|
burnFuses: WriteFunction<typeof burnFuses>;
|
|
@@ -452,4 +454,5 @@ export declare class ENS {
|
|
|
452
454
|
commitName: WriteFunction<typeof commitName>;
|
|
453
455
|
registerName: WriteFunction<typeof registerName>;
|
|
454
456
|
renewNames: WriteFunction<typeof renewNames>;
|
|
457
|
+
renewNameWithData: WriteFunction<typeof renewNameWithData>;
|
|
455
458
|
}
|
|
@@ -42,4 +42,15 @@ declare type FusesWithoutDuplicates<A, B = never> = A extends FuseArrayPossibili
|
|
|
42
42
|
] : A : [
|
|
43
43
|
];
|
|
44
44
|
export declare type NamedFusesToBurn = FusesWithoutDuplicates<FuseArrayPossibilities>;
|
|
45
|
+
export declare type FusePropsNamedArray = {
|
|
46
|
+
namedFusesToBurn: NamedFusesToBurn;
|
|
47
|
+
};
|
|
48
|
+
export declare type FusePropsUnnamedArray = {
|
|
49
|
+
unnamedFusesToBurn: UnnamedFuseValues[];
|
|
50
|
+
};
|
|
51
|
+
export declare type FusePropsNumber = {
|
|
52
|
+
fuseNumberToBurn: number;
|
|
53
|
+
};
|
|
54
|
+
export declare type FuseProps = (Partial<FusePropsNamedArray> & FusePropsUnnamedArray) | (FusePropsNamedArray & Partial<FusePropsUnnamedArray>) | FusePropsNumber;
|
|
55
|
+
export declare const validateFuses: (fuses: FuseProps) => number;
|
|
45
56
|
export default fullFuseEnum;
|
|
@@ -2,6 +2,7 @@ import { BigNumberish } from 'ethers';
|
|
|
2
2
|
import type { FuseOptions } from '../@types/FuseOptions';
|
|
3
3
|
import type { PublicResolver } from '../generated';
|
|
4
4
|
import { RecordOptions } from './recordHelpers';
|
|
5
|
+
export declare const MAX_INT_64: bigint;
|
|
5
6
|
export declare type BaseRegistrationParams = {
|
|
6
7
|
owner: string;
|
|
7
8
|
duration: number;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BigNumber } from 'ethers';
|
|
2
|
-
import { ENSArgs } from '
|
|
2
|
+
import { ENSArgs } from '../index';
|
|
3
3
|
export declare type Expiry = string | number | Date | BigNumber;
|
|
4
4
|
export declare const MAX_EXPIRY: BigNumber;
|
|
5
5
|
export declare const makeExpiry: ({ getExpiry }: ENSArgs<'getExpiry'>, name: string, expiry?: Expiry) => Promise<BigNumber>;
|
|
6
|
+
export declare const wrappedLabelLengthCheck: (label: string) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ensdomains/ensjs",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.23",
|
|
4
4
|
"description": "ENS javascript library for contract interaction",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.mjs",
|
|
@@ -63,12 +63,13 @@
|
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@ensdomains/buffer": "^0.0.13",
|
|
66
|
-
"@ensdomains/ens-contracts": "^0.0.
|
|
67
|
-
"@ensdomains/ens-test-env": "0.
|
|
66
|
+
"@ensdomains/ens-contracts": "^0.0.14",
|
|
67
|
+
"@ensdomains/ens-test-env": "0.3.0",
|
|
68
68
|
"@ethersproject/abi": "^5.6.0",
|
|
69
69
|
"@ethersproject/providers": "^5.6.2",
|
|
70
70
|
"@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers",
|
|
71
71
|
"@openzeppelin/contracts": "^4.5.0",
|
|
72
|
+
"@openzeppelin/test-helpers": "^0.5.16",
|
|
72
73
|
"@swc/core": "^1.2.162",
|
|
73
74
|
"@swc/jest": "^0.2.20",
|
|
74
75
|
"@typechain/ethers-v5": "^10.1.0",
|
|
@@ -101,7 +102,7 @@
|
|
|
101
102
|
},
|
|
102
103
|
"scripts": {
|
|
103
104
|
"tenv": "ens-test-env -a",
|
|
104
|
-
"denv": "pnpm tenv start -ns -nb",
|
|
105
|
+
"denv": "pnpm tenv start -ns -nb --extra-time 11368000",
|
|
105
106
|
"generate-types": "ts-node scripts/runTypechain.ts",
|
|
106
107
|
"generate-abis": "hardhat export-abi",
|
|
107
108
|
"start": "ts-node --files src/index.test.ts",
|
|
@@ -35,7 +35,7 @@ describe('burnFuses', () => {
|
|
|
35
35
|
await tx.wait()
|
|
36
36
|
|
|
37
37
|
const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
|
|
38
|
-
const [fuses] = await nameWrapper.
|
|
38
|
+
const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
|
|
39
39
|
expect(fuses).toBe(113)
|
|
40
40
|
})
|
|
41
41
|
it('should return a burnFuses transaction from an unnamed fuse array and succeed', async () => {
|
|
@@ -54,7 +54,7 @@ describe('burnFuses', () => {
|
|
|
54
54
|
await tx.wait()
|
|
55
55
|
|
|
56
56
|
const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
|
|
57
|
-
const [fuses] = await nameWrapper.
|
|
57
|
+
const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
|
|
58
58
|
expect(fuses).toBe(961)
|
|
59
59
|
})
|
|
60
60
|
it('should return a burnFuses transaction from both an unnamed and named fuse array and succeed', async () => {
|
|
@@ -71,7 +71,7 @@ describe('burnFuses', () => {
|
|
|
71
71
|
await tx.wait()
|
|
72
72
|
|
|
73
73
|
const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
|
|
74
|
-
const [fuses] = await nameWrapper.
|
|
74
|
+
const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
|
|
75
75
|
expect(fuses).toBe(1009)
|
|
76
76
|
})
|
|
77
77
|
it('should throw an error when trying to burn a named fuse in an unnamed fuse array', async () => {
|
|
@@ -107,7 +107,7 @@ describe('burnFuses', () => {
|
|
|
107
107
|
await tx.wait()
|
|
108
108
|
|
|
109
109
|
const nameWrapper = await ensInstance.contracts!.getNameWrapper()!
|
|
110
|
-
const [fuses] = await nameWrapper.
|
|
110
|
+
const [, fuses] = await nameWrapper.getData(namehash('wrapped.eth'))
|
|
111
111
|
expect(fuses).toBe(113)
|
|
112
112
|
})
|
|
113
113
|
it('should throw an error if the number is too high', async () => {
|
|
@@ -1,76 +1,13 @@
|
|
|
1
1
|
import { ENSArgs } from '..'
|
|
2
|
-
import {
|
|
3
|
-
fuseEnum,
|
|
4
|
-
NamedFusesToBurn,
|
|
5
|
-
unnamedFuses,
|
|
6
|
-
UnnamedFuseValues,
|
|
7
|
-
} from '../utils/fuses'
|
|
2
|
+
import { FuseProps, validateFuses } from '../utils/fuses'
|
|
8
3
|
import { namehash } from '../utils/normalise'
|
|
9
4
|
|
|
10
|
-
export type FusePropsNamedArray = {
|
|
11
|
-
namedFusesToBurn: NamedFusesToBurn
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export type FusePropsUnnamedArray = {
|
|
15
|
-
unnamedFusesToBurn: UnnamedFuseValues[]
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export type FusePropsNumber = {
|
|
19
|
-
fuseNumberToBurn: number
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export type FuseProps =
|
|
23
|
-
| (Partial<FusePropsNamedArray> & FusePropsUnnamedArray)
|
|
24
|
-
| (FusePropsNamedArray & Partial<FusePropsUnnamedArray>)
|
|
25
|
-
| FusePropsNumber
|
|
26
|
-
|
|
27
5
|
export default async function (
|
|
28
6
|
{ contracts, signer }: ENSArgs<'contracts' | 'signer'>,
|
|
29
7
|
name: string,
|
|
30
8
|
props: FuseProps,
|
|
31
9
|
) {
|
|
32
|
-
const
|
|
33
|
-
const hasNamedArray = 'namedFusesToBurn' in props
|
|
34
|
-
const hasUnnamedArray = 'unnamedFusesToBurn' in props
|
|
35
|
-
|
|
36
|
-
let encodedFuses: number = 0
|
|
37
|
-
|
|
38
|
-
if (isNumber) {
|
|
39
|
-
if (props.fuseNumberToBurn > 2 ** 32 || props.fuseNumberToBurn < 1) {
|
|
40
|
-
throw new Error(
|
|
41
|
-
`Fuse number must be limited to uint32, ${
|
|
42
|
-
props.fuseNumberToBurn
|
|
43
|
-
} was too ${props.fuseNumberToBurn < 1 ? 'low' : 'high'}.`,
|
|
44
|
-
)
|
|
45
|
-
} else if (props.fuseNumberToBurn % 1 !== 0) {
|
|
46
|
-
throw new Error(
|
|
47
|
-
`Fuse number must be an integer, ${props.fuseNumberToBurn} was not.`,
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
encodedFuses = props.fuseNumberToBurn
|
|
51
|
-
} else {
|
|
52
|
-
if (!hasNamedArray && !hasUnnamedArray) {
|
|
53
|
-
throw new Error('Please provide fuses to burn')
|
|
54
|
-
}
|
|
55
|
-
if (hasNamedArray) {
|
|
56
|
-
for (const fuse of props.namedFusesToBurn!) {
|
|
57
|
-
if (!(fuse in fuseEnum)) {
|
|
58
|
-
throw new Error(`${fuse} is not a valid named fuse.`)
|
|
59
|
-
}
|
|
60
|
-
encodedFuses |= fuseEnum[fuse]
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (hasUnnamedArray) {
|
|
64
|
-
for (const fuse of props.unnamedFusesToBurn!) {
|
|
65
|
-
if (!unnamedFuses.includes(fuse)) {
|
|
66
|
-
throw new Error(
|
|
67
|
-
`${fuse} is not a valid unnamed fuse. If you are trying to burn a named fuse, use the namedFusesToBurn property.`,
|
|
68
|
-
)
|
|
69
|
-
}
|
|
70
|
-
encodedFuses |= fuse
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
10
|
+
const encodedFuses = validateFuses(props)
|
|
74
11
|
|
|
75
12
|
const nameWrapper = (await contracts!.getNameWrapper()!).connect(signer)
|
|
76
13
|
const hash = namehash(name)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ENSArgs } from '..'
|
|
2
2
|
import { CommitmentParams, makeCommitment } from '../utils/registerHelpers'
|
|
3
|
+
import { wrappedLabelLengthCheck } from '../utils/wrapper'
|
|
3
4
|
|
|
4
5
|
type Params = Omit<CommitmentParams, 'resolver' | 'name'> & {
|
|
5
6
|
resolverAddress?: string
|
|
@@ -14,6 +15,8 @@ export default async function (
|
|
|
14
15
|
if (labels.length !== 2 || labels[1] !== 'eth')
|
|
15
16
|
throw new Error('Currently only .eth TLD registrations are supported')
|
|
16
17
|
|
|
18
|
+
wrappedLabelLengthCheck(labels[0])
|
|
19
|
+
|
|
17
20
|
const controller = await contracts!.getEthRegistrarController()
|
|
18
21
|
const resolver = await contracts!.getPublicResolver(
|
|
19
22
|
undefined,
|
|
@@ -3,7 +3,7 @@ import { ENSArgs } from '..'
|
|
|
3
3
|
import { FuseOptions } from '../@types/FuseOptions'
|
|
4
4
|
import generateFuseInput from '../utils/generateFuseInput'
|
|
5
5
|
import { namehash } from '../utils/normalise'
|
|
6
|
-
import { Expiry, makeExpiry } from '../utils/
|
|
6
|
+
import { Expiry, makeExpiry, wrappedLabelLengthCheck } from '../utils/wrapper'
|
|
7
7
|
|
|
8
8
|
type BaseArgs = {
|
|
9
9
|
owner: string
|
|
@@ -59,6 +59,7 @@ export default async function (
|
|
|
59
59
|
)
|
|
60
60
|
}
|
|
61
61
|
case 'nameWrapper': {
|
|
62
|
+
wrappedLabelLengthCheck(label)
|
|
62
63
|
const nameWrapper = (await contracts!.getNameWrapper()!).connect(signer)
|
|
63
64
|
const expiry: BigNumber = await makeExpiry(
|
|
64
65
|
{ getExpiry },
|