@ensdomains/ensjs 3.0.0-alpha.26 → 3.0.0-alpha.28

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 (56) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/contracts/getContractAddress.js +1 -1
  3. package/dist/cjs/functions/batchWrappers.js +41 -8
  4. package/dist/cjs/functions/getName.js +2 -2
  5. package/dist/cjs/functions/getNames.js +89 -1
  6. package/dist/cjs/functions/getOwner.js +4 -4
  7. package/dist/cjs/functions/getProfile.js +117 -87
  8. package/dist/cjs/functions/getWrapperData.js +1 -11
  9. package/dist/cjs/generated/factories/NameWrapper__factory.js +13 -0
  10. package/dist/cjs/generated/factories/UniversalResolver__factory.js +277 -0
  11. package/dist/cjs/utils/ccip.js +128 -0
  12. package/dist/cjs/utils/fuses.js +17 -0
  13. package/dist/cjs/utils/singleCall.js +1 -1
  14. package/dist/esm/contracts/getContractAddress.mjs +1 -1
  15. package/dist/esm/functions/batchWrappers.mjs +35 -8
  16. package/dist/esm/functions/getName.mjs +2 -2
  17. package/dist/esm/functions/getNames.mjs +89 -1
  18. package/dist/esm/functions/getOwner.mjs +4 -4
  19. package/dist/esm/functions/getProfile.mjs +117 -87
  20. package/dist/esm/functions/getWrapperData.mjs +2 -12
  21. package/dist/esm/generated/factories/NameWrapper__factory.mjs +13 -0
  22. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +277 -0
  23. package/dist/esm/utils/ccip.mjs +114 -0
  24. package/dist/esm/utils/fuses.mjs +17 -0
  25. package/dist/esm/utils/singleCall.mjs +1 -1
  26. package/dist/types/functions/batchWrappers.d.ts +58 -1
  27. package/dist/types/functions/getNames.d.ts +9 -3
  28. package/dist/types/functions/getProfile.d.ts +6 -0
  29. package/dist/types/functions/getWrapperData.d.ts +1 -2
  30. package/dist/types/generated/NameWrapper.d.ts +9 -1
  31. package/dist/types/generated/UniversalResolver.d.ts +123 -21
  32. package/dist/types/index.d.ts +68 -3
  33. package/dist/types/utils/ccip.d.ts +3 -0
  34. package/dist/types/utils/fuses.d.ts +2 -0
  35. package/package.json +3 -3
  36. package/src/contracts/getContractAddress.ts +1 -1
  37. package/src/functions/batchWrappers.ts +40 -9
  38. package/src/functions/getName.ts +2 -2
  39. package/src/functions/getNames.test.ts +27 -0
  40. package/src/functions/getNames.ts +101 -3
  41. package/src/functions/getOwner.ts +4 -2
  42. package/src/functions/getProfile-ccip.test.ts +29 -0
  43. package/src/functions/getProfile.test.ts +1 -1
  44. package/src/functions/getProfile.ts +160 -100
  45. package/src/functions/getWrapperData.ts +3 -15
  46. package/src/functions/setName.test.ts +6 -2
  47. package/src/functions/setRecord.test.ts +3 -3
  48. package/src/functions/setRecords.test.ts +2 -2
  49. package/src/generated/NameWrapper.ts +14 -0
  50. package/src/generated/UniversalResolver.ts +382 -19
  51. package/src/generated/factories/NameWrapper__factory.ts +13 -0
  52. package/src/generated/factories/UniversalResolver__factory.ts +277 -0
  53. package/src/index.ts +1 -1
  54. package/src/utils/ccip.ts +148 -0
  55. package/src/utils/fuses.ts +21 -0
  56. package/src/utils/singleCall.ts +1 -1
@@ -1,28 +1,66 @@
1
- import type { BaseContract, BigNumber, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from "ethers";
1
+ import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
2
2
  import type { FunctionFragment, Result } from "@ethersproject/abi";
3
3
  import type { Listener, Provider } from "@ethersproject/providers";
4
4
  import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common";
5
5
  export interface UniversalResolverInterface extends utils.Interface {
6
6
  functions: {
7
+ "_resolveSingle(bytes,bytes,string[],bytes4,bytes)": FunctionFragment;
8
+ "batchGatewayURLs(uint256)": FunctionFragment;
7
9
  "findResolver(bytes)": FunctionFragment;
8
10
  "registry()": FunctionFragment;
11
+ "resolve(bytes,bytes,string[])": FunctionFragment;
12
+ "resolve(bytes,bytes[])": FunctionFragment;
13
+ "resolve(bytes,bytes[],string[])": FunctionFragment;
9
14
  "resolve(bytes,bytes)": FunctionFragment;
10
15
  "resolveCallback(bytes,bytes)": FunctionFragment;
16
+ "resolveSingleCallback(bytes,bytes)": FunctionFragment;
17
+ "reverse(bytes,string[])": FunctionFragment;
11
18
  "reverse(bytes)": FunctionFragment;
19
+ "reverseCallback(bytes,bytes)": FunctionFragment;
12
20
  "supportsInterface(bytes4)": FunctionFragment;
13
21
  };
14
- getFunction(nameOrSignatureOrTopic: "findResolver" | "registry" | "resolve" | "resolveCallback" | "reverse" | "supportsInterface"): FunctionFragment;
22
+ getFunction(nameOrSignatureOrTopic: "_resolveSingle" | "batchGatewayURLs" | "findResolver" | "registry" | "resolve(bytes,bytes,string[])" | "resolve(bytes,bytes[])" | "resolve(bytes,bytes[],string[])" | "resolve(bytes,bytes)" | "resolveCallback" | "resolveSingleCallback" | "reverse(bytes,string[])" | "reverse(bytes)" | "reverseCallback" | "supportsInterface"): FunctionFragment;
23
+ encodeFunctionData(functionFragment: "_resolveSingle", values: [
24
+ PromiseOrValue<BytesLike>,
25
+ PromiseOrValue<BytesLike>,
26
+ PromiseOrValue<string>[],
27
+ PromiseOrValue<BytesLike>,
28
+ PromiseOrValue<BytesLike>
29
+ ]): string;
30
+ encodeFunctionData(functionFragment: "batchGatewayURLs", values: [PromiseOrValue<BigNumberish>]): string;
15
31
  encodeFunctionData(functionFragment: "findResolver", values: [PromiseOrValue<BytesLike>]): string;
16
32
  encodeFunctionData(functionFragment: "registry", values?: undefined): string;
17
- encodeFunctionData(functionFragment: "resolve", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
33
+ encodeFunctionData(functionFragment: "resolve(bytes,bytes,string[])", values: [
34
+ PromiseOrValue<BytesLike>,
35
+ PromiseOrValue<BytesLike>,
36
+ PromiseOrValue<string>[]
37
+ ]): string;
38
+ encodeFunctionData(functionFragment: "resolve(bytes,bytes[])", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>[]]): string;
39
+ encodeFunctionData(functionFragment: "resolve(bytes,bytes[],string[])", values: [
40
+ PromiseOrValue<BytesLike>,
41
+ PromiseOrValue<BytesLike>[],
42
+ PromiseOrValue<string>[]
43
+ ]): string;
44
+ encodeFunctionData(functionFragment: "resolve(bytes,bytes)", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
18
45
  encodeFunctionData(functionFragment: "resolveCallback", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
19
- encodeFunctionData(functionFragment: "reverse", values: [PromiseOrValue<BytesLike>]): string;
46
+ encodeFunctionData(functionFragment: "resolveSingleCallback", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
47
+ encodeFunctionData(functionFragment: "reverse(bytes,string[])", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>[]]): string;
48
+ encodeFunctionData(functionFragment: "reverse(bytes)", values: [PromiseOrValue<BytesLike>]): string;
49
+ encodeFunctionData(functionFragment: "reverseCallback", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
20
50
  encodeFunctionData(functionFragment: "supportsInterface", values: [PromiseOrValue<BytesLike>]): string;
51
+ decodeFunctionResult(functionFragment: "_resolveSingle", data: BytesLike): Result;
52
+ decodeFunctionResult(functionFragment: "batchGatewayURLs", data: BytesLike): Result;
21
53
  decodeFunctionResult(functionFragment: "findResolver", data: BytesLike): Result;
22
54
  decodeFunctionResult(functionFragment: "registry", data: BytesLike): Result;
23
- decodeFunctionResult(functionFragment: "resolve", data: BytesLike): Result;
55
+ decodeFunctionResult(functionFragment: "resolve(bytes,bytes,string[])", data: BytesLike): Result;
56
+ decodeFunctionResult(functionFragment: "resolve(bytes,bytes[])", data: BytesLike): Result;
57
+ decodeFunctionResult(functionFragment: "resolve(bytes,bytes[],string[])", data: BytesLike): Result;
58
+ decodeFunctionResult(functionFragment: "resolve(bytes,bytes)", data: BytesLike): Result;
24
59
  decodeFunctionResult(functionFragment: "resolveCallback", data: BytesLike): Result;
25
- decodeFunctionResult(functionFragment: "reverse", data: BytesLike): Result;
60
+ decodeFunctionResult(functionFragment: "resolveSingleCallback", data: BytesLike): Result;
61
+ decodeFunctionResult(functionFragment: "reverse(bytes,string[])", data: BytesLike): Result;
62
+ decodeFunctionResult(functionFragment: "reverse(bytes)", data: BytesLike): Result;
63
+ decodeFunctionResult(functionFragment: "reverseCallback", data: BytesLike): Result;
26
64
  decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
27
65
  events: {};
28
66
  }
@@ -41,42 +79,106 @@ export interface UniversalResolver extends BaseContract {
41
79
  once: OnEvent<this>;
42
80
  removeListener: OnEvent<this>;
43
81
  functions: {
82
+ _resolveSingle(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], callbackFunction: PromiseOrValue<BytesLike>, metaData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
83
+ batchGatewayURLs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
44
84
  findResolver(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
45
85
  registry(overrides?: CallOverrides): Promise<[string]>;
46
- resolve(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
47
- resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
48
- reverse(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string, string, string]>;
86
+ "resolve(bytes,bytes,string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string, string]>;
87
+ "resolve(bytes,bytes[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<[string[], string]>;
88
+ "resolve(bytes,bytes[],string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string[], string]>;
89
+ "resolve(bytes,bytes)"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
90
+ resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
91
+ from?: PromiseOrValue<string>;
92
+ }): Promise<ContractTransaction>;
93
+ resolveSingleCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
94
+ from?: PromiseOrValue<string>;
95
+ }): Promise<ContractTransaction>;
96
+ "reverse(bytes,string[])"(reverseName: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string, string, string, string]>;
97
+ "reverse(bytes)"(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string, string, string]>;
98
+ reverseCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
99
+ from?: PromiseOrValue<string>;
100
+ }): Promise<ContractTransaction>;
49
101
  supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
50
102
  };
103
+ _resolveSingle(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], callbackFunction: PromiseOrValue<BytesLike>, metaData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
104
+ batchGatewayURLs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
51
105
  findResolver(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
52
106
  registry(overrides?: CallOverrides): Promise<string>;
53
- resolve(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
54
- resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
55
- reverse(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string, string, string]>;
107
+ "resolve(bytes,bytes,string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string, string]>;
108
+ "resolve(bytes,bytes[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<[string[], string]>;
109
+ "resolve(bytes,bytes[],string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string[], string]>;
110
+ "resolve(bytes,bytes)"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
111
+ resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
112
+ from?: PromiseOrValue<string>;
113
+ }): Promise<ContractTransaction>;
114
+ resolveSingleCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
115
+ from?: PromiseOrValue<string>;
116
+ }): Promise<ContractTransaction>;
117
+ "reverse(bytes,string[])"(reverseName: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string, string, string, string]>;
118
+ "reverse(bytes)"(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string, string, string]>;
119
+ reverseCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
120
+ from?: PromiseOrValue<string>;
121
+ }): Promise<ContractTransaction>;
56
122
  supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
57
123
  callStatic: {
124
+ _resolveSingle(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], callbackFunction: PromiseOrValue<BytesLike>, metaData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
125
+ batchGatewayURLs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
58
126
  findResolver(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
59
127
  registry(overrides?: CallOverrides): Promise<string>;
60
- resolve(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
61
- resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
62
- reverse(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string, string, string]>;
128
+ "resolve(bytes,bytes,string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string, string]>;
129
+ "resolve(bytes,bytes[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<[string[], string]>;
130
+ "resolve(bytes,bytes[],string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string[], string]>;
131
+ "resolve(bytes,bytes)"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
132
+ resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string[], string]>;
133
+ resolveSingleCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string]>;
134
+ "reverse(bytes,string[])"(reverseName: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string, string, string, string]>;
135
+ "reverse(bytes)"(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string, string, string]>;
136
+ reverseCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, string, string, string]>;
63
137
  supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
64
138
  };
65
139
  filters: {};
66
140
  estimateGas: {
141
+ _resolveSingle(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], callbackFunction: PromiseOrValue<BytesLike>, metaData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
142
+ batchGatewayURLs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
67
143
  findResolver(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
68
144
  registry(overrides?: CallOverrides): Promise<BigNumber>;
69
- resolve(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
70
- resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
71
- reverse(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
145
+ "resolve(bytes,bytes,string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
146
+ "resolve(bytes,bytes[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<BigNumber>;
147
+ "resolve(bytes,bytes[],string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
148
+ "resolve(bytes,bytes)"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
149
+ resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
150
+ from?: PromiseOrValue<string>;
151
+ }): Promise<BigNumber>;
152
+ resolveSingleCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
153
+ from?: PromiseOrValue<string>;
154
+ }): Promise<BigNumber>;
155
+ "reverse(bytes,string[])"(reverseName: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
156
+ "reverse(bytes)"(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
157
+ reverseCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
158
+ from?: PromiseOrValue<string>;
159
+ }): Promise<BigNumber>;
72
160
  supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
