Code Monkey home page Code Monkey logo

chainbridge-core's Introduction

Chainbridge Core

discord docs go

 

Chainbridge-Core was born from and built to improve the maintainability and modularity of the existing version of ChainBridge. The fundamental distinction between the two is that Chainbridge-Core is more of a framework rather than a stand-alone application.

 

Project still in deep beta

 

Table of Contents

  1. Installation
  2. Usage
  3. Local Setup
  4. Contributing

Installation

Refer to the installation guide for assistance with installing the ChainBridge binary.

Usage

Since ChainBridge-Core is a library it will require writing some code to get it running.

You can find some examples here.

The deployment scripts of this version uses the V2.1.3 solidity scripts from https://github.com/ChainSafe/sygma-solidity/tree/v2.1.3

 

Local Setup

This section allows developers with a way to quickly and with minimal effort stand-up a local development environment in order to test out functionality of the ChainBridge.

Example

The example developer setup can be run with the make example command which will create a 3 relayer setup with 2 EVM networks with already preconfigured ERC20, ERC721 and Generic handlers and appropriate assets.

^ this command will execute a shell script that contains instructions for running two EVM chains via Docker (docker-compose). Note: this entire process will likely take a few minutes to run.

 

You can also review our Local Setup Guide for a more detailed example of setting up a local development environment manually.

 

Contributing

Chainbridge-core is a open project and welcomes contributions of all kinds: code, docs, and more. If you wish to submit more complex changes, please check up with the core devs first on our Discord Server (look for CHAINBRIDGE category) or submit an issue on the repo to ensure those changes are in line with the general philoshophy of the project or get some early feedback.

When implementing a change:

  1. Adhere to the standard Go formatting guidelines, e.g. Effective Go. Run go fmt.
  2. Stick to the idioms and patterns used in the codebase. Familiar-looking code has a higher chance of being accepted than eerie code. Pay attention to commonly used variable and parameter names, avoidance of naked returns, error handling patterns, etc.
  3. Comments: follow the advice on the Commentary section of Effective Go.
  4. Minimize code churn. Modify only what is strictly necessary. Well-encapsulated changesets will get a quicker response from maintainers.
  5. Lint your code with golangci-lint (CI will reject your PR if unlinted).
  6. Add tests.
  7. Title the PR in a meaningful way and describe the rationale and the thought process in the PR description.
  8. Write clean, thoughtful, and detailed commit messages.

If change entails an update that needs to be documented, please submit a PR to chainbridge-docs repo.

Submiting a PR

Fork the repository, make changes and open a PR to the main branch of the repo. Pull requests must be cleanly rebased on top of main and changes require at least 2 PR approvals for them to be merged.

Reporting an issue

A great way to contribute to the project is to send a detailed report when you encounter an issue. We always appreciate a well-written, thorough bug report, and will thank you for it!

When reporting issues, always include:

  • chainbridge-core version
  • modules used
  • logs (don't forget to remove sensitive data)
  • tx hashes related to issue (if applicable)
  • steps required to reproduce the problem

Putting large logs into a gist will be appreciated.

 

ChainSafe Security Policy

Reporting a Security Bug

We take all security issues seriously, if you believe you have found a security issue within a ChainSafe project please notify us immediately. If an issue is confirmed, we will take all necessary precautions to ensure a statement and patch release is made in a timely manner.

Please email us a description of the flaw and any related information (e.g. reproduction steps, version) to security at chainsafe dot io.

License

GNU Lesser General Public License v3.0

chainbridge-core's People

Contributors

axvn avatar kevingzhang avatar lampardnguyen234 avatar makmuftic avatar mpetrun5 avatar nmlinaric avatar p1sar avatar simone1999 avatar tcar121293 avatar vezenovm avatar wainola avatar waymobetta avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.