viem 1.18.4 → 1.18.6

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 (47) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/_cjs/chains/celo/formatters.js +23 -35
  3. package/_cjs/chains/celo/formatters.js.map +1 -1
  4. package/_cjs/chains/celo/serializers.js +20 -38
  5. package/_cjs/chains/celo/serializers.js.map +1 -1
  6. package/_cjs/chains/celo/utils.js +44 -0
  7. package/_cjs/chains/celo/utils.js.map +1 -0
  8. package/_cjs/chains/zksync/formatters.js +6 -2
  9. package/_cjs/chains/zksync/formatters.js.map +1 -1
  10. package/_cjs/errors/version.js +1 -1
  11. package/_cjs/utils/transaction/serializeTransaction.js +14 -5
  12. package/_cjs/utils/transaction/serializeTransaction.js.map +1 -1
  13. package/_esm/chains/celo/formatters.js +23 -35
  14. package/_esm/chains/celo/formatters.js.map +1 -1
  15. package/_esm/chains/celo/serializers.js +19 -44
  16. package/_esm/chains/celo/serializers.js.map +1 -1
  17. package/_esm/chains/celo/utils.js +39 -0
  18. package/_esm/chains/celo/utils.js.map +1 -0
  19. package/_esm/chains/zksync/formatters.js +6 -2
  20. package/_esm/chains/zksync/formatters.js.map +1 -1
  21. package/_esm/errors/version.js +1 -1
  22. package/_esm/utils/transaction/serializeTransaction.js +17 -5
  23. package/_esm/utils/transaction/serializeTransaction.js.map +1 -1
  24. package/_types/chains/celo/formatters.d.ts +6 -6
  25. package/_types/chains/celo/formatters.d.ts.map +1 -1
  26. package/_types/chains/celo/serializers.d.ts +3 -2
  27. package/_types/chains/celo/serializers.d.ts.map +1 -1
  28. package/_types/chains/celo/types.d.ts +12 -7
  29. package/_types/chains/celo/types.d.ts.map +1 -1
  30. package/_types/chains/celo/utils.d.ts +7 -0
  31. package/_types/chains/celo/utils.d.ts.map +1 -0
  32. package/_types/chains/definitions/celo.d.ts +6 -6
  33. package/_types/chains/definitions/celoAlfajores.d.ts +6 -6
  34. package/_types/chains/definitions/celoCannoli.d.ts +6 -6
  35. package/_types/chains/zksync/formatters.d.ts.map +1 -1
  36. package/_types/chains/zksync/types.d.ts +7 -7
  37. package/_types/chains/zksync/types.d.ts.map +1 -1
  38. package/_types/errors/version.d.ts +1 -1
  39. package/chains/celo/formatters.ts +24 -37
  40. package/chains/celo/serializers.ts +23 -59
  41. package/chains/celo/types.ts +29 -19
  42. package/chains/celo/utils.ts +68 -0
  43. package/chains/zksync/formatters.ts +6 -2
  44. package/chains/zksync/types.ts +7 -7
  45. package/errors/version.ts +1 -1
  46. package/package.json +1 -1
  47. package/utils/transaction/serializeTransaction.ts +17 -4
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../chains/zksync/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../chains/zksync/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.18.4";
1
+ export declare const version = "1.18.6";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -19,22 +19,7 @@ import type {
19
19
  CeloTransactionReceiptOverrides,
20
20
  CeloTransactionRequest,
21
21
  } from './types.js'
22
-
23
- function isTransactionRequestCIP64(args: CeloTransactionRequest): boolean {
24
- if (args.type === 'cip64') return true
25
- if (args.type) return false
26
- return (
27
- 'feeCurrency' in args &&
28
- args.gatewayFee === undefined &&
29
- args.gatewayFeeRecipient === undefined
30
- )
31
- }
32
-
33
- function isTransactionRequestCIP42(args: CeloTransactionRequest): boolean {
34
- if (args.type === 'cip42') return true
35
- if (args.type) return false
36
- return args.gatewayFee !== undefined || args.gatewayFeeRecipient !== undefined
37
- }
22
+ import { isCIP42, isCIP64 } from './utils.js'
38
23
 
39
24
  export const formattersCelo = {
40
25
  block: /*#__PURE__*/ defineBlock({
@@ -70,15 +55,19 @@ export const formattersCelo = {
70
55
  }),
71
56
  transaction: /*#__PURE__*/ defineTransaction({
72
57
  format(args: CeloRpcTransaction): CeloTransaction {
73
- if (args.type === '0x7b')
74
- return {
75
- feeCurrency: args.feeCurrency,
76
- } as CeloTransaction
77
- return {
78
- feeCurrency: args.feeCurrency,
79
- gatewayFee: args.gatewayFee ? hexToBigInt(args.gatewayFee) : null,
80
- gatewayFeeRecipient: args.gatewayFeeRecipient,
81
- } as CeloTransaction
58
+ const transaction = { feeCurrency: args.feeCurrency } as CeloTransaction
59
+
60
+ if (args.type === '0x7b') transaction.type = 'cip64'
61
+ else {
62
+ if (args.type === '0x7c') transaction.type = 'cip42'
63
+
64
+ transaction.gatewayFee = args.gatewayFee
65
+ ? hexToBigInt(args.gatewayFee)
66
+ : null
67
+ transaction.gatewayFeeRecipient = args.gatewayFeeRecipient
68
+ }
69
+
70
+ return transaction
82
71
  },
83
72
  }),
84
73
  transactionReceipt: /*#__PURE__*/ defineTransactionReceipt({
@@ -95,22 +84,20 @@ export const formattersCelo = {
95
84
 
96
85
  transactionRequest: /*#__PURE__*/ defineTransactionRequest({
97
86
  format(args: CeloTransactionRequest): CeloRpcTransactionRequest {
98
- if (isTransactionRequestCIP64(args))
99
- return {
100
- type: '0x7b',
101
- feeCurrency: args.feeCurrency,
102
- } as CeloRpcTransactionRequest
103
-
104
87
  const request = {
105
88
  feeCurrency: args.feeCurrency,
106
- gatewayFee:
107
- typeof args.gatewayFee !== 'undefined'
108
- ? numberToHex(args.gatewayFee)
109
- : undefined,
110
- gatewayFeeRecipient: args.gatewayFeeRecipient,
111
89
  } as CeloRpcTransactionRequest
112
90
 
113
- if (isTransactionRequestCIP42(args)) request.type = '0x7c'
91
+ if (isCIP64(args)) request.type = '0x7b'
92
+ else {
93
+ if (isCIP42(args)) request.type = '0x7c'
94
+
95
+ request.gatewayFee =
96
+ typeof args.gatewayFee !== 'undefined'
97
+ ? numberToHex(args.gatewayFee)
98
+ : undefined
99
+ request.gatewayFeeRecipient = args.gatewayFeeRecipient
100
+ }
114
101
 
115
102
  return request
116
103
  },
@@ -22,20 +22,15 @@ import type {
22
22
  TransactionSerializedCIP42,
23
23
  TransactionSerializedCIP64,
24
24
  } from './types.js'
25
+ import { isCIP42, isCIP64, isEmpty, isPresent } from './utils.js'
25
26
 
26
27
  export const serializeTransactionCelo: SerializeTransactionFn<
27
- CeloTransactionSerializable
28
+ CeloTransactionSerializable | TransactionSerializable
28
29
  > = (tx, signature) => {
29
30
  if (isCIP64(tx)) {
30
- return serializeTransactionCIP64(
31
- tx as TransactionSerializableCIP64,
32
- signature,
33
- )
31
+ return serializeTransactionCIP64(tx, signature)
34
32
  } else if (isCIP42(tx)) {
35
- return serializeTransactionCIP42(
36
- tx as TransactionSerializableCIP42,
37
- signature,
38
- )
33
+ return serializeTransactionCIP42(tx, signature)
39
34
  } else {
40
35
  return serializeTransaction(tx as TransactionSerializable, signature)
41
36
  }
@@ -131,7 +126,7 @@ function serializeTransactionCIP64(
131
126
  value ? toHex(value) : '0x',
132
127
  data ?? '0x',
133
128
  serializeAccessList(accessList),
134
- feeCurrency ?? '0x',
129
+ feeCurrency!,
135
130
  ]
136
131
 
137
132
  if (signature) {
@@ -148,43 +143,8 @@ function serializeTransactionCIP64(
148
143
  ]) as SerializeTransactionCIP64ReturnType
149
144
  }
150
145
 
151
- //////////////////////////////////////////////////////////////////////////////
152
- // Utilities
153
-
154
- // process as CIP42 if any of these fields are present. realistically gatewayfee is not used but is part of spec
155
- function isCIP42(transaction: CeloTransactionSerializable): boolean {
156
- if (transaction.type === 'cip42') return true
157
- // if the type is defined as anything else, assume it is *not* cip42
158
- if (transaction.type) return false
159
-
160
- // if the type is undefined, check if the fields match the expectations for cip42
161
- return (
162
- 'maxFeePerGas' in transaction &&
163
- 'maxPriorityFeePerGas' in transaction &&
164
- ('feeCurrency' in transaction ||
165
- 'gatewayFee' in transaction ||
166
- 'gatewayFeeRecipient' in transaction)
167
- )
168
- }
169
-
170
- function isCIP64(transaction: CeloTransactionSerializable): boolean {
171
- if (transaction.type === 'cip64') return true
172
- // if the type is defined as anything else, assume it is *not* cip64
173
- if (transaction.type) return false
174
-
175
- // if the type is undefined, check if the fields match the expectations for cip64
176
- return (
177
- 'maxFeePerGas' in transaction &&
178
- 'maxPriorityFeePerGas' in transaction &&
179
- 'feeCurrency' in transaction &&
180
- !('gatewayFee' in transaction) &&
181
- !('gatewayFeeRecipient' in transaction)
182
- )
183
- }
184
-
185
- // maxFeePerGas must be less than 2^256 - 1: however writing like that caused exceptions to be raised
186
- const MAX_MAX_FEE_PER_GAS =
187
- 115792089237316195423570985008687907853269984665640564039457584007913129639935n
146
+ // maxFeePerGas must be less than 2^256 - 1
147
+ const MAX_MAX_FEE_PER_GAS = 2n ** 256n - 1n
188
148
 
189
149
  export function assertTransactionCIP42(
190
150
  transaction: TransactionSerializableCIP42,
@@ -206,32 +166,36 @@ export function assertTransactionCIP42(
206
166
  '`gasPrice` is not a valid CIP-42 Transaction attribute.',
207
167
  )
208
168
 
209
- if (maxFeePerGas && maxFeePerGas > MAX_MAX_FEE_PER_GAS)
169
+ if (isPresent(maxFeePerGas) && maxFeePerGas > MAX_MAX_FEE_PER_GAS)
210
170
  throw new FeeCapTooHighError({ maxFeePerGas })
211
171
 
212
172
  if (
213
- maxPriorityFeePerGas &&
214
- maxFeePerGas &&
173
+ isPresent(maxPriorityFeePerGas) &&
174
+ isPresent(maxFeePerGas) &&
215
175
  maxPriorityFeePerGas > maxFeePerGas
216
176
  )
217
177
  throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas })
218
178
 
219
179
  if (
220
- (gatewayFee && !gatewayFeeRecipient) ||
221
- (gatewayFeeRecipient && !gatewayFee)
180
+ (isPresent(gatewayFee) && isEmpty(gatewayFeeRecipient)) ||
181
+ (isPresent(gatewayFeeRecipient) && isEmpty(gatewayFee))
222
182
  ) {
223
183
  throw new BaseError(
224
184
  '`gatewayFee` and `gatewayFeeRecipient` must be provided together.',
225
185
  )
226
186
  }
227
187
 
228
- if (feeCurrency && !feeCurrency?.startsWith('0x')) {
188
+ if (isPresent(feeCurrency) && !isAddress(feeCurrency)) {
229
189
  throw new BaseError(
230
190
  '`feeCurrency` MUST be a token address for CIP-42 transactions.',
231
191
  )
232
192
  }
233
193
 
234
- if (!feeCurrency && !gatewayFeeRecipient) {
194
+ if (isPresent(gatewayFeeRecipient) && !isAddress(gatewayFeeRecipient)) {
195
+ throw new InvalidAddressError(gatewayFeeRecipient)
196
+ }
197
+
198
+ if (isEmpty(feeCurrency) && isEmpty(gatewayFeeRecipient)) {
235
199
  throw new BaseError(
236
200
  'Either `feeCurrency` or `gatewayFeeRecipient` must be provided for CIP-42 transactions.',
237
201
  )
@@ -258,22 +222,22 @@ export function assertTransactionCIP64(
258
222
  '`gasPrice` is not a valid CIP-64 Transaction attribute.',
259
223
  )
260
224
 
261
- if (maxFeePerGas && maxFeePerGas > MAX_MAX_FEE_PER_GAS)
225
+ if (isPresent(maxFeePerGas) && maxFeePerGas > MAX_MAX_FEE_PER_GAS)
262
226
  throw new FeeCapTooHighError({ maxFeePerGas })
263
227
  if (
264
- maxPriorityFeePerGas &&
265
- maxFeePerGas &&
228
+ isPresent(maxPriorityFeePerGas) &&
229
+ isPresent(maxFeePerGas) &&
266
230
  maxPriorityFeePerGas > maxFeePerGas
267
231
  )
268
232
  throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas })
269
233
 
270
- if (feeCurrency && !feeCurrency?.startsWith('0x')) {
234
+ if (isPresent(feeCurrency) && !feeCurrency?.startsWith('0x')) {
271
235
  throw new BaseError(
272
236
  '`feeCurrency` MUST be a token address for CIP-64 transactions.',
273
237
  )
274
238
  }
275
239
 
276
- if (!feeCurrency) {
240
+ if (isEmpty(feeCurrency)) {
277
241
  throw new BaseError(
278
242
  '`feeCurrency` must be provided for CIP-64 transactions.',
279
243
  )
@@ -111,7 +111,7 @@ export type CeloTransactionRequest =
111
111
  export type CeloTransactionSerializable =
112
112
  | TransactionSerializableCIP42
113
113
  | TransactionSerializableCIP64
114
- | TransactionSerializable
114
+ | CeloTransactionSerializableBase
115
115
 
116
116
  export type CeloTransactionSerialized<
117
117
  TType extends CeloTransactionType = 'legacy',
@@ -135,21 +135,25 @@ type RpcTransactionRequest = RpcTransactionRequest_ & {
135
135
  gatewayFeeRecipient?: Address
136
136
  }
137
137
 
138
- export type RpcTransactionCIP42<TPending extends boolean = boolean> =
139
- TransactionBase<Quantity, Index, TPending> &
140
- FeeValuesEIP1559<Quantity> & {
141
- feeCurrency: Address | null
142
- gatewayFee: Hex | null
143
- gatewayFeeRecipient: Address | null
144
- type: '0x7c'
145
- }
138
+ export type RpcTransactionCIP42<TPending extends boolean = boolean> = Omit<
139
+ TransactionBase<Quantity, Index, TPending>,
140
+ 'typeHex'
141
+ > &
142
+ FeeValuesEIP1559<Quantity> & {
143
+ feeCurrency: Address | null
144
+ gatewayFee: Hex | null
145
+ gatewayFeeRecipient: Address | null
146
+ type: '0x7c'
147
+ }
146
148
 
147
- export type RpcTransactionCIP64<TPending extends boolean = boolean> =
148
- TransactionBase<Quantity, Index, TPending> &
149
- FeeValuesEIP1559<Quantity> & {
150
- feeCurrency: Address | null
151
- type: '0x7b'
152
- }
149
+ export type RpcTransactionCIP64<TPending extends boolean = boolean> = Omit<
150
+ TransactionBase<Quantity, Index, TPending>,
151
+ 'typeHex'
152
+ > &
153
+ FeeValuesEIP1559<Quantity> & {
154
+ feeCurrency: Address | null
155
+ type: '0x7b'
156
+ }
153
157
 
154
158
  export type RpcTransactionRequestCIP42 = TransactionRequestBase<
155
159
  Quantity,
@@ -231,9 +235,8 @@ export type TransactionSerializableCIP42<
231
235
  TQuantity = bigint,
232
236
  TIndex = number,
233
237
  > = TransactionSerializableBase<TQuantity, TIndex> &
234
- FeeValuesEIP1559<TQuantity> & {
238
+ Partial<FeeValuesEIP1559<TQuantity>> & {
235
239
  accessList?: AccessList
236
- gasPrice?: never
237
240
  feeCurrency?: Address
238
241
  gatewayFeeRecipient?: Address
239
242
  gatewayFee?: TQuantity
@@ -245,13 +248,20 @@ export type TransactionSerializableCIP64<
245
248
  TQuantity = bigint,
246
249
  TIndex = number,
247
250
  > = TransactionSerializableBase<TQuantity, TIndex> &
248
- FeeValuesEIP1559<TQuantity> & {
251
+ Partial<FeeValuesEIP1559<TQuantity>> & {
249
252
  accessList?: AccessList
250
- gasPrice?: never
251
253
  feeCurrency?: Address
254
+ gatewayFee?: undefined
255
+ gatewayFeeRecipient?: undefined
252
256
  chainId: number
253
257
  type?: 'cip64'
254
258
  }
255
259
 
260
+ export type CeloTransactionSerializableBase = TransactionSerializable & {
261
+ feeCurrency?: undefined
262
+ gatewayFee?: undefined
263
+ gatewayFeeRecipient?: undefined
264
+ }
265
+
256
266
  export type TransactionSerializedCIP42 = `0x7c${string}`
257
267
  export type TransactionSerializedCIP64 = `0x7b${string}`
@@ -0,0 +1,68 @@
1
+ import type { Address } from 'abitype'
2
+ import { trim } from '../../utils/data/trim.js'
3
+ import type {
4
+ CeloTransactionRequest,
5
+ CeloTransactionSerializable,
6
+ TransactionSerializableCIP42,
7
+ TransactionSerializableCIP64,
8
+ } from './types.js'
9
+
10
+ export function isEmpty(
11
+ value: string | undefined | number | BigInt,
12
+ ): value is undefined {
13
+ return (
14
+ value === 0 ||
15
+ value === 0n ||
16
+ value === undefined ||
17
+ value === null ||
18
+ value === '0' ||
19
+ value === '' ||
20
+ (typeof value === 'string' &&
21
+ (trim(value as Address).toLowerCase() === '0x' ||
22
+ trim(value as Address).toLowerCase() === '0x00'))
23
+ )
24
+ }
25
+
26
+ export function isPresent(
27
+ value: string | undefined | number | BigInt,
28
+ ): value is string | number | BigInt {
29
+ return !isEmpty(value)
30
+ }
31
+
32
+ export function isEIP1559(
33
+ transaction: CeloTransactionSerializable | CeloTransactionRequest,
34
+ ): boolean {
35
+ return (
36
+ isPresent(transaction.maxFeePerGas) &&
37
+ isPresent(transaction.maxPriorityFeePerGas)
38
+ )
39
+ }
40
+
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) return transaction.type === 'cip42'
47
+
48
+ return (
49
+ isEIP1559(transaction) &&
50
+ (isPresent(transaction.feeCurrency) ||
51
+ isPresent(transaction.gatewayFeeRecipient) ||
52
+ isPresent(transaction.gatewayFee))
53
+ )
54
+ }
55
+
56
+ export function isCIP64(
57
+ transaction: CeloTransactionSerializable | CeloTransactionRequest,
58
+ ): transaction is TransactionSerializableCIP64 {
59
+ // Enable end-user to force the tx to be considered as a cip64
60
+ if (transaction.type) return transaction.type === 'cip64'
61
+
62
+ return (
63
+ isEIP1559(transaction) &&
64
+ isPresent(transaction.feeCurrency) &&
65
+ isEmpty(transaction.gatewayFee) &&
66
+ isEmpty(transaction.gatewayFeeRecipient)
67
+ )
68
+ }
@@ -40,8 +40,12 @@ export const formattersZkSync = {
40
40
  return formatted
41
41
  }) as Hash[] | ZkSyncTransaction[]
42
42
  return {
43
- l1BatchNumber: hexToBigInt(args.l1BatchNumber),
44
- l1BatchTimestamp: hexToBigInt(args.l1BatchTimestamp),
43
+ l1BatchNumber: args.l1BatchNumber
44
+ ? hexToBigInt(args.l1BatchNumber)
45
+ : null,
46
+ l1BatchTimestamp: args.l1BatchTimestamp
47
+ ? hexToBigInt(args.l1BatchTimestamp)
48
+ : null,
45
49
  transactions,
46
50
  }
47
51
  },
@@ -45,7 +45,7 @@ export type ZkSyncLog<
45
45
  ? TAbiEvent['name']
46
46
  : undefined,
47
47
  > = Log_<TQuantity, TIndex, TPending, TAbiEvent, TStrict, TAbi, TEventName> & {
48
- l1BatchNumber: TQuantity
48
+ l1BatchNumber: TQuantity | null
49
49
  transactionLogIndex: TIndex
50
50
  logType: Hex | null
51
51
  }
@@ -125,8 +125,8 @@ export type ZkSyncBlock<
125
125
  // Block (RPC)
126
126
 
127
127
  export type ZkSyncRpcBlockOverrides = {
128
- l1BatchNumber: Hex
129
- l1BatchTimestamp: Hex
128
+ l1BatchNumber: Hex | null
129
+ l1BatchTimestamp: Hex | null
130
130
  }
131
131
  export type ZkSyncRpcBlock<
132
132
  TBlockTag extends BlockTag = BlockTag,
@@ -178,8 +178,8 @@ export type ZkSyncTransaction<TPending extends boolean = boolean> =
178
178
  // Transaction (RPC)
179
179
 
180
180
  type RpcTransactionOverrides = {
181
- l1BatchNumber: Hex
182
- l1BatchTxIndex: Hex
181
+ l1BatchNumber: Hex | null
182
+ l1BatchTxIndex: Hex | null
183
183
  }
184
184
 
185
185
  type RpcTransactionLegacy<TPending extends boolean = boolean> =
@@ -269,8 +269,8 @@ export type ZkSyncTransactionType = TransactionType | 'eip712' | 'priority'
269
269
  // https://era.zksync.io/docs/api/js/types.html#transactionreceipt
270
270
 
271
271
  export type ZkSyncRpcTransactionReceiptOverrides = {
272
- l1BatchNumber: Hex
273
- l1BatchTxIndex: Hex
272
+ l1BatchNumber: Hex | null
273
+ l1BatchTxIndex: Hex | null
274
274
  logs: ZkSyncRpcLog[]
275
275
  l2ToL1Logs: ZkSyncRpcL2ToL1Log[]
276
276
  root: Hex
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '1.18.4'
1
+ export const version = '1.18.6'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "1.18.4",
4
+ "version": "1.18.6",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -203,10 +203,23 @@ function serializeTransactionLegacy(
203
203
  ]
204
204
 
205
205
  if (signature) {
206
- let v = 27n + (signature.v === 27n ? 0n : 1n)
207
- if (chainId > 0) v = BigInt(chainId * 2) + BigInt(35n + signature.v - 27n)
208
- else if (signature.v !== v)
209
- throw new InvalidLegacyVError({ v: signature.v })
206
+ const v = (() => {
207
+ // EIP-155 (explicit chainId)
208
+ if (chainId > 0)
209
+ return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n)
210
+
211
+ // EIP-155 (inferred chainId)
212
+ if (signature.v >= 35n) {
213
+ const inferredChainId = (signature.v - 35n) / 2n
214
+ if (inferredChainId > 0) return signature.v
215
+ return 27n + (signature.v === 35n ? 0n : 1n)
216
+ }
217
+
218
+ // Pre-EIP-155 (no chainId)
219
+ const v = 27n + (signature.v === 27n ? 0n : 1n)
220
+ if (signature.v !== v) throw new InvalidLegacyVError({ v: signature.v })
221
+ return v
222
+ })()
210
223
 
211
224
  serializedTransaction = [
212
225
  ...serializedTransaction,