stackup-bundler

command module
v0.6.0-rc.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2023 License: GPL-3.0 Imports: 1 Imported by: 0

README

GitHub release (latest by date) GitHub Workflow Status (with branch)

Getting started

A modular Go implementation of an ERC-4337 Bundler.

Running an instance

See the Bundler documentation at docs.stackup.sh.

Contributing

Prerequisites

  • Go 1.19 or later
  • Access to a node with debug API enabled for custom tracing.

Setup

# Installs https://github.com/cosmtrek/air for live reloading.
# Runs go mod tidy.
make install-dev

# Generates base .env file.
# All variables in this file are required and should be filled.
# Running this command WILL override current .env file.
make generate-environment

# Parses private key in .env file and prints public key and address.
make fetch-wallet

Run bundler in private mode

Start a local bundler instance:

make dev-private-mode

If you need to reset the embedded database:

# This will delete the default data directory at /tmp/stackup_bundler
make dev-reset-default-data-dir

License

Distributed under the GPL-3.0 License. See LICENSE for more information.

Contact

Feel free to direct any technical related questions to the dev-hub channel in the Stackup Discord.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
pkg
bundler
Package bundler provides the mediator for processing outgoing UserOperation batches to the EntryPoint.
Package bundler provides the mediator for processing outgoing UserOperation batches to the EntryPoint.
client
Package client provides the mediator for processing incoming UserOperations to the bundler.
Package client provides the mediator for processing incoming UserOperations to the bundler.
entrypoint
Package entrypoint provides ABI bindings that are automatically generated by abigen for interacting with the EntryPoint contract.
Package entrypoint provides ABI bindings that are automatically generated by abigen for interacting with the EntryPoint contract.
gas
Package gas implements helper functions for calculating gas parameters based on Ethereum protocol values.
Package gas implements helper functions for calculating gas parameters based on Ethereum protocol values.
jsonrpc
Package jsonrpc implements Gin middleware for handling JSON-RPC requests via HTTP.
Package jsonrpc implements Gin middleware for handling JSON-RPC requests via HTTP.
mempool
Package mempool provides a local representation of all the UserOperations that are known to the bundler which have passed all Client checks and pending action by the Bundler.
Package mempool provides a local representation of all the UserOperations that are known to the bundler which have passed all Client checks and pending action by the Bundler.
modules
Package modules provides standard interfaces for extending the Client and Bundler packages with middleware.
Package modules provides standard interfaces for extending the Client and Bundler packages with middleware.
modules/builder
Package builder implements a module for bundlers to act as MEV searchers and send batches to the EntryPoint via a Block Builder API that supports eth_sendBundle.
Package builder implements a module for bundlers to act as MEV searchers and send batches to the EntryPoint via a Block Builder API that supports eth_sendBundle.
modules/checks
Package checks implements modules for running an array of standard validations for both the Client and Bundler.
Package checks implements modules for running an array of standard validations for both the Client and Bundler.
modules/noop
Package noop implements basic no-operation modules which are used by default for both Client and Bundler.
Package noop implements basic no-operation modules which are used by default for both Client and Bundler.
modules/paymaster
Package paymaster implements modules for reputation scoring and throttling/banning for paymasters as specified in EIP-4337.
Package paymaster implements modules for reputation scoring and throttling/banning for paymasters as specified in EIP-4337.
modules/relay
Package relay implements a module for private bundlers to send batches to the EntryPoint through regular EOA transactions.
Package relay implements a module for private bundlers to send batches to the EntryPoint through regular EOA transactions.
signer
Package signer holds EOA private keys to can sign regular Ethereum transactions.
Package signer holds EOA private keys to can sign regular Ethereum transactions.
tracer
Package tracer provides custom tracing capabilities to comply with EIP-4337 specifications for forbidden opcodes.
Package tracer provides custom tracing capabilities to comply with EIP-4337 specifications for forbidden opcodes.
userop
Package userop provides the base transaction object used throughout the stackup-bundler.
Package userop provides the base transaction object used throughout the stackup-bundler.
scripts
genenv
Use this for generating a new private key saved to .privatekey Implementation from https://goethereumbook.org/en/wallet-generate/
Use this for generating a new private key saved to .privatekey Implementation from https://goethereumbook.org/en/wallet-generate/

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL