Skip to content

Make CALLs Revert Properly#28

Merged
willmeister merged 20 commits intomasterfrom
YAS-195/eth_call-error-handling
Mar 5, 2020
Merged

Make CALLs Revert Properly#28
willmeister merged 20 commits intomasterfrom
YAS-195/eth_call-error-handling

Conversation

@willmeister
Copy link
Copy Markdown

Description

Making CALLs revert while transactions log a revert log when execution fails.

Metadata

Fixes

Contributing Agreement

Copy link
Copy Markdown

@masonforest masonforest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested removal of a couple onlys and some commented code. LGTM! 📚

Comment on lines +777 to +787
// private static enoughBytesLeft(
// opcode: EVMOpcode,
// bytecodeLength: number,
// pc: number,
// errors: TranspilationError[]
// ): boolean {
// if (pc + opcode.programBytesConsumed >= bytecodeLength) {
// return false
// }
// return true
// }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// private static enoughBytesLeft(
// opcode: EVMOpcode,
// bytecodeLength: number,
// pc: number,
// errors: TranspilationError[]
// ): boolean {
// if (pc + opcode.programBytesConsumed >= bytecodeLength) {
// return false
// }
// return true
// }

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with this, but this is from another PR that I merged into this one, so would rather handle it there.


uint c = a + b;

require(c >= a); // Makre sure the right computation was made
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
require(c >= a); // Makre sure the right computation was made
require(c >= a); // Make sure the right computation was made

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with this, but this is from another PR that I merged into this one, so would rather handle it there.

const log = getLogger(`constructor-transpilation`)

describe('Solitity contracts with constructors that take inputs should be correctly deployed', () => {
describe.only('Solitity contracts with constructors that take inputs should be correctly deployed', () => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
describe.only('Solitity contracts with constructors that take inputs should be correctly deployed', () => {
describe('Solitity contracts with constructors that take inputs should be correctly deployed', () => {

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with this, but this is from another PR that I merged into this one, so would rather handle it there.

 - @eth-optimism/core-db@0.0.1-alpha.13
 - @eth-optimism/core-utils@0.0.1-alpha.13
 - @eth-optimism/docs@0.0.1-alpha.13
 - @eth-optimism/optimistic-game-semantics@0.0.1-alpha.13
 - @eth-optimism/ovm-truffle-provider-wrapper@0.0.1-alpha.13
 - @eth-optimism/ovm@0.0.1-alpha.13
 - @eth-optimism/rollup-contracts@0.0.1-alpha.13
 - @eth-optimism/rollup-core@0.0.1-alpha.13
 - @eth-optimism/rollup-dev-tools@0.0.1-alpha.13
 - @eth-optimism/rollup-full-node@0.0.1-alpha.13
 - @eth-optimism/solc-transpiler@0.0.1-alpha.13
@willmeister willmeister merged commit 430ce36 into master Mar 5, 2020
@willmeister willmeister deleted the YAS-195/eth_call-error-handling branch March 5, 2020 02:16
gakonst added a commit that referenced this pull request Apr 12, 2021
* patch(l2geth): revert back to latest upstream optimism master

* chore: disable android tests
snario pushed a commit that referenced this pull request Apr 14, 2021
InoMurko referenced this pull request in omgnetwork/optimism May 25, 2021
* patch(l2geth): revert back to latest upstream optimism master

* chore: disable android tests
InoMurko referenced this pull request in omgnetwork/optimism May 25, 2021
InoMurko referenced this pull request in omgnetwork/optimism May 25, 2021
protolambda pushed a commit to protolambda/optimism that referenced this pull request May 1, 2022
- Add infrastructure stability after v0.5 regenesis
- Simplify the separation of concerns for v1.0
- Add some "future optimizations" to reflect a more
accurate list of what we might want to do to push
the chain to the next level.
- Update the terminology in the fraud proof track.
- Moved the boxes around so they are more
chronologically ordered
@mslipper mslipper mentioned this pull request May 16, 2022
@github-actions github-actions bot mentioned this pull request Sep 20, 2022
max-sanchez referenced this pull request in hemilabs/optimism Apr 16, 2024
88047e707 Add tbcd, a small bitcoin daemon that participates on bitcoin p2p (ethereum-optimism#50)
1146a08b5 localnet reorg fix (ethereum-optimism#76)
87f18a191 build(deps): bump github.com/docker/docker (ethereum-optimism#64)
9073baeaf localnet (#37)
1588cbf04 Add common user-specific files to gitignore (ethereum-optimism#51)
210aabe7a Update popm.go, fix typo (#40)
a5e689493 make: automate copyright headers (#31)
1c3bfc9bc Use `maps.Clone(m)` to copy returned map in `APICommands()` (#33)
1be4df2a3 Use 'errors.Is' to compare errors (#32)
3f6bc5f8e e2e: sync ElectrumX environment variables with infra (#36)
c5b0fea01 electrumx: add connection reuse and pooling (#26)
cfc1293e9 Update README.md (#29)
8896259f0 retry mine keystone on failure (#18)
a10e3bb29 Use '%w' verb in fmt.Errorf to wrap errors (fixes #13) (#27)
6cd677611 deps: update google.golang.org/protobuf to v1.33.0 (#28)
ed7eb8e97 ci: fix concurrency cancel-in-progress for pull requests (#16)
ac3b7eacb docker: update golang image to v1.22.1 (#25)
d6b0ac8af returning response errors if they exist from bfg -> popm (#24)
d450b787a Network test start height + no panic (#22)
b390805c5 allowing BTC Block and L2 Keystone generation rates to be configurable in local network (#19)
bfd3b1dc0 make: add -local flag to goimports (#9)
e0e8964fc Move internal error into protocol package (#10)
7875a897c l2 keystone mining fixes (#3)

git-subtree-dir: heminetwork
git-subtree-split: 88047e707e2db8522e2ad77c5f849e55bc94cd10
ClaytonNorthey92 referenced this pull request in hemilabs/optimism Apr 17, 2024
88047e707 Add tbcd, a small bitcoin daemon that participates on bitcoin p2p (ethereum-optimism#50)
1146a08b5 localnet reorg fix (ethereum-optimism#76)
87f18a191 build(deps): bump github.com/docker/docker (ethereum-optimism#64)
9073baeaf localnet (#37)
1588cbf04 Add common user-specific files to gitignore (ethereum-optimism#51)
210aabe7a Update popm.go, fix typo (#40)
a5e689493 make: automate copyright headers (#31)
1c3bfc9bc Use `maps.Clone(m)` to copy returned map in `APICommands()` (#33)
1be4df2a3 Use 'errors.Is' to compare errors (#32)
3f6bc5f8e e2e: sync ElectrumX environment variables with infra (#36)
c5b0fea01 electrumx: add connection reuse and pooling (#26)
cfc1293e9 Update README.md (#29)
8896259f0 retry mine keystone on failure (#18)
a10e3bb29 Use '%w' verb in fmt.Errorf to wrap errors (fixes #13) (#27)
6cd677611 deps: update google.golang.org/protobuf to v1.33.0 (#28)
ed7eb8e97 ci: fix concurrency cancel-in-progress for pull requests (#16)
ac3b7eacb docker: update golang image to v1.22.1 (#25)
d6b0ac8af returning response errors if they exist from bfg -> popm (#24)
d450b787a Network test start height + no panic (#22)
b390805c5 allowing BTC Block and L2 Keystone generation rates to be configurable in local network (#19)
bfd3b1dc0 make: add -local flag to goimports (#9)
e0e8964fc Move internal error into protocol package (#10)
7875a897c l2 keystone mining fixes (#3)

git-subtree-dir: heminetwork
git-subtree-split: 88047e707e2db8522e2ad77c5f849e55bc94cd10
therealbytes added a commit to therealbytes/optimism that referenced this pull request May 17, 2024
* chore: add forge-std

* feat: add forge testdata dir

* feat: simple testing tool

* feat: command line args

* refactor: split test into test and testCmd

* refactor: return passes and fails

* fix: use testCmd in cmd/test

* refactor: set gas limit to 1e7

* fix: add gasLimit to genesis

* fix: set gasLimit to 2e7

* refactor: assert test path count in test
bap2pecs pushed a commit to babylonlabs-io/optimism that referenced this pull request Jul 31, 2024
* Fix register validator and add e2e tests
SozinM pushed a commit to NethermindEth/optimism that referenced this pull request Feb 10, 2025
ClaytonNorthey92 referenced this pull request in hemilabs/optimism Apr 4, 2025
88047e707 Add tbcd, a small bitcoin daemon that participates on bitcoin p2p (ethereum-optimism#50)
1146a08b5 localnet reorg fix (ethereum-optimism#76)
87f18a191 build(deps): bump github.com/docker/docker (ethereum-optimism#64)
9073baeaf localnet (#37)
1588cbf04 Add common user-specific files to gitignore (ethereum-optimism#51)
210aabe7a Update popm.go, fix typo (#40)
a5e689493 make: automate copyright headers (#31)
1c3bfc9bc Use `maps.Clone(m)` to copy returned map in `APICommands()` (#33)
1be4df2a3 Use 'errors.Is' to compare errors (#32)
3f6bc5f8e e2e: sync ElectrumX environment variables with infra (#36)
c5b0fea01 electrumx: add connection reuse and pooling (#26)
cfc1293e9 Update README.md (#29)
8896259f0 retry mine keystone on failure (#18)
a10e3bb29 Use '%w' verb in fmt.Errorf to wrap errors (fixes #13) (#27)
6cd677611 deps: update google.golang.org/protobuf to v1.33.0 (#28)
ed7eb8e97 ci: fix concurrency cancel-in-progress for pull requests (#16)
ac3b7eacb docker: update golang image to v1.22.1 (#25)
d6b0ac8af returning response errors if they exist from bfg -> popm (#24)
d450b787a Network test start height + no panic (#22)
b390805c5 allowing BTC Block and L2 Keystone generation rates to be configurable in local network (#19)
bfd3b1dc0 make: add -local flag to goimports (#9)
e0e8964fc Move internal error into protocol package (#10)
7875a897c l2 keystone mining fixes (#3)

git-subtree-dir: heminetwork
git-subtree-split: 88047e707e2db8522e2ad77c5f849e55bc94cd10
ClaytonNorthey92 referenced this pull request in hemilabs/optimism Apr 7, 2025
88047e707 Add tbcd, a small bitcoin daemon that participates on bitcoin p2p (ethereum-optimism#50)
1146a08b5 localnet reorg fix (ethereum-optimism#76)
87f18a191 build(deps): bump github.com/docker/docker (ethereum-optimism#64)
9073baeaf localnet (#37)
1588cbf04 Add common user-specific files to gitignore (ethereum-optimism#51)
210aabe7a Update popm.go, fix typo (#40)
a5e689493 make: automate copyright headers (#31)
1c3bfc9bc Use `maps.Clone(m)` to copy returned map in `APICommands()` (#33)
1be4df2a3 Use 'errors.Is' to compare errors (#32)
3f6bc5f8e e2e: sync ElectrumX environment variables with infra (#36)
c5b0fea01 electrumx: add connection reuse and pooling (#26)
cfc1293e9 Update README.md (#29)
8896259f0 retry mine keystone on failure (#18)
a10e3bb29 Use '%w' verb in fmt.Errorf to wrap errors (fixes #13) (#27)
6cd677611 deps: update google.golang.org/protobuf to v1.33.0 (#28)
ed7eb8e97 ci: fix concurrency cancel-in-progress for pull requests (#16)
ac3b7eacb docker: update golang image to v1.22.1 (#25)
d6b0ac8af returning response errors if they exist from bfg -> popm (#24)
d450b787a Network test start height + no panic (#22)
b390805c5 allowing BTC Block and L2 Keystone generation rates to be configurable in local network (#19)
bfd3b1dc0 make: add -local flag to goimports (#9)
e0e8964fc Move internal error into protocol package (#10)
7875a897c l2 keystone mining fixes (#3)

git-subtree-dir: heminetwork
git-subtree-split: 88047e707e2db8522e2ad77c5f849e55bc94cd10
blockchaindevsh pushed a commit to blockchaindevsh/optimism that referenced this pull request Jun 30, 2025
theochap pushed a commit that referenced this pull request Dec 10, 2025
sebastianst added a commit that referenced this pull request Apr 2, 2026
…nd oversized payloads

Add two bounds checks to `read_tx_data` before indexing into the slice:

1. Reject payloads exceeding `MAX_SPAN_BATCH_ELEMENTS` with
   `TooBigSpanBatchSize`, matching op-node's `rlp.NewStream(r,
   MaxSpanBatchElementCount)` behavior. Without this, kona accepts
   oversized transactions that op-node rejects, causing a consensus
   divergence. (Cantina finding #28)

2. Reject truncated payloads where `payload_length_with_header` exceeds
   the remaining buffer, preventing a panic on malformed input. (Cantina
   finding #25, item 4)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
github-merge-queue bot pushed a commit that referenced this pull request Apr 2, 2026
…nd oversized payloads (#19904)

Add two bounds checks to `read_tx_data` before indexing into the slice:

1. Reject payloads exceeding `MAX_SPAN_BATCH_ELEMENTS` with
   `TooBigSpanBatchSize`, matching op-node's `rlp.NewStream(r,
   MaxSpanBatchElementCount)` behavior. Without this, kona accepts
   oversized transactions that op-node rejects, causing a consensus
   divergence. (Cantina finding #28)

2. Reject truncated payloads where `payload_length_with_header` exceeds
   the remaining buffer, preventing a panic on malformed input. (Cantina
   finding #25, item 4)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants