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

ED-4357: Add in HyperProver and Build Changes and get Testnet and Preprod working for Mantle and Arbitrum #87

Open
wants to merge 220 commits into
base: ECO-BETA
Choose a base branch
from

Conversation

johnwhitton
Copy link
Contributor

@johnwhitton johnwhitton commented Nov 5, 2024

Note: This is to be merged after ED-3903

Key Enhancements

  • Chain Configuration now supports multiple Proving Mechanisms
  • Chain Configuration now needs chainId and provingMechanism when querying
  • World state now supports multiple settlement types
  • ProveIntent now requires settlement type to be specified
  • Bedrock now has logic that checks the finalityDelaySeconds
  • Configuration now includes
    • routes: which map all routes between source and destination chains
    • deploymentConfigs: which exist for each chain and Proving Mechanism combination
    • deploymentChainConfigs: which contains the group of deployment Configs supported by each chain (used at deploy time)
  • Deployment scripts have been simplified to reduce complexity and be driven more by configuration

ECO-BETA NEXT Steps

  • merge this into ECO-BETA with a focus on the contracts folder and tests
  • @nknavkal Review of ECO-BETA v0.3.0 releas
  • merge HYPERPROVER changes into Main (and then ECO-BETA)
  • Finish contract changes for delays and finalized state
  • Merge that into ECO-BETA
  • Modularize all scripting to be reusable (may also move to an NPM package and SDK)

Following is an overview of the tasks for this branch

Complete

  • Merge the latest changes for HyperProver
  • Include Semver

TODO

  • Merge ED-3903 to ECO-BETA (focus is contracts and tests, not scripting)
  • Add Settlement Type to BlockProof ED-3906
  • Add Proving Mechanism used in combination with Settlement Type
  • Include Finalized State for Bedrock ED-3906, ED-3681
  • Add interface to provide time taken to prove ED-3973
  • Deploy and test all scripts testnet
  • Working Routes for all
  • Copy Publishing Script Changes from ED-4311: code is here
  • Script Deploy By Network: ED-4310
  • Get Lib Working for TestNet
  • Deploy and test all scripts pre-prod
  • Get Mantle Working on pre-prod
  • Merge changes for Arbitrum and Mantle from ED-4282,(JIRA ED-4282
  • Consistently use Custom Errors (remove all reverts and require) - gas efficiency

Future Work

  • Contract Changes
    • Convert Abstract Prover to Library
    • Modify Bedrock and Cannon to have stateRead, TransitionProof, stateUpdate
    • Move TransitionProofs into Library
    • Create BendBetaProver StorageFinalized Orchestrator ED-3909
    • Review code coverage
  • Publishing changes ED-4309
    • Update Deploy scripts for Orchestrator
    • Working Routes for all revalidated
  • Protocol Library (Solidity) - npm package
  • Protocol Library (Typescript) - npm package
  • RIP-7755 Cross-L2-Call
  • ERC-7683 Cross Chain Intents
    • Create a reference implementation for ERC-7683 using our Protocol
  • Protocol SDK
    • Create a CLI using the proving library to create, solve, prove, and withdraw intents

Stretch Goals

  • Modularize Scripting for Intent Creation, Fulfillment, Proving and Withdrawal ED-3911
  • Improve Testing Coverage Updates ED-3910
  • Add Testnet scripts into CICD pipeline ED-4114
  • Update Bedrock and Cannon for Posted States

For Prioritization

  • Protocol CI Pipe & NPM Package ED-4309
  • Building in the Open
    • NPM Package: Protocol Contracts ED-4311
    • NPM Package Protocol Typescript Library: see here
    • Protocol CLI: For Creating, Solving, Proving and withdrawing intents
  • Create NPM Package with ABI's and proving library
  • Create SDK with CLI for creating Intent Creation, Fulfillment, Proving and Withdrawals
  • Modularity and RIP-7755 alignment
    • Change Intents to use structures instead of address[] calldata _targets, and bytes[] calldata _data,
    • Implement pre-check and post-check hooks (use post-check for Inbox)
    • EIP-4788 Layer 1 Prover

Background Information

@johnwhitton johnwhitton changed the base branch from main to ECO-BETA November 22, 2024 17:08
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