Skip to content
Merged
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
fe2db8b
Contracts: connect-contracts
gigamesh Apr 30, 2021
7b989f3
Trying to resolve build problems
gigamesh Apr 30, 2021
c0cea77
connect-contracts build working
gigamesh Apr 30, 2021
d642cc4
Adds artifacts-ovm back to gitignore
gigamesh Apr 30, 2021
0313ffe
Removes incorrect changes
gigamesh Apr 30, 2021
5cbf73d
Adds copy-artifacts script
gigamesh Apr 30, 2021
1603d36
Adds test file (not working yet)
gigamesh Apr 30, 2021
9579011
fix: incorrect contract instantiation
smartcontracts Apr 30, 2021
124ddc7
Improves tests and removes old deployment versions
gigamesh May 3, 2021
018b7a6
Single source of truth for predeploy addresses
gigamesh May 3, 2021
1c729b2
Reverts deployments/README.md
gigamesh May 3, 2021
0f9b310
Makes connect-contracts more DRY
gigamesh May 4, 2021
ae767c5
Adds missing @ethersproject/abstract-signer dependency
gigamesh May 4, 2021
55d9185
Adds argument evaluation
gigamesh May 4, 2021
34e72c5
Adds L1Contracts and L2Contracts types
gigamesh May 5, 2021
d160c62
Attempts removing artifacts-ovm again
gigamesh May 6, 2021
3623970
Adds webpack config (not working yet)
gigamesh May 6, 2021
c17c23b
build: add artifacts to dist (#776)
snario May 6, 2021
4c95bd1
Updates lint rule
gigamesh May 6, 2021
a2a7979
Adds l2 imports
gigamesh May 6, 2021
a4f4669
Fixes dependency tree bug
gigamesh May 6, 2021
dd5d8c3
Merge branch 'master' into feat/contracts-export
gigamesh May 6, 2021
896215f
Removes webpack stuff
gigamesh May 6, 2021
a427428
Merge branch 'master' into feat/contracts-export
gakonst May 7, 2021
da6b1ee
Fixing package.json issues and adds .DS_Store to gitignore
gigamesh May 10, 2021
f7bf8ad
Merge branch 'feat/contracts-export' of https://github.com/ethereum-o…
gigamesh May 10, 2021
63fdc73
Merging master
gigamesh May 10, 2021
091c51f
Merges master
gigamesh May 10, 2021
1473872
Removes test-contracts script
gigamesh May 10, 2021
cb8758e
Reverting script change
gigamesh May 11, 2021
a5f5ddb
Adds comments
gigamesh May 11, 2021
0676535
Adds comment
gigamesh May 11, 2021
c83a925
Merge branch 'develop' into feat/contracts-export
gigamesh May 11, 2021
5fe6611
Renames deployments folders
gigamesh May 11, 2021
270b2be
Fixes linting errors
gigamesh May 11, 2021
e7fe03a
Merge branch 'develop' into feat/contracts-export
gakonst May 12, 2021
9d2ff99
Merge branch 'develop' into feat/contracts-export
gigamesh May 12, 2021
ce54f66
Generates markdown
gigamesh May 12, 2021
673716d
Merge branch 'develop' into feat/contracts-export
gigamesh May 12, 2021
f4a7e90
Merge branch 'develop' into feat/contracts-export
smartcontracts May 12, 2021
fcf9f94
Merge branch 'develop' into feat/contracts-export
gigamesh May 13, 2021
5794bcf
Merge branch 'develop' into feat/contracts-export
gigamesh May 14, 2021
69c3b39
Merge branch 'develop' into feat/contracts-export
gigamesh May 17, 2021
a8752e5
Merge branch 'develop' into feat/contracts-export
gigamesh May 19, 2021
7f64a4c
Merge branch 'develop' into feat/contracts-export
gigamesh May 20, 2021
4e35993
Merge branch 'develop' into feat/contracts-export
gigamesh May 21, 2021
5e1f9f0
Merge branch 'develop' into feat/contracts-export
snario Jun 3, 2021
4e5ad78
build: add deployments directory to Dockerfiles
snario Jun 3, 2021
485bbd5
Removes unneeded contracts, improves error handling and tests
gigamesh Jun 4, 2021
30c0477
Merge branch 'master' into feat/contracts-export
gigamesh Jun 4, 2021
119d69c
Adds changeset
gigamesh Jun 4, 2021
7421d2e
Merge branch 'develop' into feat/contracts-export
snario Jun 7, 2021
b9f5bb7
Merge branch 'develop' into feat/contracts-export
gigamesh Jun 7, 2021
3ec6749
Merge branch 'develop' into feat/contracts-export
gigamesh Jun 7, 2021
8f20999
yarn.lock
gigamesh Jun 7, 2021
203d31c
Merge branch 'feat/contracts-export' of https://github.com/ethereum-o…
gigamesh Jun 7, 2021
7c9be02
Merge branch 'develop' into feat/contracts-export
gigamesh Jun 8, 2021
307cc99
Removes console.log
gigamesh Jun 8, 2021
6ebdc72
Merge branch 'feat/contracts-export' of https://github.com/ethereum-o…
gigamesh Jun 8, 2021
da2d549
Merge branch 'develop' into feat/contracts-export
gigamesh Jun 8, 2021
86eead5
Merge branch 'develop' into feat/contracts-export
snario Jun 14, 2021
70ae054
Changes from minor to patch version
gigamesh Jun 14, 2021
d7b60db
Merge branch 'feat/contracts-export' of https://github.com/ethereum-o…
gigamesh Jun 14, 2021
89e886c
Merge branch 'develop' into feat/contracts-export
snario Jun 16, 2021
88bacaf
Merge branch 'develop' into feat/contracts-export
gigamesh Jun 17, 2021
9520802
Fixes lint errors
gigamesh Jun 18, 2021
41ed33f
Merge branch 'develop' into feat/contracts-export
gigamesh Jun 21, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/fair-icons-argue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@eth-optimism/contracts': minor
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a patch

---

"Adds connectL1Contracts and connectL2Contracts utility functions"
1 change: 1 addition & 0 deletions ops/docker/Dockerfile.batch-submitter
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ COPY --from=builder /optimism/packages/common-ts/package.json ./packages/common-
COPY --from=builder /optimism/packages/common-ts/dist ./packages/common-ts/dist

COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json
COPY --from=builder /optimism/packages/contracts/deployments ./packages/contracts/deployments
COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist
COPY --from=builder /optimism/packages/contracts/artifacts ./packages/contracts/artifacts
COPY --from=builder /optimism/packages/contracts/artifacts-ovm ./packages/contracts/artifacts-ovm
Expand Down
1 change: 1 addition & 0 deletions ops/docker/Dockerfile.data-transport-layer
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ COPY --from=builder /optimism/packages/common-ts/package.json ./packages/common-
COPY --from=builder /optimism/packages/common-ts/dist ./packages/common-ts/dist

COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json
COPY --from=builder /optimism/packages/contracts/deployments ./packages/contracts/deployments
COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist
COPY --from=builder /optimism/packages/contracts/artifacts ./packages/contracts/artifacts
COPY --from=builder /optimism/packages/contracts/artifacts-ovm ./packages/contracts/artifacts-ovm
Expand Down
1 change: 1 addition & 0 deletions ops/docker/Dockerfile.message-relayer
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ COPY --from=builder /optimism/packages/common-ts/package.json ./packages/common-
COPY --from=builder /optimism/packages/common-ts/dist ./packages/common-ts/dist

COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json
COPY --from=builder /optimism/packages/contracts/deployments ./packages/contracts/deployments
COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist
COPY --from=builder /optimism/packages/contracts/artifacts ./packages/contracts/artifacts
COPY --from=builder /optimism/packages/contracts/artifacts-ovm ./packages/contracts/artifacts-ovm
Expand Down
123 changes: 123 additions & 0 deletions packages/contracts/src/connect-contracts.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
import { Signer, Contract, providers, ethers } from 'ethers'
import { Provider } from '@ethersproject/abstract-provider'
import { getL1ContractData, getL2ContractData } from './contract-data'

export type Network = 'goerli' | 'kovan' | 'mainnet'
interface L1Contracts {
addressManager: Contract
canonicalTransactionChain: Contract
executionManager: Contract
fraudVerifier: Contract
ethGateway: Contract
multiMessageRelayer: Contract
stateCommitmentChain: Contract
xDomainMessengerProxy: Contract
l1EthGatewayProxy: Contract
bondManager: Contract
}

interface L2Contracts {
eth: Contract
xDomainMessenger: Contract
messagePasser: Contract
messageSender: Contract
deployerWhiteList: Contract
ecdsaContractAccount: Contract
sequencerEntrypoint: Contract
erc1820Registry: Contract
addressManager: Contract
}

/**
* Validates user provided a singer or provider & throws error if not
* @param signerOrProvider
*/
const checkSignerType = (signerOrProvider: Signer | Provider) => {
if (!signerOrProvider) {
throw Error('signerOrProvider argument is undefined')
}
if (
!Provider.isProvider(signerOrProvider) &&
!Signer.isSigner(signerOrProvider)
) {
throw Error('signerOrProvider argument is the wrong type')
}
}

/**
* Connects a signer/provider to layer 1 contracts on a given network
* @param signerOrProvider ethers signer or provider
* @param network string denoting network
* @returns l1 contracts connected to signer/provider
*/
export const connectL1Contracts = async (
signerOrProvider: Signer | Provider,
network: Network
): Promise<L1Contracts> => {
checkSignerType(signerOrProvider)

console.log(network)
if (!['mainnet', 'kovan', 'goerli'].includes(network)) {
throw Error('Must specify network: mainnet, kovan, or goerli.')
}

const l1ContractData = getL1ContractData(network)

const toEthersContract = (data) =>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: this function is defined twice

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's technically 2 definitions. The signerOrProvider comes from outside its scope.

I don't have a strong preference but Liam asked for several changes to minimize code. If the signerOrProvider is required as an argument, it results in a lot of repetition and ends up kind of becoming a pointless helper.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does making signerOrProvider be a optional arg help? ie signerOrProvider?

new Contract(data.address, data.abi, signerOrProvider)

return {
addressManager: toEthersContract(l1ContractData.Lib_AddressManager),
canonicalTransactionChain: toEthersContract(
l1ContractData.OVM_CanonicalTransactionChain
),
executionManager: toEthersContract(l1ContractData.OVM_ExecutionManager),
fraudVerifier: toEthersContract(l1ContractData.OVM_FraudVerifier),
ethGateway: toEthersContract(l1ContractData.OVM_L1ETHGateway),
multiMessageRelayer: toEthersContract(
l1ContractData.OVM_L1MultiMessageRelayer
),
stateCommitmentChain: toEthersContract(
l1ContractData.OVM_StateCommitmentChain
),
xDomainMessengerProxy: toEthersContract(
l1ContractData.Proxy__OVM_L1CrossDomainMessenger
),
l1EthGatewayProxy: toEthersContract(l1ContractData.Proxy__OVM_L1ETHGateway),
// TODO: update this with actual bond manager when its ready
bondManager: toEthersContract(l1ContractData.mockOVM_BondManager),
}
}

/**
* Connects a signer/provider to layer 2 contracts (network agnostic)
* @param signerOrProvider ethers signer or provider
* @returns l2 contracts connected to signer/provider
*/
export const connectL2Contracts = async (
signerOrProvider
): Promise<L2Contracts> => {
const l2ContractData = await getL2ContractData()
checkSignerType(signerOrProvider)

const toEthersContract = (data) =>
new Contract(data.address, data.abi, signerOrProvider)

return {
eth: toEthersContract(l2ContractData.OVM_ETH),
xDomainMessenger: toEthersContract(
l2ContractData.OVM_L2CrossDomainMessenger
),
messagePasser: toEthersContract(l2ContractData.OVM_L2ToL1MessagePasser),
messageSender: toEthersContract(l2ContractData.OVM_L1MessageSender),
deployerWhiteList: toEthersContract(l2ContractData.OVM_DeployerWhitelist),
ecdsaContractAccount: toEthersContract(
l2ContractData.OVM_ECDSAContractAccount
),
sequencerEntrypoint: toEthersContract(
l2ContractData.OVM_SequencerEntrypoint
),
erc1820Registry: toEthersContract(l2ContractData.ERC1820Registry),
addressManager: toEthersContract(l2ContractData.Lib_AddressManager),
}
}
179 changes: 179 additions & 0 deletions packages/contracts/src/contract-data.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
import { predeploys as l2Addresses } from './predeploys'
import { Network } from './connect-contracts'

/**
* This file is necessarily not DRY because it needs to be usable
* in a browser context and can't take advantage of dynamic imports
* (ie: the json needs to all be imported when transpiled)
*/

const Mainnet__Lib_AddressManager = require('../deployments/mainnet/Lib_AddressManager.json')
const Mainnet__OVM_CanonicalTransactionChain = require('../deployments/mainnet/OVM_CanonicalTransactionChain.json')
const Mainnet__OVM_ExecutionManager = require('../deployments/mainnet/OVM_ExecutionManager.json')
const Mainnet__OVM_FraudVerifier = require('../deployments/mainnet/OVM_FraudVerifier.json')
const Mainnet__OVM_L1CrossDomainMessenger = require('../deployments/mainnet/OVM_L1CrossDomainMessenger.json')
const Mainnet__OVM_L1ETHGateway = require('../deployments/mainnet/OVM_L1ETHGateway.json')
const Mainnet__OVM_L1MultiMessageRelayer = require('../deployments/mainnet/OVM_L1MultiMessageRelayer.json')
const Mainnet__OVM_SafetyChecker = require('../deployments/mainnet/OVM_SafetyChecker.json')
const Mainnet__OVM_StateCommitmentChain = require('../deployments/mainnet/OVM_StateCommitmentChain.json')
const Mainnet__OVM_StateManagerFactory = require('../deployments/mainnet/OVM_StateManagerFactory.json')
const Mainnet__OVM_StateTransitionerFactory = require('../deployments/mainnet/OVM_StateTransitionerFactory.json')
const Mainnet__Proxy__OVM_L1CrossDomainMessenger = require('../deployments/mainnet/Proxy__OVM_L1CrossDomainMessenger.json')
const Mainnet__Proxy__OVM_L1ETHGateway = require('../deployments/mainnet/Proxy__OVM_L1ETHGateway.json')
const Mainnet__mockOVM_BondManager = require('../deployments/mainnet/mockOVM_BondManager.json')

const Kovan__Lib_AddressManager = require('../deployments/kovan/Lib_AddressManager.json')
const Kovan__OVM_CanonicalTransactionChain = require('../deployments/kovan/OVM_CanonicalTransactionChain.json')
const Kovan__OVM_ExecutionManager = require('../deployments/kovan/OVM_ExecutionManager.json')
const Kovan__OVM_FraudVerifier = require('../deployments/kovan/OVM_FraudVerifier.json')
const Kovan__OVM_L1CrossDomainMessenger = require('../deployments/kovan/OVM_L1CrossDomainMessenger.json')
const Kovan__OVM_L1ETHGateway = require('../deployments/kovan/OVM_L1ETHGateway.json')
const Kovan__OVM_L1MultiMessageRelayer = require('../deployments/kovan/OVM_L1MultiMessageRelayer.json')
const Kovan__OVM_SafetyChecker = require('../deployments/kovan/OVM_SafetyChecker.json')
const Kovan__OVM_StateCommitmentChain = require('../deployments/kovan/OVM_StateCommitmentChain.json')
const Kovan__OVM_StateManagerFactory = require('../deployments/kovan/OVM_StateManagerFactory.json')
const Kovan__OVM_StateTransitionerFactory = require('../deployments/kovan/OVM_StateTransitionerFactory.json')
const Kovan__Proxy__OVM_L1CrossDomainMessenger = require('../deployments/kovan/Proxy__OVM_L1CrossDomainMessenger.json')
const Kovan__Proxy__OVM_L1ETHGateway = require('../deployments/kovan/Proxy__OVM_L1ETHGateway.json')
const Kovan__mockOVM_BondManager = require('../deployments/kovan/mockOVM_BondManager.json')

const Goerli__Lib_AddressManager = require('../deployments/goerli/Lib_AddressManager.json')
const Goerli__OVM_CanonicalTransactionChain = require('../deployments/goerli/OVM_CanonicalTransactionChain.json')
const Goerli__OVM_ExecutionManager = require('../deployments/goerli/OVM_ExecutionManager.json')
const Goerli__OVM_FraudVerifier = require('../deployments/goerli/OVM_FraudVerifier.json')
const Goerli__OVM_L1CrossDomainMessenger = require('../deployments/goerli/OVM_L1CrossDomainMessenger.json')
const Goerli__OVM_L1ETHGateway = require('../deployments/goerli/OVM_L1ETHGateway.json')
const Goerli__OVM_L1MultiMessageRelayer = require('../deployments/goerli/OVM_L1MultiMessageRelayer.json')
const Goerli__OVM_SafetyChecker = require('../deployments/goerli/OVM_SafetyChecker.json')
const Goerli__OVM_StateCommitmentChain = require('../deployments/goerli/OVM_StateCommitmentChain.json')
const Goerli__OVM_StateManagerFactory = require('../deployments/goerli/OVM_StateManagerFactory.json')
const Goerli__OVM_StateTransitionerFactory = require('../deployments/goerli/OVM_StateTransitionerFactory.json')
const Goerli__Proxy__OVM_L1CrossDomainMessenger = require('../deployments/goerli/Proxy__OVM_L1CrossDomainMessenger.json')
const Goerli__Proxy__OVM_L1ETHGateway = require('../deployments/goerli/Proxy__OVM_L1ETHGateway.json')
const Goerli__mockOVM_BondManager = require('../deployments/goerli/mockOVM_BondManager.json')

export const getL1ContractData = (network: Network) => {
return {
Lib_AddressManager: {
mainnet: Mainnet__Lib_AddressManager,
kovan: Kovan__Lib_AddressManager,
goerli: Goerli__Lib_AddressManager,
}[network],
OVM_CanonicalTransactionChain: {
mainnet: Mainnet__OVM_CanonicalTransactionChain,
kovan: Kovan__OVM_CanonicalTransactionChain,
goerli: Goerli__OVM_CanonicalTransactionChain,
}[network],
OVM_ExecutionManager: {
mainnet: Mainnet__OVM_ExecutionManager,
kovan: Kovan__OVM_ExecutionManager,
goerli: Goerli__OVM_ExecutionManager,
}[network],
OVM_FraudVerifier: {
mainnet: Mainnet__OVM_FraudVerifier,
kovan: Kovan__OVM_FraudVerifier,
goerli: Goerli__OVM_FraudVerifier,
}[network],
OVM_L1CrossDomainMessenger: {
mainnet: Mainnet__OVM_L1CrossDomainMessenger,
kovan: Kovan__OVM_L1CrossDomainMessenger,
goerli: Goerli__OVM_L1CrossDomainMessenger,
}[network],
OVM_L1ETHGateway: {
mainnet: Mainnet__OVM_L1ETHGateway,
kovan: Kovan__OVM_L1ETHGateway,
goerli: Goerli__OVM_L1ETHGateway,
}[network],
OVM_L1MultiMessageRelayer: {
mainnet: Mainnet__OVM_L1MultiMessageRelayer,
kovan: Kovan__OVM_L1MultiMessageRelayer,
goerli: Goerli__OVM_L1MultiMessageRelayer,
}[network],
OVM_SafetyChecker: {
mainnet: Mainnet__OVM_SafetyChecker,
kovan: Kovan__OVM_SafetyChecker,
goerli: Goerli__OVM_SafetyChecker,
}[network],
OVM_StateCommitmentChain: {
mainnet: Mainnet__OVM_StateCommitmentChain,
kovan: Kovan__OVM_StateCommitmentChain,
goerli: Goerli__OVM_StateCommitmentChain,
}[network],
OVM_StateManagerFactory: {
mainnet: Mainnet__OVM_StateManagerFactory,
kovan: Kovan__OVM_StateManagerFactory,
goerli: Goerli__OVM_StateManagerFactory,
}[network],
OVM_StateTransitionerFactory: {
mainnet: Mainnet__OVM_StateTransitionerFactory,
kovan: Kovan__OVM_StateTransitionerFactory,
goerli: Goerli__OVM_StateTransitionerFactory,
}[network],
Proxy__OVM_L1CrossDomainMessenger: {
mainnet: Mainnet__Proxy__OVM_L1CrossDomainMessenger,
kovan: Kovan__Proxy__OVM_L1CrossDomainMessenger,
goerli: Goerli__Proxy__OVM_L1CrossDomainMessenger,
}[network],
Proxy__OVM_L1ETHGateway: {
mainnet: Mainnet__Proxy__OVM_L1ETHGateway,
kovan: Kovan__Proxy__OVM_L1ETHGateway,
goerli: Goerli__Proxy__OVM_L1ETHGateway,
}[network],
mockOVM_BondManager: {
mainnet: Mainnet__mockOVM_BondManager,
kovan: Kovan__mockOVM_BondManager,
goerli: Goerli__mockOVM_BondManager,
}[network],
}
}

const OVM_ETH = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/predeploys/OVM_ETH.sol/OVM_ETH.json')
const OVM_L2CrossDomainMessenger = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/bridge/messaging/OVM_L2CrossDomainMessenger.sol/OVM_L2CrossDomainMessenger.json')
const OVM_L2ToL1MessagePasser = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/predeploys/OVM_L2ToL1MessagePasser.sol/OVM_L2ToL1MessagePasser.json')
const OVM_L1MessageSender = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/predeploys/OVM_L1MessageSender.sol/OVM_L1MessageSender.json')
const OVM_DeployerWhitelist = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/predeploys/OVM_DeployerWhitelist.sol/OVM_DeployerWhitelist.json')
const OVM_ECDSAContractAccount = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/accounts/OVM_ECDSAContractAccount.sol/OVM_ECDSAContractAccount.json')
const OVM_SequencerEntrypoint = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/predeploys/OVM_SequencerEntrypoint.sol/OVM_SequencerEntrypoint.json')
const ERC1820Registry = require('../artifacts-ovm/contracts/optimistic-ethereum/OVM/predeploys/ERC1820Registry.sol/ERC1820Registry.json')
const Lib_AddressManager = require('../artifacts-ovm/contracts/optimistic-ethereum/libraries/resolver/Lib_AddressManager.sol/Lib_AddressManager.json')

export const getL2ContractData = () => {
return {
OVM_ETH: {
abi: OVM_ETH.abi,
address: l2Addresses.OVM_ETH,
},
OVM_L2CrossDomainMessenger: {
abi: OVM_L2CrossDomainMessenger.abi,
address: l2Addresses.OVM_L2CrossDomainMessenger,
},
OVM_L2ToL1MessagePasser: {
abi: OVM_L2ToL1MessagePasser.abi,
address: l2Addresses.OVM_L2ToL1MessagePasser,
},
OVM_L1MessageSender: {
abi: OVM_L1MessageSender.abi,
address: l2Addresses.OVM_L1MessageSender,
},
OVM_DeployerWhitelist: {
abi: OVM_DeployerWhitelist.abi,
address: l2Addresses.OVM_DeployerWhitelist,
},
OVM_ECDSAContractAccount: {
abi: OVM_ECDSAContractAccount.abi,
address: l2Addresses.OVM_ECDSAContractAccount,
},
OVM_SequencerEntrypoint: {
abi: OVM_SequencerEntrypoint.abi,
address: l2Addresses.OVM_SequencerEntrypoint,
},
ERC1820Registry: {
abi: ERC1820Registry.abi,
address: l2Addresses.ERC1820Registry,
},
Lib_AddressManager: {
abi: Lib_AddressManager.abi,
address: l2Addresses.Lib_AddressManager,
},
}
}
1 change: 1 addition & 0 deletions packages/contracts/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ export * from './contract-defs'
export * from './state-dump/get-dump'
export * from './contract-deployment'
export * from './predeploys'
export * from './connect-contracts'
Loading