Skip to content

base/op-viem

Folders and files

NameName
Last commit message
Last commit date
Nov 29, 2023
Nov 6, 2023
Dec 14, 2023
Feb 13, 2024
Jan 29, 2024
Sep 15, 2023
Sep 19, 2023
Oct 6, 2023
Nov 29, 2023
Sep 19, 2023
Sep 15, 2023
Feb 13, 2024
Sep 8, 2023
Nov 6, 2023
Jan 29, 2024
Jan 29, 2024
Sep 13, 2023
Sep 13, 2023
Sep 13, 2023
Sep 13, 2023
Sep 13, 2023
Oct 26, 2023

Repository files navigation


OP Viem

Viem Extension for OP Stack Chains


🚨 DEPRECATION WARNING 🚨

With the upstreaming of most op-viem features into Viem consider this library deprecated. We recommend using Viem's native OP Stack support instead.

Features

  • Simplifies cross L1 & L2 interactions
  • Seamless extension to Viem
  • TypeScript ready
  • Test suite running against forked Ethereum network

Overview

// import modules
import { createWalletClient, createPublicClient, custom, http } from 'viem'
import { privateKeyToAccount } from 'viem/accounts'
import { mainnet, base } from 'viem/chains'
import { baseAddresses } from 'op-viem/chains'
import { walletL1OpStackActions, publicL1OpStackActions, publicL2OpStackActions } from 'op-viem'

// create clients
export const opStackL1WalletClient = createWalletClient({
  chain: mainnet,
  transport: custom(window.ethereum)
}).extend(walletL1OpStackActions)

export const opStackL1PublicClient = createPublicClient({
  chain: mainnet,
  transport: http()
}).extend(publicL1OpStackActions)

export const opStackL2PublicClient = createPublicClient({
  chain: base,
  transport: http()
}).extend(publicL2OpStackActions)

// perform an action
opStackL1PublicClient.getOutputForL2Block(blockNumber: 2725977n, ...baseAddresses)

Community

Check out the following places for more viem-related content:

Contributing

If you're interested in contributing, please read the contributing docs before submitting a pull request.

Authors

License

MIT License