Conversation
willmeister
left a comment
There was a problem hiding this comment.
Looks good! 👍
Lots of small naming / documentation suggestions, but the logic looks 🔥
packages/rollup-dev-tools/src/tools/transpiler/binary-search-tree.ts
Outdated
Show resolved
Hide resolved
packages/rollup-dev-tools/src/tools/transpiler/jump-replacement.ts
Outdated
Show resolved
Hide resolved
packages/rollup-dev-tools/src/tools/transpiler/jump-replacement.ts
Outdated
Show resolved
Hide resolved
packages/rollup-dev-tools/src/tools/transpiler/jump-replacement.ts
Outdated
Show resolved
Hide resolved
packages/rollup-dev-tools/src/tools/transpiler/jump-replacement.ts
Outdated
Show resolved
Hide resolved
packages/rollup-dev-tools/src/tools/transpiler/opcode-replacer.ts
Outdated
Show resolved
Hide resolved
packages/rollup-dev-tools/src/tools/transpiler/opcode-replacer.ts
Outdated
Show resolved
Hide resolved
| transpiledBytecodeReplacement = [opcodeAndBytes] | ||
| } else { | ||
| // record that we will need to add this opcode to the replacement table | ||
| replacedOpcodes.add(opcodeAndBytes.opcode) |
There was a problem hiding this comment.
Should this accept EVMBytecode? Could be premature optimization, but I could see a world in which we replace repeated bytecode with these "function" calls as well when the result would be less deployed bytecode.
There was a problem hiding this comment.
I'm gonna leave for now as the functionality this PR improves was already only able to act on individual opcodes. Have to think more about that though, interesting thought!
| toCheck.tag.metadata.node === rightChild | ||
| isTaggedWithReason(toCheck, [ | ||
| OpcodeTagReason.IS_BINARY_SEARCH_NODE_JUMPDEST, | ||
| ]) && toCheck.tag.metadata.node === rightChild |
There was a problem hiding this comment.
Just want to make sure that in all cases where the tag is IS_BINARY_SEARCH_NODE_JUMPDEST that ...tag.metadata will not be undefined. If it can be undefined, this will throw sometimes.
| * @param ovmCALLFunctionName (ONLY USE FOR TESTING) The function name in the Execution Manager to handle DELEGTECALLs. | ||
| */ | ||
| export const getCALLReplacement = ( | ||
| export const getCALLSubstitute = ( |
There was a problem hiding this comment.
Is transpileCall(...) better? (same with STATICCALL and DELEGATECALL below).
* Separates storage from SCC and CTC (#151) * First pass version * More minor tweaks for tests to pass * Add authentication * Minor config updates * Fix lint error * Fix naming changes per review * Enable Deployer Whitelist (#119) * first pass, test runner updated * add ability to only validate flag, test passes * all tests passing * clean up console.logs * enforce gas refund preservation * more cleanup/import removal * whitelisted -> allowed * first pass, test runner updated * add ability to only validate flag, test passes * all tests passing * clean up console.logs * enforce gas refund preservation * more cleanup/import removal * whitelisted -> allowed * remove whitespace * Restrict StateTransitionerFactory (#140) * added msg sender check * add create test * cleanup * add param * add addressmanager.address param * CTC Chain Monotonicity Fixes (#93) * [wip] Fix block time logic * some sad path and happy tests passing * more progress * first pass sad cases tested * cleanup, adding empty tests * more reversion tests * rename shouldstartat} * add final couple tests * enable more tests * cleanup * remove .only * textual cleanup * make queue length public * improve structure, comments * update deploy config * address nits Co-authored-by: Karl Floersch <karl@karlfloersch.com> * fix declarations, lint (#152) * Adds river's new Merkle tree implementation, with some cleanup (#148) * Reverts an accidental breaking merge * Added new merkle tree impl * add comments * Final cleanups and merge Co-authored-by: Ben Jones <ben@pseudonym.party> * Fix run gas Lower Bound (#94) * added the check * add test * lower OVM TX size for Kovan * re-remove gas check * update gas vals slightly * lint * lint * Merge master into freeze integration branch (#153) * update solidity version to ^0.7.0 (#122) * update solc version to ^0.7.0 * interfaces back to solidity >0.6.0 <0.8.0 * update solc to 0.7.6 * back to 0.7.4 * upgrade to 0.7.6, fix EXTCODESIZE check * versions >0.5.0 <0.8.0 for xdomain msgers * ctc: disable appendQueueBatch (#150) * ctc: disable appendSequencerBatch * typo: fix * re-enable verifyQueueTransaction test: * add explicit test for verifying queue elements against either append Co-authored-by: Ben Jones <ben@pseudonym.party> * fix up test * remove .only Co-authored-by: Alina <alina@optimism.io> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> * add check, simple test, update deploy (#154) * go back to first name (#155) * lint * fix js number error * add error logging to help debug deploy * [code freeze] Fix deploy script (#156) * fix deploy script * add block time config * ensure value is integer * lint * remove console logs from deploy * Moves gas check to applyTransaction (#161) * move to OVM_ST, pass test * remove old test because functionality moved * linting * remove leaf hasing * use safe EXEMRG wrapper (#162) * use safeREQUIRE * add owner getter * relayer: add to config (#160) * relayer: add to config * lint: fix * Fix minor error in test config Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> Co-authored-by: ben-chain <ben@pseudonym.party> Co-authored-by: Alina <alina@optimism.io> Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com> Co-authored-by: Kevin Ho <kevinjho1996@gmail.com>
…e-run ref impl: reduce command running boilerplate
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
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
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
* fixes feat(primitives): refactor out non-derivation-specific types from kona-derive fix(derive): remove unused type mods fix(derive): remove allow dead from ecotone * fix(plasma): merge * fix(derive): plasma temporary and critical errors * fix(derive): plasma source tests * fix(derive): providers refactor and trait dedup * fix(derive): batch queue test fix
<!-- Thank you for your Pull Request. Please provide a description above and review the requirements below. Bug fixes and new features should include tests. Contributors guide: https://github.com/alloy-rs/core/blob/main/CONTRIBUTING.md The contributors guide includes instructions for running rustfmt and building the documentation. --> <!-- ** Please select "Allow edits from maintainers" in the PR Options ** --> ## Motivation Ref: foundry-rs/foundry#9047 <!-- Explain the context and why you're making that change. What is the problem you're trying to solve? In some cases there is not a problem and this can be thought of as being the motivation for your change. --> ## Solution impl `SignableTransaction<alloy_primitives::Signature>` for `TxDeposit` <!-- Summarize the solution and provide any necessary context needed to understand the code change. --> ## PR Checklist - [ ] Added Tests - [ ] Added Documentation - [ ] Breaking changes --------- Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Description
This ticket addresses YAS 434, 435, 436, and 441, which cover adding a table of opcode replacements, and making replaced opcodes JUMP there, so multiple instances of the same opcode can jump to the same part of the table. Yay deduplication!
Unfortunately, this PR covers several tickets because they are all needed together to avoid breaking tests!
Metadata
Fixes
Contributing Agreement