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

Patch EVM version for explicit call stack #2026

Merged
merged 1 commit into from
Jan 16, 2023

Conversation

nanocryk
Copy link
Contributor

@nanocryk nanocryk commented Jan 3, 2023

What does it do?

Use latest commit of EVM repo to use an explicit call stack strategy, which will reduce the possibility of stack overflows.

TODO: Add test for overflow.

What important points reviewers should know?

Since it modifies a lot the structure of the executor which contains tracing events, we must be very careful that tracing is not broken.

Is there something left for follow-up PRs?

What alternative implementations were considered?

Are there relevant PRs or issues in other repositories (Substrate, Polkadot, Frontier, Cumulus)?

What value does it bring to the blockchain users?

@nanocryk nanocryk added A0-pleasereview Pull request needs code review. B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes C7-high Elevates a release containing this PR to "high priority". D9-needsaudit👮 PR contains changes to fund-managing logic that should be properly reviewed and externally audited A10-evmtracing Pull request includes evm tracing functionality labels Jan 3, 2023
@notlesh notlesh added D1-audited👍 PR contains changes to fund-managing logic that has been properly reviewed and externally audited and removed D9-needsaudit👮 PR contains changes to fund-managing logic that should be properly reviewed and externally audited labels Jan 11, 2023
@nanocryk nanocryk added the not-breaking Does not need to be mentioned in breaking changes label Jan 16, 2023
@nanocryk nanocryk merged commit 0838a96 into master Jan 16, 2023
@nanocryk nanocryk deleted the jeremy-explicit-evm-call-stack branch January 16, 2023 09:38
4meta5 added a commit that referenced this pull request Jan 17, 2023
* configure opengov for movr

