viem 2.48.0 → 2.48.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 (296) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/_cjs/actions/public/fillTransaction.js +1 -1
  3. package/_cjs/actions/public/fillTransaction.js.map +1 -1
  4. package/_cjs/actions/wallet/prepareTransactionRequest.js +1 -1
  5. package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
  6. package/_cjs/actions/wallet/signTransaction.js +1 -0
  7. package/_cjs/actions/wallet/signTransaction.js.map +1 -1
  8. package/_cjs/chains/definitions/ancient8Sepolia.js +1 -0
  9. package/_cjs/chains/definitions/ancient8Sepolia.js.map +1 -1
  10. package/_cjs/chains/definitions/artheraTestnet.js +1 -0
  11. package/_cjs/chains/definitions/artheraTestnet.js.map +1 -1
  12. package/_cjs/chains/definitions/autheoTestnet.js +1 -0
  13. package/_cjs/chains/definitions/autheoTestnet.js.map +1 -1
  14. package/_cjs/chains/definitions/codexTestnet.js +1 -0
  15. package/_cjs/chains/definitions/codexTestnet.js.map +1 -1
  16. package/_cjs/chains/definitions/dchainTestnet.js +1 -0
  17. package/_cjs/chains/definitions/dchainTestnet.js.map +1 -1
  18. package/_cjs/chains/definitions/edgelessTestnet.js +1 -0
  19. package/_cjs/chains/definitions/edgelessTestnet.js.map +1 -1
  20. package/_cjs/chains/definitions/edgewareTestnet.js +1 -0
  21. package/_cjs/chains/definitions/edgewareTestnet.js.map +1 -1
  22. package/_cjs/chains/definitions/evmosTestnet.js +1 -0
  23. package/_cjs/chains/definitions/evmosTestnet.js.map +1 -1
  24. package/_cjs/chains/definitions/exSatTestnet.js +1 -0
  25. package/_cjs/chains/definitions/exSatTestnet.js.map +1 -1
  26. package/_cjs/chains/definitions/flowPreviewnet.js +1 -0
  27. package/_cjs/chains/definitions/flowPreviewnet.js.map +1 -1
  28. package/_cjs/chains/definitions/fraxtalTestnet.js +1 -0
  29. package/_cjs/chains/definitions/fraxtalTestnet.js.map +1 -1
  30. package/_cjs/chains/definitions/haqqTestedge2.js +1 -0
  31. package/_cjs/chains/definitions/haqqTestedge2.js.map +1 -1
  32. package/_cjs/chains/definitions/horizenTestnet.js +2 -2
  33. package/_cjs/chains/definitions/horizenTestnet.js.map +1 -1
  34. package/_cjs/chains/definitions/huddle01Testnet.js +1 -0
  35. package/_cjs/chains/definitions/huddle01Testnet.js.map +1 -1
  36. package/_cjs/chains/definitions/humanodeTestnet5.js +1 -0
  37. package/_cjs/chains/definitions/humanodeTestnet5.js.map +1 -1
  38. package/_cjs/chains/definitions/meterTestnet.js +1 -0
  39. package/_cjs/chains/definitions/meterTestnet.js.map +1 -1
  40. package/_cjs/chains/definitions/metisGoerli.js +1 -0
  41. package/_cjs/chains/definitions/metisGoerli.js.map +1 -1
  42. package/_cjs/chains/definitions/metisSepolia.js +1 -0
  43. package/_cjs/chains/definitions/metisSepolia.js.map +1 -1
  44. package/_cjs/chains/definitions/moonbeam.js +1 -1
  45. package/_cjs/chains/definitions/moonbeam.js.map +1 -1
  46. package/_cjs/chains/definitions/moonriver.js +1 -1
  47. package/_cjs/chains/definitions/moonriver.js.map +1 -1
  48. package/_cjs/chains/definitions/otimDevnet.js +1 -0
  49. package/_cjs/chains/definitions/otimDevnet.js.map +1 -1
  50. package/_cjs/chains/definitions/rolluxTestnet.js +1 -0
  51. package/_cjs/chains/definitions/rolluxTestnet.js.map +1 -1
  52. package/_cjs/chains/definitions/swellchainTestnet.js +1 -0
  53. package/_cjs/chains/definitions/swellchainTestnet.js.map +1 -1
  54. package/_cjs/chains/definitions/syscoinTestnet.js +1 -0
  55. package/_cjs/chains/definitions/syscoinTestnet.js.map +1 -1
  56. package/_cjs/chains/definitions/taikoKatla.js +1 -0
  57. package/_cjs/chains/definitions/taikoKatla.js.map +1 -1
  58. package/_cjs/chains/definitions/taikoTestnetSepolia.js +1 -0
  59. package/_cjs/chains/definitions/taikoTestnetSepolia.js.map +1 -1
  60. package/_cjs/chains/definitions/tempoDevnet.js +1 -0
  61. package/_cjs/chains/definitions/tempoDevnet.js.map +1 -1
  62. package/_cjs/chains/definitions/tempoModerato.js +1 -0
  63. package/_cjs/chains/definitions/tempoModerato.js.map +1 -1
  64. package/_cjs/chains/definitions/tron.js +1 -0
  65. package/_cjs/chains/definitions/tron.js.map +1 -1
  66. package/_cjs/chains/definitions/xdcTestnet.js +1 -0
  67. package/_cjs/chains/definitions/xdcTestnet.js.map +1 -1
  68. package/_cjs/chains/definitions/zircuit.js +1 -0
  69. package/_cjs/chains/definitions/zircuit.js.map +1 -1
  70. package/_cjs/chains/definitions/zircuitGarfieldTestnet.js +1 -0
  71. package/_cjs/chains/definitions/zircuitGarfieldTestnet.js.map +1 -1
  72. package/_cjs/chains/definitions/zkLinkNovaSepoliaTestnet.js +1 -0
  73. package/_cjs/chains/definitions/zkLinkNovaSepoliaTestnet.js.map +1 -1
  74. package/_cjs/errors/version.js +1 -1
  75. package/_cjs/op-stack/abis.js +16 -1
  76. package/_cjs/op-stack/abis.js.map +1 -1
  77. package/_cjs/op-stack/actions/getGames.js +14 -5
  78. package/_cjs/op-stack/actions/getGames.js.map +1 -1
  79. package/_cjs/tempo/Account.js +19 -2
  80. package/_cjs/tempo/Account.js.map +1 -1
  81. package/_cjs/tempo/Formatters.js +5 -1
  82. package/_cjs/tempo/Formatters.js.map +1 -1
  83. package/_cjs/tempo/actions/accessKey.js +6 -6
  84. package/_cjs/tempo/actions/accessKey.js.map +1 -1
  85. package/_cjs/utils/buildRequest.js +15 -2
  86. package/_cjs/utils/buildRequest.js.map +1 -1
  87. package/_esm/actions/public/fillTransaction.js +1 -1
  88. package/_esm/actions/public/fillTransaction.js.map +1 -1
  89. package/_esm/actions/wallet/prepareTransactionRequest.js +1 -1
  90. package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  91. package/_esm/actions/wallet/signTransaction.js +1 -0
  92. package/_esm/actions/wallet/signTransaction.js.map +1 -1
  93. package/_esm/chains/definitions/ancient8Sepolia.js +1 -0
  94. package/_esm/chains/definitions/ancient8Sepolia.js.map +1 -1
  95. package/_esm/chains/definitions/artheraTestnet.js +1 -0
  96. package/_esm/chains/definitions/artheraTestnet.js.map +1 -1
  97. package/_esm/chains/definitions/autheoTestnet.js +1 -0
  98. package/_esm/chains/definitions/autheoTestnet.js.map +1 -1
  99. package/_esm/chains/definitions/codexTestnet.js +1 -0
  100. package/_esm/chains/definitions/codexTestnet.js.map +1 -1
  101. package/_esm/chains/definitions/dchainTestnet.js +1 -0
  102. package/_esm/chains/definitions/dchainTestnet.js.map +1 -1
  103. package/_esm/chains/definitions/edgelessTestnet.js +1 -0
  104. package/_esm/chains/definitions/edgelessTestnet.js.map +1 -1
  105. package/_esm/chains/definitions/edgewareTestnet.js +1 -0
  106. package/_esm/chains/definitions/edgewareTestnet.js.map +1 -1
  107. package/_esm/chains/definitions/evmosTestnet.js +1 -0
  108. package/_esm/chains/definitions/evmosTestnet.js.map +1 -1
  109. package/_esm/chains/definitions/exSatTestnet.js +1 -0
  110. package/_esm/chains/definitions/exSatTestnet.js.map +1 -1
  111. package/_esm/chains/definitions/flowPreviewnet.js +1 -0
  112. package/_esm/chains/definitions/flowPreviewnet.js.map +1 -1
  113. package/_esm/chains/definitions/fraxtalTestnet.js +1 -0
  114. package/_esm/chains/definitions/fraxtalTestnet.js.map +1 -1
  115. package/_esm/chains/definitions/haqqTestedge2.js +1 -0
  116. package/_esm/chains/definitions/haqqTestedge2.js.map +1 -1
  117. package/_esm/chains/definitions/horizenTestnet.js +2 -2
  118. package/_esm/chains/definitions/horizenTestnet.js.map +1 -1
  119. package/_esm/chains/definitions/huddle01Testnet.js +1 -0
  120. package/_esm/chains/definitions/huddle01Testnet.js.map +1 -1
  121. package/_esm/chains/definitions/humanodeTestnet5.js +1 -0
  122. package/_esm/chains/definitions/humanodeTestnet5.js.map +1 -1
  123. package/_esm/chains/definitions/meterTestnet.js +1 -0
  124. package/_esm/chains/definitions/meterTestnet.js.map +1 -1
  125. package/_esm/chains/definitions/metisGoerli.js +1 -0
  126. package/_esm/chains/definitions/metisGoerli.js.map +1 -1
  127. package/_esm/chains/definitions/metisSepolia.js +1 -0
  128. package/_esm/chains/definitions/metisSepolia.js.map +1 -1
  129. package/_esm/chains/definitions/moonbeam.js +1 -1
  130. package/_esm/chains/definitions/moonbeam.js.map +1 -1
  131. package/_esm/chains/definitions/moonriver.js +1 -1
  132. package/_esm/chains/definitions/moonriver.js.map +1 -1
  133. package/_esm/chains/definitions/otimDevnet.js +1 -0
  134. package/_esm/chains/definitions/otimDevnet.js.map +1 -1
  135. package/_esm/chains/definitions/rolluxTestnet.js +1 -0
  136. package/_esm/chains/definitions/rolluxTestnet.js.map +1 -1
  137. package/_esm/chains/definitions/swellchainTestnet.js +1 -0
  138. package/_esm/chains/definitions/swellchainTestnet.js.map +1 -1
  139. package/_esm/chains/definitions/syscoinTestnet.js +1 -0
  140. package/_esm/chains/definitions/syscoinTestnet.js.map +1 -1
  141. package/_esm/chains/definitions/taikoKatla.js +1 -0
  142. package/_esm/chains/definitions/taikoKatla.js.map +1 -1
  143. package/_esm/chains/definitions/taikoTestnetSepolia.js +1 -0
  144. package/_esm/chains/definitions/taikoTestnetSepolia.js.map +1 -1
  145. package/_esm/chains/definitions/tempoDevnet.js +1 -0
  146. package/_esm/chains/definitions/tempoDevnet.js.map +1 -1
  147. package/_esm/chains/definitions/tempoModerato.js +1 -0
  148. package/_esm/chains/definitions/tempoModerato.js.map +1 -1
  149. package/_esm/chains/definitions/tron.js +1 -0
  150. package/_esm/chains/definitions/tron.js.map +1 -1
  151. package/_esm/chains/definitions/xdcTestnet.js +1 -0
  152. package/_esm/chains/definitions/xdcTestnet.js.map +1 -1
  153. package/_esm/chains/definitions/zircuit.js +1 -0
  154. package/_esm/chains/definitions/zircuit.js.map +1 -1
  155. package/_esm/chains/definitions/zircuitGarfieldTestnet.js +1 -0
  156. package/_esm/chains/definitions/zircuitGarfieldTestnet.js.map +1 -1
  157. package/_esm/chains/definitions/zkLinkNovaSepoliaTestnet.js +1 -0
  158. package/_esm/chains/definitions/zkLinkNovaSepoliaTestnet.js.map +1 -1
  159. package/_esm/errors/version.js +1 -1
  160. package/_esm/op-stack/abis.js +15 -0
  161. package/_esm/op-stack/abis.js.map +1 -1
  162. package/_esm/op-stack/actions/getGames.js +15 -6
  163. package/_esm/op-stack/actions/getGames.js.map +1 -1
  164. package/_esm/tempo/Account.js +19 -2
  165. package/_esm/tempo/Account.js.map +1 -1
  166. package/_esm/tempo/Formatters.js +5 -1
  167. package/_esm/tempo/Formatters.js.map +1 -1
  168. package/_esm/tempo/actions/accessKey.js +6 -6
  169. package/_esm/tempo/actions/accessKey.js.map +1 -1
  170. package/_esm/utils/buildRequest.js +16 -2
  171. package/_esm/utils/buildRequest.js.map +1 -1
  172. package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
  173. package/_types/chains/definitions/ancient8Sepolia.d.ts +1 -1
  174. package/_types/chains/definitions/ancient8Sepolia.d.ts.map +1 -1
  175. package/_types/chains/definitions/artheraTestnet.d.ts +1 -1
  176. package/_types/chains/definitions/artheraTestnet.d.ts.map +1 -1
  177. package/_types/chains/definitions/autheoTestnet.d.ts +1 -1
  178. package/_types/chains/definitions/autheoTestnet.d.ts.map +1 -1
  179. package/_types/chains/definitions/codexTestnet.d.ts +1 -1
  180. package/_types/chains/definitions/codexTestnet.d.ts.map +1 -1
  181. package/_types/chains/definitions/dchainTestnet.d.ts +1 -1
  182. package/_types/chains/definitions/dchainTestnet.d.ts.map +1 -1
  183. package/_types/chains/definitions/edgelessTestnet.d.ts +1 -1
  184. package/_types/chains/definitions/edgelessTestnet.d.ts.map +1 -1
  185. package/_types/chains/definitions/edgewareTestnet.d.ts +1 -1
  186. package/_types/chains/definitions/edgewareTestnet.d.ts.map +1 -1
  187. package/_types/chains/definitions/evmosTestnet.d.ts +1 -1
  188. package/_types/chains/definitions/evmosTestnet.d.ts.map +1 -1
  189. package/_types/chains/definitions/exSatTestnet.d.ts +1 -1
  190. package/_types/chains/definitions/exSatTestnet.d.ts.map +1 -1
  191. package/_types/chains/definitions/flowPreviewnet.d.ts +1 -1
  192. package/_types/chains/definitions/flowPreviewnet.d.ts.map +1 -1
  193. package/_types/chains/definitions/fraxtalTestnet.d.ts +1 -1
  194. package/_types/chains/definitions/fraxtalTestnet.d.ts.map +1 -1
  195. package/_types/chains/definitions/haqqTestedge2.d.ts +1 -1
  196. package/_types/chains/definitions/haqqTestedge2.d.ts.map +1 -1
  197. package/_types/chains/definitions/horizenTestnet.d.ts +2 -2
  198. package/_types/chains/definitions/huddle01Testnet.d.ts +1 -1
  199. package/_types/chains/definitions/huddle01Testnet.d.ts.map +1 -1
  200. package/_types/chains/definitions/humanodeTestnet5.d.ts +1 -1
  201. package/_types/chains/definitions/humanodeTestnet5.d.ts.map +1 -1
  202. package/_types/chains/definitions/meterTestnet.d.ts +1 -1
  203. package/_types/chains/definitions/meterTestnet.d.ts.map +1 -1
  204. package/_types/chains/definitions/metisGoerli.d.ts +1 -1
  205. package/_types/chains/definitions/metisGoerli.d.ts.map +1 -1
  206. package/_types/chains/definitions/metisSepolia.d.ts +1 -1
  207. package/_types/chains/definitions/metisSepolia.d.ts.map +1 -1
  208. package/_types/chains/definitions/moonbeam.d.ts +1 -1
  209. package/_types/chains/definitions/moonriver.d.ts +1 -1
  210. package/_types/chains/definitions/otimDevnet.d.ts +1 -1
  211. package/_types/chains/definitions/otimDevnet.d.ts.map +1 -1
  212. package/_types/chains/definitions/rolluxTestnet.d.ts +1 -1
  213. package/_types/chains/definitions/rolluxTestnet.d.ts.map +1 -1
  214. package/_types/chains/definitions/swellchainTestnet.d.ts +1 -1
  215. package/_types/chains/definitions/swellchainTestnet.d.ts.map +1 -1
  216. package/_types/chains/definitions/syscoinTestnet.d.ts +1 -1
  217. package/_types/chains/definitions/syscoinTestnet.d.ts.map +1 -1
  218. package/_types/chains/definitions/taikoKatla.d.ts +1 -1
  219. package/_types/chains/definitions/taikoKatla.d.ts.map +1 -1
  220. package/_types/chains/definitions/taikoTestnetSepolia.d.ts +1 -1
  221. package/_types/chains/definitions/taikoTestnetSepolia.d.ts.map +1 -1
  222. package/_types/chains/definitions/tempoDevnet.d.ts +2 -1
  223. package/_types/chains/definitions/tempoDevnet.d.ts.map +1 -1
  224. package/_types/chains/definitions/tempoModerato.d.ts +2 -1
  225. package/_types/chains/definitions/tempoModerato.d.ts.map +1 -1
  226. package/_types/chains/definitions/tron.d.ts +1 -1
  227. package/_types/chains/definitions/tron.d.ts.map +1 -1
  228. package/_types/chains/definitions/xdcTestnet.d.ts +1 -1
  229. package/_types/chains/definitions/xdcTestnet.d.ts.map +1 -1
  230. package/_types/chains/definitions/zircuit.d.ts +18 -0
  231. package/_types/chains/definitions/zircuit.d.ts.map +1 -1
  232. package/_types/chains/definitions/zircuitGarfieldTestnet.d.ts +18 -0
  233. package/_types/chains/definitions/zircuitGarfieldTestnet.d.ts.map +1 -1
  234. package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts +1 -1
  235. package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts.map +1 -1
  236. package/_types/errors/version.d.ts +1 -1
  237. package/_types/op-stack/abis.d.ts +11 -0
  238. package/_types/op-stack/abis.d.ts.map +1 -1
  239. package/_types/op-stack/actions/getGames.d.ts +2 -1
  240. package/_types/op-stack/actions/getGames.d.ts.map +1 -1
  241. package/_types/tempo/Account.d.ts +21 -2
  242. package/_types/tempo/Account.d.ts.map +1 -1
  243. package/_types/tempo/Formatters.d.ts.map +1 -1
  244. package/_types/tempo/actions/accessKey.d.ts +3 -3
  245. package/_types/tempo/actions/accessKey.d.ts.map +1 -1
  246. package/_types/types/contract.d.ts +1 -1
  247. package/_types/types/contract.d.ts.map +1 -1
  248. package/_types/types/misc.d.ts +1 -1
  249. package/_types/types/misc.d.ts.map +1 -1
  250. package/_types/utils/buildRequest.d.ts.map +1 -1
  251. package/actions/public/fillTransaction.ts +1 -1
  252. package/actions/wallet/prepareTransactionRequest.ts +1 -1
  253. package/actions/wallet/signTransaction.ts +1 -0
  254. package/chains/definitions/ancient8Sepolia.ts +1 -0
  255. package/chains/definitions/artheraTestnet.ts +1 -0
  256. package/chains/definitions/autheoTestnet.ts +1 -0
  257. package/chains/definitions/codexTestnet.ts +1 -0
  258. package/chains/definitions/dchainTestnet.ts +1 -0
  259. package/chains/definitions/edgelessTestnet.ts +1 -0
  260. package/chains/definitions/edgewareTestnet.ts +1 -0
  261. package/chains/definitions/evmosTestnet.ts +1 -0
  262. package/chains/definitions/exSatTestnet.ts +1 -0
  263. package/chains/definitions/flowPreviewnet.ts +1 -0
  264. package/chains/definitions/fraxtalTestnet.ts +1 -0
  265. package/chains/definitions/haqqTestedge2.ts +1 -0
  266. package/chains/definitions/horizenTestnet.ts +2 -2
  267. package/chains/definitions/huddle01Testnet.ts +1 -0
  268. package/chains/definitions/humanodeTestnet5.ts +1 -0
  269. package/chains/definitions/meterTestnet.ts +1 -0
  270. package/chains/definitions/metisGoerli.ts +1 -0
  271. package/chains/definitions/metisSepolia.ts +1 -0
  272. package/chains/definitions/moonbeam.ts +1 -1
  273. package/chains/definitions/moonriver.ts +1 -1
  274. package/chains/definitions/otimDevnet.ts +1 -0
  275. package/chains/definitions/rolluxTestnet.ts +1 -0
  276. package/chains/definitions/swellchainTestnet.ts +1 -0
  277. package/chains/definitions/syscoinTestnet.ts +1 -0
  278. package/chains/definitions/taikoKatla.ts +1 -0
  279. package/chains/definitions/taikoTestnetSepolia.ts +1 -0
  280. package/chains/definitions/tempoDevnet.ts +1 -0
  281. package/chains/definitions/tempoModerato.ts +1 -0
  282. package/chains/definitions/tron.ts +1 -0
  283. package/chains/definitions/xdcTestnet.ts +1 -0
  284. package/chains/definitions/zircuit.ts +1 -0
  285. package/chains/definitions/zircuitGarfieldTestnet.ts +1 -0
  286. package/chains/definitions/zkLinkNovaSepoliaTestnet.ts +1 -0
  287. package/errors/version.ts +1 -1
  288. package/op-stack/abis.ts +16 -0
  289. package/op-stack/actions/getGames.ts +33 -20
  290. package/package.json +1 -1
  291. package/tempo/Account.ts +50 -4
  292. package/tempo/Formatters.ts +5 -1
  293. package/tempo/actions/accessKey.ts +11 -9
  294. package/types/contract.ts +2 -2
  295. package/types/misc.ts +1 -1
  296. package/utils/buildRequest.ts +17 -2
@@ -22,4 +22,5 @@ export const tempoModerato = /*#__PURE__*/ defineChain({
22
22
  webSocket: ['wss://rpc.moderato.tempo.xyz'],
23
23
  },
24
24
  },
25
+ testnet: true,
25
26
  })
@@ -9,6 +9,7 @@ export const tron = /*#__PURE__*/ defineChain({
9
9
  http: ['https://api.trongrid.io/jsonrpc'],
10
10
  },
11
11
  },
12
+ blockTime: 3000,
12
13
  blockExplorers: {
13
14
  default: {
14
15
  name: 'Tronscan',
@@ -23,4 +23,5 @@ export const xdcTestnet = /*#__PURE__*/ defineChain({
23
23
  blockCreated: 59765389,
24
24
  },
25
25
  },
26
+ testnet: true,
26
27
  })
@@ -24,6 +24,7 @@ export const zircuit = /*#__PURE__*/ defineChain({
24
24
  },
25
25
  },
26
26
  contracts: {
27
+ ...chainConfig.contracts,
27
28
  multicall3: {
28
29
  address: '0xcA11bde05977b3631167028862bE2a173976CA11',
29
30
  },
@@ -20,6 +20,7 @@ export const zircuitGarfieldTestnet = /*#__PURE__*/ defineChain({
20
20
  },
21
21
  },
22
22
  contracts: {
23
+ ...chainConfig.contracts,
23
24
  multicall3: {
24
25
  address: '0xcA11bde05977b3631167028862bE2a173976CA11',
25
26
  },
@@ -17,4 +17,5 @@ export const zkLinkNovaSepoliaTestnet = /*#__PURE__*/ defineChain({
17
17
  url: 'https://sepolia.explorer.zklink.io',
18
18
  },
19
19
  },
20
+ testnet: true,
20
21
  })
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.48.0'
1
+ export const version = '2.48.2'
package/op-stack/abis.ts CHANGED
@@ -464,6 +464,22 @@ export const l2ToL1MessagePasserAbi = [
464
464
  { stateMutability: 'payable', type: 'receive' },
465
465
  ] as const
