Skip to content

ChainSafe/chainbridge-celo-module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chainbridge celo module

discord

Sygma celo module is the part of Sygma-core framework. This module brings support of celo compatible client module.

Project still in deep beta

Table of Contents

  1. Installation
  2. Usage
  3. Differences Between EVM and Celo

Installation

Refer to installation guide for assistance in installing.

Usage

Module should be used along with core framework.

Since chainbridge-celo-module is a package it will require writing some extra code to get it running alongside chainbridge-core. Here you can find some examples Example

Differences Between EVM and Celo

Though Celo is an EVM-compatible chain, it deviates in its implementation of the original Ethereum specifications, and therefore is deserving of its own separate module.

The differences alluded to above in how Celo constructs transactions versus those found within Ethereum can be viewed below by taking a look at the Message structs in both implementations.

Ethereum Message Struct

Here you will find fields relating to the most recent London hardfork (EIP-1559), most notably gasFeeCap and gasTipCap.

Message {
   from:       from,
   to:         to,
   nonce:      nonce,
   amount:     amount,
   gasLimit:   gasLimit,
   gasPrice:   gasPrice,
   gasFeeCap:  gasFeeCap,
   gasTipCap:  gasTipCap,
   data:       data,
   accessList: accessList,
   isFake:     isFake,
}

Celo Message Struct

In Celo's struct you will notice that there are additional fields added for feeCurrency, gatewayFeeRecipient and gatewayFee. You may also notice the ethCompatible field, a boolean value we added in order to quickly determine whether the message is Ethereum compatible or not, ie, that feeCurrency, gatewayFeeRecipient and gatewayFee are omitted.

Message {
   from:                from,
   to:                  to,
   nonce:               nonce,
   amount:              amount,
   gasLimit:            gasLimit,
   gasPrice:            gasPrice,
   feeCurrency:         feeCurrency,         // Celo-specific
   gatewayFeeRecipient: gatewayFeeRecipient, // Celo-specific
   gatewayFee:          gatewayFee,          // Celo-specific
   data:                data,
   ethCompatible:       ethCompatible,       // Bool to check presence of: feeCurrency, gatewayFeeRecipient, gatewayFee
   checkNonce:          checkNonce,
}

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages