EVM contract for Aurora.

Overview

Aurora Engine

Project license Discord Lints

Prerequisites

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

Development

Building the contract

make release  # produces release.wasm (300+ KiB)
make debug    # produces debug.wasm (1+ MiB), which includes symbols

Running unit tests

make check

Deployment

Deploying the contract

export NEAR_ENV=local
near delete evm.test.near test.near  # if needed
near create-account evm.test.near --master-account=test.near --initial-balance 100000
near deploy --account-id=evm.test.near --wasm-file=release.wasm

Usage

Calling the contract

near call evm.test.near get_version --account-id evm.test.near
near call evm.test.near get_chain_id --account-id evm.test.near

Debugging

Inspecting the contract state

near state evm.test.near
http post http://localhost:3030 jsonrpc=2.0 id=1 method=query params:='{"request_type": "view_state", "account_id": "evm.test.near", "prefix_base64": "", "finality": "final"}'

If you have Ruby installed, get more useful and readable output as follows:

rake dump
Comments
  • Unable to call write function using Ether JS on localnet due to different key format.

    Unable to call write function using Ether JS on localnet due to different key format.

    I have setup Aurora Engine on NEAR localnet and Aurora Relayer for localnet, I deploy ERC-20 contract using bytecode on Aurora Engine, using same contract address & encoded value of the account name(aurora encode-address) I am able to call read solidity function using this RPC http://localhost:8545 but unable to call write function using Ether Js because Near Private key format is different.

    If I use aurora Testnet RPC using Ether Js I am. able to execute read and write function because I have use Metamask Private Key.

    As for as my understanding this is the issue because Near Secret Key formatted differ from Metamask Private Key.

    How can I get key in Metamask Private Key format from Near Account Private Key, So I can execute read & write function using localnet.

    Thank You

    opened by karangorania 30
  • Aurora Engine Benchmarks

    Aurora Engine Benchmarks

    The Near runtime has the following requirements:

    1. Regardless of what work is done in a transaction (computation, io, etc), Near gas used should always be proportional to the wall clock execution time
    2. This proportionality should be such that 1000 Tgas can be consumed in < 1s (otherwise Near's blocktime can be thrown off)

    The purpose of this PR is to create benchmarks involving the EVM wasm contract to test these requirements hold.

    Wall-clock time is an inherently volatile metric because many factors contribute to it, so results from this should be taken with a grain of salt; though great deviations from expectations should be investigated more closely.

    The EVM contract is executed within the near-vm-runner. This also records the Near gas spent on the computation. The wall clock measurements are done using criterion.

    Two work loads are considered:

    • Transferring eth between two accounts
    • Deploying an eth smart contract (of various sizes)

    Note: these work loads are done as eth transactions sent to the EVM contract, so both also involve checking the validity of the transaction which includes a Keccak256 hash computation and Secp256k1 signature check. (In fact, this is likely the bulk of the work involved).

    Using the timing measurements from criterion and the gas measurements from the near-vm-runner, we can measure the relationship between wall-clock time and gas used.

    Known limitation: all state is kept in memory, so IO time may not be accurately accounted for.

    Closes #31

    C-enhancement 
    opened by birchmd 13
  • EVM tokens deposit & withdraw

    EVM tokens deposit & withdraw

    • ETH accounts deposit
    • ETH accounts withdraw
    • Changed transfers logic
    • Modified FT logic for EVM and NEAR account balance storage
    • Added ETH -> NEAR. NEAR -> ETH transfer
    C-enhancement 
    opened by mrLSD 13
  • Add custom erc20 contract to the EVM.

    Add custom erc20 contract to the EVM.

    To compile the EVM it is required to compile ERC20 first if this change is used. Do this using the following steps:

    cd eth-contracts
    yarn
    yarn compile
    

    This will generate relevant binary in: eth-contracts/res/EvmErc20.bin

    C-enhancement 
    opened by mfornet 10
  • feat: add precompiles

    feat: add precompiles

    Adds precompiles to the aurora engine.

    • [x] identity
    • [x] sha256
    • [x] ripemd
    • [x] modexp
    • [x] alt_bn128_add
    • [x] alt_bn128_mul
    • [x] alt_bn128_pair
    • [x] blake2f
    C-enhancement 
    opened by joshuajbouw 10
  • Random ERR_INCORRECT_NONCE errors

    Random ERR_INCORRECT_NONCE errors

    Hey folks, I see random ERR_INCORRECT_NONCE errors on smart contract calls on mainnet: what could be going wrong?

    (body="{"jsonrpc":"2.0","id":110,"error":{"code":-32000,"message":"ERR_INCORRECT_NONCE","data":{"host":"r005.eastcoast.us.relayer.internal.aurora.dev","cf-ray":"6df3de94020c2548-IAD"}}}", error={"code":-32000, ....

    opened by CodeMocsh 9
  • Implement native erc20 aurora tokens connector

    Implement native erc20 aurora tokens connector

    This pull request is about implementing bridging native aurora erc20 tokens to near's nep141.

    • Implemented EvmErc20Locker.sol contract to lock erc20 tokens which calls ExitToNear Precompile
    • Handle withdraw call from tokens factory contract to unlock locked erc20 tokens. Note: the tokens factory for native aurora tokens is part of rainbow-token-connector repo.

    Sequence description:

    • Init:
    1. Call Aurora::deploy_erc20_locker() to deploy the locker.
    2. Deploy the token factory for native aurora tokens.
    3. Call Aurora::set_native_erc20_factory(factory: AccountId)
    • Deploy nep141 token
    1. Call BridgeTokenFactory::deploy_bridge_token(address: String) only once for new token.
    2. Call BridgeTokenFactory::update_metadata(token: String) to set the metadata.
    • Aurora -> NEAR: Call EvmErc20Locker::lockToken(address ethToken, uint256 amount, bytes memory recipient).

    • NEAR -> Aurora: Call BridgeToken::withdraw(amount: U128, recipient: String)

    C-enhancement P-high A-precompiles A-security A-fungible-token 
    opened by karim-en 9
  • Validate account id everywhere

    Validate account id everywhere

    Check and validate Account ID everywhere - engine and other crates. The main reason to be sure that Account ID is everywhere in the source code correct.

    Related issue: #180

    C-enhancement 
    opened by mrLSD 9
  • Contract Migration

    Contract Migration

    Universal migration mechanism for storage state. Possible actions:

        // Add field with Value
        Add,
        // Rename key field
        RenameKey,
        // Update value for key field
        UpdateValue,
        // Rename key and update value
        UpdateKeyValue,
        // Remove key field
        Remove,
        // Remove only value for key field
        RemoveValue,
    

    The migration function can be invoked only by the contract owner (for security reasons).

    C-enhancement 
    opened by mrLSD 9
  • Eth-connector: change `total_supply` behaviour. Refactoring.

    Eth-connector: change `total_supply` behaviour. Refactoring.

    This is a follow-up to #133 PR. This is required as that PR contains needed changes so we won't fix tests twice just to make CI pass. Once that PR is merged, the current one needs to be rebased on top of develop branch.

    Following our discussion with @mfornet, we need to change the ft_total_supply meaning to correspond to the NEP-141 standard. Also, some other refactoring was required as many members of the team frequently get confusing with ft_total_supply_near thinking that this represents bridged Near to Aurora (which we don't have) and other similar things.

    Please note, that this PR most likely will require state migration as inner fields of the FungibleToken structure were renamed. However, this should be ok on Mainnet as we don't have an eth-connector available there.

    Changes:

    • ft_total_supply() now represents the amount of nETH (ETH NEP-141 tokens on NEAR) to correspond to NEP-141 standard.
    • FungibleToken: rename total_supply field -> total_eth_supply_on_near.
    • FungibleToken: rename total_supply_eth field -> total_eth_supply_on_aurora.
    • Rename ft_total_supply_near() -> ft_total_eth_supply_on_near().
    • Rename ft_total_supply_eth() -> ft_total_supply_eth_on_near().
    • Rename finish_deposit_near() -> finish_deposit().
    • deposit() method refactoring.
    • Minor refactoring.
    • Fix tests according to changes and refactoring.
    C-enhancement P-critical 
    opened by sept-en 9
  • Implement generational storage with `SELFDESTRUCT` tests

    Implement generational storage with `SELFDESTRUCT` tests

    Check state is removed after selfdestruct is called following this description:

    https://gist.github.com/mfornet/a8ffcedfffd22612e34cf0b3c3f5c9e3

    @joshuajbouw use this test, to check that reset state is working.


    Also add a test (test_self_destruct_with_submit) where function that call selfdestruct is called using engine.submit rather than engine.call and it fails with:

    `Result::unwrap()` on an `Err` value: InconsistentStateError(IntegerOverflow)'
    

    This was found by chance. @birchmd @artob can you take a look at this.

    opened by mfornet 9
  • Bump tokio from 1.21.2 to 1.24.1

    Bump tokio from 1.21.2 to 1.24.1

    Bumps tokio from 1.21.2 to 1.24.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.24.1

    This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#5356)

    #5356: tokio-rs/tokio#5356

    Tokio v1.24.0

    The highlight of this release is the reduction of lock contention for all I/O operations (#5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

    Fixed

    • rt: improve native AtomicU64 support detection (#5284)

    Added

    • rt: add configuration option for max number of I/O events polled from the OS per tick (#5186)
    • rt: add an environment variable for configuring the default number of worker threads per runtime instance (#4250)

    Changed

    • sync: reduce MPSC channel stack usage (#5294)
    • io: reduce lock contention in I/O operations (#5300)
    • fs: speed up read_dir() by chunking operations (#5309)
    • rt: use internal ThreadId implementation (#5329)
    • test: don't auto-advance time when a spawn_blocking task is running (#5115)

    #5186: tokio-rs/tokio#5186 #5294: tokio-rs/tokio#5294 #5284: tokio-rs/tokio#5284 #4250: tokio-rs/tokio#4250 #5300: tokio-rs/tokio#5300 #5329: tokio-rs/tokio#5329 #5115: tokio-rs/tokio#5115 #5309: tokio-rs/tokio#5309

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    ... (truncated)

    Commits
    • 31c7e82 chore: prepare Tokio v1.24.1 (#5357)
    • 8d8db27 tokio: add load and compare_exchange_weak to loom StaticAtomicU64 (#5356)
    • dfe252d chore: prepare Tokio v1.24.0 release (#5353)
    • 21b233f test: bump version of async-stream (#5347)
    • 7299304 Merge branch 'tokio-1.23.x' into master
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    C-dependencies rust 
    opened by dependabot[bot] 0
  • add set_owner method for Transferring a dev key to Aurora DAO

    add set_owner method for Transferring a dev key to Aurora DAO

    Description

    This PR adds a set_owner method from engine to transfer ownership from engine contract to SputnikDAO contract. This will make Aurora Engine operated fully from DAO.

    Performance / NEAR gas cost considerations

    Near gas cost considerations are needed to be tested in aurora-dao-demo.

    Testing

    Run workspaces with the binary which added the method here and Workspace test

    How should this be reviewed

    Review workspace transactions in the test and processes.

    Additional information

    Future extensions would included making a new engine from DAO and controlling new Engine Siloes from Aurora DAO contract.

    opened by hskang9 1
  • Add gst tests

    Add gst tests

    Description

    This PR adds general state test runner for Aurora engine in ethereum general tests.

    Each test is parsed from ethereum/tests repo's json file with type definitions in eth-json-test/src/test_types and the transactions are passed to aurora engine to execute transaction with preset account.

    README of the tests can be found in engine-tests/tests/ethereum_tests/general_state_tests/README.md.

    Performance / NEAR gas cost considerations

    The gas used in each transaction will be logged in each result of the transaction. Aggregation on each test result with gas is planned.

    Testing

    In the root directory of the repo, run

    cargo test --features mainnet-test  --package aurora-engine-tests --lib -- tests::ethereum_tests::general_state_tests::<Test function in `engine-tests/tests/ethereum_tests/general_state_tests`> --nocapture
    

    How should this be reviewed

    • Check if there are any missing general state test files to be included in the test logic
    • Measure speed on each iteration of tests, see if tests can be done concurrently.

    Additional information

    Aurora engine does not show logs when each transaction in the general state test should have one. image

    There is a test that are not passing such as twoOps.json where aurora engine considers a transaction as invalid when ethereum considers it as ok.

    opened by hskang9 0
  • Bump secp256k1 from 0.24.1 to 0.24.2

    Bump secp256k1 from 0.24.1 to 0.24.2

    Bumps secp256k1 from 0.24.1 to 0.24.2.

    Changelog

    Sourced from secp256k1's changelog.

    0.24.2 - 2022-12-05

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    C-dependencies rust 
    opened by dependabot[bot] 0
  • Bump express from 4.17.1 to 4.18.2 in /etc/eth-contracts

    Bump express from 4.17.1 to 4.18.2 in /etc/eth-contracts

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    C-dependencies javascript 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /etc/eth-contracts

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /etc/eth-contracts

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    C-dependencies javascript 
    opened by dependabot[bot] 0
Releases(latest)
Owner
Project Aurora
Project Aurora
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
A tool to help with estimating NEAR gas spent by transactions on Aurora.

Aurora Gas Estimator A tool to help with estimating NEAR gas spent by transactions on Aurora. Building from source Prerequisites Rust GNU Make (3.81+)

Michael Birch 4 Aug 23, 2022
An EVM low-level language that gives full control over the control flow of the smart contract.

Meplang - An EVM low-level language Meplang is a low-level programming language that produces EVM bytecode. It is designed for developers who need ful

MEP 19 Jan 31, 2023
A quick way to decode a contract's transaction data with only the contract address and abi.

tx-decoder A quick way to decode a contract's transaction data with only the contract address and abi. E.g, let tx_data = "0xe70dd2fc00000000000000000

DeGatchi 15 Feb 13, 2023
EVM compatible chain with NPoS/PoC consensus

Reef Chain Reef chain is written in Rust. A basic familiarity with Rust tooling is required. To learn more about Reef chain, please refer to Documenta

Reef Finance 148 Dec 31, 2022
A temporary repo for ETH connector to be used by EVM

ETH connector for Rainbow bridge Definitions bridgedETH - NEP-141 fungible-token representation of ETH inside Near. nETH - native ETH inside Near EVM.

Project Aurora 36 Jul 26, 2022
a frontier based evm compatible chain template

Substrate Frontier Node Template A FRAME-based Substrate node with the Ethereum RPC support, ready for hacking ?? Generation & Upstream This template

zero network 2 Oct 6, 2021
Emerald, the EVM compatible paratime

The Emerald ParaTime This is the Emerald ParaTime, an official EVM-compatible Oasis Protocol Foundation's ParaTime for the Oasis Network built using t

Oasis Protocol Foundation 5 Mar 31, 2022
DeFiChain octopus is a codename research & development for DFIP 2111-B: VOC: Ethereum Virtual Machine (EVM) Support.

DeFiCh/octopus DeFiChain octopus is a codename research & development for DFIP 2111-B: VOC: Ethereum Virtual Machine (EVM) Support . Proposed as a DFI

DeFi Meta Chain 6 Apr 18, 2022
Fiddi is a command line tool that does the boring and complex process of checking and processing/watching transactions on EVM compatible Blockchain.

Fiddi is a command line tool that does the boring and complex process of checking and processing/watching transactions on EVM compatible Blockchain.

Ahmad Abdullahi Adamu 7 Jan 9, 2023
DFIP 2111-B: VOC: Ethereum Virtual Machine (EVM) Support

DeFiCh/metachain is a codename research & development for DFIP 2111-B: VOC: Ethereum Virtual Machine (EVM) Support . Proposed as a DFIP on Nov 2021; D

DeFiChain 19 Dec 6, 2022
Selendra is a multichains interoperable nominated Proof-of-Stake network for developing and running Substrate-based and EVM compatible blockchain applications.

Selendra An interoperable nominated Proof-of-Stake network for developing and running Substrate-based and EVM compatible blockchain applications. Read

Selendra 16 Nov 29, 2022
Parser and test runner for testing compatable common Ethereum full node tests against Polygon Zero's EVM.

EVM Test Parses and runs compatible common Ethereum tests from ethereum/tests against Polygon Zero's EVM. Note: This repo is currently very early in d

Mir Protocol 3 Nov 4, 2022
Minimalistic EVM-compatible chain indexer.

EVM Indexer Minimalistic EVM-compatible blockchain indexer written in rust. This repository contains a program to index helpful information from any E

Kike B 14 Dec 24, 2022
Binding generator for EVM and ink!

Sumi is a binding generator specifically designed for Astar Network ecosystem with XVM in mind. It takes EVM metadata and converts it to an ink! modul

Dmitry 4 Dec 15, 2022
Minimalistic EVM-compatible chain indexer.

EVM Indexer Minimalistic EVM-compatible blockchain indexer written in rust. This repository contains a program to index helpful information from any E

LlamaFolio 11 Dec 15, 2022
Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer. Main motivation: EIP4844blobs.

stress4844 Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer. Main motivation: EIP4844 blobs. ca

Paradigm 50 Jan 4, 2023
Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer

Tiny CLI for submitting large calldata transactions to EVM networks to stress test the networking layer. Main motivation: EIP4844blobs.

Paradigm 50 Jan 4, 2023
Symbolic EVM in Rust (WIP)

Ser Symbolic EVM in Rust Introduction Ser's design is informed by lessons I learned from a previous attempt to build a highly abstract & generalized s

Tannr 8 Jan 31, 2023
A framework for developing EVM-compatible chains

rt-evm A compact development framework for creating EVM-compatible runtimes/chains. Usage Check the example for details. Projects referenced trie, MPT

Rust Util Collections 4 Mar 15, 2023