viem 0.1.23 → 0.2.0-0-2-0.20230328T054201

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 (72) hide show
  1. package/accounts/package.json +4 -0
  2. package/dist/abi.d.ts +3 -3
  3. package/dist/abi.js +2 -2
  4. package/dist/abi.mjs +1 -1
  5. package/dist/accounts/index.d.ts +90 -0
  6. package/dist/accounts/index.js +152 -0
  7. package/dist/accounts/index.js.map +1 -0
  8. package/dist/accounts/index.mjs +152 -0
  9. package/dist/accounts/index.mjs.map +1 -0
  10. package/dist/{chain-ec8c485d.d.ts → chain-40443542.d.ts} +1 -1
  11. package/dist/{chain-1b53ef88.d.ts → chain-4af995bf.d.ts} +77 -36
  12. package/dist/chains.d.ts +3 -3
  13. package/dist/chains.js +63 -63
  14. package/dist/chains.mjs +1 -1
  15. package/dist/chunk-43HQD3IL.js +31 -0
  16. package/dist/chunk-43HQD3IL.js.map +1 -0
  17. package/dist/{chunk-HRVPAYH7.mjs → chunk-DFMQLPHS.mjs} +2 -2
  18. package/dist/chunk-DFMQLPHS.mjs.map +1 -0
  19. package/dist/{chunk-66PXETQB.js → chunk-FZPFAAOJ.js} +19 -19
  20. package/dist/chunk-FZPFAAOJ.js.map +1 -0
  21. package/dist/{chunk-JG6MI5ZV.mjs → chunk-HYEOQX7O.mjs} +1106 -199
  22. package/dist/chunk-HYEOQX7O.mjs.map +1 -0
  23. package/dist/{chunk-Z54YSSBJ.js → chunk-OW7TKT7L.js} +1168 -261
  24. package/dist/chunk-OW7TKT7L.js.map +1 -0
  25. package/dist/chunk-UK6FAD4V.mjs +31 -0
  26. package/dist/chunk-UK6FAD4V.mjs.map +1 -0
  27. package/dist/contract.d.ts +9 -7
  28. package/dist/contract.js +2 -2
  29. package/dist/contract.mjs +1 -1
  30. package/dist/{createClient-a28317a9.d.ts → createClient-1f19be8d.d.ts} +24 -10
  31. package/dist/{createPublicClient-b250a534.d.ts → createPublicClient-fd8b1349.d.ts} +229 -242
  32. package/dist/{eip1193-4f4e240c.d.ts → eip1193-210ab776.d.ts} +1 -1
  33. package/dist/{encodeFunctionResult-1f324375.d.ts → encodeFunctionResult-a252fba1.d.ts} +1 -1
  34. package/dist/{encodePacked-d5d5264a.d.ts → encodePacked-a9464e97.d.ts} +1 -1
  35. package/dist/ens.d.ts +6 -4
  36. package/dist/ens.js +3 -3
  37. package/dist/ens.mjs +2 -2
  38. package/dist/ethers.d.ts +5 -6
  39. package/dist/ethers.js +7 -5
  40. package/dist/ethers.js.map +1 -1
  41. package/dist/ethers.mjs +7 -5
  42. package/dist/ethers.mjs.map +1 -1
  43. package/dist/{formatAbiItem-15e8817d.d.ts → formatAbiItem-6ed70dbd.d.ts} +1 -1
  44. package/dist/{getAbiItem-3e809ff9.d.ts → getAbiItem-1ff0f41a.d.ts} +1 -1
  45. package/dist/index.d.ts +22 -14
  46. package/dist/index.js +136 -101
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +78 -43
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/parseAccount-8e131c73.d.ts +6 -0
  51. package/dist/{parseGwei-bd0eea6c.d.ts → parseGwei-5e2a8e87.d.ts} +95 -15
  52. package/dist/public.d.ts +6 -4
  53. package/dist/public.js +2 -2
  54. package/dist/public.mjs +1 -1
  55. package/dist/test-e28db435.d.ts +198 -0
  56. package/dist/test.d.ts +11 -11
  57. package/dist/test.js +2 -2
  58. package/dist/test.mjs +1 -1
  59. package/dist/typedData-848139b1.d.ts +93 -0
  60. package/dist/utils/index.d.ts +22 -30
  61. package/dist/utils/index.js +26 -2
  62. package/dist/utils/index.mjs +29 -5
  63. package/dist/wallet.d.ts +6 -4
  64. package/dist/wallet.js +2 -2
  65. package/dist/wallet.mjs +1 -1
  66. package/dist/window.d.ts +2 -2
  67. package/package.json +10 -2
  68. package/dist/chunk-66PXETQB.js.map +0 -1
  69. package/dist/chunk-HRVPAYH7.mjs.map +0 -1
  70. package/dist/chunk-JG6MI5ZV.mjs.map +0 -1
  71. package/dist/chunk-Z54YSSBJ.js.map +0 -1
  72. package/dist/test-2bd23d7e.d.ts +0 -205
@@ -1,11 +1,6 @@
1
1
  import { Chain as Chain$1 } from '@wagmi/chains';
2
2
  import { Abi, AbiFunction, ExtractAbiFunction, AbiParametersToPrimitiveTypes, AbiConstructor, AbiError, ExtractAbiError, AbiEvent, ExtractAbiEvent, ExtractAbiErrorNames, ExtractAbiEventNames, AbiStateMutability, ExtractAbiFunctionNames, Narrow, Address, AbiParameter, AbiParameterToPrimitiveType } from 'abitype';
3
3
 
4
- type ByteArray = Uint8Array;
5
- type Hex = `0x${string}`;
6
- type Hash = `0x${string}`;
7
- type LogTopic = Hex | Hex[] | null;
8
-
9
4
  type ExtractFormatter<TChain extends Chain, TKey extends keyof NonNullable<TChain['formatters']>, TFallbackFormatter extends Formatter = Formatter> = NonNullable<TChain['formatters']>[TKey] extends NonNullable<unknown> ? NonNullable<TChain['formatters']>[TKey] : TFallbackFormatter;
10
5
  type FormatOptions<TSource, TTarget> = {
11
6
  formatter: Formatter<TSource, TTarget>;
@@ -41,7 +36,7 @@ declare function defineFormatter<TSource extends Record<string, unknown>, TForma
41
36
  [key: string]: unknown;
42
37
  }) => TFormatted & ReturnType<TFormat> & { [K in TExclude[number]]: never; };
43
38
 
44
- type TransactionFormatter<TChain extends Chain = Chain> = ExtractFormatter<TChain, 'transaction', NonNullable<Formatters['transaction']>>;
39
+ type TransactionFormatter<TChain extends Chain | undefined = Chain> = TChain extends Chain ? ExtractFormatter<TChain, 'transaction', NonNullable<Formatters['transaction']>> : Formatters['transaction'];
45
40
  type FormattedTransaction<TFormatter extends Formatter | undefined = Formatter> = Formatted<TFormatter, Transaction>;
46
41
  declare const transactionType: {
47
42
  readonly '0x0': "legacy";
@@ -51,13 +46,59 @@ declare const transactionType: {
51
46
  declare function formatTransaction(transaction: Partial<RpcTransaction>): Transaction<bigint, number>;
52
47
  declare const defineTransaction: <TFormat extends Formatter<Partial<RpcTransaction>, Partial<Transaction<bigint, number>> & {
53
48
  [key: string]: unknown;
54
- }>, TExclude extends ("type" | "value" | "blockHash" | "blockNumber" | "from" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "gas" | "nonce" | "to" | "accessList" | "hash" | "chainId" | "input" | "r" | "s" | "transactionIndex" | "v")[] = []>({ exclude, format: formatOverride, }: {
49
+ }>, TExclude extends ("type" | "value" | "blockHash" | "blockNumber" | "chainId" | "from" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "gas" | "nonce" | "to" | "accessList" | "r" | "s" | "v" | "transactionIndex" | "hash" | "input")[] = []>({ exclude, format: formatOverride, }: {
55
50
  exclude?: TExclude | undefined;
56
51
  format?: TFormat | undefined;
57
52
  }) => (data: Partial<RpcTransaction> & {
58
53
  [key: string]: unknown;
59
54
  }) => Transaction<bigint, number> & ReturnType<TFormat> & { [K in TExclude[number]]: never; };
60
55
 
56
+ type ByteArray = Uint8Array;
57
+ type Hex = `0x${string}`;
58
+ type Hash = `0x${string}`;
59
+ type LogTopic = Hex | Hex[] | null;
60
+ type Signature = {
61
+ r: Hex;
62
+ s: Hex;
63
+ v: bigint;
64
+ };
65
+
66
+ type FeeHistory<TQuantity = bigint> = {
67
+ /**
68
+ * An array of block base fees per gas (in wei). This includes the next block after
69
+ * the newest of the returned range, because this value can be derived from the newest block.
70
+ * Zeroes are returned for pre-EIP-1559 blocks. */
71
+ baseFeePerGas: TQuantity[];
72
+ /** An array of block gas used ratios. These are calculated as the ratio of gasUsed and gasLimit. */
73
+ gasUsedRatio: number[];
74
+ /** Lowest number block of the returned range. */
75
+ oldestBlock: TQuantity;
76
+ /** An array of effective priority fees (in wei) per gas data points from a single block. All zeroes are returned if the block is empty. */
77
+ reward?: TQuantity[][];
78
+ };
79
+ type FeeValuesLegacy<TQuantity = bigint> = {
80
+ /** Base fee per gas. */
81
+ gasPrice: TQuantity;
82
+ maxFeePerGas?: never;
83
+ maxPriorityFeePerGas?: never;
84
+ };
85
+ type FeeValuesEIP1559<TQuantity = bigint> = {
86
+ gasPrice?: never;
87
+ /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). */
88
+ maxFeePerGas: TQuantity;
89
+ /** Max priority fee per gas (in wei). */
90
+ maxPriorityFeePerGas: TQuantity;
91
+ };
92
+ type FeeValues<TQuantity = bigint> = FeeValuesLegacy<TQuantity> | FeeValuesEIP1559<TQuantity>;
93
+
94
+ /**
95
+ * @description Checks if {@link T} is `undefined`
96
+ * @param T - Type to check
97
+ * @example
98
+ * type Result = IsUndefined<undefined>
99
+ * // ^? true
100
+ */
101
+ type IsUndefined<T> = [undefined] extends [T] ? true : false;
61
102
  /**
62
103
  * @description Excludes empty attributes from T if TMaybeExclude is true.
63
104
  *
@@ -269,34 +310,6 @@ type ContractConfig<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName e
269
310
  } & ExtractArgsFromAbi<TAbi, TFunctionName>;
270
311
  type GetValue<TAbi extends Abi | readonly unknown[], TFunctionName extends string, TValueType = TransactionRequest['value'], TAbiFunction extends AbiFunction = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction> = TAbiFunction['stateMutability'] extends 'payable' ? TValueType : TAbiFunction['payable'] extends true ? TValueType : never;
271
312
 
272
- type FeeHistory<TQuantity = bigint> = {
273
- /**
274
- * An array of block base fees per gas (in wei). This includes the next block after
275
- * the newest of the returned range, because this value can be derived from the newest block.
276
- * Zeroes are returned for pre-EIP-1559 blocks. */
277
- baseFeePerGas: TQuantity[];
278
- /** An array of block gas used ratios. These are calculated as the ratio of gasUsed and gasLimit. */
279
- gasUsedRatio: number[];
280
- /** Lowest number block of the returned range. */
281
- oldestBlock: TQuantity;
282
- /** An array of effective priority fees (in wei) per gas data points from a single block. All zeroes are returned if the block is empty. */
283
- reward?: TQuantity[][];
284
- };
285
- type FeeValuesLegacy<TQuantity = bigint> = {
286
- /** Base fee per gas. */
287
- gasPrice: TQuantity;
288
- maxFeePerGas?: never;
289
- maxPriorityFeePerGas?: never;
290
- };
291
- type FeeValuesEIP1559<TQuantity = bigint> = {
292
- gasPrice?: never;
293
- /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). */
294
- maxFeePerGas: TQuantity;
295
- /** Max priority fee per gas (in wei). */
296
- maxPriorityFeePerGas: TQuantity;
297
- };
298
- type FeeValues<TQuantity = bigint> = FeeValuesLegacy<TQuantity> | FeeValuesEIP1559<TQuantity>;
299
-
300
313
  type DecodedAbiEvent<TAbiEvent extends AbiEvent | undefined = undefined, TAbi extends Abi | readonly unknown[] = [TAbiEvent], TEventName extends string | undefined = TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined> = TAbi extends Abi ? TEventName extends string ? {
301
314
  args: ExtractEventArgsFromAbi<TAbi, TEventName, {
302
315
  enableUnion: false;
@@ -437,6 +450,29 @@ type TransactionRequestEIP1559<TQuantity = bigint, TIndex = number> = Transactio
437
450
  accessList?: AccessList;
438
451
  };
439
452
  type TransactionRequest<TQuantity = bigint, TIndex = number> = TransactionRequestLegacy<TQuantity, TIndex> | TransactionRequestEIP2930<TQuantity, TIndex> | TransactionRequestEIP1559<TQuantity, TIndex>;
453
+ type TransactionSerializedEIP1559 = `0x02${string}`;
454
+ type TransactionSerializedEIP2930 = `0x01${string}`;
455
+ type TransactionSerializedLegacy = Hex;
456
+ type TransactionSerialized<TType extends TransactionType$1 = 'legacy'> = (TType extends 'eip1559' ? TransactionSerializedEIP1559 : never) | (TType extends 'eip2930' ? TransactionSerializedEIP2930 : never) | (TType extends 'legacy' ? TransactionSerializedLegacy : never);
457
+ type TransactionSerializableBase<TQuantity = bigint, TIndex = number> = Omit<TransactionRequestBase<TQuantity, TIndex>, 'from'> & Partial<Signature>;
458
+ type TransactionSerializableLegacy<TQuantity = bigint, TIndex = number> = TransactionSerializableBase<TQuantity, TIndex> & Partial<FeeValuesLegacy<TQuantity>> & {
459
+ accessList?: never;
460
+ chainId?: number;
461
+ type?: 'legacy';
462
+ };
463
+ type TransactionSerializableEIP2930<TQuantity = bigint, TIndex = number> = TransactionSerializableBase<TQuantity, TIndex> & Partial<FeeValuesLegacy<TQuantity>> & {
464
+ accessList?: AccessList;
465
+ chainId: number;
466
+ type?: 'eip2930';
467
+ yParity?: number;
468
+ };
469
+ type TransactionSerializableEIP1559<TQuantity = bigint, TIndex = number> = TransactionSerializableBase<TQuantity, TIndex> & Partial<FeeValuesEIP1559<TQuantity>> & {
470
+ accessList?: AccessList;
471
+ chainId: number;
472
+ type?: 'eip1559';
473
+ yParity?: number;
474
+ };
475
+ type TransactionSerializable<TQuantity = bigint, TIndex = number> = TransactionSerializableLegacy<TQuantity, TIndex> | TransactionSerializableEIP2930<TQuantity, TIndex> | TransactionSerializableEIP1559<TQuantity, TIndex>;
440
476
 
441
477
  type Block<TQuantity = bigint, TTransaction = Transaction> = {
442
478
  /** Base fee per gas */
@@ -525,5 +561,10 @@ type Formatters = {
525
561
  type Chain<TFormatters extends Formatters = Formatters> = Chain$1 & {
526
562
  formatters?: TFormatters;
527
563
  };
564
+ type GetChain<TChain extends Chain | undefined, TChainOverride extends Chain | undefined = undefined> = IsUndefined<TChain> extends true ? {
565
+ chain: TChainOverride | null;
566
+ } : {
567
+ chain?: TChainOverride | null;
568
+ };
528
569
 
529
- export { formatTransaction as $, AbiItem as A, ByteArray as B, Chain as C, RpcTransactionRequest as D, ExtractArgsFromAbi as E, FeeHistory as F, RpcUncle as G, Hex as H, TransactionRequest as I, TransactionRequestBase as J, TransactionRequestEIP1559 as K, Log as L, TransactionRequestEIP2930 as M, TransactionRequestLegacy as N, Transaction as O, TransactionBase as P, TransactionEIP1559 as Q, RpcBlock as R, TransactionEIP2930 as S, TransactionReceipt as T, TransactionLegacy as U, Uncle as V, ExtractFormatter as W, Formatted as X, FormattedTransaction as Y, TransactionFormatter as Z, defineTransaction as _, Hash as a, transactionType as a0, Formatters as a1, Formatter as a2, TransactionType$1 as a3, MergeIntersectionProperties as a4, GetValue as a5, MaybeAbiEventName as a6, MaybeExtractEventArgsFromAbi as a7, Prettify as a8, Quantity as a9, EventDefinition as aa, LogTopic as ab, defineFormatter as ac, format as ad, AccessList as b, Block as c, BlockIdentifier as d, BlockNumber as e, BlockTag as f, ContractConfig as g, ExtractConstructorArgsFromAbi as h, ExtractErrorArgsFromAbi as i, ExtractErrorNameFromAbi as j, ExtractEventArgsFromAbi as k, ExtractEventArgsFromTopics as l, ExtractEventNameFromAbi as m, ExtractFunctionNameFromAbi as n, ExtractNameFromAbi as o, ExtractResultFromAbi as p, FeeValues as q, FeeValuesEIP1559 as r, FeeValuesLegacy as s, RpcBlockIdentifier as t, RpcBlockNumber as u, RpcFeeHistory as v, RpcFeeValues as w, RpcLog as x, RpcTransaction as y, RpcTransactionReceipt as z };
570
+ export { TransactionSerialized as $, AbiItem as A, ByteArray as B, Chain as C, RpcTransactionRequest as D, ExtractArgsFromAbi as E, FeeHistory as F, RpcUncle as G, Hex as H, TransactionType$1 as I, TransactionBase as J, TransactionEIP1559 as K, Log as L, TransactionEIP2930 as M, TransactionLegacy as N, TransactionReceipt as O, TransactionRequest as P, TransactionRequestBase as Q, RpcBlock as R, TransactionRequestEIP1559 as S, Transaction as T, TransactionRequestEIP2930 as U, TransactionRequestLegacy as V, TransactionSerializable as W, TransactionSerializableBase as X, TransactionSerializableEIP1559 as Y, TransactionSerializableEIP2930 as Z, TransactionSerializableLegacy as _, Hash as a, TransactionSerializedEIP1559 as a0, TransactionSerializedEIP2930 as a1, TransactionSerializedLegacy as a2, Uncle as a3, ExtractFormatter as a4, Formatted as a5, FormattedTransaction as a6, TransactionFormatter as a7, defineTransaction as a8, formatTransaction as a9, transactionType as aa, Formatters as ab, Formatter as ac, MergeIntersectionProperties as ad, GetChain as ae, GetValue as af, MaybeAbiEventName as ag, MaybeExtractEventArgsFromAbi as ah, IsUndefined as ai, Prettify as aj, Quantity as ak, EventDefinition as al, Signature as am, LogTopic as an, defineFormatter as ao, format as ap, AccessList as b, Block as c, BlockIdentifier as d, BlockNumber as e, BlockTag as f, ContractConfig as g, ExtractConstructorArgsFromAbi as h, ExtractErrorArgsFromAbi as i, ExtractErrorNameFromAbi as j, ExtractEventArgsFromAbi as k, ExtractEventArgsFromTopics as l, ExtractEventNameFromAbi as m, ExtractFunctionNameFromAbi as n, ExtractNameFromAbi as o, ExtractResultFromAbi as p, FeeValues as q, FeeValuesEIP1559 as r, FeeValuesLegacy as s, RpcBlockIdentifier as t, RpcBlockNumber as u, RpcFeeHistory as v, RpcFeeValues as w, RpcLog as x, RpcTransaction as y, RpcTransactionReceipt as z };
package/dist/chains.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { R as RpcBlock, c as Block, O as Transaction, H as Hex, y as RpcTransaction, z as RpcTransactionReceipt, T as TransactionReceipt, a3 as TransactionType, I as TransactionRequest, D as RpcTransactionRequest } from './chain-1b53ef88.js';
2
- export { C as Chain } from './chain-1b53ef88.js';
3
- export { d as defineChain } from './chain-ec8c485d.js';
1
+ export { d as defineChain } from './chain-40443542.js';
2
+ import { R as RpcBlock, c as Block, T as Transaction, H as Hex, y as RpcTransaction, z as RpcTransactionReceipt, O as TransactionReceipt, I as TransactionType, P as TransactionRequest, D as RpcTransactionRequest } from './chain-4af995bf.js';
3
+ export { C as Chain } from './chain-4af995bf.js';
4
4
  import * as chains from '@wagmi/chains';
5
5
  import 'abitype';
6
6
 
package/dist/chains.js CHANGED
@@ -4,32 +4,32 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkZ54YSSBJjs = require('./chunk-Z54YSSBJ.js');
7
+ var _chunkOW7TKT7Ljs = require('./chunk-OW7TKT7L.js');
8
8
 
9
9
  // src/chains.ts
10
10
  var _chains = require('@wagmi/chains'); var chains = _interopRequireWildcard(_chains);
11
11
  var celoFormatters = {
12
- block: _chunkZ54YSSBJjs.defineBlock.call(void 0, {
12
+ block: _chunkOW7TKT7Ljs.defineBlock.call(void 0, {
13
13
  exclude: ["difficulty", "gasLimit", "mixHash", "nonce", "uncles"],
14
14
  format: (block) => ({
15
15
  randomness: block.randomness
16
16
  })
17
17
  }),
18
- transaction: _chunkZ54YSSBJjs.defineTransaction.call(void 0, {
18
+ transaction: _chunkOW7TKT7Ljs.defineTransaction.call(void 0, {
19
19
  format: (transaction) => ({
20
20
  feeCurrency: transaction.feeCurrency,
21
21
  gatewayFee: transaction.gatewayFee ? BigInt(transaction.gatewayFee) : null,
22
22
  gatewayFeeRecipient: transaction.gatewayFeeRecipient
23
23
  })
24
24
  }),
25
- transactionReceipt: _chunkZ54YSSBJjs.defineTransactionReceipt.call(void 0, {
25
+ transactionReceipt: _chunkOW7TKT7Ljs.defineTransactionReceipt.call(void 0, {
26
26
  format: (transaction) => ({
27
27
  feeCurrency: transaction.feeCurrency,
28
28
  gatewayFee: transaction.gatewayFee ? BigInt(transaction.gatewayFee) : null,
29
29
  gatewayFeeRecipient: transaction.gatewayFeeRecipient
30
30
  })
31
31
  }),
32
- transactionRequest: _chunkZ54YSSBJjs.defineTransactionRequest.call(void 0, {
32
+ transactionRequest: _chunkOW7TKT7Ljs.defineTransactionRequest.call(void 0, {
33
33
  format: (transactionRequest) => ({
34
34
  feeCurrency: transactionRequest.feeCurrency,
35
35
  gatewayFee: transactionRequest.gatewayFee,
@@ -37,69 +37,69 @@ var celoFormatters = {
37
37
  })
38
38
  })
39
39
  };
40
- var arbitrum2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.arbitrum);
41
- var arbitrumGoerli2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.arbitrumGoerli);
42
- var aurora2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.aurora);
43
- var auroraGoerli = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.auroraTestnet);
44
- var avalanche2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.avalanche);
45
- var avalancheFuji2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.avalancheFuji);
46
- var baseGoerli2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.baseGoerli);
47
- var boba2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.boba);
48
- var bronos2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.bronos);
49
- var bronosTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.bronosTestnet);
50
- var bsc2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.bsc);
51
- var bscTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.bscTestnet);
52
- var canto2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.canto);
53
- var celo2 = _chunkZ54YSSBJjs.defineChain.call(void 0, {
40
+ var arbitrum2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.arbitrum);
41
+ var arbitrumGoerli2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.arbitrumGoerli);
42
+ var aurora2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.aurora);
43
+ var auroraGoerli = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.auroraTestnet);
44
+ var avalanche2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.avalanche);
45
+ var avalancheFuji2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.avalancheFuji);
46
+ var baseGoerli2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.baseGoerli);
47
+ var boba2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.boba);
48
+ var bronos2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.bronos);
49
+ var bronosTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.bronosTestnet);
50
+ var bsc2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.bsc);
51
+ var bscTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.bscTestnet);
52
+ var canto2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.canto);
53
+ var celo2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, {
54
54
  ...chains.celo,
55
55
  formatters: celoFormatters
56
56
  });
