create7702Context function

Eip7702Context create7702Context({
  1. required String rpcUrl,
  2. required HexString delegateAddress,
  3. GasTransformFn? transformer,
})

Creates an Eip7702Context with a managed Web3Client instance.

This factory function is the recommended way to instantiate an Eip7702Context for most applications. It handles:

  • Converting the hex-formatted delegateAddress to an EthereumAddress
  • Creating a Web3Client with the provided rpcUrl
  • Optionally applying a transformer for gas estimation adjustments

The created Web3Client uses a default HTTP client internally.

Parameters:

  • rpcUrl — the Ethereum JSON-RPC endpoint URL.
  • delegateAddress — the implementation contract address as a hex string.
  • transformer — optional function to modify gas estimates before transaction submission (e.g., multiplying by 1.2 for a 20% buffer).

Returns a fully configured Eip7702Context ready for use with builders.

Example

final context = create7702Context(
  rpcUrl: 'https://mainnet.infura.io/v3/YOUR_KEY',
  delegateAddress: '0x1234...',
  transformer: (gas) => gas * BigInt.from(12) ~/ BigInt.from(10), // 20% buffer
);

Implementation

Eip7702Context create7702Context({
  required String rpcUrl,
  required HexString delegateAddress,
  GasTransformFn? transformer,
}) => Eip7702Context(
  delegateAddress: delegateAddress.ethAddress,
  web3Client: Web3Client(rpcUrl, http.Client()),
  transformer: transformer,
);