viem 1.6.0 → 1.6.3

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 (179) hide show
  1. package/dist/cjs/actions/ens/getEnsAddress.js +2 -2
  2. package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
  3. package/dist/cjs/actions/getContract.js.map +1 -1
  4. package/dist/cjs/actions/public/multicall.js +2 -3
  5. package/dist/cjs/actions/public/multicall.js.map +1 -1
  6. package/dist/cjs/chains/index.js +2 -1
  7. package/dist/cjs/chains/index.js.map +1 -1
  8. package/dist/cjs/clients/decorators/public.js.map +1 -1
  9. package/dist/cjs/constants/number.js +96 -96
  10. package/dist/cjs/constants/number.js.map +1 -1
  11. package/dist/cjs/errors/version.js +1 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/utils/abi/decodeAbiParameters.js.map +1 -1
  14. package/dist/cjs/utils/abi/decodeDeployData.js.map +1 -1
  15. package/dist/cjs/utils/abi/decodeErrorResult.js.map +1 -1
  16. package/dist/cjs/utils/abi/decodeFunctionResult.js.map +1 -1
  17. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  18. package/dist/cjs/utils/abi/encodeDeployData.js.map +1 -1
  19. package/dist/cjs/utils/abi/encodeEventTopics.js.map +1 -1
  20. package/dist/cjs/utils/abi/encodePacked.js.map +1 -1
  21. package/dist/cjs/utils/poll.js +1 -1
  22. package/dist/cjs/utils/poll.js.map +1 -1
  23. package/dist/cjs/utils/typedData.js +2 -2
  24. package/dist/cjs/utils/typedData.js.map +1 -1
  25. package/dist/esm/actions/ens/getEnsAddress.js +2 -2
  26. package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
  27. package/dist/esm/actions/getContract.js.map +1 -1
  28. package/dist/esm/actions/public/multicall.js +2 -4
  29. package/dist/esm/actions/public/multicall.js.map +1 -1
  30. package/dist/esm/chains/index.js +1 -0
  31. package/dist/esm/chains/index.js.map +1 -1
  32. package/dist/esm/clients/decorators/public.js.map +1 -1
  33. package/dist/esm/constants/number.js +96 -96
  34. package/dist/esm/constants/number.js.map +1 -1
  35. package/dist/esm/errors/version.js +1 -1
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/utils/abi/decodeAbiParameters.js.map +1 -1
  38. package/dist/esm/utils/abi/decodeDeployData.js.map +1 -1
  39. package/dist/esm/utils/abi/decodeErrorResult.js.map +1 -1
  40. package/dist/esm/utils/abi/decodeFunctionResult.js.map +1 -1
  41. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  42. package/dist/esm/utils/abi/encodeDeployData.js.map +1 -1
  43. package/dist/esm/utils/abi/encodeEventTopics.js.map +1 -1
  44. package/dist/esm/utils/abi/encodePacked.js.map +1 -1
  45. package/dist/esm/utils/poll.js +1 -1
  46. package/dist/esm/utils/poll.js.map +1 -1
  47. package/dist/esm/utils/typedData.js +2 -2
  48. package/dist/esm/utils/typedData.js.map +1 -1
  49. package/dist/types/accounts/types.d.ts +1 -1
  50. package/dist/types/accounts/types.d.ts.map +1 -1
  51. package/dist/types/accounts/utils/signTypedData.d.ts +1 -1
  52. package/dist/types/accounts/utils/signTypedData.d.ts.map +1 -1
  53. package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
  54. package/dist/types/actions/getContract.d.ts +5 -5
  55. package/dist/types/actions/getContract.d.ts.map +1 -1
  56. package/dist/types/actions/public/createContractEventFilter.d.ts +3 -3
  57. package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
  58. package/dist/types/actions/public/createEventFilter.d.ts +5 -5
  59. package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
  60. package/dist/types/actions/public/estimateContractGas.d.ts +1 -1
  61. package/dist/types/actions/public/estimateContractGas.d.ts.map +1 -1
  62. package/dist/types/actions/public/getFilterChanges.d.ts +1 -1
  63. package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
  64. package/dist/types/actions/public/getFilterLogs.d.ts +1 -1
  65. package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
  66. package/dist/types/actions/public/getLogs.d.ts +4 -4
  67. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  68. package/dist/types/actions/public/multicall.d.ts +1 -1
  69. package/dist/types/actions/public/multicall.d.ts.map +1 -1
  70. package/dist/types/actions/public/readContract.d.ts +1 -1
  71. package/dist/types/actions/public/readContract.d.ts.map +1 -1
  72. package/dist/types/actions/public/simulateContract.d.ts +1 -1
  73. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  74. package/dist/types/actions/public/watchContractEvent.d.ts +3 -3
  75. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  76. package/dist/types/actions/public/watchEvent.d.ts +4 -4
  77. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  78. package/dist/types/actions/wallet/deployContract.d.ts +3 -3
  79. package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
  80. package/dist/types/actions/wallet/signTypedData.d.ts +1 -1
  81. package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
  82. package/dist/types/actions/wallet/writeContract.d.ts +1 -1
  83. package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
  84. package/dist/types/chains/index.d.ts +154 -36
  85. package/dist/types/chains/index.d.ts.map +1 -1
  86. package/dist/types/clients/decorators/public.d.ts +10 -10
  87. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  88. package/dist/types/clients/decorators/wallet.d.ts +3 -3
  89. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  90. package/dist/types/constants/number.d.ts.map +1 -1
  91. package/dist/types/errors/version.d.ts +1 -1
  92. package/dist/types/index.d.ts +2 -2
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/dist/types/types/eip1193.d.ts +1 -1
  95. package/dist/types/types/eip1193.d.ts.map +1 -1
  96. package/dist/types/types/multicall.d.ts +8 -8
  97. package/dist/types/types/multicall.d.ts.map +1 -1
  98. package/dist/types/types/typedData.d.ts +3 -3
  99. package/dist/types/types/typedData.d.ts.map +1 -1
  100. package/dist/types/utils/abi/decodeAbiParameters.d.ts +2 -2
  101. package/dist/types/utils/abi/decodeAbiParameters.d.ts.map +1 -1
  102. package/dist/types/utils/abi/decodeDeployData.d.ts +3 -3
  103. package/dist/types/utils/abi/decodeDeployData.d.ts.map +1 -1
  104. package/dist/types/utils/abi/decodeErrorResult.d.ts +3 -3
  105. package/dist/types/utils/abi/decodeErrorResult.d.ts.map +1 -1
  106. package/dist/types/utils/abi/decodeEventLog.d.ts +3 -3
  107. package/dist/types/utils/abi/decodeEventLog.d.ts.map +1 -1
  108. package/dist/types/utils/abi/decodeFunctionResult.d.ts +4 -4
  109. package/dist/types/utils/abi/decodeFunctionResult.d.ts.map +1 -1
  110. package/dist/types/utils/abi/encodeAbiParameters.d.ts +2 -2
  111. package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
  112. package/dist/types/utils/abi/encodeDeployData.d.ts +3 -3
  113. package/dist/types/utils/abi/encodeDeployData.d.ts.map +1 -1
  114. package/dist/types/utils/abi/encodeErrorResult.d.ts +4 -4
  115. package/dist/types/utils/abi/encodeErrorResult.d.ts.map +1 -1
  116. package/dist/types/utils/abi/encodeEventTopics.d.ts +4 -4
  117. package/dist/types/utils/abi/encodeEventTopics.d.ts.map +1 -1
  118. package/dist/types/utils/abi/encodeFunctionData.d.ts +4 -4
  119. package/dist/types/utils/abi/encodeFunctionData.d.ts.map +1 -1
  120. package/dist/types/utils/abi/encodeFunctionResult.d.ts +4 -4
  121. package/dist/types/utils/abi/encodeFunctionResult.d.ts.map +1 -1
  122. package/dist/types/utils/abi/encodePacked.d.ts +3 -3
  123. package/dist/types/utils/abi/encodePacked.d.ts.map +1 -1
  124. package/dist/types/utils/abi/getAbiItem.d.ts +3 -3
  125. package/dist/types/utils/abi/getAbiItem.d.ts.map +1 -1
  126. package/dist/types/utils/signature/hashTypedData.d.ts +1 -1
  127. package/dist/types/utils/signature/hashTypedData.d.ts.map +1 -1
  128. package/dist/types/utils/signature/recoverTypedDataAddress.d.ts +1 -1
  129. package/dist/types/utils/signature/recoverTypedDataAddress.d.ts.map +1 -1
  130. package/dist/types/utils/signature/verifyTypedData.d.ts +1 -1
  131. package/dist/types/utils/signature/verifyTypedData.d.ts.map +1 -1
  132. package/dist/types/utils/typedData.d.ts +1 -1
  133. package/dist/types/utils/typedData.d.ts.map +1 -1
  134. package/package.json +2 -2
  135. package/src/accounts/types.ts +1 -1
  136. package/src/accounts/utils/signTypedData.ts +1 -1
  137. package/src/actions/ens/getEnsAddress.ts +6 -8
  138. package/src/actions/getContract.ts +6 -5
  139. package/src/actions/public/createContractEventFilter.ts +3 -3
  140. package/src/actions/public/createEventFilter.ts +6 -6
  141. package/src/actions/public/estimateContractGas.ts +1 -1
  142. package/src/actions/public/getFilterChanges.ts +1 -1
  143. package/src/actions/public/getFilterLogs.ts +1 -1
  144. package/src/actions/public/getLogs.ts +5 -5
  145. package/src/actions/public/multicall.ts +9 -8
  146. package/src/actions/public/readContract.ts +1 -1
  147. package/src/actions/public/simulateContract.ts +1 -1
  148. package/src/actions/public/watchContractEvent.ts +3 -3
  149. package/src/actions/public/watchEvent.ts +5 -5
  150. package/src/actions/wallet/deployContract.ts +3 -3
  151. package/src/actions/wallet/signTypedData.ts +1 -1
  152. package/src/actions/wallet/writeContract.ts +1 -1
  153. package/src/chains/index.ts +1 -0
  154. package/src/clients/decorators/public.ts +14 -14
  155. package/src/clients/decorators/wallet.ts +3 -3
  156. package/src/constants/number.ts +96 -96
  157. package/src/errors/version.ts +1 -1
  158. package/src/index.ts +2 -0
  159. package/src/types/eip1193.ts +1 -1
  160. package/src/types/multicall.ts +14 -11
  161. package/src/types/typedData.ts +2 -3
  162. package/src/utils/abi/decodeAbiParameters.ts +7 -8
  163. package/src/utils/abi/decodeDeployData.ts +3 -3
  164. package/src/utils/abi/decodeErrorResult.ts +3 -8
  165. package/src/utils/abi/decodeEventLog.ts +3 -3
  166. package/src/utils/abi/decodeFunctionResult.ts +4 -6
  167. package/src/utils/abi/encodeAbiParameters.ts +8 -9
  168. package/src/utils/abi/encodeDeployData.ts +3 -3
  169. package/src/utils/abi/encodeErrorResult.ts +4 -4
  170. package/src/utils/abi/encodeEventTopics.ts +4 -9
  171. package/src/utils/abi/encodeFunctionData.ts +4 -4
  172. package/src/utils/abi/encodeFunctionResult.ts +4 -4
  173. package/src/utils/abi/encodePacked.ts +6 -8
  174. package/src/utils/abi/getAbiItem.ts +3 -3
  175. package/src/utils/poll.ts +1 -1
  176. package/src/utils/signature/hashTypedData.ts +1 -1
  177. package/src/utils/signature/recoverTypedDataAddress.ts +1 -1
  178. package/src/utils/signature/verifyTypedData.ts +1 -1
  179. package/src/utils/typedData.ts +2 -3
@@ -2,7 +2,6 @@ import type {
2
2
  AbiParameter,
3
3
  AbiParameterToPrimitiveType,
4
4
  AbiParametersToPrimitiveTypes,
5
- Narrow,
6
5
  } from 'abitype'
7
6
 
8
7
  import {
@@ -33,8 +32,8 @@ export type DecodeAbiParametersReturnType<
33
32
  >
34
33
 
35
34
  export function decodeAbiParameters<
36
- TParams extends readonly AbiParameter[] | readonly unknown[],
37
- >(params: Narrow<TParams>, data: Hex): DecodeAbiParametersReturnType<TParams> {
35
+ const TParams extends readonly AbiParameter[] | readonly unknown[],
36
+ >(params: TParams, data: Hex): DecodeAbiParametersReturnType<TParams> {
38
37
  if (data === '0x' && (params as unknown[]).length > 0)
39
38
  throw new AbiDecodingZeroDataError()
40
39
  if (size(data) && size(data) < 32)
@@ -53,7 +52,7 @@ export function decodeAbiParameters<
53
52
 
54
53
  type TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }
55
54
 
56
- function decodeParams<TParams extends readonly AbiParameter[]>({
55
+ function decodeParams<const TParams extends readonly AbiParameter[]>({
57
56
  data,
58
57
  params,
59
58
  }: { data: Hex; params: TParams }) {
@@ -126,7 +125,7 @@ function decodeAddress(value: Hex) {
126
125
  return { consumed: 32, value: checksumAddress(slice(value, -20)) }
127
126
  }
128
127
 
129
- function decodeArray<TParam extends AbiParameter>(
128
+ function decodeArray<const TParam extends AbiParameter>(
130
129
  data: Hex,
131
130
  {
132
131
  param,
@@ -211,7 +210,7 @@ function decodeBool(value: Hex) {
211
210
  return { consumed: 32, value: hexToBool(value) }
212
211
  }
213
212
 
214
- function decodeBytes<TParam extends AbiParameter>(
213
+ function decodeBytes<const TParam extends AbiParameter>(
215
214
  data: Hex,
216
215
  { param, position }: { param: TParam; position: number },
217
216
  ) {
@@ -239,7 +238,7 @@ function decodeBytes<TParam extends AbiParameter>(
239
238
  return { consumed: 32, value }
240
239
  }
241
240
 
242
- function decodeNumber<TParam extends AbiParameter>(
241
+ function decodeNumber<const TParam extends AbiParameter>(
243
242
  value: Hex,
244
243
  { param }: { param: TParam },
245
244
  ) {
@@ -268,7 +267,7 @@ function decodeString(data: Hex, { position }: { position: number }) {
268
267
  }
269
268
 
270
269
  function decodeTuple<
271
- TParam extends AbiParameter & { components: readonly AbiParameter[] },
270
+ const TParam extends AbiParameter & { components: readonly AbiParameter[] },
272
271
  >(data: Hex, { param, position }: { param: TParam; position: number }) {
273
272
  // Tuples can have unnamed components (i.e. they are arrays), so we must
274
273
  // determine whether the tuple is named or unnamed. In the case of a named
@@ -1,4 +1,4 @@
1
- import type { Abi, Narrow } from 'abitype'
1
+ import type { Abi } from 'abitype'
2
2
 
3
3
  import {
4
4
  AbiConstructorNotFoundError,
@@ -14,7 +14,7 @@ const docsPath = '/docs/contract/decodeDeployData'
14
14
  export type DecodeDeployDataParameters<
15
15
  TAbi extends Abi | readonly unknown[] = Abi,
16
16
  > = {
17
- abi: Narrow<TAbi>
17
+ abi: TAbi
18
18
  bytecode: Hex
19
19
  data: Hex
20
20
  }
@@ -24,7 +24,7 @@ export type DecodeDeployDataReturnType<
24
24
  bytecode: Hex
25
25
  } & GetConstructorArgs<TAbi>
26
26
 
27
- export function decodeDeployData<TAbi extends Abi | readonly unknown[]>({
27
+ export function decodeDeployData<const TAbi extends Abi | readonly unknown[]>({
28
28
  abi,
29
29
  bytecode,
30
30
  data,
@@ -1,9 +1,4 @@
1
- import type {
2
- Abi,
3
- ExtractAbiError,
4
- ExtractAbiErrorNames,
5
- Narrow,
6
- } from 'abitype'
1
+ import type { Abi, ExtractAbiError, ExtractAbiErrorNames } from 'abitype'
7
2
 
8
3
  import { solidityError, solidityPanic } from '../../constants/solidity.js'
9
4
  import {
@@ -20,7 +15,7 @@ import { formatAbiItem } from './formatAbiItem.js'
20
15
 
21
16
  export type DecodeErrorResultParameters<
22
17
  TAbi extends Abi | readonly unknown[] = Abi,
23
- > = { abi?: Narrow<TAbi>; data: Hex }
18
+ > = { abi?: TAbi; data: Hex }
24
19
 
25
20
  export type DecodeErrorResultReturnType<
26
21
  TAbi extends Abi | readonly unknown[] = Abi,
@@ -37,7 +32,7 @@ export type DecodeErrorResultReturnType<
37
32
  }
38
33
  }[_ErrorNames]
39
34
 
40
- export function decodeErrorResult<TAbi extends Abi | readonly unknown[]>({
35
+ export function decodeErrorResult<const TAbi extends Abi | readonly unknown[]>({
41
36
  abi,
42
37
  data,
43
38
  }: DecodeErrorResultParameters<TAbi>): DecodeErrorResultReturnType<TAbi> {
@@ -1,4 +1,4 @@
1
- import type { Abi, AbiParameter, ExtractAbiEventNames, Narrow } from 'abitype'
1
+ import type { Abi, AbiParameter, ExtractAbiEventNames } from 'abitype'
2
2
 
3
3
  import {
4
4
  AbiDecodingDataSizeTooSmallError,
@@ -26,7 +26,7 @@ export type DecodeEventLogParameters<
26
26
  TData extends Hex | undefined = undefined,
27
27
  TStrict extends boolean = true,
28
28
  > = {
29
- abi: Narrow<TAbi>
29
+ abi: TAbi
30
30
  data?: TData
31
31
  eventName?: InferEventName<TAbi, TEventName>
32
32
  strict?: TStrict
@@ -61,7 +61,7 @@ export type DecodeEventLogReturnType<
61
61
  const docsPath = '/docs/contract/decodeEventLog'
62
62
 
63
63
  export function decodeEventLog<
64
- TAbi extends Abi | readonly unknown[],
64
+ const TAbi extends Abi | readonly unknown[],
65
65
  TEventName extends string | undefined = undefined,
66
66
  TTopics extends Hex[] = Hex[],
67
67
  TData extends Hex | undefined = undefined,
@@ -1,4 +1,4 @@
1
- import type { Abi, ExtractAbiFunctionNames, Narrow } from 'abitype'
1
+ import type { Abi, ExtractAbiFunctionNames } from 'abitype'
2
2
 
3
3
  import {
4
4
  AbiFunctionNotFoundError,
@@ -25,11 +25,9 @@ export type DecodeFunctionResultParameters<
25
25
  functionName?: _FunctionName
26
26
  data: Hex
27
27
  } & (TFunctionName extends string
28
- ? { abi: Narrow<TAbi> } & Partial<GetFunctionArgs<TAbi, TFunctionName>>
28
+ ? { abi: TAbi } & Partial<GetFunctionArgs<TAbi, TFunctionName>>
29
29
  : _FunctionName extends string
30
- ? { abi: [Narrow<TAbi[number]>] } & Partial<
31
- GetFunctionArgs<TAbi, _FunctionName>
32
- >
30
+ ? { abi: [TAbi[number]] } & Partial<GetFunctionArgs<TAbi, _FunctionName>>
33
31
  : never)
34
32
 
35
33
  export type DecodeFunctionResultReturnType<
@@ -45,7 +43,7 @@ export type DecodeFunctionResultReturnType<
45
43
  : ContractFunctionResult<TAbi, _FunctionName>
46
44
 
47
45
  export function decodeFunctionResult<
48
- TAbi extends Abi | readonly unknown[],
46
+ const TAbi extends Abi | readonly unknown[],
49
47
  TFunctionName extends string | undefined = undefined,
50
48
  >({
51
49
  abi,
@@ -2,7 +2,6 @@ import type {
2
2
  AbiParameter,
3
3
  AbiParameterToPrimitiveType,
4
4
  AbiParametersToPrimitiveTypes,
5
- Narrow,
6
5
  } from 'abitype'
7
6
 
8
7
  import {
@@ -27,9 +26,9 @@ export type EncodeAbiParametersReturnType = Hex
27
26
  * @description Encodes a list of primitive values into an ABI-encoded hex value.
28
27
  */
29
28
  export function encodeAbiParameters<
30
- TParams extends readonly AbiParameter[] | readonly unknown[],
29
+ const TParams extends readonly AbiParameter[] | readonly unknown[],
31
30
  >(
32
- params: Narrow<TParams>,
31
+ params: TParams,
33
32
  values: TParams extends readonly AbiParameter[]
34
33
  ? AbiParametersToPrimitiveTypes<TParams>
35
34
  : never,
@@ -56,11 +55,11 @@ type PreparedParam = { dynamic: boolean; encoded: Hex }
56
55
  type TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }
57
56
  type Tuple = AbiParameterToPrimitiveType<TupleAbiParameter>
58
57
 
59
- function prepareParams<TParams extends readonly AbiParameter[]>({
58
+ function prepareParams<const TParams extends readonly AbiParameter[]>({
60
59
  params,
61
60
  values,
62
61
  }: {
63
- params: Narrow<TParams>
62
+ params: TParams
64
63
  values: AbiParametersToPrimitiveTypes<TParams>
65
64
  }) {
66
65
  const preparedParams: PreparedParam[] = []
@@ -70,7 +69,7 @@ function prepareParams<TParams extends readonly AbiParameter[]>({
70
69
  return preparedParams
71
70
  }
72
71
 
73
- function prepareParam<TParam extends AbiParameter>({
72
+ function prepareParam<const TParam extends AbiParameter>({
74
73
  param,
75
74
  value,
76
75
  }: {
@@ -145,7 +144,7 @@ function encodeAddress(value: Hex): PreparedParam {
145
144
  return { dynamic: false, encoded: padHex(value.toLowerCase() as Hex) }
146
145
  }
147
146
 
148
- function encodeArray<TParam extends AbiParameter>(
147
+ function encodeArray<const TParam extends AbiParameter>(
149
148
  value: AbiParameterToPrimitiveType<TParam>,
150
149
  {
151
150
  length,
@@ -190,7 +189,7 @@ function encodeArray<TParam extends AbiParameter>(
190
189
  }
191
190
  }
192
191
 
193
- function encodeBytes<TParam extends AbiParameter>(
192
+ function encodeBytes<const TParam extends AbiParameter>(
194
193
  value: Hex,
195
194
  { param }: { param: TParam },
196
195
  ): PreparedParam {
@@ -256,7 +255,7 @@ function encodeString(value: string): PreparedParam {
256
255
  }
257
256
 
258
257
  function encodeTuple<
259
- TParam extends AbiParameter & { components: readonly AbiParameter[] },
258
+ const TParam extends AbiParameter & { components: readonly AbiParameter[] },
260
259
  >(
261
260
  value: AbiParameterToPrimitiveType<TParam>,
262
261
  { param }: { param: TParam },
@@ -1,4 +1,4 @@
1
- import type { Abi, Narrow } from 'abitype'
1
+ import type { Abi } from 'abitype'
2
2
 
3
3
  import {
4
4
  AbiConstructorNotFoundError,
@@ -15,11 +15,11 @@ const docsPath = '/docs/contract/encodeDeployData'
15
15
  export type EncodeDeployDataParameters<
16
16
  TAbi extends Abi | readonly unknown[] = Abi,
17
17
  > = {
18
- abi: Narrow<TAbi>
18
+ abi: TAbi
19
19
  bytecode: Hex
20
20
  } & GetConstructorArgs<TAbi>
21
21
 
22
- export function encodeDeployData<TAbi extends Abi | readonly unknown[]>({
22
+ export function encodeDeployData<const TAbi extends Abi | readonly unknown[]>({
23
23
  abi,
24
24
  args,
25
25
  bytecode,
@@ -1,4 +1,4 @@
1
- import type { Abi, Narrow } from 'abitype'
1
+ import type { Abi } from 'abitype'
2
2
 
3
3
  import {
4
4
  AbiErrorInputsNotFoundError,
@@ -26,13 +26,13 @@ export type EncodeErrorResultParameters<
26
26
  > = {
27
27
  errorName?: _ErrorName
28
28
  } & (TErrorName extends string
29
- ? { abi: Narrow<TAbi> } & GetErrorArgs<TAbi, TErrorName>
29
+ ? { abi: TAbi } & GetErrorArgs<TAbi, TErrorName>
30
30
  : _ErrorName extends string
31
- ? { abi: [Narrow<TAbi[number]>] } & GetErrorArgs<TAbi, _ErrorName>
31
+ ? { abi: [TAbi[number]] } & GetErrorArgs<TAbi, _ErrorName>
32
32
  : never)
33
33
 
34
34
  export function encodeErrorResult<
35
- TAbi extends Abi | readonly unknown[],
35
+ const TAbi extends Abi | readonly unknown[],
36
36
  TErrorName extends string | undefined = undefined,
37
37
  >({ abi, errorName, args }: EncodeErrorResultParameters<TAbi, TErrorName>) {
38
38
  let abiItem = abi[0] as AbiItem
@@ -1,9 +1,4 @@
1
- import type {
2
- Abi,
3
- AbiParameter,
4
- AbiParameterToPrimitiveType,
5
- Narrow,
6
- } from 'abitype'
1
+ import type { Abi, AbiParameter, AbiParameterToPrimitiveType } from 'abitype'
7
2
 
8
3
  import { AbiEventNotFoundError } from '../../errors/abi.js'
9
4
  import { FilterTypeNotSupportedError } from '../../errors/log.js'
@@ -29,13 +24,13 @@ export type EncodeEventTopicsParameters<
29
24
  > = {
30
25
  eventName?: _EventName
31
26
  } & (TEventName extends string
32
- ? { abi: Narrow<TAbi>; args?: GetEventArgs<TAbi, TEventName> }
27
+ ? { abi: TAbi; args?: GetEventArgs<TAbi, TEventName> }
33
28
  : _EventName extends string
34
- ? { abi: [Narrow<TAbi[number]>]; args?: GetEventArgs<TAbi, _EventName> }
29
+ ? { abi: [TAbi[number]]; args?: GetEventArgs<TAbi, _EventName> }
35
30
  : never)
36
31
 
37
32
  export function encodeEventTopics<
38
- TAbi extends Abi | readonly unknown[],
33
+ const TAbi extends Abi | readonly unknown[],
39
34
  TEventName extends string | undefined = undefined,
40
35
  >({ abi, eventName, args }: EncodeEventTopicsParameters<TAbi, TEventName>) {
41
36
  let abiItem = abi[0] as AbiItem
@@ -1,4 +1,4 @@
1
- import type { Abi, Narrow } from 'abitype'
1
+ import type { Abi } from 'abitype'
2
2
 
3
3
  import { AbiFunctionNotFoundError } from '../../errors/abi.js'
4
4
  import type {
@@ -20,13 +20,13 @@ export type EncodeFunctionDataParameters<
20
20
  > = {
21
21
  functionName?: _FunctionName
22
22
  } & (TFunctionName extends string
23
- ? { abi: Narrow<TAbi> } & GetFunctionArgs<TAbi, TFunctionName>
23
+ ? { abi: TAbi } & GetFunctionArgs<TAbi, TFunctionName>
24
24
  : _FunctionName extends string
25
- ? { abi: [Narrow<TAbi[number]>] } & GetFunctionArgs<TAbi, _FunctionName>
25
+ ? { abi: [TAbi[number]] } & GetFunctionArgs<TAbi, _FunctionName>
26
26
  : never)
27
27
 
28
28
  export function encodeFunctionData<
29
- TAbi extends Abi | readonly unknown[],
29
+ const TAbi extends Abi | readonly unknown[],
30
30
  TFunctionName extends string | undefined = undefined,
31
31
  >({
32
32
  abi,
@@ -1,4 +1,4 @@
1
- import type { Abi, Narrow } from 'abitype'
1
+ import type { Abi } from 'abitype'
2
2
 
3
3
  import {
4
4
  AbiFunctionNotFoundError,
@@ -22,16 +22,16 @@ export type EncodeFunctionResultParameters<
22
22
  > = {
23
23
  functionName?: _FunctionName
24
24
  } & (TFunctionName extends string
25
- ? { abi: Narrow<TAbi>; result?: ContractFunctionResult<TAbi, TFunctionName> }
25
+ ? { abi: TAbi; result?: ContractFunctionResult<TAbi, TFunctionName> }
26
26
  : _FunctionName extends string
27
27
  ? {
28
- abi: [Narrow<TAbi[number]>]
28
+ abi: [TAbi[number]]
29
29
  result?: ContractFunctionResult<TAbi, _FunctionName>
30
30
  }
31
31
  : never)
32
32
 
33
33
  export function encodeFunctionResult<
34
- TAbi extends Abi | readonly unknown[],
34
+ const TAbi extends Abi | readonly unknown[],
35
35
  TFunctionName extends string | undefined = undefined,
36
36
  >({
37
37
  abi,
@@ -2,7 +2,6 @@ import type {
2
2
  AbiParameterToPrimitiveType,
3
3
  AbiType,
4
4
  Address,
5
- Narrow,
6
5
  SolidityAddress,
7
6
  SolidityArrayWithoutTuple,
8
7
  SolidityBool,
@@ -32,18 +31,17 @@ type PackedAbiType =
32
31
  | SolidityString
33
32
  | SolidityArrayWithoutTuple
34
33
 
35
- type EncodePackedValues<TPackedAbiTypes extends PackedAbiType[] | unknown[]> = {
34
+ type EncodePackedValues<
35
+ TPackedAbiTypes extends readonly PackedAbiType[] | readonly unknown[],
36
+ > = {
36
37
  [K in keyof TPackedAbiTypes]: TPackedAbiTypes[K] extends AbiType
37
38
  ? AbiParameterToPrimitiveType<{ type: TPackedAbiTypes[K] }>
38
39
  : unknown
39
40
  }
40
41
 
41
42
  export function encodePacked<
42
- TPackedAbiTypes extends PackedAbiType[] | unknown[],
43
- >(
44
- types: Narrow<TPackedAbiTypes>,
45
- values: EncodePackedValues<TPackedAbiTypes>,
46
- ): Hex {
43
+ const TPackedAbiTypes extends readonly PackedAbiType[] | readonly unknown[],
44
+ >(types: TPackedAbiTypes, values: EncodePackedValues<TPackedAbiTypes>): Hex {
47
45
  if (types.length !== values.length)
48
46
  throw new AbiEncodingLengthMismatchError({
49
47
  expectedLength: types.length as number,
@@ -59,7 +57,7 @@ export function encodePacked<
59
57
  return concat(data)
60
58
  }
61
59
 
62
- function encode<TPackedAbiType extends PackedAbiType | unknown>(
60
+ function encode<const TPackedAbiType extends PackedAbiType | unknown>(
63
61
  type: TPackedAbiType,
64
62
  value: EncodePackedValues<[TPackedAbiType]>[0],
65
63
  isArray = false,
@@ -1,4 +1,4 @@
1
- import type { Abi, AbiParameter, Address, Narrow } from 'abitype'
1
+ import type { Abi, AbiParameter, Address } from 'abitype'
2
2
 
3
3
  import type { GetFunctionArgs, InferItemName } from '../../types/contract.js'
4
4
  import { isAddress } from '../address/isAddress.js'
@@ -7,7 +7,7 @@ export type GetAbiItemParameters<
7
7
  TAbi extends Abi | readonly unknown[] = Abi,
8
8
  TItemName extends string = string,
9
9
  > = {
10
- abi: Narrow<TAbi>
10
+ abi: TAbi
11
11
  name: InferItemName<TAbi, TItemName>
12
12
  } & Partial<GetFunctionArgs<TAbi, TItemName>>
13
13
 
@@ -22,7 +22,7 @@ export type GetAbiItemReturnType<
22
22
  >
23
23
 
24
24
  export function getAbiItem<
25
- TAbi extends Abi | readonly unknown[],
25
+ const TAbi extends Abi | readonly unknown[],
26
26
  TItemName extends string,
27
27
  >({
28
28
  abi,
package/src/utils/poll.ts CHANGED
@@ -21,7 +21,7 @@ export function poll<TData>(
21
21
  const unwatch = () => (active = false)
22
22
 
23
23
  const watch = async () => {
24
- let data: TData | void
24
+ let data: TData | void = undefined
25
25
  if (emitOnBegin) data = await fn({ unpoll: unwatch })
26
26
 
27
27
  const initialWait = (await initialWaitTime?.(data)) ?? interval
@@ -23,7 +23,7 @@ export type HashTypedDataParameters<
23
23
  export type HashTypedDataReturnType = Hex
24
24
 
25
25
  export function hashTypedData<
26
- TTypedData extends TypedData | { [key: string]: unknown },
26
+ const TTypedData extends TypedData | { [key: string]: unknown },
27
27
  TPrimaryType extends string = string,
28
28
  >({
29
29
  domain: domain_,
@@ -15,7 +15,7 @@ export type RecoverTypedDataAddressParameters<
15
15
  export type RecoverTypedDataAddressReturnType = Address
16
16
 
17
17
  export async function recoverTypedDataAddress<
18
- TTypedData extends TypedData | { [key: string]: unknown },
18
+ const TTypedData extends TypedData | { [key: string]: unknown },
19
19
  TPrimaryType extends string = string,
20
20
  >({
21
21
  domain,
@@ -35,7 +35,7 @@ export type VerifyTypedDataReturnType = boolean
35
35
  * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}
36
36
  */
37
37
  export async function verifyTypedData<
38
- TTypedData extends TypedData | { [key: string]: unknown },
38
+ const TTypedData extends TypedData | { [key: string]: unknown },
39
39
  TPrimaryType extends string = string,
40
40
  >({
41
41
  address,
@@ -11,7 +11,7 @@ import { numberToHex } from './encoding/toHex.js'
11
11
  import { bytesRegex, integerRegex } from './regex.js'
12
12
 
13
13
  export function validateTypedData<
14
- TTypedData extends TypedData | { [key: string]: unknown },
14
+ const TTypedData extends TypedData | { [key: string]: unknown },
15
15
  TPrimaryType extends string = string,
16
16
  >({
17
17
  domain,
@@ -63,8 +63,7 @@ export function validateTypedData<
63
63
  }
64
64
 
65
65
  // Validate domain types.
66
- if (types['EIP712Domain'] && domain)
67
- validateData(types['EIP712Domain'], domain)
66
+ if (types.EIP712Domain && domain) validateData(types.EIP712Domain, domain)
68
67
 
69
68
  if (primaryType !== 'EIP712Domain') {
70
69
  // Validate message types.