Skip to content

EvmWalletClient.ts

This module provides an EVM-backed wallet client.

Added in v0.4.0

Signature

export type EvmWalletClientConfig = {}

Added in v0.4.0

Signature

export declare const layerFromBrowser: (options: {
providerPredicate: P.Predicate<Mipd.EIP6963ProviderDetail>
accountPredicate: P.Predicate<`0x${string}`>
}) => Layer.Layer<EvmWalletClient | Client.WalletClient, Error.SdkError>

Added in v0.4.0

Signature

export declare const layerFromThirdweb: (options: {
thirdwebWallet: Wallet
thirdwebClient: ThirdwebClient
chain: Chain
}) => Layer.Layer<EvmWalletClient | Client.WalletClient, Error.SdkError>

Added in v0.4.0

Signature

export declare const layerFromViem: (
config: Viem.WalletClient
) => Layer.Layer<EvmWalletClient | Client.WalletClient, Error.SdkError>

Added in v0.4.0

EIP-5792 call type - re-exported from viem

Signature

export type Eip5792Call = Viem.Call

Added in v1.0.0

EIP-5792 get calls status return type - re-exported from viem

Signature

export type Eip5792CallsStatus = ViemActions.GetCallsStatusReturnType

Added in v1.0.0

EIP-5792 get capabilities return type - re-exported from viem

Signature

export type Eip5792Capabilities = ViemActions.GetCapabilitiesReturnType

Added in v1.0.0

EIP-5792 send calls return type - re-exported from viem

Signature

export type Eip5792SendCallsResult = ViemActions.SendCallsReturnType

Added in v1.0.0

Signature

export interface EvmWalletClient extends Client.WalletClient {
readonly [TypeId]: TypeId
readonly prepareBatchTransactionRequest: (
requests: ReadonlyArray<Domain.PreparedRequest>
) => Effect.Effect<ReadonlyArray<Viem.PrepareTransactionRequestReturnType>, Error.SdkError, never>
readonly writeContract: <
const abi extends Viem.Abi | readonly unknown[],
functionName extends Viem.ContractFunctionName<abi, "payable" | "nonpayable">,
args extends Viem.ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
>(
params: Viem.WriteContractParameters<abi, functionName, args>
) => Effect.Effect<Domain.SubmissionResult, Error.SdkError, never>
/**
* EIP-5792: Get wallet capabilities
* @since 1.0.0
* @category eip5792
*/
readonly getCapabilities: () => Effect.Effect<Eip5792Capabilities, Error.SdkError, never>
/**
* EIP-5792: Send multiple calls as a batch
* @since 1.0.0
* @category eip5792
*/
readonly sendCalls: (
calls: ReadonlyArray<Eip5792Call>
) => Effect.Effect<Eip5792SendCallsResult, Error.SdkError, never>
/**
* EIP-5792: Get status of a batch call
* @since 1.0.0
* @category eip5792
*/
readonly getCallsStatus: (id: string) => Effect.Effect<Eip5792CallsStatus, Error.SdkError, never>
}

Added in v0.4.0

Signature

export declare const EvmWalletClient: Context.Tag<EvmWalletClient, EvmWalletClient>

Added in v0.4.0

Signature

export declare const TypeId: typeof TypeId

Added in v0.4.0

Signature

export type TypeId = typeof TypeId

Added in v0.4.0

Input type for toBatchCalls - accepts SDK PreparedRequest or custom contract calls.

Signature

export type BatchCallInput = Domain.PreparedRequest | CustomContractCall

Added in v1.0.0

A custom contract call for use with toBatchCalls. Re-exported from Domain for convenience.

Signature

export type CustomContractCall = Domain.CustomContractCall

Added in v1.0.0

Convert SDK PreparedRequests and custom contract calls to EIP-5792 batch calls.

Use this to combine SDK-prepared transactions with your own contract calls (e.g., a batch proxy) into a single batched transaction.

Signature

export declare function toBatchCalls(inputs: ReadonlyArray<BatchCallInput>): Eip5792Call[]

Added in v1.0.0