Commit fc07158e authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

feat: crossdomainmessenger address setup, deploy overrides (#59)

* Fix L2XDomainMessenger addr in deploy

* xdomain: generalize config, add deploy overrides
Co-authored-by: default avatarKarl Floersch <karl@karlfloersch.com>
parent 476eb8f1
......@@ -20,6 +20,8 @@ const FORCE_INCLUSION_PERIOD_SECONDS = env.FORCE_INCLUSION_PERIOD_SECONDS || (30
const CHAIN_ID = env.CHAIN_ID || 420; // layer 2 chainid
const USE_LEDGER = env.USE_LEDGER || false;
const HD_PATH = env.HD_PATH || utils.defaultPath;
const L2_CROSS_DOMAIN_MESSENGER_ADDRESS =
env.L2_CROSS_DOMAIN_MESSENGER_ADDRESS || '0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000';
(async () => {
const provider = new JsonRpcProvider(web3Url);
......@@ -53,7 +55,8 @@ const HD_PATH = env.HD_PATH || utils.defaultPath;
sequencer: SEQUENCER_ADDRESS,
},
ovmGlobalContext: {
ovmCHAINID: CHAIN_ID
ovmCHAINID: CHAIN_ID,
L2CrossDomainMessengerAddress: L2_CROSS_DOMAIN_MESSENGER_ADDRESS
},
ovmGasMeteringConfig: {
minTransactionGasLimit: MIN_TRANSACTION_GAS_LIMIT,
......
......@@ -27,6 +27,7 @@
"deploy": "./bin/deploy.js"
},
"dependencies": {
"@ethersproject/contracts": "^5.0.5",
"@ethersproject/hardware-wallets": "^5.0.8",
"ethers": "5.0.0"
},
......
/* External Imports */
import { Signer, ContractFactory, Contract } from 'ethers'
import { Overrides } from '@ethersproject/contracts'
/* Internal Imports */
import { getContractFactory } from '../contract-defs'
......@@ -14,6 +15,7 @@ export interface RollupDeployConfig {
}
ovmGlobalContext: {
ovmCHAINID: number
L2CrossDomainMessengerAddress: string
}
transactionChainConfig: {
sequencer: string | Signer
......@@ -23,6 +25,7 @@ export interface RollupDeployConfig {
owner: string | Signer
allowArbitraryContractDeployment: boolean
}
deployOverrides?: Overrides
dependencies?: string[]
}
......@@ -55,12 +58,12 @@ export const makeContractDeployConfig = async (
.connect(config.deploymentSigner)
.attach(contracts.Proxy__OVM_L1CrossDomainMessenger.address)
await xDomainMessenger.initialize(AddressManager.address)
await AddressManager.setAddress(
'OVM_L2CrossDomainMessenger',
config.ovmGlobalContext.L2CrossDomainMessengerAddress
)
},
},
OVM_L2CrossDomainMessenger: {
factory: getContractFactory('OVM_L2CrossDomainMessenger'),
params: [AddressManager.address],
},
OVM_CanonicalTransactionChain: {
factory: getContractFactory('OVM_CanonicalTransactionChain'),
params: [
......
......@@ -41,7 +41,10 @@ export const deploy = async (
try {
contracts[name] = await contractDeployParameters.factory
.connect(config.deploymentSigner)
.deploy(...(contractDeployParameters.params || []))
.deploy(
...(contractDeployParameters.params || []),
config.deployOverrides || {}
)
await AddressManager.setAddress(name, contracts[name].address)
} catch (err) {
failedDeployments.push(name)
......
......@@ -118,6 +118,8 @@ export const makeStateDump = async (): Promise<any> => {
},
ovmGlobalContext: {
ovmCHAINID: 420,
L2CrossDomainMessengerAddress:
'0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000',
},
transactionChainConfig: {
sequencer: signer,
......
......@@ -213,7 +213,7 @@
dependencies:
"@ethersproject/bignumber" "^5.0.7"
"@ethersproject/contracts@5.0.5", "@ethersproject/contracts@^5.0.0":
"@ethersproject/contracts@5.0.5", "@ethersproject/contracts@^5.0.0", "@ethersproject/contracts@^5.0.5":
version "5.0.5"
resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.5.tgz#64831a341ec8ca225e83ff3e9437c26b970fd5d7"
integrity sha512-tFI255lFbmbqMkgnuyhDWHl3yWqttPlReplYuVvDCT/SuvBjLR4ad2uipBlh1fh5X1ipK9ettAoV4S0HKim4Kw==
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment