@wagmi/core 2.5.0 → 2.6.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 (159) hide show
  1. package/dist/esm/actions/call.js +3 -1
  2. package/dist/esm/actions/call.js.map +1 -1
  3. package/dist/esm/actions/estimateFeesPerGas.js +6 -1
  4. package/dist/esm/actions/estimateFeesPerGas.js.map +1 -1
  5. package/dist/esm/actions/estimateGas.js +3 -4
  6. package/dist/esm/actions/estimateGas.js.map +1 -1
  7. package/dist/esm/actions/estimateMaxPriorityFeePerGas.js +3 -1
  8. package/dist/esm/actions/estimateMaxPriorityFeePerGas.js.map +1 -1
  9. package/dist/esm/actions/getBalance.js +3 -1
  10. package/dist/esm/actions/getBalance.js.map +1 -1
  11. package/dist/esm/actions/getBlock.js +3 -1
  12. package/dist/esm/actions/getBlock.js.map +1 -1
  13. package/dist/esm/actions/getBlockNumber.js +3 -1
  14. package/dist/esm/actions/getBlockNumber.js.map +1 -1
  15. package/dist/esm/actions/getBlockTransactionCount.js +3 -1
  16. package/dist/esm/actions/getBlockTransactionCount.js.map +1 -1
  17. package/dist/esm/actions/getBytecode.js +3 -1
  18. package/dist/esm/actions/getBytecode.js.map +1 -1
  19. package/dist/esm/actions/getEnsAddress.js +3 -1
  20. package/dist/esm/actions/getEnsAddress.js.map +1 -1
  21. package/dist/esm/actions/getEnsAvatar.js +3 -1
  22. package/dist/esm/actions/getEnsAvatar.js.map +1 -1
  23. package/dist/esm/actions/getEnsName.js +3 -1
  24. package/dist/esm/actions/getEnsName.js.map +1 -1
  25. package/dist/esm/actions/getEnsResolver.js +3 -1
  26. package/dist/esm/actions/getEnsResolver.js.map +1 -1
  27. package/dist/esm/actions/getEnsText.js +3 -1
  28. package/dist/esm/actions/getEnsText.js.map +1 -1
  29. package/dist/esm/actions/getFeeHistory.js +3 -1
  30. package/dist/esm/actions/getFeeHistory.js.map +1 -1
  31. package/dist/esm/actions/getGasPrice.js +3 -1
  32. package/dist/esm/actions/getGasPrice.js.map +1 -1
  33. package/dist/esm/actions/getProof.js +3 -1
  34. package/dist/esm/actions/getProof.js.map +1 -1
  35. package/dist/esm/actions/getStorageAt.js +3 -1
  36. package/dist/esm/actions/getStorageAt.js.map +1 -1
  37. package/dist/esm/actions/getTransaction.js +3 -1
  38. package/dist/esm/actions/getTransaction.js.map +1 -1
  39. package/dist/esm/actions/getTransactionConfirmations.js +3 -1
  40. package/dist/esm/actions/getTransactionConfirmations.js.map +1 -1
  41. package/dist/esm/actions/getTransactionCount.js +3 -1
  42. package/dist/esm/actions/getTransactionCount.js.map +1 -1
  43. package/dist/esm/actions/getTransactionReceipt.js +3 -1
  44. package/dist/esm/actions/getTransactionReceipt.js.map +1 -1
  45. package/dist/esm/actions/multicall.js +3 -1
  46. package/dist/esm/actions/multicall.js.map +1 -1
  47. package/dist/esm/actions/prepareTransactionRequest.js +3 -1
  48. package/dist/esm/actions/prepareTransactionRequest.js.map +1 -1
  49. package/dist/esm/actions/readContract.js +3 -1
  50. package/dist/esm/actions/readContract.js.map +1 -1
  51. package/dist/esm/actions/sendTransaction.js +7 -3
  52. package/dist/esm/actions/sendTransaction.js.map +1 -1
  53. package/dist/esm/actions/signMessage.js +3 -1
  54. package/dist/esm/actions/signMessage.js.map +1 -1
  55. package/dist/esm/actions/signTypedData.js +3 -1
  56. package/dist/esm/actions/signTypedData.js.map +1 -1
  57. package/dist/esm/actions/simulateContract.js +3 -5
  58. package/dist/esm/actions/simulateContract.js.map +1 -1
  59. package/dist/esm/actions/verifyMessage.js +3 -1
  60. package/dist/esm/actions/verifyMessage.js.map +1 -1
  61. package/dist/esm/actions/verifyTypedData.js +3 -1
  62. package/dist/esm/actions/verifyTypedData.js.map +1 -1
  63. package/dist/esm/actions/waitForTransactionReceipt.js +10 -10
  64. package/dist/esm/actions/waitForTransactionReceipt.js.map +1 -1
  65. package/dist/esm/actions/watchBlockNumber.js +3 -1
  66. package/dist/esm/actions/watchBlockNumber.js.map +1 -1
  67. package/dist/esm/actions/watchBlocks.js +3 -1
  68. package/dist/esm/actions/watchBlocks.js.map +1 -1
  69. package/dist/esm/actions/watchContractEvent.js +3 -1
  70. package/dist/esm/actions/watchContractEvent.js.map +1 -1
  71. package/dist/esm/actions/watchPendingTransactions.js +3 -1
  72. package/dist/esm/actions/watchPendingTransactions.js.map +1 -1
  73. package/dist/esm/actions/writeContract.js +3 -1
  74. package/dist/esm/actions/writeContract.js.map +1 -1
  75. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  76. package/dist/esm/utils/getAction.js +18 -0
  77. package/dist/esm/utils/getAction.js.map +1 -0
  78. package/dist/esm/version.js +1 -1
  79. package/dist/types/actions/call.d.ts.map +1 -1
  80. package/dist/types/actions/estimateFeesPerGas.d.ts.map +1 -1
  81. package/dist/types/actions/estimateGas.d.ts.map +1 -1
  82. package/dist/types/actions/estimateMaxPriorityFeePerGas.d.ts.map +1 -1
  83. package/dist/types/actions/getBalance.d.ts.map +1 -1
  84. package/dist/types/actions/getBlock.d.ts.map +1 -1
  85. package/dist/types/actions/getBlockNumber.d.ts.map +1 -1
  86. package/dist/types/actions/getBlockTransactionCount.d.ts.map +1 -1
  87. package/dist/types/actions/getBytecode.d.ts.map +1 -1
  88. package/dist/types/actions/getEnsAddress.d.ts.map +1 -1
  89. package/dist/types/actions/getEnsAvatar.d.ts.map +1 -1
  90. package/dist/types/actions/getEnsName.d.ts.map +1 -1
  91. package/dist/types/actions/getEnsResolver.d.ts.map +1 -1
  92. package/dist/types/actions/getEnsText.d.ts.map +1 -1
  93. package/dist/types/actions/getFeeHistory.d.ts.map +1 -1
  94. package/dist/types/actions/getGasPrice.d.ts.map +1 -1
  95. package/dist/types/actions/getProof.d.ts.map +1 -1
  96. package/dist/types/actions/getStorageAt.d.ts.map +1 -1
  97. package/dist/types/actions/getTransaction.d.ts.map +1 -1
  98. package/dist/types/actions/getTransactionConfirmations.d.ts.map +1 -1
  99. package/dist/types/actions/getTransactionCount.d.ts.map +1 -1
  100. package/dist/types/actions/getTransactionReceipt.d.ts.map +1 -1
  101. package/dist/types/actions/multicall.d.ts.map +1 -1
  102. package/dist/types/actions/prepareTransactionRequest.d.ts.map +1 -1
  103. package/dist/types/actions/readContract.d.ts.map +1 -1
  104. package/dist/types/actions/sendTransaction.d.ts.map +1 -1
  105. package/dist/types/actions/signMessage.d.ts.map +1 -1
  106. package/dist/types/actions/signTypedData.d.ts.map +1 -1
  107. package/dist/types/actions/simulateContract.d.ts.map +1 -1
  108. package/dist/types/actions/verifyMessage.d.ts.map +1 -1
  109. package/dist/types/actions/verifyTypedData.d.ts.map +1 -1
  110. package/dist/types/actions/waitForTransactionReceipt.d.ts +2 -2
  111. package/dist/types/actions/waitForTransactionReceipt.d.ts.map +1 -1
  112. package/dist/types/actions/watchBlockNumber.d.ts.map +1 -1
  113. package/dist/types/actions/watchBlocks.d.ts.map +1 -1
  114. package/dist/types/actions/watchContractEvent.d.ts.map +1 -1
  115. package/dist/types/actions/watchPendingTransactions.d.ts.map +1 -1
  116. package/dist/types/actions/writeContract.d.ts.map +1 -1
  117. package/dist/types/utils/getAction.d.ts +12 -0
  118. package/dist/types/utils/getAction.d.ts.map +1 -0
  119. package/dist/types/version.d.ts +1 -1
  120. package/package.json +1 -1
  121. package/src/actions/call.ts +3 -1
  122. package/src/actions/estimateFeesPerGas.ts +10 -2
  123. package/src/actions/estimateGas.ts +3 -4
  124. package/src/actions/estimateMaxPriorityFeePerGas.ts +7 -1
  125. package/src/actions/getBalance.ts +3 -2
  126. package/src/actions/getBlock.ts +3 -1
  127. package/src/actions/getBlockNumber.ts +3 -1
  128. package/src/actions/getBlockTransactionCount.ts +7 -1
  129. package/src/actions/getBytecode.ts +3 -1
  130. package/src/actions/getEnsAddress.ts +3 -1
  131. package/src/actions/getEnsAvatar.ts +3 -1
  132. package/src/actions/getEnsName.ts +3 -1
  133. package/src/actions/getEnsResolver.ts +3 -1
  134. package/src/actions/getEnsText.ts +3 -1
  135. package/src/actions/getFeeHistory.ts +3 -1
  136. package/src/actions/getGasPrice.ts +3 -1
  137. package/src/actions/getProof.ts +3 -1
  138. package/src/actions/getStorageAt.ts +3 -1
  139. package/src/actions/getTransaction.ts +3 -1
  140. package/src/actions/getTransactionConfirmations.ts +5 -2
  141. package/src/actions/getTransactionCount.ts +5 -2
  142. package/src/actions/getTransactionReceipt.ts +7 -1
  143. package/src/actions/multicall.ts +3 -1
  144. package/src/actions/prepareTransactionRequest.ts +6 -1
  145. package/src/actions/readContract.ts +3 -1
  146. package/src/actions/sendTransaction.ts +7 -3
  147. package/src/actions/signMessage.ts +3 -1
  148. package/src/actions/signTypedData.ts +3 -4
  149. package/src/actions/simulateContract.ts +3 -5
  150. package/src/actions/verifyMessage.ts +3 -1
  151. package/src/actions/verifyTypedData.ts +3 -1
  152. package/src/actions/waitForTransactionReceipt.ts +19 -16
  153. package/src/actions/watchBlockNumber.ts +3 -4
  154. package/src/actions/watchBlocks.ts +3 -1
  155. package/src/actions/watchContractEvent.ts +5 -2
  156. package/src/actions/watchPendingTransactions.ts +5 -2
  157. package/src/actions/writeContract.ts +3 -1
  158. package/src/utils/getAction.ts +38 -0
  159. package/src/version.ts +1 -1
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type UnionEvaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetBlockTransactionCountParameters<
13
14
  config extends Config = Config,
@@ -32,5 +33,10 @@ export function getBlockTransactionCount<
32
33
  ): Promise<GetBlockTransactionCountReturnType> {
33
34
  const { chainId, ...rest } = parameters
34
35
  const client = config.getClient({ chainId })
35
- return viem_getBlockTransactionCount(client, rest)
36
+ const action = getAction(
37
+ client,
38
+ viem_getBlockTransactionCount,
39
+ 'getBlockTransactionCount',
40
+ )
41
+ return action(rest)
36
42
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetBytecodeParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetBytecodeParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export async function getBytecode<config extends Config>(
24
25
  ): Promise<GetBytecodeReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getBytecode(client, rest)
28
+ const action = getAction(client, viem_getBytecode, 'getBytecode')
29
+ return action(rest)
28
30
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetEnsAddressParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetEnsAddressParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export function getEnsAddress<config extends Config>(
24
25
  ): Promise<GetEnsAddressReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getEnsAddress(client, rest)
28
+ const action = getAction(client, viem_getEnsAddress, 'getEnsAddress')
29
+ return action(rest)
28
30
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetEnsAvatarParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetEnsAvatarParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export function getEnsAvatar<config extends Config>(
24
25
  ): Promise<GetEnsAvatarReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getEnsAvatar(client, rest)
28
+ const action = getAction(client, viem_getEnsAvatar, 'getEnsAvatar')
29
+ return action(rest)
28
30
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetEnsNameParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetEnsNameParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export function getEnsName<config extends Config>(
24
25
  ): Promise<GetEnsNameReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getEnsName(client, rest)
28
+ const action = getAction(client, viem_getEnsName, 'getEnsName')
29
+ return action(rest)
28
30
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetEnsResolverParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetEnsResolverParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export function getEnsResolver<config extends Config>(
24
25
  ): Promise<GetEnsResolverReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getEnsResolver(client, rest)
28
+ const action = getAction(client, viem_getEnsResolver, 'getEnsResolver')
29
+ return action(rest)
28
30
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetEnsTextParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetEnsTextParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export function getEnsText<config extends Config>(
24
25
  ): Promise<GetEnsTextReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getEnsText(client, rest)
28
+ const action = getAction(client, viem_getEnsText, 'getEnsText')
29
+ return action(rest)
28
30
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetFeeHistoryParameters<
13
14
  config extends Config = Config,
@@ -28,5 +29,6 @@ export function getFeeHistory<
28
29
  ): Promise<GetFeeHistoryReturnType> {
29
30
  const { chainId, ...rest } = parameters
30
31
  const client = config.getClient({ chainId })
31
- return viem_getFeeHistory(client, rest)
32
+ const action = getAction(client, viem_getFeeHistory, 'getFeeHistory')
33
+ return action(rest)
32
34
  }
@@ -7,6 +7,7 @@ import {
7
7
  import { type Config } from '../createConfig.js'
8
8
  import { type ChainIdParameter } from '../types/properties.js'
9
9
  import { type Evaluate } from '../types/utils.js'
10
+ import { getAction } from '../utils/getAction.js'
10
11
 
11
12
  export type GetGasPriceParameters<
12
13
  config extends Config = Config,
@@ -27,5 +28,6 @@ export function getGasPrice<
27
28
  ): Promise<GetGasPriceReturnType> {
28
29
  const { chainId } = parameters
29
30
  const client = config.getClient({ chainId })
30
- return viem_getGasPrice(client)
31
+ const action = getAction(client, viem_getGasPrice, 'getGasPrice')
32
+ return action({})
31
33
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetProofParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetProofParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export async function getProof<config extends Config>(
24
25
  ): Promise<GetProofReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getProof(client, rest)
28
+ const action = getAction(client, viem_getProof, 'getProof')
29
+ return action(rest)
28
30
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetStorageAtParameters<config extends Config = Config> = Evaluate<
13
14
  viem_GetStorageAtParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export async function getStorageAt<config extends Config>(
24
25
  ): Promise<GetStorageAtReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_getStorageAt(client, rest)
28
+ const action = getAction(client, viem_getStorageAt, 'getStorageAt')
29
+ return action(rest)
28
30
  }
@@ -10,6 +10,7 @@ import { type Config } from '../createConfig.js'
10
10
  import type { SelectChains } from '../types/chain.js'
11
11
  import { type ChainIdParameter } from '../types/properties.js'
12
12
  import { type Evaluate, type IsNarrowable } from '../types/utils.js'
13
+ import { getAction } from '../utils/getAction.js'
13
14
 
14
15
  export type GetTransactionParameters<
15
16
  config extends Config = Config,
@@ -41,7 +42,8 @@ export function getTransaction<
41
42
  ): Promise<GetTransactionReturnType<config, chainId>> {
42
43
  const { chainId, ...rest } = parameters
43
44
  const client = config.getClient({ chainId })
44
- return viem_getTransaction(client, rest) as unknown as Promise<
45
+ const action = getAction(client, viem_getTransaction, 'getTransaction')
46
+ return action(rest) as unknown as Promise<
45
47
  GetTransactionReturnType<config, chainId>
46
48
  >
47
49
  }
@@ -9,6 +9,7 @@ import {
9
9
  import { type Config } from '../createConfig.js'
10
10
  import { type SelectChains } from '../types/chain.js'
11
11
  import { type ChainIdParameter } from '../types/properties.js'
12
+ import { getAction } from '../utils/getAction.js'
12
13
 
13
14
  export type GetTransactionConfirmationsParameters<
14
15
  config extends Config = Config,
@@ -42,8 +43,10 @@ export function getTransactionConfirmations<
42
43
  ): Promise<GetTransactionConfirmationsReturnType> {
43
44
  const { chainId, ...rest } = parameters
44
45
  const client = config.getClient({ chainId })
45
- return viem_getTransactionConfirmations(
46
+ const action = getAction(
46
47
  client,
47
- rest as viem_GetTransactionConfirmationsParameters,
48
+ viem_getTransactionConfirmations,
49
+ 'getTransactionConfirmations',
48
50
  )
51
+ return action(rest as viem_GetTransactionConfirmationsParameters)
49
52
  }
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type GetTransactionCountParameters<config extends Config = Config> =
13
14
  Evaluate<ChainIdParameter<config> & viem_GetTransactionCountParameters>
@@ -24,8 +25,10 @@ export async function getTransactionCount<config extends Config>(
24
25
  const { address, blockNumber, blockTag, chainId } = parameters
25
26
 
26
27
  const client = config.getClient({ chainId })
27
- return viem_getTransactionCount(
28
+ const action = getAction(
28
29
  client,
29
- blockNumber ? { address, blockNumber } : { address, blockTag },
30
+ viem_getTransactionCount,
31
+ 'getTransactionCount',
30
32
  )
33
+ return action(blockNumber ? { address, blockNumber } : { address, blockTag })
31
34
  }
@@ -10,6 +10,7 @@ import { type Config } from '../createConfig.js'
10
10
  import { type SelectChains } from '../types/chain.js'
11
11
  import { type ChainIdParameter } from '../types/properties.js'
12
12
  import { type Evaluate, type IsNarrowable } from '../types/utils.js'
13
+ import { getAction } from '../utils/getAction.js'
13
14
 
14
15
  export type GetTransactionReceiptParameters<
15
16
  config extends Config = Config,
@@ -43,5 +44,10 @@ export async function getTransactionReceipt<
43
44
  ): Promise<GetTransactionReceiptReturnType<config, chainId>> {
44
45
  const { chainId, ...rest } = parameters
45
46
  const client = config.getClient({ chainId })
46
- return viem_getTransactionReceipt(client, rest)
47
+ const action = getAction(
48
+ client,
49
+ viem_getTransactionReceipt,
50
+ 'getTransactionReceipt',
51
+ )
52
+ return action(rest)
47
53
  }
@@ -8,6 +8,7 @@ import { multicall as viem_multicall } from 'viem/actions'
8
8
 
9
9
  import { type Config } from '../createConfig.js'
10
10
  import { type ChainIdParameter } from '../types/properties.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type MulticallParameters<
13
14
  contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
@@ -32,7 +33,8 @@ export async function multicall<
32
33
  ): Promise<MulticallReturnType<contracts, allowFailure>> {
33
34
  const { allowFailure = true, chainId, contracts, ...rest } = parameters
34
35
  const client = config.getClient({ chainId })
35
- return viem_multicall(client, {
36
+ const action = getAction(client, viem_multicall, 'multicall')
37
+ return action({
36
38
  allowFailure,
37
39
  contracts,
38
40
  ...rest,
@@ -21,6 +21,7 @@ import {
21
21
  type UnionEvaluate,
22
22
  type UnionOmit,
23
23
  } from '../types/utils.js'
24
+ import { getAction } from '../utils/getAction.js'
24
25
  import { getConnectorClient } from './getConnectorClient.js'
25
26
 
26
27
  export type PrepareTransactionRequestParameters<
@@ -97,8 +98,12 @@ export async function prepareTransactionRequest<
97
98
  chainId,
98
99
  connector,
99
100
  })
100
- return viem_prepareTransactionRequest(
101
+ const action = getAction(
101
102
  client,
103
+ viem_prepareTransactionRequest,
104
+ 'prepareTransactionRequest',
105
+ )
106
+ return action(
102
107
  rest as unknown as viem_PrepareTransactionRequestParameters,
103
108
  ) as unknown as Promise<
104
109
  PrepareTransactionRequestReturnType<parameterType, config, chainId>
@@ -9,6 +9,7 @@ import {
9
9
 
10
10
  import { type Config } from '../createConfig.js'
11
11
  import { type ChainIdParameter } from '../types/properties.js'
12
+ import { getAction } from '../utils/getAction.js'
12
13
 
13
14
  export type ReadContractParameters<
14
15
  abi extends Abi | readonly unknown[] = Abi,
@@ -52,5 +53,6 @@ export function readContract<
52
53
  ): Promise<ReadContractReturnType<abi, functionName, args>> {
53
54
  const { chainId, ...rest } = parameters
54
55
  const client = config.getClient({ chainId })
55
- return viem_readContract(client, rest as any)
56
+ const action = getAction(client, viem_readContract, 'readContract')
57
+ return action(rest as any)
56
58
  }
@@ -20,6 +20,7 @@ import type {
20
20
  ConnectorParameter,
21
21
  } from '../types/properties.js'
22
22
  import { type Evaluate } from '../types/utils.js'
23
+ import { getAction } from '../utils/getAction.js'
23
24
  import {
24
25
  type GetConnectorClientErrorType,
25
26
  getConnectorClient,
@@ -78,17 +79,20 @@ export async function sendTransaction<
78
79
  if (gas_ === null) return undefined
79
80
 
80
81
  // Run gas estimation if no value is provided.
81
- if (gas_ === undefined)
82
- return viem_estimateGas(client, {
82
+ if (gas_ === undefined) {
83
+ const action = getAction(client, viem_estimateGas, 'estimateGas')
84
+ return action({
83
85
  ...(rest as any),
84
86
  chain: chainId ? { id: chainId } : null,
85
87
  })
88
+ }
86
89
 
87
90
  // Use provided gas value.
88
91
  return gas_
89
92
  })()
90
93
 
91
- const hash = await viem_sendTransaction(client, {
94
+ const action = getAction(client, viem_sendTransaction, 'sendTransaction')
95
+ const hash = await action({
92
96
  ...(rest as any),
93
97
  gas,
94
98
  chain: chainId ? { id: chainId } : null,
@@ -10,6 +10,7 @@ import { type Config } from '../createConfig.js'
10
10
  import type { BaseErrorType, ErrorType } from '../errors/base.js'
11
11
  import type { ConnectorParameter } from '../types/properties.js'
12
12
  import { type Evaluate } from '../types/utils.js'
13
+ import { getAction } from '../utils/getAction.js'
13
14
  import {
14
15
  type GetConnectorClientErrorType,
15
16
  getConnectorClient,
@@ -37,5 +38,6 @@ export async function signMessage(
37
38
  ): Promise<SignMessageReturnType> {
38
39
  const { account, connector, ...rest } = parameters
39
40
  const client = await getConnectorClient(config, { account, connector })
40
- return viem_signMessage(client, rest)
41
+ const action = getAction(client, viem_signMessage, 'signMessage')
42
+ return action(rest as viem_SignMessageParameters<Account>)
41
43
  }
@@ -10,6 +10,7 @@ import { type Config } from '../createConfig.js'
10
10
  import type { BaseErrorType, ErrorType } from '../errors/base.js'
11
11
  import type { ConnectorParameter } from '../types/properties.js'
12
12
  import type { UnionEvaluate } from '../types/utils.js'
13
+ import { getAction } from '../utils/getAction.js'
13
14
  import {
14
15
  type GetConnectorClientErrorType,
15
16
  getConnectorClient,
@@ -46,8 +47,6 @@ export async function signTypedData<
46
47
  ): Promise<SignTypedDataReturnType> {
47
48
  const { account, connector, ...rest } = parameters
48
49
  const client = await getConnectorClient(config, { account, connector })
49
- return viem_signTypedData(
50
- client,
51
- rest as unknown as viem_SignTypedDataParameters,
52
- )
50
+ const action = getAction(client, viem_signTypedData, 'signTypedData')
51
+ return action(rest as unknown as viem_SignTypedDataParameters)
53
52
  }
@@ -26,6 +26,7 @@ import type {
26
26
  UnionEvaluate,
27
27
  UnionOmit,
28
28
  } from '../types/utils.js'
29
+ import { getAction } from '../utils/getAction.js'
29
30
  import {
30
31
  type GetConnectorClientErrorType,
31
32
  getConnectorClient,
@@ -148,11 +149,8 @@ export async function simulateContract<
148
149
  }
149
150
 
150
151
  const client = config.getClient({ chainId })
151
- const { result, request } = await viem_simulateContract(client, {
152
- ...rest,
153
- abi,
154
- account,
155
- })
152
+ const action = getAction(client, viem_simulateContract, 'simulateContract')
153
+ const { result, request } = await action({ ...rest, abi, account })
156
154
 
157
155
  return {
158
156
  chainId: client.chain.id,
@@ -8,6 +8,7 @@ import {
8
8
  import { type Config } from '../createConfig.js'
9
9
  import { type ChainIdParameter } from '../types/properties.js'
10
10
  import { type Evaluate } from '../types/utils.js'
11
+ import { getAction } from '../utils/getAction.js'
11
12
 
12
13
  export type VerifyMessageParameters<config extends Config = Config> = Evaluate<
13
14
  viem_VerifyMessageParameters & ChainIdParameter<config>
@@ -24,5 +25,6 @@ export async function verifyMessage<config extends Config>(
24
25
  ): Promise<VerifyMessageReturnType> {
25
26
  const { chainId, ...rest } = parameters
26
27
  const client = config.getClient({ chainId })
27
- return viem_verifyMessage(client, rest)
28
+ const action = getAction(client, viem_verifyMessage, 'verifyMessage')
29
+ return action(rest)
28
30
  }
@@ -9,6 +9,7 @@ import {
9
9
  import { type Config } from '../createConfig.js'
10
10
  import { type ChainIdParameter } from '../types/properties.js'
11
11
  import { type Evaluate } from '../types/utils.js'
12
+ import { getAction } from '../utils/getAction.js'
12
13
 
13
14
  export type VerifyTypedDataParameters<
14
15
  typedData extends TypedData | Record<string, unknown> = TypedData,
@@ -34,5 +35,6 @@ export async function verifyTypedData<
34
35
  ): Promise<VerifyTypedDataReturnType> {
35
36
  const { chainId, ...rest } = parameters
36
37
  const client = config.getClient({ chainId })
37
- return viem_verifyTypedData(client, rest as viem_VerifyTypedDataParameters)
38
+ const action = getAction(client, viem_verifyTypedData, 'verifyTypedData')
39
+ return action(rest as viem_VerifyTypedDataParameters)
38
40
  }
@@ -1,4 +1,4 @@
1
- import type { CallParameters, Chain } from 'viem'
1
+ import { type Chain } from 'viem'
2
2
  import { hexToString } from 'viem'
3
3
  import {
4
4
  type WaitForTransactionReceiptErrorType as viem_WaitForTransactionReceiptErrorType,
@@ -10,9 +10,10 @@ import {
10
10
  } from 'viem/actions'
11
11
 
12
12
  import { type Config } from '../createConfig.js'
13
- import type { SelectChains } from '../types/chain.js'
13
+ import { type SelectChains } from '../types/chain.js'
14
14
  import { type ChainIdParameter } from '../types/properties.js'
15
15
  import { type Evaluate, type IsNarrowable } from '../types/utils.js'
16
+ import { getAction } from '../utils/getAction.js'
16
17
 
17
18
  export type WaitForTransactionReceiptParameters<
18
19
  config extends Config = Config,
@@ -47,29 +48,31 @@ export async function waitForTransactionReceipt<
47
48
  const { chainId, timeout = 0, ...rest } = parameters
48
49
 
49
50
  const client = config.getClient({ chainId })
50
- const receipt = await viem_waitForTransactionReceipt(client, {
51
- ...rest,
52
- timeout,
53
- })
51
+ const action = getAction(
52
+ client,
53
+ viem_waitForTransactionReceipt,
54
+ 'waitForTransactionReceipt',
55
+ )
56
+ const receipt = await action({ ...rest, timeout })
54
57
 
55
58
  if (receipt.status === 'reverted') {
56
- const txn = await getTransaction(client, { hash: receipt.transactionHash })
57
- const code = (await call(client, {
59
+ const action_getTransaction = getAction(
60
+ client,
61
+ getTransaction,
62
+ 'getTransaction',
63
+ )
64
+ const txn = await action_getTransaction({ hash: receipt.transactionHash })
65
+ const action_call = getAction(client, call, 'call')
66
+ const code = (await action_call({
58
67
  ...txn,
59
68
  gasPrice: txn.type !== 'eip1559' ? txn.gasPrice : undefined,
60
69
  maxFeePerGas: txn.type === 'eip1559' ? txn.maxFeePerGas : undefined,
61
70
  maxPriorityFeePerGas:
62
71
  txn.type === 'eip1559' ? txn.maxPriorityFeePerGas : undefined,
63
- } as CallParameters)) as unknown as string
72
+ })) as unknown as string
64
73
  const reason = hexToString(`0x${code.substring(138)}`)
65
74
  throw new Error(reason)
66
75
  }
67
76
 
68
- return {
69
- ...(receipt as unknown as WaitForTransactionReceiptReturnType<
70
- config,
71
- chainId
72
- >),
73
- chainId: client.chain.id,
74
- }
77
+ return { ...receipt, chainId: client.chain.id }
75
78
  }
@@ -12,6 +12,7 @@ import type {
12
12
  SyncConnectedChainParameter,
13
13
  } from '../types/properties.js'
14
14
  import type { UnionEvaluate } from '../types/utils.js'
15
+ import { getAction } from '../utils/getAction.js'
15
16
 
16
17
  export type WatchBlockNumberParameters<
17
18
  config extends Config = Config,
@@ -51,10 +52,8 @@ export function watchBlockNumber<
51
52
  if (unwatch) unwatch()
52
53
 
53
54
  const client = config.getClient({ chainId })
54
- unwatch = viem_watchBlockNumber(
55
- client,
56
- rest as viem_WatchBlockNumberParameters,
57
- )
55
+ const action = getAction(client, viem_watchBlockNumber, 'watchBlockNumber')
56
+ unwatch = action(rest as viem_WatchBlockNumberParameters)
58
57
  return unwatch
59
58
  }
60
59
 
@@ -12,6 +12,7 @@ import type {
12
12
  SyncConnectedChainParameter,
13
13
  } from '../types/properties.js'
14
14
  import type { IsNarrowable, UnionEvaluate } from '../types/utils.js'
15
+ import { getAction } from '../utils/getAction.js'
15
16
 
16
17
  export type WatchBlocksParameters<
17
18
  includeTransactions extends boolean = false,
@@ -63,7 +64,8 @@ export function watchBlocks<
63
64
  if (unwatch) unwatch()
64
65
 
65
66
  const client = config.getClient({ chainId })
66
- unwatch = viem_watchBlocks(client, rest as viem_WatchBlocksParameters)
67
+ const action = getAction(client, viem_watchBlocks, 'watchBlocks')
68
+ unwatch = action(rest as viem_WatchBlocksParameters)
67
69
  return unwatch
68
70
  }
69
71
 
@@ -18,6 +18,7 @@ import {
18
18
  type SyncConnectedChainParameter,
19
19
  } from '../types/properties.js'
20
20
  import { type UnionEvaluate } from '../types/utils.js'
21
+ import { getAction } from '../utils/getAction.js'
21
22
 
22
23
  export type WatchContractEventParameters<
23
24
  abi extends Abi | readonly unknown[] = Abi,
@@ -72,10 +73,12 @@ export function watchContractEvent<
72
73
  if (unwatch) unwatch()
73
74
 
74
75
  const client = config.getClient({ chainId })
75
- unwatch = viem_watchContractEvent(
76
+ const action = getAction(
76
77
  client,
77
- rest as unknown as viem_WatchContractEventParameters,
78
+ viem_watchContractEvent,
79
+ 'watchContractEvent',
78
80
  )
81
+ unwatch = action(rest as unknown as viem_WatchContractEventParameters)
79
82
  return unwatch
80
83
  }
81
84
 
@@ -12,6 +12,7 @@ import type {
12
12
  SyncConnectedChainParameter,
13
13
  } from '../types/properties.js'
14
14
  import type { UnionEvaluate } from '../types/utils.js'
15
+ import { getAction } from '../utils/getAction.js'
15
16
 
16
17
  export type WatchPendingTransactionsParameters<
17
18
  config extends Config = Config,
@@ -52,10 +53,12 @@ export function watchPendingTransactions<
52
53
  if (unwatch) unwatch()
53
54
 
54
55
  const client = config.getClient({ chainId })
55
- unwatch = viem_watchPendingTransactions(
56
+ const action = getAction(
56
57
  client,
57
- rest as viem_WatchPendingTransactionsParameters,
58
+ viem_watchPendingTransactions,
59
+ 'watchPendingTransactions',
58
60
  )
61
+ unwatch = action(rest as viem_WatchPendingTransactionsParameters)
59
62
  return unwatch
60
63
  }
61
64
 
@@ -20,6 +20,7 @@ import {
20
20
  type ConnectorParameter,
21
21
  } from '../types/properties.js'
22
22
  import type { Evaluate, UnionEvaluate, UnionOmit } from '../types/utils.js'
23
+ import { getAction } from '../utils/getAction.js'
23
24
  import {
24
25
  type GetConnectorClientErrorType,
25
26
  getConnectorClient,
@@ -110,7 +111,8 @@ export async function writeContract<
110
111
  request = simulateRequest
111
112
  }
112
113
 
113
- const hash = await viem_writeContract(client, {
114
+ const action = getAction(client, viem_writeContract, 'writeContract')
115
+ const hash = await action({
114
116
  ...(request as any),
115
117
  chain: chainId ? { id: chainId } : null,
116
118
  })