base-org / op-viem

Viem extensions for the Op Stack
https://opviem.sh
MIT License
345 stars 237 forks source link


OP Viem

Viem Extension for OP Stack Chains


## 🚨 DEPRECATION WARNING 🚨 With the upstreaming of most op-viem features into [Viem](https://viem.sh/op-stack) consider this library deprecated. We recommend using [Viem's native OP Stack support](https://viem.sh/op-stack) instead. ## Features - Simplifies cross L1 & L2 interactions - Seamless extension to [Viem](https://github.com/wagmi-dev/viem) - TypeScript ready - Test suite running against [forked](https://ethereum.org/en/glossary/#fork) Ethereum network ## Overview ```ts // 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](https://twitter.com/wilsoncusack) Twitter for project updates ## Contributing If you're interested in contributing, please read the [contributing docs](CONTRIBUTING.md) **before submitting a pull request**. ## Authors - [@wilsoncusack](https://github.com/wilsoncusack) (wilsoncusack.eth [Twitter](https://twitter.com/wilsoncusack)) - [@zencephalon](https://github.com/zencephalon) (zencephalon.eth, [Twitter](https://twitter.com/zencephalon)) - [@roninjin10](https://github.com/roninjin10) (fucory.eth, [Twitter](https://twitter.com/FUCORY)) ## License [MIT](LICENSE.md) License