Skip to content
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

Add support for custom solc versions #11

Merged
merged 3 commits into from
Feb 20, 2020

Conversation

masonforest
Copy link

Description

If the required version of solc isn't currently in use solc will download the required version of itself. Normally you can pass "version" in the the truffle config to trigger this behavior but our truffle version field is already filled with a path to our custom solc compiler. Instead we pass the environment variable SOLC_VERSION which triggers it.

Truffle expects compile to be synchronous so we can't do anything asynchronous in that function. To get around this we use execSync which executes synchronously.

Contributing Agreement

If the required version of solc isn't currently in use solc will
[1](download the required version of itself). Normally you can pass
"version" in the the truffle config to trigger this behavior but our
truffle version field is already filled with a path to our custom solc
compiler. Instead we pass the enviroment variable `SOLC_VERSION` which
triggers it.

Truffle expects `compile` to be synchronous so we can't do anything
asynchonous in that function. To get around this we use `execSync` which
executes synchonously.

[1]: https://github.com/ethereum/solc-js/blob/5c1280ca2c73dfba58bad21849b16eb1fa5618e5/README.md#using-a-legacy-version
(async () => {
await process.stdout.write(await getSolcVersion("${versionString}"));
})();
`
Copy link
Contributor

@karlfloersch karlfloersch Feb 19, 2020

Choose a reason for hiding this comment

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

Why do we have to use inline executed code btw? Just curious lol seems like a wild solution & I'm sure it has to do with truffle craziness

Copy link
Author

Choose a reason for hiding this comment

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

yeah, it's wackyness!

Since Truffle expects compile to be a synchronous function we can't do anything that's asynchronous in that function. The only way to make a web request "synchronously" in node is to fire up a whole other node process with execSync 🙃

https://stackoverflow.com/a/28394895

Copy link

@willmeister willmeister left a comment

Choose a reason for hiding this comment

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

Awesome approach! Left a few comments to think about, but whether you choose to run with them or ship this, I approve!

packages/solc-transpiler/src/compiler.ts Outdated Show resolved Hide resolved
packages/solc-transpiler/src/compiler.ts Show resolved Hide resolved
@masonforest masonforest merged commit bbca409 into master Feb 20, 2020
@masonforest masonforest deleted the YAS-183/HardenTheOvm/ResearchSolidityTesting branch March 23, 2020 13:22
gakonst added a commit that referenced this pull request Apr 12, 2021
* pkg: Add DTL

* fix: use correct tsconfig when building

Co-authored-by: Georgios Konstantopoulos <[email protected]>
InoMurko referenced this pull request in omgnetwork/optimism May 25, 2021
* pkg: Add DTL

* fix: use correct tsconfig when building

Co-authored-by: Georgios Konstantopoulos <[email protected]>
protolambda pushed a commit to protolambda/optimism that referenced this pull request May 1, 2022
…se-block-oracle

Update spec to use block oracle terminology
keroro520 added a commit to keroro520/optimism that referenced this pull request Apr 17, 2023
keroro520 pushed a commit to keroro520/optimism that referenced this pull request May 18, 2023
commit 6695f82
Merge: e07e80c a582e6f
Author: Kero <[email protected]>
Date:   Wed Apr 19 14:25:18 2023 +0800

    Merge pull request ethereum-optimism#17 from node-real/gastrack

    average base fee

commit e07e80c
Merge: 250fbcb 372ec73
Author: Kero <[email protected]>
Date:   Mon Apr 17 18:29:41 2023 +0800

    Merge pull request ethereum-optimism#14 from keroro520/docker-build-push-workflow

    feat(.github): add docker-build-push.yml

commit 372ec73
Author: keroro <[email protected]>
Date:   Tue Apr 11 10:22:14 2023 +0800

    feat(.github): add docker-build-push.yml

commit 250fbcb
Merge: f7e1641 8fa4ea6
Author: Kero <[email protected]>
Date:   Thu Apr 13 15:49:56 2023 +0800

    Merge pull request ethereum-optimism#11 from node-real/update_to_for_bsc_0.5

    update to for_bsc 0.5

commit 8fa4ea6
Author: s7v7nislands <[email protected]>
Date:   Thu Apr 13 13:22:43 2023 +0800

    update to for_bsc 0.5

commit a582e6f
Author: s7v7nislands <[email protected]>
Date:   Wed Apr 12 18:24:56 2023 +0800

    filter system trxs which gas price is zero

commit f7e1641
Merge: 0188575 25954a2
Author: Kero <[email protected]>
Date:   Wed Apr 12 15:29:02 2023 +0800

    Merge pull request ethereum-optimism#9 from keroro520/cherry-pick-ci-with-tag

    Cherry pick ci with tag

commit 25954a2
Author: keroro <[email protected]>
Date:   Tue Apr 11 21:15:56 2023 +0800

    fix(.github): change create trigger to push trigger

commit 4173294
Author: ArthurMa <[email protected]>
Date:   Tue Apr 11 19:30:23 2023 +0800

    Update ci-with-tag.yml

commit a7672a5
Author: ArthurMa <[email protected]>
Date:   Tue Apr 11 18:44:26 2023 +0800

    Update ci-with-tag.yml

commit 071c9d8
Author: ArthurMa <[email protected]>
Date:   Tue Apr 11 17:51:44 2023 +0800

    Update ci-with-tag.yml

commit 1d83273
Author: ArthurMa <[email protected]>
Date:   Tue Apr 11 17:44:58 2023 +0800

    Update ci-with-tag.yml

commit 023aa14
Author: ArthurMa <[email protected]>
Date:   Tue Apr 11 17:12:30 2023 +0800

    Update ci-with-tag.yml

commit 40a7234
Author: ArthurMa <[email protected]>
Date:   Tue Apr 11 17:10:56 2023 +0800

    Update and rename ci-with-pr.yml to ci-with-tag.yml

commit 2f7128c
Author: arthurma <[email protected]>
Date:   Tue Apr 11 14:24:56 2023 +0800

    [beta] new a CI flow to export image to nr ecr

commit 307353a
Author: s7v7nislands <[email protected]>
Date:   Mon Apr 10 16:16:52 2023 +0800

    add avarage gasprice to l1 block info

commit 0188575
Merge: 9b95617 2bf1e92
Author: s7v7nislands <[email protected]>
Date:   Thu Apr 6 17:59:17 2023 +0800

    Merge pull request #4 from node-real/fix_gasprice

    fix gasprice

commit 2bf1e92
Author: s7v7nislands <[email protected]>
Date:   Thu Apr 6 16:47:03 2023 +0800

    fix gasprice

commit 9b95617
Merge: fbba7ba d75fb80
Author: Kero <[email protected]>
Date:   Tue Mar 28 16:53:01 2023 +0800

    Merge pull request #2 from node-real/fix_basefee

    fix basefee

commit d75fb80
Author: s7v7nislands <[email protected]>
Date:   Tue Mar 28 16:51:12 2023 +0800

    fix basefee

commit fbba7ba
Merge: 7bdcb0f 22779e4
Author: s7v7nislands <[email protected]>
Date:   Mon Mar 27 16:19:31 2023 +0800

    Merge pull request #1 from node-real/fix_bsc

    fix optimims port to bsc

commit 22779e4
Author: s7v7nislands <[email protected]>
Date:   Sun Mar 26 21:44:48 2023 +0800

    fix optimims port to bsc

fix trx manager

feat: add API admin_sequencerStopped
protolambda pushed a commit that referenced this pull request Jun 16, 2023
Fix: set missing difficulty in block header
keroro520 pushed a commit to keroro520/optimism that referenced this pull request Jul 11, 2023
…um-optimism#11)

* ci: add the ci code used to package and release docker images (#7)

* ci: add the ci code used to package and release docker images

Co-authored-by: Welkin <[email protected]>

* fix: add latest tag for docker image (ethereum-optimism#9)

Co-authored-by: Welkin <[email protected]>

* try to use cache for docker build (ethereum-optimism#10)

Co-authored-by: Welkin <[email protected]>

---------

Co-authored-by: Welkin <[email protected]>
refcell pushed a commit that referenced this pull request Sep 6, 2023
Add extra input length validation in multiRevoke and multiAttest functions
keroro520 pushed a commit to keroro520/optimism that referenced this pull request Oct 20, 2023
…um-optimism#11)

* ci: add the ci code used to package and release docker images (#7)

* ci: add the ci code used to package and release docker images

Co-authored-by: Welkin <[email protected]>

* fix: add latest tag for docker image (ethereum-optimism#9)

Co-authored-by: Welkin <[email protected]>

* try to use cache for docker build (ethereum-optimism#10)

Co-authored-by: Welkin <[email protected]>

---------

Co-authored-by: Welkin <[email protected]>
keroro520 pushed a commit to keroro520/optimism that referenced this pull request Oct 20, 2023
* op-batcher: Add metrics for pending L2 transaction data size (ethereum-optimism#5797)

* feat(op-node): Finalize Mainnet Rollup Config [release branch] (ethereum-optimism#5905)

* copy over develop chainsgo

* stage rollup config changes

* final rollup config values

* fix(op-batcher): solve race condition of BatchSubmitter publishTxToL1 and handleReceipt access state concurrently (#5)

* chore: update readme, add testnet assets (ethereum-optimism#9)

* chore: update readme, add testnet assets

* doc: clarify readme

* ci: add the ci code used to package and release docker images (ethereum-optimism#11)

* ci: add the ci code used to package and release docker images (#7)

* ci: add the ci code used to package and release docker images

Co-authored-by: Welkin <[email protected]>

* fix: add latest tag for docker image (ethereum-optimism#9)

Co-authored-by: Welkin <[email protected]>

* try to use cache for docker build (ethereum-optimism#10)

Co-authored-by: Welkin <[email protected]>

---------

Co-authored-by: Welkin <[email protected]>

* feat(ci): add ci workflow

* fix

* fix

* update

* update

* skip fail test temporarily

* add batcher/proposer

* add e2e

* skip fail e2e case temporary

* add op-node-lint

* fix lint

* add batcher/proposer lint

* test junit-report

* add junit report for all

* adjust parallel to 2 for avoiding fail

* add needs for job serial execution

* use testname format to simplify result

---------

Co-authored-by: Joshua Gutow <[email protected]>
Co-authored-by: refcell.eth <[email protected]>
Co-authored-by: bnoieh <[email protected]>
Co-authored-by: Owen <[email protected]>
Co-authored-by: Welkin <[email protected]>
therealbytes added a commit to therealbytes/optimism that referenced this pull request May 17, 2024
blockchaindevsh pushed a commit to blockchaindevsh/optimism that referenced this pull request Jun 24, 2024
bap2pecs referenced this pull request in babylonlabs-io/optimism Jul 31, 2024
github-merge-queue bot pushed a commit that referenced this pull request Aug 13, 2024
* feat: introduce OptimismSuperchainERC20

* fix: contract fixes

* feat: add snapshots and semver

* test: add supports interface tests

* test: add invariant test

* feat: add parameters to the RelayERC20 event

* fix: typo

* fix: from param description

* fix: event signature and interface pragma

* feat: add initializer

* feat: use unstructured storage and OZ v5

* feat: update superchain erc20 interfaces

* fix: adapt storage to ERC7201

* test: add initializable OZ v5 test

* fix: invariant docs

* fix: ERC165 implementation

* test: improve superc20 invariant (#11)

* fix: gas snapshot

---------

Co-authored-by: 0xng <[email protected]>
Co-authored-by: Disco <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Sep 18, 2024
* chore: configure medusa with basic supERC20 self-bridging (#19)

- used --foundry-compile-all to ensure the test contract under
  `test/properties` is compiled (otherwise it is not compiled and medusa
  crashes when it can't find it's compiled representation)
- set src,test,script to test/properties/medusa to not waste time
  compiling contracts that are not required for the medusa campaign
- used an atomic bridge, which doesnt allow for testing of several of
  the proposed invariants

fix: delete dead code
test: give the fuzzer a head start
docs: fix properties order
test: document & implement assertions 22, 23  and 24
fix: fixes from self-review
test: guide the fuzzer a little bit less
  previously: initial mint, bound on transfer amount: 146625 calls in 200s
  now: no initial mint, no bound on transfer amount: 176835 calls in 200s
  it doesn't seem to slow the fuzzer down
fix: fixes after lovely feedback by disco
docs: merge both documents and categorized properties by their milestone
fix: fixes from parti's review
fix: feedback from disco
fix: feedback from doc
refactor: separate state transitions from pure properties
docs: update tested properties
refactor: move all assertions into properties contract
fix: move function without assertions back into handler
test: only use assertion mode
fix: improve justfile recipie for medusa

* feat: halmos symbolic tests (#21)

* feat: introduce OptimismSuperchainERC20

* fix: contract fixes

* feat: add snapshots and semver

* test: add supports interface tests

* test: add invariant test

* feat: add parameters to the RelayERC20 event

* fix: typo

* fix: from param description

* fix: event signature and interface pragma

* feat: add initializer

* feat: use unstructured storage and OZ v5

* feat: update superchain erc20 interfaces

* fix: adapt storage to ERC7201

* test: add initializable OZ v5 test

* fix: invariant docs

* fix: ERC165 implementation

* test: improve superc20 invariant (#11)

* fix: gas snapshot

* chore: configure medusa with basic supERC20 self-bridging

- used --foundry-compile-all to ensure the test contract under
  `test/properties` is compiled (otherwise it is not compiled and medusa
  crashes when it can't find it's compiled representation)
- set src,test,script to test/properties/medusa to not waste time
  compiling contracts that are not required for the medusa campaign
- used an atomic bridge, which doesnt allow for testing of several of
  the proposed invariants

* fix: delete dead code

* test: give the fuzzer a head start

* feat: create suite for sybolic tests with halmos

* test: setup and 3 properties with symbolic tests

* chore: remove todo comment

* docs: fix properties order

* test: document & implement assertions 22, 23  and 24

* fix: fixes from self-review

* test: guide the fuzzer a little bit less

previously: initial mint, bound on transfer amount: 146625 calls in 200s
now: no initial mint, no bound on transfer amount: 176835 calls in 200s

it doesn't seem to slow the fuzzer down

* feat: add property for burn

* refactor: remove symbolic address on mint property

* refactor: order the tests based on the property id

* feat: checkpoint

* chore: set xdomain sender on failing test

* chore: enhance mocks

* Revert "Merge branch 'chore/setup-medusa' into feat/halmos-symbolic-tests"

This reverts commit 945d6b6, reversing
changes made to 5dcb3a8.

* refactor: remove symbolic addresses to make all of the test work

* chore: remove console logs

* feat: add properties file

* chore: polish

* refactor: enhance test on property 7 using direct try catch (now works)

* fix: review comments

* refactor: add symbolic addresses on test functions

* feat: create halmos toml

* chore: polish test contract and mock

* chore: update property

* refactor: move symbolic folder into properties one

* feat: create advanced tests helper contract

* refactor: enhance tests using symbolic addresses instead of concrete ones

* chore: remove 0 property natspec

* feat: add halmos profile and just script

* chore: rename symbolic folder to halmos

* feat: add halmos commands to justfile

* chore: reorder assertions on one test

* refactor: complete test property seven

* chore: mark properties as completed

* chore: add halmos-cheatcodes dependency

* chore: rename advancedtest->halmosbase

* chore: minimize mocked messenger

* chore: delete empty halmos file

* chore: revert changes to medusa.json

* docs: update changes to PROPERTIES.md from base branch

* test: sendERC20 destination fix

* chore: natspec fixes

---------

Co-authored-by: agusduha <[email protected]>
Co-authored-by: 0xng <[email protected]>
Co-authored-by: teddy <[email protected]>

* test: remaining protocol properties (#26)

* test: cross-user fuzzed bridges + actor setup

* test: fuzz properties 8 and 9

* test: properties 7 and 25

* fix: implement doc's feedback

* test: superc20 tob properties (#27)

* chore: add crytic/properties dependency

* test: extend protocol properties so it also covers ToB erc20 properties

* chore: small linter fixes

* docs: update property list

* test: handlers for remaining superc20 state transitions

* fix: disable ToB properties we are not using and guide the fuzzer a bit more

* fix: disable another ToB property not implemented by solady

* chore: remove zero-initializations

* fix: feedback from disco

* chore: separate fuzz campaign tests in guided vs unguided

* test: dont revert on successful unguided relay

* test: add fuzzed calls to burn and mint

* docs: document the separation of fuzz test functions

* chore: move the properties file to its own directory

* chore: consistently use fuzz_ and property_ + camelcase

* chore: fix typo

* chore: camelcase for handlers as well

* fix: revert change that broke halmos campaign compile :D

* test: fuzz non atomic bridging (#31)

* test: changed mocked messenger ABI for message sending but kept assertions the same

* docs: add new properties 26&27

* test: queue cross-chain messages and test related properties

* test: relay random messages from queue and check associated invariants

* chore: rename bridge->senderc20 method for consistency with relayerc20

* test: not-yet-deployed supertokens can get funds sent to them

* chore: medusa runs forever by default

doable since it also handles SIGINTs gracefully

* chore: document the reason behind relay zero and send zero inconsistencies

* fix: feedback from doc

* fix: walk around possible medusa issue

I'm getting an 'unknown opcode 0x4e' in ProtocolAtomic constructor when
calling the MockL2ToL2CrossDomainMessenger for the first time

* test: unguided handler for sendERC20

* fix: feedback from disco

* chore: remove halmos testsuite

* chore: foundry migration (#40)

* chore: track assertion failures

this is so foundry's invariant contract can check that an assertion
returned false in the handler, while still allowing `fail_on_revert =
false` so we can still take full advantage of medusa's fuzzer & coverage
reports

* fix: explicitly skip duplicate supertoken deployments

* chore: remove duplicated PROPERTIES.md file

* chore: expose data to foundry's external invariant checker

* test: run medusa fuzzing campaign from within foundry

* fix: eagerly check for duplicate deployments

* fix: feedback from doc

* chore: shoehorn medusa campaign into foundry dir structure

* chore: remove PROPERTIES.md file

* chore: delete medusa config

* docs: limited support for subdirectories in test/invariant

* chore: rename contracts to be more sneaky about medusa

* docs: rewrite invariant docs in a way compliant with autogen scripts

* chore: fixes from rebase

* fix: cleanup superc20 invariants (#46)

* chore: revert modifications from medusa campaign

* docs: extra docs on why ForTest contract is required

* doc: add list of all supertoken properties

* chore: run forge fmt

* ci: allow for testfiles to be deleted

* fix: run doc autogen script after rebase

---------

Co-authored-by: Disco <[email protected]>
Co-authored-by: agusduha <[email protected]>
Co-authored-by: 0xng <[email protected]>
samlaf pushed a commit to samlaf/optimism that referenced this pull request Nov 10, 2024
…11776)

* chore: configure medusa with basic supERC20 self-bridging (ethereum-optimism#19)

- used --foundry-compile-all to ensure the test contract under
  `test/properties` is compiled (otherwise it is not compiled and medusa
  crashes when it can't find it's compiled representation)
- set src,test,script to test/properties/medusa to not waste time
  compiling contracts that are not required for the medusa campaign
- used an atomic bridge, which doesnt allow for testing of several of
  the proposed invariants

fix: delete dead code
test: give the fuzzer a head start
docs: fix properties order
test: document & implement assertions 22, 23  and 24
fix: fixes from self-review
test: guide the fuzzer a little bit less
  previously: initial mint, bound on transfer amount: 146625 calls in 200s
  now: no initial mint, no bound on transfer amount: 176835 calls in 200s
  it doesn't seem to slow the fuzzer down
fix: fixes after lovely feedback by disco
docs: merge both documents and categorized properties by their milestone
fix: fixes from parti's review
fix: feedback from disco
fix: feedback from doc
refactor: separate state transitions from pure properties
docs: update tested properties
refactor: move all assertions into properties contract
fix: move function without assertions back into handler
test: only use assertion mode
fix: improve justfile recipie for medusa

* feat: halmos symbolic tests (ethereum-optimism#21)

* feat: introduce OptimismSuperchainERC20

* fix: contract fixes

* feat: add snapshots and semver

* test: add supports interface tests

* test: add invariant test

* feat: add parameters to the RelayERC20 event

* fix: typo

* fix: from param description

* fix: event signature and interface pragma

* feat: add initializer

* feat: use unstructured storage and OZ v5

* feat: update superchain erc20 interfaces

* fix: adapt storage to ERC7201

* test: add initializable OZ v5 test

* fix: invariant docs

* fix: ERC165 implementation

* test: improve superc20 invariant (ethereum-optimism#11)

* fix: gas snapshot

* chore: configure medusa with basic supERC20 self-bridging

- used --foundry-compile-all to ensure the test contract under
  `test/properties` is compiled (otherwise it is not compiled and medusa
  crashes when it can't find it's compiled representation)
- set src,test,script to test/properties/medusa to not waste time
  compiling contracts that are not required for the medusa campaign
- used an atomic bridge, which doesnt allow for testing of several of
  the proposed invariants

* fix: delete dead code

* test: give the fuzzer a head start

* feat: create suite for sybolic tests with halmos

* test: setup and 3 properties with symbolic tests

* chore: remove todo comment

* docs: fix properties order

* test: document & implement assertions 22, 23  and 24

* fix: fixes from self-review

* test: guide the fuzzer a little bit less

previously: initial mint, bound on transfer amount: 146625 calls in 200s
now: no initial mint, no bound on transfer amount: 176835 calls in 200s

it doesn't seem to slow the fuzzer down

* feat: add property for burn

* refactor: remove symbolic address on mint property

* refactor: order the tests based on the property id

* feat: checkpoint

* chore: set xdomain sender on failing test

* chore: enhance mocks

* Revert "Merge branch 'chore/setup-medusa' into feat/halmos-symbolic-tests"

This reverts commit 945d6b6, reversing
changes made to 5dcb3a8.

* refactor: remove symbolic addresses to make all of the test work

* chore: remove console logs

* feat: add properties file

* chore: polish

* refactor: enhance test on property 7 using direct try catch (now works)

* fix: review comments

* refactor: add symbolic addresses on test functions

* feat: create halmos toml

* chore: polish test contract and mock

* chore: update property

* refactor: move symbolic folder into properties one

* feat: create advanced tests helper contract

* refactor: enhance tests using symbolic addresses instead of concrete ones

* chore: remove 0 property natspec

* feat: add halmos profile and just script

* chore: rename symbolic folder to halmos

* feat: add halmos commands to justfile

* chore: reorder assertions on one test

* refactor: complete test property seven

* chore: mark properties as completed

* chore: add halmos-cheatcodes dependency

* chore: rename advancedtest->halmosbase

* chore: minimize mocked messenger

* chore: delete empty halmos file

* chore: revert changes to medusa.json

* docs: update changes to PROPERTIES.md from base branch

* test: sendERC20 destination fix

* chore: natspec fixes

---------

Co-authored-by: agusduha <[email protected]>
Co-authored-by: 0xng <[email protected]>
Co-authored-by: teddy <[email protected]>

* test: remaining protocol properties (ethereum-optimism#26)

* test: cross-user fuzzed bridges + actor setup

* test: fuzz properties 8 and 9

* test: properties 7 and 25

* fix: implement doc's feedback

* test: superc20 tob properties (ethereum-optimism#27)

* chore: add crytic/properties dependency

* test: extend protocol properties so it also covers ToB erc20 properties

* chore: small linter fixes

* docs: update property list

* test: handlers for remaining superc20 state transitions

* fix: disable ToB properties we are not using and guide the fuzzer a bit more

* fix: disable another ToB property not implemented by solady

* chore: remove zero-initializations

* fix: feedback from disco

* chore: separate fuzz campaign tests in guided vs unguided

* test: dont revert on successful unguided relay

* test: add fuzzed calls to burn and mint

* docs: document the separation of fuzz test functions

* chore: move the properties file to its own directory

* chore: consistently use fuzz_ and property_ + camelcase

* chore: fix typo

* chore: camelcase for handlers as well

* fix: revert change that broke halmos campaign compile :D

* test: fuzz non atomic bridging (ethereum-optimism#31)

* test: changed mocked messenger ABI for message sending but kept assertions the same

* docs: add new properties 26&27

* test: queue cross-chain messages and test related properties

* test: relay random messages from queue and check associated invariants

* chore: rename bridge->senderc20 method for consistency with relayerc20

* test: not-yet-deployed supertokens can get funds sent to them

* chore: medusa runs forever by default

doable since it also handles SIGINTs gracefully

* chore: document the reason behind relay zero and send zero inconsistencies

* fix: feedback from doc

* fix: walk around possible medusa issue

I'm getting an 'unknown opcode 0x4e' in ProtocolAtomic constructor when
calling the MockL2ToL2CrossDomainMessenger for the first time

* test: unguided handler for sendERC20

* fix: feedback from disco

* chore: remove halmos testsuite

* chore: foundry migration (ethereum-optimism#40)

* chore: track assertion failures

this is so foundry's invariant contract can check that an assertion
returned false in the handler, while still allowing `fail_on_revert =
false` so we can still take full advantage of medusa's fuzzer & coverage
reports

* fix: explicitly skip duplicate supertoken deployments

* chore: remove duplicated PROPERTIES.md file

* chore: expose data to foundry's external invariant checker

* test: run medusa fuzzing campaign from within foundry

* fix: eagerly check for duplicate deployments

* fix: feedback from doc

* chore: shoehorn medusa campaign into foundry dir structure

* chore: remove PROPERTIES.md file

* chore: delete medusa config

* docs: limited support for subdirectories in test/invariant

* chore: rename contracts to be more sneaky about medusa

* docs: rewrite invariant docs in a way compliant with autogen scripts

* chore: fixes from rebase

* fix: cleanup superc20 invariants (ethereum-optimism#46)

* chore: revert modifications from medusa campaign

* docs: extra docs on why ForTest contract is required

* doc: add list of all supertoken properties

* chore: run forge fmt

* ci: allow for testfiles to be deleted

* fix: run doc autogen script after rebase

---------

Co-authored-by: Disco <[email protected]>
Co-authored-by: agusduha <[email protected]>
Co-authored-by: 0xng <[email protected]>
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