• Stars
    star
    276
  • Rank 148,407 (Top 3 %)
  • Language
    JavaScript
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mono repository of Token Bridge (Oracle, Deployment, Monitor). TokenBridge is an interoperability solution between EVM-based networks for assets/data cross chain transfers

tokenbridge Gitter License: LGPL v3.0

Tokenbridge

Welcome to the POA TokenBridge monorepository!

Please note that this repository as a work in progress.

Overview

The POA TokenBridge allows users to transfer assets between two chains in the Ethereum ecosystem. It is composed of several elements which are contained within this monorepository.

For a complete picture of the POA TokenBridge functionality, it is useful to explore each subrepository.

Structure

Sub-repositories maintained within this monorepo are listed below.

Sub-repository Description
Oracle Responsible for listening to bridge related events and authorizing asset transfers.
Monitor Tool for checking balances and unprocessed events in bridged networks.
Deployment Ansible playbooks for deploying cross-chain bridges.
Oracle-E2E End to end tests for the Oracle
Monitor-E2E End to end tests for the Monitor
Deployment-E2E End to end tests for the Deployment
Commons Interfaces, constants and utilities shared between the sub-repositories
E2E-Commons Common utilities and configuration used in end to end tests
ALM DApp interface tool for AMB Live Monitoring
Burner-wallet-plugin TokenBridge Burner Wallet 2 Plugin

Additionally there are Smart Contracts used to manage bridge validators, collect signatures, and confirm asset relay and disposal.

Available deployments

Launched by POA Launched by 3rd parties
POA20 Bridge Ocean TokenBridge
xDai Bridge Thunder bridge
WETC Bridge Volta TokenBridge & DAI bridge to Volta Chain
Artis Brige
Tenda bridge & xDai-to-Tenda bridge

Network Definitions

Bridging occurs between two networks.

  • Home - or Native - is a network with fast and inexpensive operations. All bridge operations to collect validator confirmations are performed on this side of the bridge.

  • Foreign can be any chain; generally it refers to the Ethereum mainnet.

Operational Modes

The POA TokenBridge provides four operational modes:

  • ERC20-to-Native: Pre-existing tokens in the Foreign network are locked and coins are minted in the Home network. In this mode, the Home network consensus engine invokes Parity's Block Reward contract to mint coins per the bridge contract request. More Information: xDai Chain
  • Arbitrary-Message: Transfer arbitrary data between two networks as so the data could be interpreted as an arbitrary contract method invocation.

Initializing the monorepository

Clone the repository:

git clone https://github.com/poanetwork/tokenbridge

If there is no need to build docker images for the TokenBridge components (oracle, monitor), initialize submodules, install dependencies, compile the Smart Contracts:

yarn initialize

Then refer to the corresponding README files to get information about particular TokenBridge component.

Linting

Running linter for all JS projects:

yarn lint

Tests

Running tests for all projects:

yarn test

Additionally there are end-to-end tests for Oracle and Monitor.

For details on building, running and developing please refer to respective READMEs in sub-repositories.

Building, running and deploying

Please refer to the instructions in sub-directories. Configuration details are available here.

Contributing

See the CONTRIBUTING document for contribution, testing and pull request protocol.

License

This project is licensed under the GNU Lesser General Public License v3.0. See the LICENSE file for details.

References

More Repositories

1

tokenbridge-contracts

Smart contracts for TokenBridge
JavaScript
228
star
2

token-bridge

Oracle service for TokenBridge. TB is an interoperability solution between Ethereum networks for native to ERC20 and ERC20 to ERC20 cross chain transfers
JavaScript
109
star
3

poa-bridge

POA <-> Ethereum bridge for self transfers of POA native token to POA20 (ERC20 representation). Not supported. Use TokenBridge instead
Rust
80
star
4

omnibridge-ui

OmniBirdge UI is a web application interacting with OmniBridge FT and AMB contracts to transfer ERC20/ERC677 tokens between EVM-based blockchains
JavaScript
76
star
5

bridge-ui

UI for TokenBridge, an interoperability solution between Ethereum networks for native and ERC tokens
JavaScript
41
star
6

eth-to-bnc-bridge

The bridge is able to transfer an ERC20 tokens on an EVM-based chain to BEP2 to the Binance Chain and vice versa.
JavaScript
25
star
7

trustless-bridge-demo

Solidity
21
star
8

omnibridge

Fungible Tokens OmniBridge contracts are an extension for Arbitrary Message Bridge to transfer ERC20/ERC677 tokens between EVM-based blockchains
JavaScript
15
star
9

cryptokitties-xdai-demo

Cut version of cryptokitties contracts for demonstration of Ethereum Mainnet to xDai bridge
Solidity
12
star
10

bridge-monitor

Monitoring tool for TokenBridge
JavaScript
12
star
11

omnibridge-nft

Non-fungible Tokens OmniBridge contracts are an extension for Arbitrary Message Bridge to transfer ERC721/ERC1155 tokens between EVM-based blockchains
JavaScript
7
star
12

omnibridge-nft-ui

OmniBirdge NFT UI is a web application interacting with OmniBridge FT and AMB contracts to transfer ERC721/ERC1155 tokens between EVM-based blockchains
JavaScript
4
star
13

bridge-e2e

End to end tests for NodeJS Bridge
JavaScript
3
star
14

tokenbridge-monitor

Go
2
star
15

bridge-faucet

Simple python-service to reward users for OmniBridge transfers
Python
2
star
16

amb-mediators

Smart contracts for AMB Mediators
JavaScript
1
star
17

interest-fetcher-contract

Solidity
1
star
18

tokenbridge-burner-wallet-plugin

TokenBridge Burner Wallet 2 Plugin
TypeScript
1
star