ox 0.4.4 → 0.5.0
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 +6 -0
- package/_cjs/erc4337/EntryPoint.js +1320 -0
- package/_cjs/erc4337/EntryPoint.js.map +1 -0
- package/_cjs/erc4337/RpcSchema.js +3 -0
- package/_cjs/erc4337/RpcSchema.js.map +1 -0
- package/_cjs/erc4337/UserOperation.js +152 -0
- package/_cjs/erc4337/UserOperation.js.map +1 -0
- package/_cjs/erc4337/UserOperationGas.js +31 -0
- package/_cjs/erc4337/UserOperationGas.js.map +1 -0
- package/_cjs/erc4337/UserOperationReceipt.js +35 -0
- package/_cjs/erc4337/UserOperationReceipt.js.map +1 -0
- package/_cjs/erc4337/index.js +9 -0
- package/_cjs/erc4337/index.js.map +1 -0
- package/_cjs/index.docs.js +1 -0
- package/_cjs/index.docs.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/erc4337/EntryPoint.js +1321 -0
- package/_esm/erc4337/EntryPoint.js.map +1 -0
- package/_esm/erc4337/RpcSchema.js +2 -0
- package/_esm/erc4337/RpcSchema.js.map +1 -0
- package/_esm/erc4337/UserOperation.js +324 -0
- package/_esm/erc4337/UserOperation.js.map +1 -0
- package/_esm/erc4337/UserOperationGas.js +61 -0
- package/_esm/erc4337/UserOperationGas.js.map +1 -0
- package/_esm/erc4337/UserOperationReceipt.js +79 -0
- package/_esm/erc4337/UserOperationReceipt.js.map +1 -0
- package/_esm/erc4337/index.js +31 -0
- package/_esm/erc4337/index.js.map +1 -0
- package/_esm/index.docs.js +1 -0
- package/_esm/index.docs.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/erc4337/EntryPoint.d.ts +1480 -0
- package/_types/erc4337/EntryPoint.d.ts.map +1 -0
- package/_types/erc4337/RpcSchema.d.ts +159 -0
- package/_types/erc4337/RpcSchema.d.ts.map +1 -0
- package/_types/erc4337/UserOperation.d.ts +330 -0
- package/_types/erc4337/UserOperation.d.ts.map +1 -0
- package/_types/erc4337/UserOperationGas.d.ts +62 -0
- package/_types/erc4337/UserOperationGas.d.ts.map +1 -0
- package/_types/erc4337/UserOperationReceipt.d.ts +87 -0
- package/_types/erc4337/UserOperationReceipt.d.ts.map +1 -0
- package/_types/erc4337/index.d.ts +33 -0
- package/_types/erc4337/index.d.ts.map +1 -0
- package/_types/index.docs.d.ts +1 -0
- package/_types/index.docs.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/erc4337/EntryPoint/package.json +6 -0
- package/erc4337/EntryPoint.ts +1419 -0
- package/erc4337/RpcSchema/package.json +6 -0
- package/erc4337/RpcSchema.ts +179 -0
- package/erc4337/UserOperation/package.json +6 -0
- package/erc4337/UserOperation.ts +617 -0
- package/erc4337/UserOperationGas/package.json +6 -0
- package/erc4337/UserOperationGas.ts +109 -0
- package/erc4337/UserOperationReceipt/package.json +6 -0
- package/erc4337/UserOperationReceipt.ts +139 -0
- package/erc4337/index.ts +38 -0
- package/erc4337/package.json +6 -0
- package/index.docs.ts +1 -0
- package/package.json +31 -1
- package/version.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntryPoint.d.ts","sourceRoot":"","sources":["../../erc4337/EntryPoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAA;AAEnC,0BAA0B;AAC1B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8vBT,CAAA;AAEV,0BAA0B;AAC1B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2nBT,CAAA;AAEV,8BAA8B;AAC9B,eAAO,MAAM,UAAU,8CAAwD,CAAA;AAE/E,8BAA8B;AAC9B,eAAO,MAAM,UAAU,8CAAwD,CAAA"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import type * as Address from '../core/Address.js';
|
|
2
|
+
import type * as Hex from '../core/Hex.js';
|
|
3
|
+
import type * as RpcSchema from '../core/RpcSchema.js';
|
|
4
|
+
import type * as EntryPoint from './EntryPoint.js';
|
|
5
|
+
import type * as UserOperation from './UserOperation.js';
|
|
6
|
+
import type * as UserOperationGas from './UserOperationGas.js';
|
|
7
|
+
import type * as UserOperationReceipt from './UserOperationReceipt.js';
|
|
8
|
+
/**
|
|
9
|
+
* Union of all JSON-RPC Methods for ERC-4337 Bundlers.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts twoslash
|
|
13
|
+
* import { RpcSchema } from 'ox'
|
|
14
|
+
*
|
|
15
|
+
* type Schema = RpcSchema.Bundler
|
|
16
|
+
* // ^?
|
|
17
|
+
*
|
|
18
|
+
*
|
|
19
|
+
*
|
|
20
|
+
*
|
|
21
|
+
*
|
|
22
|
+
*
|
|
23
|
+
*
|
|
24
|
+
*
|
|
25
|
+
*
|
|
26
|
+
*
|
|
27
|
+
*
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export type Bundler<entryPointVersion extends EntryPoint.Version = EntryPoint.Version> = RpcSchema.From<{
|
|
31
|
+
Request: {
|
|
32
|
+
method: 'eth_chainId';
|
|
33
|
+
params?: undefined;
|
|
34
|
+
};
|
|
35
|
+
ReturnType: Hex.Hex;
|
|
36
|
+
} | {
|
|
37
|
+
Request: {
|
|
38
|
+
method: 'eth_estimateUserOperationGas';
|
|
39
|
+
params: [
|
|
40
|
+
userOperation: UserOperation.Rpc<entryPointVersion>,
|
|
41
|
+
entrypoint: Address.Address
|
|
42
|
+
] | [
|
|
43
|
+
userOperation: UserOperation.Rpc<entryPointVersion>,
|
|
44
|
+
entrypoint: Address.Address,
|
|
45
|
+
/** TODO: Add type. */
|
|
46
|
+
stateOverrides: unknown
|
|
47
|
+
];
|
|
48
|
+
};
|
|
49
|
+
ReturnType: UserOperationGas.Rpc<entryPointVersion>;
|
|
50
|
+
} | {
|
|
51
|
+
Request: {
|
|
52
|
+
method: 'eth_getUserOperationByHash';
|
|
53
|
+
params: [hash: Hex.Hex];
|
|
54
|
+
};
|
|
55
|
+
ReturnType: UserOperation.Rpc<entryPointVersion> | null;
|
|
56
|
+
} | {
|
|
57
|
+
Request: {
|
|
58
|
+
method: 'eth_getUserOperationReceipt';
|
|
59
|
+
params: [hash: Hex.Hex];
|
|
60
|
+
};
|
|
61
|
+
ReturnType: UserOperationReceipt.Rpc<entryPointVersion> | null;
|
|
62
|
+
} | {
|
|
63
|
+
Request: {
|
|
64
|
+
method: 'eth_sendUserOperation';
|
|
65
|
+
params: [
|
|
66
|
+
userOperation: UserOperation.Rpc<entryPointVersion>,
|
|
67
|
+
entrypoint: Address.Address
|
|
68
|
+
];
|
|
69
|
+
};
|
|
70
|
+
ReturnType: Hex.Hex;
|
|
71
|
+
} | {
|
|
72
|
+
Request: {
|
|
73
|
+
method: 'eth_supportedEntryPoints';
|
|
74
|
+
params?: undefined;
|
|
75
|
+
};
|
|
76
|
+
ReturnType: readonly Address.Address[];
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Union of all JSON-RPC Methods for the debug methods of ERC-4337 Bundlers.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts twoslash
|
|
83
|
+
* import { RpcSchema } from 'ox'
|
|
84
|
+
*
|
|
85
|
+
* type Schema = RpcSchema.BundlerDebug
|
|
86
|
+
* // ^?
|
|
87
|
+
*
|
|
88
|
+
*
|
|
89
|
+
*
|
|
90
|
+
*
|
|
91
|
+
*
|
|
92
|
+
*
|
|
93
|
+
*
|
|
94
|
+
*
|
|
95
|
+
*
|
|
96
|
+
*
|
|
97
|
+
*
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export type BundlerDebug<entryPointVersion extends EntryPoint.Version = EntryPoint.Version> = RpcSchema.From<{
|
|
101
|
+
Request: {
|
|
102
|
+
method: 'debug_bundler_clearState';
|
|
103
|
+
params?: undefined;
|
|
104
|
+
};
|
|
105
|
+
ReturnType: undefined;
|
|
106
|
+
} | {
|
|
107
|
+
Request: {
|
|
108
|
+
method: 'debug_bundler_dumpMempool';
|
|
109
|
+
params: [entryPoint: Address.Address];
|
|
110
|
+
};
|
|
111
|
+
ReturnType: readonly {
|
|
112
|
+
userOp: UserOperation.Rpc;
|
|
113
|
+
}[];
|
|
114
|
+
} | {
|
|
115
|
+
Request: {
|
|
116
|
+
method: 'debug_bundler_sendBundleNow';
|
|
117
|
+
params?: undefined;
|
|
118
|
+
};
|
|
119
|
+
ReturnType: Hex.Hex;
|
|
120
|
+
} | {
|
|
121
|
+
Request: {
|
|
122
|
+
method: 'debug_bundler_setBundlingMode';
|
|
123
|
+
params: [mode: 'auto' | 'manual'];
|
|
124
|
+
};
|
|
125
|
+
ReturnType: undefined;
|
|
126
|
+
} | {
|
|
127
|
+
Request: {
|
|
128
|
+
method: 'debug_bundler_setReputation';
|
|
129
|
+
params: [
|
|
130
|
+
reputations: readonly {
|
|
131
|
+
address: Address.Address;
|
|
132
|
+
opsSeen: Hex.Hex;
|
|
133
|
+
opsIncluded: Hex.Hex;
|
|
134
|
+
}[],
|
|
135
|
+
entryPoint: Address.Address
|
|
136
|
+
];
|
|
137
|
+
};
|
|
138
|
+
ReturnType: undefined;
|
|
139
|
+
} | {
|
|
140
|
+
Request: {
|
|
141
|
+
method: 'debug_bundler_dumpReputation';
|
|
142
|
+
params: [entryPoint: Address.Address];
|
|
143
|
+
};
|
|
144
|
+
ReturnType: readonly {
|
|
145
|
+
address: Address.Address;
|
|
146
|
+
opsSeen: Hex.Hex;
|
|
147
|
+
opsIncluded: Hex.Hex;
|
|
148
|
+
}[];
|
|
149
|
+
} | {
|
|
150
|
+
Request: {
|
|
151
|
+
method: 'debug_bundler_addUserOps';
|
|
152
|
+
params: [
|
|
153
|
+
userOps: readonly UserOperation.Rpc<entryPointVersion>[],
|
|
154
|
+
entryPoint: Address.Address
|
|
155
|
+
];
|
|
156
|
+
};
|
|
157
|
+
ReturnType: undefined;
|
|
158
|
+
}>;
|
|
159
|
+
//# sourceMappingURL=RpcSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcSchema.d.ts","sourceRoot":"","sources":["../../erc4337/RpcSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import * as AbiParameters from '../core/AbiParameters.js';
|
|
2
|
+
import type * as Address from '../core/Address.js';
|
|
3
|
+
import type * as Errors from '../core/Errors.js';
|
|
4
|
+
import * as Hash from '../core/Hash.js';
|
|
5
|
+
import * as Hex from '../core/Hex.js';
|
|
6
|
+
import * as Signature from '../core/Signature.js';
|
|
7
|
+
import type { Assign, Compute, OneOf } from '../core/internal/types.js';
|
|
8
|
+
import type * as EntryPoint from './EntryPoint.js';
|
|
9
|
+
/** User Operation. */
|
|
10
|
+
export type UserOperation<entryPointVersion extends EntryPoint.Version = EntryPoint.Version, signed extends boolean = boolean, bigintType = bigint> = OneOf<(entryPointVersion extends '0.6' ? V06<signed, bigintType> : never) | (entryPointVersion extends '0.7' ? V07<signed, bigintType> : never)>;
|
|
11
|
+
/**
|
|
12
|
+
* Packed User Operation.
|
|
13
|
+
*
|
|
14
|
+
* @see https://eips.ethereum.org/EIPS/eip-4337#entrypoint-definition
|
|
15
|
+
*/
|
|
16
|
+
export type Packed = {
|
|
17
|
+
/** Concatenation of `verificationGasLimit` (16 bytes) and `callGasLimit` (16 bytes) */
|
|
18
|
+
accountGasLimits: Hex.Hex;
|
|
19
|
+
/** The data to pass to the `sender` during the main execution call. */
|
|
20
|
+
callData: Hex.Hex;
|
|
21
|
+
/** Concatenation of `factory` and `factoryData`. */
|
|
22
|
+
initCode: Hex.Hex;
|
|
23
|
+
/** Concatenation of `maxPriorityFee` (16 bytes) and `maxFeePerGas` (16 bytes) */
|
|
24
|
+
gasFees: Hex.Hex;
|
|
25
|
+
/** Anti-replay parameter. */
|
|
26
|
+
nonce: bigint;
|
|
27
|
+
/** Concatenation of paymaster fields (or empty). */
|
|
28
|
+
paymasterAndData: Hex.Hex;
|
|
29
|
+
/** Extra gas to pay the Bundler. */
|
|
30
|
+
preVerificationGas: bigint;
|
|
31
|
+
/** The account making the operation. */
|
|
32
|
+
sender: Address.Address;
|
|
33
|
+
/** Data passed into the account to verify authorization. */
|
|
34
|
+
signature: Hex.Hex;
|
|
35
|
+
};
|
|
36
|
+
/** RPC User Operation type. */
|
|
37
|
+
export type Rpc<entryPointVersion extends EntryPoint.Version = EntryPoint.Version, signed extends boolean = true> = OneOf<(entryPointVersion extends '0.6' ? V06<signed, Hex.Hex> : never) | (entryPointVersion extends '0.7' ? V07<signed, Hex.Hex> : never)>;
|
|
38
|
+
/** Transaction Info. */
|
|
39
|
+
export type TransactionInfo<entryPointVersion extends EntryPoint.Version = EntryPoint.Version, bigintType = bigint> = {
|
|
40
|
+
blockHash: Hex.Hex;
|
|
41
|
+
blockNumber: bigintType;
|
|
42
|
+
entryPoint: Address.Address;
|
|
43
|
+
transactionHash: Hex.Hex;
|
|
44
|
+
userOperation: UserOperation<entryPointVersion, true, bigintType>;
|
|
45
|
+
};
|
|
46
|
+
/** RPC Transaction Info. */
|
|
47
|
+
export type RpcTransactionInfo<entryPointVersion extends EntryPoint.Version = EntryPoint.Version> = TransactionInfo<entryPointVersion, Hex.Hex>;
|
|
48
|
+
/** Type for User Operation on EntryPoint 0.6 */
|
|
49
|
+
export type V06<signed extends boolean = boolean, bigintType = bigint> = {
|
|
50
|
+
/** The data to pass to the `sender` during the main execution call. */
|
|
51
|
+
callData: Hex.Hex;
|
|
52
|
+
/** The amount of gas to allocate the main execution call */
|
|
53
|
+
callGasLimit: bigintType;
|
|
54
|
+
/** Account init code. Only for new accounts. */
|
|
55
|
+
initCode?: Hex.Hex | undefined;
|
|
56
|
+
/** Maximum fee per gas. */
|
|
57
|
+
maxFeePerGas: bigintType;
|
|
58
|
+
/** Maximum priority fee per gas. */
|
|
59
|
+
maxPriorityFeePerGas: bigintType;
|
|
60
|
+
/** Anti-replay parameter. */
|
|
61
|
+
nonce: bigintType;
|
|
62
|
+
/** Paymaster address with calldata. */
|
|
63
|
+
paymasterAndData?: Hex.Hex | undefined;
|
|
64
|
+
/** Extra gas to pay the Bundler. */
|
|
65
|
+
preVerificationGas: bigintType;
|
|
66
|
+
/** The account making the operation. */
|
|
67
|
+
sender: Address.Address;
|
|
68
|
+
/** Data passed into the account to verify authorization. */
|
|
69
|
+
signature?: Hex.Hex | undefined;
|
|
70
|
+
/** The amount of gas to allocate for the verification step. */
|
|
71
|
+
verificationGasLimit: bigintType;
|
|
72
|
+
} & (signed extends true ? {
|
|
73
|
+
signature: Hex.Hex;
|
|
74
|
+
} : {});
|
|
75
|
+
/** RPC User Operation on EntryPoint 0.6 */
|
|
76
|
+
export type RpcV06<signed extends boolean = true> = V06<signed, Hex.Hex>;
|
|
77
|
+
/** Type for User Operation on EntryPoint 0.7 */
|
|
78
|
+
export type V07<signed extends boolean = boolean, bigintType = bigint> = {
|
|
79
|
+
/** The data to pass to the `sender` during the main execution call. */
|
|
80
|
+
callData: Hex.Hex;
|
|
81
|
+
/** The amount of gas to allocate the main execution call */
|
|
82
|
+
callGasLimit: bigintType;
|
|
83
|
+
/** Account factory. Only for new accounts. */
|
|
84
|
+
factory?: Address.Address | undefined;
|
|
85
|
+
/** Data for account factory. */
|
|
86
|
+
factoryData?: Hex.Hex | undefined;
|
|
87
|
+
/** Maximum fee per gas. */
|
|
88
|
+
maxFeePerGas: bigintType;
|
|
89
|
+
/** Maximum priority fee per gas. */
|
|
90
|
+
maxPriorityFeePerGas: bigintType;
|
|
91
|
+
/** Anti-replay parameter. */
|
|
92
|
+
nonce: bigintType;
|
|
93
|
+
/** Address of paymaster contract. */
|
|
94
|
+
paymaster?: Address.Address | undefined;
|
|
95
|
+
/** Data for paymaster. */
|
|
96
|
+
paymasterData?: Hex.Hex | undefined;
|
|
97
|
+
/** The amount of gas to allocate for the paymaster post-operation code. */
|
|
98
|
+
paymasterPostOpGasLimit?: bigintType | undefined;
|
|
99
|
+
/** The amount of gas to allocate for the paymaster validation code. */
|
|
100
|
+
paymasterVerificationGasLimit?: bigintType | undefined;
|
|
101
|
+
/** Extra gas to pay the Bundler. */
|
|
102
|
+
preVerificationGas: bigintType;
|
|
103
|
+
/** The account making the operation. */
|
|
104
|
+
sender: Address.Address;
|
|
105
|
+
/** Data passed into the account to verify authorization. */
|
|
106
|
+
signature?: Hex.Hex | undefined;
|
|
107
|
+
/** The amount of gas to allocate for the verification step. */
|
|
108
|
+
verificationGasLimit: bigintType;
|
|
109
|
+
} & (signed extends true ? {
|
|
110
|
+
signature: Hex.Hex;
|
|
111
|
+
} : {});
|
|
112
|
+
/** RPC User Operation on EntryPoint 0.7 */
|
|
113
|
+
export type RpcV07<signed extends boolean = true> = V07<signed, Hex.Hex>;
|
|
114
|
+
/**
|
|
115
|
+
* Instantiates a {@link ox#UserOperation.UserOperation} from a provided input.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts twoslash
|
|
119
|
+
* import { Value } from 'ox'
|
|
120
|
+
* import { UserOperation } from 'ox/erc4337'
|
|
121
|
+
*
|
|
122
|
+
* const userOperation = UserOperation.from({
|
|
123
|
+
* callData: '0xdeadbeef',
|
|
124
|
+
* callGasLimit: 300_000n,
|
|
125
|
+
* maxFeePerGas: Value.fromGwei('20'),
|
|
126
|
+
* maxPriorityFeePerGas: Value.fromGwei('2'),
|
|
127
|
+
* nonce: 69n,
|
|
128
|
+
* preVerificationGas: 100_000n,
|
|
129
|
+
* sender: '0x9f1fdab6458c5fc642fa0f4c5af7473c46837357',
|
|
130
|
+
* verificationGasLimit: 100_000n,
|
|
131
|
+
* })
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ### Attaching Signatures
|
|
136
|
+
*
|
|
137
|
+
* ```ts twoslash
|
|
138
|
+
* import { Secp256k1, Value } from 'ox'
|
|
139
|
+
* import { UserOperation } from 'ox/erc4337'
|
|
140
|
+
*
|
|
141
|
+
* const userOperation = UserOperation.from({
|
|
142
|
+
* callData: '0xdeadbeef',
|
|
143
|
+
* callGasLimit: 300_000n,
|
|
144
|
+
* maxFeePerGas: Value.fromGwei('20'),
|
|
145
|
+
* maxPriorityFeePerGas: Value.fromGwei('2'),
|
|
146
|
+
* nonce: 69n,
|
|
147
|
+
* preVerificationGas: 100_000n,
|
|
148
|
+
* sender: '0x9f1fdab6458c5fc642fa0f4c5af7473c46837357',
|
|
149
|
+
* verificationGasLimit: 100_000n,
|
|
150
|
+
* })
|
|
151
|
+
*
|
|
152
|
+
* const payload = UserOperation.getSignPayload(userOperation, {
|
|
153
|
+
* chainId: 1,
|
|
154
|
+
* entryPointAddress: '0x1234567890123456789012345678901234567890',
|
|
155
|
+
* entryPointVersion: '0.7',
|
|
156
|
+
* })
|
|
157
|
+
*
|
|
158
|
+
* const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
|
|
159
|
+
*
|
|
160
|
+
* const userOperation_signed = UserOperation.from(userOperation, { signature }) // [!code focus]
|
|
161
|
+
* ```
|
|
162
|
+
*
|
|
163
|
+
* @param userOperation - The user operation to instantiate.
|
|
164
|
+
* @returns User Operation.
|
|
165
|
+
*/
|
|
166
|
+
export declare function from<const userOperation extends UserOperation, const signature extends Hex.Hex | undefined = undefined>(userOperation: userOperation | UserOperation, options?: from.Options<signature>): from.ReturnType<userOperation, signature>;
|
|
167
|
+
export declare namespace from {
|
|
168
|
+
type Options<signature extends Signature.Signature | Hex.Hex | undefined = undefined> = {
|
|
169
|
+
signature?: signature | Signature.Signature | Hex.Hex | undefined;
|
|
170
|
+
};
|
|
171
|
+
type ReturnType<userOperation extends UserOperation = UserOperation, signature extends Signature.Signature | Hex.Hex | undefined = undefined> = Compute<Assign<userOperation, signature extends Signature.Signature | Hex.Hex ? Readonly<{
|
|
172
|
+
signature: Hex.Hex;
|
|
173
|
+
}> : {}>>;
|
|
174
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Converts an {@link ox#UserOperation.Rpc} to an {@link ox#UserOperation.UserOperation}.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts twoslash
|
|
181
|
+
* import { UserOperation } from 'ox/erc4337'
|
|
182
|
+
*
|
|
183
|
+
* const userOperation = UserOperation.fromRpc({
|
|
184
|
+
* callData: '0xdeadbeef',
|
|
185
|
+
* callGasLimit: '0x69420',
|
|
186
|
+
* maxFeePerGas: '0x2ca6ae494',
|
|
187
|
+
* maxPriorityFeePerGas: '0x41cc3c0',
|
|
188
|
+
* nonce: '0x357',
|
|
189
|
+
* preVerificationGas: '0x69420',
|
|
190
|
+
* signature: '0x',
|
|
191
|
+
* sender: '0x1234567890123456789012345678901234567890',
|
|
192
|
+
* verificationGasLimit: '0x69420',
|
|
193
|
+
* })
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* @param rpc - The RPC user operation to convert.
|
|
197
|
+
* @returns An instantiated {@link ox#UserOperation.UserOperation}.
|
|
198
|
+
*/
|
|
199
|
+
export declare function fromRpc(rpc: Rpc): UserOperation;
|
|
200
|
+
export declare namespace fromRpc {
|
|
201
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Obtains the signing payload for a {@link ox#UserOperation.UserOperation}.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```ts twoslash
|
|
208
|
+
* import { Secp256k1, Value } from 'ox'
|
|
209
|
+
* import { UserOperation } from 'ox/erc4337'
|
|
210
|
+
*
|
|
211
|
+
* const userOperation = UserOperation.from({
|
|
212
|
+
* callData: '0xdeadbeef',
|
|
213
|
+
* callGasLimit: 300_000n,
|
|
214
|
+
* maxFeePerGas: Value.fromGwei('20'),
|
|
215
|
+
* maxPriorityFeePerGas: Value.fromGwei('2'),
|
|
216
|
+
* nonce: 69n,
|
|
217
|
+
* preVerificationGas: 100_000n,
|
|
218
|
+
* sender: '0x9f1fdab6458c5fc642fa0f4c5af7473c46837357',
|
|
219
|
+
* verificationGasLimit: 100_000n,
|
|
220
|
+
* })
|
|
221
|
+
*
|
|
222
|
+
* const payload = UserOperation.getSignPayload(userOperation, { // [!code focus]
|
|
223
|
+
* chainId: 1, // [!code focus]
|
|
224
|
+
* entryPointAddress: '0x1234567890123456789012345678901234567890', // [!code focus]
|
|
225
|
+
* entryPointVersion: '0.6', // [!code focus]
|
|
226
|
+
* }) // [!code focus]
|
|
227
|
+
*
|
|
228
|
+
* const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
|
|
229
|
+
* ```
|
|
230
|
+
*
|
|
231
|
+
* @param userOperation - The user operation to get the sign payload for.
|
|
232
|
+
* @returns The signing payload for the user operation.
|
|
233
|
+
*/
|
|
234
|
+
export declare function getSignPayload<entrypointVersion extends EntryPoint.Version = EntryPoint.Version>(userOperation: UserOperation<entrypointVersion>, options: getSignPayload.Options<entrypointVersion>): Hex.Hex;
|
|
235
|
+
export declare namespace getSignPayload {
|
|
236
|
+
type Options<entrypointVersion extends EntryPoint.Version = EntryPoint.Version> = hash.Options<entrypointVersion>;
|
|
237
|
+
type ErrorType = hash.ErrorType | Errors.GlobalErrorType;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Hashes a {@link ox#UserOperation.UserOperation}. This is the "user operation hash".
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```ts twoslash
|
|
244
|
+
* import { Value } from 'ox'
|
|
245
|
+
* import { UserOperation } from 'ox/erc4337'
|
|
246
|
+
*
|
|
247
|
+
* const userOperation = UserOperation.hash({
|
|
248
|
+
* callData: '0xdeadbeef',
|
|
249
|
+
* callGasLimit: 300_000n,
|
|
250
|
+
* maxFeePerGas: Value.fromGwei('20'),
|
|
251
|
+
* maxPriorityFeePerGas: Value.fromGwei('2'),
|
|
252
|
+
* nonce: 69n,
|
|
253
|
+
* preVerificationGas: 100_000n,
|
|
254
|
+
* sender: '0x9f1fdab6458c5fc642fa0f4c5af7473c46837357',
|
|
255
|
+
* verificationGasLimit: 100_000n,
|
|
256
|
+
* }, {
|
|
257
|
+
* chainId: 1,
|
|
258
|
+
* entryPointAddress: '0x1234567890123456789012345678901234567890',
|
|
259
|
+
* entryPointVersion: '0.6',
|
|
260
|
+
* })
|
|
261
|
+
* ```
|
|
262
|
+
*
|
|
263
|
+
* @param userOperation - The user operation to hash.
|
|
264
|
+
* @returns The hash of the user operation.
|
|
265
|
+
*/
|
|
266
|
+
export declare function hash<entrypointVersion extends EntryPoint.Version = EntryPoint.Version>(userOperation: UserOperation<entrypointVersion>, options: hash.Options<entrypointVersion>): Hex.Hex;
|
|
267
|
+
export declare namespace hash {
|
|
268
|
+
type Options<entrypointVersion extends EntryPoint.Version = EntryPoint.Version> = {
|
|
269
|
+
chainId: number;
|
|
270
|
+
entryPointAddress: Address.Address;
|
|
271
|
+
entryPointVersion: entrypointVersion | EntryPoint.Version;
|
|
272
|
+
};
|
|
273
|
+
type ErrorType = AbiParameters.encode.ErrorType | Hash.keccak256.ErrorType | Hex.concat.ErrorType | Hex.fromNumber.ErrorType | Hex.padLeft.ErrorType | Errors.GlobalErrorType;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Transforms a User Operation into "packed" format.
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```ts twoslash
|
|
280
|
+
* import { Value } from 'ox'
|
|
281
|
+
* import { UserOperation } from 'ox/erc4337'
|
|
282
|
+
*
|
|
283
|
+
* const packed = UserOperation.toPacked({
|
|
284
|
+
* callData: '0xdeadbeef',
|
|
285
|
+
* callGasLimit: 300_000n,
|
|
286
|
+
* maxFeePerGas: Value.fromGwei('20'),
|
|
287
|
+
* maxPriorityFeePerGas: Value.fromGwei('2'),
|
|
288
|
+
* nonce: 69n,
|
|
289
|
+
* preVerificationGas: 100_000n,
|
|
290
|
+
* sender: '0x9f1fdab6458c5fc642fa0f4c5af7473c46837357',
|
|
291
|
+
* signature: '0x...',
|
|
292
|
+
* verificationGasLimit: 100_000n,
|
|
293
|
+
* })
|
|
294
|
+
* ```
|
|
295
|
+
*
|
|
296
|
+
* @param userOperation - The user operation to transform.
|
|
297
|
+
* @returns The packed user operation.
|
|
298
|
+
*/
|
|
299
|
+
export declare function toPacked(userOperation: UserOperation<'0.7', true>): Packed;
|
|
300
|
+
export declare namespace toPacked {
|
|
301
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Converts a {@link ox#UserOperation.UserOperation} to a {@link ox#UserOperation.Rpc}.
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```ts twoslash
|
|
308
|
+
* import { Value } from 'ox'
|
|
309
|
+
* import { UserOperation } from 'ox/erc4337'
|
|
310
|
+
*
|
|
311
|
+
* const userOperation = UserOperation.toRpc({
|
|
312
|
+
* callData: '0xdeadbeef',
|
|
313
|
+
* callGasLimit: 300_000n,
|
|
314
|
+
* maxFeePerGas: Value.fromGwei('20'),
|
|
315
|
+
* maxPriorityFeePerGas: Value.fromGwei('2'),
|
|
316
|
+
* nonce: 69n,
|
|
317
|
+
* preVerificationGas: 100_000n,
|
|
318
|
+
* sender: '0x9f1fdab6458c5fc642fa0f4c5af7473c46837357',
|
|
319
|
+
* verificationGasLimit: 100_000n,
|
|
320
|
+
* })
|
|
321
|
+
* ```
|
|
322
|
+
*
|
|
323
|
+
* @param userOperation - The user operation to convert.
|
|
324
|
+
* @returns An RPC-formatted user operation.
|
|
325
|
+
*/
|
|
326
|
+
export declare function toRpc(userOperation: UserOperation): Rpc;
|
|
327
|
+
export declare namespace toRpc {
|
|
328
|
+
type ErrorType = Hex.fromNumber.ErrorType | Errors.GlobalErrorType;
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=UserOperation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserOperation.d.ts","sourceRoot":"","sources":["../../erc4337/UserOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as Hex from '../core/Hex.js';
|
|
2
|
+
import type { OneOf } from '../core/internal/types.js';
|
|
3
|
+
import type * as EntryPoint from './EntryPoint.js';
|
|
4
|
+
/** User Operation Gas type. */
|
|
5
|
+
export type UserOperationGas<entryPointVersion extends EntryPoint.Version = EntryPoint.Version, bigintType = bigint> = OneOf<(entryPointVersion extends '0.6' ? V06<bigintType> : never) | (entryPointVersion extends '0.7' ? V07<bigintType> : never)>;
|
|
6
|
+
/** RPC User Operation Gas on EntryPoint 0.6 */
|
|
7
|
+
export type Rpc<entryPointVersion extends EntryPoint.Version = EntryPoint.Version> = UserOperationGas<entryPointVersion, Hex.Hex>;
|
|
8
|
+
/** Type for User Operation Gas on EntryPoint 0.6 */
|
|
9
|
+
export type V06<bigintType = bigint> = {
|
|
10
|
+
callGasLimit: bigintType;
|
|
11
|
+
preVerificationGas: bigintType;
|
|
12
|
+
verificationGasLimit: bigintType;
|
|
13
|
+
};
|
|
14
|
+
/** RPC User Operation Gas on EntryPoint 0.6 */
|
|
15
|
+
export type RpcV06 = V06<Hex.Hex>;
|
|
16
|
+
/** Type for User Operation Gas on EntryPoint 0.7 */
|
|
17
|
+
export type V07<bigintType = bigint> = {
|
|
18
|
+
callGasLimit: bigintType;
|
|
19
|
+
paymasterVerificationGasLimit?: bigintType | undefined;
|
|
20
|
+
paymasterPostOpGasLimit?: bigintType | undefined;
|
|
21
|
+
preVerificationGas: bigintType;
|
|
22
|
+
verificationGasLimit: bigintType;
|
|
23
|
+
};
|
|
24
|
+
/** RPC User Operation Gas on EntryPoint 0.7 */
|
|
25
|
+
export type RpcV07 = V07<Hex.Hex>;
|
|
26
|
+
/**
|
|
27
|
+
* Converts an {@link ox#UserOperationGas.Rpc} to an {@link ox#UserOperationGas.UserOperationGas}.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts twoslash
|
|
31
|
+
* import { UserOperationGas } from 'ox/erc4337'
|
|
32
|
+
*
|
|
33
|
+
* const userOperationGas = UserOperationGas.fromRpc({
|
|
34
|
+
* callGasLimit: '0x69420',
|
|
35
|
+
* preVerificationGas: '0x69420',
|
|
36
|
+
* verificationGasLimit: '0x69420',
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @param rpc - The RPC user operation gas to convert.
|
|
41
|
+
* @returns An instantiated {@link ox#UserOperationGas.UserOperationGas}.
|
|
42
|
+
*/
|
|
43
|
+
export declare function fromRpc(rpc: Rpc): UserOperationGas;
|
|
44
|
+
/**
|
|
45
|
+
* Converts a {@link ox#UserOperationGas.UserOperationGas} to a {@link ox#UserOperationGas.Rpc}.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts twoslash
|
|
49
|
+
* import { UserOperationGas } from 'ox/erc4337'
|
|
50
|
+
*
|
|
51
|
+
* const userOperationGas = UserOperationGas.toRpc({
|
|
52
|
+
* callGasLimit: 300_000n,
|
|
53
|
+
* preVerificationGas: 100_000n,
|
|
54
|
+
* verificationGasLimit: 100_000n,
|
|
55
|
+
* })
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @param userOperationGas - The user operation gas to convert.
|
|
59
|
+
* @returns An RPC-formatted user operation gas.
|
|
60
|
+
*/
|
|
61
|
+
export declare function toRpc(userOperationGas: UserOperationGas): Rpc;
|
|
62
|
+
//# sourceMappingURL=UserOperationGas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserOperationGas.d.ts","sourceRoot":"","sources":["../../erc4337/UserOperationGas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAElD,+BAA+B;AAC/B,MAAM,MAAM,gBAAgB,CAC1B,iBAAiB,SAAS,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EACjE,UAAU,GAAG,MAAM,IACjB,KAAK,CACL,CAAC,iBAAiB,SAAS,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAC3D,CAAC,iBAAiB,SAAS,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAC9D,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,GAAG,CACb,iBAAiB,SAAS,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAC/D,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;AAEhD,oDAAoD;AACpD,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI;IACrC,YAAY,EAAE,UAAU,CAAA;IACxB,kBAAkB,EAAE,UAAU,CAAA;IAC9B,oBAAoB,EAAE,UAAU,CAAA;CACjC,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEjC,oDAAoD;AACpD,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI;IACrC,YAAY,EAAE,UAAU,CAAA;IACxB,6BAA6B,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACtD,uBAAuB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChD,kBAAkB,EAAE,UAAU,CAAA;IAC9B,oBAAoB,EAAE,UAAU,CAAA;CACjC,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEjC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,gBAAgB,CAalD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,GAAG,CAmB7D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type * as Address from '../core/Address.js';
|
|
2
|
+
import * as Hex from '../core/Hex.js';
|
|
3
|
+
import * as Log from '../core/Log.js';
|
|
4
|
+
import * as TransactionReceipt from '../core/TransactionReceipt.js';
|
|
5
|
+
import type * as EntryPoint from './EntryPoint.js';
|
|
6
|
+
/**
|
|
7
|
+
* User Operation Receipt type.
|
|
8
|
+
*
|
|
9
|
+
* @see https://eips.ethereum.org/EIPS/eip-4337#-eth_getuseroperationreceipt
|
|
10
|
+
*/
|
|
11
|
+
export type UserOperationReceipt<_entryPointVersion extends EntryPoint.Version = EntryPoint.Version, bigIntType = bigint, intType = number, receipt = TransactionReceipt.TransactionReceipt<TransactionReceipt.Status, TransactionReceipt.Type, bigIntType, intType>> = {
|
|
12
|
+
/** Actual gas cost. */
|
|
13
|
+
actualGasCost: bigIntType;
|
|
14
|
+
/** Actual gas used. */
|
|
15
|
+
actualGasUsed: bigIntType;
|
|
16
|
+
/** Entrypoint address. */
|
|
17
|
+
entryPoint: Address.Address;
|
|
18
|
+
/** Logs emitted during execution. */
|
|
19
|
+
logs: Log.Log<false, bigIntType, intType>[];
|
|
20
|
+
/** Anti-replay parameter. */
|
|
21
|
+
nonce: bigIntType;
|
|
22
|
+
/** Paymaster for the user operation. */
|
|
23
|
+
paymaster?: Address.Address | undefined;
|
|
24
|
+
/** Revert reason, if unsuccessful. */
|
|
25
|
+
reason?: string | undefined;
|
|
26
|
+
/** Transaction receipt of the user operation execution. */
|
|
27
|
+
receipt: receipt;
|
|
28
|
+
/** The account sending the user operation. */
|
|
29
|
+
sender: Address.Address;
|
|
30
|
+
/** If the user operation execution was successful. */
|
|
31
|
+
success: boolean;
|
|
32
|
+
/** Hash of the user operation. */
|
|
33
|
+
userOpHash: Hex.Hex;
|
|
34
|
+
};
|
|
35
|
+
/** RPC User Operation Receipt on EntryPoint 0.6 */
|
|
36
|
+
export type Rpc<entryPointVersion extends EntryPoint.Version = EntryPoint.Version> = UserOperationReceipt<entryPointVersion, Hex.Hex, Hex.Hex, TransactionReceipt.TransactionReceipt<TransactionReceipt.RpcStatus, TransactionReceipt.RpcType, Hex.Hex, Hex.Hex>>;
|
|
37
|
+
/**
|
|
38
|
+
* Converts an {@link ox#UserOperationReceipt.Rpc} to an {@link ox#UserOperationReceipt.UserOperationReceipt}.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts twoslash
|
|
42
|
+
* // @noErrors
|
|
43
|
+
* import { UserOperationReceipt } from 'ox/erc4337'
|
|
44
|
+
*
|
|
45
|
+
* const userOperationReceipt = UserOperationReceipt.fromRpc({
|
|
46
|
+
* actualGasCost: '0x1',
|
|
47
|
+
* actualGasUsed: '0x2',
|
|
48
|
+
* entryPoint: '0x0000000071727de22e5e9d8baf0edac6f37da032',
|
|
49
|
+
* logs: [],
|
|
50
|
+
* nonce: '0x1',
|
|
51
|
+
* receipt: { ... },
|
|
52
|
+
* sender: '0xE911628bF8428C23f179a07b081325cAe376DE1f',
|
|
53
|
+
* success: true,
|
|
54
|
+
* userOpHash: '0x5ab163e9b2f30549274c7c567ca0696edf9ef1aa476d9784d22974468fdb24d8',
|
|
55
|
+
* })
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @param rpc - The RPC user operation receipt to convert.
|
|
59
|
+
* @returns An instantiated {@link ox#UserOperationReceipt.UserOperationReceipt}.
|
|
60
|
+
*/
|
|
61
|
+
export declare function fromRpc(rpc: Rpc): UserOperationReceipt;
|
|
62
|
+
/**
|
|
63
|
+
* Converts a {@link ox#UserOperationReceipt.UserOperationReceipt} to a {@link ox#UserOperationReceipt.Rpc}.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts twoslash
|
|
67
|
+
* // @noErrors
|
|
68
|
+
* import { UserOperationReceipt } from 'ox/erc4337'
|
|
69
|
+
*
|
|
70
|
+
* const userOperationReceipt = UserOperationReceipt.toRpc({
|
|
71
|
+
* actualGasCost: 1n,
|
|
72
|
+
* actualGasUsed: 2n,
|
|
73
|
+
* entryPoint: '0x0000000071727de22e5e9d8baf0edac6f37da032',
|
|
74
|
+
* logs: [],
|
|
75
|
+
* nonce: 1n,
|
|
76
|
+
* receipt: { ... },
|
|
77
|
+
* sender: '0xE911628bF8428C23f179a07b081325cAe376DE1f',
|
|
78
|
+
* success: true,
|
|
79
|
+
* userOpHash: '0x5ab163e9b2f30549274c7c567ca0696edf9ef1aa476d9784d22974468fdb24d8',
|
|
80
|
+
* })
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @param userOperationReceipt - The user operation receipt to convert.
|
|
84
|
+
* @returns An RPC-formatted user operation receipt.
|
|
85
|
+
*/
|
|
86
|
+
export declare function toRpc(userOperationReceipt: UserOperationReceipt): Rpc;
|
|
87
|
+
//# sourceMappingURL=UserOperationReceipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserOperationReceipt.d.ts","sourceRoot":"","sources":["../../erc4337/UserOperationReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAElD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAC9B,kBAAkB,SAAS,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAClE,UAAU,GAAG,MAAM,EACnB,OAAO,GAAG,MAAM,EAChB,OAAO,GAAG,kBAAkB,CAAC,kBAAkB,CAC7C,kBAAkB,CAAC,MAAM,EACzB,kBAAkB,CAAC,IAAI,EACvB,UAAU,EACV,OAAO,CACR,IACC;IACF,uBAAuB;IACvB,aAAa,EAAE,UAAU,CAAA;IACzB,uBAAuB;IACvB,aAAa,EAAE,UAAU,CAAA;IACzB,0BAA0B;IAC1B,UAAU,EAAE,OAAO,CAAC,OAAO,CAAA;IAC3B,qCAAqC;IACrC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAA;IAC3C,6BAA6B;IAC7B,KAAK,EAAE,UAAU,CAAA;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;IACvC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAA;IAChB,8CAA8C;IAC9C,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;IACvB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAA;CACpB,CAAA;AAED,mDAAmD;AACnD,MAAM,MAAM,GAAG,CACb,iBAAiB,SAAS,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAC/D,oBAAoB,CACtB,iBAAiB,EACjB,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,GAAG,EACP,kBAAkB,CAAC,kBAAkB,CACnC,kBAAkB,CAAC,SAAS,EAC5B,kBAAkB,CAAC,OAAO,EAC1B,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,GAAG,CACR,CACF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,oBAAoB,CAStD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,GAAG,CAkBrE"}
|