• Stars
    star
    329
  • Rank 128,030 (Top 3 %)
  • Language
    Rust
  • Created over 3 years ago
  • Updated about 1 month ago

Reviews

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

Repository Details

⚙️ Aurora Engine implements an Ethereum Virtual Machine (EVM) on the NEAR Protocol.

Aurora Engine

Project license Discord Lints Tests Builds

Aurora Engine implements an Ethereum Virtual Machine (EVM) on the NEAR Protocol. See doc.aurora.dev for additional documentation.

Deployments

Network Contract ID Chain ID
Mainnet aurora 1313161554
Testnet aurora 1313161555
Local aurora.test.near 1313161556

Development

Prerequisites

  • Node.js (v14+)
  • cargo-make
cargo install --force cargo-make

Prerequisites for Development

  • Node.js (v14+)
  • Docker
  • cargo-make

Development

Branches

  • master is the current stable branch. It must be ready, anytime, to deployed on chain at a moment's notice.

  • develop is our bleeding-edge development branch. In general, kindly target all pull requests to this branch.

Building & Make Commands

Every task with cargo make must have a --profile argument.

The current available profiles are:

  • mainnet, suitable for mainnet.
  • testnet, suitable for testnet.
  • local, suitable for local development.
  • custom, suitable for custom environments, see note below.

A custom environment may be required depending on the circumstances. This can be created in the .env folder as custom.env following the structure of the other .env files. See bin/local-custom.env for more details.

Every make most follow the following pattern, though --profile is not required for all such as cleanup:

cargo make [--profile <profile>] <task>

Building the engine and contracts

To build the binaries there are a few commands to do such following the format.

The current available build tasks are:

  • default, does not need to be specified, runs build. Requires a --profile argument.
  • build, builds all engine smart contract and produces the aurora-<profile>-test.wasm in the bin folder. Requires build-contracts. Requires a --profile argument.
  • build-test, builds all the below using test features. Requires a --profile argument.
  • build-contracts, builds all the ETH contracts.
  • build-docker, builds the aurora-<profile>-test.wasm in the bin folder using docker build environment. The purpose of this task is to produce reproducible binaries.

For example, the following will build the mainnet debug binary:

cargo make --profile mainnet build

Verifying binary hash

To verify that a deployed binary matches the source code, you may want build it reproducibly and then check that their hashes match. The motivation behind that is to prevent malicious code from being deployed.

Run these commands to produce the binary hash:

cargo make --profile <profile> build-docker
shasum -a 256 bin/aurora-<profile>.wasm

Running unit & integration tests

To run tests, there are a few cargo make tasks we can run:

  • test, tests the whole cargo workspace and ETH contracts. Requires a --profile argument.
  • test-workspace, tests only the cargo workspace.
  • test-contracts, tests only the contracts.

For example, the following will test the whole workspace and ETH contracts:

cargo make --profile mainnet test 

Running checks & lints

To run lints and checks, the following tasks are available:

  • check, checks the format, clippy and ETH contracts.
  • check-contracts, runs yarn lints on the ETH contracts.
  • check-fmt, checks the workspace Rust format only.
  • check-clippy, checks the Rust workspace with clippy only.

For example the following command will run the checks. profile is not required here:

cargo make check

Cleanup

To clean up the workspace, the following tasks are available:

  • clean, cleans all built binaries and ETH contracts.
  • clean-cargo, cleans with cargo.
  • clean-contracts, cleans the ETH contracts.
  • clean-bin, cleans the binaries.

Additionally, there is also but not included in the clean task:

  • sweep, sweeps the set amount of days in the ENV, default at 30 days.

For example, the following command will clean everything. profile is not required:

cargo make clean

License

aurora-engine has multiple licenses:

  • all crates except engine-test has CCO-1.0 license
  • engine-test has GPL-v3 license

More Repositories

1

rainbow-bridge

🌈🌈🌈 NEAR <> Ethereum Decentralized Bridge
Rust
319
star
2

rainbow-bridge-frontend

🌈 Send ERC20 tokens from Ethereum to NEAR
HTML
69
star
3

hardhat-storage-layout

Generate Ethereum smart contract storage layout with Hardhat.
TypeScript
63
star
4

rainbow-token-connector

ERC-20/NEP-141 Token Connector for Rainbow Bridge
Rust
62
star
5

aurora-cli

Aurora Engine command-line interface (CLI).
JavaScript
45
star
6

aurora.js

[DEPRECATED] Aurora Engine client library for JavaScript.
TypeScript
38
star
7

eth-connector

A temporary repo for ETH connector to be used by EVM
JavaScript
36
star
8

doc.aurora.dev

The source repository for the Aurora documentation website.
JavaScript
34
star
9

aurora-contracts-sdk

Rust and Solidity SDK to interact with Aurora.
Rust
30
star
10

near-web3-provider

[Deprecated] Web3 NEAR Provider
JavaScript
27
star
11

evm-bully

Stress testing and benchmarking tool for the NEAR EVM
Go
27
star
12

aurora-relayer

[DEPRECATED] Web3-compatible relayer server for Aurora.
TypeScript
26
star
13

partner-relayer-deploy

Deploy NEAR and Aurora Relayer with up-to-date data, easily.
Shell
25
star
14

evm2near

evm2near compiles Solidity contracts into NEAR WebAssembly contracts.
Rust
25
star
15

rainbow-bridge-client

Monorepo containing Aurora-maintained libraries for using the Rainbow Bridge
TypeScript
25
star
16

near-plugins

Implementation of common patterns used for NEAR smart contracts.
Rust
24
star
17

bridge-assets

Bridge assets info&metadata repository
Python
23
star
18

aurora-examples

A boilerplate for sample DApps/Ethereum contracts on Aurora.
JavaScript
20
star
19

relayer2-public

Web3-compatible relayer server for Aurora.
Go
15
star
20

aurora-cli-rs

Command-line tool for interacting with the Aurora Engine
Rust
14
star
21

borealis-engine-lib

Rust
11
star
22

near-erc20-connector

A connector to Rainbow Bridge that allows sending $NEAR to Ethereum as an ERC-20 token (eNEAR)
Rust
11
star
23

aurora-forwarder-contracts

Smart contracts for the Forwarder project
Rust
10
star
24

backstage-plugin-blockchainradar

Discover and manage contracts, multisigs and their access control policies on various blockchains.
TypeScript
6
star
25

aurora-staking-contracts

Aurora staking contracts
TypeScript
6
star
26

near-api-go

Go library to interact with NEAR Protocol via RPC API
Go
6
star
27

aurora-eth-connector

Aurora Eth Connector contract implementation based on NEP-141 for Aurora Engine contract
Rust
6
star
28

aurora-workspace

Aurora Workspaces library for the Aurora Engine contract based on NEAR Protocol
Rust
6
star
29

rainbow-non-fungible-token-connector

5
star
30

standalone-rpc

Standalone RPC node for Aurora
Shell
5
star
31

bridge-analytics

[DEPRECATED] Bridge-analytics utilities
JavaScript
4
star
32

hardhat-aurora

Hardhat plugin for Aurora.
4
star
33

remaphore

Admin tool employing NATS to coordinate processes on distributed infrastructure.
Go
4
star
34

aurora.go

Aurora Engine client for Go
4
star
35

bridge-metadata

JavaScript
3
star
36

backstage-entities

Handlebars
2
star
37

borealis-block-finder

Find blocks based on properties values
Rust
2
star
38

aurora-testing

Integration test suite for the Aurora stack.
2
star
39

aurora-engine-migration-tool

Aurora Engine migration tool set
Rust
2
star
40

aurora-staking

The Aurora staking pool which generates rewards for those that lock their AURORA.
2
star
41

aurora-utils

Reusable code for go projects
Go
2
star
42

bounties

Bounty program for Aurora Ecosystem
2
star
43

native-erc20-connector

Connect native Aurora ERC-20 tokens with NEAR
Rust
2
star
44

azul-app

TypeScript
2
star
45

evm-relayer

Processes incoming metatransactions, sending them to the NEAR EVM
JavaScript
2
star
46

AIPs

Aurora Improvement Proposals repository
2
star
47

btc-light-client-contract

Bitcoin light client implementation for Near Protocol
Rust
2
star
48

fast-bridge-protocol

Rust
2
star
49

aurora-relayer-dumps

2
star
50

nats-prober

NATS request/response prober
Go
1
star
51

bridge-cli

CLI application to interact with rainbow bridge.
TypeScript
1
star
52

aurora-engine-build

Dockerized build for aurora-engine
Dockerfile
1
star
53

tarserv

Tarserv serves streaming tar files from filesystem snapshots.
Go
1
star
54

.github

GitHub configuration for all Aurora repositories.
1
star
55

aurora-faucet

Faucet web application for the Aurora TestNet and BetaNet.
1
star
56

aurora-plus-staking-graph

TypeScript
1
star
57

sshaclsrv

SSH ACL server.
Go
1
star
58

aurora-press-kit

Aurora press kit.
1
star
59

aurora-relayer-indexer

Aurora relayer indexer
Go
1
star
60

backstage-blockchain-actions

A suite of Backstage workflows for Github Actions
TypeScript
1
star
61

aurora-dao-ui

Aurora DAO user interface
JavaScript
1
star
62

relayer2-base

Aurora Go library providing common basis for public and private relayer implementations
Go
1
star
63

fast-bridge-common

Rust
1
star
64

near-rpc-speedup

This repository provides a guide on how to set up and deploy the near-rpc-speedup project, which enhances the efficiency of NEAR protocol RPC nodes through caching. It includes step-by-step instructions for deploying two critical services using Docker and docker-compose
Shell
1
star