viem 2.23.0 → 2.23.2

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 (46) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/_cjs/chains/definitions/pumpfiTestnet.js +26 -0
  3. package/_cjs/chains/definitions/pumpfiTestnet.js.map +1 -0
  4. package/_cjs/chains/definitions/unichain.js +48 -0
  5. package/_cjs/chains/definitions/unichain.js.map +1 -0
  6. package/_cjs/chains/index.js +8 -4
  7. package/_cjs/chains/index.js.map +1 -1
  8. package/_cjs/clients/transports/createTransport.js +1 -0
  9. package/_cjs/clients/transports/createTransport.js.map +1 -1
  10. package/_cjs/clients/transports/fallback.js +11 -0
  11. package/_cjs/clients/transports/fallback.js.map +1 -1
  12. package/_cjs/errors/version.js +1 -1
  13. package/_cjs/op-stack/chains.js +3 -1
  14. package/_cjs/op-stack/chains.js.map +1 -1
  15. package/_esm/chains/definitions/pumpfiTestnet.js +23 -0
  16. package/_esm/chains/definitions/pumpfiTestnet.js.map +1 -0
  17. package/_esm/chains/definitions/unichain.js +45 -0
  18. package/_esm/chains/definitions/unichain.js.map +1 -0
  19. package/_esm/chains/index.js +2 -0
  20. package/_esm/chains/index.js.map +1 -1
  21. package/_esm/clients/transports/createTransport.js +1 -0
  22. package/_esm/clients/transports/createTransport.js.map +1 -1
  23. package/_esm/clients/transports/fallback.js +12 -0
  24. package/_esm/clients/transports/fallback.js.map +1 -1
  25. package/_esm/errors/version.js +1 -1
  26. package/_esm/op-stack/chains.js +1 -0
  27. package/_esm/op-stack/chains.js.map +1 -1
  28. package/_types/chains/definitions/pumpfiTestnet.d.ts +37 -0
  29. package/_types/chains/definitions/pumpfiTestnet.d.ts.map +1 -0
  30. package/_types/chains/definitions/unichain.d.ts +299 -0
  31. package/_types/chains/definitions/unichain.d.ts.map +1 -0
  32. package/_types/chains/index.d.ts +2 -0
  33. package/_types/chains/index.d.ts.map +1 -1
  34. package/_types/clients/transports/createTransport.d.ts.map +1 -1
  35. package/_types/clients/transports/fallback.d.ts.map +1 -1
  36. package/_types/errors/version.d.ts +1 -1
  37. package/_types/op-stack/chains.d.ts +1 -0
  38. package/_types/op-stack/chains.d.ts.map +1 -1
  39. package/chains/definitions/pumpfiTestnet.ts +23 -0
  40. package/chains/definitions/unichain.ts +46 -0
  41. package/chains/index.ts +2 -0
  42. package/clients/transports/createTransport.ts +1 -0
  43. package/clients/transports/fallback.ts +12 -0
  44. package/errors/version.ts +1 -1
  45. package/op-stack/chains.ts +1 -0
  46. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import { chainConfig } from '../../op-stack/chainConfig.js'
2
+ import { defineChain } from '../../utils/chain/defineChain.js'
3
+
4
+ const sourceId = 1 // mainnet
5
+
6
+ export const unichain = /*#__PURE__*/ defineChain({
7
+ ...chainConfig,
8
+ id: 130,
9
+ name: 'Unichain',
10
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
11
+ rpcUrls: {
12
+ default: {
13
+ http: ['https://mainnet.unichain.org/'],
14
+ },
15
+ },
16
+ blockExplorers: {
17
+ default: {
18
+ name: 'Uniscan',
19
+ url: 'https://uniscan.xyz',
20
+ apiUrl: 'https://api.uniscan.xyz/api',
21
+ },
22
+ },
23
+ contracts: {
24
+ ...chainConfig.contracts,
25
+ multicall3: {
26
+ address: '0xca11bde05977b3631167028862be2a173976ca11',
27
+ blockCreated: 0,
28
+ },
29
+ disputeGameFactory: {
30
+ [sourceId]: {
31
+ address: '0x2F12d621a16e2d3285929C9996f478508951dFe4',
32
+ },
33
+ },
34
+ portal: {
35
+ [sourceId]: {
36
+ address: '0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2',
37
+ },
38
+ },
39
+ l1StandardBridge: {
40
+ [sourceId]: {
41
+ address: '0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA',
42
+ },
43
+ },
44
+ },
45
+ sourceId,
46
+ })
package/chains/index.ts CHANGED
@@ -367,6 +367,7 @@ export { polygonZkEvmTestnet } from './definitions/polygonZkEvmTestnet.js'
367
367
  export { premiumBlockTestnet } from './definitions/premiumBlock.js'
368
368
  export { pulsechain } from './definitions/pulsechain.js'
369
369
  export { pulsechainV4 } from './definitions/pulsechainV4.js'
370
+ export { pumpfiTestnet } from './definitions/pumpfiTestnet.js'
370
371
  export { ql1 } from './definitions/ql1.js'
371
372
  export { qMainnet } from './definitions/qMainnet.js'
372
373
  export { qTestnet } from './definitions/qTestnet.js'
@@ -483,6 +484,7 @@ export { ultra } from './definitions/ultra.js'
483
484
  export { ultraTestnet } from './definitions/ultraTestnet.js'
484
485
  export { ultron } from './definitions/ultron.js'
485
486
  export { ultronTestnet } from './definitions/ultronTestnet.js'
487
+ export { unichain } from './definitions/unichain.js'
486
488
  export { unichainSepolia } from './definitions/unichainSepolia.js'
487
489
  export { unique } from './definitions/unique.js'
488
490
  export { uniqueOpal } from './definitions/uniqueOpal.js'
@@ -79,6 +79,7 @@ export function createTransport<
79
79
  return {
80
80
  config: {
81
81
  key,
82
+ methods,
82
83
  name,
83
84
  request,
84
85
  retryCount,
@@ -122,6 +122,8 @@ export function fallback<const transports extends readonly Transport[]>(
122
122
  key,
123
123
  name,
124
124
  async request({ method, params }) {
125
+ let includes: boolean | undefined
126
+
125
127
  const fetch = async (i = 0): Promise<any> => {
126
128
  const transport = transports[i]({
127
129
  ...rest,
@@ -158,6 +160,16 @@ export function fallback<const transports extends readonly Transport[]>(
158
160
  // If we've reached the end of the fallbacks, throw the error.
159
161
  if (i === transports.length - 1) throw err
160
162
 
163
+ // Check if at least one other transport includes the method
164
+ includes ??= transports.slice(i + 1).some((transport) => {
165
+ const { include, exclude } =
166
+ transport({ chain }).config.methods || {}
167
+ if (include) return include.includes(method)
168
+ if (exclude) return !exclude.includes(method)
169
+ return true
170
+ })
171
+ if (!includes) throw err
172
+
161
173
  // Otherwise, try the next fallback.
162
174
  return fetch(i + 1)
163
175
  }
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.23.0'
1
+ export const version = '2.23.2'
@@ -19,6 +19,7 @@ export { snax } from '../chains/definitions/snax.js'
19
19
  export { snaxTestnet } from '../chains/definitions/snaxTestnet.js'
20
20
  export { soneium } from '../chains/definitions/soneium.js'
21
21
  export { soneiumMinato } from '../chains/definitions/soneiumMinato.js'
22
+ export { unichain } from '../chains/definitions/unichain.js'
22
23
  export { unichainSepolia } from '../chains/definitions/unichainSepolia.js'
23
24
  export { worldchain } from '../chains/definitions/worldchain.js'
24
25
  export { worldchainSepolia } from '../chains/definitions/worldchainSepolia.js'
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.0",
4
+ "version": "2.23.2",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",