57
- var celoAlfajores2 = _chunkZ54YSSBJjs.defineChain.call(void 0, {
57
+ var celoAlfajores2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, {
58
58
  ...chains.celoAlfajores,
59
59
  formatters: celoFormatters
60
60
  });
61
- var crossbell2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.crossbell);
62
- var evmos2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.evmos);
63
- var evmosTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.evmosTestnet);
64
- var fantom2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.fantom);
65
- var fantomTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.fantomTestnet);
66
- var filecoin2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.filecoin);
67
- var filecoinCalibration2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.filecoinCalibration);
68
- var filecoinHyperspace2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.filecoinHyperspace);
69
- var flare2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.flare);
70
- var flareTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.flareTestnet);
71
- var foundry2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.foundry);
72
- var goerli2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.goerli);
73
- var gnosis2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.gnosis);
74
- var gnosisChiado2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.gnosisChiado);
75
- var hardhat2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.hardhat);
76
- var harmonyOne2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.harmonyOne);
77
- var iotex2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.iotex);
78
- var iotexTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.iotexTestnet);
79
- var localhost2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.localhost);
80
- var mainnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.mainnet);
81
- var metis2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.metis);
82
- var metisGoerli2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.metisGoerli);
83
- var moonbaseAlpha2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.moonbaseAlpha);
84
- var moonbeam2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.moonbeam);
85
- var moonriver2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.moonriver);
86
- var okc2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.okc);
87
- var optimism2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.optimism);
88
- var optimismGoerli2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.optimismGoerli);
89
- var polygon2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.polygon);
90
- var polygonMumbai2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.polygonMumbai);
91
- var polygonZkEvmTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.polygonZkEvmTestnet);
92
- var sepolia2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.sepolia);
93
- var shardeumSphinx2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.shardeumSphinx);
94
- var songbird2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.songbird);
95
- var songbirdTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.songbirdTestnet);
96
- var taraxa2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.taraxa);
97
- var taraxaTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.taraxaTestnet);
98
- var telos2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.telos);
99
- var telosTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.telosTestnet);
100
- var zhejiang2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.zhejiang);
101
- var zkSync2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.zkSync);
102
- var zkSyncTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.zkSyncTestnet);
61
+ var crossbell2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.crossbell);
62
+ var evmos2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.evmos);
63
+ var evmosTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.evmosTestnet);
64
+ var fantom2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.fantom);
65
+ var fantomTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.fantomTestnet);
66
+ var filecoin2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.filecoin);
67
+ var filecoinCalibration2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.filecoinCalibration);
68
+ var filecoinHyperspace2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.filecoinHyperspace);
69
+ var flare2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.flare);
70
+ var flareTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.flareTestnet);
71
+ var foundry2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.foundry);
72
+ var goerli2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.goerli);
73
+ var gnosis2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.gnosis);
74
+ var gnosisChiado2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.gnosisChiado);
75
+ var hardhat2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.hardhat);
76
+ var harmonyOne2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.harmonyOne);
77
+ var iotex2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.iotex);
78
+ var iotexTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.iotexTestnet);
79
+ var localhost2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.localhost);
80
+ var mainnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.mainnet);
81
+ var metis2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.metis);
82
+ var metisGoerli2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.metisGoerli);
83
+ var moonbaseAlpha2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.moonbaseAlpha);
84
+ var moonbeam2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.moonbeam);
85
+ var moonriver2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.moonriver);
86
+ var okc2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.okc);
87
+ var optimism2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.optimism);
88
+ var optimismGoerli2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.optimismGoerli);
89
+ var polygon2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.polygon);
90
+ var polygonMumbai2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.polygonMumbai);
91
+ var polygonZkEvmTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.polygonZkEvmTestnet);
92
+ var sepolia2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.sepolia);
93
+ var shardeumSphinx2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.shardeumSphinx);
94
+ var songbird2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.songbird);
95
+ var songbirdTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.songbirdTestnet);
96
+ var taraxa2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.taraxa);
97
+ var taraxaTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.taraxaTestnet);
98
+ var telos2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.telos);
99
+ var telosTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.telosTestnet);
100
+ var zhejiang2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.zhejiang);
101
+ var zkSync2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.zkSync);
102
+ var zkSyncTestnet2 = _chunkOW7TKT7Ljs.defineChain.call(void 0, chains.zkSyncTestnet);
103
103
 
