-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup Chain Deployment Script #149
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! 👍
Left a few small comments, but nothing big!
@@ -109,7 +109,7 @@ export const deploy = async ( | |||
await sleep(5_000) | |||
} | |||
|
|||
return deployContractFunction(wallet) | |||
return deployContractFunction(wallet, provider) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can certainly make it explicit, but note, wallet makes the provider accessible at wallet.provider
. See line 103
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updated to use wallet.provider
instead!
const rollupMerkleUtils = await deployContract(RollupMerkleUtils, wallet) | ||
|
||
console.log( | ||
`\nDeploying SequencerBatchSubmitter with Sequencer address: {sequencer.addres}...\n` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
`\nDeploying SequencerBatchSubmitter with Sequencer address: {sequencer.addres}...\n` | |
`\nDeploying SequencerBatchSubmitter with Sequencer address: ${sequencer.address}...\n` |
const rollupMerkleUtils = await deployContract(RollupMerkleUtils, wallet) | ||
|
||
console.log( | ||
`\nDeploying SequencerBatchSubmitter with Sequencer address: {sequencer.addres}...\n` | ||
) | ||
const sequencerBatchSubmitter = await deployContract( | ||
SequencerBatchSubmitter, | ||
wallet, | ||
sequencer.address | ||
) | ||
|
||
console.log(`\nDeploying L1ToL2TransactionPasser...\n`) | ||
const l1ToL2TransactionPasser = await deployContract( | ||
L1ToL2TransactionPasser, | ||
wallet | ||
) | ||
|
||
console.log(`\nDeploying CanonicalTransactionChain...\n`) | ||
const canonicalTxChain = await deployContract( | ||
CanonicalTransactionChain, | ||
wallet, | ||
rollupMerkleUtils.address, | ||
sequencerBatchSubmitter.address, | ||
l1ToL2TransactionPasser.address, | ||
inclusionPeriod | ||
) | ||
const l1ToL2QueueAddress = await canonicalTxChain.l1ToL2Queue() | ||
const safetyQueueAddress = await canonicalTxChain.safetyQueue() | ||
|
||
console.log(`\nDeploying StateCommitmentChain...\n`) | ||
const stateChain = await deployContract( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible for any of this to already be deployed? If so, it might make sense to create individual functions for these that check if there's a configured address to use for a certain contract and only deploying if there is not one configured.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I feel like I can't think of any case where you wouldn't want to just deploy these all at once since they all depend on each other. I just tried pulling out individual deployment functions and then realized it's such a pain to configure it to pass in the addresses that those deployments rely on.
b5b564702 popm/wasm: add wasm-opt target to optimise wasm binary (ethereum-optimism#146) 27a5081e3 tbc: allow seeds to be overwritten (ethereum-optimism#158) 18afbc403 Fix missing panic (ethereum-optimism#156) 05cee0afb tbc: remove height as the terminal condition for indexers (ethereum-optimism#152) 4402060d6 Use hemilabs/websocket fork of nhooyr.io/websocket (ethereum-optimism#153) 3df5001c4 Add initial CODEOWNERS file (ethereum-optimism#149) a4685a57f popm/wasm: improve and tidy up Go code (ethereum-optimism#144) 41a0009c1 Add forking detection to TBC (ethereum-optimism#101) bbeed8bac ignore ulimits in tbc when on localnet (ethereum-optimism#142) 4e1914cc6 Stopgap to re-fetch blocks with no children (ethereum-optimism#131) 12eefff06 e2e: fix issues detected by staticcheck (ethereum-optimism#134) 80153372f Add more documentation for TBC and related RPC protocol (ethereum-optimism#86) 723b63704 bfg: fix issues reported by staticcheck (ethereum-optimism#132) 509fb1be6 electrumx: fix unhandled error in NewJSONRPCRequest (ethereum-optimism#133) b19af1e1f hemictl: use sort.Strings(...) instead of sort.Sort(sort.StringSlice(...)) (S1032) (ethereum-optimism#123) cf7c570f9 popmd: remove unused 'handle' func and return err in connectBFG (ethereum-optimism#124) fa2a4c4de ci: fix bug that makes version type always 'unstable' (ethereum-optimism#125) ddc39655a ci: use org DOCKERHUB_TOKEN secret (ethereum-optimism#128) 6457d16f5 bfgd: drop btc_blocks_can refresh triggers for l2_keystones/pop_basis (ethereum-optimism#120) 2b3c096bd popm: simplify receivedKeystones variable in tests (ethereum-optimism#116) 6140bbf24 tbc: move RPC tests to a separate test file (ethereum-optimism#114) c76571ff0 Add configuration option for static fees to web PoP miner (ethereum-optimism#119) 233817e65 popm: use simple conversion instead of unnecessary fmt.Sprintf (S1025) (ethereum-optimism#115) 2879f5fa7 e2e: improve name for variable with type `time.Duration` (ST1011) (ethereum-optimism#117) 4f31965e6 database,e2e: remove use of deprecated io/ioutil (SA1019) (ethereum-optimism#118) e9e090696 tbc: do not recreate outpoint for ScriptHashByOutpoint. (ethereum-optimism#109) 52eefb136 ignore l2 keystones notifications in tests (ethereum-optimism#112) eb607994c Sync Docker image environment variables with daemon configs (ethereum-optimism#111) 57281bc5d added a way to monitor and sanity-test localnet (ethereum-optimism#106) ea1a1c94c bfgd: fix loops unconditionally exited after one interation (SA4004) (ethereum-optimism#108) 29f116fb4 Add pprof http server to daemons (ethereum-optimism#105) 18a315d7e Added README for generating forks in BTC regtest for TBC fork resolution testing (ethereum-optimism#100) 55b8f52cb more robust nextPort (ethereum-optimism#103) 48f8b293f tbcapi: use reverse byte order for hashes in serialised, tidy up (ethereum-optimism#104) b7e9f5ecb restart initialblocks on-failure (ethereum-optimism#102) f9d52d423 Update required Go version to v1.22.2 (ethereum-optimism#96) f6808aa5b Fix op-proposer op-node dependency condition (fixes ethereum-optimism#98) (ethereum-optimism#99) a882529e8 Kill all pending block downloads if a peer fails (ethereum-optimism#95) eb66345e1 e2e: tidy up docker-compose file (ethereum-optimism#81) 34766f725 Track pending blocks with ttl package (ethereum-optimism#90) 6ed3eb88b Added configurable fee-per-vB to PoP Miner (ethereum-optimism#91) 509e31fbc Replace os.Kill with syscall.SIGTERM in signal.Notify calls (ethereum-optimism#87) git-subtree-dir: heminetwork git-subtree-split: b5b564702e8d3bedcdf0e0a52c22e383d7fd4dbe
Description
Deployment script for the rollup chain - deploys all chains and queues including L1ToL2TransactionPasser and SequencerBatchSubmitter
Fixes
Contributing Agreement