GithubHelp home page GithubHelp logo

linkdrone / silius Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yanoctavian/silius

0.0 0.0 0.0 886 KB

ERC-4337 (Account Abstraction) - modular and efficient bundler implementation in Rust.

Home Page: http://silius.rs/

License: Apache License 2.0

Shell 0.25% Rust 98.62% Makefile 0.65% Dockerfile 0.47%

silius's Introduction

Silius

Silius - ERC-4337 (Account Abstraction) bundler implementation in Rust.

Stable Diffusion prompt: ethereum bundler account abstraction rust vector logo

For more information: https://hackmd.io/@Vid201/aa-bundler-rust

This project is still under active development.

Prerequisites

Rust version: 1.70

  1. libclang, libclang-dev on Debian/Ubuntu.
  2. Ethereum execution client JSON-RPC API with enabled debug_traceCall. For production, you can use Geth or Erigon. For testing, we are using Geth dev mode; so you need to install Geth for running tests.
  3. solc >=0.8.12.
  4. cargo-sort and cargo-udeps.

How to run?

Set up third-party dependencies (ERC-4337 smart contracts and bundler tests):

make fetch-thirdparty
make setup-thirdparty

Create wallet for bundler:

cargo run --release --bin create-wallet -- --output-path ${HOME}/.silius --chain-id 5

Run bundler (with user operation pool and JSON-RPC API):

cargo run --release -- --eth-client-address http://127.0.0.1:8545 --mnemonic-file ${HOME}/.silius/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789

Run only user operation pool:

cargo run --release --bin silius-uopool -- --eth-client-address http://127.0.0.1:8545 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789

Run only JSON-RPC API:

cargo run --release --bin silius-rpc

Supported networks

Bundler was tested on the following networks:

Chain Mainnet Testnet
Ethereum ๐Ÿ”œ ๐Ÿ”œ (Goerli), โœ”๏ธ (Sepolia)
Polygon PoS ๐Ÿ”œ โœ”๏ธ (Mumbai)

Supported entry point

The address of the entry point smart contract is the same on all EVM networks.

Address Commit Audited
0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 9b5f2e4 April 2023

Examples

To get started, check the examples here. More examples will be added in the future.

Contributing

Thank you for showing interest in contributing to the project!

There is a contributing guide to help get you started.

There are some additional prerequisites for testing:

  1. geth

Before making a PR, make sure to run the following commands:

make format
make lint
make test

Official bundler spec tests developed by the eth-infinitism team are also included in the repo's CI pipeline. You can find more information on how to run tests here. Make sure your contribution doesn't break the tests!

Contact

The best place for the discussion is the dedicated Telegram group.

Authors

Licenses

This project is dual-licensed under Apache 2.0 and MIT terms:

Donations

Silius is an open-source project and a public good. If you want to help the project, you can send donations of any size via:

  • Ethereum address: 0x7cB801446AC4f5EA8f7333EFc58ab787eB611558

Acknowledgements

silius's People

Contributors

vid201 avatar zsluedem avatar yanoctavian avatar da-bao-jian 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.