Skip to content

Commit

Permalink
feat: deploy zkSync
Browse files Browse the repository at this point in the history
  • Loading branch information
detectivekim committed Sep 9, 2024
1 parent 39a26aa commit 17c6d04
Show file tree
Hide file tree
Showing 10 changed files with 802 additions and 184 deletions.
42 changes: 39 additions & 3 deletions deploy/deploy-zkSync.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,21 @@ import { Deployer } from '@matterlabs/hardhat-zksync-deploy'

// load env file
import dotenv from 'dotenv'
import { BOOK_MANAGER } from '../utils'
import { getChain } from '@nomicfoundation/hardhat-viem/internal/chains'
import { BOOK_MANAGER, SAFE_WALLET } from '../utils'
import { getChain, isDevelopmentNetwork } from '@nomicfoundation/hardhat-viem/internal/chains'
import chains, { zkSync, zkSyncSepoliaTestnet } from 'viem/chains'
import { Address } from 'viem'
import { getNamedAccounts } from 'hardhat'
dotenv.config()

// An example of a deploy script that will deploy and call a simple contract.
export default async function (hre: HardhatRuntimeEnvironment) {
const chain = await getChain(hre.network.provider)
console.log(`Running deploy script for the Controller/Viewer contract`)
const chain = await getChain(hre.network.provider)

if (chain.id !== zkSyncSepoliaTestnet.id && chain.id !== zkSync.id) {
throw new Error('Unsupported chain')
}

// Initialize the wallet.
const accounts = hre.config.networks[chain.id].accounts
Expand Down Expand Up @@ -67,4 +74,33 @@ export default async function (hre: HardhatRuntimeEnvironment) {
constructorArguments: [bookManager],
contract: 'src/BookViewer.sol:BookViewer',
})

let owner: Address
if (chain.testnet || isDevelopmentNetwork(chain.id)) {
owner = deployer.zkWallet.address as Address
} else {
owner = SAFE_WALLET[chain.id] // Safe
if (owner == undefined) {
throw new Error('Unknown chain')
}
}
const arbitrageArtifact = await deployer.loadArtifact('Arbitrage')
deploymentFee = await deployer.estimateDeployFee(arbitrageArtifact, [bookManager, owner])
parsedFee = ethers.formatEther(deploymentFee)
console.log(`The deployment is estimated to cost ${parsedFee} ETH`)

const arbitrageContract = await deployer.deploy(arbitrageArtifact, [bookManager, owner])

//obtain the Constructor Arguments
console.log('constructor args:' + arbitrageContract.interface.encodeDeploy([bookManager, owner]))

// Show the contract info.
const arbitrageAddress = await arbitrageContract.getAddress()
console.log(`${arbitrageArtifact.contractName} was deployed to ${arbitrageAddress}`)

await hre.run('verify:verify', {
address: arbitrageAddress,
constructorArguments: [bookManager, owner],
contract: 'src/Arbitrage.sol:Arbitrage',
})
}
349 changes: 349 additions & 0 deletions deployments-zk/300/src/Arbitrage.sol/Arbitrage.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions deployments-zk/300/src/BookViewer.sol/BookViewer.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions deployments-zk/300/src/Controller.sol/Controller.json

Large diffs are not rendered by default.

349 changes: 349 additions & 0 deletions deployments-zk/324/src/Arbitrage.sol/Arbitrage.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions deployments-zk/324/src/BookViewer.sol/BookViewer.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions deployments-zk/324/src/Controller.sol/Controller.json

Large diffs are not rendered by default.

202 changes: 43 additions & 159 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 17c6d04

Please sign in to comment.