@@ -8,13 +8,45 @@ import type { Addressable, AddressLike, NameResolver } from "./index.js";
88/**
99 * Returns true if %%value%% is an object which implements the
1010 * [[Addressable]] interface.
11+ *
12+ * @example :
13+ * // Wallets and AbstractSigner sub-classes
14+ * isAddressable(Wallet.createRandom())
15+ * //_result:
16+ *
17+ * // Contracts
18+ * contract = new Contract("dai.tokens.ethers.eth", [ ], provider)
19+ * isAddressable(contract)
20+ * //_result:
1121 */
1222export function isAddressable ( value : any ) : value is Addressable {
1323 return ( value && typeof ( value . getAddress ) === "function" ) ;
1424}
1525
1626/**
1727 * Returns true if %%value%% is a valid address.
28+ *
29+ * @example :
30+ * // Valid address
31+ * isAddress("0x8ba1f109551bD432803012645Ac136ddd64DBA72")
32+ * //_result:
33+ *
34+ * // Valid ICAP address
35+ * isAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36")
36+ * //_result:
37+ *
38+ * // Invalid checksum
39+ * isAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBa72")
40+ * //_result:
41+ *
42+ * // Invalid ICAP checksum
43+ * isAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBA72")
44+ * //_result:
45+ *
46+ * // Not an address (an ENS name requires a provided and an
47+ * // asynchronous API to access)
48+ * isAddress("ricmoo.eth")
49+ * //_result:
1850 */
1951export function isAddress ( value : any ) : boolean {
2052 try {
@@ -40,6 +72,35 @@ async function checkAddress(target: any, promise: Promise<null | string>): Promi
4072 *
4173 * If an ENS name is provided, but that name has not been correctly
4274 * configured a [[UnconfiguredNameError]] is thrown.
75+ *
76+ * @example :
77+ * addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F"
78+ *
79+ * // Addresses are return synchronously
80+ * resolveAddress(addr, provider)
81+ * //_result:
82+ *
83+ * // Address promises are resolved asynchronously
84+ * resolveAddress(Promise.resolve(addr))
85+ * //_result:
86+ *
87+ * // ENS names are resolved asynchronously
88+ * resolveAddress("dai.tokens.ethers.eth", provider)
89+ * //_result:
90+ *
91+ * // Addressable objects are resolved asynchronously
92+ * contract = new Contract(addr, [ ])
93+ * resolveAddress(contract, provider)
94+ * //_result:
95+ *
96+ * // Unconfigured ENS names reject
97+ * resolveAddress("nothing-here.ricmoo.eth", provider)
98+ * //_error:
99+ *
100+ * // ENS names require a NameResolver object passed in
101+ * // (notice the provider was omitted)
102+ * resolveAddress("nothing-here.ricmoo.eth")
103+ * //_error:
43104 */
44105export function resolveAddress ( target : AddressLike , resolver ?: null | NameResolver ) : string | Promise < string > {
45106
0 commit comments