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