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

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 (43) 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/getOwner.js +4 -4
  6. package/dist/cjs/functions/getProfile.js +117 -87
  7. package/dist/cjs/generated/factories/NameWrapper__factory.js +13 -0
  8. package/dist/cjs/generated/factories/UniversalResolver__factory.js +277 -0
  9. package/dist/cjs/utils/ccip.js +128 -0
  10. package/dist/cjs/utils/singleCall.js +1 -1
  11. package/dist/esm/contracts/getContractAddress.mjs +1 -1
  12. package/dist/esm/functions/batchWrappers.mjs +35 -8
  13. package/dist/esm/functions/getName.mjs +2 -2
  14. package/dist/esm/functions/getOwner.mjs +4 -4
  15. package/dist/esm/functions/getProfile.mjs +117 -87
  16. package/dist/esm/generated/factories/NameWrapper__factory.mjs +13 -0
  17. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +277 -0
  18. package/dist/esm/utils/ccip.mjs +114 -0
  19. package/dist/esm/utils/singleCall.mjs +1 -1
  20. package/dist/types/functions/batchWrappers.d.ts +58 -1
  21. package/dist/types/functions/getProfile.d.ts +6 -0
  22. package/dist/types/generated/NameWrapper.d.ts +9 -1
  23. package/dist/types/generated/UniversalResolver.d.ts +123 -21
  24. package/dist/types/index.d.ts +64 -2
  25. package/dist/types/utils/ccip.d.ts +3 -0
  26. package/package.json +3 -3
  27. package/src/contracts/getContractAddress.ts +1 -1
  28. package/src/functions/batchWrappers.ts +40 -9
  29. package/src/functions/getName.ts +2 -2
  30. package/src/functions/getOwner.ts +4 -2
  31. package/src/functions/getProfile-ccip.test.ts +29 -0
  32. package/src/functions/getProfile.test.ts +1 -1
  33. package/src/functions/getProfile.ts +160 -100
  34. package/src/functions/setName.test.ts +6 -2
  35. package/src/functions/setRecord.test.ts +3 -3
  36. package/src/functions/setRecords.test.ts +2 -2
  37. package/src/generated/NameWrapper.ts +14 -0
  38. package/src/generated/UniversalResolver.ts +382 -19
  39. package/src/generated/factories/NameWrapper__factory.ts +13 -0
  40. package/src/generated/factories/UniversalResolver__factory.ts +277 -0
  41. package/src/index.ts +1 -1
  42. package/src/utils/ccip.ts +148 -0
  43. package/src/utils/singleCall.ts +1 -1
@@ -0,0 +1,114 @@
1
+ // src/utils/ccip.ts
2
+ import { BigNumber } from "ethers";
3
+ import {
4
+ arrayify,
5
+ hexConcat,
6
+ hexDataSlice,
7
+ toUtf8String
8
+ } from "ethers/lib/utils.js";
9
+ function bytesPad(value) {
10
+ if (value.length % 32 === 0) {
11
+ return value;
12
+ }
13
+ const result = new Uint8Array(Math.ceil(value.length / 32) * 32);
14
+ result.set(value);
15
+ return result;
16
+ }
17
+ function numPad(value) {
18
+ const result = arrayify(value);
19
+ if (result.length > 32) {
20
+ throw new Error("internal; should not happen");
21
+ }
22
+ const padded = new Uint8Array(32);
23
+ padded.set(result, 32 - result.length);
24
+ return padded;
25
+ }
26
+ function encodeBytes(datas) {
27
+ const result = [];
28
+ let byteCount = 0;
29
+ for (let i = 0; i < datas.length; i += 1) {
30
+ result.push(new Uint8Array(0));
31
+ byteCount += 32;
32
+ }
33
+ for (let i = 0; i < datas.length; i += 1) {
34
+ const data = arrayify(datas[i]);
35
+ result[i] = numPad(byteCount);
36
+ result.push(numPad(data.length));
37
+ result.push(bytesPad(data));
38
+ byteCount += 32 + Math.ceil(data.length / 32) * 32;
39
+ }
40
+ return hexConcat(result);
41
+ }
42
+ function _parseBytes(result, start) {
43
+ if (result === "0x") {
44
+ return null;
45
+ }
46
+ const offset = BigNumber.from(
47
+ hexDataSlice(result, start, start + 32)
48
+ ).toNumber();
49
+ const length = BigNumber.from(
50
+ hexDataSlice(result, offset, offset + 32)
51
+ ).toNumber();
52
+ return hexDataSlice(result, offset + 32, offset + 32 + length);
53
+ }
54
+ function _parseString(result, start) {
55
+ try {
56
+ const bytes = _parseBytes(result, start);
57
+ if (bytes == null)
58
+ return null;
59
+ return toUtf8String(bytes);
60
+ } catch (error) {
61
+ }
62
+ return null;
63
+ }
64
+ var ccipLookup = async (provider, transaction, result) => {
65
+ const txSender = transaction.to;
66
+ try {
67
+ const data = hexDataSlice(result, 4);
68
+ const sender = hexDataSlice(data, 0, 32);
69
+ if (!BigNumber.from(sender).eq(txSender)) {
70
+ throw new Error("CCIP Read sender did not match");
71
+ }
72
+ const urls = [];
73
+ const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();
74
+ const urlsLength = BigNumber.from(
75
+ hexDataSlice(data, urlsOffset, urlsOffset + 32)
76
+ ).toNumber();
77
+ const urlsData = hexDataSlice(data, urlsOffset + 32);
78
+ for (let u = 0; u < urlsLength; u += 1) {
79
+ const url = _parseString(urlsData, u * 32);
80
+ if (url == null) {
81
+ throw new Error("CCIP Read contained corrupt URL string");
82
+ }
83
+ urls.push(url);
84
+ }
85
+ const calldata = _parseBytes(data, 64);
86
+ if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {
87
+ throw new Error("CCIP Read callback selected included junk");
88
+ }
89
+ const callbackSelector = hexDataSlice(data, 96, 100);
90
+ const extraData = _parseBytes(data, 128);
91
+ const ccipResult = await provider.ccipReadFetch(
92
+ transaction,
93
+ calldata,
94
+ urls
95
+ );
96
+ if (ccipResult == null) {
97
+ throw new Error("CCIP Read disabled or provided no URLs");
98
+ }
99
+ const tx = {
100
+ to: sender,
101
+ data: hexConcat([
102
+ callbackSelector,
103
+ encodeBytes([ccipResult, extraData])
104
+ ])
105
+ };
106
+ return await provider._call(tx, "latest", 1);
107
+ } catch (error) {
108
+ console.error(error);
109
+ }
110
+ };
111
+ var ccip_default = ccipLookup;
112
+ export {
113
+ ccip_default as default
114
+ };
@@ -1,5 +1,5 @@
1
1
  // src/utils/singleCall.ts
2
- var singleCall_default = async (provider, ensData, func, ...data) => func.raw(ensData, ...data).then((rawData) => provider.call(rawData)).catch(() => null).then((ret) => func.decode(ensData, ret, ...data));
2
+ var singleCall_default = async (provider, ensData, func, ...data) => func.raw(ensData, ...data).then((rawData) => provider.call({ ...rawData, ccipReadEnabled: true })).catch(() => null).then((ret) => func.decode(ensData, ret, ...data));
3
3
  export {
4
4
  singleCall_default as default
5
5
  };
@@ -25,5 +25,62 @@ export declare const multicallWrapper: {
25
25
  to: string;
26
26
  data: string;
27
27
  }>;
28
- decode({ contracts }: ENSArgs<'contracts'>, data: string): Promise<any>;
28
+ decode({ contracts, provider }: ENSArgs<'contracts' | 'provider'>, data: string, transactions: ethers.providers.TransactionRequest[]): Promise<{
29
+ success: boolean;
30
+ returnData: string;
31
+ 0: boolean;
32
+ 1: string;
33
+ length: 2;
34
+ toString(): string;
35
+ toLocaleString(): string;
36
+ pop(): string | boolean | undefined;
37
+ push(...items: (string | boolean)[]): number;
38
+ concat(...items: ConcatArray<string | boolean>[]): (string | boolean)[];
39
+ concat(...items: (string | boolean | ConcatArray<string | boolean>)[]): (string | boolean)[];
40
+ join(separator?: string | undefined): string;
41
+ reverse(): (string | boolean)[];
42
+ shift(): string | boolean | undefined;
43
+ slice(start?: number | undefined, end?: number | undefined): (string | boolean)[];
44
+ sort(compareFn?: ((a: string | boolean, b: string | boolean) => number) | undefined): [boolean, string];
45
+ splice(start: number, deleteCount?: number | undefined): (string | boolean)[];
46
+ splice(start: number, deleteCount: number, ...items: (string | boolean)[]): (string | boolean)[];
47
+ unshift(...items: (string | boolean)[]): number;
48
+ indexOf(searchElement: string | boolean, fromIndex?: number | undefined): number;
49
+ lastIndexOf(searchElement: string | boolean, fromIndex?: number | undefined): number;
50
+ every<S extends string | boolean>(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => value is S, thisArg?: any): this is S[];
51
+ every(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): boolean;
52
+ some(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): boolean;
53
+ forEach(callbackfn: (value: string | boolean, index: number, array: (string | boolean)[]) => void, thisArg?: any): void;
54
+ map<U>(callbackfn: (value: string | boolean, index: number, array: (string | boolean)[]) => U, thisArg?: any): U[];
55
+ filter<S_1 extends string | boolean>(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => value is S_1, thisArg?: any): S_1[];
56
+ filter(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): (string | boolean)[];
57
+ reduce(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean): string | boolean;
58
+ reduce(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean, initialValue: string | boolean): string | boolean;
59
+ reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => U_1, initialValue: U_1): U_1;
60
+ reduceRight(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean): string | boolean;
61
+ reduceRight(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean, initialValue: string | boolean): string | boolean;
62
+ reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => U_2, initialValue: U_2): U_2;
63
+ 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;
64
+ find(predicate: (value: string | boolean, index: number, obj: (string | boolean)[]) => unknown, thisArg?: any): string | boolean | undefined;
65
+ findIndex(predicate: (value: string | boolean, index: number, obj: (string | boolean)[]) => unknown, thisArg?: any): number;
66
+ fill(value: string | boolean, start?: number | undefined, end?: number | undefined): [boolean, string];
67
+ copyWithin(target: number, start: number, end?: number | undefined): [boolean, string];
68
+ entries(): IterableIterator<[number, string | boolean]>;
69
+ keys(): IterableIterator<number>;
70
+ values(): IterableIterator<string | boolean>;
71
+ includes(searchElement: string | boolean, fromIndex?: number | undefined): boolean;
72
+ 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[];
73
+ flat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];
74
+ [Symbol.iterator](): IterableIterator<string | boolean>;
75
+ [Symbol.unscopables](): {
76
+ copyWithin: boolean;
77
+ entries: boolean;
78
+ fill: boolean;
79
+ find: boolean;
80
+ findIndex: boolean;
81
+ keys: boolean;
82
+ values: boolean;
83
+ };
84
+ at(index: number): string | boolean | undefined;
85
+ }[] | undefined>;
29
86
  };
@@ -1,5 +1,10 @@
1
1
  import { ENSArgs } from '..';
2
2
  import { DecodedContentHash } from '../utils/contentHash';
3
+ declare type FallbackRecords = {
4
+ contentHash?: boolean;
5
+ texts?: string[];
6
+ coinTypes?: string[];
7
+ };
3
8
  declare type DataItem = {
4
9
  key: string | number;
5
10
  type: 'addr' | 'text' | 'contentHash';
@@ -28,6 +33,7 @@ declare type ProfileOptions = {
28
33
  };
29
34
  declare type InputProfileOptions = ProfileOptions & {
30
35
  resolverAddress?: string;
36
+ fallback?: FallbackRecords;
31
37
  };
32
38
  export default function ({ contracts, gqlInstance, getName, _getAddr, _getContentHash, _getText, resolverMulticallWrapper, multicallWrapper, }: ENSArgs<'contracts' | 'gqlInstance' | 'getName' | '_getText' | '_getAddr' | '_getContentHash' | 'resolverMulticallWrapper' | 'multicallWrapper'>, nameOrAddress: string, options?: InputProfileOptions): Promise<ResolvedProfile | undefined>;
33
39
  export {};
@@ -15,6 +15,7 @@ export interface NameWrapperInterface extends utils.Interface {
15
15
  "isTokenOwnerOrApproved(bytes32,address)": FunctionFragment;
16
16
  "isWrapped(bytes32)": FunctionFragment;
17
17
  "metadataService()": FunctionFragment;
18
+ "name()": FunctionFragment;
18
19
  "names(bytes32)": FunctionFragment;
19
20
  "onERC721Received(address,address,uint256,bytes)": FunctionFragment;
20
21
  "owner()": FunctionFragment;
@@ -48,7 +49,7 @@ export interface NameWrapperInterface extends utils.Interface {
48
49
  "wrap(bytes,address,address)": FunctionFragment;
49
50
  "wrapETH2LD(string,address,uint32,uint64,address)": FunctionFragment;
50
51
  };
51
- getFunction(nameOrSignatureOrTopic: "_tokens" | "allFusesBurned" | "balanceOf" | "balanceOfBatch" | "controllers" | "ens" | "getData" | "isApprovedForAll" | "isTokenOwnerOrApproved" | "isWrapped" | "metadataService" | "names" | "onERC721Received" | "owner" | "ownerOf" | "recoverFunds" | "registerAndWrapETH2LD" | "registrar" | "renew" | "renounceOwnership" | "safeBatchTransferFrom" | "safeTransferFrom" | "setApprovalForAll" | "setChildFuses" | "setController" | "setFuses" | "setMetadataService" | "setRecord" | "setResolver" | "setSubnodeOwner" | "setSubnodeRecord" | "setTTL" | "setUpgradeContract" | "supportsInterface" | "transferOwnership" | "unwrap" | "unwrapETH2LD" | "upgrade" | "upgradeContract" | "upgradeETH2LD" | "uri" | "wrap" | "wrapETH2LD"): FunctionFragment;
52
+ getFunction(nameOrSignatureOrTopic: "_tokens" | "allFusesBurned" | "balanceOf" | "balanceOfBatch" | "controllers" | "ens" | "getData" | "isApprovedForAll" | "isTokenOwnerOrApproved" | "isWrapped" | "metadataService" | "name" | "names" | "onERC721Received" | "owner" | "ownerOf" | "recoverFunds" | "registerAndWrapETH2LD" | "registrar" | "renew" | "renounceOwnership" | "safeBatchTransferFrom" | "safeTransferFrom" | "setApprovalForAll" | "setChildFuses" | "setController" | "setFuses" | "setMetadataService" | "setRecord" | "setResolver" | "setSubnodeOwner" | "setSubnodeRecord" | "setTTL" | "setUpgradeContract" | "supportsInterface" | "transferOwnership" | "unwrap" | "unwrapETH2LD" | "upgrade" | "upgradeContract" | "upgradeETH2LD" | "uri" | "wrap" | "wrapETH2LD"): FunctionFragment;
52
53
  encodeFunctionData(functionFragment: "_tokens", values: [PromiseOrValue<BigNumberish>]): string;
53
54
  encodeFunctionData(functionFragment: "allFusesBurned", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
54
55
  encodeFunctionData(functionFragment: "balanceOf", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
@@ -60,6 +61,7 @@ export interface NameWrapperInterface extends utils.Interface {
60
61
  encodeFunctionData(functionFragment: "isTokenOwnerOrApproved", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
61
62
  encodeFunctionData(functionFragment: "isWrapped", values: [PromiseOrValue<BytesLike>]): string;
62
63
  encodeFunctionData(functionFragment: "metadataService", values?: undefined): string;
64
+ encodeFunctionData(functionFragment: "name", values?: undefined): string;
63
65
  encodeFunctionData(functionFragment: "names", values: [PromiseOrValue<BytesLike>]): string;
64
66
  encodeFunctionData(functionFragment: "onERC721Received", values: [
65
67
  PromiseOrValue<string>,
@@ -187,6 +189,7 @@ export interface NameWrapperInterface extends utils.Interface {
187
189
  decodeFunctionResult(functionFragment: "isTokenOwnerOrApproved", data: BytesLike): Result;
188
190
  decodeFunctionResult(functionFragment: "isWrapped", data: BytesLike): Result;
189
191
  decodeFunctionResult(functionFragment: "metadataService", data: BytesLike): Result;
192
+ decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
190
193
  decodeFunctionResult(functionFragment: "names", data: BytesLike): Result;
191
194
  decodeFunctionResult(functionFragment: "onERC721Received", data: BytesLike): Result;
192
195
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
@@ -366,6 +369,7 @@ export interface NameWrapper extends BaseContract {
366
369
  isTokenOwnerOrApproved(node: PromiseOrValue<BytesLike>, addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
367
370
  isWrapped(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
368
371
  metadataService(overrides?: CallOverrides): Promise<[string]>;
372
+ name(overrides?: CallOverrides): Promise<[string]>;
369
373
  names(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
370
374
  onERC721Received(to: PromiseOrValue<string>, arg1: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
371
375
  from?: PromiseOrValue<string>;
@@ -462,6 +466,7 @@ export interface NameWrapper extends BaseContract {
462
466
  isTokenOwnerOrApproved(node: PromiseOrValue<BytesLike>, addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
463
467
  isWrapped(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
464
468
  metadataService(overrides?: CallOverrides): Promise<string>;
469
+ name(overrides?: CallOverrides): Promise<string>;
465
470
  names(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
466
471
  onERC721Received(to: PromiseOrValue<string>, arg1: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
467
472
  from?: PromiseOrValue<string>;
@@ -556,6 +561,7 @@ export interface NameWrapper extends BaseContract {
556
561
  isTokenOwnerOrApproved(node: PromiseOrValue<BytesLike>, addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
557
562
  isWrapped(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
558
563
  metadataService(overrides?: CallOverrides): Promise<string>;
564
+ name(overrides?: CallOverrides): Promise<string>;
559
565
  names(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
560
566
  onERC721Received(to: PromiseOrValue<string>, arg1: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
561
567
  owner(overrides?: CallOverrides): Promise<string>;
@@ -621,6 +627,7 @@ export interface NameWrapper extends BaseContract {
621
627
  isTokenOwnerOrApproved(node: PromiseOrValue<BytesLike>, addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
622
628
  isWrapped(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
623
629
  metadataService(overrides?: CallOverrides): Promise<BigNumber>;
630
+ name(overrides?: CallOverrides): Promise<BigNumber>;
624
631
  names(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
625
632
  onERC721Received(to: PromiseOrValue<string>, arg1: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
626
633
  from?: PromiseOrValue<string>;
@@ -716,6 +723,7 @@ export interface NameWrapper extends BaseContract {
716
723
  isTokenOwnerOrApproved(node: PromiseOrValue<BytesLike>, addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
717
724
  isWrapped(node: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
718
725
  metadataService(overrides?: CallOverrides): Promise<PopulatedTransaction>;
726
+ name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
719
727
  names(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
720
728
  onERC721Received(to: PromiseOrValue<string>, arg1: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
721
729
  from?: PromiseOrValue<string>;
@@ -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;
@@ -438,7 +443,64 @@ export declare class ENS {
438
443
  to: string;
439
444
  data: string;
440
445
  }>;
441
- decode({ contracts }: ENSArgs<"contracts">, data: string): Promise<any>;
446
+ decode({ contracts, provider }: ENSArgs<"provider" | "contracts">, data: string, transactions: ethers.providers.TransactionRequest[]): Promise<{
447
+ success: boolean;
448
+ returnData: string;
449
+ 0: boolean;
450
+ 1: string;
451
+ length: 2;
452
+ toString(): string;
453
+ toLocaleString(): string;
454
+ pop(): string | boolean | undefined;
455
+ push(...items: (string | boolean)[]): number;
456
+ concat(...items: ConcatArray<string | boolean>[]): (string | boolean)[];
457
+ concat(...items: (string | boolean | ConcatArray<string | boolean>)[]): (string | boolean)[];
458
+ join(separator?: string | undefined): string;
459
+ reverse(): (string | boolean)[];
460
+ shift(): string | boolean | undefined;
461
+ slice(start?: number | undefined, end?: number | undefined): (string | boolean)[];
462
+ sort(compareFn?: ((a: string | boolean, b: string | boolean) => number) | undefined): [boolean, string];
463
+ splice(start: number, deleteCount?: number | undefined): (string | boolean)[];
464
+ splice(start: number, deleteCount: number, ...items: (string | boolean)[]): (string | boolean)[];
465
+ unshift(...items: (string | boolean)[]): number;
466
+ indexOf(searchElement: string | boolean, fromIndex?: number | undefined): number;
467
+ lastIndexOf(searchElement: string | boolean, fromIndex?: number | undefined): number;
468
+ every<S extends string | boolean>(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => value is S, thisArg?: any): this is S[];
469
+ every(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): boolean;
470
+ some(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): boolean;
471
+ forEach(callbackfn: (value: string | boolean, index: number, array: (string | boolean)[]) => void, thisArg?: any): void;
472
+ map<U>(callbackfn: (value: string | boolean, index: number, array: (string | boolean)[]) => U, thisArg?: any): U[];
473
+ filter<S_1 extends string | boolean>(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => value is S_1, thisArg?: any): S_1[];
474
+ filter(predicate: (value: string | boolean, index: number, array: (string | boolean)[]) => unknown, thisArg?: any): (string | boolean)[];
475
+ reduce(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean): string | boolean;
476
+ reduce(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean, initialValue: string | boolean): string | boolean;
477
+ reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => U_1, initialValue: U_1): U_1;
478
+ reduceRight(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean): string | boolean;
479
+ reduceRight(callbackfn: (previousValue: string | boolean, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => string | boolean, initialValue: string | boolean): string | boolean;
480
+ reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: string | boolean, currentIndex: number, array: (string | boolean)[]) => U_2, initialValue: U_2): U_2;
481
+ 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;
482
+ find(predicate: (value: string | boolean, index: number, obj: (string | boolean)[]) => unknown, thisArg?: any): string | boolean | undefined;
483
+ findIndex(predicate: (value: string | boolean, index: number, obj: (string | boolean)[]) => unknown, thisArg?: any): number;
484
+ fill(value: string | boolean, start?: number | undefined, end?: number | undefined): [boolean, string];
485
+ copyWithin(target: number, start: number, end?: number | undefined): [boolean, string];
486
+ entries(): IterableIterator<[number, string | boolean]>;
487
+ keys(): IterableIterator<number>;
488
+ values(): IterableIterator<string | boolean>;
489
+ includes(searchElement: string | boolean, fromIndex?: number | undefined): boolean;
490
+ 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[];
491
+ flat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];
492
+ [Symbol.iterator](): IterableIterator<string | boolean>;
493
+ [Symbol.unscopables](): {
494
+ copyWithin: boolean;
495
+ entries: boolean;
496
+ fill: boolean;
497
+ find: boolean;
498
+ findIndex: boolean;
499
+ keys: boolean;
500
+ values: boolean;
501
+ };
502
+ at(index: number): string | boolean | undefined;
503
+ }[] | undefined>;
442
504
  }>;
443
505
  setName: WriteFunction<typeof setName>;
444
506
  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;
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.27",
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',