viem 2.9.13 → 2.9.15
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.
- package/CHANGELOG.md +14 -0
- package/_cjs/actions/index.js +2 -1
- package/_cjs/actions/index.js.map +1 -1
- package/_cjs/actions/public/call.js.map +1 -1
- package/_cjs/actions/public/estimateGas.js +5 -3
- package/_cjs/actions/public/estimateGas.js.map +1 -1
- package/_cjs/actions/wallet/prepareTransactionRequest.js +47 -7
- package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_cjs/actions/wallet/sendTransaction.js +1 -0
- package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/_cjs/chains/definitions/astarZkEVM.js +1 -1
- package/_cjs/chains/definitions/astarZkyoto.js +1 -1
- package/_cjs/chains/definitions/astarZkyoto.js.map +1 -1
- package/_cjs/chains/definitions/filecoinCalibration.js +1 -0
- package/_cjs/chains/definitions/filecoinCalibration.js.map +1 -1
- package/_cjs/chains/definitions/filecoinHyperspace.js +1 -0
- package/_cjs/chains/definitions/filecoinHyperspace.js.map +1 -1
- package/_cjs/chains/index.js +5 -7
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/utils/blob/blobsToCommitments.js.map +1 -1
- package/_cjs/utils/blob/commitmentsToVersionedHashes.js.map +1 -1
- package/_cjs/utils/blob/sidecarsToVersionedHashes.js.map +1 -1
- package/_cjs/utils/blob/toBlobSidecars.js.map +1 -1
- package/_cjs/utils/blob/toBlobs.js.map +1 -1
- package/_cjs/utils/formatters/transactionRequest.js +2 -0
- package/_cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/_cjs/utils/transaction/serializeTransaction.js +10 -6
- package/_cjs/utils/transaction/serializeTransaction.js.map +1 -1
- package/_esm/actions/index.js +1 -1
- package/_esm/actions/index.js.map +1 -1
- package/_esm/actions/public/call.js.map +1 -1
- package/_esm/actions/public/estimateGas.js +8 -3
- package/_esm/actions/public/estimateGas.js.map +1 -1
- package/_esm/actions/wallet/prepareTransactionRequest.js +49 -9
- package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
- package/_esm/actions/wallet/sendTransaction.js +2 -1
- package/_esm/actions/wallet/sendTransaction.js.map +1 -1
- package/_esm/chains/definitions/astarZkEVM.js +1 -1
- package/_esm/chains/definitions/astarZkyoto.js +1 -1
- package/_esm/chains/definitions/astarZkyoto.js.map +1 -1
- package/_esm/chains/definitions/filecoinCalibration.js +1 -0
- package/_esm/chains/definitions/filecoinCalibration.js.map +1 -1
- package/_esm/chains/definitions/filecoinHyperspace.js +1 -0
- package/_esm/chains/definitions/filecoinHyperspace.js.map +1 -1
- package/_esm/chains/index.js +0 -1
- package/_esm/chains/index.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/utils/blob/blobsToCommitments.js.map +1 -1
- package/_esm/utils/blob/commitmentsToVersionedHashes.js.map +1 -1
- package/_esm/utils/blob/sidecarsToVersionedHashes.js.map +1 -1
- package/_esm/utils/blob/toBlobSidecars.js.map +1 -1
- package/_esm/utils/blob/toBlobs.js.map +1 -1
- package/_esm/utils/formatters/transactionRequest.js +2 -0
- package/_esm/utils/formatters/transactionRequest.js.map +1 -1
- package/_esm/utils/transaction/serializeTransaction.js +10 -6
- package/_esm/utils/transaction/serializeTransaction.js.map +1 -1
- package/_types/actions/index.d.ts +1 -1
- package/_types/actions/index.d.ts.map +1 -1
- package/_types/actions/public/call.d.ts +2 -3
- package/_types/actions/public/call.d.ts.map +1 -1
- package/_types/actions/public/estimateGas.d.ts.map +1 -1
- package/_types/actions/wallet/prepareTransactionRequest.d.ts +7 -6
- package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
- package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/_types/celo/chainConfig.d.ts +350 -38
- package/_types/celo/chainConfig.d.ts.map +1 -1
- package/_types/celo/formatters.d.ts +175 -19
- package/_types/celo/formatters.d.ts.map +1 -1
- package/_types/chains/definitions/ancient8.d.ts +15 -15
- package/_types/chains/definitions/ancient8Sepolia.d.ts +15 -15
- package/_types/chains/definitions/astarZkEVM.d.ts +1 -1
- package/_types/chains/definitions/astarZkyoto.d.ts +1 -1
- package/_types/chains/definitions/base.d.ts +15 -15
- package/_types/chains/definitions/baseGoerli.d.ts +15 -15
- package/_types/chains/definitions/baseSepolia.d.ts +15 -15
- package/_types/chains/definitions/celo.d.ts +350 -38
- package/_types/chains/definitions/celo.d.ts.map +1 -1
- package/_types/chains/definitions/celoAlfajores.d.ts +350 -38
- package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
- package/_types/chains/definitions/filecoinCalibration.d.ts +1 -1
- package/_types/chains/definitions/filecoinCalibration.d.ts.map +1 -1
- package/_types/chains/definitions/filecoinHyperspace.d.ts +1 -1
- package/_types/chains/definitions/filecoinHyperspace.d.ts.map +1 -1
- package/_types/chains/definitions/fraxtal.d.ts +15 -15
- package/_types/chains/definitions/fraxtalTestnet.d.ts +15 -15
- package/_types/chains/definitions/liskSepolia.d.ts +15 -15
- package/_types/chains/definitions/optimism.d.ts +15 -15
- package/_types/chains/definitions/optimismGoerli.d.ts +15 -15
- package/_types/chains/definitions/optimismSepolia.d.ts +15 -15
- package/_types/chains/definitions/pgn.d.ts +15 -15
- package/_types/chains/definitions/pgnTestnet.d.ts +15 -15
- package/_types/chains/definitions/rss3.d.ts +15 -15
- package/_types/chains/definitions/rss3Sepolia.d.ts +15 -15
- package/_types/chains/definitions/zkSync.d.ts +144 -0
- package/_types/chains/definitions/zkSync.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncInMemoryNode.d.ts +144 -0
- package/_types/chains/definitions/zkSyncInMemoryNode.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncLocalNode.d.ts +144 -0
- package/_types/chains/definitions/zkSyncLocalNode.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +144 -0
- package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkSyncTestnet.d.ts +144 -0
- package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zora.d.ts +15 -15
- package/_types/chains/definitions/zoraSepolia.d.ts +15 -15
- package/_types/chains/definitions/zoraTestnet.d.ts +15 -15
- package/_types/chains/index.d.ts +0 -1
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/op-stack/actions/getTimeToNextGame.d.ts +1 -1
- package/_types/op-stack/actions/getTimeToNextL2Output.d.ts +1 -1
- package/_types/op-stack/actions/getTimeToProve.d.ts +1 -1
- package/_types/op-stack/actions/waitForNextGame.d.ts +1 -1
- package/_types/op-stack/actions/waitForNextL2Output.d.ts +1 -1
- package/_types/op-stack/chainConfig.d.ts +15 -15
- package/_types/op-stack/formatters.d.ts +15 -15
- package/_types/types/transaction.d.ts +16 -2
- package/_types/types/transaction.d.ts.map +1 -1
- package/_types/utils/blob/blobsToCommitments.d.ts +4 -4
- package/_types/utils/blob/blobsToCommitments.d.ts.map +1 -1
- package/_types/utils/blob/blobsToProofs.d.ts +2 -2
- package/_types/utils/blob/blobsToProofs.d.ts.map +1 -1
- package/_types/utils/blob/commitmentsToVersionedHashes.d.ts +4 -4
- package/_types/utils/blob/commitmentsToVersionedHashes.d.ts.map +1 -1
- package/_types/utils/blob/sidecarsToVersionedHashes.d.ts +1 -1
- package/_types/utils/blob/sidecarsToVersionedHashes.d.ts.map +1 -1
- package/_types/utils/blob/toBlobSidecars.d.ts +5 -5
- package/_types/utils/blob/toBlobSidecars.d.ts.map +1 -1
- package/_types/utils/blob/toBlobs.d.ts +1 -1
- package/_types/utils/blob/toBlobs.d.ts.map +1 -1
- package/_types/utils/formatters/transaction.d.ts +1 -1
- package/_types/utils/formatters/transactionRequest.d.ts +49 -1
- package/_types/utils/formatters/transactionRequest.d.ts.map +1 -1
- package/_types/utils/transaction/getTransactionType.d.ts +3 -3
- package/_types/utils/transaction/getTransactionType.d.ts.map +1 -1
- package/_types/utils/transaction/serializeTransaction.d.ts.map +1 -1
- package/_types/zksync/chainConfig.d.ts +144 -0
- package/_types/zksync/chainConfig.d.ts.map +1 -1
- package/_types/zksync/formatters.d.ts +144 -0
- package/_types/zksync/formatters.d.ts.map +1 -1
- package/actions/index.ts +1 -0
- package/actions/public/call.ts +2 -3
- package/actions/public/estimateGas.ts +9 -7
- package/actions/wallet/prepareTransactionRequest.ts +73 -17
- package/actions/wallet/sendTransaction.ts +2 -0
- package/chains/definitions/astarZkEVM.ts +1 -1
- package/chains/definitions/astarZkyoto.ts +1 -1
- package/chains/definitions/filecoinCalibration.ts +1 -0
- package/chains/definitions/filecoinHyperspace.ts +1 -0
- package/chains/index.ts +0 -1
- package/errors/version.ts +1 -1
- package/op-stack/actions/getTimeToNextGame.ts +1 -1
- package/op-stack/actions/getTimeToNextL2Output.ts +1 -1
- package/op-stack/actions/getTimeToProve.ts +1 -1
- package/op-stack/actions/waitForNextGame.ts +1 -1
- package/op-stack/actions/waitForNextL2Output.ts +1 -1
- package/package.json +1 -1
- package/types/transaction.ts +20 -2
- package/utils/blob/blobsToCommitments.ts +9 -7
- package/utils/blob/blobsToProofs.ts +10 -10
- package/utils/blob/commitmentsToVersionedHashes.ts +10 -8
- package/utils/blob/sidecarsToVersionedHashes.ts +3 -3
- package/utils/blob/toBlobSidecars.ts +14 -11
- package/utils/blob/toBlobs.ts +3 -3
- package/utils/formatters/transactionRequest.ts +2 -0
- package/utils/transaction/getTransactionType.ts +3 -3
- package/utils/transaction/serializeTransaction.ts +12 -6
- package/_cjs/chains/definitions/astarZkatana.js +0 -32
- package/_cjs/chains/definitions/astarZkatana.js.map +0 -1
- package/_esm/chains/definitions/astarZkatana.js +0 -29
- package/_esm/chains/definitions/astarZkatana.js.map +0 -1
- package/_types/chains/definitions/astarZkatana.d.ts +0 -34
- package/_types/chains/definitions/astarZkatana.d.ts.map +0 -1
- package/chains/definitions/astarZkatana.ts +0 -29
@@ -15,7 +15,7 @@ import {
|
|
15
15
|
} from '../../actions/public/estimateGas.js'
|
16
16
|
import {
|
17
17
|
type GetBlockErrorType,
|
18
|
-
getBlock,
|
18
|
+
getBlock as getBlock_,
|
19
19
|
} from '../../actions/public/getBlock.js'
|
20
20
|
import {
|
21
21
|
type GetTransactionCountErrorType,
|
@@ -28,8 +28,8 @@ import {
|
|
28
28
|
Eip1559FeesNotSupportedError,
|
29
29
|
MaxFeePerGasTooLowError,
|
30
30
|
} from '../../errors/fee.js'
|
31
|
-
import type { Block, GetTransactionType } from '../../index.js'
|
32
31
|
import type { DeriveAccount, GetAccountParameter } from '../../types/account.js'
|
32
|
+
import type { Block } from '../../types/block.js'
|
33
33
|
import type { Chain, DeriveChain } from '../../types/chain.js'
|
34
34
|
import type { GetChainParameter } from '../../types/chain.js'
|
35
35
|
import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'
|
@@ -48,21 +48,39 @@ import type {
|
|
48
48
|
UnionOmit,
|
49
49
|
UnionRequiredBy,
|
50
50
|
} from '../../types/utils.js'
|
51
|
+
import { blobsToCommitments } from '../../utils/blob/blobsToCommitments.js'
|
52
|
+
import { blobsToProofs } from '../../utils/blob/blobsToProofs.js'
|
53
|
+
import { commitmentsToVersionedHashes } from '../../utils/blob/commitmentsToVersionedHashes.js'
|
54
|
+
import { toBlobSidecars } from '../../utils/blob/toBlobSidecars.js'
|
51
55
|
import type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'
|
52
56
|
import { getAction } from '../../utils/getAction.js'
|
53
|
-
import
|
54
|
-
AssertRequestErrorType,
|
55
|
-
AssertRequestParameters,
|
57
|
+
import {
|
58
|
+
type AssertRequestErrorType,
|
59
|
+
type AssertRequestParameters,
|
60
|
+
assertRequest,
|
56
61
|
} from '../../utils/transaction/assertRequest.js'
|
57
|
-
import {
|
58
|
-
|
62
|
+
import {
|
63
|
+
type GetTransactionType,
|
64
|
+
getTransactionType,
|
65
|
+
} from '../../utils/transaction/getTransactionType.js'
|
59
66
|
import { getChainId } from '../public/getChainId.js'
|
60
67
|
|
68
|
+
export const defaultParameters = [
|
69
|
+
'blobVersionedHashes',
|
70
|
+
'chainId',
|
71
|
+
'fees',
|
72
|
+
'gas',
|
73
|
+
'nonce',
|
74
|
+
'type',
|
75
|
+
] as const
|
76
|
+
|
61
77
|
export type PrepareTransactionRequestParameterType =
|
78
|
+
| 'blobVersionedHashes'
|
62
79
|
| 'chainId'
|
63
80
|
| 'fees'
|
64
81
|
| 'gas'
|
65
82
|
| 'nonce'
|
83
|
+
| 'sidecars'
|
66
84
|
| 'type'
|
67
85
|
type ParameterTypeToParameters<
|
68
86
|
parameterType extends PrepareTransactionRequestParameterType,
|
@@ -77,7 +95,7 @@ export type PrepareTransactionRequestRequest<
|
|
77
95
|
_derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
|
78
96
|
> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
|
79
97
|
GetTransactionRequestKzgParameter & {
|
80
|
-
parameters?: PrepareTransactionRequestParameterType[] | undefined
|
98
|
+
parameters?: readonly PrepareTransactionRequestParameterType[] | undefined
|
81
99
|
}
|
82
100
|
|
83
101
|
export type PrepareTransactionRequestParameters<
|
@@ -135,7 +153,7 @@ export type PrepareTransactionRequestReturnType<
|
|
135
153
|
accountOverride
|
136
154
|
>,
|
137
155
|
_derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
|
138
|
-
_transactionType = request['type'] extends string
|
156
|
+
_transactionType = request['type'] extends string | undefined
|
139
157
|
? request['type']
|
140
158
|
: GetTransactionType<request> extends 'legacy'
|
141
159
|
? unknown
|
@@ -160,9 +178,9 @@ export type PrepareTransactionRequestReturnType<
|
|
160
178
|
: ExactPartial<_transactionRequest>
|
161
179
|
> & { chainId?: number | undefined },
|
162
180
|
ParameterTypeToParameters<
|
163
|
-
request['parameters'] extends PrepareTransactionRequestParameterType[]
|
181
|
+
request['parameters'] extends readonly PrepareTransactionRequestParameterType[]
|
164
182
|
? request['parameters'][number]
|
165
|
-
:
|
183
|
+
: (typeof defaultParameters)[number]
|
166
184
|
>
|
167
185
|
> &
|
168
186
|
(unknown extends request['kzg'] ? {} : Pick<request, 'kzg'>)
|
@@ -243,17 +261,57 @@ export async function prepareTransactionRequest<
|
|
243
261
|
> {
|
244
262
|
const {
|
245
263
|
account: account_ = client.account,
|
264
|
+
blobs,
|
246
265
|
chain,
|
247
266
|
chainId,
|
248
267
|
gas,
|
268
|
+
kzg,
|
249
269
|
nonce,
|
250
|
-
parameters =
|
270
|
+
parameters = defaultParameters,
|
251
271
|
type,
|
252
272
|
} = args
|
253
273
|
const account = account_ ? parseAccount(account_) : undefined
|
254
274
|
|
255
275
|
const request = { ...args, ...(account ? { from: account?.address } : {}) }
|
256
276
|
|
277
|
+
let block: Block | undefined
|
278
|
+
async function getBlock(): Promise<Block> {
|
279
|
+
if (block) return block
|
280
|
+
block = await getAction(
|
281
|
+
client,
|
282
|
+
getBlock_,
|
283
|
+
'getBlock',
|
284
|
+
)({ blockTag: 'latest' })
|
285
|
+
return block
|
286
|
+
}
|
287
|
+
|
288
|
+
if (
|
289
|
+
(parameters.includes('blobVersionedHashes') ||
|
290
|
+
parameters.includes('sidecars')) &&
|
291
|
+
blobs &&
|
292
|
+
kzg
|
293
|
+
) {
|
294
|
+
const commitments = blobsToCommitments({ blobs, kzg })
|
295
|
+
|
296
|
+
if (parameters.includes('blobVersionedHashes')) {
|
297
|
+
const versionedHashes = commitmentsToVersionedHashes({
|
298
|
+
commitments,
|
299
|
+
to: 'hex',
|
300
|
+
})
|
301
|
+
request.blobVersionedHashes = versionedHashes
|
302
|
+
}
|
303
|
+
if (parameters.includes('sidecars')) {
|
304
|
+
const proofs = blobsToProofs({ blobs, commitments, kzg })
|
305
|
+
const sidecars = toBlobSidecars({
|
306
|
+
blobs,
|
307
|
+
commitments,
|
308
|
+
proofs,
|
309
|
+
to: 'hex',
|
310
|
+
})
|
311
|
+
request.sidecars = sidecars
|
312
|
+
}
|
313
|
+
}
|
314
|
+
|
257
315
|
if (parameters.includes('chainId')) {
|
258
316
|
if (chain) request.chainId = chain.id
|
259
317
|
else if (typeof chainId !== 'undefined') request.chainId = chainId
|
@@ -270,11 +328,6 @@ export async function prepareTransactionRequest<
|
|
270
328
|
blockTag: 'pending',
|
271
329
|
})
|
272
330
|
|
273
|
-
const block = await (() => {
|
274
|
-
if (typeof request.type !== 'undefined') return
|
275
|
-
return getAction(client, getBlock, 'getBlock')({ blockTag: 'latest' })
|
276
|
-
})()
|
277
|
-
|
278
331
|
if (
|
279
332
|
(parameters.includes('fees') || parameters.includes('type')) &&
|
280
333
|
typeof type === 'undefined'
|
@@ -285,6 +338,7 @@ export async function prepareTransactionRequest<
|
|
285
338
|
) as any
|
286
339
|
} catch {
|
287
340
|
// infer type from block
|
341
|
+
const block = await getBlock()
|
288
342
|
request.type =
|
289
343
|
typeof block?.baseFeePerGas === 'bigint' ? 'eip1559' : 'legacy'
|
290
344
|
}
|
@@ -299,6 +353,7 @@ export async function prepareTransactionRequest<
|
|
299
353
|
typeof request.maxFeePerGas === 'undefined' ||
|
300
354
|
typeof request.maxPriorityFeePerGas === 'undefined'
|
301
355
|
) {
|
356
|
+
const block = await getBlock()
|
302
357
|
const { maxFeePerGas, maxPriorityFeePerGas } =
|
303
358
|
await internal_estimateFeesPerGas(client, {
|
304
359
|
block: block as Block,
|
@@ -326,6 +381,7 @@ export async function prepareTransactionRequest<
|
|
326
381
|
)
|
327
382
|
throw new Eip1559FeesNotSupportedError()
|
328
383
|
|
384
|
+
const block = await getBlock()
|
329
385
|
const { gasPrice: gasPrice_ } = await internal_estimateFeesPerGas(
|
330
386
|
client,
|
331
387
|
{
|
@@ -39,6 +39,7 @@ import {
|
|
39
39
|
import { type GetChainIdErrorType, getChainId } from '../public/getChainId.js'
|
40
40
|
import {
|
41
41
|
type PrepareTransactionRequestErrorType,
|
42
|
+
defaultParameters,
|
42
43
|
prepareTransactionRequest,
|
43
44
|
} from './prepareTransactionRequest.js'
|
44
45
|
import {
|
@@ -190,6 +191,7 @@ export async function sendTransaction<
|
|
190
191
|
maxFeePerGas,
|
191
192
|
maxPriorityFeePerGas,
|
192
193
|
nonce,
|
194
|
+
parameters: [...defaultParameters, 'sidecars'],
|
193
195
|
to,
|
194
196
|
value,
|
195
197
|
...rest,
|
package/chains/index.ts
CHANGED
@@ -14,7 +14,6 @@ export { astarZkyoto } from './definitions/astarZkyoto.js'
|
|
14
14
|
export { arbitrumSepolia } from './definitions/arbitrumSepolia.js'
|
15
15
|
export { areonNetwork } from './definitions/areonNetwork.js'
|
16
16
|
export { areonNetworkTestnet } from './definitions/areonNetworkTestnet.js'
|
17
|
-
export { astarZkatana } from './definitions/astarZkatana.js'
|
18
17
|
export { aurora } from './definitions/aurora.js'
|
19
18
|
export { auroraTestnet } from './definitions/auroraTestnet.js'
|
20
19
|
export { auroria } from './definitions/auroria.js'
|
package/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '2.9.
|
1
|
+
export const version = '2.9.15'
|
@@ -20,7 +20,7 @@ export type GetTimeToNextGameParameters<
|
|
20
20
|
'portal' | 'disputeGameFactory'
|
21
21
|
> & {
|
22
22
|
/**
|
23
|
-
* The buffer to account for
|
23
|
+
* The buffer to account for discrepancies between non-deterministic time intervals.
|
24
24
|
* @default 1.1
|
25
25
|
*/
|
26
26
|
intervalBuffer?: number | undefined
|
@@ -25,7 +25,7 @@ export type GetTimeToNextL2OutputParameters<
|
|
25
25
|
> = GetChainParameter<chain, chainOverride> &
|
26
26
|
GetContractAddressParameter<_derivedChain, 'l2OutputOracle'> & {
|
27
27
|
/**
|
28
|
-
* The buffer to account for
|
28
|
+
* The buffer to account for discrepancies between non-deterministic time intervals.
|
29
29
|
* @default 1.1
|
30
30
|
*/
|
31
31
|
intervalBuffer?: number | undefined
|
@@ -41,7 +41,7 @@ export type GetTimeToProveParameters<
|
|
41
41
|
>
|
42
42
|
> & {
|
43
43
|
/**
|
44
|
-
* The buffer to account for
|
44
|
+
* The buffer to account for discrepancies between non-deterministic time intervals.
|
45
45
|
* @default 1.1
|
46
46
|
*/
|
47
47
|
intervalBuffer?:
|
@@ -36,7 +36,7 @@ export type WaitForNextGameParameters<
|
|
36
36
|
*/
|
37
37
|
limit?: number | undefined
|
38
38
|
/**
|
39
|
-
* The buffer to account for
|
39
|
+
* The buffer to account for discrepancies between non-deterministic time intervals.
|
40
40
|
* @default 1.1
|
41
41
|
*/
|
42
42
|
intervalBuffer?: GetTimeToNextGameParameters['intervalBuffer'] | undefined
|
@@ -29,7 +29,7 @@ export type WaitForNextL2OutputParameters<
|
|
29
29
|
> = GetChainParameter<chain, chainOverride> &
|
30
30
|
GetContractAddressParameter<_derivedChain, 'l2OutputOracle'> & {
|
31
31
|
/**
|
32
|
-
* The buffer to account for
|
32
|
+
* The buffer to account for discrepancies between non-deterministic time intervals.
|
33
33
|
* @default 1.1
|
34
34
|
*/
|
35
35
|
intervalBuffer?:
|
package/package.json
CHANGED
package/types/transaction.ts
CHANGED
@@ -226,6 +226,9 @@ export type TransactionRequestEIP4844<
|
|
226
226
|
accessList?: AccessList | undefined
|
227
227
|
/** The blobs associated with this transaction. */
|
228
228
|
blobs: readonly Hex[] | readonly ByteArray[]
|
229
|
+
blobVersionedHashes?: readonly Hex[] | undefined
|
230
|
+
kzg?: Kzg | undefined
|
231
|
+
sidecars?: readonly BlobSidecar<Hex>[] | undefined
|
229
232
|
type?: TTransactionType | undefined
|
230
233
|
}
|
231
234
|
export type TransactionRequest<TQuantity = bigint, TIndex = number> = OneOf<
|
@@ -235,6 +238,20 @@ export type TransactionRequest<TQuantity = bigint, TIndex = number> = OneOf<
|
|
235
238
|
| TransactionRequestEIP4844<TQuantity, TIndex>
|
236
239
|
>
|
237
240
|
|
241
|
+
export type TransactionRequestGeneric<
|
242
|
+
TQuantity = bigint,
|
243
|
+
TIndex = number,
|
244
|
+
> = TransactionRequestBase<TQuantity, TIndex> & {
|
245
|
+
accessList?: AccessList | undefined
|
246
|
+
blobs?: readonly Hex[] | readonly ByteArray[] | undefined
|
247
|
+
blobVersionedHashes?: readonly Hex[] | undefined
|
248
|
+
gasPrice?: TQuantity | undefined
|
249
|
+
maxFeePerBlobGas?: TQuantity | undefined
|
250
|
+
maxFeePerGas?: TQuantity | undefined
|
251
|
+
maxPriorityFeePerGas?: TQuantity | undefined
|
252
|
+
type?: string | undefined
|
253
|
+
}
|
254
|
+
|
238
255
|
export type TransactionSerializedEIP1559 = `0x02${string}`
|
239
256
|
export type TransactionSerializedEIP2930 = `0x01${string}`
|
240
257
|
export type TransactionSerializedEIP4844 = `0x03${string}`
|
@@ -300,17 +317,18 @@ export type TransactionSerializableEIP4844<
|
|
300
317
|
ExactPartial<FeeValuesEIP4844<TQuantity>> & {
|
301
318
|
accessList?: AccessList | undefined
|
302
319
|
chainId: number
|
320
|
+
sidecars?: readonly BlobSidecar<Hex>[] | false | undefined
|
303
321
|
type?: 'eip4844' | undefined
|
304
322
|
yParity?: number | undefined
|
305
323
|
} & OneOf<
|
306
324
|
| {
|
325
|
+
blobs?: readonly Hex[] | readonly ByteArray[] | undefined
|
307
326
|
blobVersionedHashes: readonly Hex[]
|
308
|
-
sidecars?: readonly BlobSidecar<Hex>[] | false | undefined
|
309
327
|
}
|
310
328
|
| {
|
311
329
|
blobs: readonly Hex[] | readonly ByteArray[]
|
330
|
+
blobVersionedHashes?: readonly Hex[] | undefined
|
312
331
|
kzg: Kzg
|
313
|
-
sidecars?: false | undefined
|
314
332
|
}
|
315
333
|
>
|
316
334
|
|
@@ -7,11 +7,13 @@ import { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'
|
|
7
7
|
type To = 'hex' | 'bytes'
|
8
8
|
|
9
9
|
export type BlobsToCommitmentsParameters<
|
10
|
-
blobs extends ByteArray[] | Hex[] =
|
10
|
+
blobs extends readonly ByteArray[] | readonly Hex[] =
|
11
|
+
| readonly ByteArray[]
|
12
|
+
| readonly Hex[],
|
11
13
|
to extends To | undefined = undefined,
|
12
14
|
> = {
|
13
15
|
/** Blobs to transform into commitments. */
|
14
|
-
blobs: blobs | ByteArray[] | Hex[]
|
16
|
+
blobs: blobs | readonly ByteArray[] | readonly Hex[]
|
15
17
|
/** KZG implementation. */
|
16
18
|
kzg: Pick<Kzg, 'blobToKzgCommitment'>
|
17
19
|
/** Return type. */
|
@@ -19,8 +21,8 @@ export type BlobsToCommitmentsParameters<
|
|
19
21
|
}
|
20
22
|
|
21
23
|
export type BlobsToCommitmentsReturnType<to extends To> =
|
22
|
-
| (to extends 'bytes' ? ByteArray[] : never)
|
23
|
-
| (to extends 'hex' ? Hex[] : never)
|
24
|
+
| (to extends 'bytes' ? readonly ByteArray[] : never)
|
25
|
+
| (to extends 'hex' ? readonly Hex[] : never)
|
24
26
|
|
25
27
|
export type BlobsToCommitmentsErrorType =
|
26
28
|
| HexToBytesErrorType
|
@@ -40,10 +42,10 @@ export type BlobsToCommitmentsErrorType =
|
|
40
42
|
* ```
|
41
43
|
*/
|
42
44
|
export function blobsToCommitments<
|
43
|
-
const blobs extends ByteArray[] | Hex[],
|
45
|
+
const blobs extends readonly ByteArray[] | readonly Hex[],
|
44
46
|
to extends To =
|
45
|
-
| (blobs extends Hex[] ? 'hex' : never)
|
46
|
-
| (blobs extends ByteArray[] ? 'bytes' : never),
|
47
|
+
| (blobs extends readonly Hex[] ? 'hex' : never)
|
48
|
+
| (blobs extends readonly ByteArray[] ? 'bytes' : never),
|
47
49
|
>(
|
48
50
|
parameters: BlobsToCommitmentsParameters<blobs, to>,
|
49
51
|
): BlobsToCommitmentsReturnType<to> {
|
@@ -7,15 +7,15 @@ import { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'
|
|
7
7
|
type To = 'hex' | 'bytes'
|
8
8
|
|
9
9
|
export type blobsToProofsParameters<
|
10
|
-
blobs extends ByteArray[] | Hex[],
|
11
|
-
commitments extends ByteArray[] | Hex[],
|
10
|
+
blobs extends readonly ByteArray[] | readonly Hex[],
|
11
|
+
commitments extends readonly ByteArray[] | readonly Hex[],
|
12
12
|
to extends To =
|
13
|
-
| (blobs extends Hex[] ? 'hex' : never)
|
14
|
-
| (blobs extends ByteArray[] ? 'bytes' : never),
|
13
|
+
| (blobs extends readonly Hex[] ? 'hex' : never)
|
14
|
+
| (blobs extends readonly ByteArray[] ? 'bytes' : never),
|
15
15
|
///
|
16
16
|
_blobsType =
|
17
|
-
| (blobs extends Hex[] ? Hex[] : never)
|
18
|
-
| (blobs extends ByteArray[] ? ByteArray[] : never),
|
17
|
+
| (blobs extends readonly Hex[] ? readonly Hex[] : never)
|
18
|
+
| (blobs extends readonly ByteArray[] ? readonly ByteArray[] : never),
|
19
19
|
> = {
|
20
20
|
/** Blobs to transform into proofs. */
|
21
21
|
blobs: blobs
|
@@ -56,11 +56,11 @@ export type blobsToProofsErrorType =
|
|
56
56
|
* ```
|
57
57
|
*/
|
58
58
|
export function blobsToProofs<
|
59
|
-
const blobs extends ByteArray[] | Hex[],
|
60
|
-
const commitments extends ByteArray[] | Hex[],
|
59
|
+
const blobs extends readonly ByteArray[] | readonly Hex[],
|
60
|
+
const commitments extends readonly ByteArray[] | readonly Hex[],
|
61
61
|
to extends To =
|
62
|
-
| (blobs extends Hex[] ? 'hex' : never)
|
63
|
-
| (blobs extends ByteArray[] ? 'bytes' : never),
|
62
|
+
| (blobs extends readonly Hex[] ? 'hex' : never)
|
63
|
+
| (blobs extends readonly ByteArray[] ? 'bytes' : never),
|
64
64
|
>(
|
65
65
|
parameters: blobsToProofsParameters<blobs, commitments, to>,
|
66
66
|
): blobsToProofsReturnType<to> {
|
@@ -8,11 +8,13 @@ import {
|
|
8
8
|
type To = 'hex' | 'bytes'
|
9
9
|
|
10
10
|
export type CommitmentsToVersionedHashesParameters<
|
11
|
-
commitments extends Uint8Array[] | Hex[] =
|
11
|
+
commitments extends readonly Uint8Array[] | readonly Hex[] =
|
12
|
+
| readonly Uint8Array[]
|
13
|
+
| readonly Hex[],
|
12
14
|
to extends To | undefined = undefined,
|
13
15
|
> = {
|
14
16
|
/** Commitments from blobs. */
|
15
|
-
commitments: commitments | Uint8Array[] | Hex[]
|
17
|
+
commitments: commitments | readonly Uint8Array[] | readonly Hex[]
|
16
18
|
/** Return type. */
|
17
19
|
to?: to | To | undefined
|
18
20
|
/** Version to tag onto the hashes. */
|
@@ -20,8 +22,8 @@ export type CommitmentsToVersionedHashesParameters<
|
|
20
22
|
}
|
21
23
|
|
22
24
|
export type CommitmentsToVersionedHashesReturnType<to extends To> =
|
23
|
-
| (to extends 'bytes' ? ByteArray[] : never)
|
24
|
-
| (to extends 'hex' ? Hex[] : never)
|
25
|
+
| (to extends 'bytes' ? readonly ByteArray[] : never)
|
26
|
+
| (to extends 'hex' ? readonly Hex[] : never)
|
25
27
|
|
26
28
|
export type CommitmentsToVersionedHashesErrorType =
|
27
29
|
| CommitmentToVersionedHashErrorType
|
@@ -45,10 +47,10 @@ export type CommitmentsToVersionedHashesErrorType =
|
|
45
47
|
* ```
|
46
48
|
*/
|
47
49
|
export function commitmentsToVersionedHashes<
|
48
|
-
const commitments extends Uint8Array[] | Hex[],
|
50
|
+
const commitments extends readonly Uint8Array[] | readonly Hex[],
|
49
51
|
to extends To =
|
50
|
-
| (commitments extends Hex[] ? 'hex' : never)
|
51
|
-
| (commitments extends ByteArray[] ? 'bytes' : never),
|
52
|
+
| (commitments extends readonly Hex[] ? 'hex' : never)
|
53
|
+
| (commitments extends readonly ByteArray[] ? 'bytes' : never),
|
52
54
|
>(
|
53
55
|
parameters: CommitmentsToVersionedHashesParameters<commitments, to>,
|
54
56
|
): CommitmentsToVersionedHashesReturnType<to> {
|
@@ -67,5 +69,5 @@ export function commitmentsToVersionedHashes<
|
|
67
69
|
}) as any,
|
68
70
|
)
|
69
71
|
}
|
70
|
-
return hashes as
|
72
|
+
return hashes as any
|
71
73
|
}
|
@@ -21,8 +21,8 @@ export type SidecarsToVersionedHashesParameters<
|
|
21
21
|
}
|
22
22
|
|
23
23
|
export type SidecarsToVersionedHashesReturnType<to extends To> =
|
24
|
-
| (to extends 'bytes' ? ByteArray[] : never)
|
25
|
-
| (to extends 'hex' ? Hex[] : never)
|
24
|
+
| (to extends 'bytes' ? readonly ByteArray[] : never)
|
25
|
+
| (to extends 'hex' ? readonly Hex[] : never)
|
26
26
|
|
27
27
|
export type SidecarsToVersionedHashesErrorType =
|
28
28
|
| CommitmentToVersionedHashErrorType
|
@@ -62,5 +62,5 @@ export function sidecarsToVersionedHashes<
|
|
62
62
|
}) as any,
|
63
63
|
)
|
64
64
|
}
|
65
|
-
return hashes as
|
65
|
+
return hashes as any
|
66
66
|
}
|
@@ -14,14 +14,14 @@ type To = 'hex' | 'bytes'
|
|
14
14
|
|
15
15
|
export type ToBlobSidecarsParameters<
|
16
16
|
data extends Hex | ByteArray | undefined = undefined,
|
17
|
-
blobs extends Hex[] | ByteArray[] | undefined = undefined,
|
17
|
+
blobs extends readonly Hex[] | readonly ByteArray[] | undefined = undefined,
|
18
18
|
to extends To =
|
19
|
-
| (blobs extends Hex[] ? 'hex' : never)
|
20
|
-
| (blobs extends ByteArray[] ? 'bytes' : never),
|
19
|
+
| (blobs extends readonly Hex[] ? 'hex' : never)
|
20
|
+
| (blobs extends readonly ByteArray[] ? 'bytes' : never),
|
21
21
|
///
|
22
22
|
_blobsType =
|
23
|
-
| (blobs extends Hex[] ? Hex[] : never)
|
24
|
-
| (blobs extends ByteArray[] ? ByteArray[] : never),
|
23
|
+
| (blobs extends readonly Hex[] ? readonly Hex[] : never)
|
24
|
+
| (blobs extends readonly ByteArray[] ? readonly ByteArray[] : never),
|
25
25
|
> = {
|
26
26
|
/** Return type. */
|
27
27
|
to?: to | To | undefined
|
@@ -34,11 +34,11 @@ export type ToBlobSidecarsParameters<
|
|
34
34
|
}
|
35
35
|
| {
|
36
36
|
/** Blobs. */
|
37
|
-
blobs: blobs | Hex[] | ByteArray[]
|
37
|
+
blobs: blobs | readonly Hex[] | readonly ByteArray[]
|
38
38
|
/** Commitment for each blob. */
|
39
|
-
commitments: _blobsType | Hex[] | ByteArray[]
|
39
|
+
commitments: _blobsType | readonly Hex[] | readonly ByteArray[]
|
40
40
|
/** Proof for each blob. */
|
41
|
-
proofs: _blobsType | Hex[] | ByteArray[]
|
41
|
+
proofs: _blobsType | readonly Hex[] | readonly ByteArray[]
|
42
42
|
}
|
43
43
|
>
|
44
44
|
|
@@ -81,12 +81,15 @@ export type ToBlobSidecarsErrorType =
|
|
81
81
|
*/
|
82
82
|
export function toBlobSidecars<
|
83
83
|
const data extends Hex | ByteArray | undefined = undefined,
|
84
|
-
const blobs extends
|
84
|
+
const blobs extends
|
85
|
+
| readonly Hex[]
|
86
|
+
| readonly ByteArray[]
|
87
|
+
| undefined = undefined,
|
85
88
|
to extends To =
|
86
89
|
| (data extends Hex ? 'hex' : never)
|
87
90
|
| (data extends ByteArray ? 'bytes' : never)
|
88
|
-
| (blobs extends Hex[] ? 'hex' : never)
|
89
|
-
| (blobs extends ByteArray[] ? 'bytes' : never),
|
91
|
+
| (blobs extends readonly Hex[] ? 'hex' : never)
|
92
|
+
| (blobs extends readonly ByteArray[] ? 'bytes' : never),
|
90
93
|
>(
|
91
94
|
parameters: ToBlobSidecarsParameters<data, blobs, to>,
|
92
95
|
): ToBlobSidecarsReturnType<to> {
|
package/utils/blob/toBlobs.ts
CHANGED
@@ -30,8 +30,8 @@ export type ToBlobsParameters<
|
|
30
30
|
}
|
31
31
|
|
32
32
|
export type ToBlobsReturnType<to extends To> =
|
33
|
-
| (to extends 'bytes' ? ByteArray[] : never)
|
34
|
-
| (to extends 'hex' ? Hex[] : never)
|
33
|
+
| (to extends 'bytes' ? readonly ByteArray[] : never)
|
34
|
+
| (to extends 'hex' ? readonly Hex[] : never)
|
35
35
|
|
36
36
|
export type ToBlobsErrorType =
|
37
37
|
| BlobSizeTooLargeErrorType
|
@@ -109,5 +109,5 @@ export function toBlobs<
|
|
109
109
|
to === 'bytes'
|
110
110
|
? blobs.map((x) => x.bytes)
|
111
111
|
: blobs.map((x) => bytesToHex(x.bytes))
|
112
|
-
) as
|
112
|
+
) as any
|
113
113
|
}
|
@@ -34,6 +34,8 @@ export function formatTransactionRequest(
|
|
34
34
|
|
35
35
|
if (typeof request.accessList !== 'undefined')
|
36
36
|
rpcRequest.accessList = request.accessList
|
37
|
+
if (typeof request.blobVersionedHashes !== 'undefined')
|
38
|
+
rpcRequest.blobVersionedHashes = request.blobVersionedHashes
|
37
39
|
if (typeof request.blobs !== 'undefined') {
|
38
40
|
if (typeof request.blobs[0] !== 'string')
|
39
41
|
rpcRequest.blobs = (request.blobs as ByteArray[]).map((x) =>
|
@@ -9,10 +9,10 @@ import type {
|
|
9
9
|
FeeValuesLegacy,
|
10
10
|
} from '../../index.js'
|
11
11
|
import type {
|
12
|
-
TransactionRequest,
|
13
12
|
TransactionRequestEIP1559,
|
14
13
|
TransactionRequestEIP2930,
|
15
14
|
TransactionRequestEIP4844,
|
15
|
+
TransactionRequestGeneric,
|
16
16
|
TransactionRequestLegacy,
|
17
17
|
TransactionSerializableEIP1559,
|
18
18
|
TransactionSerializableEIP2930,
|
@@ -79,7 +79,7 @@ type EIP4844Properties = Assign<
|
|
79
79
|
|
80
80
|
export type GetTransactionType<
|
81
81
|
transaction extends OneOf<
|
82
|
-
TransactionSerializableGeneric |
|
82
|
+
TransactionSerializableGeneric | TransactionRequestGeneric
|
83
83
|
> = TransactionSerializableGeneric,
|
84
84
|
result =
|
85
85
|
| (transaction extends
|
@@ -115,7 +115,7 @@ export type GetTransationTypeErrorType =
|
|
115
115
|
|
116
116
|
export function getTransactionType<
|
117
117
|
const transaction extends OneOf<
|
118
|
-
TransactionSerializableGeneric |
|
118
|
+
TransactionSerializableGeneric | TransactionRequestGeneric
|
119
119
|
>,
|
120
120
|
>(transaction: transaction): GetTransactionType<transaction> {
|
121
121
|
if (transaction.type)
|
@@ -157,7 +157,11 @@ function serializeTransactionEIP4844(
|
|
157
157
|
let blobVersionedHashes = transaction.blobVersionedHashes
|
158
158
|
let sidecars = transaction.sidecars
|
159
159
|
// If `blobs` are passed, we will need to compute the KZG commitments & proofs.
|
160
|
-
if (
|
160
|
+
if (
|
161
|
+
transaction.blobs &&
|
162
|
+
(typeof blobVersionedHashes === 'undefined' ||
|
163
|
+
typeof sidecars === 'undefined')
|
164
|
+
) {
|
161
165
|
const blobs = (
|
162
166
|
typeof transaction.blobs[0] === 'string'
|
163
167
|
? transaction.blobs
|
@@ -168,13 +172,15 @@ function serializeTransactionEIP4844(
|
|
168
172
|
blobs,
|
169
173
|
kzg,
|
170
174
|
})
|
171
|
-
const proofs = blobsToProofs({ blobs, commitments, kzg })
|
172
|
-
blobVersionedHashes = commitmentsToVersionedHashes({
|
173
|
-
commitments,
|
174
|
-
})
|
175
175
|
|
176
|
-
if (
|
176
|
+
if (typeof blobVersionedHashes === 'undefined')
|
177
|
+
blobVersionedHashes = commitmentsToVersionedHashes({
|
178
|
+
commitments,
|
179
|
+
})
|
180
|
+
if (typeof sidecars === 'undefined') {
|
181
|
+
const proofs = blobsToProofs({ blobs, commitments, kzg })
|
177
182
|
sidecars = toBlobSidecars({ blobs, commitments, proofs })
|
183
|
+
}
|
178
184
|
}
|
179
185
|
|
180
186
|
const serializedAccessList = serializeAccessList(accessList)
|