73
161
  };
74
162
  populateTransaction: {
163
+ _resolveSingle(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], callbackFunction: PromiseOrValue<BytesLike>, metaData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
164
+ batchGatewayURLs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
75
165
  findResolver(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
76
166
  registry(overrides?: CallOverrides): Promise<PopulatedTransaction>;
77
- resolve(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
78
- resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
79
- reverse(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
167
+ "resolve(bytes,bytes,string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
168
+ "resolve(bytes,bytes[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
169
+ "resolve(bytes,bytes[],string[])"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>[], gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
170
+ "resolve(bytes,bytes)"(name: PromiseOrValue<BytesLike>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
171
+ resolveCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
172
+ from?: PromiseOrValue<string>;
173
+ }): Promise<PopulatedTransaction>;
174
+ resolveSingleCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
175
+ from?: PromiseOrValue<string>;
176
+ }): Promise<PopulatedTransaction>;
177
+ "reverse(bytes,string[])"(reverseName: PromiseOrValue<BytesLike>, gateways: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
178
+ "reverse(bytes)"(reverseName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
179
+ reverseCallback(response: PromiseOrValue<BytesLike>, extraData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
180
+ from?: PromiseOrValue<string>;
181
+ }): Promise<PopulatedTransaction>;
80
182
  supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
81
183
  };
82
184
  }
@@ -13,8 +13,8 @@ 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
- import type transferName from './functions/transferName';
17
16
  import type transferController from './functions/transferController';
17
+ import type transferName from './functions/transferName';
18
18
  import type transferSubname from './functions/transferSubname';
19
19
  import type unwrapName from './functions/unwrapName';
20
20
  import type wrapName from './functions/wrapName';
@@ -148,6 +148,11 @@ export declare class ENS {
148
148
  coinTypes?: boolean | string[] | undefined;
149
149
  } & {
150
150
  resolverAddress?: string | undefined;
151
+ fallback?: {
152
+ contentHash?: boolean | undefined;
153
+ texts?: string[] | undefined;
154
+ coinTypes?: string[] | undefined;
155
+ } | undefined;
151
156
  }) | undefined) => Promise<{
152
157
  isMigrated: boolean | null;
153
158
  createdAt: string | null;
@@ -386,7 +391,7 @@ export declare class ENS {
386
391
  }>;
387
392
  getNames: (args_0: {
388
393
  address: string;
389
- type: "owner" | "registrant" | "all";
394
+ type: "owner" | "wrappedOwner" | "registrant" | "all";
390
395
  page?: number | undefined;
391
396
  pageSize?: number | undefined;
392
397
  orderDirection?: "asc" | "desc" | undefined;
@@ -396,6 +401,9 @@ export declare class ENS {
396
401
  } | {
397
402
  type: "owner";
398
403
  orderBy?: "labelName" | "createdAt" | undefined;
404
+ } | {
405
+ type: "wrappedOwner";
406
+ orderBy?: "expiryDate" | "labelName" | undefined;
399
407
  } | {
400
408
  type: "all";
401
409
  orderBy?: "labelName" | "creationDate" | undefined;
@@ -438,7 +446,64 @@ export declare class ENS {
438
446
  to: string;
439
447
  data: string;
440
448
  }>;
441
- decode({ contracts }: ENSArgs<"contracts">, data: string): Promise<any>;
449
+ decode({ contracts, provider }: ENSArgs<"provider" | "contracts">, data: string, transactions: ethers.providers.TransactionRequest[]): Promise<{
450
+ success: boolean;
451
+ returnData: string;
452
+ 0: boolean;
453
+ 1: string;
454
+ length: 2;
455
+ toString(): string;
456
+ toLocaleString(): string;
457
+ pop(): string | boolean | undefined;
458
+ push(...items: (string | boolean)[]): number;
459
+ concat(...items: ConcatArray<string | boolean>[]): (string | boolean)[];
460
+ concat(...items: (string | boolean | ConcatArray<string | boolean>)[]): (string | boolean)[];
461
+ join(separator?: string | undefined): string;
462
+ reverse(): (string | boolean)[];
463
+ shift(): string | boolean | undefined;
464
+ slice(start?: number | undefined, end?: number | undefined): (string | boolean)[];
465
+ sort(compareFn?: ((a: string | boolean, b: string | boolean) => number) | undefined): [boolean, string];
466
+ splice(start: number, deleteCount?: number | undefined): (string | boolean)[];
467
+ splice(start: number, deleteCount: number, ...items: (string | boolean)[]): (string | boolean)[];
468
+ unshift(...items: (string | boolean)[]): number;
469
+ indexOf(searchElement: string | boolean, fromIndex?: number | undefined): number;
470
+ lastIndexOf(searchElement: string | boolean, fromIndex?: number | undefined): number;
471
+ every<S extends string | boolean>(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => value is S, thisArg?: any): this is S[];
472
+ every(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): boolean;
473
+ some(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): boolean;
474
+ forEach(callbackfn: (value: string | boolean, index: number, array: (string | boolean)[]) => void, thisArg?: any): void;
475
+ map<U>(callbackfn: (value: string | boolean, index: number, array: (string | boolean)[]) => U, thisArg?: any): U[];
476
+ filter<S_1 extends string | boolean>(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => value is S_1, thisArg?: any): S_1[];
477
+ filter(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): (string | boolean)[];
478
+ reduce(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean): string | boolean;
479
+ reduce(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean, initialValue: string | boolean): string | boolean;
480
+ reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => U_1, initialValue: U_1): U_1;
481
+ reduceRight(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean): string | boolean;
482
+ reduceRight(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean, initialValue: string | boolean): string | boolean;
483
+ reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => U_2, initialValue: U_2): U_2;
484
+ find<S_2 extends string | boolean>(predicate: (this: void, value: string | boolean, index: number, obj: (string | boolean)[]) => value is S_2, thisArg?: any): S_2 | undefined;
485
+ find(predicate: (value: string | boolean, index: number, obj: (string | boolean)[]) => unknown, thisArg?: any): string | boolean | undefined;
486
+ findIndex(predicate: (value: string | boolean, index: number, obj: (string | boolean)[]) => unknown, thisArg?: any): number;
487
+ fill(value: string | boolean, start?: number | undefined, end?: number | undefined): [boolean, string];
488
+ copyWithin(target: number, start: number, end?: number | undefined): [boolean, string];
489
+ entries(): IterableIterator<[number, string | boolean]>;
490
+ keys(): IterableIterator<number>;
491
+ values(): IterableIterator<string | boolean>;
492
+ includes(searchElement: string | boolean, fromIndex?: number | undefined): boolean;
493
+ flatMap<U_3, This = undefined>(callback: (this: This, value: string | boolean, index: number, array: (string | boolean)[]) => U_3 | readonly U_3[], thisArg?: This | undefined): U_3[];
494
+ flat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];
495
+ [Symbol.iterator](): IterableIterator<string | boolean>;
496
+ [Symbol.unscopables](): {
497
+ copyWithin: boolean;
498
+ entries: boolean;
499
+ fill: boolean;
500
+ find: boolean;
501
+ findIndex: boolean;
502
+ keys: boolean;
503
+ values: boolean;
504
+ };
505
+ at(index: number): string | boolean | undefined;
506
+ }[] | undefined>;
442
507
  }>;