466
466
 
467
+ export const disputeGameAbi = [
468
+ {
469
+ type: 'function',
470
+ name: 'l2SequenceNumber',
471
+ inputs: [],
472
+ outputs: [
473
+ {
474
+ name: 'l2SequenceNumber_',
475
+ type: 'uint256',
476
+ internalType: 'uint256',
477
+ },
478
+ ],
479
+ stateMutability: 'pure',
480
+ },
481
+ ] as const
482
+
467
483
  export const disputeGameFactoryAbi = [
468
484
  {
469
485
  type: 'constructor',
@@ -1,3 +1,8 @@
1
+ import type { Address } from 'abitype'
2
+ import {
3
+ type MulticallErrorType,
4
+ multicall,
5
+ } from '../../actions/public/multicall.js'
1
6
  import {
2
7
  type ReadContractErrorType,
3
8
  readContract,
@@ -11,8 +16,7 @@ import type {
11
16
  DeriveChain,
12
17
  GetChainParameter,
13
18
  } from '../../types/chain.js'
14
- import { decodeAbiParameters } from '../../utils/abi/decodeAbiParameters.js'
15
- import { disputeGameFactoryAbi, portal2Abi } from '../abis.js'
19
+ import { disputeGameAbi, disputeGameFactoryAbi, portal2Abi } from '../abis.js'
16
20
  import type { GetContractAddressParameter } from '../types/contract.js'
17
21
  import type { Game } from '../types/withdrawal.js'
18
22
 
@@ -38,7 +42,10 @@ export type GetGamesParameters<
38
42
  export type GetGamesReturnType = (Game & {
39
43
  l2BlockNumber: bigint
40
44
  })[]
41
- export type GetGamesErrorType = ReadContractErrorType | ErrorType
45
+ export type GetGamesErrorType =
46
+ | ReadContractErrorType
47
+ | MulticallErrorType
48
+ | ErrorType
42
49
 
43
50
  /**
44
51
  * Retrieves dispute games for an L2.
@@ -106,23 +113,29 @@ export async function getGames<
106
113
  }),
107
114
  ])
108
115
 
109
- const games = (
110
- (await readContract(client, {
111
- abi: disputeGameFactoryAbi,
112
- functionName: 'findLatestGames',
113
- address: disputeGameFactoryAddress,
114
- args: [
115
- gameType,
116
- BigInt(Math.max(0, Number(gameCount - 1n))),
117
- BigInt(Math.min(limit, Number(gameCount))),
118
- ],
119
- })) as Game[]
120
- )
121
- .map((game) => {
122
- const [blockNumber] = decodeAbiParameters(
123
- [{ type: 'uint256' }],
124
- game.extraData,
125
- )
116
+ const rawGames = (await readContract(client, {
117
+ abi: disputeGameFactoryAbi,
118
+ functionName: 'findLatestGames',
119
+ address: disputeGameFactoryAddress,
120
+ args: [
121
+ gameType,
122
+ BigInt(Math.max(0, Number(gameCount - 1n))),
123
+ BigInt(Math.min(limit, Number(gameCount))),
124
+ ],
125
+ })) as Game[]
126
+
127
+ const l2SequenceNumbers = await multicall(client, {
128
+ allowFailure: false,
129
+ contracts: rawGames.map((game) => ({
130
+ abi: disputeGameAbi,
131
+ address: `0x${game.metadata.slice(26)}` as Address,
132
+ functionName: 'l2SequenceNumber' as const,
133
+ })),
134
+ })
135
+
136
+ const games = rawGames
137
+ .map((game, i) => {
138
+ const blockNumber = l2SequenceNumbers[i] as bigint
126
139
  return !l2BlockNumber || blockNumber > l2BlockNumber
127
140
  ? { ...game, l2BlockNumber: blockNumber }
128
141
  : null
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.48.0",
4
+ "version": "2.48.2",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
package/tempo/Account.ts CHANGED
@@ -45,7 +45,7 @@ export type Account_base<source extends string = string> = RequiredBy<
45
45
  export type RootAccount = Account_base<'root'> & {
46
46
  /** Sign key authorization. */
47
47
  signKeyAuthorization: (
48
- key: Pick<AccessKeyAccount, 'accessKeyAddress' | 'keyType'>,
48
+ key: resolveAccessKey.Parameters,
49
49
  parameters: Pick<
50
50
  KeyAuthorization.KeyAuthorization,
51
51
  'chainId' | 'expiry' | 'limits' | 'scopes'
@@ -382,7 +382,7 @@ export async function signKeyAuthorization(
382
382
  parameters: signKeyAuthorization.Parameters,
383
383
  ): Promise<signKeyAuthorization.ReturnValue> {
384
384
  const { chainId, key, expiry, limits, scopes } = parameters
385
- const { accessKeyAddress, keyType: type } = key
385
+ const { accessKeyAddress, keyType: type } = resolveAccessKey(key)
386
386
 
387
387
  const signature = await account.sign!({
388
388
  hash: KeyAuthorization.getSignPayload({
@@ -410,7 +410,7 @@ export declare namespace signKeyAuthorization {
410
410
  KeyAuthorization.KeyAuthorization,
411
411
  'chainId' | 'expiry' | 'limits' | 'scopes'
412
412
  > & {
413
- key: Pick<AccessKeyAccount, 'accessKeyAddress' | 'keyType'>
413
+ key: resolveAccessKey.Parameters
414
414
  }
415
415
 
416
416
  type ReturnValue = KeyAuthorization.Signed
@@ -530,7 +530,7 @@ function fromRoot(parameters: fromRoot.Parameters): RootAccount {
530
530
  source: 'root',
531
531
  async signKeyAuthorization(key, parameters) {
532
532
  const { chainId, expiry, limits, scopes } = parameters
533
- const { accessKeyAddress, keyType: type } = key
533
+ const { accessKeyAddress, keyType: type } = resolveAccessKey(key)
534
534
 
535
535
  const signature = await account.sign({
536
536
  hash: KeyAuthorization.getSignPayload({
@@ -587,6 +587,52 @@ declare namespace fromAccessKey {
587
587
  export type ReturnValue = AccessKeyAccount
588
588
  }
589
589
 
590
+ /** @internal */
591
+ export function resolveAccessKey(
592
+ accessKey: resolveAccessKey.Parameters,
593
+ ): resolveAccessKey.ReturnType {
594
+ if ('accessKeyAddress' in accessKey)
595
+ return {
596
+ accessKeyAddress: accessKey.accessKeyAddress,
597
+ keyType: accessKey.keyType,
598
+ }
599
+ if ('publicKey' in accessKey && accessKey.publicKey)
600
+ return {
601
+ accessKeyAddress: Address.fromPublicKey(
602
+ PublicKey.fromHex(accessKey.publicKey),
603
+ ),
604
+ keyType: accessKey.type,
605
+ }
606
+ return {
607
+ accessKeyAddress: accessKey.address,
608
+ keyType: accessKey.type,
609
+ }
610
+ }
611
+
612
+ export declare namespace resolveAccessKey {
613
+ type Parameters =
614
+ | Pick<AccessKeyAccount, 'accessKeyAddress' | 'keyType'>
615
+ | OneOf<
616
+ | {
617
+ /** Access key address. */
618
+ address: Address.Address
619
+ /** Key type. */
620
+ type: SignatureEnvelope.Type
621
+ }
622
+ | {
623
+ /** Access key public key. */
624
+ publicKey: Hex.Hex
625
+ /** Key type. */
626
+ type: SignatureEnvelope.Type
627
+ }
628
+ >
629
+
630
+ type ReturnType = {
631
+ accessKeyAddress: Address.Address
632
+ keyType: SignatureEnvelope.Type
633
+ }
634
+ }
635
+
590
636
  // Export types required for inference.
591
637
  // biome-ignore lint/performance/noBarrelFile: _
592
638
  export {
@@ -133,7 +133,7 @@ export function formatTransactionRequest(
133
133
  ...(keyData ? { keyData } : {}),
134
134
  ...(keyId ? { keyId } : {}),
135
135
  ...(keyType ? { keyType } : {}),
136
- ...(request.feePayer
136
+ ...(typeof request.feePayer !== 'undefined'
137
137
  ? {
138
138
  feePayer:
139
139
  typeof request.feePayer === 'object'
@@ -141,5 +141,9 @@ export function formatTransactionRequest(
141
141
  : request.feePayer,
142
142
  }
143
143
  : {}),
144
+ ...('feePayerSignature' in request &&
145
+ request.feePayerSignature !== undefined
146
+ ? { feePayerSignature: request.feePayerSignature }
147
+ : {}),
144
148
  } as never
145
149
  }
@@ -17,7 +17,7 @@ import type { Log } from '../../types/log.js'
17
17
  import type { Compute } from '../../types/utils.js'
18
18
  import { parseEventLogs } from '../../utils/abi/parseEventLogs.js'
19
19
  import * as Abis from '../Abis.js'
20
- import type { AccessKeyAccount } from '../Account.js'
20
+ import type { AccessKeyAccount, resolveAccessKey } from '../Account.js'
21
21
  import { signKeyAuthorization } from '../Account.js'
22
22
  import * as Addresses from '../Addresses.js'
23
23
  import * as Hardfork from '../Hardfork.js'
@@ -91,7 +91,7 @@ export namespace authorize {
91
91
 
92
92
  export type Args = {
93
93
  /** The access key to authorize. */
94
- accessKey: Pick<AccessKeyAccount, 'accessKeyAddress' | 'keyType'>
94
+ accessKey: resolveAccessKey.Parameters
95
95
  /** The chain ID. */
96
96
  chainId?: number | undefined
97
97
  /** Unix timestamp when the key expires. */
@@ -332,7 +332,7 @@ export namespace revoke {
332
332
  address: Addresses.accountKeychain,
333
333
  abi: Abis.accountKeychain,
334
334
  functionName: 'revokeKey',
335
- args: [resolveAccessKey(accessKey)],
335
+ args: [resolveAccessKeyAddress(accessKey)],
336
336
  })
337
337
  }
338
338
 
@@ -528,7 +528,7 @@ export namespace updateLimit {
528
528
  address: Addresses.accountKeychain,
529
529
  abi: Abis.accountKeychain,
530
530
  functionName: 'updateSpendingLimit',
531
- args: [resolveAccessKey(accessKey), token, limit],
531
+ args: [resolveAccessKeyAddress(accessKey), token, limit],
532
532
  })
533
533
  }
534
534
 
@@ -704,7 +704,7 @@ export namespace getMetadata {
704
704
  address: Addresses.accountKeychain,
705
705
  abi: Abis.accountKeychain,
706
706
  functionName: 'getKey',
707
- args: [account, resolveAccessKey(accessKey)],
707
+ args: [account, resolveAccessKeyAddress(accessKey)],
708
708
  })
709
709
  }
710
710
  }
@@ -804,7 +804,7 @@ export namespace getRemainingLimit {
804
804
  address: Addresses.accountKeychain,
805
805
  abi: Abis.accountKeychain,
806
806
  functionName: 'getRemainingLimit',
807
- args: [account, resolveAccessKey(accessKey), token],
807
+ args: [account, resolveAccessKeyAddress(accessKey), token],
808
808
  })
809
809
  }
810
810
 
@@ -820,7 +820,7 @@ export namespace getRemainingLimit {
820
820
  address: Addresses.accountKeychain,
821
821
  abi: Abis.accountKeychain,
822
822
  functionName: 'getRemainingLimitWithPeriod',
823
- args: [account, resolveAccessKey(accessKey), token],
823
+ args: [account, resolveAccessKeyAddress(accessKey), token],
824
824
  })
825
825
  }
826
826
  }
@@ -876,7 +876,7 @@ export namespace signAuthorization {
876
876
  account extends Account | undefined = Account | undefined,
877
877
  > = GetAccountParameter<account> & {
878
878
  /** The access key to authorize. */
879
- accessKey: Pick<AccessKeyAccount, 'accessKeyAddress' | 'keyType'>
879
+ accessKey: resolveAccessKey.Parameters
880
880
  /** The chain ID. */
881
881
  chainId?: number | undefined
882
882
  /** Unix timestamp when the key expires. */
@@ -893,7 +893,9 @@ export namespace signAuthorization {
893
893
  }
894
894
 
895
895
  /** @internal */
896
- function resolveAccessKey(accessKey: Address | AccessKeyAccount): Address {
896
+ function resolveAccessKeyAddress(
897
+ accessKey: Address | AccessKeyAccount,
898
+ ): Address {
897
899
  if (typeof accessKey === 'string') return accessKey
898
900
  return accessKey.accessKeyAddress
899
901
  }
package/types/contract.ts CHANGED
@@ -466,8 +466,8 @@ export type LogTopicType<
466
466
  topic extends LogTopic = LogTopic,
467
467
  > = topic extends Hex
468
468
  ? primitiveType
469
- : topic extends Hex[]
470
- ? primitiveType[]
469
+ : topic extends readonly Hex[]
470
+ ? readonly primitiveType[]
471
471
  : topic extends null
472
472
  ? null
473
473
  : never
package/types/misc.ts CHANGED
@@ -3,7 +3,7 @@ import type { OneOf } from './utils.js'
3
3
  export type ByteArray = Uint8Array
4
4
  export type Hex = `0x${string}`
5
5
  export type Hash = `0x${string}`
6
- export type LogTopic = Hex | Hex[] | null
6
+ export type LogTopic = Hex | readonly Hex[] | null
7
7
  export type SignableMessage =
8
8
  | string
9
9
  | {
@@ -71,7 +71,6 @@ import type {
71
71
  EIP1193RequestFn,
72
72
  EIP1193RequestOptions,
73
73
  } from '../types/eip1193.js'
74
- import { stringToHex } from './encoding/toHex.js'
75
74
  import type { CreateBatchSchedulerErrorType } from './promise/createBatchScheduler.js'
76
75
  import { withDedupe } from './promise/withDedupe.js'
77
76
  import { type WithRetryErrorType, withRetry } from './promise/withRetry.js'
@@ -143,7 +142,7 @@ export function buildRequest<request extends (args: any) => Promise<any>>(
143
142
  })
144
143
 
145
144
  const requestId = dedupe
146
- ? stringToHex(`${uid}.${stringify(args)}`)
145
+ ? hashString(`${uid}.${stringify(args)}`)
147
146
  : undefined
148
147
  return withDedupe(
149
148
  () =>
@@ -306,3 +305,19 @@ export function shouldRetry(error: Error) {
306
305
  }
307
306
  return true
308
307
  }
308
+
309
+ /** @internal cyrb53 – fast, non-cryptographic 53-bit string hash */
310
+ function hashString(str: string, seed = 0): string {
311
+ let h1 = 0xdeadbeef ^ seed
312
+ let h2 = 0x41c6ce57 ^ seed
313
+ for (let i = 0; i < str.length; i++) {
314
+ const ch = str.charCodeAt(i)
315
+ h1 = Math.imul(h1 ^ ch, 2654435761)
316
+ h2 = Math.imul(h2 ^ ch, 1597334677)
317
+ }
318
+ h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507)
319
+ h1 ^= Math.imul(h2 ^ (h2 >>> 16), 3266489909)
320
+ h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507)
321
+ h2 ^= Math.imul(h1 ^ (h1 >>> 16), 3266489909)
322
+ return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(36)
323
+ }