celo

package module
v0.0.0-...-8d384ed Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2022 License: LGPL-3.0 Imports: 12 Imported by: 0

README

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetupDefaultCeloChain

func SetupDefaultCeloChain(rawConfig map[string]interface{}, txFabric calls.TxFabric, blockstore *store.BlockStore) (*evm.EVMChain, error)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL