@ensdomains/ensjs 3.0.0 → 3.1.0

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 (110) hide show
  1. package/dist/cjs/clients/decorators/public.js.map +1 -1
  2. package/dist/cjs/contracts/consts.js +3 -3
  3. package/dist/cjs/contracts/universalResolver.js +92 -59
  4. package/dist/cjs/contracts/universalResolver.js.map +1 -1
  5. package/dist/cjs/errors/version.js +1 -1
  6. package/dist/cjs/functions/public/_getAbi.js +52 -45
  7. package/dist/cjs/functions/public/_getAbi.js.map +1 -1
  8. package/dist/cjs/functions/public/_getAddr.js +30 -23
  9. package/dist/cjs/functions/public/_getAddr.js.map +1 -1
  10. package/dist/cjs/functions/public/_getContentHash.js +14 -7
  11. package/dist/cjs/functions/public/_getContentHash.js.map +1 -1
  12. package/dist/cjs/functions/public/_getText.js +15 -8
  13. package/dist/cjs/functions/public/_getText.js.map +1 -1
  14. package/dist/cjs/functions/public/getAbiRecord.js +13 -5
  15. package/dist/cjs/functions/public/getAbiRecord.js.map +1 -1
  16. package/dist/cjs/functions/public/getAddressRecord.js +13 -5
  17. package/dist/cjs/functions/public/getAddressRecord.js.map +1 -1
  18. package/dist/cjs/functions/public/getContentHashRecord.js +13 -5
  19. package/dist/cjs/functions/public/getContentHashRecord.js.map +1 -1
  20. package/dist/cjs/functions/public/getName.js +53 -35
  21. package/dist/cjs/functions/public/getName.js.map +1 -1
  22. package/dist/cjs/functions/public/getRecords.js +164 -161
  23. package/dist/cjs/functions/public/getRecords.js.map +1 -1
  24. package/dist/cjs/functions/public/getTextRecord.js +13 -5
  25. package/dist/cjs/functions/public/getTextRecord.js.map +1 -1
  26. package/dist/cjs/functions/public/universalWrapper.js +45 -37
  27. package/dist/cjs/functions/public/universalWrapper.js.map +1 -1
  28. package/dist/cjs/utils/checkSafeUniversalResolverData.js +35 -0
  29. package/dist/cjs/utils/checkSafeUniversalResolverData.js.map +1 -0
  30. package/dist/esm/clients/decorators/public.js.map +1 -1
  31. package/dist/esm/contracts/consts.js +3 -3
  32. package/dist/esm/contracts/universalResolver.js +92 -59
  33. package/dist/esm/contracts/universalResolver.js.map +1 -1
  34. package/dist/esm/errors/version.js +1 -1
  35. package/dist/esm/functions/public/_getAbi.js +56 -49
  36. package/dist/esm/functions/public/_getAbi.js.map +1 -1
  37. package/dist/esm/functions/public/_getAddr.js +30 -23
  38. package/dist/esm/functions/public/_getAddr.js.map +1 -1
  39. package/dist/esm/functions/public/_getContentHash.js +14 -7
  40. package/dist/esm/functions/public/_getContentHash.js.map +1 -1
  41. package/dist/esm/functions/public/_getText.js +15 -8
  42. package/dist/esm/functions/public/_getText.js.map +1 -1
  43. package/dist/esm/functions/public/getAbiRecord.js +13 -5
  44. package/dist/esm/functions/public/getAbiRecord.js.map +1 -1
  45. package/dist/esm/functions/public/getAddressRecord.js +13 -5
  46. package/dist/esm/functions/public/getAddressRecord.js.map +1 -1
  47. package/dist/esm/functions/public/getContentHashRecord.js +13 -5
  48. package/dist/esm/functions/public/getContentHashRecord.js.map +1 -1
  49. package/dist/esm/functions/public/getName.js +54 -36
  50. package/dist/esm/functions/public/getName.js.map +1 -1
  51. package/dist/esm/functions/public/getRecords.js +168 -165
  52. package/dist/esm/functions/public/getRecords.js.map +1 -1
  53. package/dist/esm/functions/public/getTextRecord.js +13 -5
  54. package/dist/esm/functions/public/getTextRecord.js.map +1 -1
  55. package/dist/esm/functions/public/universalWrapper.js +46 -38
  56. package/dist/esm/functions/public/universalWrapper.js.map +1 -1
  57. package/dist/esm/utils/checkSafeUniversalResolverData.js +39 -0
  58. package/dist/esm/utils/checkSafeUniversalResolverData.js.map +1 -0
  59. package/dist/types/clients/decorators/public.d.ts +6 -6
  60. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  61. package/dist/types/clients/public.d.ts +34 -8
  62. package/dist/types/clients/public.d.ts.map +1 -1
  63. package/dist/types/contracts/consts.d.ts +3 -3
  64. package/dist/types/contracts/universalResolver.d.ts +73 -0
  65. package/dist/types/contracts/universalResolver.d.ts.map +1 -1
  66. package/dist/types/errors/version.d.ts +1 -1
  67. package/dist/types/functions/public/_getAbi.d.ts +3 -1
  68. package/dist/types/functions/public/_getAbi.d.ts.map +1 -1
  69. package/dist/types/functions/public/_getAddr.d.ts +3 -1
  70. package/dist/types/functions/public/_getAddr.d.ts.map +1 -1
  71. package/dist/types/functions/public/_getContentHash.d.ts +3 -1
  72. package/dist/types/functions/public/_getContentHash.d.ts.map +1 -1
  73. package/dist/types/functions/public/_getText.d.ts +3 -1
  74. package/dist/types/functions/public/_getText.d.ts.map +1 -1
  75. package/dist/types/functions/public/getAbiRecord.d.ts +8 -5
  76. package/dist/types/functions/public/getAbiRecord.d.ts.map +1 -1
  77. package/dist/types/functions/public/getAddressRecord.d.ts +8 -5
  78. package/dist/types/functions/public/getAddressRecord.d.ts.map +1 -1
  79. package/dist/types/functions/public/getContentHashRecord.d.ts +7 -4
  80. package/dist/types/functions/public/getContentHashRecord.d.ts.map +1 -1
  81. package/dist/types/functions/public/getName.d.ts +9 -3
  82. package/dist/types/functions/public/getName.d.ts.map +1 -1
  83. package/dist/types/functions/public/getRecords.d.ts +53 -26
  84. package/dist/types/functions/public/getRecords.d.ts.map +1 -1
  85. package/dist/types/functions/public/getTextRecord.d.ts +7 -4
  86. package/dist/types/functions/public/getTextRecord.d.ts.map +1 -1
  87. package/dist/types/functions/public/universalWrapper.d.ts +4 -2
  88. package/dist/types/functions/public/universalWrapper.d.ts.map +1 -1
  89. package/dist/types/types.d.ts +2 -2
  90. package/dist/types/types.d.ts.map +1 -1
  91. package/dist/types/utils/checkSafeUniversalResolverData.d.ts +14 -0
  92. package/dist/types/utils/checkSafeUniversalResolverData.d.ts.map +1 -0
  93. package/package.json +4 -4
  94. package/src/clients/decorators/public.ts +31 -4
  95. package/src/contracts/consts.ts +3 -3
  96. package/src/contracts/universalResolver.ts +95 -59
  97. package/src/errors/version.ts +1 -1
  98. package/src/functions/public/_getAbi.ts +61 -53
  99. package/src/functions/public/_getAddr.ts +31 -24
  100. package/src/functions/public/_getContentHash.ts +15 -7
  101. package/src/functions/public/_getText.ts +16 -8
  102. package/src/functions/public/getAbiRecord.ts +21 -8
  103. package/src/functions/public/getAddressRecord.ts +25 -9
  104. package/src/functions/public/getContentHashRecord.ts +19 -7
  105. package/src/functions/public/getName.ts +58 -40
  106. package/src/functions/public/getRecords.ts +336 -235
  107. package/src/functions/public/getTextRecord.ts +19 -6
  108. package/src/functions/public/universalWrapper.ts +49 -43
  109. package/src/types.ts +4 -3
  110. package/src/utils/checkSafeUniversalResolverData.ts +62 -0
@@ -1,135 +1,196 @@
1
- import { BaseError, decodeAbiParameters, decodeErrorResult, decodeFunctionResult, encodeFunctionData, getContractError, hexToBigInt, toHex, } from 'viem';
1
+ import { BaseError, decodeAbiParameters, decodeFunctionResult, encodeFunctionData, hexToBigInt, toHex, } from 'viem';
2
2
  import { getChainContractAddress } from '../../contracts/getChainContractAddress.js';
3
3
  import { universalResolverResolveArraySnippet } from '../../contracts/universalResolver.js';
4
+ import { checkSafeUniversalResolverData } from '../../utils/checkSafeUniversalResolverData.js';
4
5
  import { EMPTY_ADDRESS } from '../../utils/consts.js';
5
6
  import { generateFunction } from '../../utils/generateFunction.js';
6
- import { getRevertErrorData } from '../../utils/getRevertErrorData.js';
7
7
  import { packetToBytes } from '../../utils/hexEncodedName.js';
8
8
  import _getAbi, {} from './_getAbi.js';
9
9
  import _getAddr from './_getAddr.js';
10
10
  import _getContentHash, {} from './_getContentHash.js';
11
11
  import _getText from './_getText.js';
12
12
  import multicallWrapper from './multicallWrapper.js';
13
- const encode = (client, { name, resolver, records }) => {
14
- const calls = Object.keys(records).reduce((prev, key) => {
15
- if (key === 'texts') {
16
- return [
17
- ...prev,
18
- ...records.texts.map((text) => ({
19
- key: text,
20
- call: _getText.encode(client, { name, key: text }),
21
- type: 'text',
22
- })),
23
- ];
24
- }
25
- if (key === 'coins') {
26
- return [
27
- ...prev,
28
- ...records.coins.map((coin) => ({
29
- key: coin,
30
- call: _getAddr.encode(client, { name, coin }),
31
- type: 'coin',
32
- })),
33
- ];
34
- }
35
- if (key === 'contentHash') {
36
- return [
37
- ...prev,
38
- {
39
- key: 'contentHash',
40
- call: _getContentHash.encode(client, { name }),
41
- type: 'contentHash',
42
- },
43
- ];
44
- }
45
- if (key === 'abi') {
46
- return [
47
- ...prev,
48
- {
49
- key: 'abi',
50
- call: _getAbi.encode(client, { name }),
51
- type: 'abi',
52
- },
53
- ];
54
- }
55
- return prev;
56
- }, []);
57
- const passthrough = calls;
13
+ const createCalls = (client, { name, texts, coins, abi, contentHash, }) => [
14
+ ...(texts ?? []).map((text) => ({
15
+ key: text,
16
+ call: _getText.encode(client, { name, key: text }),
17
+ type: 'text',
18
+ })),
19
+ ...(coins ?? []).map((coin) => ({
20
+ key: coin,
21
+ call: _getAddr.encode(client, { name, coin }),
22
+ type: 'coin',
23
+ })),
24
+ ...(contentHash
25
+ ? [
26
+ {
27
+ key: 'contentHash',
28
+ call: _getContentHash.encode(client, { name }),
29
+ type: 'contentHash',
30
+ },
31
+ ]
32
+ : []),
33
+ ...(abi
34
+ ? [
35
+ { key: 'abi', call: _getAbi.encode(client, { name }), type: 'abi' },
36
+ ]
37
+ : []),
38
+ ];
39
+ const encode = (client, { name, resolver, texts, coins, contentHash, abi, gatewayUrls, }) => {
40
+ const calls = createCalls(client, {
41
+ name,
42
+ texts,
43
+ coins,
44
+ contentHash,
45
+ abi,
46
+ });
58
47
  if (resolver?.address && !resolver.fallbackOnly) {
59
48
  const encoded = multicallWrapper.encode(client, {
60
- transactions: calls
61
- .filter((c) => c)
62
- .map((c) => ({ to: resolver.address, data: c.call.data })),
49
+ transactions: calls.map((c) => ({
50
+ to: resolver.address,
51
+ data: c.call.data,
52
+ })),
63
53
  });
64
54
  return {
65
55
  ...encoded,
66
- passthrough,
56
+ passthrough: { calls },
67
57
  };
68
58
  }
69
- const encoded = encodeFunctionData({
70
- abi: universalResolverResolveArraySnippet,
71
- functionName: 'resolve',
72
- args: [
73
- toHex(packetToBytes(name)),
74
- calls.filter((c) => c).map((c) => c.call.data),
75
- ],
59
+ const to = getChainContractAddress({
60
+ client,
61
+ contract: 'ensUniversalResolver',
76
62
  });
63
+ const args = [
64
+ toHex(packetToBytes(name)),
65
+ calls.map((c) => c.call.data),
66
+ ];
77
67
  return {
78
- to: getChainContractAddress({ client, contract: 'ensUniversalResolver' }),
79
- data: encoded,
80
- passthrough,
68
+ to,
69
+ ...(gatewayUrls?.length
70
+ ? {
71
+ data: encodeFunctionData({
72
+ abi: universalResolverResolveArraySnippet,
73
+ functionName: 'resolve',
74
+ args: [...args, gatewayUrls],
75
+ }),
76
+ passthrough: {
77
+ calls,
78
+ args: [...args, gatewayUrls],
79
+ address: to,
80
+ },
81
+ }
82
+ : {
83
+ data: encodeFunctionData({
84
+ abi: universalResolverResolveArraySnippet,
85
+ functionName: 'resolve',
86
+ args,
87
+ }),
88
+ passthrough: {
89
+ calls,
90
+ args,
91
+ address: to,
92
+ },
93
+ }),
81
94
  };
82
95
  };
83
- const decode = async (client, data, passthrough, { name, resolver, records: recordsParams }) => {
84
- const calls = passthrough;
96
+ const createEmptyResult = ({ texts, coins, abi, contentHash, }) => ({
97
+ ...(texts && texts.length > 0 ? { texts: [] } : {}),
98
+ ...(coins && coins.length > 0 ? { coins: [] } : {}),
99
+ ...(contentHash ? { contentHash: null } : {}),
100
+ ...(abi ? { abi: null } : {}),
101
+ });
102
+ const decodeRecord = async (client, { item, call }) => {
103
+ const { key, type } = call;
104
+ const baseItem = { key, type };
105
+ if (type === 'contentHash') {
106
+ try {
107
+ const decodedFromAbi = decodeAbiParameters([{ type: 'bytes' }], item)[0];
108
+ if (decodedFromAbi === '0x' || hexToBigInt(decodedFromAbi) === 0n) {
109
+ return { ...baseItem, value: null };
110
+ }
111
+ }
112
+ catch {
113
+ // ignore
114
+ }
115
+ }
116
+ if (type === 'text') {
117
+ const decodedFromAbi = await _getText.decode(client, item, {
118
+ strict: false,
119
+ });
120
+ return { ...baseItem, value: decodedFromAbi };
121
+ }
122
+ if (type === 'coin') {
123
+ const decodedFromAbi = await _getAddr.decode(client, item, {
124
+ coin: key,
125
+ strict: false,
126
+ });
127
+ return { ...baseItem, value: decodedFromAbi };
128
+ }
129
+ if (type === 'contentHash') {
130
+ const decodedFromAbi = await _getContentHash.decode(client, item, {
131
+ strict: false,
132
+ });
133
+ return { ...baseItem, value: decodedFromAbi };
134
+ }
135
+ // abi
136
+ const decodedFromAbi = await _getAbi.decode(client, item, {
137
+ strict: false,
138
+ });
139
+ return { ...baseItem, value: decodedFromAbi };
140
+ };
141
+ const createRecordResult = (prev, curr) => {
142
+ if (curr.type === 'text' || curr.type === 'coin') {
143
+ if (!curr.value) {
144
+ return prev;
145
+ }
146
+ }
147
+ if (curr.type === 'text') {
148
+ return {
149
+ ...prev,
150
+ texts: [
151
+ ...(prev.texts || []),
152
+ { key: curr.key, value: curr.value },
153
+ ],
154
+ };
155
+ }
156
+ if (curr.type === 'coin') {
157
+ return {
158
+ ...prev,
159
+ coins: [...(prev.coins || []), curr.value],
160
+ };
161
+ }
162
+ if (curr.type === 'contentHash') {
163
+ return {
164
+ ...prev,
165
+ contentHash: curr.value,
166
+ };
167
+ }
168
+ // abi
169
+ return { ...prev, abi: curr.value };
170
+ };
171
+ const decode = async (client, data, passthrough, { resolver, texts, coins, contentHash, abi, }) => {
172
+ const { calls } = passthrough;
85
173
  let recordData = [];
86
174
  let resolverAddress;
175
+ const emptyResult = createEmptyResult({ texts, coins, contentHash, abi });
87
176
  if (resolver?.address && !resolver.fallbackOnly) {
88
- const result = await multicallWrapper.decode(client, data, passthrough.filter((c) => c).map((c) => c.call));
177
+ const result = await multicallWrapper.decode(client, data, passthrough.calls.filter((c) => c).map((c) => c.call));
89
178
  resolverAddress = resolver.address;
90
179
  recordData = result.map((r) => r.returnData);
91
180
  }
92
181
  else {
93
- if (typeof data === 'object') {
94
- const errorData = getRevertErrorData(data);
95
- if (errorData) {
96
- const decodedError = decodeErrorResult({
97
- abi: universalResolverResolveArraySnippet,
98
- data: errorData,
99
- });
100
- if (decodedError.errorName === 'ResolverNotFound' ||
101
- decodedError.errorName === 'ResolverWildcardNotSupported')
102
- return passthrough.reduce((prev, curr) => {
103
- if (!curr)
104
- return prev;
105
- if (curr.type === 'coin' && !('coin' in prev)) {
106
- return { ...prev, coins: [] };
107
- }
108
- if (curr.type === 'text' && !('texts' in prev)) {
109
- return { ...prev, texts: [] };
110
- }
111
- if (curr.type === 'contentHash' && !('contentHash' in prev)) {
112
- return { ...prev, contentHash: null };
113
- }
114
- // abi
115
- return { ...prev, abi: null };
116
- }, {
117
- resolverAddress: EMPTY_ADDRESS,
118
- });
119
- }
120
- throw getContractError(data, {
121
- abi: universalResolverResolveArraySnippet,
122
- functionName: 'resolve',
123
- args: [
124
- toHex(packetToBytes(name)),
125
- calls.filter((c) => c).map((c) => c.call.data),
126
- ],
127
- address: getChainContractAddress({
128
- client,
129
- contract: 'ensUniversalResolver',
130
- }),
131
- });
132
- }
182
+ const isSafe = checkSafeUniversalResolverData(data, {
183
+ strict: false,
184
+ abi: universalResolverResolveArraySnippet,
185
+ args: passthrough.args,
186
+ functionName: 'resolve',
187
+ address: passthrough.address,
188
+ });
189
+ if (!isSafe)
190
+ return {
191
+ ...emptyResult,
192
+ resolverAddress: EMPTY_ADDRESS,
193
+ };
133
194
  const result = decodeFunctionResult({
134
195
  abi: universalResolverResolveArraySnippet,
135
196
  functionName: 'resolve',
@@ -146,68 +207,10 @@ const decode = async (client, data, passthrough, { name, resolver, records: reco
146
207
  }
147
208
  const filteredCalls = calls.filter((x) => x);
148
209
  const filteredRecordData = recordData.filter((x) => x);
149
- const decodedRecords = await Promise.all(filteredRecordData.map(async (item, i) => {
150
- const { key, type } = filteredCalls[i];
151
- const baseItem = { key, type };
152
- if (type === 'contentHash') {
153
- const decodedFromAbi = decodeAbiParameters([{ type: 'bytes' }], item)[0];
154
- if (decodedFromAbi === '0x' || hexToBigInt(decodedFromAbi) === 0n) {
155
- return { ...baseItem, value: null };
156
- }
157
- }
158
- if (type === 'text') {
159
- const decodedFromAbi = await _getText.decode(client, item);
160
- return { ...baseItem, value: decodedFromAbi };
161
- }
162
- if (type === 'coin') {
163
- const decodedFromAbi = await _getAddr.decode(client, item, {
164
- name,
165
- coin: key,
166
- });
167
- return { ...baseItem, value: decodedFromAbi };
168
- }
169
- if (type === 'contentHash') {
170
- const decodedFromAbi = await _getContentHash.decode(client, item);
171
- return { ...baseItem, value: decodedFromAbi };
172
- }
173
- // abi
174
- const decodedFromAbi = await _getAbi.decode(client, item);
175
- return { ...baseItem, value: decodedFromAbi };
176
- }));
177
- const records = decodedRecords.reduce((prev, curr) => {
178
- if (curr.type === 'text' || curr.type === 'coin') {
179
- if (!curr.value) {
180
- return prev;
181
- }
182
- }
183
- if (curr.type === 'text') {
184
- return {
185
- ...prev,
186
- texts: [
187
- ...(prev.texts || []),
188
- { key: curr.key, value: curr.value },
189
- ],
190
- };
191
- }
192
- if (curr.type === 'coin') {
193
- return {
194
- ...prev,
195
- coins: [...(prev.coins || []), curr.value],
196
- };
197
- }
198
- if (curr.type === 'contentHash') {
199
- return {
200
- ...prev,
201
- contentHash: curr.value,
202
- };
203
- }
204
- // abi
205
- return { ...prev, abi: curr.value };
206
- }, {
210
+ const decodedRecords = await Promise.all(filteredRecordData.map(async (item, i) => decodeRecord(client, { item, call: filteredCalls[i] })));
211
+ const records = decodedRecords.reduce(createRecordResult, {
212
+ ...emptyResult,
207
213
  resolverAddress,
208
- ...('texts' in recordsParams ? { texts: [] } : {}),
209
- ...('coins' in recordsParams ? { coins: [] } : {}),
210
- ...('contentHash' in recordsParams ? { contentHash: null } : {}),
211
214
  });
212
215
  return records;
213
216
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getRecords.js","sourceRoot":"","sources":["../../../../src/functions/public/getRecords.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getRecords.js","sourceRoot":"","sources":["../../../../src/functions/public/getRecords.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,21 @@
1
1
  import { generateFunction, } from '../../utils/generateFunction.js';
2
2
  import _getText, {} from './_getText.js';
3
3
  import universalWrapper from './universalWrapper.js';
4
- const encode = (client, { name, key }) => {
4
+ const encode = (client, { name, key, gatewayUrls }) => {
5
5
  const prData = _getText.encode(client, { name, key });
6
- return universalWrapper.encode(client, { name, data: prData.data });
6
+ return universalWrapper.encode(client, {
7
+ name,
8
+ data: prData.data,
9
+ gatewayUrls,
10
+ });
7
11
  };
8
- const decode = async (client, data, passthrough) => {
9
- const urData = await universalWrapper.decode(client, data, passthrough);
10
- return _getText.decode(client, urData.data);
12
+ const decode = async (client, data, passthrough, { strict }) => {
13
+ const urData = await universalWrapper.decode(client, data, passthrough, {
14
+ strict,
15
+ });
16
+ if (!urData)
17
+ return null;
18
+ return _getText.decode(client, urData.data, { strict });
11
19
  };
12
20
  /**
13
21
  * Gets a text record for a name.
@@ -1 +1 @@
1
- {"version":3,"file":"getTextRecord.js","sourceRoot":"","sources":["../../../../src/functions/public/getTextRecord.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAA;AACxC,OAAO,QAAQ,EAAE,EAGhB,MAAM,eAAe,CAAA;AACtB,OAAO,gBAAgB,MAAM,uBAAuB,CAAA;AAMpD,MAAM,MAAM,GAAG,CACb,MAAqB,EACrB,EAAE,IAAI,EAAE,GAAG,EAA2B,EACZ,EAAE;IAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IACrD,OAAO,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;AACrE,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,KAAK,EAClB,MAAqB,EACrB,IAAqB,EACrB,WAA+B,EACG,EAAE;IACpC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;AAC7C,CAAC,CAAA;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAIhC,CAAA;AAEzB,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"getTextRecord.js","sourceRoot":"","sources":["../../../../src/functions/public/getTextRecord.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAA;AACxC,OAAO,QAAQ,EAAE,EAGhB,MAAM,eAAe,CAAA;AACtB,OAAO,gBAAgB,MAAM,uBAAuB,CAAA;AAWpD,MAAM,MAAM,GAAG,CACb,MAAqB,EACrB,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAA2C,EACzC,EAAE;IAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IACrD,OAAO,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE;QACrC,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW;KACZ,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,KAAK,EAClB,MAAqB,EACrB,IAAqB,EACrB,WAA+B,EAC/B,EAAE,MAAM,EAA2C,EACjB,EAAE;IACpC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;QACtE,MAAM;KACP,CAAC,CAAA;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AACzD,CAAC,CAAA;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAIhC,CAAA;AAEzB,eAAe,aAAa,CAAA"}
@@ -1,12 +1,11 @@
1
- import { BaseError, decodeErrorResult, decodeFunctionResult, encodeFunctionData, getContractError, labelhash, toBytes, toHex, } from 'viem';
1
+ import { BaseError, decodeFunctionResult, encodeFunctionData, labelhash, toBytes, toHex, } from 'viem';
2
2
  import { getChainContractAddress } from '../../contracts/getChainContractAddress.js';
3
3
  import { universalResolverResolveSnippet } from '../../contracts/universalResolver.js';
4
- import { EMPTY_ADDRESS } from '../../utils/consts.js';
4
+ import { checkSafeUniversalResolverData } from '../../utils/checkSafeUniversalResolverData.js';
5
5
  import { generateFunction } from '../../utils/generateFunction.js';
6
- import { getRevertErrorData } from '../../utils/getRevertErrorData.js';
7
6
  import { packetToBytes } from '../../utils/hexEncodedName.js';
8
7
  import { encodeLabelhash } from '../../utils/labels.js';
9
- const encode = (client, { name, data }) => {
8
+ const encode = (client, { name, data, gatewayUrls }) => {
10
9
  const nameWithSizedLabels = name
11
10
  .split('.')
12
11
  .map((label) => {
@@ -23,46 +22,55 @@ const encode = (client, { name, data }) => {
23
22
  });
24
23
  const args = [toHex(packetToBytes(nameWithSizedLabels)), data];
25
24
  return {
26
- to: getChainContractAddress({ client, contract: 'ensUniversalResolver' }),
27
- data: encodeFunctionData({
28
- abi: universalResolverResolveSnippet,
29
- functionName: 'resolve',
30
- args,
31
- }),
32
- passthrough: {
33
- args,
34
- address: to,
35
- },
25
+ to,
26
+ ...(gatewayUrls?.length
27
+ ? {
28
+ data: encodeFunctionData({
29
+ abi: universalResolverResolveSnippet,
30
+ functionName: 'resolve',
31
+ args: [...args, gatewayUrls],
32
+ }),
33
+ passthrough: {
34
+ args: [...args, gatewayUrls],
35
+ address: to,
36
+ },
37
+ }
38
+ : {
39
+ data: encodeFunctionData({
40
+ abi: universalResolverResolveSnippet,
41
+ functionName: 'resolve',
42
+ args,
43
+ }),
44
+ passthrough: {
45
+ args,
46
+ address: to,
47
+ },
48
+ }),
36
49
  };
37
50
  };
38
- const decode = async (_client, data, passthrough) => {
39
- if (typeof data === 'object') {
40
- const errorData = getRevertErrorData(data);
41
- if (errorData) {
42
- const decodedError = decodeErrorResult({
43
- abi: universalResolverResolveSnippet,
44
- data: errorData,
45
- });
46
- if (decodedError.errorName === 'ResolverNotFound' ||
47
- decodedError.errorName === 'ResolverWildcardNotSupported')
48
- return {
49
- data: '0x',
50
- resolver: EMPTY_ADDRESS,
51
- };
52
- }
53
- throw getContractError(data, {
51
+ const decode = async (_client, data, passthrough, { strict }) => {
52
+ const isSafe = checkSafeUniversalResolverData(data, {
53
+ strict,
54
+ abi: universalResolverResolveSnippet,
55
+ args: passthrough.args,
56
+ functionName: 'resolve',
57
+ address: passthrough.address,
58
+ });
59
+ if (!isSafe)
60
+ return null;
61
+ try {
62
+ const result = decodeFunctionResult({
54
63
  abi: universalResolverResolveSnippet,
55
64
  functionName: 'resolve',
56
- args: passthrough.args,
57
- address: passthrough.address,
65
+ data,
58
66
  });
67
+ return { data: result[0], resolver: result[1] };
68
+ }
69
+ catch (error) {
70
+ if (strict)
71
+ throw error;
72
+ return null;
59
73
  }
60
- const result = decodeFunctionResult({
61
- abi: universalResolverResolveSnippet,
62
- functionName: 'resolve',
63
- data,
64
- });
65
- return { data: result[0], resolver: result[1] };
66
74
  };
67
75
  const universalWrapper = generateFunction({ encode, decode });
68
76
  export default universalWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"universalWrapper.js","sourceRoot":"","sources":["../../../../src/functions/public/universalWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universalWrapper.js","sourceRoot":"","sources":["../../../../src/functions/public/universalWrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { CallExecutionError, decodeErrorResult, getContractError, } from 'viem';
2
+ import { getRevertErrorData } from './getRevertErrorData.js';
3
+ /**
4
+ * Checks if the data returned from a universal resolver is safe to use, or if it is a known revert error
5
+ * @param parameters - {@link CheckSafeUniversalResolverDataParameters}
6
+ * @returns `true` if the data is safe to use, `false` if it is a known revert error, or throws if it is an unknown error
7
+ */
8
+ export const checkSafeUniversalResolverData = (data, { strict, abi, args, functionName, address, docsPath, sender, }) => {
9
+ if (typeof data === 'object') {
10
+ // if not strict, attempt to check if the error is a known revert error before throwing
11
+ // if it is a known revert error, return false instead of throwing
12
+ // even if strict is false, we want to throw unknown contract errors
13
+ if (!strict) {
14
+ const errorData = getRevertErrorData(data);
15
+ if (errorData) {
16
+ try {
17
+ decodeErrorResult({
18
+ abi,
19
+ data: errorData,
20
+ });
21
+ return false;
22
+ }
23
+ catch (error) { }
24
+ }
25
+ }
26
+ if (data instanceof CallExecutionError)
27
+ throw data;
28
+ throw getContractError(data, {
29
+ abi,
30
+ args: typeof args === 'function' ? args() : args,
31
+ functionName,
32
+ address,
33
+ docsPath,
34
+ sender,
35
+ });
36
+ }
37
+ return true;
38
+ };
39
+ //# sourceMappingURL=checkSafeUniversalResolverData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkSafeUniversalResolverData.js","sourceRoot":"","sources":["../../../src/utils/checkSafeUniversalResolverData.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAS5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,IAAqB,EACrB,EACE,MAAM,EACN,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,MAAM,GACmC,EAC9B,EAAE;IACf,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,uFAAuF;QACvF,kEAAkE;QAClE,oEAAoE;QACpE,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAC1C,IAAI,SAAS,EAAE;gBACb,IAAI;oBACF,iBAAiB,CAAC;wBAChB,GAAG;wBACH,IAAI,EAAE,SAAS;qBAChB,CAAC,CAAA;oBACF,OAAO,KAAK,CAAA;iBACb;gBAAC,OAAO,KAAK,EAAE,GAAE;aACnB;SACF;QACD,IAAI,IAAI,YAAY,kBAAkB;YAAE,MAAM,IAAI,CAAA;QAClD,MAAM,gBAAgB,CAAC,IAAI,EAAE;YAC3B,GAAG;YACH,IAAI,EAAE,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;YAChD,YAAY;YACZ,OAAO;YACP,QAAQ;YACR,MAAM;SACP,CAAc,CAAA;KAChB;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}