104
104
 
105
105
 
@@ -159,5 +159,5 @@ var zkSyncTestnet2 = _chunkZ54YSSBJjs.defineChain.call(void 0, chains.zkSyncTest
159
159
 
160
160
 
161
161
 
162
- exports.arbitrum = arbitrum2; exports.arbitrumGoerli = arbitrumGoerli2; exports.aurora = aurora2; exports.auroraGoerli = auroraGoerli; exports.avalanche = avalanche2; exports.avalancheFuji = avalancheFuji2; exports.baseGoerli = baseGoerli2; exports.boba = boba2; exports.bronos = bronos2; exports.bronosTestnet = bronosTestnet2; exports.bsc = bsc2; exports.bscTestnet = bscTestnet2; exports.canto = canto2; exports.celo = celo2; exports.celoAlfajores = celoAlfajores2; exports.crossbell = crossbell2; exports.defineChain = _chunkZ54YSSBJjs.defineChain; exports.evmos = evmos2; exports.evmosTestnet = evmosTestnet2; exports.fantom = fantom2; exports.fantomTestnet = fantomTestnet2; exports.filecoin = filecoin2; exports.filecoinCalibration = filecoinCalibration2; exports.filecoinHyperspace = filecoinHyperspace2; exports.flare = flare2; exports.flareTestnet = flareTestnet2; exports.foundry = foundry2; exports.gnosis = gnosis2; exports.gnosisChiado = gnosisChiado2; exports.goerli = goerli2; exports.hardhat = hardhat2; exports.harmonyOne = harmonyOne2; exports.iotex = iotex2; exports.iotexTestnet = iotexTestnet2; exports.localhost = localhost2; exports.mainnet = mainnet2; exports.metis = metis2; exports.metisGoerli = metisGoerli2; exports.moonbaseAlpha = moonbaseAlpha2; exports.moonbeam = moonbeam2; exports.moonriver = moonriver2; exports.okc = okc2; exports.optimism = optimism2; exports.optimismGoerli = optimismGoerli2; exports.polygon = polygon2; exports.polygonMumbai = polygonMumbai2; exports.polygonZkEvmTestnet = polygonZkEvmTestnet2; exports.sepolia = sepolia2; exports.shardeumSphinx = shardeumSphinx2; exports.songbird = songbird2; exports.songbirdTestnet = songbirdTestnet2; exports.taraxa = taraxa2; exports.taraxaTestnet = taraxaTestnet2; exports.telos = telos2; exports.telosTestnet = telosTestnet2; exports.zhejiang = zhejiang2; exports.zkSync = zkSync2; exports.zkSyncTestnet = zkSyncTestnet2;
162
+ exports.arbitrum = arbitrum2; exports.arbitrumGoerli = arbitrumGoerli2; exports.aurora = aurora2; exports.auroraGoerli = auroraGoerli; exports.avalanche = avalanche2; exports.avalancheFuji = avalancheFuji2; exports.baseGoerli = baseGoerli2; exports.boba = boba2; exports.bronos = bronos2; exports.bronosTestnet = bronosTestnet2; exports.bsc = bsc2; exports.bscTestnet = bscTestnet2; exports.canto = canto2; exports.celo = celo2; exports.celoAlfajores = celoAlfajores2; exports.crossbell = crossbell2; exports.defineChain = _chunkOW7TKT7Ljs.defineChain; exports.evmos = evmos2; exports.evmosTestnet = evmosTestnet2; exports.fantom = fantom2; exports.fantomTestnet = fantomTestnet2; exports.filecoin = filecoin2; exports.filecoinCalibration = filecoinCalibration2; exports.filecoinHyperspace = filecoinHyperspace2; exports.flare = flare2; exports.flareTestnet = flareTestnet2; exports.foundry = foundry2; exports.gnosis = gnosis2; exports.gnosisChiado = gnosisChiado2; exports.goerli = goerli2; exports.hardhat = hardhat2; exports.harmonyOne = harmonyOne2; exports.iotex = iotex2; exports.iotexTestnet = iotexTestnet2; exports.localhost = localhost2; exports.mainnet = mainnet2; exports.metis = metis2; exports.metisGoerli = metisGoerli2; exports.moonbaseAlpha = moonbaseAlpha2; exports.moonbeam = moonbeam2; exports.moonriver = moonriver2; exports.okc = okc2; exports.optimism = optimism2; exports.optimismGoerli = optimismGoerli2; exports.polygon = polygon2; exports.polygonMumbai = polygonMumbai2; exports.polygonZkEvmTestnet = polygonZkEvmTestnet2; exports.sepolia = sepolia2; exports.shardeumSphinx = shardeumSphinx2; exports.songbird = songbird2; exports.songbirdTestnet = songbirdTestnet2; exports.taraxa = taraxa2; exports.taraxaTestnet = taraxaTestnet2; exports.telos = telos2; exports.telosTestnet = telosTestnet2; exports.zhejiang = zhejiang2; exports.zkSync = zkSync2; exports.zkSyncTestnet = zkSyncTestnet2;
163
163
  //# sourceMappingURL=chains.js.map
package/dist/chains.mjs CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  defineTransaction,
5
5
  defineTransactionReceipt,
6
6
  defineTransactionRequest
7
- } from "./chunk-JG6MI5ZV.mjs";
7
+ } from "./chunk-HYEOQX7O.mjs";
8
8
 