443
508
  setName: WriteFunction<typeof setName>;
444
509
  setRecords: WriteFunction<typeof setRecords>;
@@ -0,0 +1,3 @@
1
+ import type { BaseProvider, TransactionRequest } from '@ethersproject/providers';
2
+ declare const ccipLookup: (provider: BaseProvider, transaction: TransactionRequest, result: string) => Promise<string | undefined>;
3
+ export default ccipLookup;
@@ -1,3 +1,4 @@
1
+ import { BigNumberish } from 'ethers';
1
2
  export declare const fuseEnum: {
2
3
  readonly CANNOT_UNWRAP: 1;
3
4
  readonly CANNOT_BURN_FUSES: 2;
@@ -53,4 +54,5 @@ export declare type FusePropsNumber = {
53
54
  };
54
55
  export declare type FuseProps = (Partial<FusePropsNamedArray> & FusePropsUnnamedArray) | (FusePropsNamedArray & Partial<FusePropsUnnamedArray>) | FusePropsNumber;
55
56
  export declare const validateFuses: (fuses: FuseProps) => number;
57
+ export declare const decodeFuses: (fuses: BigNumberish) => CurrentFuses;
56
58
  export default fullFuseEnum;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ensdomains/ensjs",
3
- "version": "3.0.0-alpha.26",
3
+ "version": "3.0.0-alpha.28",
4
4
  "description": "ENS javascript library for contract interaction",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.mjs",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  "devDependencies": {
67
67
  "@ensdomains/buffer": "^0.0.13",
68
- "@ensdomains/ens-contracts": "^0.0.14",
68
+ "@ensdomains/ens-contracts": "^0.0.15",
69
69
  "@ensdomains/ens-test-env": "0.3.2",
70
70
  "@ethersproject/abi": "^5.6.0",
71
71
  "@ethersproject/providers": "^5.6.2",
@@ -83,7 +83,7 @@
83
83
  "eslint-plugin-jest": "^27.0.1",
84
84
  "ganache": "^7.4.0",
85
85
  "glob": "^8.0.3",
86
- "hardhat": "^2.10.1",
86
+ "hardhat": "2.10.2",
87
87
  "hardhat-abi-exporter": "^2.8.0",
88
88
  "hardhat-deploy": "^0.11.12",
89
89
  "jest": "^27.5.1",
@@ -49,7 +49,7 @@ const addresses: Record<
49
49
  '1': '0x580AF46E06DaaD47eb5940526FD64d95b815Cb70',
50
50
  '3': '0x74e20bd2a1fe0cdbe45b9a1d89cb7e0a45b36376',
51
51
  '4': '0x74e20bd2a1fe0cdbe45b9a1d89cb7e0a45b36376',
52
- '5': '0x9380F1974D2B7064eA0c0EC251968D8c69f0Ae31',
52
+ '5': '0x687c30Cc44bFA39A1449e86E172BF002E7b3f0b0',
53
53
  },
54
54
  BulkRenewal: {
55
55
  '1': '0xfF252725f6122A92551A5FA9a6b6bf10eb0Be035',
@@ -1,5 +1,6 @@
1
1
  import { ethers } from 'ethers'
2
2
  import { ENSArgs } from '..'
3
+ import ccipLookup from '../utils/ccip'
3
4
  import { hexEncodeName } from '../utils/hexEncodedName'
4
5
 
5
6
  export const universalWrapper = {
@@ -11,16 +12,16 @@ export const universalWrapper = {
11
12
  const universalResolver = await contracts?.getUniversalResolver()!
12
13
  return {
13
14
  to: universalResolver.address,
14
- data: universalResolver.interface.encodeFunctionData('resolve', [
15
- hexEncodeName(name),
16
- data,
17
- ]),
15
+ data: universalResolver.interface.encodeFunctionData(
16
+ 'resolve(bytes,bytes)',
17
+ [hexEncodeName(name), data],
18
+ ),
18
19
  }
19
20
  },
20
21
  decode: async ({ contracts }: ENSArgs<'contracts'>, data: string) => {
21
22
  const universalResolver = await contracts?.getUniversalResolver()!
22
23
  const response = universalResolver.interface.decodeFunctionResult(
23
- 'resolve',
24
+ 'resolve(bytes,bytes)',
24
25
  data,
25
26
  )
26
27
  if (!response || !response[0]) {
@@ -75,7 +76,11 @@ export const multicallWrapper = {
75
76
  ]),
76
77
  }
77
78
  },
78
- async decode({ contracts }: ENSArgs<'contracts'>, data: string) {
79
+ async decode(
80
+ { contracts, provider }: ENSArgs<'contracts' | 'provider'>,
81
+ data: string,
82
+ transactions: ethers.providers.TransactionRequest[],
83
+ ) {
79
84
  if (!data) return
80
85
  const multicall = await contracts?.getMulticall()!
81
86
  try {
@@ -83,9 +88,35 @@ export const multicallWrapper = {
83
88
  'tryAggregate',
84
89
  data,
85
90
  )
86
- return result
87
- } catch (e) {
88
- return e
91
+ const ccipChecked = await Promise.all(
92
+ (result as [boolean, string][]).map(
93
+ async ([success, returnData], i) => {
94
+ let newArr: [boolean, string] = [success, returnData]
95
+ // OffchainLookup(address,string[],bytes,bytes4,bytes)
96
+ if (!success && returnData.startsWith('0x556f1830')) {
97
+ try {
98
+ const newData = await ccipLookup(
99
+ provider!,
100
+ transactions[i],
101
+ returnData,
102
+ )
103
+ if (newData) {
104
+ newArr = [true, newData]
105
+ }
106
+ } catch {}
107
+ }
108
+ return {
109
+ ...newArr,
110
+ success: newArr[0],
111
+ returnData: newArr[1],
112
+ }
113
+ },
114
+ ),
115
+ )
116
+ return ccipChecked
117
+ } catch (e: any) {
118
+ console.error(e)
119
+ return
89
120
  }
90
121
  },
91
122
  }
@@ -6,7 +6,7 @@ const raw = async ({ contracts }: ENSArgs<'contracts'>, address: string) => {
6
6
  const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`
7
7
  return {
8
8
  to: universalResolver.address,
9
- data: universalResolver.interface.encodeFunctionData('reverse', [
9
+ data: universalResolver.interface.encodeFunctionData('reverse(bytes)', [
10
10
  hexEncodeName(reverseNode),
11
11
  ]),
12
12
  }
@@ -21,7 +21,7 @@ const decode = async (
21
21
  const universalResolver = await contracts?.getUniversalResolver()!
22
22
  try {
23
23
  const result = universalResolver.interface.decodeFunctionResult(
24
- 'reverse',
24
+ 'reverse(bytes)',
25
25
  data,
26
26
  )
27
27
  return {
@@ -89,6 +89,25 @@ describe('getNames', () => {
89
89
  )
90
90
  testNotProperties(result[0], 'expiryDate', 'registrationDate')
91
91
  })
92
+ it('should get wrapped domains for an address', async () => {
93
+ const result = await ensInstance.getNames({
94
+ address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
95
+ type: 'wrappedOwner',
96
+ })
97
+ expect(result).toBeTruthy()
98
+ testProperties(
99
+ result[0],
100
+ 'id',
101
+ 'labelName',
102
+ 'labelhash',
103
+ 'name',
104
+ 'isMigrated',
105
+ 'parent',
106
+ 'truncatedName',
107
+ 'expiryDate',
108
+ 'fuses',
109
+ )
110
+ })
92
111
  it('should get the registrations for an address with pagination', async () => {
93
112
  const pageOne = await ensInstance.getNames({
94
113
  address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
@@ -147,6 +166,14 @@ describe('getNames', () => {
147
166
  })
148
167
  expect(pageFive).toHaveLength(totalOwnedNames % 10)
149
168
  })
169
+ it('should get wrapped domains for an address with pagination', async () => {
170
+ const pageOne = await ensInstance.getNames({
171
+ address: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
172
+ type: 'wrappedOwner',
173
+ page: 0,
174
+ })
175
+ expect(pageOne).toHaveLength(1)
176
+ })
150
177
  describe('orderBy', () => {
151
178
  describe('registrations', () => {
152
179
  it('descending registrationDate', async () => {