From 53fac1df5ddc8d37cf34fdc480a4d7dce5e7c160 Mon Sep 17 00:00:00 2001 From: Murphy Law Date: Mon, 2 May 2022 11:00:19 -0400 Subject: [PATCH] integration-tests: Facilitate actor tests on nightly (#2518) The nightly testnet environment must override the Optimism contracts addresses on L1. Otherwise, it defaults to the prod contracts deployed on goerli which isn't compatible with the nightly setup. --- .changeset/gentle-singers-sin.md | 5 +++++ integration-tests/.env.example | 5 +++++ integration-tests/test/shared/env.ts | 10 ++++++++++ integration-tests/test/shared/utils.ts | 25 +++++++++++++++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 .changeset/gentle-singers-sin.md diff --git a/.changeset/gentle-singers-sin.md b/.changeset/gentle-singers-sin.md new file mode 100644 index 000000000000..987e9611cbb3 --- /dev/null +++ b/.changeset/gentle-singers-sin.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/integration-tests': patch +--- + +Facilitate actor testing on nightly diff --git a/integration-tests/.env.example b/integration-tests/.env.example index e643c71d3081..934183829535 100644 --- a/integration-tests/.env.example +++ b/integration-tests/.env.example @@ -3,6 +3,11 @@ PRIVATE_KEY= L1_URL= L2_URL= ADDRESS_MANAGER= +L1_CROSS_DOMAIN_MESSENGER= +L1_STANDARD_BRIDGE= +STATE_COMMITMENT_CHAIN= +CANONICAL_TRANSACTION_CHAIN= +BOND_MANAGER= L2_CHAINID= DTL_ENQUEUE_CONFIRMATIONS= OVMCONTEXT_SPEC_NUM_TXS=1 diff --git a/integration-tests/test/shared/env.ts b/integration-tests/test/shared/env.ts index 1b1c3bdae2b1..ad3d06f3a948 100644 --- a/integration-tests/test/shared/env.ts +++ b/integration-tests/test/shared/env.ts @@ -60,6 +60,16 @@ export class OptimismEnv { l1SignerOrProvider: l1Wallet, l2SignerOrProvider: l2Wallet, l1ChainId: network.chainId, + contracts: { + l1: { + AddressManager: envConfig.ADDRESS_MANAGER, + L1CrossDomainMessenger: envConfig.L1_CROSS_DOMAIN_MESSENGER, + L1StandardBridge: envConfig.L1_STANDARD_BRIDGE, + StateCommitmentChain: envConfig.STATE_COMMITMENT_CHAIN, + CanonicalTransactionChain: envConfig.CANONICAL_TRANSACTION_CHAIN, + BondManager: envConfig.BOND_MANAGER, + } + } }) // fund the user if needed diff --git a/integration-tests/test/shared/utils.ts b/integration-tests/test/shared/utils.ts index 771be3b83f7f..33b4df38ca0d 100644 --- a/integration-tests/test/shared/utils.ts +++ b/integration-tests/test/shared/utils.ts @@ -31,6 +31,12 @@ const gasPriceValidator = makeValidator((gasPrice) => { return num()._parse(gasPrice).toString() }) +const addressValidator = makeValidator((addr) => { + if (!addr) { return '' } + else if (utils.isAddress(addr)) { return addr } + else { throw new Error('Expected an address') } +}) + const procEnv = cleanEnv(process.env, { L1_GAS_PRICE: gasPriceValidator({ default: '0', @@ -105,6 +111,25 @@ const procEnv = cleanEnv(process.env, { BATCH_SUBMITTER_SEQUENCER_BATCH_TYPE: str({ default: 'zlib', }), + + ADDRESS_MANAGER: addressValidator({ + default: '', + }), + L1_CROSS_DOMAIN_MESSENGER: addressValidator({ + default: '', + }), + L1_STANDARD_BRIDGE: addressValidator({ + default: '', + }), + STATE_COMMITMENT_CHAIN: addressValidator({ + default: '', + }), + CANONICAL_TRANSACTION_CHAIN: addressValidator({ + default: '', + }), + BOND_MANAGER: addressValidator({ + default: '', + }), }) export const envConfig = procEnv