Monorepo implementing the Optimistic Ethereum protocol

Overview
Optimism

The Optimism Monorepo

TL;DR

This is the primary place where Optimism works on stuff related to Optimistic Ethereum.

Documentation

Extensive documentation is available here.

Community

Directory Structure

  • packages: Contains all the typescript packages and contracts
  • l2geth: Fork of go-ethereum v1.9.10 implementing the OVM.
  • integration-tests: Integration tests between a L1 testnet, l2geth,
  • ops: Contains Dockerfiles for containerizing each service involved in the protocol, as well as a docker-compose file for bringing up local testnets easily

Contributing

Read through CONTRIBUTING.md for a general overview of our contribution process. Follow the Development Quick Start to set up your local development environment.

Good First Issues

You can find good first issues by filtering for the "good first issue" tag on our issues page or alternatively by taking a look at our Good First Issues project board. If you'd like to tackle one of these issues, please leave a comment and assign yourself to the issue. This helps prevent two people accidentally working on the same task at the same time.

Changesets

We use changesets to manage releases of our various packages. You must include a changeset file in your PR when making a change that would require a new package release.

Adding a changeset file is easy:

  1. Navigate to the root of the monorepo.
  2. Run yarn changeset. You'll be prompted to select packages to include in the changeset. Use the arrow keys to move the cursor up and down, hit the spacebar to select a package, and hit enter to confirm your selection. Select all packages that require a new release as a result of your PR.
  3. Once you hit enter you'll be prompted to decide whether your selected packages need a major, minor, or patch release. We follow the Semantic Versioning scheme. Please avoid using major releases for any packages that are still in version 0.y.z.
  4. Commit your changeset and push it into your PR. The changeset bot will notice your changeset file and leave a little comment to this effect on GitHub.
  5. Voilà, c'est fini!

Rebasing

We use the git rebase command to keep our commit history tidy. Rebasing is an easy way to make sure that each PR includes a series of clean commits with descriptive commit messages See this tutorial for a detailed explanation of git rebase and how you should use it to maintain a clean commit history.

Development Quick Start

Dependencies

You'll need the following:

Setup

Clone the repository, open it, and install nodejs packages with yarn:

git clone [email protected]:ethereum-optimism/optimism.git
cd optimism
yarn install

Building the TypeScript packages

To build all of the TypeScript packages, run:

yarn clean
yarn build

Packages compiled when on one branch may not be compatible with packages on a different branch. You should recompile all packages whenever you move from one branch to another. Use the above commands to recompile the packages.

Building the rest of the system

If you want to run an Optimistic Ethereum node OR if you want to run the integration tests, you'll need to build the rest of the system.

cd ops
export COMPOSE_DOCKER_CLI_BUILD=1 # these environment variables significantly speed up build time
export DOCKER_BUILDKIT=1
docker-compose build

This will build the following containers:

  • builder: used to build the TypeScript packages
  • l1_chain: simulated L1 chain using hardhat-evm as a backend
  • deployer: process that deploys L1 smart contracts to the L1 chain
  • dtl: service that indexes transaction data from the L1 chain
  • l2geth: L2 geth node running in Sequencer mode
  • verifier: L2 geth node running in Verifier mode
  • relayer: helper process that relays messages between L1 and L2
  • batch_submitter: service that submits batches of Sequencer transactions to the L1 chain
  • integration_tests: integration tests in a box

If you want to make a change to a container, you'll need to take it down and rebuild it. For example, if you make a change in l2geth:

cd ops
docker-compose stop -- l2geth
docker-compose build -- l2geth
docker-compose start l2geth

For the typescript services, you'll need to rebuild the builder so that the compiled files are re-generated, and then your service, e.g. for the batch submitter

cd ops
docker-compose stop -- batch_submitter
docker-compose build -- builder batch_submitter
docker-compose start batch_submitter

Source code changes can have an impact on more than one container. If you're unsure about which containers to rebuild, just rebuild them all:

cd ops
docker-compose down
docker-compose build
docker-compose up

Finally, if you're running into weird problems and nothing seems to be working, run:

cd optimism
yarn clean
yarn build
cd ops
docker-compose down -v
docker-compose build
docker-compose up

Viewing docker container logs

By default, the docker-compose up command will show logs from all services, and that can be hard to filter through. In order to view the logs from a specific service, you can run:

docker-compose logs --follow <service name>

Running tests

Before running tests: follow the above instructions to get everything built.

Running unit tests

Run unit tests for all packages in parallel via:

yarn test

To run unit tests for a specific package:

cd packages/package-to-test
yarn test

Running integration tests

Follow above instructions for building the whole stack. Build and run the integration tests:

cd integration-tests
yarn build:integration
yarn test:integration

Branching Model and Releases

Active Branches

Branch Status
master Accepts PRs from develop when we intend to deploy to mainnet.
develop Accepts PRs that are compatible with master OR from regenesis/X.X.X branches.
regenesis/X.X.X Accepts PRs for all changes, particularly those not backwards compatible with develop and master.

Overview

We generally follow this Git branching model. Please read the linked post if you're planning to make frequent PRs into this repository (e.g., people working at/with Optimism).

The master branch

The master branch contains the code for our latest "stable" releases. Updates from master always come from the develop branch. We only ever update the master branch when we intend to deploy code within the develop to the Optimistic Ethereum mainnet. Our update process takes the form of a PR merging the develop branch into the master branch.

The develop branch

Our primary development branch is develop. develop contains the most up-to-date software that remains backwards compatible with our latest experimental network deployments. If you're making a backwards compatible change, please direct your pull request towards develop.

Changes to contracts within packages/contracts/contracts are usually NOT considered backwards compatible and SHOULD be made against a release candidate branch. Some exceptions to this rule exist for cases in which we absolutely must deploy some new contract after a release candidate branch has already been fully deployed. If you're changing or adding a contract and you're unsure about which branch to make a PR into, default to using the latest release candidate branch. See below for info about release candidate branches.

Release new versions

Developers can release new versions of the software by adding changesets to their pull requests using yarn changeset. Changesets will persist over time on the develop branch without triggering new version bumps to be proposed by the Changesets bot. Once changesets are merged into master, the bot will create a new pull request called "Version Packages" which bumps the versions of packages. The correct flow for triggering releases is to re-base these pull requests onto develop and merge them, and then create a new pull request to merge develop onto master. Then, the release workflow will trigger the actual publishing to npm and Docker hub.

Release candidate branches

Branches marked regenesis/X.X.X are release candidate branches. Changes that are not backwards compatible and all changes to contracts within packages/contracts/contracts MUST be directed towards a release candidate branch. Release candidates are merged into develop and then into master once they've been fully deployed. We may sometimes have more than one active regenesis/X.X.X branch if we're in the middle of a deployment. See table in the Active Branches section above to find the right branch to target.

Additional Reference Material

Running contract static analysis

We perform static analysis with slither. You must have Python 3.x installed to run slither. To run slither locally, do:

cd packages/contracts
pip3 install slither-analyzer
yarn test:slither

License

Code forked from go-ethereum under the name l2geth is licensed under the GNU GPLv3 in accordance with the original license.

All other files within this repository are licensed under the MIT License unless stated otherwise.

Comments
  • Ledger Bridging Issue; BOBA not bridging from L2 to L1 (since website update)

    Ledger Bridging Issue; BOBA not bridging from L2 to L1 (since website update)

    Everything appears to be working until it doesn't. The transaction appears to be progressing and I am told to be patient. Then it completes with nothing transferred, but ETH fees are paid. This has happened twice. Please see the following hashes.

    https://blockexplorer.boba.network/tx/0x12021149bb60de3c3c047805285fb5cdb53efbae10c2f4f9856d025ea8c2a4ac/token-transfers

    https://blockexplorer.boba.network/tx/0xad3b1fe02ff98b9e25ee44a93ffee83c681324b75919e213856d582b82b82947/token-transfers

    Upon examination, 0 BOBA are sent though the maximum amount was selected.

    opened by JettaRed 15
  • Unable to receive BOBA tokens

    Unable to receive BOBA tokens

    Hello, I have bridged my OMG tokens over to the BOBA network, however, I have not received any BOBA tokens into my wallet from the airdrop. What do I do to fix this issue?

    opened by rayphares 9
  • Error on classic L1 bridge (Ledger / Blind signing initially off, then error after enabling blind signing)

    Error on classic L1 bridge (Ledger / Blind signing initially off, then error after enabling blind signing)

    Can not proceed on classic bridge L1. After approval, apparently my ledger s did not have blind signing enabled. After correcting this and checking every available update, the following error shows up after hitting the bridge knob. (See screenshots) 97691D5B-1AD0-44CA-94F9-713DF994DAD9 F91ED437-9BD4-4673-8E86-A2365B6D33B2

    opened by Claude-Mon 8
  • Gateway - Pending Classic Deposit Bridge Message Still Showing

    Gateway - Pending Classic Deposit Bridge Message Still Showing

    On the 31th of january I deposited my Boba tokens from L1 > L2 with the classic bridge. The tokens where added to my account in less than 5 minutes. But the pending message is still showing on the gateway. I think it has to do with the fact that in my history tab, there is a duplicate of the transaction. It is shown twice. I think someone in telegram had the same issue.

    Pending Classic Bridge

    opened by MitchellUnknown 7
  • Approveal fails

    Approveal fails

    Hi, when I'm trying to put more usdt to the liq.pool L2, i get the following message: sending a transaction requires a signer (operation="sendTransaction", code=UNSUPPORTED_OPERATION, version=contracts/5.4.1)

    opened by yflor 6
  • Gateway - add $UST to bridge

    Gateway - add $UST to bridge

    I propose we add $UST, Terra's native stable coin . It's been supported across multiple chains such as Solana and Harmony, as well as many decentralized exchanges such as Sushiswap and Omsosis. The token contract is 0xa47c8bf37f92abed4a126bda807a7b7498661acd.

    We've chatted some with the Terraform labs team on the details of a potential partnership. We made a post a few months ago on their forum outlining possible areas. We don't have anything set in stone (yet), but I think it'd build some goodwill to be proactive about supporting $UST early on for the Boba gateway.

    opened by zukoboba 6
  • L2 to L1 transfer failure - missing OMG

    L2 to L1 transfer failure - missing OMG

    To continue/reopen previous issue (https://github.com/omgnetwork/optimism-v2/issues/312), the OMG never returned to the ETH wallet on L1 after initiating a Fast Bridge from L2. The ETH address is 0xC39248e20543bD7bb9f3c0498F43eBF069065Beb. Is it still pending?

    opened by JettaRed 5
  • L2 to L1 transfer failure

    L2 to L1 transfer failure

    Got as far as STEP 1 and then an error message. Blockchain explorer shows Success, but Input block shows "Failed to decode input data."

    Transaction Hash: 0x97d22ea34e363003248b3276557224f7348e92c436ac9049be6dabccf42d3a91

    https://blockexplorer.boba.network/tx/0x97d22ea34e363003248b3276557224f7348e92c436ac9049be6dabccf42d3a91/token-transfers

    opened by JettaRed 5
  • Inomurko/aws 0 gnosis network

    Inomurko/aws 0 gnosis network

    run this on the host 
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
    safe-react container needs lots of watches
    
    opened by InoMurko 5
  • "Failed to decode input data"

    Hello,

    Would appreciate your assistance, pls.

    Initiated a Fast Bridge transfer of OMG from L2 to L1 over 12 hours ago: BLOCK 254005 L2 Hash: 0xa0f6278a201603c53e0f919a24c9c3f7acd297c52d661bb2942f75a5eeaf78df

    I have yet to receive the OMG tokens on L1. It seems the OMG totals are still in L2 although in Transaction Details it shows Success & Confirmed. But in Transaction Details > Input field it shows "Failed to decode input data".

    Can you please advise if the transaction had failed and what I should do next. I have already spent the Fast Bridge ETH Fee to initiate the transfer. Will wait your advice.

    Thank you

    opened by jem778 4
  • Run Boba API Node - Genesis Data

    Run Boba API Node - Genesis Data

    I'm trying to run a Boba API node. I built GETH located here:

    https://github.com/omgnetwork/optimism-v2/tree/develop/l2geth

    And starting it as such:

    ./build/bin/geth --syncmode "fast" --maxpeers 100 --rpc --rpcapi="net,web3,eth,txpool" --rpcaddr="0.0.0.0" --ws --wsapi="net,web3,eth,txpool" --wsaddr="0.0.0.0" --rollup.verifier

    However, the genesis data seems to be missing. Where can I locate the genesis file for the Boba network so that I can do first init with it ?

    opened by ceds 4
  • CrossDomainEnabled + CrossDomainEnabledFast can be merged or inherit each other

    CrossDomainEnabled + CrossDomainEnabledFast can be merged or inherit each other

    At first sight it looks like we could easily merge both contracts or at least one extending the other.

    CrossDomainEnabledFast <-> CrossDomainEnabled

    Definitely low prio, but optimizations like that reduce boilerplate/duplicated code -> easier maintenance, etc.

    question 
    opened by wsdt 0
  • Bridges: Semi-automize process of registering NFT pairs

    Bridges: Semi-automize process of registering NFT pairs

    NOTE: Once you have your L2StandardERC721 address, please contact us so we can register that address in the L1 and L2 NFT bridges.

    Gas on Boba is cheap, why not letting people register their NFT pairs directly on the bridge and Boba then simply has to approve the pairs afterwards:

    E.g.:

     // Info of each NFT
        struct PairNFTInfo {
            address l1Contract;
            address l2Contract;
            Network baseNetwork; // L1 or L2
            bool approved; // default false
        }
    

    So users can add their contracts here via external function and boba (onlyOwner) simply has to set the pair to approved = true.

    Nevertheless, this could come with 2 risks:

    • We have to check if a pair is approved or not before using it otherwise revert.
    • Someone might spam the bridge with non-approved entries (around 10 million entries might be saved and then older entries get overriden).

    Curious to know what you think and if this has more advantages than disadvantages in your opinion! :-)

    enhancement 
    opened by wsdt 0
  • Ecosystem Page Design Ideas

    Ecosystem Page Design Ideas

    EcosystemPage EcoSystemPage2

    Rough design ideas for the Boba ecosystem page. "Pill" components allow user to filter between "type" of DApp i.e Wallet, DeFi, NFT etc. concept inspired by Arbitrum's portal, though aesthetics slightly differ. The red circle is representative of a live event, i.e projects that currently offer airdrops, whereas the green pill indicates active projects partaking in the WAGMI incentive. Different colours reflect different things. Card structure allows for the logo of the project to be away from the card body giving more space to dedicate to a better description, or any other tags you'd want to put with sufficient space to include socials in a similar manner the current ecosystem page has. Right arrow side scrolls through cards. Pill component in the top left of each card could indicate current state of DApp, or dynamic info of your choosing. Very rough drafts, just for inspiration and a bit of fun. Cards in second design aren't aligned, but a perfect design isn't the focal point. Keep up the great work guys :)

    Note: Font is not part of the design, it's not a hint to change the pre-existing font just there simply for context and to fill in the gaps.

    opened by OolongMusk 0
  • New Gateway - Feedback & Issues

    New Gateway - Feedback & Issues

    4ba90-moriariddle

    I found some issues on the gateway and added some improvement suggestions. And also good job on improving/fixing some issues on the gateway in the last couple of days, it looks great!

    **Edit some feedback from a community member (Oolongmusk) Feedback (Gateway).pdf

    opened by MitchellUnknown 3
  • [UX] Boba Gateway/Bridge: Subtract gas fees automatically

    [UX] Boba Gateway/Bridge: Subtract gas fees automatically

    Thought I would just drop this here. When bridging ETH to Boba (Rinkeby in this case) then the transaction would fail when trying to transfer the full amount.

    What I've seen for some other bridges etc. is that they automatically subtract the gas from the amount to transfer which makes the bridge way more user-friendly.

    Some suggestions:

    • Directly subtract the gas fee from within the smart contract
    • Just subtract the estimated gas fee client-side (+ some buffer maybe)
    • ...

    image

    Suggestions? Feedback?

    enhancement 
    opened by wsdt 1
Releases(v0.0.6)
  • v0.0.6(Mar 4, 2022)

    What's Changed

    • Add Rinkeby DAO addresses by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/203
    • allow NFT contracts to be deleted by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/199
    • Modify DAO to use timestamp on L2 by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/198
    • Update Rinkeby to Grizzly by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/207
    • Fix monitor dockerfile by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/193
    • DAO: adapt tests to work with all time values by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/205
    • Fast Relayer - Number() fix + extra debugging by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/209
    • enable DAO by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/204
    • mrf cleanup unused functions by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/210
    • Fraud detector enhancements by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/177
    • Add Mainnet DAO addresses by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/217
    • Optimism Upstream-race-fix #1785 by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/176
    • Support xBOBA in L2 LP by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/235
    • Support xBOBA in DAO and L2 LP by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/232
    • speed up integration testing add more functionality to up_local by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/231
    • reconcile develop and mainnet by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/236
    • add offset to L2govToken for regenesis provision by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/214
    • Support native L1 and L2 NFTs in NFT bridges by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/219
    • Add xBOBA contract and tests by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/224
    • VA changes to l2geth by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/230
    • add fixed savings contract by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/234
    • add boba fixed savings tests by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/238
    • [QSP-3,10,20] modify fixed savings with audit updates by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/239
    • add xBOBA by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/237
    • Deployed NFT bridges and support extra burn in gas oracle by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/242
    • Fast-relayer-Dec7 fix by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/218
    • fix: integ tests by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/243
    • Return ID as the input type by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/247
    • TURING - Update evm.go - intercept Turing call earlier before first evm.call by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/248
    • TURING - enables all examples by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/249
    • Fix gas oracle in local env and assign a new key to it by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/244
    • Apply the recent fast-relayer fixes for missed messages to the classic relayer. by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/255
    • Add UMA token by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/256
    • Reduce gas cost of onramp by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/257
    • Small dev fixes by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/262
    • [QSP-5] style: add documentation for fee rate precision by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/263
    • [QSP-6] add input validations by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/264
    • [QSP-8]feat: add logical xor to avoid user error by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/265
    • [QSP-9] add validation for ownership transfer by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/267
    • [QSP-11] emit events before external calls by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/268
    • add Turing field (type: []byte) to the metadata - experiment only by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/259
    • Support Rinkeby and Mainnet for the fraud detector and enable CORS by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/275
    • Add verifier status in gateway by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/277
    • [QSP-16] add comment for replyNeeded by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/271
    • [QSP-15] update comments by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/270
    • [QSP-13] check for token registration on L2LiquidityPool by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/269
    • [QSP-19] add comments for AtomicSwap by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/272
    • [QSP-21] add more events by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/273
    • best-practices: remove unused code, add deps by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/274
    • feat: add running depositHash by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/266
    • Fix minor typos in README by @jet86 in https://github.com/omgnetwork/optimism-v2/pull/282
    • [Turing-1] Generate cryptographically strong pseudo-random int between 0 - 2^256… by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/285
    • [Turing-2] Fix Geth tests by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/286
    • Turing remove magic by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/291
    • fix 5% time calculation; improve help text; fix typo; remove unreachable code by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/294
    • Update circulating supply by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/292
    • Add REACT_APP_MAX_HEALTH_BLOCK_LAG for gateway by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/295
    • Support l1 security fee by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/280
    • focus contract on turingHelper contract not sender address by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/303
    • add 5 second timeout for rpc calls by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/301
    • Improve turing credit contract by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/304
    • Circulating supply update by @trangtran-enya in https://github.com/omgnetwork/optimism-v2/pull/299
    • feat: add Oracle contracts by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/281
    • [Fee Scheme OVM 3.0] Add extra l2 gas to cover l1 security fee by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/302
    • Allow users to bridge multiple assets in one transaction by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/258
    • Pre-deploy BobaTuringHelper contract by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/306
    • [Turing] Fix lint by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/307
    • [Turing-4] Add turing credit contract by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/298
    • Add access control to TuringHelper contract by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/310
    • Add owner key in storage by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/311
    • Deploy contracts on Rinkeby by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/317
    • Add DomFi token by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/315
    • Deploy BOBA oracle on Rinkeby by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/318
    • Add maximum l1 base fee by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/309
    • Support bridging multiple assets on Rinkeby and fix l1 security fee on Rinkeby by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/314
    • [Turing-0] hybrid compute - Boba v3 by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/216
    • Inomurko/url to safe by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/320
    • Update LP contracts on Mainnet by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/324
    • Boba contracts unit tests by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/322
    • Support multiple assets bridge in api watcher by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/327
    • Faster gateway loading and support boba Punks by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/325
    • add external link to ecosystem from button as portal by @sk-enya in https://github.com/omgnetwork/optimism-v2/pull/323
    • Add Boba Straw example by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/332
    • Add Boba Straw address by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/329
    • Optimism #1728 "feat: rename l2geth package name" by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/335
    • Fully support multiple assets bridge by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/334
    • Fix earn page and test functions on the bridge and earn pages by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/340
    • Update println to log.Debug by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/343
    • Log l2 transaction by @trangtran-enya in https://github.com/omgnetwork/optimism-v2/pull/336
    • Wallet connect flow change by @sk-enya in https://github.com/omgnetwork/optimism-v2/pull/296
    • [Gateway] Fix the estimation of fast deposit cost by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/345
    • Fix minor typo by @jet86 in https://github.com/omgnetwork/optimism-v2/pull/350
    • [Gateway] Fix BRIDGE ALL by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/354
    • Update Wagmi_Howto.md by @zukoboba in https://github.com/omgnetwork/optimism-v2/pull/353
    • Update Wagmi_Howto.md by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/349
    • feat: add ShibuiNFT to ecosystem by @Quantumlyy in https://github.com/omgnetwork/optimism-v2/pull/341
    • [Integration Test] Add turing credit tests for a special case by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/347
    • add gateway support for OLO by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/360
    • Fix boba stake by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/362
    • [Boba-straw] Add new feeds to deploy script by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/355
    • [Register] Add WBTCUSD and OMGUSD pairs by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/356
    • Update turing_oracle.py by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/359
    • change incorrect title, fix several console warnings by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/364
    • reduce the diff - dtl, contracts by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/346
    • Update evm.go by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/366
    • Gateway package upgrade by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/365
    • tests: add oracle subscription tests by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/369
    • [Boba Replica Node] Fix replica script for boba community by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/375
    • [API Watcher] Bump up package and fix api watcher by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/374
    • Turing cache by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/330
    • Inomurko/update l2geth by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/339
    • re-enable replica/verifier/fraud-prover by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/376
    • [Integration Test] Add state root verification in integration tests by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/348
    • Fix verifier by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/380
    • [DTL] Add CTC deployment height in dtl by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/382
    • enable all tests by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/384
    • Add monster example (Using Turing to mint random monsters) by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/388
    • Make a test transaction periodically by @trangtran-enya in https://github.com/omgnetwork/optimism-v2/pull/387
    • Inomurko/rem ts batch submitter by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/390
    • add go batch-submitter by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/331
    • Revert "add go batch-submitter" by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/392
    • Revert "Inomurko/rem ts batch submitter" by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/394
    • DTL and L2Geth fixes by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/383
    • Add security alert in l2geth by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/396
    • [Geth] Fix msg.sender in turing by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/405
    • [Community Replica] Update images for community replica by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/401
    • [Community Verifier] Update images for community verifier by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/402
    • [DTL] Clean dtl logs by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/403
    • reduce the upstream diff by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/407
    • disable cache by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/408
    • [ops] Enable RPC forward by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/381
    • doc: add price data feed overview by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/409
    • Add more packages in builder by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/386
    • Add SEQUENCER_CLIENT_HTTP by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/411
    • Wallet Redesign by @sk-enya in https://github.com/omgnetwork/optimism-v2/pull/367
    • Fix a rare case for message relayers by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/415
    • Remove the logic of checking the timestamp from CTC in batch submitter by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/416
    • Inomurko/update boba node docs by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/414
    • Inomurko/state dump berlin by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/419
    • Re-enable Turing cache by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/417
    • Inomurko/rem ts batch submitter by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/400
    • monitor Oracle L2 addresses by @trangtran-enya in https://github.com/omgnetwork/optimism-v2/pull/406
    • Issue Fixes: Wallet Redesign by @sk-enya in https://github.com/omgnetwork/optimism-v2/pull/421
    • Revert "Inomurko/rem ts batch submitter" by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/423
    • [L2Geth] Add Boba gas fee hard fork by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/422
    • [Fraud Detector] Support docker volume by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/428
    • Turing cache cleanup + fixes by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/429
    • Inomurko/rem ts batch submitter; transition to go batch submitter by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/425
    • enable all tests for rinkeby by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/412
    • fraud-detector-threaded by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/432
    • Support Wagmi_v1 by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/431
    • update and check the fraud-detector documentation by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/430
    • fix wagmiv1 label by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/439
    • pass filter to integration tests by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/424
    • restart the l2 geth node by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/441
    • Update gas hard fork block by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/440
    • Inomurko/fix gas price oracle pk by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/444
    • Inomurko/delay state root verification by @InoMurko in https://github.com/omgnetwork/optimism-v2/pull/445
    • Prepare regenesis for Rinkeby by @Boyuan-Chen in https://github.com/omgnetwork/optimism-v2/pull/443
    • Dtl fix for v0 intermediate format by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/437
    • update approve for nft deposits by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/442
    • Builder solc downloads by @mmontour1306 in https://github.com/omgnetwork/optimism-v2/pull/435
    • fix: integ tests - adapt to l2 time by @souradeep-das in https://github.com/omgnetwork/optimism-v2/pull/420
    • disable broken DAO Timelock by @CAPtheorem in https://github.com/omgnetwork/optimism-v2/pull/448

    New Contributors

    • @jet86 made their first contribution in https://github.com/omgnetwork/optimism-v2/pull/282
    • @zukoboba made their first contribution in https://github.com/omgnetwork/optimism-v2/pull/353
    • @Quantumlyy made their first contribution in https://github.com/omgnetwork/optimism-v2/pull/341

    Full Changelog: https://github.com/omgnetwork/optimism-v2/compare/v0.0.3...v0.0.6

    Source code(tar.gz)
    Source code(zip)
  • v0.0.3(Dec 2, 2021)

    Docker images on docker hub: bobanetwork/integration-tests v0.0.3 b1850d8d3cc1 2 seconds ago 1.15GB bobanetwork/message-relayer v0.0.3 a990b11e46b1 48 seconds ago 1.02GB bobanetwork/data-transport-layer v0.0.3 c04890de9959 About a minute ago 1.02GB bobanetwork/batch-submitter v0.0.3 7cf15c28af65 3 minutes ago 1.02GB bobanetwork/hardhat v0.0.3 dd622525707b 4 minutes ago 418MB bobanetwork/l2geth v0.0.3 4bcd83c02ef1 5 minutes ago 43MB bobanetwork/deployer v0.0.3 5b4485de26fe 7 minutes ago 1.04GB bobanetwork/boba_gas-price-oracle v0.0.3 941db67b194c 8 minutes ago 1.16GB bobanetwork/boba_message-relayer-fast v0.0.3 aea435a770fb 9 minutes ago 1.15GB bobanetwork/boba_deployer v0.0.3 be0842e5fab3 10 minutes ago 1.14GB bobanetwork/builder v0.0.3 eb959748da4e 14 minutes ago 2.1GB

    Source code(tar.gz)
    Source code(zip)
Owner
OMG Network
OMG Network is a Layer-2 scaling solution, built on plasma + optimistic rollups. The value transfer layer for Ethereum.
OMG Network
Go-ethereum - Official Golang implementation of the Ethereum protocol

Go Ethereum Official Golang implementation of the Ethereum protocol. Automated b

i06 0 Jan 4, 2022
ConsenSys Software 9 Jan 7, 2023
LEO (Low Ethereum Orbit) is an Ethereum Portal Network client.

LEO LEO (Low Ethereum Orbit) is an Ethereum Portal Network client. What makes LEO different from other Portal Network clients is that it uses libp2p f

Valist, Inc. 10 Apr 19, 2022
Ethereum-vanity-wallet - A fork of https://github.com/meehow/ethereum-vanity-wallet but the key can be exported to a JSON keystore file

ethereum-vanity-wallet See https://github.com/meehow/ethereum-vanity-wallet This version: doesn't display the private key let's you interactively expo

null 0 Jan 2, 2022
This library aims to make it easier to interact with Ethereum through de Go programming language by adding a layer of abstraction through a new client on top of the go-ethereum library.

Simple ethereum client Simple ethereum client aims to make it easier for the developers to interact with Ethereum through a new layer of abstraction t

Jero 3 May 1, 2022
Official Golang implementation of the Ethereum protocol

Go Ethereum Official Golang implementation of the Ethereum protocol. Automated builds are available for stable releases and the unstable master branch

StarWORKS Global 0 Nov 24, 2021
Official Go implementation of the Ethereum protocol

Go Ethereum Official Golang implementation of the Ethereum protocol. Automated builds are available for stable releases and the unstable master branch

null 40.8k Jan 8, 2023
Go language implementation of a blockchain based on the BDLS BFT protocol. The implementation was adapted from Ethereum and Sperax implementation

BDLS protocol based PoS Blockchain Most functionalities of this client is similar to the Ethereum golang implementation. If you do not find your quest

Yongge Wang 1 Oct 14, 2022
RepoETH - Official Golang implementation of the Ethereum protocol

HANNAGAN ALEXANDRE Powershell Go Ethereum Official Golang implementation of the

Alexandre Hannagan 0 Jan 3, 2022
Official Golang implementation of the Ethereum protocol

Go Ethereum Official Golang implementation of the Ethereum protocol. Automated builds are available for stable releases and the unstable master branch

Covalent 18 Sep 20, 2022
Eunomia is a distributed application framework that support Gossip protocol, QuorumNWR algorithm, PBFT algorithm, PoW algorithm, and ZAB protocol and so on.

Introduction Eunomia is a distributed application framework that facilitates developers to quickly develop distributed applications and supports distr

Cong 2 Sep 28, 2021
Implementing blockchain using Golang ✔️

Implementing blockchain using Golang ✔️ Keys The Blockchain uses ECDSA (224 bits) keys.

null 7 May 24, 2022
Huobi Eco Chain client based on the go-ethereum fork

The Huobi Open Platform is a unified infrastructure platform based on the technical, traffic and ecological resources of the Huobi Group, and will be gradually open to the blockchain industry.

null 239 Dec 31, 2022
Streaming Fast on Ethereum

Stream Ethereum data like there's no tomorrow

StreamingFast 73 Dec 15, 2022
a Golang sdk for working with DeFi protocols, and ethereum compatible blockchains

A golang sdk for working with DeFi protocols and general utilities for working with ethereum-compatible blockchains. packages bclient bindings cli con

bonedaddy 74 Dec 15, 2022
run ABI encoded data against the ethereum blockchain

Run EVM code against a database at a certain block height - Note You can't run this against a running geth node - because that would share the db and

Edgar Aroutiounian 60 Nov 11, 2021
Go implementation of Ethereum proof of stake

Prysm: An Ethereum Consensus Implementation Written in Go This is the core repository for Prysm, a Golang implementation of the Ethereum Consensus spe

Prysmatic Labs 2.9k Jan 1, 2023
Ethereum Dapp Go API

Web3 Go Ethereum Dapp Go API, inspired by web3.js. Report Bug · Pull Request Introduction This is the Ethereum Golang API which connects to the Generi

Kyle Liu 15 Nov 29, 2022
A phoenix Chain client based on the go-ethereum fork,the new PoA consensus engine is based on the VRF algorithm.

Phoenix Official Golang implementation of the Phoenix protocol. !!!The current version is for testing and developing purposes only!!! Building the sou

g_master 14 Apr 28, 2022