* Staking precompile: candidateAutoCompoundingDelegationCount (#2037)

* candidateAutoCompoundingDelegationCount

* Remove unecessary `.into()`

Co-authored-by: Amar Singh <asinghchrony@protonmail.com>

* typo

Co-authored-by: Stephen Shelton <steve@brewcraft.org>

Co-authored-by: Amar Singh <asinghchrony@protonmail.com>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>

* precompiles

* address some review todos not done yet

* Fixes balance smoke test (#2040)

Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>

* trackIds getter and full TrackInfo impl with Curves

* patch evm version (#2026)

* Removes treasurer in Moonriver

* Update eth contract code smoke test (#2043)

Change account limit

* Adds OpenGov to Moonriver (#2041)

* Adds OpenGov to Moonriver

* Updates Moonbase

* fmt

* fixes test

* fix impoty

Co-authored-by: nanocryk <6422796+nanocryk@users.noreply.github.com>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>
Co-authored-by: Alan Sapede <alan@purestake.com>
Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>
Co-authored-by: Crystalin <alan.sapede@gmail.com>
Co-authored-by: Tim B <79199034+timbrinded@users.noreply.github.com>
crystalin added a commit that referenced this pull request Jan 18, 2023
* stash precompile changes in other branch and push pallet changes leaking std librar

* still leaking std

* using sp std phantomdata did not fix

* ty @nanocryk for std leak fix

* init referenda precompile needs tryfrom u8 for origins

* referenda submit precompile fn

* signed extrinsics for referenda precompile

* preimage precompile

* init conviction voting precompile

* referenda delegate undelegate unlock

* fixes

* fix

* clean

* improve revert reasons for class and index inputs

* clean

* init accessors and clean

* referenda precompile

* clean

* clean and init referenda precompile interface

* fix merge

* try mock referenda precompile but did not succeed

* save

* fix referenda mock

* add dot sol files for preimage and voting

* add to moonbase precompiles

* fix

* precompile existence test fix

* update solidity addresses as per moonbase config

* rename standard vote to vote in conviction voting pallet

* start moving origins out of pallet and using additional generic instead

* fix finish moving pallet custom origins back into runtime

* add opengov precompiles in proxy evm filter

* SolidityConvert no longer necessary

Co-authored-by: Éloïs <c@elo.tf>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>

* rm SolidityConvert and add Conviction enum

* use trackId as input for submit instead of origin and convert from trackId to origin based on mapping

* camelCase error msgs

Co-authored-by: Éloïs <c@elo.tf>

* Update precompiles/referenda/src/lib.rs

Co-authored-by: Éloïs <c@elo.tf>

* fix conviction precompile interface

* fix referenda precompile interface

* test to ensure all tracks have min enactment period less than vote locking period

* update tracks based on wiki

* revert accidental commit

* fix referenda precompile unit tests

* update config based on polkadot 6372 gov2 config tweaks

* fix

* Configure moonriver OpenGov (#2038)

* configure opengov for movr

* Staking precompile: candidateAutoCompoundingDelegationCount (#2037)

* candidateAutoCompoundingDelegationCount

* Remove unecessary `.into()`

Co-authored-by: Amar Singh <asinghchrony@protonmail.com>

* typo

Co-authored-by: Stephen Shelton <steve@brewcraft.org>

Co-authored-by: Amar Singh <asinghchrony@protonmail.com>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>

* precompiles

* address some review todos not done yet

* Fixes balance smoke test (#2040)

Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>

* trackIds getter and full TrackInfo impl with Curves

* patch evm version (#2026)

* Removes treasurer in Moonriver

* Update eth contract code smoke test (#2043)

Change account limit

* Adds OpenGov to Moonriver (#2041)

* Adds OpenGov to Moonriver

* Updates Moonbase

* fmt

* fixes test

* fix impoty

Co-authored-by: nanocryk <6422796+nanocryk@users.noreply.github.com>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>
Co-authored-by: Alan Sapede <alan@purestake.com>
Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>
Co-authored-by: Crystalin <alan.sapede@gmail.com>
Co-authored-by: Tim B <79199034+timbrinded@users.noreply.github.com>

* remove TryFrom u8 impl for Origin unused

* split convictionVoting vote into voteYes and voteNo so can add voteAbstain in future version without breaking backwards compatibility

* fix consistent conversion test

* follow suggestions

* add doc note to removeOtherVote

* fix

Co-authored-by: nanocryk <6422796+nanocryk@users.noreply.github.com>
Co-authored-by: librelois <c@elo.tf>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>
Co-authored-by: Alan Sapede <alan@purestake.com>
Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>
Co-authored-by: Crystalin <alan.sapede@gmail.com>
Co-authored-by: Tim B <79199034+timbrinded@users.noreply.github.com>
imstar15 pushed a commit to AvaProtocol/moonbeam that referenced this pull request May 16, 2023
imstar15 pushed a commit to AvaProtocol/moonbeam that referenced this pull request May 16, 2023
* stash precompile changes in other branch and push pallet changes leaking std librar

* still leaking std

* using sp std phantomdata did not fix

* ty @nanocryk for std leak fix

* init referenda precompile needs tryfrom u8 for origins

* referenda submit precompile fn

* signed extrinsics for referenda precompile

* preimage precompile

* init conviction voting precompile

* referenda delegate undelegate unlock

* fixes

* fix

* clean

* improve revert reasons for class and index inputs

* clean

* init accessors and clean

* referenda precompile

* clean

* clean and init referenda precompile interface

* fix merge

* try mock referenda precompile but did not succeed

* save

* fix referenda mock

* add dot sol files for preimage and voting

* add to moonbase precompiles

* fix

* precompile existence test fix

* update solidity addresses as per moonbase config

* rename standard vote to vote in conviction voting pallet

* start moving origins out of pallet and using additional generic instead

* fix finish moving pallet custom origins back into runtime

* add opengov precompiles in proxy evm filter

* SolidityConvert no longer necessary

Co-authored-by: Éloïs <c@elo.tf>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>

* rm SolidityConvert and add Conviction enum

* use trackId as input for submit instead of origin and convert from trackId to origin based on mapping

* camelCase error msgs

Co-authored-by: Éloïs <c@elo.tf>

* Update precompiles/referenda/src/lib.rs

Co-authored-by: Éloïs <c@elo.tf>

* fix conviction precompile interface

* fix referenda precompile interface

* test to ensure all tracks have min enactment period less than vote locking period

* update tracks based on wiki

* revert accidental commit

* fix referenda precompile unit tests

* update config based on polkadot 6372 gov2 config tweaks

* fix

* Configure moonriver OpenGov (moonbeam-foundation#2038)

* configure opengov for movr

* Staking precompile: candidateAutoCompoundingDelegationCount (moonbeam-foundation#2037)

* candidateAutoCompoundingDelegationCount

* Remove unecessary `.into()`

Co-authored-by: Amar Singh <asinghchrony@protonmail.com>

* typo

Co-authored-by: Stephen Shelton <steve@brewcraft.org>

Co-authored-by: Amar Singh <asinghchrony@protonmail.com>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>

* precompiles

* address some review todos not done yet

* Fixes balance smoke test (moonbeam-foundation#2040)

Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>

* trackIds getter and full TrackInfo impl with Curves

* patch evm version (moonbeam-foundation#2026)

* Removes treasurer in Moonriver

* Update eth contract code smoke test (moonbeam-foundation#2043)

Change account limit

* Adds OpenGov to Moonriver (moonbeam-foundation#2041)

* Adds OpenGov to Moonriver

* Updates Moonbase

* fmt

* fixes test

* fix impoty

Co-authored-by: nanocryk <6422796+nanocryk@users.noreply.github.com>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>
Co-authored-by: Alan Sapede <alan@purestake.com>
Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>
Co-authored-by: Crystalin <alan.sapede@gmail.com>
Co-authored-by: Tim B <79199034+timbrinded@users.noreply.github.com>

* remove TryFrom u8 impl for Origin unused

* split convictionVoting vote into voteYes and voteNo so can add voteAbstain in future version without breaking backwards compatibility

* fix consistent conversion test

* follow suggestions

* add doc note to removeOtherVote

* fix

Co-authored-by: nanocryk <6422796+nanocryk@users.noreply.github.com>
Co-authored-by: librelois <c@elo.tf>
Co-authored-by: Stephen Shelton <steve@brewcraft.org>
Co-authored-by: Alan Sapede <alan@purestake.com>
Co-authored-by: Crystalin None <crystalin@Crystalins-MacBook-Pro.local>
Co-authored-by: Crystalin <alan.sapede@gmail.com>
Co-authored-by: Tim B <79199034+timbrinded@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A0-pleasereview Pull request needs code review. A10-evmtracing Pull request includes evm tracing functionality B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes C7-high Elevates a release containing this PR to "high priority". D1-audited👍 PR contains changes to fund-managing logic that has been properly reviewed and externally audited not-breaking Does not need to be mentioned in breaking changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants