viem 2.22.9 → 2.22.11

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 (127) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/_cjs/chains/definitions/alephZeroTestnet.js +30 -0
  3. package/_cjs/chains/definitions/alephZeroTestnet.js.map +1 -0
  4. package/_cjs/chains/definitions/goat.js +29 -0
  5. package/_cjs/chains/definitions/goat.js.map +1 -0
  6. package/_cjs/chains/definitions/swellchain.js +34 -0
  7. package/_cjs/chains/definitions/swellchain.js.map +1 -0
  8. package/_cjs/chains/definitions/ultraTestnet.js +24 -0
  9. package/_cjs/chains/definitions/ultraTestnet.js.map +1 -0
  10. package/_cjs/chains/index.js +19 -11
  11. package/_cjs/chains/index.js.map +1 -1
  12. package/_cjs/clients/transports/createTransport.js +2 -2
  13. package/_cjs/clients/transports/createTransport.js.map +1 -1
  14. package/_cjs/clients/transports/custom.js +2 -1
  15. package/_cjs/clients/transports/custom.js.map +1 -1
  16. package/_cjs/clients/transports/http.js +2 -1
  17. package/_cjs/clients/transports/http.js.map +1 -1
  18. package/_cjs/clients/transports/ipc.js +2 -1
  19. package/_cjs/clients/transports/ipc.js.map +1 -1
  20. package/_cjs/clients/transports/webSocket.js +2 -1
  21. package/_cjs/clients/transports/webSocket.js.map +1 -1
  22. package/_cjs/errors/rpc.js +1 -1
  23. package/_cjs/errors/rpc.js.map +1 -1
  24. package/_cjs/errors/version.js +1 -1
  25. package/_cjs/errors/version.js.map +1 -1
  26. package/_cjs/utils/buildRequest.js +10 -1
  27. package/_cjs/utils/buildRequest.js.map +1 -1
  28. package/_cjs/zksync/actions/withdraw.js +53 -0
  29. package/_cjs/zksync/actions/withdraw.js.map +1 -0
  30. package/_cjs/zksync/constants/abis.js +246 -1
  31. package/_cjs/zksync/constants/abis.js.map +1 -1
  32. package/_cjs/zksync/constants/address.js.map +1 -1
  33. package/_cjs/zksync/decorators/walletL2.js +10 -0
  34. package/_cjs/zksync/decorators/walletL2.js.map +1 -0
  35. package/_cjs/zksync/index.js +9 -2
  36. package/_cjs/zksync/index.js.map +1 -1
  37. package/_esm/chains/definitions/alephZeroTestnet.js +27 -0
  38. package/_esm/chains/definitions/alephZeroTestnet.js.map +1 -0
  39. package/_esm/chains/definitions/goat.js +26 -0
  40. package/_esm/chains/definitions/goat.js.map +1 -0
  41. package/_esm/chains/definitions/swellchain.js +31 -0
  42. package/_esm/chains/definitions/swellchain.js.map +1 -0
  43. package/_esm/chains/definitions/ultraTestnet.js +21 -0
  44. package/_esm/chains/definitions/ultraTestnet.js.map +1 -0
  45. package/_esm/chains/index.js +4 -0
  46. package/_esm/chains/index.js.map +1 -1
  47. package/_esm/clients/transports/createTransport.js +2 -2
  48. package/_esm/clients/transports/createTransport.js.map +1 -1
  49. package/_esm/clients/transports/custom.js +2 -1
  50. package/_esm/clients/transports/custom.js.map +1 -1
  51. package/_esm/clients/transports/http.js +2 -1
  52. package/_esm/clients/transports/http.js.map +1 -1
  53. package/_esm/clients/transports/ipc.js +2 -1
  54. package/_esm/clients/transports/ipc.js.map +1 -1
  55. package/_esm/clients/transports/webSocket.js +2 -1
  56. package/_esm/clients/transports/webSocket.js.map +1 -1
  57. package/_esm/errors/rpc.js +1 -1
  58. package/_esm/errors/rpc.js.map +1 -1
  59. package/_esm/errors/version.js +1 -1
  60. package/_esm/errors/version.js.map +1 -1
  61. package/_esm/utils/buildRequest.js +10 -1
  62. package/_esm/utils/buildRequest.js.map +1 -1
  63. package/_esm/zksync/actions/withdraw.js +120 -0
  64. package/_esm/zksync/actions/withdraw.js.map +1 -0
  65. package/_esm/zksync/constants/abis.js +245 -0
  66. package/_esm/zksync/constants/abis.js.map +1 -1
  67. package/_esm/zksync/constants/address.js +2 -0
  68. package/_esm/zksync/constants/address.js.map +1 -1
  69. package/_esm/zksync/decorators/walletL2.js +7 -0
  70. package/_esm/zksync/decorators/walletL2.js.map +1 -0
  71. package/_esm/zksync/index.js +3 -0
  72. package/_esm/zksync/index.js.map +1 -1
  73. package/_types/chains/definitions/alephZeroTestnet.d.ts +35 -0
  74. package/_types/chains/definitions/alephZeroTestnet.d.ts.map +1 -0
  75. package/_types/chains/definitions/goat.d.ts +33 -0
  76. package/_types/chains/definitions/goat.d.ts.map +1 -0
  77. package/_types/chains/definitions/swellchain.d.ts +284 -0
  78. package/_types/chains/definitions/swellchain.d.ts.map +1 -0
  79. package/_types/chains/definitions/ultraTestnet.d.ts +37 -0
  80. package/_types/chains/definitions/ultraTestnet.d.ts.map +1 -0
  81. package/_types/chains/index.d.ts +4 -0
  82. package/_types/chains/index.d.ts.map +1 -1
  83. package/_types/clients/transports/createTransport.d.ts +8 -1
  84. package/_types/clients/transports/createTransport.d.ts.map +1 -1
  85. package/_types/clients/transports/custom.d.ts +2 -0
  86. package/_types/clients/transports/custom.d.ts.map +1 -1
  87. package/_types/clients/transports/http.d.ts +2 -0
  88. package/_types/clients/transports/http.d.ts.map +1 -1
  89. package/_types/clients/transports/ipc.d.ts +2 -0
  90. package/_types/clients/transports/ipc.d.ts.map +1 -1
  91. package/_types/clients/transports/webSocket.d.ts +2 -0
  92. package/_types/clients/transports/webSocket.d.ts.map +1 -1
  93. package/_types/errors/version.d.ts +1 -1
  94. package/_types/errors/version.d.ts.map +1 -1
  95. package/_types/types/eip1193.d.ts +9 -0
  96. package/_types/types/eip1193.d.ts.map +1 -1
  97. package/_types/utils/buildRequest.d.ts.map +1 -1
  98. package/_types/zksync/actions/withdraw.d.ts +94 -0
  99. package/_types/zksync/actions/withdraw.d.ts.map +1 -0
  100. package/_types/zksync/constants/abis.d.ts +191 -0
  101. package/_types/zksync/constants/abis.d.ts.map +1 -1
  102. package/_types/zksync/constants/address.d.ts +2 -0
  103. package/_types/zksync/constants/address.d.ts.map +1 -1
  104. package/_types/zksync/decorators/walletL2.d.ts +75 -0
  105. package/_types/zksync/decorators/walletL2.d.ts.map +1 -0
  106. package/_types/zksync/index.d.ts +3 -0
  107. package/_types/zksync/index.d.ts.map +1 -1
  108. package/chains/definitions/alephZeroTestnet.ts +27 -0
  109. package/chains/definitions/goat.ts +26 -0
  110. package/chains/definitions/swellchain.ts +31 -0
  111. package/chains/definitions/ultraTestnet.ts +21 -0
  112. package/chains/index.ts +4 -0
  113. package/clients/transports/createTransport.ts +14 -1
  114. package/clients/transports/custom.ts +9 -1
  115. package/clients/transports/http.ts +4 -0
  116. package/clients/transports/ipc.ts +10 -1
  117. package/clients/transports/webSocket.ts +4 -0
  118. package/errors/rpc.ts +1 -1
  119. package/errors/version.ts +1 -1
  120. package/package.json +1 -1
  121. package/types/eip1193.ts +14 -3
  122. package/utils/buildRequest.ts +12 -0
  123. package/zksync/actions/withdraw.ts +185 -0
  124. package/zksync/constants/abis.ts +246 -0
  125. package/zksync/constants/address.ts +2 -0
  126. package/zksync/decorators/walletL2.ts +95 -0
  127. package/zksync/index.ts +16 -0
@@ -0,0 +1,75 @@
1
+ import type { Client } from '../../clients/createClient.js';
2
+ import type { Transport } from '../../clients/transports/createTransport.js';
3
+ import type { Account } from '../../types/account.js';
4
+ import { type WithdrawParameters, type WithdrawReturnType } from '../actions/withdraw.js';
5
+ import type { ChainEIP712 } from '../types/chain.js';
6
+ export type WalletActionsL2<chain extends ChainEIP712 | undefined = ChainEIP712 | undefined, account extends Account | undefined = Account | undefined> = {
7
+ /**
8
+ * Initiates the withdrawal process which withdraws ETH or any ERC20 token
9
+ * from the associated account on L2 network to the target account on L1 network.
10
+ *
11
+ * @param args - {@link WithdrawParameters}
12
+ * @returns hash - The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link WithdrawReturnType}
13
+ *
14
+ *
15
+ * @example
16
+ * import { createPublicClient, http } from 'viem'
17
+ * import { privateKeyToAccount } from 'viem/accounts'
18
+ * import { zksync } from 'viem/chains'
19
+ * import { publicActionsL2, legacyEthAddress } from 'viem/zksync'
20
+ *
21
+ * const client = createPublicClient({
22
+ * chain: zksync,
23
+ * transport: http(),
24
+ * }).extend(publicActionsL2())
25
+ *
26
+ * const hash = await client.withdraw({
27
+ * account: privateKeyToAccount('0x…'),
28
+ * amount: 1_000_000_000_000_000_000n,
29
+ * token: legacyEthAddress,
30
+ * })
31
+ *
32
+ * @example Account Hoisting
33
+ * import { createWalletClient, http } from 'viem'
34
+ * import { privateKeyToAccount } from 'viem/accounts'
35
+ * import { zksync } from 'viem/chains'
36
+ * import { publicActionsL2, legacyEthAddress } from 'viem/zksync'
37
+ *
38
+ * const client = createWalletClient({
39
+ * account: privateKeyToAccount('0x…'),
40
+ * chain: zksync,
41
+ * transport: http(),
42
+ * }).extend(publicActionsL2())
43
+ *
44
+ * const hash = await client.withdraw({
45
+ * amount: 1_000_000_000_000_000_000n,
46
+ * token: legacyEthAddress,
47
+ * })
48
+ *
49
+ * @example Paymaster
50
+ * import { createPublicClient, http } from 'viem'
51
+ * import { privateKeyToAccount } from 'viem/accounts'
52
+ * import { zksync } from 'viem/chains'
53
+ * import { publicActionsL2, legacyEthAddress } from 'viem/zksync'
54
+ *
55
+ * const client = createPublicClient({
56
+ * chain: zksync,
57
+ * transport: http(),
58
+ * }).extend(publicActionsL2())
59
+ *
60
+ * const hash = await client.withdraw({
61
+ * account: privateKeyToAccount('0x…'),
62
+ * amount: 1_000_000_000_000_000_000n,
63
+ * token: legacyEthAddress,
64
+ * paymaster: '0x0EEc6f45108B4b806e27B81d9002e162BD910670',
65
+ * paymasterInput: getApprovalBasedPaymasterInput({
66
+ * minAllowance: 1n,
67
+ * token: '0x2dc3685cA34163952CF4A5395b0039c00DFa851D',
68
+ * innerInput: new Uint8Array(),
69
+ * }),
70
+ * })
71
+ */
72
+ withdraw: <chainOverride extends ChainEIP712 | undefined = undefined>(args: WithdrawParameters<chain, account, chainOverride>) => Promise<WithdrawReturnType>;
73
+ };
74
+ export declare function walletActionsL2(): <transport extends Transport, chain extends ChainEIP712 | undefined = ChainEIP712 | undefined, account extends Account | undefined = Account | undefined>(client: Client<transport, chain, account>) => WalletActionsL2<chain, account>;
75
+ //# sourceMappingURL=walletL2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletL2.d.ts","sourceRoot":"","sources":["../../../zksync/decorators/walletL2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAExB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,MAAM,eAAe,CACzB,KAAK,SAAS,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,EAC/D,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IACvD;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACH,QAAQ,EAAE,CAAC,aAAa,SAAS,WAAW,GAAG,SAAS,GAAG,SAAS,EAClE,IAAI,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,KACpD,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACjC,CAAA;AAED,wBAAgB,eAAe,KAE3B,SAAS,SAAS,SAAS,EAC3B,KAAK,SAAS,WAAW,GAAG,SAAS,4BACrC,OAAO,SAAS,OAAO,GAAG,SAAS,gCAE3B,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KACxC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAGnC"}
@@ -28,6 +28,8 @@ export { type SignEip712TransactionErrorType, type SignEip712TransactionParamete
28
28
  export { type SignTransactionErrorType, type SignTransactionParameters, type SignTransactionReturnType, signTransaction, } from './actions/signTransaction.js';
29
29
  export { type GetL2TokenAddressReturnType, type GetL2TokenAddressParameters, getL2TokenAddress, } from './actions/getL2TokenAddress.js';
30
30
  export { type GetL1TokenAddressReturnType, type GetL1TokenAddressParameters, getL1TokenAddress, } from './actions/getL1TokenAddress.js';
31
+ export { type WithdrawErrorType, type WithdrawParameters, type WithdrawReturnType, withdraw, } from './actions/withdraw.js';
32
+ export { legacyEthAddress, l2BaseTokenAddress, } from './constants/address.js';
31
33
  export {
32
34
  /** @deprecated Use `zksync` instead */
33
35
  zksync as zkSync, zksync,
@@ -42,6 +44,7 @@ export { eip712WalletActions, type Eip712WalletActions, } from './decorators/eip
42
44
  export { publicActionsL1, type PublicActionsL1, } from './decorators/publicL1.js';
43
45
  export { publicActionsL2, type PublicActionsL2, } from './decorators/publicL2.js';
44
46
  export { walletActionsL1, type WalletActionsL1, } from './decorators/walletL1.js';
47
+ export { walletActionsL2, type WalletActionsL2, } from './decorators/walletL2.js';
45
48
  export { serializeTransaction } from './serializers.js';
46
49
  export type { ZksyncSmartAccount } from './types/account.js';
47
50
  export type {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../zksync/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../zksync/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const alephZeroTestnet = /*#__PURE__*/ defineChain({
4
+ id: 2039,
5
+ name: 'Aleph Zero Testnet',
6
+ nativeCurrency: { name: 'TZERO', symbol: 'TZERO', decimals: 18 },
7
+ rpcUrls: {
8
+ default: {
9
+ http: ['https://rpc.alephzero-testnet.gelato.digital'],
10
+ webSocket: ['wss://ws.alephzero-testnet.gelato.digital'],
11
+ },
12
+ },
13
+ blockExplorers: {
14
+ default: {
15
+ name: 'Aleph Zero EVM Testnet explorer',
16
+ url: 'https://evm-explorer-testnet.alephzero.org',
17
+ apiUrl: 'https://evm-explorer-testnet.alephzero.org/api',
18
+ },
19
+ },
20
+ contracts: {
21
+ multicall3: {
22
+ address: '0xca11bde05977b3631167028862be2a173976ca11',
23
+ blockCreated: 2861745,
24
+ },
25
+ },
26
+ testnet: true,
27
+ })
@@ -0,0 +1,26 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const goat = /*#__PURE__*/ defineChain({
4
+ id: 2345,
5
+ name: 'GOAT',
6
+ nativeCurrency: {
7
+ decimals: 18,
8
+ name: 'Bitcoin',
9
+ symbol: 'BTC',
10
+ },
11
+ rpcUrls: {
12
+ default: { http: ['https://rpc.goat.network'] },
13
+ },
14
+ blockExplorers: {
15
+ default: {
16
+ name: 'Goat Explorer',
17
+ url: 'https://explorer.goat.network',
18
+ },
19
+ },
20
+ contracts: {
21
+ multicall3: {
22
+ address: '0xcA11bde05977b3631167028862bE2a173976CA11',
23
+ blockCreated: 0,
24
+ },
25
+ },
26
+ })
@@ -0,0 +1,31 @@
1
+ import { chainConfig } from '../../op-stack/chainConfig.js'
2
+ import { defineChain } from '../../utils/chain/defineChain.js'
3
+
4
+ export const swellchain = /*#__PURE__*/ defineChain({
5
+ ...chainConfig,
6
+ id: 1923,
7
+ name: 'Swellchain',
8
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
9
+ rpcUrls: {
10
+ default: {
11
+ http: [
12
+ 'https://swell-mainnet.alt.technology',
13
+ 'https://rpc.ankr.com/swell',
14
+ ],
15
+ },
16
+ },
17
+ blockExplorers: {
18
+ default: {
19
+ name: 'Swell Explorer',
20
+ url: 'https://explorer.swellnetwork.io',
21
+ apiUrl: 'https://explorer.swellnetwork.io/api',
22
+ },
23
+ },
24
+ contracts: {
25
+ ...chainConfig.contracts,
26
+ multicall3: {
27
+ address: '0xcA11bde05977b3631167028862bE2a173976CA11',
28
+ blockCreated: 1,
29
+ },
30
+ },
31
+ })
@@ -0,0 +1,21 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const ultraTestnet = /*#__PURE__*/ defineChain({
4
+ id: 18881,
5
+ name: 'Ultra EVM Testnet',
6
+ nativeCurrency: {
7
+ decimals: 18,
8
+ name: 'Ultra Token',
9
+ symbol: 'UOS',
10
+ },
11
+ rpcUrls: {
12
+ default: { http: ['https://evm.test.ultra.eosusa.io'] },
13
+ },
14
+ blockExplorers: {
15
+ default: {
16
+ name: 'Ultra EVM Testnet Explorer',
17
+ url: 'https://evmexplorer.testnet.ultra.io',
18
+ },
19
+ },
20
+ testnet: true,
21
+ })
package/chains/index.ts CHANGED
@@ -8,6 +8,7 @@ export { acria } from './definitions/acria.js'
8
8
  export { adf } from './definitions/adf.js'
9
9
  export { aioz } from './definitions/aioz.js'
10
10
  export { alephZero } from './definitions/alephZero.js'
11
+ export { alephZeroTestnet } from './definitions/alephZeroTestnet.js'
11
12
  export { alienx } from './definitions/alienX.js'
12
13
  export { alienxHalTestnet } from './definitions/alienXHalTestnet.js'
13
14
  export { ancient8 } from './definitions/ancient8.js'
@@ -183,6 +184,7 @@ export { glideL1Protocol } from './definitions/glideL1Protocol.js'
183
184
  export { glideL2Protocol } from './definitions/glideL2Protocol.js'
184
185
  export { gnosis } from './definitions/gnosis.js'
185
186
  export { gnosisChiado } from './definitions/gnosisChiado.js'
187
+ export { goat } from './definitions/goat.js'
186
188
  export { gobi } from './definitions/gobi.js'
187
189
  export { goChain } from './definitions/goChain.js'
188
190
  export { godwoken } from './definitions/godwoken.js'
@@ -429,6 +431,7 @@ export { superseedSepolia } from './definitions/superseedSepolia.js'
429
431
  export { swan } from './definitions/swan.js'
430
432
  export { swanProximaTestnet } from './definitions/swanProximaTestnet.js'
431
433
  export { swanSaturnTestnet } from './definitions/swanSaturnTestnet.js'
434
+ export { swellchain } from './definitions/swellchain.js'
432
435
  export { swissdlt } from './definitions/swissdlt.js'
433
436
  export { syscoin } from './definitions/syscoin.js'
434
437
  export { syscoinTestnet } from './definitions/syscoinTestnet.js'
@@ -456,6 +459,7 @@ export { treasure } from './definitions/treasure.js'
456
459
  export { treasureTopaz } from './definitions/treasureTopaz.js'
457
460
  export { tron } from './definitions/tron.js'
458
461
  export { ubiq } from './definitions/ubiq.js'
462
+ export { ultraTestnet } from './definitions/ultraTestnet.js'
459
463
  export { ultron } from './definitions/ultron.js'
460
464
  export { ultronTestnet } from './definitions/ultronTestnet.js'
461
465
  export { unichainSepolia } from './definitions/unichainSepolia.js'
@@ -1,6 +1,7 @@
1
1
  import type { ErrorType } from '../../errors/utils.js'
2
2
  import type { Chain } from '../../types/chain.js'
3
3
  import type { EIP1193RequestFn } from '../../types/eip1193.js'
4
+ import type { OneOf } from '../../types/utils.js'
4
5
  import { buildRequest } from '../../utils/buildRequest.js'
5
6
  import { uid as uid_ } from '../../utils/uid.js'
6
7
  import type { ClientConfig } from '../createClient.js'
@@ -13,6 +14,17 @@ export type TransportConfig<
13
14
  name: string
14
15
  /** The key of the transport. */
15
16
  key: string
17
+ /** Methods to include or exclude from executing RPC requests. */
18
+ methods?:
19
+ | OneOf<
20
+ | {
21
+ include?: string[] | undefined
22
+ }
23
+ | {
24
+ exclude?: string[] | undefined
25
+ }
26
+ >
27
+ | undefined
16
28
  /** The JSON-RPC request function that matches the EIP-1193 request spec. */
17
29
  request: eip1193RequestFn
18
30
  /** The base delay (in ms) between retries. */
@@ -53,6 +65,7 @@ export function createTransport<
53
65
  >(
54
66
  {
55
67
  key,
68
+ methods,
56
69
  name,
57
70
  request,
58
71
  retryCount = 3,
@@ -73,7 +86,7 @@ export function createTransport<
73
86
  timeout,
74
87
  type,
75
88
  },
76
- request: buildRequest(request, { retryCount, retryDelay, uid }),
89
+ request: buildRequest(request, { methods, retryCount, retryDelay, uid }),
77
90
  value,
78
91
  }
79
92
  }
@@ -11,6 +11,8 @@ type EthereumProvider = { request(...args: any): Promise<any> }
11
11
  export type CustomTransportConfig = {
12
12
  /** The key of the transport. */
13
13
  key?: TransportConfig['key'] | undefined
14
+ /** Methods to include or exclude from executing RPC requests. */
15
+ methods?: TransportConfig['methods'] | undefined
14
16
  /** The name of the transport. */
15
17
  name?: TransportConfig['name'] | undefined
16
18
  /** The max number of times to retry. */
@@ -34,10 +36,16 @@ export function custom<provider extends EthereumProvider>(
34
36
  provider: provider,
35
37
  config: CustomTransportConfig = {},
36
38
  ): CustomTransport {
37
- const { key = 'custom', name = 'Custom Provider', retryDelay } = config
39
+ const {
40
+ key = 'custom',
41
+ methods,
42
+ name = 'Custom Provider',
43
+ retryDelay,
44
+ } = config
38
45
  return ({ retryCount: defaultRetryCount }) =>
39
46
  createTransport({
40
47
  key,
48
+ methods,
41
49
  name,
42
50
  request: provider.request.bind(provider),
43
51
  retryCount: config.retryCount ?? defaultRetryCount,
@@ -43,6 +43,8 @@ export type HttpTransportConfig = {
43
43
  onFetchResponse?: HttpRpcClientOptions['onResponse'] | undefined
44
44
  /** The key of the HTTP transport. */
45
45
  key?: TransportConfig['key'] | undefined
46
+ /** Methods to include or exclude from executing RPC requests. */
47
+ methods?: TransportConfig['methods'] | undefined
46
48
  /** The name of the HTTP transport. */
47
49
  name?: TransportConfig['name'] | undefined
48
50
  /** The max number of times to retry. */
@@ -78,6 +80,7 @@ export function http(
78
80
  batch,
79
81
  fetchOptions,
80
82
  key = 'http',
83
+ methods,
81
84
  name = 'HTTP JSON-RPC',
82
85
  onFetchRequest,
83
86
  onFetchResponse,
@@ -101,6 +104,7 @@ export function http(
101
104
  return createTransport(
102
105
  {
103
106
  key,
107
+ methods,
104
108
  name,
105
109
  async request({ method, params }) {
106
110
  const body = { method, params }
@@ -40,6 +40,8 @@ type IpcTransportSubscribe = {
40
40
  export type IpcTransportConfig = {
41
41
  /** The key of the Ipc transport. */
42
42
  key?: TransportConfig['key'] | undefined
43
+ /** Methods to include or exclude from executing RPC requests. */
44
+ methods?: TransportConfig['methods'] | undefined
43
45
  /** The name of the Ipc transport. */
44
46
  name?: TransportConfig['name'] | undefined
45
47
  /**
@@ -75,13 +77,20 @@ export function ipc(
75
77
  path: string,
76
78
  config: IpcTransportConfig = {},
77
79
  ): IpcTransport {
78
- const { key = 'ipc', name = 'IPC JSON-RPC', reconnect, retryDelay } = config
80
+ const {
81
+ key = 'ipc',
82
+ methods,
83
+ name = 'IPC JSON-RPC',
84
+ reconnect,
85
+ retryDelay,
86
+ } = config
79
87
  return ({ retryCount: retryCount_, timeout: timeout_ }) => {
80
88
  const retryCount = config.retryCount ?? retryCount_
81
89
  const timeout = timeout_ ?? config.timeout ?? 10_000
82
90
  return createTransport(
83
91
  {
84
92
  key,
93
+ methods,
85
94
  name,
86
95
  async request({ method, params }) {
87
96
  const body = { method, params }
@@ -49,6 +49,8 @@ export type WebSocketTransportConfig = {
49
49
  keepAlive?: GetWebSocketRpcClientOptions['keepAlive'] | undefined
50
50
  /** The key of the WebSocket transport. */
51
51
  key?: TransportConfig['key'] | undefined
52
+ /** Methods to include or exclude from executing RPC requests. */
53
+ methods?: TransportConfig['methods'] | undefined
52
54
  /** The name of the WebSocket transport. */
53
55
  name?: TransportConfig['name'] | undefined
54
56
  /**
@@ -92,6 +94,7 @@ export function webSocket(
92
94
  const {
93
95
  keepAlive,
94
96
  key = 'webSocket',
97
+ methods,
95
98
  name = 'WebSocket JSON-RPC',
96
99
  reconnect,
97
100
  retryDelay,
@@ -104,6 +107,7 @@ export function webSocket(
104
107
  return createTransport(
105
108
  {
106
109
  key,
110
+ methods,
107
111
  name,
108
112
  async request({ method, params }) {
109
113
  const body = { method, params }
package/errors/rpc.ts CHANGED
@@ -309,7 +309,7 @@ export class MethodNotSupportedRpcError extends RpcError {
309
309
  super(cause, {
310
310
  code: MethodNotSupportedRpcError.code,
311
311
  name: 'MethodNotSupportedRpcError',
312
- shortMessage: `Method${method ? ` "${method}"` : ''} is not implemented.`,
312
+ shortMessage: `Method${method ? ` "${method}"` : ''} is not supported.`,
313
313
  })
314
314
  }
315
315
  }
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.22.9'
1
+ export const version = '2.22.11'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.22.9",
4
+ "version": "2.22.11",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
package/types/eip1193.ts CHANGED
@@ -1922,11 +1922,22 @@ export type EIP1193Parameters<
1922
1922
  }
1923
1923
 
1924
1924
  export type EIP1193RequestOptions = {
1925
- // Deduplicate in-flight requests.
1925
+ /** Deduplicate in-flight requests. */
1926
1926
  dedupe?: boolean | undefined
1927
- // The base delay (in ms) between retries.
1927
+ /** Methods to include or exclude from executing RPC requests. */
1928
+ methods?:
1929
+ | OneOf<
1930
+ | {
1931
+ include?: string[] | undefined
1932
+ }
1933
+ | {
1934
+ exclude?: string[] | undefined
1935
+ }
1936
+ >
1937
+ | undefined
1938
+ /** The base delay (in ms) between retries. */
1928
1939
  retryDelay?: number | undefined
1929
- // The max number of times to retry.
1940
+ /** The max number of times to retry. */
1930
1941
  retryCount?: number | undefined
1931
1942
  /** Unique identifier for the request. */
1932
1943
  uid?: string | undefined
@@ -100,6 +100,7 @@ export function buildRequest<request extends (args: any) => Promise<any>>(
100
100
  return async (args, overrideOptions = {}) => {
101
101
  const {
102
102
  dedupe = false,
103
+ methods,
103
104
  retryDelay = 150,
104
105
  retryCount = 3,
105
106
  uid,
@@ -107,6 +108,17 @@ export function buildRequest<request extends (args: any) => Promise<any>>(
107
108
  ...options,
108
109
  ...overrideOptions,
109
110
  }
111
+
112
+ const { method } = args
113
+ if (methods?.exclude?.includes(method))
114
+ throw new MethodNotSupportedRpcError(new Error('method not supported'), {
115
+ method,
116
+ })
117
+ if (methods?.include && !methods.include.includes(method))
118
+ throw new MethodNotSupportedRpcError(new Error('method not supported'), {
119
+ method,
120
+ })
121
+
110
122
  const requestId = dedupe
111
123
  ? keccak256(stringToHex(`${uid}.${stringify(args)}`))
112
124
  : undefined