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.
Files changed (37) hide show
  1. package/dist/cjs/actions/ens/getEnsAddress.js +4 -7
  2. package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
  3. package/dist/cjs/actions/ens/getEnsName.js +6 -20
  4. package/dist/cjs/actions/ens/getEnsName.js.map +1 -1
  5. package/dist/cjs/actions/ens/getEnsText.js +31 -23
  6. package/dist/cjs/actions/ens/getEnsText.js.map +1 -1
  7. package/dist/cjs/constants/abis.js +30 -2
  8. package/dist/cjs/constants/abis.js.map +1 -1
  9. package/dist/cjs/errors/version.js +1 -1
  10. package/dist/cjs/utils/ens/errors.js +24 -0
  11. package/dist/cjs/utils/ens/errors.js.map +1 -0
  12. package/dist/esm/actions/ens/getEnsAddress.js +5 -8
  13. package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
  14. package/dist/esm/actions/ens/getEnsName.js +6 -21
  15. package/dist/esm/actions/ens/getEnsName.js.map +1 -1
  16. package/dist/esm/actions/ens/getEnsText.js +32 -24
  17. package/dist/esm/actions/ens/getEnsText.js.map +1 -1
  18. package/dist/esm/constants/abis.js +29 -1
  19. package/dist/esm/constants/abis.js.map +1 -1
  20. package/dist/esm/errors/version.js +1 -1
  21. package/dist/esm/utils/ens/errors.js +25 -0
  22. package/dist/esm/utils/ens/errors.js.map +1 -0
  23. package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
  24. package/dist/types/actions/ens/getEnsName.d.ts.map +1 -1
  25. package/dist/types/actions/ens/getEnsText.d.ts.map +1 -1
  26. package/dist/types/constants/abis.d.ts +39 -1
  27. package/dist/types/constants/abis.d.ts.map +1 -1
  28. package/dist/types/errors/version.d.ts +1 -1
  29. package/dist/types/utils/ens/errors.d.ts +2 -0
  30. package/dist/types/utils/ens/errors.d.ts.map +1 -0
  31. package/package.json +1 -1
  32. package/src/actions/ens/getEnsAddress.ts +4 -13
  33. package/src/actions/ens/getEnsName.ts +6 -27
  34. package/src/actions/ens/getEnsText.ts +32 -23
  35. package/src/constants/abis.ts +31 -1
  36. package/src/errors/version.ts +1 -1
  37. 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.universalResolverAbi,
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 (err instanceof contract_js_1.ContractFunctionExecutionError) {
52
- const reason = err.cause?.reason;
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;AAChC,0DAGiC;AAGjC,qFAA8E;AAC9E,iFAA0E;AAC1E,mDAA8D;AAC9D,sDAA+C;AAC/C,4DAAqD;AACrD,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,8BAAoB;YACzB,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,GAAG,YAAY,4CAA8B,EAAE;YACjD,MAAM,MAAM,GAAI,GAAG,CAAC,KAAuC,EAAE,MAAM,CAAA;YACnE,IACE,MAAM,EAAE,QAAQ,CAAC,qDAAqD,CAAC;gBAEvE,OAAO,IAAI,CAAA;SACd;QACD,MAAM,GAAG,CAAA;KACV;AACH,CAAC;AA3DD,sCA2DC"}
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 solidity_js_1 = require("../../constants/solidity.js");
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 (error) {
47
- if (error instanceof contract_js_1.ContractFunctionExecutionError &&
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 error;
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,6DAA0D;AAC1D,0DAGiC;AAGjC,mDAA8D;AAC9D,4DAAqD;AACrD,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;gBACH;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,UAAU;oBAChB,eAAe,EAAE,MAAM;oBACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;oBAChD,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE;wBACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;qBACtC;iBACF;aACF;YACD,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,KAAK,EAAE;QACd,IACE,KAAK,YAAY,4CAA8B;YAC9C,KAAK,CAAC,KAAuC,CAAC,MAAM,KAAK,0BAAY,CAAC,EAAE,CAAC;YAG1E,OAAO,IAAI,CAAA;QACb,MAAM,KAAK,CAAA;KACZ;AACH,CAAC;AAxDD,gCAwDC"}
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
- const res = await (0, readContract_js_1.readContract)(client, {
24
- address: universalResolverAddress,
25
- abi: abis_js_1.universalResolverAbi,
26
- functionName: 'resolve',
27
- args: [
28
- (0, toHex_js_1.toHex)((0, packetToBytes_js_1.packetToBytes)(name)),
29
- (0, encodeFunctionData_js_1.encodeFunctionData)({
30
- abi: abis_js_1.textResolverAbi,
31
- functionName: 'text',
32
- args: [(0, namehash_js_1.namehash)(name), key],
33
- }),
34
- ],
35
- blockNumber,
36
- blockTag,
37
- });
38
- if (res[0] === '0x')
39
- return null;
40
- const record = (0, decodeFunctionResult_js_1.decodeFunctionResult)({
41
- abi: abis_js_1.textResolverAbi,
42
- functionName: 'text',
43
- data: res[0],
44
- });
45
- return record === '' ? null : record;
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,qDAA+E;AAG/E,qFAA8E;AAC9E,iFAA0E;AAC1E,mDAA8D;AAC9D,4DAAqD;AACrD,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,MAAM,GAAG,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,EAAE;QACrC,OAAO,EAAE,wBAAwB;QACjC,GAAG,EAAE,8BAAoB;QACzB,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE;YACJ,IAAA,gBAAK,EAAC,IAAA,gCAAa,EAAC,IAAI,CAAC,CAAC;YAC1B,IAAA,0CAAkB,EAAC;gBACjB,GAAG,EAAE,yBAAe;gBACpB,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,EAAE,GAAG,CAAC;aAC5B,CAAC;SACH;QACD,WAAW;QACX,QAAQ;KACT,CAAC,CAAA;IAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEhC,MAAM,MAAM,GAAG,IAAA,8CAAoB,EAAC;QAClC,GAAG,EAAE,yBAAe;QACpB,YAAY,EAAE,MAAM;QACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KACb,CAAC,CAAA;IAEF,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;AACtC,CAAC;AAjDD,gCAiDC"}
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.universalResolverAbi = exports.multicall3Abi = void 0;
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
- exports.universalResolverAbi = [
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":"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"}
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '1.2.14';
4
+ exports.version = '1.2.15';
5
5
  //# sourceMappingURL=version.js.map
@@ -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, universalResolverAbi, } from '../../constants/abis.js';
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: universalResolverAbi,
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 instanceof ContractFunctionExecutionError) {
77
- const reason = err.cause?.reason;
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,oBAAoB,GACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA;AAGjC,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,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,oBAAoB;YACzB,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,GAAG,YAAY,8BAA8B,EAAE;YACjD,MAAM,MAAM,GAAI,GAAG,CAAC,KAAuC,EAAE,MAAM,CAAA;YACnE,IACE,MAAM,EAAE,QAAQ,CAAC,qDAAqD,CAAC;gBAEvE,OAAO,IAAI,CAAA;SACd;QACD,MAAM,GAAG,CAAA;KACV;AACH,CAAC"}
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 { panicReasons } from '../../constants/solidity.js';
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 (error) {
70
- if (error instanceof ContractFunctionExecutionError &&
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 error;
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,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EACL,8BAA8B,GAE/B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,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;gBACH;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,UAAU;oBAChB,eAAe,EAAE,MAAM;oBACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;oBAChD,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE;wBACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;qBACtC;iBACF;aACF;YACD,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,KAAK,EAAE;QACd,IACE,KAAK,YAAY,8BAA8B;YAC9C,KAAK,CAAC,KAAuC,CAAC,MAAM,KAAK,YAAY,CAAC,EAAE,CAAC;YAE1E,mCAAmC;YACnC,OAAO,IAAI,CAAA;QACb,MAAM,KAAK,CAAA;KACZ;AACH,CAAC"}
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, universalResolverAbi } from '../../constants/abis.js';
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
- const res = await readContract(client, {
50
- address: universalResolverAddress,
51
- abi: universalResolverAbi,
52
- functionName: 'resolve',
53
- args: [
54
- toHex(packetToBytes(name)),
55
- encodeFunctionData({
56
- abi: textResolverAbi,
57
- functionName: 'text',
58
- args: [namehash(name), key],
59
- }),
60
- ],
61
- blockNumber,
62
- blockTag,
63
- });
64
- if (res[0] === '0x')
65
- return null;
66
- const record = decodeFunctionResult({
67
- abi: textResolverAbi,
68
- functionName: 'text',
69
- data: res[0],
70
- });
71
- return record === '' ? null : record;
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,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAG/E,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,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,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;QACrC,OAAO,EAAE,wBAAwB;QACjC,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE;YACJ,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC1B,kBAAkB,CAAC;gBACjB,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;aAC5B,CAAC;SACH;QACD,WAAW;QACX,QAAQ;KACT,CAAC,CAAA;IAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEhC,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,MAAM;QACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KACb,CAAC,CAAA;IAEF,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;AACtC,CAAC"}
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
- export const universalResolverAbi = [
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":"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"}
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../src/constants/abis.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const version = '1.2.14';
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;AAS5E,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,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,CAmDlC"}
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;AAM5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAIpD,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,CAgD/B"}
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;AAE5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAOpD,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,CAwC/B"}
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 universalResolverAbi: readonly [{
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,oBAAoB;;;;;;;;;;;;;;;;;;EAcvB,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
+ {"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.14";
1
+ export declare const version = "1.2.15";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare function isNullUniversalResolverError(err: unknown, callType: 'resolve' | 'reverse'): boolean;
2
+ //# sourceMappingURL=errors.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
@@ -20,7 +20,7 @@
20
20
  "optional": true
21
21
  }
22
22
  },
23
- "version": "1.2.14",
23
+ "version": "1.2.15",
24
24
  "files": [
25
25
  "dist",
26
26
  "!dist/**/*.tsbuildinfo",
@@ -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
- universalResolverAbi,
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: universalResolverAbi,
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 instanceof ContractFunctionExecutionError) {
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 { panicReasons } from '../../constants/solidity.js'
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 (error) {
105
- if (
106
- error instanceof ContractFunctionExecutionError &&
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 { textResolverAbi, universalResolverAbi } from '../../constants/abis.js'
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
- const res = await readContract(client, {
86
- address: universalResolverAddress,
87
- abi: universalResolverAbi,
88
- functionName: 'resolve',
89
- args: [
90
- toHex(packetToBytes(name)),
91
- encodeFunctionData({
92
- abi: textResolverAbi,
93
- functionName: 'text',
94
- args: [namehash(name), key],
95
- }),
96
- ],
97
- blockNumber,
98
- blockTag,
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
- if (res[0] === '0x') return null
106
+ if (res[0] === '0x') return null
102
107
 
103
- const record = decodeFunctionResult({
104
- abi: textResolverAbi,
105
- functionName: 'text',
106
- data: res[0],
107
- })
108
+ const record = decodeFunctionResult({
109
+ abi: textResolverAbi,
110
+ functionName: 'text',
111
+ data: res[0],
112
+ })
108
113
 
109
- return record === '' ? null : record
114
+ return record === '' ? null : record
115
+ } catch (err) {
116
+ if (isNullUniversalResolverError(err, 'resolve')) return null
117
+ throw err
118
+ }
110
119
  }
@@ -43,7 +43,21 @@ export const multicall3Abi = [
43
43
  },
44
44
  ] as const
45
45
 
46
- export const universalResolverAbi = [
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',
@@ -1 +1 @@
1
- export const version = '1.2.14'
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
+ }