ABI and Address constants + generated code from @eth-optimism/contracts-bedrock/ for use in TypeScript.
Much of this package is generated. See CODE_GEN.md for instructions on how to generate.
The main entrypoint exports constants related to contracts bedrock as const. As const allows it to be used in TypeScript with stronger typing than importing JSON.
- Exports contract abis.
- Exports contract addresses
import {
l2OutputOracleProxyABI,
l2OutputOracleAddresses,
} from '@eth-optimism/contracts-ts'
console.log(l2OutputOracleAddresses[10], abi)
Addresses are also exported as an object for convenience.
import { addresses } from '@eth-optimism/contracts-ts'
console.log(addresses.l2OutputOracle[10])
- All React hooks
@eth-optimism/contracts-ts/react
import { useAddressManagerAddress } from '@eth-optimism/contracts-ts/react'
const component = () => {
const { data, error, loading } = useAddressManagerAddress()
if (loading) {
return <div>Loading</div>
}
if (err) {
return <div>Error</div>
}
return <div>{data}</div>
}
- All wagmi actions for use in Vanilla JS or non react code
import { readSystemConfig } from '@eth-optimism/contracts-ts/actions'
console.log(await readSystemConfig())