viem 2.10.0 → 2.10.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 (89) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/_cjs/chains/definitions/celo.js +2 -2
  3. package/_cjs/chains/definitions/celo.js.map +1 -1
  4. package/_cjs/chains/definitions/dodochainTestnet.js +23 -0
  5. package/_cjs/chains/definitions/dodochainTestnet.js.map +1 -0
  6. package/_cjs/chains/definitions/otimDevnet.js +2 -2
  7. package/_cjs/chains/definitions/otimDevnet.js.map +1 -1
  8. package/_cjs/chains/index.js +7 -5
  9. package/_cjs/chains/index.js.map +1 -1
  10. package/_cjs/errors/version.js +1 -1
  11. package/_cjs/op-stack/abis.js +142 -359
  12. package/_cjs/op-stack/abis.js.map +1 -1
  13. package/_cjs/op-stack/actions/getTimeToFinalize.js +14 -6
  14. package/_cjs/op-stack/actions/getTimeToFinalize.js.map +1 -1
  15. package/_cjs/op-stack/actions/getWithdrawalStatus.js +10 -2
  16. package/_cjs/op-stack/actions/getWithdrawalStatus.js.map +1 -1
  17. package/_esm/chains/definitions/celo.js +2 -2
  18. package/_esm/chains/definitions/celo.js.map +1 -1
  19. package/_esm/chains/definitions/dodochainTestnet.js +20 -0
  20. package/_esm/chains/definitions/dodochainTestnet.js.map +1 -0
  21. package/_esm/chains/definitions/otimDevnet.js +2 -2
  22. package/_esm/chains/definitions/otimDevnet.js.map +1 -1
  23. package/_esm/chains/index.js +1 -0
  24. package/_esm/chains/index.js.map +1 -1
  25. package/_esm/errors/version.js +1 -1
  26. package/_esm/op-stack/abis.js +142 -359
  27. package/_esm/op-stack/abis.js.map +1 -1
  28. package/_esm/op-stack/actions/getTimeToFinalize.js +14 -6
  29. package/_esm/op-stack/actions/getTimeToFinalize.js.map +1 -1
  30. package/_esm/op-stack/actions/getWithdrawalStatus.js +10 -2
  31. package/_esm/op-stack/actions/getWithdrawalStatus.js.map +1 -1
  32. package/_types/celo/chainConfig.d.ts +20 -20
  33. package/_types/celo/formatters.d.ts +10 -10
  34. package/_types/chains/definitions/ancient8.d.ts +8 -8
  35. package/_types/chains/definitions/ancient8Sepolia.d.ts +8 -8
  36. package/_types/chains/definitions/base.d.ts +8 -8
  37. package/_types/chains/definitions/baseGoerli.d.ts +8 -8
  38. package/_types/chains/definitions/baseSepolia.d.ts +8 -8
  39. package/_types/chains/definitions/celo.d.ts +22 -22
  40. package/_types/chains/definitions/celoAlfajores.d.ts +20 -20
  41. package/_types/chains/definitions/dodochainTestnet.d.ts +36 -0
  42. package/_types/chains/definitions/dodochainTestnet.d.ts.map +1 -0
  43. package/_types/chains/definitions/fraxtal.d.ts +8 -8
  44. package/_types/chains/definitions/fraxtalTestnet.d.ts +8 -8
  45. package/_types/chains/definitions/liskSepolia.d.ts +8 -8
  46. package/_types/chains/definitions/optimism.d.ts +8 -8
  47. package/_types/chains/definitions/optimismGoerli.d.ts +8 -8
  48. package/_types/chains/definitions/optimismSepolia.d.ts +8 -8
  49. package/_types/chains/definitions/otimDevnet.d.ts +2 -2
  50. package/_types/chains/definitions/pgn.d.ts +8 -8
  51. package/_types/chains/definitions/pgnTestnet.d.ts +8 -8
  52. package/_types/chains/definitions/playfiAlbireo.d.ts +3 -3
  53. package/_types/chains/definitions/rss3.d.ts +8 -8
  54. package/_types/chains/definitions/rss3Sepolia.d.ts +8 -8
  55. package/_types/chains/definitions/zkSync.d.ts +3 -3
  56. package/_types/chains/definitions/zkSyncInMemoryNode.d.ts +3 -3
  57. package/_types/chains/definitions/zkSyncLocalNode.d.ts +3 -3
  58. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +3 -3
  59. package/_types/chains/definitions/zkSyncTestnet.d.ts +3 -3
  60. package/_types/chains/definitions/zora.d.ts +8 -8
  61. package/_types/chains/definitions/zoraSepolia.d.ts +8 -8
  62. package/_types/chains/definitions/zoraTestnet.d.ts +8 -8
  63. package/_types/chains/index.d.ts +1 -0
  64. package/_types/chains/index.d.ts.map +1 -1
  65. package/_types/errors/version.d.ts +1 -1
  66. package/_types/op-stack/abis.d.ts +174 -87
  67. package/_types/op-stack/abis.d.ts.map +1 -1
  68. package/_types/op-stack/actions/getTimeToFinalize.d.ts.map +1 -1
  69. package/_types/op-stack/actions/getWithdrawalStatus.d.ts.map +1 -1
  70. package/_types/op-stack/chainConfig.d.ts +8 -8
  71. package/_types/op-stack/formatters.d.ts +8 -8
  72. package/_types/types/eip1193.d.ts +9 -7
  73. package/_types/types/eip1193.d.ts.map +1 -1
  74. package/_types/types/transaction.d.ts +1 -1
  75. package/_types/types/transaction.d.ts.map +1 -1
  76. package/_types/utils/formatters/transaction.d.ts +4 -4
  77. package/_types/zksync/chainConfig.d.ts +3 -3
  78. package/_types/zksync/formatters.d.ts +3 -3
  79. package/chains/definitions/celo.ts +2 -2
  80. package/chains/definitions/dodochainTestnet.ts +20 -0
  81. package/chains/definitions/otimDevnet.ts +2 -2
  82. package/chains/index.ts +1 -0
  83. package/errors/version.ts +1 -1
  84. package/op-stack/abis.ts +142 -359
  85. package/op-stack/actions/getTimeToFinalize.ts +15 -6
  86. package/op-stack/actions/getWithdrawalStatus.ts +13 -2
  87. package/package.json +1 -1
  88. package/types/eip1193.ts +13 -8
  89. package/types/transaction.ts +1 -1
@@ -128,14 +128,23 @@ export async function getTimeToFinalize<
128
128
  return { period: Number(period), seconds, timestamp }
129
129
  }
130
130
 
131
+ const proofSubmitter = await readContract(client, {
132
+ abi: portal2Abi,
133
+ address: portalAddress,
134
+ functionName: 'proofSubmitters',
135
+ args: [withdrawalHash, 0n],
136
+ }).catch(() => undefined)
137
+
131
138
  const [[_disputeGameProxy, proveTimestamp], proofMaturityDelaySeconds] =
132
139
  await Promise.all([
133
- readContract(client, {
134
- abi: portal2Abi,
135
- address: portalAddress,
136
- functionName: 'provenWithdrawals',
137
- args: [withdrawalHash],
138
- }),
140
+ proofSubmitter
141
+ ? readContract(client, {
142
+ abi: portal2Abi,
143
+ address: portalAddress,
144
+ functionName: 'provenWithdrawals',
145
+ args: [withdrawalHash, proofSubmitter],
146
+ })
147
+ : Promise.resolve(['0x', 0n]),
139
148
  readContract(client, {
140
149
  abi: portal2Abi,
141
150
  address: portalAddress,
@@ -192,6 +192,13 @@ export async function getWithdrawalStatus<
192
192
  return seconds > 0 ? 'waiting-to-finalize' : 'ready-to-finalize'
193
193
  }
194
194
 
195
+ const proofSubmitter = await readContract(client, {
196
+ abi: portal2Abi,
197
+ address: portalAddress,
198
+ functionName: 'proofSubmitters',
199
+ args: [withdrawal.withdrawalHash, 0n],
200
+ }).catch(() => withdrawal.sender)
201
+
195
202
  const [disputeGameResult, checkWithdrawalResult, finalizedResult] =
196
203
  await Promise.allSettled([
197
204
  getGame(client, {
@@ -203,7 +210,7 @@ export async function getWithdrawalStatus<
203
210
  abi: portal2Abi,
204
211
  address: portalAddress,
205
212
  functionName: 'checkWithdrawal',
206
- args: [withdrawal.withdrawalHash],
213
+ args: [withdrawal.withdrawalHash, proofSubmitter],
207
214
  }),
208
215
  readContract(client, {
209
216
  abi: portal2Abi,
@@ -225,7 +232,11 @@ export async function getWithdrawalStatus<
225
232
  const error = checkWithdrawalResult.reason as ReadContractErrorType
226
233
  if (error.cause instanceof ContractFunctionRevertedError) {
227
234
  const errorMessage = error.cause.data?.args?.[0]
228
- if (errorMessage === 'OptimismPortal: withdrawal has not been proven yet')
235
+ if (
236
+ errorMessage === 'OptimismPortal: withdrawal has not been proven yet' ||
237
+ errorMessage ===
238
+ 'OptimismPortal: withdrawal has not been proven by proof submitter address yet'
239
+ )
229
240
  return 'ready-to-prove'
230
241
  if (
231
242
  errorMessage ===
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.0",
4
+ "version": "2.10.2",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
package/types/eip1193.ts CHANGED
@@ -16,7 +16,7 @@ import type {
16
16
  RpcTransactionRequest as TransactionRequest,
17
17
  RpcUncle as Uncle,
18
18
  } from './rpc.js'
19
- import type { ExactPartial, Prettify } from './utils.js'
19
+ import type { ExactPartial, OneOf, Prettify } from './utils.js'
20
20
 
21
21
  //////////////////////////////////////////////////
22
22
  // Provider
@@ -155,15 +155,20 @@ export type WalletSendCallsParameters<
155
155
  quantity extends Quantity | bigint = Quantity,
156
156
  > = [
157
157
  {
158
- version: string
158
+ calls: OneOf<
159
+ | {
160
+ to: Address
161
+ data?: Hex | undefined
162
+ value?: quantity | undefined
163
+ }
164
+ | {
165
+ data: Hex
166
+ }
167
+ >[]
168
+ capabilities?: capabilities | undefined
159
169
  chainId: chainId
160
170
  from: Address
161
- calls: {
162
- to: Address
163
- data: Hex
164
- value: quantity
165
- }[]
166
- capabilities?: capabilities | undefined
171
+ version: string
167
172
  },
168
173
  ]
169
174
 
@@ -157,7 +157,7 @@ export type TransactionEIP4844<
157
157
  /** EIP-2930 Access List. */
158
158
  accessList: AccessList
159
159
  /** List of versioned blob hashes associated with the transaction's blobs. */
160
- blobVersionedHashes: Hex[]
160
+ blobVersionedHashes: readonly Hex[]
161
161
  /** Chain ID that this transaction is valid on. */
162
162
  chainId: TIndex
163
163
  type: TType