op-viem
v1.1.1
Published
<br/>
Downloads
1,013
Keywords
Readme
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:
- Follow @wilsoncusack Twitter for project updates
Contributing
If you're interested in contributing, please read the contributing docs before submitting a pull request.
Authors
- @wilsoncusack (wilsoncusack.eth Twitter)
- @zencephalon (zencephalon.eth, Twitter)
- @roninjin10 (fucory.eth, Twitter)
License
MIT License