viem 1.2.14 → 1.2.15
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/actions/ens/getEnsAddress.js +4 -7
- package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/cjs/actions/ens/getEnsName.js +6 -20
- package/dist/cjs/actions/ens/getEnsName.js.map +1 -1
- package/dist/cjs/actions/ens/getEnsText.js +31 -23
- package/dist/cjs/actions/ens/getEnsText.js.map +1 -1
- package/dist/cjs/constants/abis.js +30 -2
- package/dist/cjs/constants/abis.js.map +1 -1
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/utils/ens/errors.js +24 -0
- package/dist/cjs/utils/ens/errors.js.map +1 -0
- package/dist/esm/actions/ens/getEnsAddress.js +5 -8
- package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/esm/actions/ens/getEnsName.js +6 -21
- package/dist/esm/actions/ens/getEnsName.js.map +1 -1
- package/dist/esm/actions/ens/getEnsText.js +32 -24
- package/dist/esm/actions/ens/getEnsText.js.map +1 -1
- package/dist/esm/constants/abis.js +29 -1
- package/dist/esm/constants/abis.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/utils/ens/errors.js +25 -0
- package/dist/esm/utils/ens/errors.js.map +1 -0
- package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
- package/dist/types/actions/ens/getEnsName.d.ts.map +1 -1
- package/dist/types/actions/ens/getEnsText.d.ts.map +1 -1
- package/dist/types/constants/abis.d.ts +39 -1
- package/dist/types/constants/abis.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/utils/ens/errors.d.ts +2 -0
- package/dist/types/utils/ens/errors.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/actions/ens/getEnsAddress.ts +4 -13
- package/src/actions/ens/getEnsName.ts +6 -27
- package/src/actions/ens/getEnsText.ts +32 -23
- package/src/constants/abis.ts +31 -1
- package/src/errors/version.ts +1 -1
- package/src/utils/ens/errors.ts +27 -0
@@ -2,12 +2,12 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getEnsAddress = void 0;
|
4
4
|
const abis_js_1 = require("../../constants/abis.js");
|
5
|
-
const contract_js_1 = require("../../errors/contract.js");
|
6
5
|
const decodeFunctionResult_js_1 = require("../../utils/abi/decodeFunctionResult.js");
|
7
6
|
const encodeFunctionData_js_1 = require("../../utils/abi/encodeFunctionData.js");
|
8
7
|
const chain_js_1 = require("../../utils/chain.js");
|
9
8
|
const trim_js_1 = require("../../utils/data/trim.js");
|
10
9
|
const toHex_js_1 = require("../../utils/encoding/toHex.js");
|
10
|
+
const errors_js_1 = require("../../utils/ens/errors.js");
|
11
11
|
const namehash_js_1 = require("../../utils/ens/namehash.js");
|
12
12
|
const packetToBytes_js_1 = require("../../utils/ens/packetToBytes.js");
|
13
13
|
const readContract_js_1 = require("../public/readContract.js");
|
@@ -25,7 +25,7 @@ async function getEnsAddress(client, { blockNumber, blockTag, name, universalRes
|
|
25
25
|
try {
|
26
26
|
const res = await (0, readContract_js_1.readContract)(client, {
|
27
27
|
address: universalResolverAddress,
|
28
|
-
abi: abis_js_1.
|
28
|
+
abi: abis_js_1.universalResolverResolveAbi,
|
29
29
|
functionName: 'resolve',
|
30
30
|
args: [
|
31
31
|
(0, toHex_js_1.toHex)((0, packetToBytes_js_1.packetToBytes)(name)),
|
@@ -48,11 +48,8 @@ async function getEnsAddress(client, { blockNumber, blockTag, name, universalRes
|
|
48
48
|
return (0, trim_js_1.trim)(address) === '0x00' ? null : address;
|
49
49
|
}
|
50
50
|
catch (err) {
|
51
|
-
if (
|
52
|
-
|
53
|
-
if (reason?.includes('Wildcard on non-extended resolvers is not supported'))
|
54
|
-
return null;
|
55
|
-
}
|
51
|
+
if ((0, errors_js_1.isNullUniversalResolverError)(err, 'resolve'))
|
52
|
+
return null;
|
56
53
|
throw err;
|
57
54
|
}
|
58
55
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsAddress.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":";;;AAIA,qDAGgC;
|
1
|
+
{"version":3,"file":"getEnsAddress.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":";;;AAIA,qDAGgC;AAGhC,qFAA8E;AAC9E,iFAA0E;AAC1E,mDAA8D;AAC9D,sDAA+C;AAC/C,4DAAqD;AACrD,yDAAwE;AACxE,6DAAsD;AACtD,uEAAgE;AAChE,+DAGkC;AAyC3B,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,wBAAwB,EAAE,yBAAyB,GAC3B;IAE1B,IAAI,wBAAwB,GAAG,yBAAyB,CAAA;IACxD,IAAI,CAAC,wBAAwB,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;YACf,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;QAEH,wBAAwB,GAAG,IAAA,kCAAuB,EAAC;YACjD,WAAW;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,sBAAsB;SACjC,CAAC,CAAA;KACH;IAED,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,EAAE;YACrC,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,qCAA2B;YAChC,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE;gBACJ,IAAA,gBAAK,EAAC,IAAA,gCAAa,EAAC,IAAI,CAAC,CAAC;gBAC1B,IAAA,0CAAkB,EAAC;oBACjB,GAAG,EAAE,kCAAwB;oBAC7B,YAAY,EAAE,MAAM;oBACpB,IAAI,EAAE,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,CAAC;iBACvB,CAAC;aACH;YACD,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,OAAO,GAAG,IAAA,8CAAoB,EAAC;YACnC,GAAG,EAAE,kCAAwB;YAC7B,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACb,CAAC,CAAA;QAEF,OAAO,IAAA,cAAI,EAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;KACjD;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,IAAA,wCAA4B,EAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC;AArDD,sCAqDC"}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getEnsName = void 0;
|
4
|
-
const
|
5
|
-
const contract_js_1 = require("../../errors/contract.js");
|
4
|
+
const abis_js_1 = require("../../constants/abis.js");
|
6
5
|
const chain_js_1 = require("../../utils/chain.js");
|
7
6
|
const toHex_js_1 = require("../../utils/encoding/toHex.js");
|
7
|
+
const errors_js_1 = require("../../utils/ens/errors.js");
|
8
8
|
const packetToBytes_js_1 = require("../../utils/ens/packetToBytes.js");
|
9
9
|
const readContract_js_1 = require("../public/readContract.js");
|
10
10
|
async function getEnsName(client, { address, blockNumber, blockTag, universalResolverAddress: universalResolverAddress_, }) {
|
@@ -22,20 +22,7 @@ async function getEnsName(client, { address, blockNumber, blockTag, universalRes
|
|
22
22
|
try {
|
23
23
|
const res = await (0, readContract_js_1.readContract)(client, {
|
24
24
|
address: universalResolverAddress,
|
25
|
-
abi:
|
26
|
-
{
|
27
|
-
name: 'reverse',
|
28
|
-
type: 'function',
|
29
|
-
stateMutability: 'view',
|
30
|
-
inputs: [{ type: 'bytes', name: 'reverseName' }],
|
31
|
-
outputs: [
|
32
|
-
{ type: 'string', name: 'resolvedName' },
|
33
|
-
{ type: 'address', name: 'resolvedAddress' },
|
34
|
-
{ type: 'address', name: 'reverseResolver' },
|
35
|
-
{ type: 'address', name: 'resolver' },
|
36
|
-
],
|
37
|
-
},
|
38
|
-
],
|
25
|
+
abi: abis_js_1.universalResolverReverseAbi,
|
39
26
|
functionName: 'reverse',
|
40
27
|
args: [(0, toHex_js_1.toHex)((0, packetToBytes_js_1.packetToBytes)(reverseNode))],
|
41
28
|
blockNumber,
|
@@ -43,11 +30,10 @@ async function getEnsName(client, { address, blockNumber, blockTag, universalRes
|
|
43
30
|
});
|
44
31
|
return res[0];
|
45
32
|
}
|
46
|
-
catch (
|
47
|
-
if (
|
48
|
-
error.cause.reason === solidity_js_1.panicReasons[50])
|
33
|
+
catch (err) {
|
34
|
+
if ((0, errors_js_1.isNullUniversalResolverError)(err, 'reverse'))
|
49
35
|
return null;
|
50
|
-
throw
|
36
|
+
throw err;
|
51
37
|
}
|
52
38
|
}
|
53
39
|
exports.getEnsName = getEnsName;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsName.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsName.ts"],"names":[],"mappings":";;;AAIA,
|
1
|
+
{"version":3,"file":"getEnsName.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsName.ts"],"names":[],"mappings":";;;AAIA,qDAAqE;AAGrE,mDAA8D;AAC9D,4DAAqD;AACrD,yDAAwE;AACxE,uEAAgE;AAChE,+DAGkC;AAuC3B,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EACE,OAAO,EACP,WAAW,EACX,QAAQ,EACR,wBAAwB,EAAE,yBAAyB,GAC9B;IAEvB,IAAI,wBAAwB,GAAG,yBAAyB,CAAA;IACxD,IAAI,CAAC,wBAAwB,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;YACf,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;QAEH,wBAAwB,GAAG,IAAA,kCAAuB,EAAC;YACjD,WAAW;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,sBAAsB;SACjC,CAAC,CAAA;KACH;IAED,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAA;IACxE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,EAAE;YACrC,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,qCAA2B;YAChC,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,IAAA,gBAAK,EAAC,IAAA,gCAAa,EAAC,WAAW,CAAC,CAAC,CAAC;YACzC,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,IAAA,wCAA4B,EAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC;AAtCD,gCAsCC"}
|
@@ -6,6 +6,7 @@ const decodeFunctionResult_js_1 = require("../../utils/abi/decodeFunctionResult.
|
|
6
6
|
const encodeFunctionData_js_1 = require("../../utils/abi/encodeFunctionData.js");
|
7
7
|
const chain_js_1 = require("../../utils/chain.js");
|
8
8
|
const toHex_js_1 = require("../../utils/encoding/toHex.js");
|
9
|
+
const errors_js_1 = require("../../utils/ens/errors.js");
|
9
10
|
const namehash_js_1 = require("../../utils/ens/namehash.js");
|
10
11
|
const packetToBytes_js_1 = require("../../utils/ens/packetToBytes.js");
|
11
12
|
const readContract_js_1 = require("../public/readContract.js");
|
@@ -20,29 +21,36 @@ async function getEnsText(client, { blockNumber, blockTag, name, key, universalR
|
|
20
21
|
contract: 'ensUniversalResolver',
|
21
22
|
});
|
22
23
|
}
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
24
|
+
try {
|
25
|
+
const res = await (0, readContract_js_1.readContract)(client, {
|
26
|
+
address: universalResolverAddress,
|
27
|
+
abi: abis_js_1.universalResolverResolveAbi,
|
28
|
+
functionName: 'resolve',
|
29
|
+
args: [
|
30
|
+
(0, toHex_js_1.toHex)((0, packetToBytes_js_1.packetToBytes)(name)),
|
31
|
+
(0, encodeFunctionData_js_1.encodeFunctionData)({
|
32
|
+
abi: abis_js_1.textResolverAbi,
|
33
|
+
functionName: 'text',
|
34
|
+
args: [(0, namehash_js_1.namehash)(name), key],
|
35
|
+
}),
|
36
|
+
],
|
37
|
+
blockNumber,
|
38
|
+
blockTag,
|
39
|
+
});
|
40
|
+
if (res[0] === '0x')
|
41
|
+
return null;
|
42
|
+
const record = (0, decodeFunctionResult_js_1.decodeFunctionResult)({
|
43
|
+
abi: abis_js_1.textResolverAbi,
|
44
|
+
functionName: 'text',
|
45
|
+
data: res[0],
|
46
|
+
});
|
47
|
+
return record === '' ? null : record;
|
48
|
+
}
|
49
|
+
catch (err) {
|
50
|
+
if ((0, errors_js_1.isNullUniversalResolverError)(err, 'resolve'))
|
51
|
+
return null;
|
52
|
+
throw err;
|
53
|
+
}
|
46
54
|
}
|
47
55
|
exports.getEnsText = getEnsText;
|
48
56
|
//# sourceMappingURL=getEnsText.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsText.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsText.ts"],"names":[],"mappings":";;;AAIA,
|
1
|
+
{"version":3,"file":"getEnsText.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsText.ts"],"names":[],"mappings":";;;AAIA,qDAGgC;AAGhC,qFAA8E;AAC9E,iFAA0E;AAC1E,mDAA8D;AAC9D,4DAAqD;AACrD,yDAAwE;AACxE,6DAAsD;AACtD,uEAAgE;AAChE,+DAGkC;AA4C3B,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,wBAAwB,EAAE,yBAAyB,GAC9B;IAEvB,IAAI,wBAAwB,GAAG,yBAAyB,CAAA;IACxD,IAAI,CAAC,wBAAwB,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;YACf,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;QAEH,wBAAwB,GAAG,IAAA,kCAAuB,EAAC;YACjD,WAAW;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,sBAAsB;SACjC,CAAC,CAAA;KACH;IAED,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,EAAE;YACrC,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,qCAA2B;YAChC,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE;gBACJ,IAAA,gBAAK,EAAC,IAAA,gCAAa,EAAC,IAAI,CAAC,CAAC;gBAC1B,IAAA,0CAAkB,EAAC;oBACjB,GAAG,EAAE,yBAAe;oBACpB,YAAY,EAAE,MAAM;oBACpB,IAAI,EAAE,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,EAAE,GAAG,CAAC;iBAC5B,CAAC;aACH;YACD,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,MAAM,GAAG,IAAA,8CAAoB,EAAC;YAClC,GAAG,EAAE,yBAAe;YACpB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACb,CAAC,CAAA;QAEF,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;KACrC;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,IAAA,wCAA4B,EAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC;AAtDD,gCAsDC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.universalSignatureValidatorAbi = exports.smartAccountAbi = exports.singleAddressResolverAbi = exports.textResolverAbi = exports.
|
3
|
+
exports.universalSignatureValidatorAbi = exports.smartAccountAbi = exports.singleAddressResolverAbi = exports.textResolverAbi = exports.universalResolverReverseAbi = exports.universalResolverResolveAbi = exports.multicall3Abi = void 0;
|
4
4
|
exports.multicall3Abi = [
|
5
5
|
{
|
6
6
|
inputs: [
|
@@ -44,7 +44,20 @@ exports.multicall3Abi = [
|
|
44
44
|
type: 'function',
|
45
45
|
},
|
46
46
|
];
|
47
|
-
|
47
|
+
const universalResolverErrors = [
|
48
|
+
{
|
49
|
+
inputs: [],
|
50
|
+
name: 'ResolverNotFound',
|
51
|
+
type: 'error',
|
52
|
+
},
|
53
|
+
{
|
54
|
+
inputs: [],
|
55
|
+
name: 'ResolverWildcardNotSupported',
|
56
|
+
type: 'error',
|
57
|
+
},
|
58
|
+
];
|
59
|
+
exports.universalResolverResolveAbi = [
|
60
|
+
...universalResolverErrors,
|
48
61
|
{
|
49
62
|
name: 'resolve',
|
50
63
|
type: 'function',
|
@@ -59,6 +72,21 @@ exports.universalResolverAbi = [
|
|
59
72
|
],
|
60
73
|
},
|
61
74
|
];
|
75
|
+
exports.universalResolverReverseAbi = [
|
76
|
+
...universalResolverErrors,
|
77
|
+
{
|
78
|
+
name: 'reverse',
|
79
|
+
type: 'function',
|
80
|
+
stateMutability: 'view',
|
81
|
+
inputs: [{ type: 'bytes', name: 'reverseName' }],
|
82
|
+
outputs: [
|
83
|
+
{ type: 'string', name: 'resolvedName' },
|
84
|
+
{ type: 'address', name: 'resolvedAddress' },
|
85
|
+
{ type: 'address', name: 'reverseResolver' },
|
86
|
+
{ type: 'address', name: 'resolver' },
|
87
|
+
],
|
88
|
+
},
|
89
|
+
];
|
62
90
|
exports.textResolverAbi = [
|
63
91
|
{
|
64
92
|
name: 'text',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":";;;AACa,QAAA,aAAa,GAAG;IAC3B;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEG,QAAA,
|
1
|
+
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isNullUniversalResolverError = void 0;
|
4
|
+
const solidity_js_1 = require("../../constants/solidity.js");
|
5
|
+
const base_js_1 = require("../../errors/base.js");
|
6
|
+
const contract_js_1 = require("../../errors/contract.js");
|
7
|
+
function isNullUniversalResolverError(err, callType) {
|
8
|
+
if (!(err instanceof base_js_1.BaseError))
|
9
|
+
return false;
|
10
|
+
const cause = err.walk((e) => e instanceof contract_js_1.ContractFunctionRevertedError);
|
11
|
+
if (!(cause instanceof contract_js_1.ContractFunctionRevertedError))
|
12
|
+
return false;
|
13
|
+
if (cause.data?.errorName === 'ResolverNotFound')
|
14
|
+
return true;
|
15
|
+
if (cause.data?.errorName === 'ResolverWildcardNotSupported')
|
16
|
+
return true;
|
17
|
+
if (cause.reason?.includes('Wildcard on non-extended resolvers is not supported'))
|
18
|
+
return true;
|
19
|
+
if (callType === 'reverse' && cause.reason === solidity_js_1.panicReasons[50])
|
20
|
+
return true;
|
21
|
+
return false;
|
22
|
+
}
|
23
|
+
exports.isNullUniversalResolverError = isNullUniversalResolverError;
|
24
|
+
//# sourceMappingURL=errors.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/utils/ens/errors.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAC1D,kDAAgD;AAChD,0DAAwE;AAKxE,SAAgB,4BAA4B,CAC1C,GAAY,EACZ,QAA+B;IAE/B,IAAI,CAAC,CAAC,GAAG,YAAY,mBAAS,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,2CAA6B,CAAC,CAAA;IACzE,IAAI,CAAC,CAAC,KAAK,YAAY,2CAA6B,CAAC;QAAE,OAAO,KAAK,CAAA;IACnE,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAA;IAC7D,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,KAAK,8BAA8B;QAAE,OAAO,IAAI,CAAA;IAEzE,IACE,KAAK,CAAC,MAAM,EAAE,QAAQ,CACpB,qDAAqD,CACtD;QAED,OAAO,IAAI,CAAA;IAEb,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,0BAAY,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5E,OAAO,KAAK,CAAA;AACd,CAAC;AAnBD,oEAmBC"}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { singleAddressResolverAbi,
|
2
|
-
import { ContractFunctionExecutionError, ContractFunctionRevertedError, } from '../../errors/contract.js';
|
1
|
+
import { singleAddressResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';
|
3
2
|
import { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js';
|
4
3
|
import { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js';
|
5
4
|
import { getChainContractAddress } from '../../utils/chain.js';
|
6
5
|
import { trim } from '../../utils/data/trim.js';
|
7
6
|
import { toHex } from '../../utils/encoding/toHex.js';
|
7
|
+
import { isNullUniversalResolverError } from '../../utils/ens/errors.js';
|
8
8
|
import { namehash } from '../../utils/ens/namehash.js';
|
9
9
|
import { packetToBytes } from '../../utils/ens/packetToBytes.js';
|
10
10
|
import { readContract, } from '../public/readContract.js';
|
@@ -50,7 +50,7 @@ export async function getEnsAddress(client, { blockNumber, blockTag, name, unive
|
|
50
50
|
try {
|
51
51
|
const res = await readContract(client, {
|
52
52
|
address: universalResolverAddress,
|
53
|
-
abi:
|
53
|
+
abi: universalResolverResolveAbi,
|
54
54
|
functionName: 'resolve',
|
55
55
|
args: [
|
56
56
|
toHex(packetToBytes(name)),
|
@@ -73,11 +73,8 @@ export async function getEnsAddress(client, { blockNumber, blockTag, name, unive
|
|
73
73
|
return trim(address) === '0x00' ? null : address;
|
74
74
|
}
|
75
75
|
catch (err) {
|
76
|
-
if (err
|
77
|
-
|
78
|
-
if (reason?.includes('Wildcard on non-extended resolvers is not supported'))
|
79
|
-
return null;
|
80
|
-
}
|
76
|
+
if (isNullUniversalResolverError(err, 'resolve'))
|
77
|
+
return null;
|
81
78
|
throw err;
|
82
79
|
}
|
83
80
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsAddress.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,EACxB,
|
1
|
+
{"version":3,"file":"getEnsAddress.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAEL,YAAY,GACb,MAAM,2BAA2B,CAAA;AAalC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,wBAAwB,EAAE,yBAAyB,GAC3B;IAE1B,IAAI,wBAAwB,GAAG,yBAAyB,CAAA;IACxD,IAAI,CAAC,wBAAwB,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;YACf,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;QAEH,wBAAwB,GAAG,uBAAuB,CAAC;YACjD,WAAW;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,sBAAsB;SACjC,CAAC,CAAA;KACH;IAED,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;YACrC,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,2BAA2B;YAChC,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE;gBACJ,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC1B,kBAAkB,CAAC;oBACjB,GAAG,EAAE,wBAAwB;oBAC7B,YAAY,EAAE,MAAM;oBACpB,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACvB,CAAC;aACH;YACD,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACnC,GAAG,EAAE,wBAAwB;YAC7B,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;KACjD;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,4BAA4B,CAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
import { ContractFunctionExecutionError, } from '../../errors/contract.js';
|
1
|
+
import { universalResolverReverseAbi } from '../../constants/abis.js';
|
3
2
|
import { getChainContractAddress } from '../../utils/chain.js';
|
4
3
|
import { toHex } from '../../utils/encoding/toHex.js';
|
4
|
+
import { isNullUniversalResolverError } from '../../utils/ens/errors.js';
|
5
5
|
import { packetToBytes } from '../../utils/ens/packetToBytes.js';
|
6
6
|
import { readContract, } from '../public/readContract.js';
|
7
7
|
/**
|
@@ -45,20 +45,7 @@ export async function getEnsName(client, { address, blockNumber, blockTag, unive
|
|
45
45
|
try {
|
46
46
|
const res = await readContract(client, {
|
47
47
|
address: universalResolverAddress,
|
48
|
-
abi:
|
49
|
-
{
|
50
|
-
name: 'reverse',
|
51
|
-
type: 'function',
|
52
|
-
stateMutability: 'view',
|
53
|
-
inputs: [{ type: 'bytes', name: 'reverseName' }],
|
54
|
-
outputs: [
|
55
|
-
{ type: 'string', name: 'resolvedName' },
|
56
|
-
{ type: 'address', name: 'resolvedAddress' },
|
57
|
-
{ type: 'address', name: 'reverseResolver' },
|
58
|
-
{ type: 'address', name: 'resolver' },
|
59
|
-
],
|
60
|
-
},
|
61
|
-
],
|
48
|
+
abi: universalResolverReverseAbi,
|
62
49
|
functionName: 'reverse',
|
63
50
|
args: [toHex(packetToBytes(reverseNode))],
|
64
51
|
blockNumber,
|
@@ -66,12 +53,10 @@ export async function getEnsName(client, { address, blockNumber, blockTag, unive
|
|
66
53
|
});
|
67
54
|
return res[0];
|
68
55
|
}
|
69
|
-
catch (
|
70
|
-
if (
|
71
|
-
error.cause.reason === panicReasons[50])
|
72
|
-
// No primary name set for address.
|
56
|
+
catch (err) {
|
57
|
+
if (isNullUniversalResolverError(err, 'reverse'))
|
73
58
|
return null;
|
74
|
-
throw
|
59
|
+
throw err;
|
75
60
|
}
|
76
61
|
}
|
77
62
|
//# sourceMappingURL=getEnsName.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsName.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsName.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"getEnsName.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsName.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAGrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAEL,YAAY,GACb,MAAM,2BAA2B,CAAA;AAalC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EACE,OAAO,EACP,WAAW,EACX,QAAQ,EACR,wBAAwB,EAAE,yBAAyB,GAC9B;IAEvB,IAAI,wBAAwB,GAAG,yBAAyB,CAAA;IACxD,IAAI,CAAC,wBAAwB,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;YACf,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;QAEH,wBAAwB,GAAG,uBAAuB,CAAC;YACjD,WAAW;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,sBAAsB;SACjC,CAAC,CAAA;KACH;IAED,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAA;IACxE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;YACrC,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,2BAA2B;YAChC,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;YACzC,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,4BAA4B,CAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC"}
|
@@ -1,8 +1,9 @@
|
|
1
|
-
import { textResolverAbi,
|
1
|
+
import { textResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';
|
2
2
|
import { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js';
|
3
3
|
import { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js';
|
4
4
|
import { getChainContractAddress } from '../../utils/chain.js';
|
5
5
|
import { toHex } from '../../utils/encoding/toHex.js';
|
6
|
+
import { isNullUniversalResolverError } from '../../utils/ens/errors.js';
|
6
7
|
import { namehash } from '../../utils/ens/namehash.js';
|
7
8
|
import { packetToBytes } from '../../utils/ens/packetToBytes.js';
|
8
9
|
import { readContract, } from '../public/readContract.js';
|
@@ -46,28 +47,35 @@ export async function getEnsText(client, { blockNumber, blockTag, name, key, uni
|
|
46
47
|
contract: 'ensUniversalResolver',
|
47
48
|
});
|
48
49
|
}
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
50
|
+
try {
|
51
|
+
const res = await readContract(client, {
|
52
|
+
address: universalResolverAddress,
|
53
|
+
abi: universalResolverResolveAbi,
|
54
|
+
functionName: 'resolve',
|
55
|
+
args: [
|
56
|
+
toHex(packetToBytes(name)),
|
57
|
+
encodeFunctionData({
|
58
|
+
abi: textResolverAbi,
|
59
|
+
functionName: 'text',
|
60
|
+
args: [namehash(name), key],
|
61
|
+
}),
|
62
|
+
],
|
63
|
+
blockNumber,
|
64
|
+
blockTag,
|
65
|
+
});
|
66
|
+
if (res[0] === '0x')
|
67
|
+
return null;
|
68
|
+
const record = decodeFunctionResult({
|
69
|
+
abi: textResolverAbi,
|
70
|
+
functionName: 'text',
|
71
|
+
data: res[0],
|
72
|
+
});
|
73
|
+
return record === '' ? null : record;
|
74
|
+
}
|
75
|
+
catch (err) {
|
76
|
+
if (isNullUniversalResolverError(err, 'resolve'))
|
77
|
+
return null;
|
78
|
+
throw err;
|
79
|
+
}
|
72
80
|
}
|
73
81
|
//# sourceMappingURL=getEnsText.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsText.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsText.ts"],"names":[],"mappings":"AAIA,OAAO,
|
1
|
+
{"version":3,"file":"getEnsText.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsText.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,2BAA2B,GAC5B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAEL,YAAY,GACb,MAAM,2BAA2B,CAAA;AAelC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,wBAAwB,EAAE,yBAAyB,GAC9B;IAEvB,IAAI,wBAAwB,GAAG,yBAAyB,CAAA;IACxD,IAAI,CAAC,wBAAwB,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;YACf,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;QAEH,wBAAwB,GAAG,uBAAuB,CAAC;YACjD,WAAW;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,sBAAsB;SACjC,CAAC,CAAA;KACH;IAED,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;YACrC,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,2BAA2B;YAChC,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE;gBACJ,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC1B,kBAAkB,CAAC;oBACjB,GAAG,EAAE,eAAe;oBACpB,YAAY,EAAE,MAAM;oBACpB,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;iBAC5B,CAAC;aACH;YACD,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,MAAM,GAAG,oBAAoB,CAAC;YAClC,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACb,CAAC,CAAA;QAEF,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;KACrC;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,4BAA4B,CAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC"}
|
@@ -42,7 +42,20 @@ export const multicall3Abi = [
|
|
42
42
|
type: 'function',
|
43
43
|
},
|
44
44
|
];
|
45
|
-
|
45
|
+
const universalResolverErrors = [
|
46
|
+
{
|
47
|
+
inputs: [],
|
48
|
+
name: 'ResolverNotFound',
|
49
|
+
type: 'error',
|
50
|
+
},
|
51
|
+
{
|
52
|
+
inputs: [],
|
53
|
+
name: 'ResolverWildcardNotSupported',
|
54
|
+
type: 'error',
|
55
|
+
},
|
56
|
+
];
|
57
|
+
export const universalResolverResolveAbi = [
|
58
|
+
...universalResolverErrors,
|
46
59
|
{
|
47
60
|
name: 'resolve',
|
48
61
|
type: 'function',
|
@@ -57,6 +70,21 @@ export const universalResolverAbi = [
|
|
57
70
|
],
|
58
71
|
},
|
59
72
|
];
|
73
|
+
export const universalResolverReverseAbi = [
|
74
|
+
...universalResolverErrors,
|
75
|
+
{
|
76
|
+
name: 'reverse',
|
77
|
+
type: 'function',
|
78
|
+
stateMutability: 'view',
|
79
|
+
inputs: [{ type: 'bytes', name: 'reverseName' }],
|
80
|
+
outputs: [
|
81
|
+
{ type: 'string', name: 'resolvedName' },
|
82
|
+
{ type: 'address', name: 'resolvedAddress' },
|
83
|
+
{ type: 'address', name: 'reverseResolver' },
|
84
|
+
{ type: 'address', name: 'resolver' },
|
85
|
+
],
|
86
|
+
},
|
87
|
+
];
|
60
88
|
export const textResolverAbi = [
|
61
89
|
{
|
62
90
|
name: 'text',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,
|
1
|
+
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV,MAAM,uBAAuB,GAAG;IAC9B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,OAAO;KACd;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,GAAG,uBAAuB;IAC1B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;SAChC;QACD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC;KACF;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,GAAG,uBAAuB;IAC1B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAChD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;SACtC;KACF;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACxC;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;CACO,CAAA;AAEV,WAAW;AACX,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;SACrC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACxC;CACO,CAAA;AAEV,+DAA+D;AAC/D,qFAAqF;AACrF,qDAAqD;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;CACO,CAAA"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export const version = '1.2.
|
1
|
+
export const version = '1.2.15';
|
2
2
|
//# sourceMappingURL=version.js.map
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { panicReasons } from '../../constants/solidity.js';
|
2
|
+
import { BaseError } from '../../errors/base.js';
|
3
|
+
import { ContractFunctionRevertedError } from '../../errors/contract.js';
|
4
|
+
/*
|
5
|
+
* @description Checks if error is a valid null result UniversalResolver error
|
6
|
+
*/
|
7
|
+
export function isNullUniversalResolverError(err, callType) {
|
8
|
+
if (!(err instanceof BaseError))
|
9
|
+
return false;
|
10
|
+
const cause = err.walk((e) => e instanceof ContractFunctionRevertedError);
|
11
|
+
if (!(cause instanceof ContractFunctionRevertedError))
|
12
|
+
return false;
|
13
|
+
if (cause.data?.errorName === 'ResolverNotFound')
|
14
|
+
return true;
|
15
|
+
if (cause.data?.errorName === 'ResolverWildcardNotSupported')
|
16
|
+
return true;
|
17
|
+
// Backwards compatibility for older UniversalResolver contracts
|
18
|
+
if (cause.reason?.includes('Wildcard on non-extended resolvers is not supported'))
|
19
|
+
return true;
|
20
|
+
// No primary name set for address.
|
21
|
+
if (callType === 'reverse' && cause.reason === panicReasons[50])
|
22
|
+
return true;
|
23
|
+
return false;
|
24
|
+
}
|
25
|
+
//# sourceMappingURL=errors.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/utils/ens/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAA;AAExE;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,GAAY,EACZ,QAA+B;IAE/B,IAAI,CAAC,CAAC,GAAG,YAAY,SAAS,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,6BAA6B,CAAC,CAAA;IACzE,IAAI,CAAC,CAAC,KAAK,YAAY,6BAA6B,CAAC;QAAE,OAAO,KAAK,CAAA;IACnE,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAA;IAC7D,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,KAAK,8BAA8B;QAAE,OAAO,IAAI,CAAA;IACzE,gEAAgE;IAChE,IACE,KAAK,CAAC,MAAM,EAAE,QAAQ,CACpB,qDAAqD,CACtD;QAED,OAAO,IAAI,CAAA;IACb,mCAAmC;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5E,OAAO,KAAK,CAAA;AACd,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsAddress.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;
|
1
|
+
{"version":3,"file":"getEnsAddress.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAK5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AASpD,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAA;AAElC,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC5C,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,UAAU,CAAC,GAAG;IACzD,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,CACF,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAClE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,wBAAwB,EAAE,yBAAyB,GACpD,EAAE,uBAAuB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CA6ClC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsName.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;
|
1
|
+
{"version":3,"file":"getEnsName.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAE5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAKpD,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAA;AAElC,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,UAAU,CAAC,GAAG;IACzD,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,UAAU,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAC/D,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EACE,OAAO,EACP,WAAW,EACX,QAAQ,EACR,wBAAwB,EAAE,yBAAyB,GACpD,EAAE,oBAAoB,GACtB,OAAO,CAAC,oBAAoB,CAAC,CA8B/B"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getEnsText.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;
|
1
|
+
{"version":3,"file":"getEnsText.d.ts","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAK5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAQpD,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAA;AAElC,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,UAAU,CAAC,GAAG;IACzD,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,UAAU,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAC/D,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,wBAAwB,EAAE,yBAAyB,GACpD,EAAE,oBAAoB,GACtB,OAAO,CAAC,oBAAoB,CAAC,CA6C/B"}
|
@@ -28,7 +28,15 @@ export declare const multicall3Abi: readonly [{
|
|
28
28
|
readonly stateMutability: "view";
|
29
29
|
readonly type: "function";
|
30
30
|
}];
|
31
|
-
export declare const
|
31
|
+
export declare const universalResolverResolveAbi: readonly [{
|
32
|
+
readonly inputs: readonly [];
|
33
|
+
readonly name: "ResolverNotFound";
|
34
|
+
readonly type: "error";
|
35
|
+
}, {
|
36
|
+
readonly inputs: readonly [];
|
37
|
+
readonly name: "ResolverWildcardNotSupported";
|
38
|
+
readonly type: "error";
|
39
|
+
}, {
|
32
40
|
readonly name: "resolve";
|
33
41
|
readonly type: "function";
|
34
42
|
readonly stateMutability: "view";
|
@@ -47,6 +55,36 @@ export declare const universalResolverAbi: readonly [{
|
|
47
55
|
readonly type: "address";
|
48
56
|
}];
|
49
57
|
}];
|
58
|
+
export declare const universalResolverReverseAbi: readonly [{
|
59
|
+
readonly inputs: readonly [];
|
60
|
+
readonly name: "ResolverNotFound";
|
61
|
+
readonly type: "error";
|
62
|
+
}, {
|
63
|
+
readonly inputs: readonly [];
|
64
|
+
readonly name: "ResolverWildcardNotSupported";
|
65
|
+
readonly type: "error";
|
66
|
+
}, {
|
67
|
+
readonly name: "reverse";
|
68
|
+
readonly type: "function";
|
69
|
+
readonly stateMutability: "view";
|
70
|
+
readonly inputs: readonly [{
|
71
|
+
readonly type: "bytes";
|
72
|
+
readonly name: "reverseName";
|
73
|
+
}];
|
74
|
+
readonly outputs: readonly [{
|
75
|
+
readonly type: "string";
|
76
|
+
readonly name: "resolvedName";
|
77
|
+
}, {
|
78
|
+
readonly type: "address";
|
79
|
+
readonly name: "resolvedAddress";
|
80
|
+
}, {
|
81
|
+
readonly type: "address";
|
82
|
+
readonly name: "reverseResolver";
|
83
|
+
}, {
|
84
|
+
readonly type: "address";
|
85
|
+
readonly name: "resolver";
|
86
|
+
}];
|
87
|
+
}];
|
50
88
|
export declare const textResolverAbi: readonly [{
|
51
89
|
readonly name: "text";
|
52
90
|
readonly type: "function";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0ChB,CAAA;AAEV,eAAO,MAAM,
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0ChB,CAAA;AAeV,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAA;AAEV,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc9B,CAAA;AAEV,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAWlB,CAAA;AAEV,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAQ3B,CAAA;AAIV,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAWlB,CAAA;AAKV,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;EAsBjC,CAAA"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "1.2.
|
1
|
+
export declare const version = "1.2.15";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/utils/ens/errors.ts"],"names":[],"mappings":"AAOA,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,SAAS,GAAG,SAAS,GAC9B,OAAO,CAgBT"}
|
package/package.json
CHANGED
@@ -4,12 +4,8 @@ import type { Client } from '../../clients/createClient.js'
|
|
4
4
|
import type { Transport } from '../../clients/transports/createTransport.js'
|
5
5
|
import {
|
6
6
|
singleAddressResolverAbi,
|
7
|
-
|
7
|
+
universalResolverResolveAbi,
|
8
8
|
} from '../../constants/abis.js'
|
9
|
-
import {
|
10
|
-
ContractFunctionExecutionError,
|
11
|
-
ContractFunctionRevertedError,
|
12
|
-
} from '../../errors/contract.js'
|
13
9
|
import type { Chain } from '../../types/chain.js'
|
14
10
|
import type { Prettify } from '../../types/utils.js'
|
15
11
|
import { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js'
|
@@ -17,6 +13,7 @@ import { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js'
|
|
17
13
|
import { getChainContractAddress } from '../../utils/chain.js'
|
18
14
|
import { trim } from '../../utils/data/trim.js'
|
19
15
|
import { toHex } from '../../utils/encoding/toHex.js'
|
16
|
+
import { isNullUniversalResolverError } from '../../utils/ens/errors.js'
|
20
17
|
import { namehash } from '../../utils/ens/namehash.js'
|
21
18
|
import { packetToBytes } from '../../utils/ens/packetToBytes.js'
|
22
19
|
import {
|
@@ -89,7 +86,7 @@ export async function getEnsAddress<TChain extends Chain | undefined,>(
|
|
89
86
|
try {
|
90
87
|
const res = await readContract(client, {
|
91
88
|
address: universalResolverAddress,
|
92
|
-
abi:
|
89
|
+
abi: universalResolverResolveAbi,
|
93
90
|
functionName: 'resolve',
|
94
91
|
args: [
|
95
92
|
toHex(packetToBytes(name)),
|
@@ -113,13 +110,7 @@ export async function getEnsAddress<TChain extends Chain | undefined,>(
|
|
113
110
|
|
114
111
|
return trim(address) === '0x00' ? null : address
|
115
112
|
} catch (err) {
|
116
|
-
if (err
|
117
|
-
const reason = (err.cause as ContractFunctionRevertedError)?.reason
|
118
|
-
if (
|
119
|
-
reason?.includes('Wildcard on non-extended resolvers is not supported')
|
120
|
-
)
|
121
|
-
return null
|
122
|
-
}
|
113
|
+
if (isNullUniversalResolverError(err, 'resolve')) return null
|
123
114
|
throw err
|
124
115
|
}
|
125
116
|
}
|
@@ -2,15 +2,12 @@ import type { Address } from 'abitype'
|
|
2
2
|
|
3
3
|
import type { Client } from '../../clients/createClient.js'
|
4
4
|
import type { Transport } from '../../clients/transports/createTransport.js'
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
ContractFunctionExecutionError,
|
8
|
-
type ContractFunctionRevertedError,
|
9
|
-
} from '../../errors/contract.js'
|
5
|
+
import { universalResolverReverseAbi } from '../../constants/abis.js'
|
10
6
|
import type { Chain } from '../../types/chain.js'
|
11
7
|
import type { Prettify } from '../../types/utils.js'
|
12
8
|
import { getChainContractAddress } from '../../utils/chain.js'
|
13
9
|
import { toHex } from '../../utils/encoding/toHex.js'
|
10
|
+
import { isNullUniversalResolverError } from '../../utils/ens/errors.js'
|
14
11
|
import { packetToBytes } from '../../utils/ens/packetToBytes.js'
|
15
12
|
import {
|
16
13
|
type ReadContractParameters,
|
@@ -81,33 +78,15 @@ export async function getEnsName<TChain extends Chain | undefined>(
|
|
81
78
|
try {
|
82
79
|
const res = await readContract(client, {
|
83
80
|
address: universalResolverAddress,
|
84
|
-
abi:
|
85
|
-
{
|
86
|
-
name: 'reverse',
|
87
|
-
type: 'function',
|
88
|
-
stateMutability: 'view',
|
89
|
-
inputs: [{ type: 'bytes', name: 'reverseName' }],
|
90
|
-
outputs: [
|
91
|
-
{ type: 'string', name: 'resolvedName' },
|
92
|
-
{ type: 'address', name: 'resolvedAddress' },
|
93
|
-
{ type: 'address', name: 'reverseResolver' },
|
94
|
-
{ type: 'address', name: 'resolver' },
|
95
|
-
],
|
96
|
-
},
|
97
|
-
],
|
81
|
+
abi: universalResolverReverseAbi,
|
98
82
|
functionName: 'reverse',
|
99
83
|
args: [toHex(packetToBytes(reverseNode))],
|
100
84
|
blockNumber,
|
101
85
|
blockTag,
|
102
86
|
})
|
103
87
|
return res[0]
|
104
|
-
} catch (
|
105
|
-
if (
|
106
|
-
|
107
|
-
(error.cause as ContractFunctionRevertedError).reason === panicReasons[50]
|
108
|
-
)
|
109
|
-
// No primary name set for address.
|
110
|
-
return null
|
111
|
-
throw error
|
88
|
+
} catch (err) {
|
89
|
+
if (isNullUniversalResolverError(err, 'reverse')) return null
|
90
|
+
throw err
|
112
91
|
}
|
113
92
|
}
|
@@ -2,13 +2,17 @@ import type { Address } from 'abitype'
|
|
2
2
|
|
3
3
|
import type { Client } from '../../clients/createClient.js'
|
4
4
|
import type { Transport } from '../../clients/transports/createTransport.js'
|
5
|
-
import {
|
5
|
+
import {
|
6
|
+
textResolverAbi,
|
7
|
+
universalResolverResolveAbi,
|
8
|
+
} from '../../constants/abis.js'
|
6
9
|
import type { Chain } from '../../types/chain.js'
|
7
10
|
import type { Prettify } from '../../types/utils.js'
|
8
11
|
import { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js'
|
9
12
|
import { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js'
|
10
13
|
import { getChainContractAddress } from '../../utils/chain.js'
|
11
14
|
import { toHex } from '../../utils/encoding/toHex.js'
|
15
|
+
import { isNullUniversalResolverError } from '../../utils/ens/errors.js'
|
12
16
|
import { namehash } from '../../utils/ens/namehash.js'
|
13
17
|
import { packetToBytes } from '../../utils/ens/packetToBytes.js'
|
14
18
|
import {
|
@@ -82,29 +86,34 @@ export async function getEnsText<TChain extends Chain | undefined>(
|
|
82
86
|
})
|
83
87
|
}
|
84
88
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
89
|
+
try {
|
90
|
+
const res = await readContract(client, {
|
91
|
+
address: universalResolverAddress,
|
92
|
+
abi: universalResolverResolveAbi,
|
93
|
+
functionName: 'resolve',
|
94
|
+
args: [
|
95
|
+
toHex(packetToBytes(name)),
|
96
|
+
encodeFunctionData({
|
97
|
+
abi: textResolverAbi,
|
98
|
+
functionName: 'text',
|
99
|
+
args: [namehash(name), key],
|
100
|
+
}),
|
101
|
+
],
|
102
|
+
blockNumber,
|
103
|
+
blockTag,
|
104
|
+
})
|
100
105
|
|
101
|
-
|
106
|
+
if (res[0] === '0x') return null
|
102
107
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
+
const record = decodeFunctionResult({
|
109
|
+
abi: textResolverAbi,
|
110
|
+
functionName: 'text',
|
111
|
+
data: res[0],
|
112
|
+
})
|
108
113
|
|
109
|
-
|
114
|
+
return record === '' ? null : record
|
115
|
+
} catch (err) {
|
116
|
+
if (isNullUniversalResolverError(err, 'resolve')) return null
|
117
|
+
throw err
|
118
|
+
}
|
110
119
|
}
|
package/src/constants/abis.ts
CHANGED
@@ -43,7 +43,21 @@ export const multicall3Abi = [
|
|
43
43
|
},
|
44
44
|
] as const
|
45
45
|
|
46
|
-
|
46
|
+
const universalResolverErrors = [
|
47
|
+
{
|
48
|
+
inputs: [],
|
49
|
+
name: 'ResolverNotFound',
|
50
|
+
type: 'error',
|
51
|
+
},
|
52
|
+
{
|
53
|
+
inputs: [],
|
54
|
+
name: 'ResolverWildcardNotSupported',
|
55
|
+
type: 'error',
|
56
|
+
},
|
57
|
+
] as const
|
58
|
+
|
59
|
+
export const universalResolverResolveAbi = [
|
60
|
+
...universalResolverErrors,
|
47
61
|
{
|
48
62
|
name: 'resolve',
|
49
63
|
type: 'function',
|
@@ -59,6 +73,22 @@ export const universalResolverAbi = [
|
|
59
73
|
},
|
60
74
|
] as const
|
61
75
|
|
76
|
+
export const universalResolverReverseAbi = [
|
77
|
+
...universalResolverErrors,
|
78
|
+
{
|
79
|
+
name: 'reverse',
|
80
|
+
type: 'function',
|
81
|
+
stateMutability: 'view',
|
82
|
+
inputs: [{ type: 'bytes', name: 'reverseName' }],
|
83
|
+
outputs: [
|
84
|
+
{ type: 'string', name: 'resolvedName' },
|
85
|
+
{ type: 'address', name: 'resolvedAddress' },
|
86
|
+
{ type: 'address', name: 'reverseResolver' },
|
87
|
+
{ type: 'address', name: 'resolver' },
|
88
|
+
],
|
89
|
+
},
|
90
|
+
] as const
|
91
|
+
|
62
92
|
export const textResolverAbi = [
|
63
93
|
{
|
64
94
|
name: 'text',
|
package/src/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '1.2.
|
1
|
+
export const version = '1.2.15'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { panicReasons } from '../../constants/solidity.js'
|
2
|
+
import { BaseError } from '../../errors/base.js'
|
3
|
+
import { ContractFunctionRevertedError } from '../../errors/contract.js'
|
4
|
+
|
5
|
+
/*
|
6
|
+
* @description Checks if error is a valid null result UniversalResolver error
|
7
|
+
*/
|
8
|
+
export function isNullUniversalResolverError(
|
9
|
+
err: unknown,
|
10
|
+
callType: 'resolve' | 'reverse',
|
11
|
+
): boolean {
|
12
|
+
if (!(err instanceof BaseError)) return false
|
13
|
+
const cause = err.walk((e) => e instanceof ContractFunctionRevertedError)
|
14
|
+
if (!(cause instanceof ContractFunctionRevertedError)) return false
|
15
|
+
if (cause.data?.errorName === 'ResolverNotFound') return true
|
16
|
+
if (cause.data?.errorName === 'ResolverWildcardNotSupported') return true
|
17
|
+
// Backwards compatibility for older UniversalResolver contracts
|
18
|
+
if (
|
19
|
+
cause.reason?.includes(
|
20
|
+
'Wildcard on non-extended resolvers is not supported',
|
21
|
+
)
|
22
|
+
)
|
23
|
+
return true
|
24
|
+
// No primary name set for address.
|
25
|
+
if (callType === 'reverse' && cause.reason === panicReasons[50]) return true
|
26
|
+
return false
|
27
|
+
}
|