viem 0.0.0-main.20230720T050526 → 0.0.0-main.20230720T161423

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.
@@ -11,7 +11,7 @@ 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");
14
- async function getEnsAddress(client, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }) {
14
+ async function getEnsAddress(client, { blockNumber, blockTag, coinType, name, universalResolverAddress: universalResolverAddress_, }) {
15
15
  let universalResolverAddress = universalResolverAddress_;
16
16
  if (!universalResolverAddress) {
17
17
  if (!client.chain)
@@ -23,29 +23,34 @@ async function getEnsAddress(client, { blockNumber, blockTag, name, universalRes
23
23
  });
24
24
  }
25
25
  try {
26
+ const functionData = (0, encodeFunctionData_js_1.encodeFunctionData)({
27
+ abi: abis_js_1.addressResolverAbi,
28
+ functionName: 'addr',
29
+ ...(coinType != null
30
+ ? { args: [(0, namehash_js_1.namehash)(name), BigInt(coinType)] }
31
+ : { args: [(0, namehash_js_1.namehash)(name)] }),
32
+ });
26
33
  const res = await (0, readContract_js_1.readContract)(client, {
27
34
  address: universalResolverAddress,
28
35
  abi: abis_js_1.universalResolverResolveAbi,
29
36
  functionName: 'resolve',
30
- args: [
31
- (0, toHex_js_1.toHex)((0, packetToBytes_js_1.packetToBytes)(name)),
32
- (0, encodeFunctionData_js_1.encodeFunctionData)({
33
- abi: abis_js_1.singleAddressResolverAbi,
34
- functionName: 'addr',
35
- args: [(0, namehash_js_1.namehash)(name)],
36
- }),
37
- ],
37
+ args: [(0, toHex_js_1.toHex)((0, packetToBytes_js_1.packetToBytes)(name)), functionData],
38
38
  blockNumber,
39
39
  blockTag,
40
40
  });
41
41
  if (res[0] === '0x')
42
42
  return null;
43
- const address = (0, decodeFunctionResult_js_1.decodeFunctionResult)({
44
- abi: abis_js_1.singleAddressResolverAbi,
43
+ const address = (0, trim_js_1.trim)((0, decodeFunctionResult_js_1.decodeFunctionResult)({
44
+ abi: abis_js_1.addressResolverAbi,
45
+ args: coinType != null ? [(0, namehash_js_1.namehash)(name), BigInt(coinType)] : undefined,
45
46
  functionName: 'addr',
46
47
  data: res[0],
47
- });
48
- return (0, trim_js_1.trim)(address) === '0x00' ? null : address;
48
+ }));
49
+ if (address === '0x')
50
+ return null;
51
+ if ((0, trim_js_1.trim)(address) === '0x00')
52
+ return null;
53
+ return address;
49
54
  }
50
55
  catch (err) {
51
56
  if ((0, errors_js_1.isNullUniversalResolverError)(err, 'resolve'))
@@ -1 +1 @@
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
+ {"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;AA2C3B,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,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,YAAY,GAAG,IAAA,0CAAkB,EAAC;YACtC,GAAG,EAAE,4BAAkB;YACvB,YAAY,EAAE,MAAM;YACpB,GAAG,CAAC,QAAQ,IAAI,IAAI;gBAClB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;gBAC9C,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC,CAAA;QAEF,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,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC;YAChD,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,OAAO,GAAG,IAAA,cAAI,EAClB,IAAA,8CAAoB,EAAC;YACnB,GAAG,EAAE,4BAAkB;YACvB,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACvE,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACb,CAAC,CACH,CAAA;QAED,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QACjC,IAAI,IAAA,cAAI,EAAC,OAAO,CAAC,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QACzC,OAAO,OAAO,CAAA;KACf;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,IAAA,wCAA4B,EAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC;AA5DD,sCA4DC"}
@@ -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.universalResolverReverseAbi = exports.universalResolverResolveAbi = exports.multicall3Abi = void 0;
3
+ exports.universalSignatureValidatorAbi = exports.smartAccountAbi = exports.addressResolverAbi = exports.textResolverAbi = exports.universalResolverReverseAbi = exports.universalResolverResolveAbi = exports.multicall3Abi = void 0;
4
4
  exports.multicall3Abi = [
5
5
  {
6
6
  inputs: [
@@ -99,7 +99,7 @@ exports.textResolverAbi = [
99
99
  outputs: [{ name: '', type: 'string' }],
100
100
  },
101
101
  ];
102
- exports.singleAddressResolverAbi = [
102
+ exports.addressResolverAbi = [
103
103
  {
104
104
  name: 'addr',
105
105
  type: 'function',
@@ -107,6 +107,16 @@ exports.singleAddressResolverAbi = [
107
107
  inputs: [{ name: 'name', type: 'bytes32' }],
108
108
  outputs: [{ name: '', type: 'address' }],
109
109
  },
110
+ {
111
+ name: 'addr',
112
+ type: 'function',
113
+ stateMutability: 'view',
114
+ inputs: [
115
+ { name: 'name', type: 'bytes32' },
116
+ { name: 'coinType', type: 'uint256' },
117
+ ],
118
+ outputs: [{ name: '', type: 'bytes' }],
119
+ },
110
120
  ];
111
121
  exports.smartAccountAbi = [
112
122
  {
@@ -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 = '0.0.0-main.20230720T050526';
4
+ exports.version = '0.0.0-main.20230720T161423';
5
5
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,4 @@
1
- import { singleAddressResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';
1
+ import { addressResolverAbi, 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';
@@ -36,7 +36,7 @@ import { readContract, } from '../public/readContract.js';
36
36
  * })
37
37
  * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
38
38
  */
39
- export async function getEnsAddress(client, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }) {
39
+ export async function getEnsAddress(client, { blockNumber, blockTag, coinType, name, universalResolverAddress: universalResolverAddress_, }) {
40
40
  let universalResolverAddress = universalResolverAddress_;
41
41
  if (!universalResolverAddress) {
42
42
  if (!client.chain)
@@ -48,29 +48,34 @@ export async function getEnsAddress(client, { blockNumber, blockTag, name, unive
48
48
  });
49
49
  }
50
50
  try {
51
+ const functionData = encodeFunctionData({
52
+ abi: addressResolverAbi,
53
+ functionName: 'addr',
54
+ ...(coinType != null
55
+ ? { args: [namehash(name), BigInt(coinType)] }
56
+ : { args: [namehash(name)] }),
57
+ });
51
58
  const res = await readContract(client, {
52
59
  address: universalResolverAddress,
53
60
  abi: universalResolverResolveAbi,
54
61
  functionName: 'resolve',
55
- args: [
56
- toHex(packetToBytes(name)),
57
- encodeFunctionData({
58
- abi: singleAddressResolverAbi,
59
- functionName: 'addr',
60
- args: [namehash(name)],
61
- }),
62
- ],
62
+ args: [toHex(packetToBytes(name)), functionData],
63
63
  blockNumber,
64
64
  blockTag,
65
65
  });
66
66
  if (res[0] === '0x')
67
67
  return null;
68
- const address = decodeFunctionResult({
69
- abi: singleAddressResolverAbi,
68
+ const address = trim(decodeFunctionResult({
69
+ abi: addressResolverAbi,
70
+ args: coinType != null ? [namehash(name), BigInt(coinType)] : undefined,
70
71
  functionName: 'addr',
71
72
  data: res[0],
72
- });
73
- return trim(address) === '0x00' ? null : address;
73
+ }));
74
+ if (address === '0x')
75
+ return null;
76
+ if (trim(address) === '0x00')
77
+ return null;
78
+ return address;
74
79
  }
75
80
  catch (err) {
76
81
  if (isNullUniversalResolverError(err, 'resolve'))
@@ -1 +1 @@
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
+ {"version":3,"file":"getEnsAddress.js","sourceRoot":"","sources":["../../../../src/actions/ens/getEnsAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,kBAAkB,EAClB,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;AAelC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EACE,WAAW,EACX,QAAQ,EACR,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,YAAY,GAAG,kBAAkB,CAAC;YACtC,GAAG,EAAE,kBAAkB;YACvB,YAAY,EAAE,MAAM;YACpB,GAAG,CAAC,QAAQ,IAAI,IAAI;gBAClB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;gBAC9C,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC,CAAA;QAEF,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,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC;YAChD,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,OAAO,GAAG,IAAI,CAClB,oBAAoB,CAAC;YACnB,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACvE,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACb,CAAC,CACH,CAAA;QAED,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QACzC,OAAO,OAAO,CAAA;KACf;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,4BAA4B,CAAC,GAAG,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,MAAM,GAAG,CAAA;KACV;AACH,CAAC"}
@@ -97,7 +97,7 @@ export const textResolverAbi = [
97
97
  outputs: [{ name: '', type: 'string' }],
98
98
  },
99
99
  ];
100
- export const singleAddressResolverAbi = [
100
+ export const addressResolverAbi = [
101
101
  {
102
102
  name: 'addr',
103
103
  type: 'function',
@@ -105,6 +105,16 @@ export const singleAddressResolverAbi = [
105
105
  inputs: [{ name: 'name', type: 'bytes32' }],
106
106
  outputs: [{ name: '', type: 'address' }],
107
107
  },
108
+ {
109
+ name: 'addr',
110
+ type: 'function',
111
+ stateMutability: 'view',
112
+ inputs: [
113
+ { name: 'name', type: 'bytes32' },
114
+ { name: 'coinType', type: 'uint256' },
115
+ ],
116
+ outputs: [{ name: '', type: 'bytes' }],
117
+ },
108
118
  ];
109
119
  // ERC-1271
110
120
  // isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue
@@ -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 = '0.0.0-main.20230720T050526';
1
+ export const version = '0.0.0-main.20230720T161423';
2
2
  //# sourceMappingURL=version.js.map
@@ -5,6 +5,8 @@ import type { Chain } from '../../types/chain.js';
5
5
  import type { Prettify } from '../../types/utils.js';
6
6
  import { type ReadContractParameters } from '../public/readContract.js';
7
7
  export type GetEnsAddressParameters = Prettify<Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
8
+ /** ENSIP-9 compliant coinType used to resolve addresses for other chains */
9
+ coinType?: number;
8
10
  /** Name to get the address for. */
9
11
  name: string;
10
12
  /** Address of ENS Universal Resolver Contract. */
@@ -39,5 +41,5 @@ export type GetEnsAddressReturnType = Address | null;
39
41
  * })
40
42
  * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
41
43
  */
42
- export declare function getEnsAddress<TChain extends Chain | undefined>(client: Client<Transport, TChain>, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }: GetEnsAddressParameters): Promise<GetEnsAddressReturnType>;
44
+ export declare function getEnsAddress<TChain extends Chain | undefined>(client: Client<Transport, TChain>, { blockNumber, blockTag, coinType, name, universalResolverAddress: universalResolverAddress_, }: GetEnsAddressParameters): Promise<GetEnsAddressReturnType>;
43
45
  //# sourceMappingURL=getEnsAddress.d.ts.map
@@ -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;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
+ {"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,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,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,QAAQ,EACR,IAAI,EACJ,wBAAwB,EAAE,yBAAyB,GACpD,EAAE,uBAAuB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAmDlC"}
@@ -101,7 +101,7 @@ export declare const textResolverAbi: readonly [{
101
101
  readonly type: "string";
102
102
  }];
103
103
  }];
104
- export declare const singleAddressResolverAbi: readonly [{
104
+ export declare const addressResolverAbi: readonly [{
105
105
  readonly name: "addr";
106
106
  readonly type: "function";
107
107
  readonly stateMutability: "view";
@@ -113,6 +113,21 @@ export declare const singleAddressResolverAbi: readonly [{
113
113
  readonly name: "";
114
114
  readonly type: "address";
115
115
  }];
116
+ }, {
117
+ readonly name: "addr";
118
+ readonly type: "function";
119
+ readonly stateMutability: "view";
120
+ readonly inputs: readonly [{
121
+ readonly name: "name";
122
+ readonly type: "bytes32";
123
+ }, {
124
+ readonly name: "coinType";
125
+ readonly type: "uint256";
126
+ }];
127
+ readonly outputs: readonly [{
128
+ readonly name: "";
129
+ readonly type: "bytes";
130
+ }];
116
131
  }];
117
132
  export declare const smartAccountAbi: readonly [{
118
133
  readonly name: "isValidSignature";
@@ -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,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
+ {"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,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBrB,CAAA;AAIV,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAWlB,CAAA;AAKV,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;EAsBjC,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const version = "0.0.0-main.20230720T050526";
1
+ export declare const version = "0.0.0-main.20230720T161423";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -20,7 +20,7 @@
20
20
  "optional": true
21
21
  }
22
22
  },
23
- "version": "0.0.0-main.20230720T050526",
23
+ "version": "0.0.0-main.20230720T161423",
24
24
  "files": [
25
25
  "dist",
26
26
  "!dist/**/*.tsbuildinfo",
@@ -3,7 +3,7 @@ import type { Address } from 'abitype'
3
3
  import type { Client } from '../../clients/createClient.js'
4
4
  import type { Transport } from '../../clients/transports/createTransport.js'
5
5
  import {
6
- singleAddressResolverAbi,
6
+ addressResolverAbi,
7
7
  universalResolverResolveAbi,
8
8
  } from '../../constants/abis.js'
9
9
  import type { Chain } from '../../types/chain.js'
@@ -23,6 +23,8 @@ import {
23
23
 
24
24
  export type GetEnsAddressParameters = Prettify<
25
25
  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
26
+ /** ENSIP-9 compliant coinType used to resolve addresses for other chains */
27
+ coinType?: number
26
28
  /** Name to get the address for. */
27
29
  name: string
28
30
  /** Address of ENS Universal Resolver Contract. */
@@ -65,6 +67,7 @@ export async function getEnsAddress<TChain extends Chain | undefined,>(
65
67
  {
66
68
  blockNumber,
67
69
  blockTag,
70
+ coinType,
68
71
  name,
69
72
  universalResolverAddress: universalResolverAddress_,
70
73
  }: GetEnsAddressParameters,
@@ -84,31 +87,37 @@ export async function getEnsAddress<TChain extends Chain | undefined,>(
84
87
  }
85
88
 
86
89
  try {
90
+ const functionData = encodeFunctionData({
91
+ abi: addressResolverAbi,
92
+ functionName: 'addr',
93
+ ...(coinType != null
94
+ ? { args: [namehash(name), BigInt(coinType)] }
95
+ : { args: [namehash(name)] }),
96
+ })
97
+
87
98
  const res = await readContract(client, {
88
99
  address: universalResolverAddress,
89
100
  abi: universalResolverResolveAbi,
90
101
  functionName: 'resolve',
91
- args: [
92
- toHex(packetToBytes(name)),
93
- encodeFunctionData({
94
- abi: singleAddressResolverAbi,
95
- functionName: 'addr',
96
- args: [namehash(name)],
97
- }),
98
- ],
102
+ args: [toHex(packetToBytes(name)), functionData],
99
103
  blockNumber,
100
104
  blockTag,
101
105
  })
102
106
 
103
107
  if (res[0] === '0x') return null
104
108
 
105
- const address = decodeFunctionResult({
106
- abi: singleAddressResolverAbi,
107
- functionName: 'addr',
108
- data: res[0],
109
- })
109
+ const address = trim(
110
+ decodeFunctionResult({
111
+ abi: addressResolverAbi,
112
+ args: coinType != null ? [namehash(name), BigInt(coinType)] : undefined,
113
+ functionName: 'addr',
114
+ data: res[0],
115
+ }),
116
+ )
110
117
 
111
- return trim(address) === '0x00' ? null : address
118
+ if (address === '0x') return null
119
+ if (trim(address) === '0x00') return null
120
+ return address
112
121
  } catch (err) {
113
122
  if (isNullUniversalResolverError(err, 'resolve')) return null
114
123
  throw err
@@ -102,7 +102,7 @@ export const textResolverAbi = [
102
102
  },
103
103
  ] as const
104
104
 
105
- export const singleAddressResolverAbi = [
105
+ export const addressResolverAbi = [
106
106
  {
107
107
  name: 'addr',
108
108
  type: 'function',
@@ -110,6 +110,16 @@ export const singleAddressResolverAbi = [
110
110
  inputs: [{ name: 'name', type: 'bytes32' }],
111
111
  outputs: [{ name: '', type: 'address' }],
112
112
  },
113
+ {
114
+ name: 'addr',
115
+ type: 'function',
116
+ stateMutability: 'view',
117
+ inputs: [
118
+ { name: 'name', type: 'bytes32' },
119
+ { name: 'coinType', type: 'uint256' },
120
+ ],
121
+ outputs: [{ name: '', type: 'bytes' }],
122
+ },
113
123
  ] as const
114
124
 
115
125
  // ERC-1271
@@ -1 +1 @@
1
- export const version = '0.0.0-main.20230720T050526'
1
+ export const version = '0.0.0-main.20230720T161423'