viem 2.10.11 → 2.11.1

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 (282) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/_cjs/actions/public/waitForTransactionReceipt.js +9 -3
  3. package/_cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
  4. package/_cjs/celo/formatters.js +1 -10
  5. package/_cjs/celo/formatters.js.map +1 -1
  6. package/_cjs/celo/serializers.js +0 -25
  7. package/_cjs/celo/serializers.js.map +1 -1
  8. package/_cjs/celo/utils.js +2 -15
  9. package/_cjs/celo/utils.js.map +1 -1
  10. package/_cjs/errors/version.js +1 -1
  11. package/_cjs/errors/version.js.map +1 -1
  12. package/_cjs/zksync/actions/estimateFee.js +26 -0
  13. package/_cjs/zksync/actions/estimateFee.js.map +1 -0
  14. package/_cjs/zksync/actions/estimateGasL1ToL2.js +20 -0
  15. package/_cjs/zksync/actions/estimateGasL1ToL2.js.map +1 -0
  16. package/_cjs/zksync/actions/getAllBalances.js +19 -0
  17. package/_cjs/zksync/actions/getAllBalances.js.map +1 -0
  18. package/_cjs/zksync/actions/getBaseTokenL1Address.js +9 -0
  19. package/_cjs/zksync/actions/getBaseTokenL1Address.js.map +1 -0
  20. package/_cjs/zksync/actions/getBlockDetails.js +12 -0
  21. package/_cjs/zksync/actions/getBlockDetails.js.map +1 -0
  22. package/_cjs/zksync/actions/getBridgehubContractAddress.js +9 -0
  23. package/_cjs/zksync/actions/getBridgehubContractAddress.js.map +1 -0
  24. package/_cjs/zksync/actions/getDefaultBridgeAddresses.js +13 -0
  25. package/_cjs/zksync/actions/getDefaultBridgeAddresses.js.map +1 -0
  26. package/_cjs/zksync/actions/getL1Allowance.js +19 -0
  27. package/_cjs/zksync/actions/getL1Allowance.js.map +1 -0
  28. package/_cjs/zksync/actions/getL1Balance.js +23 -0
  29. package/_cjs/zksync/actions/getL1Balance.js.map +1 -0
  30. package/_cjs/zksync/actions/getL1BatchBlockRange.js +13 -0
  31. package/_cjs/zksync/actions/getL1BatchBlockRange.js.map +1 -0
  32. package/_cjs/zksync/actions/getL1BatchDetails.js +12 -0
  33. package/_cjs/zksync/actions/getL1BatchDetails.js.map +1 -0
  34. package/_cjs/zksync/actions/getL1BatchNumber.js +9 -0
  35. package/_cjs/zksync/actions/getL1BatchNumber.js.map +1 -0
  36. package/_cjs/zksync/actions/getL1ChainId.js +9 -0
  37. package/_cjs/zksync/actions/getL1ChainId.js.map +1 -0
  38. package/_cjs/zksync/actions/getL1TokenBalance.js +24 -0
  39. package/_cjs/zksync/actions/getL1TokenBalance.js.map +1 -0
  40. package/_cjs/zksync/actions/getLogProof.js +12 -0
  41. package/_cjs/zksync/actions/getLogProof.js.map +1 -0
  42. package/_cjs/zksync/actions/getMainContractAddress.js +9 -0
  43. package/_cjs/zksync/actions/getMainContractAddress.js.map +1 -0
  44. package/_cjs/zksync/actions/getRawBlockTransactions.js +13 -0
  45. package/_cjs/zksync/actions/getRawBlockTransactions.js.map +1 -0
  46. package/_cjs/zksync/actions/getTestnetPaymasterAddress.js +9 -0
  47. package/_cjs/zksync/actions/getTestnetPaymasterAddress.js.map +1 -0
  48. package/_cjs/zksync/actions/getTransactionDetails.js +12 -0
  49. package/_cjs/zksync/actions/getTransactionDetails.js.map +1 -0
  50. package/_cjs/zksync/constants/address.js +4 -1
  51. package/_cjs/zksync/constants/address.js.map +1 -1
  52. package/_cjs/zksync/decorators/publicL1.js +15 -0
  53. package/_cjs/zksync/decorators/publicL1.js.map +1 -0
  54. package/_cjs/zksync/decorators/publicL2.js +43 -0
  55. package/_cjs/zksync/decorators/publicL2.js.map +1 -0
  56. package/_cjs/zksync/errors/token-is-eth.js +17 -0
  57. package/_cjs/zksync/errors/token-is-eth.js.map +1 -0
  58. package/_cjs/zksync/index.js +41 -3
  59. package/_cjs/zksync/index.js.map +1 -1
  60. package/_cjs/zksync/types/eip1193.js +3 -0
  61. package/_cjs/zksync/types/eip1193.js.map +1 -0
  62. package/_cjs/zksync/types/proof.js +3 -0
  63. package/_cjs/zksync/types/proof.js.map +1 -0
  64. package/_cjs/zksync/utils/camelCaseKeys.js +17 -0
  65. package/_cjs/zksync/utils/camelCaseKeys.js.map +1 -0
  66. package/_cjs/zksync/utils/isEth.js +17 -0
  67. package/_cjs/zksync/utils/isEth.js.map +1 -0
  68. package/_cjs/zksync/utils/paymaster/getApprovalBasedPaymasterInput.js +4 -3
  69. package/_cjs/zksync/utils/paymaster/getApprovalBasedPaymasterInput.js.map +1 -1
  70. package/_cjs/zksync/utils/paymaster/getGeneralPaymasterInput.js +4 -3
  71. package/_cjs/zksync/utils/paymaster/getGeneralPaymasterInput.js.map +1 -1
  72. package/_esm/actions/public/waitForTransactionReceipt.js +9 -3
  73. package/_esm/actions/public/waitForTransactionReceipt.js.map +1 -1
  74. package/_esm/celo/formatters.js +2 -11
  75. package/_esm/celo/formatters.js.map +1 -1
  76. package/_esm/celo/serializers.js +1 -29
  77. package/_esm/celo/serializers.js.map +1 -1
  78. package/_esm/celo/utils.js +1 -15
  79. package/_esm/celo/utils.js.map +1 -1
  80. package/_esm/errors/version.js +1 -1
  81. package/_esm/errors/version.js.map +1 -1
  82. package/_esm/zksync/actions/estimateFee.js +22 -0
  83. package/_esm/zksync/actions/estimateFee.js.map +1 -0
  84. package/_esm/zksync/actions/estimateGasL1ToL2.js +16 -0
  85. package/_esm/zksync/actions/estimateGasL1ToL2.js.map +1 -0
  86. package/_esm/zksync/actions/getAllBalances.js +15 -0
  87. package/_esm/zksync/actions/getAllBalances.js.map +1 -0
  88. package/_esm/zksync/actions/getBaseTokenL1Address.js +5 -0
  89. package/_esm/zksync/actions/getBaseTokenL1Address.js.map +1 -0
  90. package/_esm/zksync/actions/getBlockDetails.js +8 -0
  91. package/_esm/zksync/actions/getBlockDetails.js.map +1 -0
  92. package/_esm/zksync/actions/getBridgehubContractAddress.js +5 -0
  93. package/_esm/zksync/actions/getBridgehubContractAddress.js.map +1 -0
  94. package/_esm/zksync/actions/getDefaultBridgeAddresses.js +9 -0
  95. package/_esm/zksync/actions/getDefaultBridgeAddresses.js.map +1 -0
  96. package/_esm/zksync/actions/getL1Allowance.js +15 -0
  97. package/_esm/zksync/actions/getL1Allowance.js.map +1 -0
  98. package/_esm/zksync/actions/getL1Balance.js +19 -0
  99. package/_esm/zksync/actions/getL1Balance.js.map +1 -0
  100. package/_esm/zksync/actions/getL1BatchBlockRange.js +9 -0
  101. package/_esm/zksync/actions/getL1BatchBlockRange.js.map +1 -0
  102. package/_esm/zksync/actions/getL1BatchDetails.js +8 -0
  103. package/_esm/zksync/actions/getL1BatchDetails.js.map +1 -0
  104. package/_esm/zksync/actions/getL1BatchNumber.js +5 -0
  105. package/_esm/zksync/actions/getL1BatchNumber.js.map +1 -0
  106. package/_esm/zksync/actions/getL1ChainId.js +5 -0
  107. package/_esm/zksync/actions/getL1ChainId.js.map +1 -0
  108. package/_esm/zksync/actions/getL1TokenBalance.js +20 -0
  109. package/_esm/zksync/actions/getL1TokenBalance.js.map +1 -0
  110. package/_esm/zksync/actions/getLogProof.js +8 -0
  111. package/_esm/zksync/actions/getLogProof.js.map +1 -0
  112. package/_esm/zksync/actions/getMainContractAddress.js +5 -0
  113. package/_esm/zksync/actions/getMainContractAddress.js.map +1 -0
  114. package/_esm/zksync/actions/getRawBlockTransactions.js +9 -0
  115. package/_esm/zksync/actions/getRawBlockTransactions.js.map +1 -0
  116. package/_esm/zksync/actions/getTestnetPaymasterAddress.js +5 -0
  117. package/_esm/zksync/actions/getTestnetPaymasterAddress.js.map +1 -0
  118. package/_esm/zksync/actions/getTransactionDetails.js +8 -0
  119. package/_esm/zksync/actions/getTransactionDetails.js.map +1 -0
  120. package/_esm/zksync/constants/address.js +3 -0
  121. package/_esm/zksync/constants/address.js.map +1 -1
  122. package/_esm/zksync/decorators/publicL1.js +12 -0
  123. package/_esm/zksync/decorators/publicL1.js.map +1 -0
  124. package/_esm/zksync/decorators/publicL2.js +39 -0
  125. package/_esm/zksync/decorators/publicL2.js.map +1 -0
  126. package/_esm/zksync/errors/token-is-eth.js +13 -0
  127. package/_esm/zksync/errors/token-is-eth.js.map +1 -0
  128. package/_esm/zksync/index.js +20 -1
  129. package/_esm/zksync/index.js.map +1 -1
  130. package/_esm/zksync/types/eip1193.js +2 -0
  131. package/_esm/zksync/types/eip1193.js.map +1 -0
  132. package/_esm/zksync/types/proof.js +2 -0
  133. package/_esm/zksync/types/proof.js.map +1 -0
  134. package/_esm/zksync/utils/camelCaseKeys.js +13 -0
  135. package/_esm/zksync/utils/camelCaseKeys.js.map +1 -0
  136. package/_esm/zksync/utils/isEth.js +13 -0
  137. package/_esm/zksync/utils/isEth.js.map +1 -0
  138. package/_esm/zksync/utils/paymaster/getApprovalBasedPaymasterInput.js +2 -1
  139. package/_esm/zksync/utils/paymaster/getApprovalBasedPaymasterInput.js.map +1 -1
  140. package/_esm/zksync/utils/paymaster/getGeneralPaymasterInput.js +2 -1
  141. package/_esm/zksync/utils/paymaster/getGeneralPaymasterInput.js.map +1 -1
  142. package/_types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
  143. package/_types/celo/chainConfig.d.ts +58 -526
  144. package/_types/celo/chainConfig.d.ts.map +1 -1
  145. package/_types/celo/formatters.d.ts +29 -263
  146. package/_types/celo/formatters.d.ts.map +1 -1
  147. package/_types/celo/index.d.ts +1 -1
  148. package/_types/celo/index.d.ts.map +1 -1
  149. package/_types/celo/serializers.d.ts +2 -3
  150. package/_types/celo/serializers.d.ts.map +1 -1
  151. package/_types/celo/types.d.ts +5 -29
  152. package/_types/celo/types.d.ts.map +1 -1
  153. package/_types/celo/utils.d.ts +1 -2
  154. package/_types/celo/utils.d.ts.map +1 -1
  155. package/_types/chains/definitions/celo.d.ts +58 -526
  156. package/_types/chains/definitions/celo.d.ts.map +1 -1
  157. package/_types/chains/definitions/celoAlfajores.d.ts +58 -526
  158. package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
  159. package/_types/chains/definitions/lisk.d.ts +8 -8
  160. package/_types/chains/definitions/playfiAlbireo.d.ts +8 -8
  161. package/_types/chains/definitions/zkSync.d.ts +8 -8
  162. package/_types/chains/definitions/zkSyncInMemoryNode.d.ts +8 -8
  163. package/_types/chains/definitions/zkSyncLocalNode.d.ts +8 -8
  164. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +8 -8
  165. package/_types/chains/definitions/zkSyncTestnet.d.ts +8 -8
  166. package/_types/chains/index.d.ts +1 -1
  167. package/_types/chains/index.d.ts.map +1 -1
  168. package/_types/errors/version.d.ts +1 -1
  169. package/_types/errors/version.d.ts.map +1 -1
  170. package/_types/zksync/actions/estimateFee.d.ts +11 -0
  171. package/_types/zksync/actions/estimateFee.d.ts.map +1 -0
  172. package/_types/zksync/actions/estimateGasL1ToL2.d.ts +10 -0
  173. package/_types/zksync/actions/estimateGasL1ToL2.d.ts.map +1 -0
  174. package/_types/zksync/actions/getAllBalances.d.ts +12 -0
  175. package/_types/zksync/actions/getAllBalances.d.ts.map +1 -0
  176. package/_types/zksync/actions/getBaseTokenL1Address.d.ts +9 -0
  177. package/_types/zksync/actions/getBaseTokenL1Address.d.ts.map +1 -0
  178. package/_types/zksync/actions/getBlockDetails.d.ts +10 -0
  179. package/_types/zksync/actions/getBlockDetails.d.ts.map +1 -0
  180. package/_types/zksync/actions/getBridgehubContractAddress.d.ts +9 -0
  181. package/_types/zksync/actions/getBridgehubContractAddress.d.ts.map +1 -0
  182. package/_types/zksync/actions/getDefaultBridgeAddresses.d.ts +9 -0
  183. package/_types/zksync/actions/getDefaultBridgeAddresses.d.ts.map +1 -0
  184. package/_types/zksync/actions/getL1Allowance.d.ts +17 -0
  185. package/_types/zksync/actions/getL1Allowance.d.ts.map +1 -0
  186. package/_types/zksync/actions/getL1Balance.d.ts +23 -0
  187. package/_types/zksync/actions/getL1Balance.d.ts.map +1 -0
  188. package/_types/zksync/actions/getL1BatchBlockRange.d.ts +11 -0
  189. package/_types/zksync/actions/getL1BatchBlockRange.d.ts.map +1 -0
  190. package/_types/zksync/actions/getL1BatchDetails.d.ts +10 -0
  191. package/_types/zksync/actions/getL1BatchDetails.d.ts.map +1 -0
  192. package/_types/zksync/actions/getL1BatchNumber.d.ts +9 -0
  193. package/_types/zksync/actions/getL1BatchNumber.d.ts.map +1 -0
  194. package/_types/zksync/actions/getL1ChainId.d.ts +9 -0
  195. package/_types/zksync/actions/getL1ChainId.d.ts.map +1 -0
  196. package/_types/zksync/actions/getL1TokenBalance.d.ts +24 -0
  197. package/_types/zksync/actions/getL1TokenBalance.d.ts.map +1 -0
  198. package/_types/zksync/actions/getLogProof.d.ts +14 -0
  199. package/_types/zksync/actions/getLogProof.d.ts.map +1 -0
  200. package/_types/zksync/actions/getMainContractAddress.d.ts +9 -0
  201. package/_types/zksync/actions/getMainContractAddress.d.ts.map +1 -0
  202. package/_types/zksync/actions/getRawBlockTransactions.d.ts +11 -0
  203. package/_types/zksync/actions/getRawBlockTransactions.d.ts.map +1 -0
  204. package/_types/zksync/actions/getTestnetPaymasterAddress.d.ts +9 -0
  205. package/_types/zksync/actions/getTestnetPaymasterAddress.d.ts.map +1 -0
  206. package/_types/zksync/actions/getTransactionDetails.d.ts +13 -0
  207. package/_types/zksync/actions/getTransactionDetails.d.ts.map +1 -0
  208. package/_types/zksync/chainConfig.d.ts +8 -8
  209. package/_types/zksync/constants/address.d.ts +3 -0
  210. package/_types/zksync/constants/address.d.ts.map +1 -1
  211. package/_types/zksync/decorators/publicL1.d.ts +145 -0
  212. package/_types/zksync/decorators/publicL1.d.ts.map +1 -0
  213. package/_types/zksync/decorators/publicL2.d.ts +322 -0
  214. package/_types/zksync/decorators/publicL2.d.ts.map +1 -0
  215. package/_types/zksync/errors/token-is-eth.d.ts +9 -0
  216. package/_types/zksync/errors/token-is-eth.d.ts.map +1 -0
  217. package/_types/zksync/formatters.d.ts +8 -8
  218. package/_types/zksync/index.d.ts +21 -2
  219. package/_types/zksync/index.d.ts.map +1 -1
  220. package/_types/zksync/types/block.d.ts +30 -1
  221. package/_types/zksync/types/block.d.ts.map +1 -1
  222. package/_types/zksync/types/contract.d.ts +6 -0
  223. package/_types/zksync/types/contract.d.ts.map +1 -1
  224. package/_types/zksync/types/eip1193.d.ts +152 -0
  225. package/_types/zksync/types/eip1193.d.ts.map +1 -0
  226. package/_types/zksync/types/fee.d.ts +6 -0
  227. package/_types/zksync/types/fee.d.ts.map +1 -1
  228. package/_types/zksync/types/proof.d.ts +7 -0
  229. package/_types/zksync/types/proof.d.ts.map +1 -0
  230. package/_types/zksync/types/transaction.d.ts +65 -5
  231. package/_types/zksync/types/transaction.d.ts.map +1 -1
  232. package/_types/zksync/utils/camelCaseKeys.d.ts +2 -0
  233. package/_types/zksync/utils/camelCaseKeys.d.ts.map +1 -0
  234. package/_types/zksync/utils/isEth.d.ts +3 -0
  235. package/_types/zksync/utils/isEth.d.ts.map +1 -0
  236. package/_types/zksync/utils/paymaster/getApprovalBasedPaymasterInput.d.ts +1 -1
  237. package/_types/zksync/utils/paymaster/getApprovalBasedPaymasterInput.d.ts.map +1 -1
  238. package/_types/zksync/utils/paymaster/getGeneralPaymasterInput.d.ts +1 -1
  239. package/_types/zksync/utils/paymaster/getGeneralPaymasterInput.d.ts.map +1 -1
  240. package/actions/public/waitForTransactionReceipt.ts +13 -4
  241. package/celo/formatters.ts +3 -11
  242. package/celo/index.ts +0 -2
  243. package/celo/serializers.ts +2 -50
  244. package/celo/types.ts +3 -38
  245. package/celo/utils.ts +1 -24
  246. package/chains/index.ts +0 -2
  247. package/errors/version.ts +1 -1
  248. package/package.json +1 -1
  249. package/zksync/actions/estimateFee.ts +46 -0
  250. package/zksync/actions/estimateGasL1ToL2.ts +38 -0
  251. package/zksync/actions/getAllBalances.ts +33 -0
  252. package/zksync/actions/getBaseTokenL1Address.ts +18 -0
  253. package/zksync/actions/getBlockDetails.ts +27 -0
  254. package/zksync/actions/getBridgehubContractAddress.ts +18 -0
  255. package/zksync/actions/getDefaultBridgeAddresses.ts +22 -0
  256. package/zksync/actions/getL1Allowance.ts +43 -0
  257. package/zksync/actions/getL1Balance.ts +68 -0
  258. package/zksync/actions/getL1BatchBlockRange.ts +26 -0
  259. package/zksync/actions/getL1BatchDetails.ts +27 -0
  260. package/zksync/actions/getL1BatchNumber.ts +18 -0
  261. package/zksync/actions/getL1ChainId.ts +18 -0
  262. package/zksync/actions/getL1TokenBalance.ts +63 -0
  263. package/zksync/actions/getLogProof.ts +28 -0
  264. package/zksync/actions/getMainContractAddress.ts +18 -0
  265. package/zksync/actions/getRawBlockTransactions.ts +26 -0
  266. package/zksync/actions/getTestnetPaymasterAddress.ts +18 -0
  267. package/zksync/actions/getTransactionDetails.ts +27 -0
  268. package/zksync/constants/address.ts +9 -0
  269. package/zksync/decorators/publicL1.ts +180 -0
  270. package/zksync/decorators/publicL2.ts +443 -0
  271. package/zksync/errors/token-is-eth.ts +16 -0
  272. package/zksync/index.ts +85 -6
  273. package/zksync/types/block.ts +37 -1
  274. package/zksync/types/contract.ts +8 -0
  275. package/zksync/types/eip1193.ts +155 -0
  276. package/zksync/types/fee.ts +7 -0
  277. package/zksync/types/proof.ts +7 -0
  278. package/zksync/types/transaction.ts +84 -10
  279. package/zksync/utils/camelCaseKeys.ts +11 -0
  280. package/zksync/utils/isEth.ts +20 -0
  281. package/zksync/utils/paymaster/getApprovalBasedPaymasterInput.ts +5 -2
  282. package/zksync/utils/paymaster/getGeneralPaymasterInput.ts +5 -2
package/celo/types.ts CHANGED
@@ -76,7 +76,6 @@ export type CeloRpcTransaction<TPending extends boolean = boolean> =
76
76
 
77
77
  export type CeloRpcTransactionRequest =
78
78
  | RpcTransactionRequest
79
- | RpcTransactionRequestCIP42
80
79
  | RpcTransactionRequestCIP64
81
80
 
82
81
  export type CeloTransaction<TPending extends boolean = boolean> =
@@ -86,13 +85,10 @@ export type CeloTransaction<TPending extends boolean = boolean> =
86
85
 
87
86
  export type CeloTransactionRequest =
88
87
  | TransactionRequest
89
- | TransactionRequestCIP42
90
88
  | TransactionRequestCIP64
91
89
 
92
90
  export type CeloTransactionSerializable = OneOf<
93
- | TransactionSerializable
94
- | TransactionSerializableCIP42
95
- | TransactionSerializableCIP64
91
+ TransactionSerializable | TransactionSerializableCIP64
96
92
  >
97
93
 
98
94
  export type CeloTransactionSerialized<
@@ -113,8 +109,6 @@ type RpcTransaction<TPending extends boolean = boolean> =
113
109
 
114
110
  type RpcTransactionRequest = RpcTransactionRequest_ & {
115
111
  feeCurrency?: Address | undefined
116
- gatewayFee?: Hex | undefined
117
- gatewayFeeRecipient?: Address | undefined
118
112
  }
119
113
 
120
114
  export type RpcTransactionCIP42<TPending extends boolean = boolean> = Omit<
@@ -139,18 +133,6 @@ export type RpcTransactionCIP64<TPending extends boolean = boolean> = Omit<
139
133
  type: '0x7b'
140
134
  }
141
135
 
142
- export type RpcTransactionRequestCIP42 = TransactionRequestBase<
143
- Quantity,
144
- Index
145
- > &
146
- ExactPartial<FeeValuesEIP1559<Quantity>> & {
147
- accessList?: AccessList | undefined
148
- feeCurrency?: Address | undefined
149
- gatewayFee?: Hex | undefined
150
- gatewayFeeRecipient?: Address | undefined
151
- type?: '0x7c' | undefined
152
- }
153
-
154
136
  export type RpcTransactionRequestCIP64 = TransactionRequestBase<
155
137
  Quantity,
156
138
  Index
@@ -158,8 +140,6 @@ export type RpcTransactionRequestCIP64 = TransactionRequestBase<
158
140
  ExactPartial<FeeValuesEIP1559<Quantity>> & {
159
141
  accessList?: AccessList | undefined
160
142
  feeCurrency?: Address | undefined
161
- gatewayFee?: undefined
162
- gatewayFeeRecipient?: undefined
163
143
  type?: '0x7b' | undefined
164
144
  }
165
145
 
@@ -169,8 +149,8 @@ type Transaction<TPending extends boolean = boolean> = Transaction_<
169
149
  TPending
170
150
  > & {
171
151
  feeCurrency: Address | null
172
- gatewayFee: bigint | null
173
- gatewayFeeRecipient: Address | null
152
+ gatewayFee?: undefined
153
+ gatewayFeeRecipient?: undefined
174
154
  }
175
155
 
176
156
  export type TransactionCIP42<TPending extends boolean = boolean> =
@@ -193,25 +173,12 @@ export type TransactionCIP64<TPending extends boolean = boolean> =
193
173
 
194
174
  type TransactionRequest = TransactionRequest_ & {
195
175
  feeCurrency?: Address | undefined
196
- gatewayFee?: bigint | undefined
197
- gatewayFeeRecipient?: Address | undefined
198
176
  }
199
177
 
200
- export type TransactionRequestCIP42 = TransactionRequestBase &
201
- ExactPartial<FeeValuesEIP1559> & {
202
- accessList?: AccessList | undefined
203
- feeCurrency?: Address | undefined
204
- gatewayFee?: bigint | undefined
205
- gatewayFeeRecipient?: Address | undefined
206
- type?: 'cip42' | undefined
207
- }
208
-
209
178
  export type TransactionRequestCIP64 = TransactionRequestBase &