9
9
  // src/chains.ts
10
10
  import * as chains from "@wagmi/chains";
@@ -0,0 +1,31 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkOW7TKT7Ljs = require('./chunk-OW7TKT7L.js');
5
+
6
+ // src/accounts/toAccount.ts
7
+ function toAccount(source) {
8
+ if (typeof source === "string") {
9
+ if (!_chunkOW7TKT7Ljs.isAddress.call(void 0, source))
10
+ throw new (0, _chunkOW7TKT7Ljs.InvalidAddressError)({ address: source });
11
+ return {
12
+ address: source,
13
+ type: "json-rpc"
14
+ };
15
+ }
16
+ if (!_chunkOW7TKT7Ljs.isAddress.call(void 0, source.address))
17
+ throw new (0, _chunkOW7TKT7Ljs.InvalidAddressError)({ address: source.address });
18
+ return {
19
+ address: source.address,
20
+ signMessage: source.signMessage,
21
+ signTransaction: source.signTransaction,
22
+ signTypedData: source.signTypedData,
23
+ source: "custom",
24
+ type: "local"
25
+ };
26
+ }
27
+
28
+
29
+
30
+ exports.toAccount = toAccount;
31
+ //# sourceMappingURL=chunk-43HQD3IL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/accounts/toAccount.ts"],"names":[],"mappings":";;;;;;AAmBO,SAAS,UACd,QACsC;AACtC,MAAI,OAAO,WAAW,UAAU;AAC9B,QAAI,CAAC,UAAU,MAAM;AAAG,YAAM,IAAI,oBAAoB,EAAE,SAAS,OAAO,CAAC;AACzE,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AAEA,MAAI,CAAC,UAAU,OAAO,OAAO;AAC3B,UAAM,IAAI,oBAAoB,EAAE,SAAS,OAAO,QAAQ,CAAC;AAC3D,SAAO;AAAA,IACL,SAAS,OAAO;AAAA,IAChB,aAAa,OAAO;AAAA,IACpB,iBAAiB,OAAO;AAAA,IACxB,eAAe,OAAO;AAAA,IACtB,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AACF","sourcesContent":["import { InvalidAddressError } from '../errors'\nimport type { Address } from '../types'\nimport { isAddress } from '../utils'\nimport type {\n AccountSource,\n CustomSource,\n JsonRpcAccount,\n LocalAccount,\n} from './types'\n\ntype GetAccountReturnType<TAccountSource extends AccountSource> =\n | (TAccountSource extends Address ? JsonRpcAccount : never)\n | (TAccountSource extends CustomSource ? LocalAccount : never)\n\n/**\n * @description Creates an Account from a custom signing implementation.\n *\n * @returns A Local Account.\n */\nexport function toAccount<TAccountSource extends AccountSource>(\n source: TAccountSource,\n): GetAccountReturnType<TAccountSource> {\n if (typeof source === 'string') {\n if (!isAddress(source)) throw new InvalidAddressError({ address: source })\n return {\n address: source,\n type: 'json-rpc',\n } as GetAccountReturnType<TAccountSource>\n }\n\n if (!isAddress(source.address))\n throw new InvalidAddressError({ address: source.address })\n return {\n address: source.address,\n signMessage: source.signMessage,\n signTransaction: source.signTransaction,\n signTypedData: source.signTypedData,\n source: 'custom',\n type: 'local',\n } as GetAccountReturnType<TAccountSource>\n}\n"]}
@@ -11,7 +11,7 @@ import {
11
11
  stringToBytes,
12
12
  toBytes,
13
13
  toHex
14
- } from "./chunk-JG6MI5ZV.mjs";
14
+ } from "./chunk-HYEOQX7O.mjs";
15
15
 
