viem 2.23.6 → 2.23.7

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 (84) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/_cjs/actions/public/getTransaction.js.map +1 -1
  3. package/_cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
  4. package/_cjs/actions/wallet/deployContract.js +1 -0
  5. package/_cjs/actions/wallet/deployContract.js.map +1 -1
  6. package/_cjs/actions/wallet/sendTransaction.js +2 -0
  7. package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
  8. package/_cjs/chains/definitions/guruNetwork.js +4 -1
  9. package/_cjs/chains/definitions/guruNetwork.js.map +1 -1
  10. package/_cjs/chains/definitions/guruTestnet.js +4 -1
  11. package/_cjs/chains/definitions/guruTestnet.js.map +1 -1
  12. package/_cjs/chains/definitions/juneo.js +24 -0
  13. package/_cjs/chains/definitions/juneo.js.map +1 -0
  14. package/_cjs/chains/definitions/statusNetworkSepolia.js +35 -0
  15. package/_cjs/chains/definitions/statusNetworkSepolia.js.map +1 -0
  16. package/_cjs/chains/index.js +12 -7
  17. package/_cjs/chains/index.js.map +1 -1
  18. package/_cjs/clients/transports/fallback.js +3 -2
  19. package/_cjs/clients/transports/fallback.js.map +1 -1
  20. package/_cjs/errors/version.js +1 -1
  21. package/_cjs/index.js +10 -9
  22. package/_cjs/index.js.map +1 -1
  23. package/_cjs/utils/abi/encodeFunctionResult.js +9 -3
  24. package/_cjs/utils/abi/encodeFunctionResult.js.map +1 -1
  25. package/_esm/actions/public/getTransaction.js +1 -1
  26. package/_esm/actions/public/getTransaction.js.map +1 -1
  27. package/_esm/actions/public/waitForTransactionReceipt.js.map +1 -1
  28. package/_esm/actions/wallet/deployContract.js +1 -0
  29. package/_esm/actions/wallet/deployContract.js.map +1 -1
  30. package/_esm/actions/wallet/sendTransaction.js +3 -0
  31. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  32. package/_esm/chains/definitions/guruNetwork.js +4 -1
  33. package/_esm/chains/definitions/guruNetwork.js.map +1 -1
  34. package/_esm/chains/definitions/guruTestnet.js +4 -1
  35. package/_esm/chains/definitions/guruTestnet.js.map +1 -1
  36. package/_esm/chains/definitions/juneo.js +21 -0
  37. package/_esm/chains/definitions/juneo.js.map +1 -0
  38. package/_esm/chains/definitions/statusNetworkSepolia.js +32 -0
  39. package/_esm/chains/definitions/statusNetworkSepolia.js.map +1 -0
  40. package/_esm/chains/index.js +2 -0
  41. package/_esm/chains/index.js.map +1 -1
  42. package/_esm/clients/transports/fallback.js +3 -3
  43. package/_esm/clients/transports/fallback.js.map +1 -1
  44. package/_esm/errors/version.js +1 -1
  45. package/_esm/index.js +1 -1
  46. package/_esm/index.js.map +1 -1
  47. package/_esm/utils/abi/encodeFunctionResult.js +10 -4
  48. package/_esm/utils/abi/encodeFunctionResult.js.map +1 -1
  49. package/_types/actions/public/getTransaction.d.ts +2 -1
  50. package/_types/actions/public/getTransaction.d.ts.map +1 -1
  51. package/_types/actions/public/waitForTransactionReceipt.d.ts +2 -1
  52. package/_types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
  53. package/_types/actions/wallet/deployContract.d.ts.map +1 -1
  54. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  55. package/_types/chains/definitions/guruNetwork.d.ts +1 -1
  56. package/_types/chains/definitions/guruNetwork.d.ts.map +1 -1
  57. package/_types/chains/definitions/guruTestnet.d.ts +1 -1
  58. package/_types/chains/definitions/guruTestnet.d.ts.map +1 -1
  59. package/_types/chains/definitions/juneo.d.ts +38 -0
  60. package/_types/chains/definitions/juneo.d.ts.map +1 -0
  61. package/_types/chains/definitions/statusNetworkSepolia.d.ts +37 -0
  62. package/_types/chains/definitions/statusNetworkSepolia.d.ts.map +1 -0
  63. package/_types/chains/index.d.ts +2 -0
  64. package/_types/chains/index.d.ts.map +1 -1
  65. package/_types/clients/transports/fallback.d.ts +3 -0
  66. package/_types/clients/transports/fallback.d.ts.map +1 -1
  67. package/_types/errors/version.d.ts +1 -1
  68. package/_types/index.d.ts +1 -1
  69. package/_types/index.d.ts.map +1 -1
  70. package/_types/utils/abi/encodeFunctionResult.d.ts.map +1 -1
  71. package/actions/public/getTransaction.ts +5 -1
  72. package/actions/public/waitForTransactionReceipt.ts +2 -0
  73. package/actions/wallet/deployContract.ts +1 -0
  74. package/actions/wallet/sendTransaction.ts +3 -0
  75. package/chains/definitions/guruNetwork.ts +4 -1
  76. package/chains/definitions/guruTestnet.ts +4 -1
  77. package/chains/definitions/juneo.ts +21 -0
  78. package/chains/definitions/statusNetworkSepolia.ts +32 -0
  79. package/chains/index.ts +5 -0
  80. package/clients/transports/fallback.ts +5 -2
  81. package/errors/version.ts +1 -1
  82. package/index.ts +1 -0
  83. package/package.json +1 -1
  84. package/utils/abi/encodeFunctionResult.ts +7 -2
package/chains/index.ts CHANGED
@@ -243,6 +243,7 @@ export { iotexTestnet } from './definitions/iotexTestnet.js'
243
243
  export { iSunCoin } from './definitions/iSunCoin.js'
244
244
  export { jbc } from './definitions/jbc.js'
245
245
  export { jbcTestnet } from './definitions/jbcTestnet.js'
246
+ export { juneo } from './definitions/juneo.js'
246
247
  export { karura } from './definitions/karura.js'
247
248
  /** @deprecated Use `kakarotStarknetSepolia` instead. */
248
249
  export { kakarotSepolia } from './definitions/kakarotSepolia.js'
@@ -454,6 +455,10 @@ export { songbirdTestnet } from './definitions/songbirdTestnet.js'
454
455
  export { sophon } from './definitions/sophon.js'
455
456
  export { sophonTestnet } from './definitions/sophonTestnet.js'
456
457
  export { spicy } from './definitions/spicy.js'
458
+ export {
459
+ statusSepolia,
460
+ statusSepolia as statusNetworkSepolia,
461
+ } from './definitions/statusNetworkSepolia.js'
457
462
  export { step } from './definitions/step.js'
458
463
  export { story } from './definitions/story.js'
459
464
  export { storyAeneid } from './definitions/storyAeneid.js'
@@ -85,6 +85,8 @@ export type FallbackTransportConfig = {
85
85
  retryCount?: TransportConfig['retryCount'] | undefined
86
86
  /** The base delay (in ms) between retries. */
87
87
  retryDelay?: TransportConfig['retryDelay'] | undefined
88
+ /** Callback on whether an error should throw or try the next transport in the fallback. */
89
+ shouldThrow?: (error: Error) => boolean | undefined
88
90
  }
89
91
 
90
92
  export type FallbackTransport<
@@ -109,6 +111,7 @@ export function fallback<const transports extends readonly Transport[]>(
109
111
  key = 'fallback',
110
112
  name = 'Fallback',
111
113
  rank = false,
114
+ shouldThrow: shouldThrow_ = shouldThrow,
112
115
  retryCount,
113
116
  retryDelay,
114
117
  } = config
@@ -155,7 +158,7 @@ export function fallback<const transports extends readonly Transport[]>(
155
158
  status: 'error',
156
159
  })
157
160
 
158
- if (shouldThrow(err as Error)) throw err
161
+ if (shouldThrow_(err as Error)) throw err
159
162
 
160
163
  // If we've reached the end of the fallbacks, throw the error.
161
164
  if (i === transports.length - 1) throw err
@@ -203,7 +206,7 @@ export function fallback<const transports extends readonly Transport[]>(
203
206
  }) as FallbackTransport<transports>
204
207
  }
205
208
 
206
- function shouldThrow(error: Error) {
209
+ export function shouldThrow(error: Error) {
207
210
  if ('code' in error && typeof error.code === 'number') {
208
211
  if (
209
212
  error.code === TransactionRejectedRpcError.code ||
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.23.6'
1
+ export const version = '2.23.7'
package/index.ts CHANGED
@@ -507,6 +507,7 @@ export {
507
507
  type FallbackTransportConfig,
508
508
  type FallbackTransportErrorType,
509
509
  fallback,
510
+ shouldThrow,
510
511
  } from './clients/transports/fallback.js'
511
512
  export {
512
513
  type HttpTransport,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.23.6",
4
+ "version": "2.23.7",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -3,6 +3,7 @@ import type { Abi, AbiStateMutability, ExtractAbiFunctions } from 'abitype'
3
3
  import {
4
4
  AbiFunctionNotFoundError,
5
5
  AbiFunctionOutputsNotFoundError,
6
+ InvalidArrayError,
6
7
  } from '../../errors/abi.js'
7
8
  import type {
8
9
  ContractFunctionName,
@@ -86,8 +87,12 @@ export function encodeFunctionResult<
86
87
  if (!abiItem.outputs)
87
88
  throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath })
88
89
 
89
- let values = Array.isArray(result) ? result : [result]
90
- if (abiItem.outputs.length === 0 && !values[0]) values = []
90
+ const values = (() => {
91
+ if (abiItem.outputs.length === 0) return []
92
+ if (abiItem.outputs.length === 1) return [result]
93
+ if (Array.isArray(result)) return result
94
+ throw new InvalidArrayError(result)
95
+ })()
91
96
 
92
97
  return encodeAbiParameters(abiItem.outputs, values)
93
98
  }