210
179
  ExactPartial<FeeValuesEIP1559> & {
211
180
  accessList?: AccessList | undefined
212
181
  feeCurrency?: Address | undefined
213
- gatewayFee?: undefined
214
- gatewayFeeRecipient?: undefined
215
182
  type?: 'cip64' | undefined
216
183
  }
217
184
 
@@ -235,8 +202,6 @@ export type TransactionSerializableCIP64<
235
202
  ExactPartial<FeeValuesEIP1559<TQuantity>> & {
236
203
  accessList?: AccessList | undefined
237
204
  feeCurrency?: Address | undefined
238
- gatewayFee?: undefined
239
- gatewayFeeRecipient?: undefined
240
205
  chainId: number
241
206
  type?: 'cip64' | undefined
242
207
  }
package/celo/utils.ts CHANGED
@@ -3,7 +3,6 @@ import { trim } from '../utils/data/trim.js'
3
3
  import type {
4
4
  CeloTransactionRequest,
5
5
  CeloTransactionSerializable,
6
- TransactionSerializableCIP42,
7
6
  TransactionSerializableCIP64,
8
7
  } from './types.js'
9
8
 
@@ -38,23 +37,6 @@ export function isEIP1559(
38
37
  )
39
38
  }
40
39
 
41
- // process as CIP42 if any of these fields are present. realistically gatewayfee is not used but is part of spec
42
- export function isCIP42(
43
- transaction: CeloTransactionSerializable | CeloTransactionRequest,
44
- ): transaction is TransactionSerializableCIP42 {
45
- // Enable end-user to force the tx to be considered as a cip42
46
- if (transaction.type === 'cip42') {
47
- return true
48
- }
49
-
50
- return (
51
- isEIP1559(transaction) &&
52
- (isPresent(transaction.feeCurrency) ||
53
- isPresent(transaction.gatewayFeeRecipient) ||
54
- isPresent(transaction.gatewayFee))
55
- )
56
- }
57
-
58
40
  export function isCIP64(
59
41
  transaction: CeloTransactionSerializable | CeloTransactionRequest,
60
42
  ): transaction is TransactionSerializableCIP64 {
@@ -72,10 +54,5 @@ export function isCIP64(
72
54
  return true
73
55
  }
74
56
 
75
- return (
76
- isEIP1559(transaction) &&
77
- isPresent(transaction.feeCurrency) &&
78
- isEmpty(transaction.gatewayFee) &&
79
- isEmpty(transaction.gatewayFeeRecipient)
80
- )
57
+ return isEIP1559(transaction) && isPresent(transaction.feeCurrency)
81
58
  }
package/chains/index.ts CHANGED
@@ -302,11 +302,9 @@ export type {
302
302
  CeloTransactionSerialized,
303
303
  RpcTransactionCIP42,
304
304
  RpcTransactionCIP64,
305
- RpcTransactionRequestCIP42,
306
305
  RpcTransactionRequestCIP64,
307
306
  TransactionCIP42,
308
307
  TransactionCIP64,
309
- TransactionRequestCIP42,
310
308
  TransactionRequestCIP64,
311
309
  TransactionSerializableCIP42,
312
310
  TransactionSerializableCIP64,
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.10.11'
1
+ export const version = '2.11.1'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.10.11",
4
+ "version": "2.11.1",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -0,0 +1,46 @@
1
+ import { parseAccount } from '../../accounts/utils/parseAccount.js'
2
+ import type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'
3
+ import type { Client } from '../../clients/createClient.js'
4
+ import type { Transport } from '../../clients/transports/createTransport.js'
5
+ import type { Account } from '../../types/account.js'
6
+ import { hexToBigInt } from '../../utils/encoding/fromHex.js'
7
+ import type { ChainEIP712 } from '../types/chain.js'
8
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
9
+ import type { ZkSyncFee } from '../types/fee.js'
10
+
11
+ export type EstimateFeeParameters<
12
+ chain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
13
+ account extends Account | undefined = Account | undefined,
14
+ chainOverride extends ChainEIP712 | undefined = ChainEIP712 | undefined,
15
+ > = SendTransactionParameters<chain, account, chainOverride>
16
+
17
+ export type EstimateFeeReturnType = ZkSyncFee
18
+
19
+ export async function estimateFee<
20
+ chain extends ChainEIP712 | undefined,
21
+ account extends Account | undefined,
22
+ >(
23
+ client: Client<Transport, chain, account, PublicZkSyncRpcSchema>,
24
+ parameters: EstimateFeeParameters<chain, account>,
25
+ ): Promise<EstimateFeeReturnType> {
26
+ const { account: account_, ...request } = parameters
27
+ const account = account_ ? parseAccount(account_) : client.account
28
+
29
+ const formatters = client.chain?.formatters
30
+ const formatted = formatters?.transactionRequest?.format({
31
+ ...request,
32
+ from: account?.address,
33
+ })
34
+
35
+ const result = await client.request({
36
+ method: 'zks_estimateFee',
37
+ params: [formatted],
38
+ })
39
+
40
+ return {
41
+ gasLimit: hexToBigInt(result.gas_limit),
42
+ gasPerPubdataLimit: hexToBigInt(result.gas_per_pubdata_limit),
43
+ maxPriorityFeePerGas: hexToBigInt(result.max_priority_fee_per_gas),
44
+ maxFeePerGas: hexToBigInt(result.max_fee_per_gas),
45
+ }
46
+ }
@@ -0,0 +1,38 @@
1
+ import type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'
2
+ import type { Client } from '../../clients/createClient.js'
3
+ import type { Transport } from '../../clients/transports/createTransport.js'
4
+ import type { Account } from '../../types/account.js'
5
+ import { parseAccount } from '../../utils/accounts.js'
6
+ import type { ChainEIP712 } from '../types/chain.js'
7
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
8
+
9
+ export type EstimateGasL1ToL2Parameters<
10
+ chain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
11
+ account extends Account | undefined = Account | undefined,
12
+ > = SendTransactionParameters<chain, account>
13
+
14
+ export type EstimateGasL1ToL2ReturnType = bigint
15
+
16
+ export async function estimateGasL1ToL2<
17
+ chain extends ChainEIP712 | undefined,
18
+ account extends Account | undefined,
19
+ >(
20
+ client: Client<Transport, chain, account, PublicZkSyncRpcSchema>,
21
+ parameters: EstimateGasL1ToL2Parameters<chain, account>,
22
+ ): Promise<EstimateGasL1ToL2ReturnType> {
23
+ const { account: account_, ...request } = parameters
24
+ const account = account_ ? parseAccount(account_) : client.account
25
+
26
+ const formatters = client.chain?.formatters
27
+ const formatted = formatters?.transactionRequest?.format({
28
+ ...request,
29
+ from: account?.address,
30
+ })
31
+
32
+ const result = await client.request({
33
+ method: 'zks_estimateGasL1ToL2',
34
+ params: [formatted],
35
+ })
36
+
37
+ return result
38
+ }
@@ -0,0 +1,33 @@
1
+ import type { Address } from 'abitype'
2
+ import type { Client } from '../../clients/createClient.js'
3
+ import type { Transport } from '../../clients/transports/createTransport.js'
4
+ import type { Account, GetAccountParameter } from '../../types/account.js'
5
+ import type { Chain } from '../../types/chain.js'
6
+ import { parseAccount } from '../../utils/accounts.js'
7
+ import { hexToBigInt } from '../../utils/encoding/fromHex.js'
8
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
9
+
10
+ export type GetAllBalancesParameters<
11
+ TAccount extends Account | undefined = Account | undefined,
12
+ > = GetAccountParameter<TAccount>
13
+
14
+ export type GetAllBalancesReturnType = { [key: Address]: bigint }
15
+
16
+ export async function getAllBalances<
17
+ TChain extends Chain | undefined,
18
+ TAccount extends Account | undefined,
19
+ >(
20
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
21
+ parameters: GetAllBalancesParameters<TAccount>,
22
+ ): Promise<GetAllBalancesReturnType> {
23
+ const { account: account_ } = parameters
24
+ const account = account_ ? parseAccount(account_) : client.account
25
+ const balances = await client.request({
26
+ method: 'zks_getAllAccountBalances',
27
+ params: [account!.address],
28
+ })
29
+ const convertedBalances: GetAllBalancesReturnType = {}
30
+ for (const token in balances)
31
+ (convertedBalances as any)[token] = hexToBigInt((balances as any)[token])
32
+ return convertedBalances
33
+ }
@@ -0,0 +1,18 @@
1
+ import type { Address } from 'abitype'
2
+ import type { Client } from '../../clients/createClient.js'
3
+ import type { Transport } from '../../clients/transports/createTransport.js'
4
+ import type { Account } from '../../types/account.js'
5
+ import type { Chain } from '../../types/chain.js'
6
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
7
+
8
+ export type GetBaseTokenL1AddressReturnType = Address
9
+
10
+ export async function getBaseTokenL1Address<
11
+ TChain extends Chain | undefined,
12
+ TAccount extends Account | undefined,
13
+ >(
14
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
15
+ ): Promise<GetBaseTokenL1AddressReturnType> {
16
+ const result = await client.request({ method: 'zks_getBaseTokenL1Address' })
17
+ return result
18
+ }
@@ -0,0 +1,27 @@
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 { Chain } from '../../types/chain.js'
5
+ import type {
6
+ ZkSyncBlockDetails,
7
+ ZkSyncNumberParameter,
8
+ } from '../types/block.js'
9
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
10
+
11
+ export type GetBlockDetailsParameters = ZkSyncNumberParameter
12
+
13
+ export type GetBlockDetailsReturnType = ZkSyncBlockDetails
14
+
15
+ export async function getBlockDetails<
16
+ TChain extends Chain | undefined,
17
+ TAccount extends Account | undefined,
18
+ >(
19
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
20
+ parameters: GetBlockDetailsParameters,
21
+ ): Promise<GetBlockDetailsReturnType> {
22
+ const result = await client.request({
23
+ method: 'zks_getBlockDetails',
24
+ params: [parameters.number],
25
+ })
26
+ return result
27
+ }
@@ -0,0 +1,18 @@
1
+ import type { Address } from 'abitype'
2
+ import type { Client } from '../../clients/createClient.js'
3
+ import type { Transport } from '../../clients/transports/createTransport.js'
4
+ import type { Account } from '../../types/account.js'
5
+ import type { Chain } from '../../types/chain.js'
6
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
7
+
8
+ export type GetBridgehubContractAddressReturnType = Address
9
+
10
+ export async function getBridgehubContractAddress<
11
+ TChain extends Chain | undefined,
12
+ TAccount extends Account | undefined,
13
+ >(
14
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
15
+ ): Promise<GetBridgehubContractAddressReturnType> {
16
+ const result = await client.request({ method: 'zks_getBridgehubContract' })
17
+ return result
18
+ }
@@ -0,0 +1,22 @@
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 { Chain } from '../../types/chain.js'
5
+ import type { BridgeContractAddresses } from '../types/contract.js'
6
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
7
+
8
+ export type GetDefaultBridgeAddressesReturnType = BridgeContractAddresses
9
+
10
+ export async function getDefaultBridgeAddresses<
11
+ TChain extends Chain | undefined,
12
+ TAccount extends Account | undefined,
13
+ >(
14
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
15
+ ): Promise<GetDefaultBridgeAddressesReturnType> {
16
+ const addresses = await client.request({ method: 'zks_getBridgeContracts' })
17
+ return {
18
+ erc20L1: addresses.l1Erc20DefaultBridge,
19
+ sharedL1: addresses.l1SharedDefaultBridge,
20
+ sharedL2: addresses.l2SharedDefaultBridge,
21
+ }
22
+ }
@@ -0,0 +1,43 @@
1
+ import type { Address } from 'abitype'
2
+ import { readContract } from '../../actions/public/readContract.js'
3
+ import type { Client } from '../../clients/createClient.js'
4
+ import type { Transport } from '../../clients/transports/createTransport.js'
5
+ import { erc20Abi } from '../../constants/abis.js'
6
+ import type { AccountNotFoundError } from '../../errors/account.js'
7
+ import type { BaseError } from '../../errors/base.js'
8
+ import type { Account, GetAccountParameter } from '../../types/account.js'
9
+ import type { BlockTag } from '../../types/block.js'
10
+ import type { Chain } from '../../types/chain.js'
11
+ import { parseAccount } from '../../utils/accounts.js'
12
+
13
+ export type GetL1AllowanceParameters<
14
+ TAccount extends Account | undefined = Account | undefined,
15
+ > = GetAccountParameter<TAccount> & {
16
+ bridgeAddress: Address
17
+ blockTag?: BlockTag
18
+ token: Address
19
+ }
20
+
21
+ export type GetL1AllowanceReturnType = bigint
22
+
23
+ export type GetL1AllowanceErrorType = AccountNotFoundError | BaseError
24
+
25
+ export async function getL1Allowance<
26
+ TChain extends Chain | undefined,
27
+ TAccount extends Account | undefined,
28
+ >(
29
+ client: Client<Transport, TChain, TAccount>,
30
+ parameters: GetL1AllowanceParameters<TAccount>,
31
+ ): Promise<GetL1AllowanceReturnType> {
32
+ const { token, bridgeAddress, blockTag, account: account_ } = parameters
33
+
34
+ const account = account_ ? parseAccount(account_) : client.account
35
+
36
+ return await readContract(client, {
37
+ abi: erc20Abi,
38
+ address: token,
39
+ functionName: 'allowance',
40
+ args: [account!.address, bridgeAddress],
41
+ blockTag: blockTag,
42
+ })
43
+ }
@@ -0,0 +1,68 @@
1
+ import type { Address } from 'abitype'
2
+ import {
3
+ type GetBalanceParameters,
4
+ getBalance,
5
+ } from '../../actions/public/getBalance.js'
6
+ import type { Client } from '../../clients/createClient.js'
7
+ import type { Transport } from '../../clients/transports/createTransport.js'
8
+ import type { AccountNotFoundError } from '../../errors/account.js'
9
+ import type { BaseError } from '../../errors/base.js'
10
+ import type { Account, GetAccountParameter } from '../../types/account.js'
11
+ import type { BlockTag } from '../../types/block.js'
12
+ import type { Chain } from '../../types/chain.js'
13
+ import { parseAccount } from '../../utils/accounts.js'
14
+ import { legacyEthAddress } from '../constants/address.js'
15
+ import { isEth } from '../utils/isEth.js'
16
+ import {
17
+ type GetL1TokenBalanceParameters,
18
+ getL1TokenBalance,
19
+ } from './getL1TokenBalance.js'
20
+
21
+ export type GetL1BalanceParameters<
22
+ TAccount extends Account | undefined = Account | undefined,
23
+ > = GetAccountParameter<TAccount> & { token?: Address | undefined } & (
24
+ | {
25
+ /** The balance of the account at a block number. */
26
+ blockNumber?: bigint | undefined
27
+ blockTag?: never | undefined
28
+ }
29
+ | {
30
+ blockNumber?: never | undefined
31
+ /** The balance of the account at a block tag. */
32
+ blockTag?: BlockTag | undefined
33
+ }
34
+ )
35
+
36
+ export type GetL1BalanceReturnType = bigint
37
+
38
+ export type GetL1BalanceErrorType = AccountNotFoundError | BaseError
39
+
40
+ export async function getL1Balance<
41
+ TChain extends Chain | undefined,
42
+ TAccount extends Account | undefined,
43
+ >(
44
+ client: Client<Transport, TChain, TAccount>,
45
+ ...[parameters = {}]: TAccount extends undefined
46
+ ? [GetL1BalanceParameters<TAccount>]
47
+ : [GetL1BalanceParameters<TAccount>] | []
48
+ ): Promise<GetL1BalanceReturnType> {
49
+ const {
50
+ account: account_ = client.account,
51
+ blockNumber,
52
+ blockTag,
53
+ token = legacyEthAddress,
54
+ } = parameters
55
+
56
+ const account = account_ ? parseAccount(account_) : undefined
57
+
58
+ if (isEth(token))
59
+ return await getBalance(client, {
60
+ address: account!.address,
61
+ blockNumber,
62
+ blockTag,
63
+ } as GetBalanceParameters)
64
+
65
+ return await getL1TokenBalance(client, {
66
+ ...(parameters as GetL1TokenBalanceParameters<TAccount>),
67
+ })
68
+ }
@@ -0,0 +1,26 @@
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 { Chain } from '../../types/chain.js'
5
+ import { hexToNumber } from '../../utils/encoding/fromHex.js'
6
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
7
+
8
+ export type GetL1BatchBlockRangeParameters = {
9
+ l1BatchNumber: number
10
+ }
11
+
12
+ export type GetL1BatchBlockRangeReturnParameters = [number, number]
13
+
14
+ export async function getL1BatchBlockRange<
15
+ TChain extends Chain | undefined,
16
+ TAccount extends Account | undefined,
17
+ >(
18
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
19
+ parameters: GetL1BatchBlockRangeParameters,
20
+ ): Promise<GetL1BatchBlockRangeReturnParameters> {
21
+ const [number_1, number_2] = await client.request({
22
+ method: 'zks_getL1BatchBlockRange',
23
+ params: [parameters.l1BatchNumber],
24
+ })
25
+ return [hexToNumber(number_1), hexToNumber(number_2)]
26
+ }
@@ -0,0 +1,27 @@
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 { Chain } from '../../types/chain.js'
5
+ import type {
6
+ ZkSyncBatchDetails,
7
+ ZkSyncNumberParameter,
8
+ } from '../types/block.js'
9
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
10
+
11
+ export type GetL1BatchDetailsParameters = ZkSyncNumberParameter
12
+
13
+ export type GetL1BatchDetailsReturnType = ZkSyncBatchDetails
14
+
15
+ export async function getL1BatchDetails<
16
+ TChain extends Chain | undefined,
17
+ TAccount extends Account | undefined,
18
+ >(
19
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
20
+ parameters: GetL1BatchDetailsParameters,
21
+ ): Promise<GetL1BatchDetailsReturnType> {
22
+ const result = await client.request({
23
+ method: 'zks_getL1BatchDetails',
24
+ params: [parameters.number],
25
+ })
26
+ return result
27
+ }
@@ -0,0 +1,18 @@
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 { Chain } from '../../types/chain.js'
5
+ import type { Hex } from '../../types/misc.js'
6
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
7
+
8
+ export type GetL1BatchNumberReturnType = Hex
9
+
10
+ export async function getL1BatchNumber<
11
+ TChain extends Chain | undefined,
12
+ TAccount extends Account | undefined,
13
+ >(
14
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
15
+ ): Promise<GetL1BatchNumberReturnType> {
16
+ const result = await client.request({ method: 'zks_L1BatchNumber' })
17
+ return result
18
+ }
@@ -0,0 +1,18 @@
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 { Chain } from '../../types/chain.js'
5
+ import type { Hex } from '../../types/misc.js'
6
+ import type { PublicZkSyncRpcSchema } from '../types/eip1193.js'
7
+
8
+ export type GetL1ChainIdReturnType = Hex
9
+
10
+ export async function getL1ChainId<
11
+ TChain extends Chain | undefined,
12
+ TAccount extends Account | undefined,
13
+ >(
14
+ client: Client<Transport, TChain, TAccount, PublicZkSyncRpcSchema>,
15
+ ): Promise<GetL1ChainIdReturnType> {
16
+ const result = await client.request({ method: 'zks_L1ChainId' })
17
+ return result
18
+ }
@@ -0,0 +1,63 @@
1
+ import type { Address } from '../../accounts/index.js'
2
+ import { readContract } from '../../actions/index.js'
3
+ import type { Client } from '../../clients/createClient.js'
4
+ import type { Transport } from '../../clients/transports/createTransport.js'
5
+ import { erc20Abi } from '../../constants/abis.js'
6
+ import type { AccountNotFoundError } from '../../errors/account.js'
7
+ import type { BaseError } from '../../errors/base.js'
8
+ import type { Account, GetAccountParameter } from '../../types/account.js'
9
+ import type { BlockTag } from '../../types/block.js'
10
+ import type { Chain } from '../../types/chain.js'
11
+ import { parseAccount } from '../../utils/accounts.js'
12
+ import { TokenIsEthError } from '../errors/token-is-eth.js'
13
+ import { isEth } from '../utils/isEth.js'
14
+
15
+ export type GetL1TokenBalanceParameters<
16
+ TAccount extends Account | undefined = Account | undefined,
17
+ > = GetAccountParameter<TAccount> & { token: Address } & (
18
+ | {
19
+ /** The balance of the account at a block number. */
20
+ blockNumber?: bigint | undefined
21
+ blockTag?: never | undefined
22
+ }
23
+ | {
24
+ blockNumber?: never | undefined
25
+ /** The balance of the account at a block tag. */
26
+ blockTag?: BlockTag | undefined
27
+ }
28
+ )
29
+
30
+ export type GetL1TokenBalanceReturnType = bigint
31
+
32
+ export type GetL1TokenBalanceErrorType =
33
+ | AccountNotFoundError
34
+ | BaseError
35
+ | TokenIsEthError
36
+
37
+ export async function getL1TokenBalance<
38
+ TChain extends Chain | undefined,
39
+ TAccount extends Account | undefined,
40
+ >(
41
+ client: Client<Transport, TChain, TAccount>,
42
+ parameters: GetL1TokenBalanceParameters<TAccount>,
43
+ ): Promise<GetL1TokenBalanceReturnType> {
44
+ const {
45
+ account: account_ = client.account,
46
+ blockTag,
47
+ blockNumber,
48
+ token,
49
+ } = parameters
50
+
51
+ if (isEth(token!)) throw new TokenIsEthError()
52
+
53
+ const account = account_ ? parseAccount(account_) : client.account
54
+
55
+ return await readContract(client, {
56
+ abi: erc20Abi,
57
+ address: token!,
58
+ functionName: 'balanceOf',
59
+ args: [account!.address],
60
+ blockNumber: blockNumber,
61
+ blockTag: blockTag,
62
+ })
63
+ }