16
16
  // src/utils/ens/labelhash.ts
17
17
  function labelhash(label) {
@@ -183,4 +183,4 @@ export {
183
183
  getEnsAddress,
184
184
  getEnsName
185
185
  };
186
- //# sourceMappingURL=chunk-HRVPAYH7.mjs.map
186
+ //# sourceMappingURL=chunk-DFMQLPHS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/ens/labelhash.ts","../src/utils/ens/namehash.ts","../src/utils/ens/packetToBytes.ts","../src/actions/ens/getEnsAddress.ts","../src/actions/ens/getEnsName.ts"],"sourcesContent":["import { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\n\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label: string) {\n let result = new Uint8Array(32).fill(0)\n if (!label) return bytesToHex(result)\n return keccak256(stringToBytes(label))\n}\n","import { concat } from '../data'\nimport { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\n\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * namehash('wagmi-dev.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name: string) {\n let result = new Uint8Array(32).fill(0)\n if (!name) return bytesToHex(result)\n\n const labels = name.split('.')\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashed = keccak256(stringToBytes(labels[i]), 'bytes')\n result = keccak256(concat([result, hashed]), 'bytes')\n }\n\n return bytesToHex(result)\n}\n","// Adapted from https://github.com/mafintosh/dns-packet\nimport type { ByteArray } from '../../types'\nimport { toBytes } from '../encoding'\n\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n */\nexport function packetToBytes(packet: string): ByteArray {\n function length(value: string) {\n if (value === '.' || value === '..') return 1\n return toBytes(value.replace(/^\\.|\\.$/gm, '')).length + 2\n }\n\n const bytes = new Uint8Array(length(packet))\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '')\n if (!value.length) return bytes\n\n let offset = 0\n const list = value.split('.')\n for (let i = 0; i < list.length; i++) {\n const encoded = toBytes(list[i])\n bytes[offset] = encoded.length\n bytes.set(encoded, offset + 1)\n offset += encoded.length + 1\n }\n\n return bytes\n}\n","import type { PublicClient, Transport } from '../../clients'\nimport type { Address, Chain, Prettify } from '../../types'\nimport {\n decodeFunctionResult,\n encodeFunctionData,\n getChainContractAddress,\n toHex,\n} from '../../utils'\nimport { namehash, packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractParameters } from '../public'\n\nexport type GetEnsAddressParameters = Prettify<\n Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n /** ENS name to get address. */\n name: string\n /** Address of ENS Universal Resolver Contract */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsAddressReturnType = Address\n\n/**\n * @description Gets address for ENS name.\n *\n * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n */\nexport async function getEnsAddress<TChain extends Chain | undefined>(\n client: PublicClient<Transport, TChain>,\n {\n blockNumber,\n blockTag,\n name,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsAddressParameters,\n): Promise<GetEnsAddressReturnType> {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n ],\n functionName: 'resolve',\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [],\n },\n ],\n functionName: 'addr',\n args: [namehash(name)],\n }),\n ],\n blockNumber,\n blockTag,\n })\n return decodeFunctionResult({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [],\n outputs: [{ name: 'name', type: 'address' }],\n },\n ],\n functionName: 'addr',\n data: res[0],\n })\n}\n","import type { PublicClient, Transport } from '../../clients'\nimport { panicReasons } from '../../constants'\nimport {\n ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n} from '../../errors'\nimport type { Address, Chain, Prettify } from '../../types'\nimport { getChainContractAddress, toHex } from '../../utils'\nimport { packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractParameters } from '../public'\n\nexport type GetEnsNameParameters = Prettify<\n Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n /** Address to get ENS name for. */\n address: Address\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsNameReturnType = string | null\n\n/**\n * @description Gets primary name for specified address.\n *\n * - Calls `reverse(bytes)` on ENS Universal Resolver Contract.\n *\n * @example\n * const ensName = await getEnsName(publicClient, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wagmi-dev.eth'\n */\nexport async function getEnsName<TChain extends Chain | undefined>(\n client: PublicClient<Transport, TChain>,\n {\n address,\n blockNumber,\n blockTag,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsNameParameters,\n): Promise<GetEnsNameReturnType> {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`\n try {\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n ],\n functionName: 'reverse',\n args: [toHex(packetToBytes(reverseNode))],\n blockNumber,\n blockTag,\n })\n return res[0]\n } catch (error) {\n if (\n error instanceof ContractFunctionExecutionError &&\n (error.cause as ContractFunctionRevertedError).reason === panicReasons[50]\n )\n // No primary name set for address.\n return null\n throw error\n }\n}\n"],"mappings":"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","names":["value"]}
@@ -11,27 +11,27 @@
11
11
 
12
12
 
13
13
 
14
- var _chunkZ54YSSBJjs = require('./chunk-Z54YSSBJ.js');
14
+ var _chunkOW7TKT7Ljs = require('./chunk-OW7TKT7L.js');
15
15
 
16
16
  // src/utils/ens/labelhash.ts
17
17
  function labelhash(label) {
18
18
  let result = new Uint8Array(32).fill(0);
19
19
  if (!label)
20
- return _chunkZ54YSSBJjs.bytesToHex.call(void 0, result);
21
- return _chunkZ54YSSBJjs.keccak256.call(void 0, _chunkZ54YSSBJjs.stringToBytes.call(void 0, label));
20
+ return _chunkOW7TKT7Ljs.bytesToHex.call(void 0, result);
21
+ return _chunkOW7TKT7Ljs.keccak256.call(void 0, _chunkOW7TKT7Ljs.stringToBytes.call(void 0, label));
22
22
  }
23
23
 
24
24
  // src/utils/ens/namehash.ts
25
25
  function namehash(name) {
26
26
  let result = new Uint8Array(32).fill(0);
27
27
  if (!name)
28
- return _chunkZ54YSSBJjs.bytesToHex.call(void 0, result);
28
+ return _chunkOW7TKT7Ljs.bytesToHex.call(void 0, result);
29
29
  const labels = name.split(".");
30
30
  for (let i = labels.length - 1; i >= 0; i -= 1) {
31
- const hashed = _chunkZ54YSSBJjs.keccak256.call(void 0, _chunkZ54YSSBJjs.stringToBytes.call(void 0, labels[i]), "bytes");
32
- result = _chunkZ54YSSBJjs.keccak256.call(void 0, _chunkZ54YSSBJjs.concat.call(void 0, [result, hashed]), "bytes");
31
+ const hashed = _chunkOW7TKT7Ljs.keccak256.call(void 0, _chunkOW7TKT7Ljs.stringToBytes.call(void 0, labels[i]), "bytes");
32
+ result = _chunkOW7TKT7Ljs.keccak256.call(void 0, _chunkOW7TKT7Ljs.concat.call(void 0, [result, hashed]), "bytes");
33
33
  }
34
- return _chunkZ54YSSBJjs.bytesToHex.call(void 0, result);
34
+ return _chunkOW7TKT7Ljs.bytesToHex.call(void 0, result);
35
35
  }
36
36
 
37
37
  // src/utils/ens/packetToBytes.ts
@@ -39,7 +39,7 @@ function packetToBytes(packet) {
39
39
  function length(value2) {
40
40
  if (value2 === "." || value2 === "..")
41
41
  return 1;
42
- return _chunkZ54YSSBJjs.toBytes.call(void 0, value2.replace(/^\.|\.$/gm, "")).length + 2;
42
+ return _chunkOW7TKT7Ljs.toBytes.call(void 0, value2.replace(/^\.|\.$/gm, "")).length + 2;
43
43
  }
44
44
  const bytes = new Uint8Array(length(packet));
45
45
  const value = packet.replace(/^\.|\.$/gm, "");
@@ -48,7 +48,7 @@ function packetToBytes(packet) {
48
48
  let offset = 0;
49
49
  const list = value.split(".");
50
50
  for (let i = 0; i < list.length; i++) {
51
- const encoded = _chunkZ54YSSBJjs.toBytes.call(void 0, list[i]);
51
+ const encoded = _chunkOW7TKT7Ljs.toBytes.call(void 0, list[i]);
52
52
  bytes[offset] = encoded.length;
53
53
  bytes.set(encoded, offset + 1);
54
54
  offset += encoded.length + 1;
@@ -69,13 +69,13 @@ async function getEnsAddress(client, {
69
69
  throw new Error(
70
70
  "client chain not configured. universalResolverAddress is required."
71
71
  );
72
- universalResolverAddress = _chunkZ54YSSBJjs.getChainContractAddress.call(void 0, {
72
+ universalResolverAddress = _chunkOW7TKT7Ljs.getChainContractAddress.call(void 0, {
73
73
  blockNumber,
74
74
  chain: client.chain,
75
75
  contract: "ensUniversalResolver"
76
76
  });
77
77
  }
78
- const res = await _chunkZ54YSSBJjs.readContract.call(void 0, client, {
78
+ const res = await _chunkOW7TKT7Ljs.readContract.call(void 0, client, {
79
79
  address: universalResolverAddress,
80
80
  abi: [
81
81
  {
@@ -94,8 +94,8 @@ async function getEnsAddress(client, {
94
94
  ],
95
95
  functionName: "resolve",
96
96
  args: [
97
- _chunkZ54YSSBJjs.toHex.call(void 0, packetToBytes(name)),
98
- _chunkZ54YSSBJjs.encodeFunctionData.call(void 0, {
97
+ _chunkOW7TKT7Ljs.toHex.call(void 0, packetToBytes(name)),
98
+ _chunkOW7TKT7Ljs.encodeFunctionData.call(void 0, {
99
99
  abi: [
100
100
  {
101
101
  name: "addr",
@@ -112,7 +112,7 @@ async function getEnsAddress(client, {
112
112
  blockNumber,
113
113
  blockTag
114
114
  });
115
- return _chunkZ54YSSBJjs.decodeFunctionResult.call(void 0, {
115
+ return _chunkOW7TKT7Ljs.decodeFunctionResult.call(void 0, {
116
116
  abi: [
117
117
  {
118
118
  name: "addr",
@@ -140,7 +140,7 @@ async function getEnsName(client, {
140
140
  throw new Error(
141
141
  "client chain not configured. universalResolverAddress is required."
142
142
  );
143
- universalResolverAddress = _chunkZ54YSSBJjs.getChainContractAddress.call(void 0, {
143
+ universalResolverAddress = _chunkOW7TKT7Ljs.getChainContractAddress.call(void 0, {
144
144
  blockNumber,
145
145
  chain: client.chain,
146
146
  contract: "ensUniversalResolver"
@@ -148,7 +148,7 @@ async function getEnsName(client, {
148
148
  }
149
149
  const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;
150
150
  try {
151
- const res = await _chunkZ54YSSBJjs.readContract.call(void 0, client, {
151
+ const res = await _chunkOW7TKT7Ljs.readContract.call(void 0, client, {
152
152
  address: universalResolverAddress,
153
153
  abi: [
154
154
  {
@@ -165,13 +165,13 @@ async function getEnsName(client, {
165
165
  }
166
166
  ],
167
167
  functionName: "reverse",
168
- args: [_chunkZ54YSSBJjs.toHex.call(void 0, packetToBytes(reverseNode))],
168
+ args: [_chunkOW7TKT7Ljs.toHex.call(void 0, packetToBytes(reverseNode))],
169
169
  blockNumber,
170
170
  blockTag
171
171
  });
172
172
  return res[0];
173
173
  } catch (error) {
174
- if (error instanceof _chunkZ54YSSBJjs.ContractFunctionExecutionError && error.cause.reason === _chunkZ54YSSBJjs.panicReasons[50])
174
+ if (error instanceof _chunkOW7TKT7Ljs.ContractFunctionExecutionError && error.cause.reason === _chunkOW7TKT7Ljs.panicReasons[50])
175
175
  return null;
176
176
  throw error;
177
177
  }
@@ -183,4 +183,4 @@ async function getEnsName(client, {
183
183
 
184
184
 
185
185
  exports.labelhash = labelhash; exports.namehash = namehash; exports.getEnsAddress = getEnsAddress; exports.getEnsName = getEnsName;
186
- //# sourceMappingURL=chunk-66PXETQB.js.map
186
+ //# sourceMappingURL=chunk-FZPFAAOJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/ens/labelhash.ts","../src/utils/ens/namehash.ts","../src/utils/ens/packetToBytes.ts","../src/actions/ens/getEnsAddress.ts","../src/actions/ens/getEnsName.ts"],"names":["value"],"mappings":"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","sourcesContent":["import { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\n\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label: string) {\n let result = new Uint8Array(32).fill(0)\n if (!label) return bytesToHex(result)\n return keccak256(stringToBytes(label))\n}\n","import { concat } from '../data'\nimport { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\n\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * namehash('wagmi-dev.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name: string) {\n let result = new Uint8Array(32).fill(0)\n if (!name) return bytesToHex(result)\n\n const labels = name.split('.')\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashed = keccak256(stringToBytes(labels[i]), 'bytes')\n result = keccak256(concat([result, hashed]), 'bytes')\n }\n\n return bytesToHex(result)\n}\n","// Adapted from https://github.com/mafintosh/dns-packet\nimport type { ByteArray } from '../../types'\nimport { toBytes } from '../encoding'\n\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n */\nexport function packetToBytes(packet: string): ByteArray {\n function length(value: string) {\n if (value === '.' || value === '..') return 1\n return toBytes(value.replace(/^\\.|\\.$/gm, '')).length + 2\n }\n\n const bytes = new Uint8Array(length(packet))\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '')\n if (!value.length) return bytes\n\n let offset = 0\n const list = value.split('.')\n for (let i = 0; i < list.length; i++) {\n const encoded = toBytes(list[i])\n bytes[offset] = encoded.length\n bytes.set(encoded, offset + 1)\n offset += encoded.length + 1\n }\n\n return bytes\n}\n","import type { PublicClient, Transport } from '../../clients'\nimport type { Address, Chain, Prettify } from '../../types'\nimport {\n decodeFunctionResult,\n encodeFunctionData,\n getChainContractAddress,\n toHex,\n} from '../../utils'\nimport { namehash, packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractParameters } from '../public'\n\nexport type GetEnsAddressParameters = Prettify<\n Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n /** ENS name to get address. */\n name: string\n /** Address of ENS Universal Resolver Contract */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsAddressReturnType = Address\n\n/**\n * @description Gets address for ENS name.\n *\n * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n */\nexport async function getEnsAddress<TChain extends Chain | undefined>(\n client: PublicClient<Transport, TChain>,\n {\n blockNumber,\n blockTag,\n name,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsAddressParameters,\n): Promise<GetEnsAddressReturnType> {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n ],\n functionName: 'resolve',\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [],\n },\n ],\n functionName: 'addr',\n args: [namehash(name)],\n }),\n ],\n blockNumber,\n blockTag,\n })\n return decodeFunctionResult({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [],\n outputs: [{ name: 'name', type: 'address' }],\n },\n ],\n functionName: 'addr',\n data: res[0],\n })\n}\n","import type { PublicClient, Transport } from '../../clients'\nimport { panicReasons } from '../../constants'\nimport {\n ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n} from '../../errors'\nimport type { Address, Chain, Prettify } from '../../types'\nimport { getChainContractAddress, toHex } from '../../utils'\nimport { packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractParameters } from '../public'\n\nexport type GetEnsNameParameters = Prettify<\n Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n /** Address to get ENS name for. */\n address: Address\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsNameReturnType = string | null\n\n/**\n * @description Gets primary name for specified address.\n *\n * - Calls `reverse(bytes)` on ENS Universal Resolver Contract.\n *\n * @example\n * const ensName = await getEnsName(publicClient, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wagmi-dev.eth'\n */\nexport async function getEnsName<TChain extends Chain | undefined>(\n client: PublicClient<Transport, TChain>,\n {\n address,\n blockNumber,\n blockTag,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsNameParameters,\n): Promise<GetEnsNameReturnType> {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`\n try {\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n ],\n functionName: 'reverse',\n args: [toHex(packetToBytes(reverseNode))],\n blockNumber,\n blockTag,\n })\n return res[0]\n } catch (error) {\n if (\n error instanceof ContractFunctionExecutionError &&\n (error.cause as ContractFunctionRevertedError).reason === panicReasons[50]\n )\n // No primary name set for address.\n return null\n throw error\n }\n}\n"]}