Giter Site home page Giter Site logo

alireza-gsh / aurora-engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aurora-is-near/aurora-engine

0.0 0.0 0.0 9.26 MB

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

Home Page: https://doc.aurora.dev/develop/compat/evm

Rust 96.80% Makefile 0.36% Solidity 2.38% JavaScript 0.46%

aurora-engine's Introduction

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 Version
Mainnet aurora 1313161554 2.4.0
Testnet aurora 1313161555 2.5.1
Local aurora.test.near 1313161556 2.5.1

Prerequisites

Prerequisites for Building

  • Rust nightly (2021-03-25) with the WebAssembly toolchain
  • GNU Make (3.81+)
rustup install nightly-2021-03-25
rustup target add wasm32-unknown-unknown --toolchain nightly-2021-03-25

Prerequisites for Development

  • Node.js (v14+)

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 the EVM binary

make release  # produces mainnet-release.wasm (300+ KiB)
make -B mainnet  # produces Mainnet build
make -B testnet  # produces Testnet build

make debug    # produces mainnet-debug.wasm (1+ MiB), which includes symbols
make -B mainnet-debug # produces Mainnet debug build
make -B testnet-debug # produces Testnet debug build

Running unit & integration tests

make check

Deployment

Downloading the latest EVM release

wget https://github.com/aurora-is-near/aurora-engine/releases/download/latest/mainnet-release.wasm

Installing the Aurora CLI tool

npm install -g aurora-is-near/aurora-cli

Deploying the EVM with the CLI

export NEAR_ENV=local
near delete aurora.test.near test.near  # if needed
near create-account aurora.test.near --master-account=test.near --initial-balance 1000000
aurora install --chain 1313161556 --owner test.near mainnet-release.wasm

Deploying the EVM without the CLI

export NEAR_ENV=local
near delete aurora.test.near test.near  # if needed
near create-account aurora.test.near --master-account=test.near --initial-balance 1000000
near deploy --account-id=aurora.test.near --wasm-file=mainnet-release.wasm
aurora initialize --chain 1313161556 --owner test.near

Usage

Examining deployed EVM metadata

aurora get-version
aurora get-owner
aurora get-bridge-prover
aurora get-chain-id

Deploying EVM contract bytecode

aurora deploy-code @contract.bytecode
aurora deploy-code 0x600060005560648060106000396000f360e060020a6000350480638ada066e146028578063d09de08a1460365780632baeceb714604d57005b5060005460005260206000f3005b5060016000540160005560005460005260206000f3005b5060016000540360005560005460005260206000f300

Examining EVM contract state

$ aurora encode-address test.near
0xCBdA96B3F2B8eb962f97AE50C3852CA976740e2B
aurora get-nonce 0xCBdA96B3F2B8eb962f97AE50C3852CA976740e2B
aurora get-balance 0xCBdA96B3F2B8eb962f97AE50C3852CA976740e2B
aurora get-code 0xFc481F4037887e10708552c0D7563Ec6858640d6
aurora get-storage-at 0xFc481F4037887e10708552c0D7563Ec6858640d6 0

Calling an EVM contract read-only

$ aurora encode-address test.near
0xCBdA96B3F2B8eb962f97AE50C3852CA976740e2B
aurora view --sender 0xCBdA96B3F2B8eb962f97AE50C3852CA976740e2B 0xFc481F4037887e10708552c0D7563Ec6858640d6 0x8ada066e  # getCounter()
aurora view --sender 0xCBdA96B3F2B8eb962f97AE50C3852CA976740e2B 0xFc481F4037887e10708552c0D7563Ec6858640d6 0xd09de08a  # increment()
aurora view --sender 0xCBdA96B3F2B8eb962f97AE50C3852CA976740e2B 0xFc481F4037887e10708552c0D7563Ec6858640d6 0x2baeceb7  # decrement()

Calling an EVM contract mutatively

aurora call 0xFc481F4037887e10708552c0D7563Ec6858640d6 0xd09de08a  # increment()
aurora call 0xFc481F4037887e10708552c0D7563Ec6858640d6 0x2baeceb7  # decrement()

Debugging

Inspecting EVM storage state

near state aurora.test.near
aurora dump-storage

License

aurora-engine has multiple licenses:

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

aurora-engine's People

Contributors

artob avatar birchmd avatar evgenykuzyakov avatar frankbraun avatar ilblackdragon avatar joshuajbouw avatar matklad avatar mfornet avatar mrlsd avatar sept-en 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.