Commit 6cbc54d8 authored by Georgios Konstantopoulos's avatar Georgios Konstantopoulos Committed by GitHub

chore: rename batch submitter old contracts dep (#443)

* chore: explicitly name old-contracts

This was tech debt introduced in https://github.com/ethereum-optimism/batch-submitter/pull/31

* chore(batch-submitter): unpin contracts / smock

* refactor: move L2 context provider to core-utils

* refactor(batch-submitter): use injected context from L2

* chore: add changeset
parent 61dd8334
---
"@eth-optimism/core-utils": minor
"@eth-optimism/batch-submitter": patch
---
allow injecting L2 transaction and block context via core-utils (this removes the need to import the now deprecated @eth-optimism/provider package)
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
"ethereum-waffle": "^3.3.0", "ethereum-waffle": "^3.3.0",
"ethers": "^5.0.32", "ethers": "^5.0.32",
"hardhat": "^2.1.2", "hardhat": "^2.1.2",
"lodash": "^4.17.21",
"mocha": "^8.3.1", "mocha": "^8.3.1",
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
} }
......
/* Imports: Internal */ /* Imports: Internal */
import { injectL2Context } from './shared/l2provider' import { injectL2Context } from '@eth-optimism/core-utils'
import { sleep } from './shared/utils' import { sleep } from './shared/utils'
import { OptimismEnv } from './shared/env' import { OptimismEnv } from './shared/env'
......
import { injectL2Context } from '@eth-optimism/core-utils'
import { Wallet, BigNumber } from 'ethers' import { Wallet, BigNumber } from 'ethers'
import chai, { expect } from 'chai' import chai, { expect } from 'chai'
import { sleep, l1Provider, l2Provider, GWEI } from './shared/utils' import { sleep, l2Provider, GWEI } from './shared/utils'
import { injectL2Context } from './shared/l2provider'
import chaiAsPromised from 'chai-as-promised' import chaiAsPromised from 'chai-as-promised'
chai.use(chaiAsPromised) chai.use(chaiAsPromised)
...@@ -55,12 +55,14 @@ describe('Basic RPC tests', () => { ...@@ -55,12 +55,14 @@ describe('Basic RPC tests', () => {
it('should not accept a transaction with a value', async () => { it('should not accept a transaction with a value', async () => {
const tx = { const tx = {
...DEFAULT_TRANSACTION, ...DEFAULT_TRANSACTION,
chainId: (await wallet.getChainId()), chainId: await wallet.getChainId(),
value: 100, value: 100,
} }
await expect( await expect(
provider.sendTransaction(await wallet.signTransaction(tx)) provider.sendTransaction(await wallet.signTransaction(tx))
).to.be.rejectedWith('Cannot send transaction with non-zero value. Use WETH.transfer()') ).to.be.rejectedWith(
'Cannot send transaction with non-zero value. Use WETH.transfer()'
)
}) })
}) })
......
...@@ -30,19 +30,18 @@ ...@@ -30,19 +30,18 @@
"url": "https://github.com/ethereum-optimism/optimism-monorepo.git" "url": "https://github.com/ethereum-optimism/optimism-monorepo.git"
}, },
"dependencies": { "dependencies": {
"@eth-optimism/contracts": "^0.0.2-alpha.7", "old-contracts": "npm:@eth-optimism/contracts@^0.0.2-alpha.7",
"@eth-optimism/core-utils": "^0.1.10", "@eth-optimism/core-utils": "^0.1.10",
"@eth-optimism/provider": "^0.0.1-alpha.13",
"@eth-optimism/ynatm": "^0.2.2", "@eth-optimism/ynatm": "^0.2.2",
"@ethersproject/abstract-provider": "^5.0.5", "@ethersproject/abstract-provider": "^5.0.5",
"@ethersproject/providers": "^5.0.14", "@ethersproject/providers": "^5.0.14",
"bluebird": "^3.7.2", "bluebird": "^3.7.2",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"ethers": "5.0.0", "ethers": "5.0.0",
"new-contracts": "npm:@eth-optimism/contracts@0.1.4" "@eth-optimism/contracts": "^0.1.4"
}, },
"devDependencies": { "devDependencies": {
"@eth-optimism/smock": "1.0.0-alpha.3", "@eth-optimism/smock": "^1.0.0-alpha.3",
"@nomiclabs/hardhat-ethers": "^2.0.2", "@nomiclabs/hardhat-ethers": "^2.0.2",
"@nomiclabs/hardhat-waffle": "^2.0.1", "@nomiclabs/hardhat-waffle": "^2.0.1",
"@types/chai": "^4.1.7", "@types/chai": "^4.1.7",
......
/* External Imports */ /* External Imports */
import { Contract, Signer, utils } from 'ethers' import { Contract, Signer, utils, providers } from 'ethers'
import { TransactionReceipt } from '@ethersproject/abstract-provider' import { TransactionReceipt } from '@ethersproject/abstract-provider'
import * as ynatm from '@eth-optimism/ynatm' import * as ynatm from '@eth-optimism/ynatm'
import { Address, Bytes32, Logger } from '@eth-optimism/core-utils' import { Logger } from '@eth-optimism/core-utils'
import { OptimismProvider } from '@eth-optimism/provider' import { getContractFactory } from 'old-contracts'
import { getContractFactory } from '@eth-optimism/contracts'
export interface RollupInfo { export interface RollupInfo {
mode: 'sequencer' | 'verifier' mode: 'sequencer' | 'verifier'
...@@ -38,7 +37,7 @@ export abstract class BatchSubmitter { ...@@ -38,7 +37,7 @@ export abstract class BatchSubmitter {
constructor( constructor(
readonly signer: Signer, readonly signer: Signer,
readonly l2Provider: OptimismProvider, readonly l2Provider: providers.JsonRpcProvider,
readonly minTxSize: number, readonly minTxSize: number,
readonly maxTxSize: number, readonly maxTxSize: number,
readonly maxBatchSize: number, readonly maxBatchSize: number,
......
/* External Imports */ /* External Imports */
import { Promise as bPromise } from 'bluebird' import { Promise as bPromise } from 'bluebird'
import { Contract, Signer } from 'ethers' import { Contract, Signer, providers } from 'ethers'
import { TransactionReceipt } from '@ethersproject/abstract-provider' import { TransactionReceipt } from '@ethersproject/abstract-provider'
import { getContractFactory } from '@eth-optimism/contracts' import { getContractFactory } from 'old-contracts'
import { Logger, Bytes32, remove0x } from '@eth-optimism/core-utils' import { Logger, Bytes32, remove0x } from '@eth-optimism/core-utils'
import { OptimismProvider } from '@eth-optimism/provider'
/* Internal Imports */ /* Internal Imports */
import { L2Block } from '..' import { L2Block } from '..'
...@@ -22,7 +21,7 @@ export class StateBatchSubmitter extends BatchSubmitter { ...@@ -22,7 +21,7 @@ export class StateBatchSubmitter extends BatchSubmitter {
constructor( constructor(
signer: Signer, signer: Signer,
l2Provider: OptimismProvider, l2Provider: providers.JsonRpcProvider,
minTxSize: number, minTxSize: number,
maxTxSize: number, maxTxSize: number,
maxBatchSize: number, maxBatchSize: number,
......
/* External Imports */ /* External Imports */
import { Promise as bPromise } from 'bluebird' import { Promise as bPromise } from 'bluebird'
import { BigNumber, Signer, ethers, Wallet, Contract } from 'ethers' import { BigNumber, Signer, ethers, Wallet, Contract, providers } from 'ethers'
import { import {
TransactionResponse, TransactionResponse,
TransactionReceipt, TransactionReceipt,
} from '@ethersproject/abstract-provider' } from '@ethersproject/abstract-provider'
import { import { getContractInterface, getContractFactory } from 'old-contracts'
getContractInterface, import { getContractInterface as getNewContractInterface } from '@eth-optimism/contracts'
getContractFactory,
} from '@eth-optimism/contracts'
import { getContractInterface as getNewContractInterface } from 'new-contracts'
import { OptimismProvider } from '@eth-optimism/provider'
import { import {
Logger, Logger,
EIP155TxData, EIP155TxData,
...@@ -52,7 +48,7 @@ export class TransactionBatchSubmitter extends BatchSubmitter { ...@@ -52,7 +48,7 @@ export class TransactionBatchSubmitter extends BatchSubmitter {
constructor( constructor(
signer: Signer, signer: Signer,
l2Provider: OptimismProvider, l2Provider: providers.JsonRpcProvider,
minTxSize: number, minTxSize: number,
maxTxSize: number, maxTxSize: number,
maxBatchSize: number, maxBatchSize: number,
......
/* External Imports */ /* External Imports */
import { Logger } from '@eth-optimism/core-utils' import { Logger, injectL2Context } from '@eth-optimism/core-utils'
import { exit } from 'process' import { exit } from 'process'
import { Signer, Wallet } from 'ethers' import { Signer, Wallet } from 'ethers'
import { import { JsonRpcProvider, TransactionReceipt } from '@ethersproject/providers'
Provider,
JsonRpcProvider,
TransactionReceipt,
} from '@ethersproject/providers'
import { OptimismProvider } from '@eth-optimism/provider'
import { config } from 'dotenv' import { config } from 'dotenv'
config() config()
...@@ -15,7 +10,6 @@ config() ...@@ -15,7 +10,6 @@ config()
import { import {
TransactionBatchSubmitter, TransactionBatchSubmitter,
AutoFixBatchOptions, AutoFixBatchOptions,
BatchSubmitter,
StateBatchSubmitter, StateBatchSubmitter,
STATE_BATCH_SUBMITTER_LOG_TAG, STATE_BATCH_SUBMITTER_LOG_TAG,
TX_BATCH_SUBMITTER_LOG_TAG, TX_BATCH_SUBMITTER_LOG_TAG,
...@@ -122,11 +116,9 @@ export const run = async () => { ...@@ -122,11 +116,9 @@ export const run = async () => {
const clearPendingTxs = requiredEnvVars.CLEAR_PENDING_TXS === 'true' const clearPendingTxs = requiredEnvVars.CLEAR_PENDING_TXS === 'true'
const l1Provider: Provider = new JsonRpcProvider( const l1Provider = new JsonRpcProvider(requiredEnvVars.L1_NODE_WEB3_URL)
requiredEnvVars.L1_NODE_WEB3_URL const l2Provider = injectL2Context(
) new JsonRpcProvider(requiredEnvVars.L2_NODE_WEB3_URL)
const l2Provider: OptimismProvider = new OptimismProvider(
requiredEnvVars.L2_NODE_WEB3_URL
) )
let sequencerSigner: Signer let sequencerSigner: Signer
......
/* External Imports */ /* External Imports */
import { OptimismProvider } from '@eth-optimism/provider' import { providers } from 'ethers'
import { import {
BlockWithTransactions, BlockWithTransactions,
TransactionResponse, TransactionResponse,
...@@ -25,7 +25,7 @@ interface UnformattedL2Block extends BlockWithTransactions { ...@@ -25,7 +25,7 @@ interface UnformattedL2Block extends BlockWithTransactions {
transactions: [UnformattedL2Transaction] transactions: [UnformattedL2Transaction]
} }
export class MockchainProvider extends OptimismProvider { export class MockchainProvider extends providers.JsonRpcProvider {
public mockBlockNumber: number = 1 public mockBlockNumber: number = 1
public numBlocksToReturn: number = 2 public numBlocksToReturn: number = 2
public mockBlocks: L2Block[] = [] public mockBlocks: L2Block[] = []
......
...@@ -7,7 +7,7 @@ import { Signer, ContractFactory, Contract, BigNumber } from 'ethers' ...@@ -7,7 +7,7 @@ import { Signer, ContractFactory, Contract, BigNumber } from 'ethers'
import ganache from 'ganache-core' import ganache from 'ganache-core'
import sinon from 'sinon' import sinon from 'sinon'
import { Web3Provider, JsonRpcProvider } from '@ethersproject/providers' import { Web3Provider, JsonRpcProvider } from '@ethersproject/providers'
import { getContractInterface } from '@eth-optimism/contracts' import { getContractInterface } from 'old-contracts'
import { smockit, MockContract } from '@eth-optimism/smock' import { smockit, MockContract } from '@eth-optimism/smock'
/* Internal Imports */ /* Internal Imports */
......
/* External Imports */ /* External Imports */
import { ethers } from 'hardhat' import { ethers } from 'hardhat'
import { Contract } from 'ethers' import { Contract } from 'ethers'
import { getContractFactory as ctFactory } from '@eth-optimism/contracts' import { getContractFactory as ctFactory } from 'old-contracts'
export const getContractFactory = async (contract: string) => export const getContractFactory = async (contract: string) =>
ctFactory(contract, (await ethers.getSigners())[0]) ctFactory(contract, (await ethers.getSigners())[0])
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
"dependencies": { "dependencies": {
"@ethersproject/abstract-provider": "^5.0.9", "@ethersproject/abstract-provider": "^5.0.9",
"ethers": "^5.0.31", "ethers": "^5.0.31",
"lodash": "^4.17.21",
"pino": "^6.11.1" "pino": "^6.11.1"
} }
} }
...@@ -2,3 +2,4 @@ export * from './coders' ...@@ -2,3 +2,4 @@ export * from './coders'
export * from './common' export * from './common'
export * from './watcher' export * from './watcher'
export * from './base-service' export * from './base-service'
export * from './l2context'
import { JsonRpcProvider } from '@ethersproject/providers'
import cloneDeep from 'lodash/cloneDeep' import cloneDeep from 'lodash/cloneDeep'
import { providers } from 'ethers' import { providers } from 'ethers'
......
This diff is collapsed.
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