viem 2.27.3 → 2.28.0-canary-20250421235327
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 +12 -0
- package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -1
- package/_cjs/account-abstraction/accounts/implementations/toSimple7702SmartAccount.js +257 -0
- package/_cjs/account-abstraction/accounts/implementations/toSimple7702SmartAccount.js.map +1 -0
- package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -1
- package/_cjs/account-abstraction/accounts/toSmartAccount.js +2 -2
- package/_cjs/account-abstraction/accounts/toSmartAccount.js.map +1 -1
- package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js +7 -1
- package/_cjs/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -1
- package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js +21 -1
- package/_cjs/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -1
- package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js +2 -2
- package/_cjs/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -1
- package/_cjs/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -1
- package/_cjs/account-abstraction/constants/abis.js +691 -1
- package/_cjs/account-abstraction/constants/abis.js.map +1 -1
- package/_cjs/account-abstraction/constants/address.js +2 -1
- package/_cjs/account-abstraction/constants/address.js.map +1 -1
- package/_cjs/account-abstraction/index.js +6 -2
- package/_cjs/account-abstraction/index.js.map +1 -1
- package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js +19 -0
- package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -1
- package/_cjs/account-abstraction/utils/userOperation/getInitCode.js +18 -0
- package/_cjs/account-abstraction/utils/userOperation/getInitCode.js.map +1 -0
- package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js +30 -39
- package/_cjs/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -1
- package/_cjs/account-abstraction/utils/userOperation/getUserOperationTypedData.js +31 -0
- package/_cjs/account-abstraction/utils/userOperation/getUserOperationTypedData.js.map +1 -0
- package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js +3 -2
- package/_cjs/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -1
- package/_cjs/constants/address.js +2 -1
- package/_cjs/constants/address.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/experimental/eip5792/actions/getCallsStatus.js +1 -1
- package/_cjs/experimental/eip5792/actions/getCallsStatus.js.map +1 -1
- package/_cjs/experimental/eip5792/actions/sendCalls.js +1 -1
- package/_cjs/experimental/eip5792/actions/sendCalls.js.map +1 -1
- package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -1
- package/_esm/account-abstraction/accounts/implementations/toSimple7702SmartAccount.js +271 -0
- package/_esm/account-abstraction/accounts/implementations/toSimple7702SmartAccount.js.map +1 -0
- package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -1
- package/_esm/account-abstraction/accounts/toSmartAccount.js +2 -2
- package/_esm/account-abstraction/accounts/toSmartAccount.js.map +1 -1
- package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js +7 -1
- package/_esm/account-abstraction/actions/bundler/estimateUserOperationGas.js.map +1 -1
- package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js +21 -1
- package/_esm/account-abstraction/actions/bundler/prepareUserOperation.js.map +1 -1
- package/_esm/account-abstraction/actions/bundler/sendUserOperation.js +2 -2
- package/_esm/account-abstraction/actions/bundler/sendUserOperation.js.map +1 -1
- package/_esm/account-abstraction/actions/paymaster/getPaymasterData.js.map +1 -1
- package/_esm/account-abstraction/constants/abis.js +690 -0
- package/_esm/account-abstraction/constants/abis.js.map +1 -1
- package/_esm/account-abstraction/constants/address.js +1 -0
- package/_esm/account-abstraction/constants/address.js.map +1 -1
- package/_esm/account-abstraction/index.js +3 -2
- package/_esm/account-abstraction/index.js.map +1 -1
- package/_esm/account-abstraction/utils/formatters/userOperationRequest.js +19 -0
- package/_esm/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -1
- package/_esm/account-abstraction/utils/userOperation/getInitCode.js +15 -0
- package/_esm/account-abstraction/utils/userOperation/getInitCode.js.map +1 -0
- package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js +30 -39
- package/_esm/account-abstraction/utils/userOperation/getUserOperationHash.js.map +1 -1
- package/_esm/account-abstraction/utils/userOperation/getUserOperationTypedData.js +28 -0
- package/_esm/account-abstraction/utils/userOperation/getUserOperationTypedData.js.map +1 -0
- package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js +3 -2
- package/_esm/account-abstraction/utils/userOperation/toPackedUserOperation.js.map +1 -1
- package/_esm/constants/address.js +1 -0
- package/_esm/constants/address.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/experimental/eip5792/actions/getCallsStatus.js +1 -1
- package/_esm/experimental/eip5792/actions/getCallsStatus.js.map +1 -1
- package/_esm/experimental/eip5792/actions/sendCalls.js +1 -1
- package/_esm/experimental/eip5792/actions/sendCalls.js.map +1 -1
- package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts +1 -2
- package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts.map +1 -1
- package/_types/account-abstraction/accounts/implementations/toSimple7702SmartAccount.d.ts +311 -0
- package/_types/account-abstraction/accounts/implementations/toSimple7702SmartAccount.d.ts.map +1 -0
- package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts +1 -2
- package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts.map +1 -1
- package/_types/account-abstraction/accounts/types.d.ts +16 -3
- package/_types/account-abstraction/accounts/types.d.ts.map +1 -1
- package/_types/account-abstraction/actions/bundler/estimateUserOperationGas.d.ts.map +1 -1
- package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts +23 -6
- package/_types/account-abstraction/actions/bundler/prepareUserOperation.d.ts.map +1 -1
- package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts +1 -1
- package/_types/account-abstraction/actions/paymaster/getPaymasterData.d.ts.map +1 -1
- package/_types/account-abstraction/constants/abis.d.ts +830 -0
- package/_types/account-abstraction/constants/abis.d.ts.map +1 -1
- package/_types/account-abstraction/constants/address.d.ts +1 -0
- package/_types/account-abstraction/constants/address.d.ts.map +1 -1
- package/_types/account-abstraction/index.d.ts +3 -2
- package/_types/account-abstraction/index.d.ts.map +1 -1
- package/_types/account-abstraction/types/entryPointVersion.d.ts +1 -1
- package/_types/account-abstraction/types/entryPointVersion.d.ts.map +1 -1
- package/_types/account-abstraction/types/rpc.d.ts +6 -3
- package/_types/account-abstraction/types/rpc.d.ts.map +1 -1
- package/_types/account-abstraction/types/userOperation.d.ts +49 -5
- package/_types/account-abstraction/types/userOperation.d.ts.map +1 -1
- package/_types/account-abstraction/utils/formatters/userOperationRequest.d.ts.map +1 -1
- package/_types/account-abstraction/utils/userOperation/getInitCode.d.ts +3 -0
- package/_types/account-abstraction/utils/userOperation/getInitCode.d.ts.map +1 -0
- package/_types/account-abstraction/utils/userOperation/getUserOperationHash.d.ts.map +1 -1
- package/_types/account-abstraction/utils/userOperation/getUserOperationTypedData.d.ts +45 -0
- package/_types/account-abstraction/utils/userOperation/getUserOperationTypedData.d.ts.map +1 -0
- package/_types/account-abstraction/utils/userOperation/toPackedUserOperation.d.ts.map +1 -1
- package/_types/celo/chainConfig.d.ts +14 -14
- package/_types/celo/formatters.d.ts +7 -7
- package/_types/chains/definitions/abstract.d.ts +3 -3
- package/_types/chains/definitions/abstractTestnet.d.ts +3 -3
- package/_types/chains/definitions/celo.d.ts +14 -14
- package/_types/chains/definitions/celoAlfajores.d.ts +14 -14
- package/_types/chains/definitions/playfiAlbireo.d.ts +3 -3
- package/_types/chains/definitions/sophon.d.ts +3 -3
- package/_types/chains/definitions/sophonTestnet.d.ts +3 -3
- package/_types/chains/definitions/treasure.d.ts +3 -3
- package/_types/chains/definitions/treasureTopaz.d.ts +3 -3
- package/_types/chains/definitions/zksync.d.ts +3 -3
- package/_types/chains/definitions/zksyncInMemoryNode.d.ts +3 -3
- package/_types/chains/definitions/zksyncLocalCustomHyperchain.d.ts +3 -3
- package/_types/chains/definitions/zksyncLocalHyperchain.d.ts +3 -3
- package/_types/chains/definitions/zksyncLocalNode.d.ts +3 -3
- package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts +3 -3
- package/_types/constants/address.d.ts +1 -0
- package/_types/constants/address.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/types/authorization.d.ts +1 -1
- package/_types/types/authorization.d.ts.map +1 -1
- package/_types/types/misc.d.ts +7 -7
- package/_types/types/misc.d.ts.map +1 -1
- package/_types/utils/formatters/transaction.d.ts +1 -1
- package/_types/utils/formatters/transactionRequest.d.ts +1 -1
- package/_types/zksync/chainConfig.d.ts +3 -3
- package/_types/zksync/formatters.d.ts +3 -3
- package/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts +1 -2
- package/account-abstraction/accounts/implementations/toSimple7702SmartAccount.ts +317 -0
- package/account-abstraction/accounts/implementations/toSoladySmartAccount.ts +1 -2
- package/account-abstraction/accounts/toSmartAccount.ts +2 -2
- package/account-abstraction/accounts/types.ts +26 -2
- package/account-abstraction/actions/bundler/estimateUserOperationGas.ts +8 -1
- package/account-abstraction/actions/bundler/prepareUserOperation.ts +56 -2
- package/account-abstraction/actions/bundler/sendUserOperation.ts +2 -2
- package/account-abstraction/actions/paymaster/getPaymasterData.ts +24 -0
- package/account-abstraction/constants/abis.ts +691 -0
- package/account-abstraction/constants/address.ts +2 -0
- package/account-abstraction/index.ts +12 -1
- package/account-abstraction/types/entryPointVersion.ts +1 -1
- package/account-abstraction/types/rpc.ts +6 -3
- package/account-abstraction/types/userOperation.ts +69 -3
- package/account-abstraction/utils/formatters/userOperationRequest.ts +21 -0
- package/account-abstraction/utils/userOperation/getInitCode.ts +21 -0
- package/account-abstraction/utils/userOperation/getUserOperationHash.ts +37 -50
- package/account-abstraction/utils/userOperation/getUserOperationTypedData.ts +42 -0
- package/account-abstraction/utils/userOperation/toPackedUserOperation.ts +2 -4
- package/constants/address.ts +2 -0
- package/errors/version.ts +1 -1
- package/experimental/eip5792/actions/getCallsStatus.ts +1 -1
- package/experimental/eip5792/actions/sendCalls.ts +1 -1
- package/package.json +1 -1
- package/types/authorization.ts +1 -1
- package/types/misc.ts +7 -7
@@ -3,6 +3,7 @@ import {
|
|
3
3
|
type ParseAccountErrorType,
|
4
4
|
parseAccount,
|
5
5
|
} from '../../../accounts/utils/parseAccount.js'
|
6
|
+
import { prepareAuthorization } from '../../../actions/index.js'
|
6
7
|
import {
|
7
8
|
type EstimateFeesPerGasErrorType,
|
8
9
|
estimateFeesPerGas,
|
@@ -12,6 +13,7 @@ import type { Client } from '../../../clients/createClient.js'
|
|
12
13
|
import type { Transport } from '../../../clients/transports/createTransport.js'
|
13
14
|
import { AccountNotFoundError } from '../../../errors/account.js'
|
14
15
|
import type { ErrorType } from '../../../errors/utils.js'
|
16
|
+
import type { SignedAuthorization } from '../../../types/authorization.js'
|
15
17
|
import type { Call, Calls } from '../../../types/calls.js'
|
16
18
|
import type { Chain } from '../../../types/chain.js'
|
17
19
|
import type { Hex } from '../../../types/misc.js'
|
@@ -63,6 +65,7 @@ const defaultParameters = [
|
|
63
65
|
'paymaster',
|
64
66
|
'nonce',
|
65
67
|
'signature',
|
68
|
+
'authorization',
|
66
69
|
] as const
|
67
70
|
|
68
71
|
export type PrepareUserOperationParameterType =
|
@@ -72,10 +75,17 @@ export type PrepareUserOperationParameterType =
|
|
72
75
|
| 'paymaster'
|
73
76
|
| 'nonce'
|
74
77
|
| 'signature'
|
78
|
+
| 'authorization'
|
75
79
|
|
76
80
|
type FactoryProperties<
|
77
81
|
entryPointVersion extends EntryPointVersion = EntryPointVersion,
|
78
82
|
> =
|
83
|
+
| (entryPointVersion extends '0.8'
|
84
|
+
? {
|
85
|
+
factory: UserOperation['factory']
|
86
|
+
factoryData: UserOperation['factoryData']
|
87
|
+
}
|
88
|
+
: never)
|
79
89
|
| (entryPointVersion extends '0.7'
|
80
90
|
? {
|
81
91
|
factory: UserOperation['factory']
|
@@ -91,6 +101,15 @@ type FactoryProperties<
|
|
91
101
|
type GasProperties<
|
92
102
|
entryPointVersion extends EntryPointVersion = EntryPointVersion,
|
93
103
|
> =
|
104
|
+
| (entryPointVersion extends '0.8'
|
105
|
+
? {
|
106
|
+
callGasLimit: UserOperation['callGasLimit']
|
107
|
+
preVerificationGas: UserOperation['preVerificationGas']
|
108
|
+
verificationGasLimit: UserOperation['verificationGasLimit']
|
109
|
+
paymasterPostOpGasLimit: UserOperation['paymasterPostOpGasLimit']
|
110
|
+
paymasterVerificationGasLimit: UserOperation['paymasterVerificationGasLimit']
|
111
|
+
}
|
112
|
+
: never)
|
94
113
|
| (entryPointVersion extends '0.7'
|
95
114
|
? {
|
96
115
|
callGasLimit: UserOperation['callGasLimit']
|
@@ -120,6 +139,14 @@ type NonceProperties = {
|
|
120
139
|
type PaymasterProperties<
|
121
140
|
entryPointVersion extends EntryPointVersion = EntryPointVersion,
|
122
141
|
> =
|
142
|
+
| (entryPointVersion extends '0.8'
|
143
|
+
? {
|
144
|
+
paymaster: UserOperation['paymaster']
|
145
|
+
paymasterData: UserOperation['paymasterData']
|
146
|
+
paymasterPostOpGasLimit: UserOperation['paymasterPostOpGasLimit']
|
147
|
+
paymasterVerificationGasLimit: UserOperation['paymasterVerificationGasLimit']
|
148
|
+
}
|
149
|
+
: never)
|
123
150
|
| (entryPointVersion extends '0.7'
|
124
151
|
? {
|
125
152
|
paymaster: UserOperation['paymaster']
|
@@ -138,6 +165,10 @@ type SignatureProperties = {
|
|
138
165
|
signature: UserOperation['signature']
|
139
166
|
}
|
140
167
|
|
168
|
+
type AuthorizationProperties = {
|
169
|
+
authorization: UserOperation['authorization']
|
170
|
+
}
|
171
|
+
|
141
172
|
export type PrepareUserOperationRequest<
|
142
173
|
account extends SmartAccount | undefined = SmartAccount | undefined,
|
143
174
|
accountOverride extends SmartAccount | undefined = SmartAccount | undefined,
|
@@ -208,7 +239,10 @@ export type PrepareUserOperationReturnType<
|
|
208
239
|
callData: Hex
|
209
240
|
paymasterAndData: _derivedVersion extends '0.6' ? Hex : undefined
|
210
241
|
sender: UserOperation['sender']
|
211
|
-
} & (Extract<_parameters, '
|
242
|
+
} & (Extract<_parameters, 'authorization'> extends never
|
243
|
+
? {}
|
244
|
+
: AuthorizationProperties) &
|
245
|
+
(Extract<_parameters, 'factory'> extends never
|
212
246
|
? {}
|
213
247
|
: FactoryProperties<_derivedVersion>) &
|
214
248
|
(Extract<_parameters, 'nonce'> extends never ? {} : NonceProperties) &
|
@@ -359,7 +393,7 @@ export async function prepareUserOperation<
|
|
359
393
|
// Concurrently prepare properties required to fill the User Operation.
|
360
394
|
////////////////////////////////////////////////////////////////////////////////
|
361
395
|
|
362
|
-
const [callData, factory, fees, nonce] = await Promise.all([
|
396
|
+
const [callData, factory, fees, nonce, authorization] = await Promise.all([
|
363
397
|
(async () => {
|
364
398
|
if (parameters.calls)
|
365
399
|
return account.encodeCalls(
|
@@ -457,6 +491,24 @@ export async function prepareUserOperation<
|
|
457
491
|
if (typeof parameters.nonce === 'bigint') return parameters.nonce
|
458
492
|
return account.getNonce()
|
459
493
|
})(),
|
494
|
+
(async () => {
|
495
|
+
if (!properties.includes('authorization')) return undefined
|
496
|
+
if (typeof parameters.authorization === 'object')
|
497
|
+
return parameters.authorization
|
498
|
+
if (account.authorization && !(await account.isDeployed())) {
|
499
|
+
const authorization = await prepareAuthorization(
|
500
|
+
account.client,
|
501
|
+
account.authorization,
|
502
|
+
)
|
503
|
+
return {
|
504
|
+
...authorization,
|
505
|
+
r: '0xfffffffffffffffffffffffffffffff000000000000000000000000000000000',
|
506
|
+
s: '0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
507
|
+
yParity: 1,
|
508
|
+
} satisfies SignedAuthorization
|
509
|
+
}
|
510
|
+
return undefined
|
511
|
+
})(),
|
460
512
|
])
|
461
513
|
|
462
514
|
////////////////////////////////////////////////////////////////////////////////
|
@@ -468,6 +520,8 @@ export async function prepareUserOperation<
|
|
468
520
|
request = { ...request, ...(factory as any) }
|
469
521
|
if (typeof fees !== 'undefined') request = { ...request, ...(fees as any) }
|
470
522
|
if (typeof nonce !== 'undefined') request.nonce = nonce
|
523
|
+
if (typeof authorization !== 'undefined')
|
524
|
+
request.authorization = authorization
|
471
525
|
|
472
526
|
////////////////////////////////////////////////////////////////////////////////
|
473
527
|
// Fill User Operation with the `signature` property.
|
@@ -135,7 +135,7 @@ export async function sendUserOperation<
|
|
135
135
|
: parameters
|
136
136
|
|
137
137
|
const signature = (parameters.signature ||
|
138
|
-
(await account?.signUserOperation(request as UserOperation)))!
|
138
|
+
(await account?.signUserOperation?.(request as UserOperation)))!
|
139
139
|
|
140
140
|
const rpcParameters = formatUserOperationRequest({
|
141
141
|
...request,
|
@@ -148,7 +148,7 @@ export async function sendUserOperation<
|
|
148
148
|
method: 'eth_sendUserOperation',
|
149
149
|
params: [
|
150
150
|
rpcParameters,
|
151
|
-
(entryPointAddress ?? account?.entryPoint
|
151
|
+
(entryPointAddress ?? account?.entryPoint?.address)!,
|
152
152
|
],
|
153
153
|
},
|
154
154
|
{ retryCount: 0 },
|
@@ -57,6 +57,30 @@ export type GetPaymasterDataParameters = OneOf<
|
|
57
57
|
| 'preVerificationGas'
|
58
58
|
| 'verificationGasLimit'
|
59
59
|
>
|
60
|
+
| PartialBy<
|
61
|
+
Pick<
|
62
|
+
UserOperation<'0.8'>,
|
63
|
+
| 'callData'
|
64
|
+
| 'callGasLimit'
|
65
|
+
| 'factory'
|
66
|
+
| 'factoryData'
|
67
|
+
| 'maxFeePerGas'
|
68
|
+
| 'maxPriorityFeePerGas'
|
69
|
+
| 'nonce'
|
70
|
+
| 'sender'
|
71
|
+
| 'preVerificationGas'
|
72
|
+
| 'verificationGasLimit'
|
73
|
+
| 'paymasterPostOpGasLimit'
|
74
|
+
| 'paymasterVerificationGasLimit'
|
75
|
+
>,
|
76
|
+
| 'callGasLimit'
|
77
|
+
| 'factory'
|
78
|
+
| 'factoryData'
|
79
|
+
| 'maxFeePerGas'
|
80
|
+
| 'maxPriorityFeePerGas'
|
81
|
+
| 'preVerificationGas'
|
82
|
+
| 'verificationGasLimit'
|
83
|
+
>
|
60
84
|
> & {
|
61
85
|
context?: unknown | undefined
|
62
86
|
chainId: number
|