You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
3.8 KiB
180 lines
3.8 KiB
import type * as Address from '../core/Address.js'
|
|
import type * as Hex from '../core/Hex.js'
|
|
import type * as RpcSchema from '../core/RpcSchema.js'
|
|
import type * as StateOverrides from '../core/StateOverrides.js'
|
|
import type * as EntryPoint from './EntryPoint.js'
|
|
import type * as UserOperation from './UserOperation.js'
|
|
import type * as UserOperationGas from './UserOperationGas.js'
|
|
import type * as UserOperationReceipt from './UserOperationReceipt.js'
|
|
|
|
/**
|
|
* Union of all JSON-RPC Methods for ERC-4337 Bundlers.
|
|
*
|
|
* @example
|
|
* ```ts twoslash
|
|
* import { RpcSchema } from 'ox'
|
|
*
|
|
* type Schema = RpcSchema.Bundler
|
|
* // ^?
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* ```
|
|
*/
|
|
export type Bundler<
|
|
entryPointVersion extends EntryPoint.Version = EntryPoint.Version,
|
|
> = RpcSchema.From<
|
|
| {
|
|
Request: {
|
|
method: 'eth_chainId'
|
|
params?: undefined
|
|
}
|
|
ReturnType: Hex.Hex
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'eth_estimateUserOperationGas'
|
|
params:
|
|
| [
|
|
userOperation: UserOperation.Rpc<entryPointVersion>,
|
|
entrypoint: Address.Address,
|
|
]
|
|
| [
|
|
userOperation: UserOperation.Rpc<entryPointVersion>,
|
|
entrypoint: Address.Address,
|
|
stateOverrides: StateOverrides.Rpc,
|
|
]
|
|
}
|
|
ReturnType: UserOperationGas.Rpc<entryPointVersion>
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'eth_getUserOperationByHash'
|
|
params: [hash: Hex.Hex]
|
|
}
|
|
ReturnType: UserOperation.Rpc<entryPointVersion> | null
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'eth_getUserOperationReceipt'
|
|
params: [hash: Hex.Hex]
|
|
}
|
|
ReturnType: UserOperationReceipt.Rpc<entryPointVersion> | null
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'eth_sendUserOperation'
|
|
params: [
|
|
userOperation: UserOperation.Rpc<entryPointVersion>,
|
|
entrypoint: Address.Address,
|
|
]
|
|
}
|
|
ReturnType: Hex.Hex
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'eth_supportedEntryPoints'
|
|
params?: undefined
|
|
}
|
|
ReturnType: readonly Address.Address[]
|
|
}
|
|
>
|
|
|
|
/**
|
|
* Union of all JSON-RPC Methods for the debug methods of ERC-4337 Bundlers.
|
|
*
|
|
* @example
|
|
* ```ts twoslash
|
|
* import { RpcSchema } from 'ox'
|
|
*
|
|
* type Schema = RpcSchema.BundlerDebug
|
|
* // ^?
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* ```
|
|
*/
|
|
export type BundlerDebug<
|
|
entryPointVersion extends EntryPoint.Version = EntryPoint.Version,
|
|
> = RpcSchema.From<
|
|
| {
|
|
Request: {
|
|
method: 'debug_bundler_clearState'
|
|
params?: undefined
|
|
}
|
|
ReturnType: undefined
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'debug_bundler_dumpMempool'
|
|
params: [entryPoint: Address.Address]
|
|
}
|
|
ReturnType: readonly { userOp: UserOperation.Rpc }[]
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'debug_bundler_sendBundleNow'
|
|
params?: undefined
|
|
}
|
|
ReturnType: Hex.Hex
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'debug_bundler_setBundlingMode'
|
|
params: [mode: 'auto' | 'manual']
|
|
}
|
|
ReturnType: undefined
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'debug_bundler_setReputation'
|
|
params: [
|
|
reputations: readonly {
|
|
address: Address.Address
|
|
opsSeen: Hex.Hex
|
|
opsIncluded: Hex.Hex
|
|
}[],
|
|
entryPoint: Address.Address,
|
|
]
|
|
}
|
|
ReturnType: undefined
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'debug_bundler_dumpReputation'
|
|
params: [entryPoint: Address.Address]
|
|
}
|
|
ReturnType: readonly {
|
|
address: Address.Address
|
|
opsSeen: Hex.Hex
|
|
opsIncluded: Hex.Hex
|
|
}[]
|
|
}
|
|
| {
|
|
Request: {
|
|
method: 'debug_bundler_addUserOps'
|
|
params: [
|
|
userOps: readonly UserOperation.Rpc<entryPointVersion>[],
|
|
entryPoint: Address.Address,
|
|
]
|
|
}
|
|
ReturnType: undefined
|
|
}
|
|
>
|