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

Rebase changes on top of stable upstream #123

Closed
3 tasks done
palango opened this issue May 8, 2024 · 9 comments
Closed
3 tasks done

Rebase changes on top of stable upstream #123

palango opened this issue May 8, 2024 · 9 comments
Assignees
Labels

Comments

@palango
Copy link
Collaborator

palango commented May 8, 2024

We need to rebase (at least that's what we have been doing in the past) our changes on top of the latest upstream changes.

While doing so, I found big changes to contract deployment. This work was mostly done in ethereum-optimism#10106 and follow-ups.

Tasks

Preview Give feedback
  1. type:bug
    ezdac
  2. ezdac karlb
    palango
@lvpeschke
Copy link

Hard to predict and assess progress, reactive work commit by commit.

@lvpeschke
Copy link

@palango can you provide a status update? how much is left to do?

@palango
Copy link
Collaborator Author

palango commented May 22, 2024

@palango can you provide a status update? how much is left to do?

  • The rebase itself is finished
  • I pulled out the migration tool changes to no delay this further and will remerge this once this is ready to go
  • There are some CI failures to fix, Pavel has been helping me to get those fixed (see Add Fee Currency directory to predeploys #130)
  • Next two weeks will be busy for me, but I hope to find some time during the events to push this forward

@tynes
Copy link

tynes commented May 24, 2024

Some things that we did recently were:

  • remove op-bindings, it was creating a lot of overhead for smart contract development with having to autogenerate the bindings and commit them in, diff for smart contract code was too high. We are better about doing specific contracts releases (necessary for upgrades with governance) so services that interact with contracts are responsible for managing their bindings themselves. This is an example on how to autogenerate bindings
  • Use foundry to generate the L2 genesis. The custom Go code for manipulating storage was not as extensible and only supported certain types in storage. Now that foundry generates the L2 genesis, everything is more cohesive and the tests can utilize the foundry genesis setup for the unit tests
  • Removal of typescript, right now the monitoring and sdk still exist but the plan is to move the monitoring services all to here and fully remove the sdk in the future as its no longer maintained

One question for you, do you use the devnet? Trying to figure out what to do with it, some of our devs use it for local development. I don't think it needs to run in CI on every PR, I think it could run hourly and be fine

@palango
Copy link
Collaborator Author

palango commented May 28, 2024

Thanks for the input here @tynes.

I worked on the rebase and agree that the changes you mention will make maintenance easier in the future (but cause some work now).
Moving the bindings to the places where they are used makes a lot of sense and the whole genesis creation in foundry scripts seems both easier and cleaner. Great work!
The removal of typescript didn't touch our changes so far, but great to know about it early.

Regarding the devnet: Our current plan is to extend it to allow testing of the migration process which will be quite useful. Do you intent to stop maintaining it or are you more interested in our use cases?

@tynes
Copy link

tynes commented May 28, 2024

We don't intend to stop maintaining the devnet but we are working on a plan for how to make it maintainable long term. It has a lot of tech debt at this point with all of the various flags (use fault proofs, use plasma, use custom gas token) and its not super cohesive. We need it for application developers so that they can easily test cross chain applications. At some point, we will update it to support 2 L2s to app devs to build interop applications, see ethereum-optimism#10608. We did all of our migration testing for the migration in the cloud using ansible because it enabled us to use disk snapshots for faster feedback and also allowed us to develop the tooling we used in prod

@tynes
Copy link

tynes commented May 28, 2024

Regarding the L2 genesis, I'd like to get to a point where we could do releases of a JSON file that represents a release of the L2 genesis allocs and its the same for all chains. I was thinking that other chains could decorate that standard release of the L2 genesis allocs. Not sure timeline wise when we can get to this because it requires ethereum-optimism/specs#194

@lvpeschke
Copy link

@palango how close to completion is the remaining work now?

@palango
Copy link
Collaborator Author

palango commented Jun 10, 2024

It's mostly blocked on celo-org/op-geth#136 and then we need to cherry pick some remaining commits.

@karlb karlb closed this as completed Jun 11, 2024
palango pushed a commit that referenced this issue Dec 17, 2024
* feat: add IERC7802 (#123)

* feat: add IERC7802

* fix: token address fuzz error

* feat: remove ERC165 contract inheritance

* feat: add IERC20 interface support (#124)

* feat: add IERC20 interface support

* fix: interfaces tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants