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

feat(contracts): transparent proxies and el genesis #165

Merged
merged 10 commits into from
Oct 9, 2024

Conversation

Ramarti
Copy link
Contributor

@Ramarti Ramarti commented Oct 2, 2024

  • switching uups upgrades for transparent proxys
  • forge script to generate alloc section of geth genesis.json
  • forge script to test upgrading predeploys

issue: fixes #180

@Ramarti Ramarti marked this pull request as ready for review October 4, 2024 22:02
@Ramarti Ramarti changed the title feat(contracts) transparent proxies for predeploys feat(contracts) transparent proxies for predeploys and EL genesis file alloc generator Oct 4, 2024
Copy link
Contributor

@limengformal limengformal left a comment

Choose a reason for hiding this comment

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

It works as expected in devnet and mininet.
@Ramarti It will be good if you can fix the PR CI errors.

@Ramarti Ramarti force-pushed the transparent-proxy-deploy-etching branch from 5fc4f43 to 30822cc Compare October 9, 2024 01:44
@Ramarti Ramarti changed the title feat(contracts) transparent proxies for predeploys and EL genesis file alloc generator feat(contracts): transparent proxies for predeploys and EL genesis file alloc generator Oct 9, 2024
@Ramarti Ramarti force-pushed the transparent-proxy-deploy-etching branch from 4a886a4 to bcba58c Compare October 9, 2024 04:26
@Ramarti Ramarti changed the title feat(contracts): transparent proxies for predeploys and EL genesis file alloc generator feat(contracts): transparent proxies, EL genesis file alloc generator Oct 9, 2024
@Ramarti Ramarti changed the title feat(contracts): transparent proxies, EL genesis file alloc generator feat(contracts): feat(contracts): transparent proxies, EL genesis Oct 9, 2024
@Ramarti Ramarti changed the title feat(contracts): feat(contracts): transparent proxies, EL genesis feat(contracts): transparent proxies, EL genesis Oct 9, 2024
@Ramarti Ramarti changed the title feat(contracts): transparent proxies, EL genesis feat(contracts): transparent proxies and EL genesis Oct 9, 2024
@Ramarti Ramarti changed the title feat(contracts): transparent proxies and EL genesis feat(contracts): transparent proxies and el genesis Oct 9, 2024
@Ramarti Ramarti force-pushed the transparent-proxy-deploy-etching branch from 0eddd3e to 0945941 Compare October 9, 2024 15:09
@limengformal limengformal merged commit 2459fb1 into piplabs:main Oct 9, 2024
6 checks passed
Copy link

github-actions bot commented Oct 9, 2024

Binary uploaded successfully 🎉

📦 Version Name: 0.10.1-unstable-2459fb1
📦 Download Source: AWS S3

leeren pushed a commit to leeren/story-fork that referenced this pull request Oct 10, 2024
* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test
leeren pushed a commit to leeren/story-fork that referenced this pull request Oct 10, 2024
* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test
leeren pushed a commit to leeren/story-fork that referenced this pull request Oct 10, 2024
* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test
leeren pushed a commit to leeren/story-fork that referenced this pull request Oct 10, 2024
* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test
leeren pushed a commit that referenced this pull request Oct 15, 2024
* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test
leeren pushed a commit that referenced this pull request Oct 15, 2024
* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test
leeren pushed a commit that referenced this pull request Oct 15, 2024
* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test
limengformal pushed a commit that referenced this pull request Oct 15, 2024
* feat(x/evmstaking): max unbond withdrawal

* chore(x/evmstaking): bump log level

* feat(x/evmstaking): spendable coin max amount with tests

* feat(x/evmstaking): pass zero amount

* chore(x/evmstaking): move logs

* chore(release): finalize client 0.10.1 stable release

* chore(release): begin story v0.10.2 unstable release

* feat(cmd): one block rollback  (#157)

add cometBFT's one block rollback cmd

* chore(release): finalize client 0.10.2 stable release

* chore(release): begin client 0.11.0 unstable release

* fix(x/evmstaking): endblock unbond branch check (#163)

* fix(x/evmstaking): branch condition on max spendable

* test(x/evmstaking): add expected call in tests

* feat(cli): add unjail validator subcommand (#170)

* feat(cli): add unjail validator subcommand

* fix: use static predeploy ca in validator logic

* chore(release): finalize client 0.11.0 stable release

* chore(release): begin story client v0.12.0 unstable release

* feat(epochs): port epochs module from cosmos-sdk (#101)

* chore: modify path for mockgen (#121)

* chore(evmstaking): remove unnecessary codes (#125)

* add test cases for evmstaking/types/params

increased test coverage to 100%

changes
validate functions use concrete type instead of any. there is no reasoning for using any.

rename withdraw test suite to avoid name conflict with param test suite

* add test cases for evmstaking/keeper/unjail

increased test coverage to 100%

* add test cases for genesis

increased coverage to 71.4%

* fix syntax after rebase

* add test cases for genesis (#112)

increase coverage to 100%

* fix(evmstaking): query withdrawal queue (#113)

it should append QueueElementsPrefixSuffix when query elements of queue
it fixes #84

* test(evmengine): add test cases for db (#120)

* add test cases to db

* test(evmengine): add test cases for helper (#131)

* add test cases for helper

increased test coverage to 100%

* fix ci

* add test cases for keeper (#132)

increased test coverage to 89.7%

add ci rule to not use t.Parallel to avoid data race issue for cosmos orm table.

* test(evmengine): add test cases for genesis (#134)

increase coverage to 83.3%
moved common function to keeper_internal_test.go

* add test cases for genesis (#135)

* test(evmengine): add test cases for params (#136)

increased coverage to 77.3%

* add test cases for params (#137)

increased coverage to 100%

* feat(script): auto add binary version to s3 file (#142)

* add version txt

* fixed task name

* fixed url

* fixed url

* opti title

* finish test

* fixed platform

* fixed pre-commit

* fix(evmengine): nil panic with optimistic build enabled (#128)

cmtAPI is lazily set, so during replyBlocks it is nil.

* test(evmengine/keeper): add test cases for msg server (#100)

changes of mockEngineAPI
- forceInvalidNewPayloadV3 and forceInvalidForkchoiceUpdatedV3 are added to simulate failed apis

changes of engineMock
- Add storeKey to make engineMock's methods dependent on sdk.Context for better testability

NewBlock
- Because of above changes, we need to rlp encode and decode block data. But if we create a block with nil withdrawals and nil withdrawalHash, rlp doesn't work well (couldn't figure out the root cause)
- To avoid rlp error, pass non-nil withdrawals so withdrawalHash can be set as non-nil emptyHash value.

* test(evmengine): add test cases for abci (#143)

increased coverage to 83.8%
added mock getPayloadV3Func for mocking getPayloadV3

* feat(genesis): disable vote extension by default (#173)

* refactor(panic): remove unused or unnecessary panic code (#171)

* feat(mint): customized mint module (#169)

* feat(mint): port mint module from cosmos sdk v0.50.7

* feat(mint): port mint module from cosmos sdk v0.50.7

* feat(mint): port mint module from cosmos sdk v0.50.7

* feat(mint): port mint module from cosmos sdk v0.50.7

* feat(mint): remove useless parameters

* feat(mint): new inflation function

* feat(mint): mint parameters change event log processing

* feat(mint): mint module api

* feat(mint): placeholder for param change events

* feat(mint): fix unit test

* feat(mint): fix based on comments

* feat(mint): fix based on comments

* feat(mint): update readme

* feat(mint): update readme

* feat(netconf): fix genesis config of mint module in local netconf (#175)

* feat(contracts): transparent proxies and el genesis (#165)

* Change UUPS by TransparentUpgradeableProxy, use etching to generate initial contracts

* etch all the contracts

* git ignore local dumps

* fix contracts/script/EtchInitialState.s.sol, use it also as setup for tests

* fix GenerateAlloc for UpgradeEntryPoint, add allocations and test upgradeability

* lint and cl fixes

* temporarily disabled solhint in CI/CD

* temporarily remove run_solidity_lint

* temporarily remove lint form workflow

* remove need for env function in test

* build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 (#19)

Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](spf13/cobra@v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jongwon Park <jwparktom@gmail.com>

* feat(api): add epochs api (#176)

* feat(api): add epochs api

* feat(api): add epoch info api

* feat(mint): update mint param type (#182)

* feat(mint): update param type

* feat(mint): make param value consistent among example and tests

* feat(cli): add key conversion subcommand (#174)

* feat(cli): add key conversion subcommand

* adds uncompressed pubkey (hex) as input

* fix(CI/CD): fix solhint (#190)

* fix(solhint): rm redundant pre-commit linting hook

* fix(solhint): update linting script & pkg version

* chore(contracts): apply linting fixes

* chore(cmd): fix validator flag linting issue

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Jongwon Park <contact@parkjongwon.com>
Co-authored-by: zsystm <124245155+zsystm@users.noreply.github.com>
Co-authored-by: Jongwon Park <jwparktom@gmail.com>
Co-authored-by: Narangde <hansol.lee@storyprotocol.xyz>
Co-authored-by: zsystm <actor93kor@gmail.com>
Co-authored-by: Haodi <82733821@qq.com>
Co-authored-by: Ze <edisonz0718@gmail.com>
Co-authored-by: Zerui Ge <gezerui1997@gmail.com>
Co-authored-by: Ramarti <raul.mf86@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Seb <sebsadface@gmail.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.

Fix upgradeability of predeploy smart contracts
3 participants