An easy tool to apply transactions to the current EVM state. Optimized for MEV.

sibyl

A more embedded version of fxfactorial/run-evm-code. This tool makes it easy to apply transactions to the current EVM state. Call it a transaction simulator or what not.

Usage

// Create a new simulator using geth chaindata.
simulator, err := sybil.NewGethSimulator("geth/chaindata")
if err != nil {
    log.Panic(err)
}

// Fork to a specified block number
err = simulator.Fork(blockNumber)
if err != nil {
    log.Panic(err)
}

// Simulate a static call.
ret, err := simulator.StaticCall(sender, to, input, gas)
if err != nil {
    log.Panic(err)
}

fmt.Println(hexutil.Encode(result))
Similar Resources

Prototype to predict Ethereum transactions' access lists

predict_al Prototype to predict Ethereum transactions' access lists. The project comes from CDAP cohort-one. The current design is to use a simplified

Sep 18, 2022

Slides about IOTA transactions, validation and consensus

Slides about IOTA transactions, validation and consensus

IOTA Donations: NJNCOKJOE9SMCYTSBZVTGWMAABPBYELV9SBPUYLKWSTCXQQZDUWHTFLTVKKRBBWSZKPDMNQALJMJX9CG9KAMOJXQVW IOTA Transactions, Confirmation and Consens

Oct 14, 2022

Dijetsnetgo: a blockchains platform with high throughput, and blazing fast transactions

Dijetsnetgo: a blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high

Jan 18, 2022

Signature-server - stores transaction blobs and uses predefined secret key to sign and verify those transactions

Signature Server Signature server stores transaction blobs and uses predefined s

Feb 14, 2022

A simple program able to listen to the pending transactions of the Ethereum mempool. Written in Go.

eth-mempool-listener-go A simple program able to listen to the pending transactions of the Ethereum mempool. How does it work ? It creates a set of cl

Dec 26, 2022

Go implementation of BLAKE2 (b) cryptographic hash function (optimized for 64-bit platforms).

Go implementation of BLAKE2b collision-resistant cryptographic hash function created by Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn, an

Jul 11, 2022

Tendermint Core is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Tendermint Core is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Tendermint Core is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine - written in any programming language - and securely replicates it on many machines.

Sep 8, 2022

Tendermint Core - A Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Tendermint Core - A Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Tendermint Core - A Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine

Jan 25, 2022
Comments
  • Can I NewGethSimulator from a running geth node ?

    Can I NewGethSimulator from a running geth node ?

    There is a bsc mainnet fullnode on my machine. Now if I run the code below:

    simulator, err := sibyl.NewGethSimulator("/path/to/geth/chaindata")
    	if err != nil {
    		log.Panic(err)
    	}
    

    I got error:

    INFO [02-09|06:47:26.328] Allocated cache and file handles         database=/path/to/geth/chaindata
    cache=48.00MiB handles=48 readonly=true
    2022/02/09 06:47:26 resource temporarily unavailable
    panic: resource temporarily unavailable
    

    How to fix it ?

    thx!

  • Cannot open database for a running node

    Cannot open database for a running node

    Hi, thanks for sharing this cool code. This is the same as I have tried before, but it runs into the same issue that I have with my own code which is that when the geth node is running it is not possible to open the DB:

    INFO [05-17|15:09:31.613] Allocated cache and file handles database=/home/user/node/geth/chaindata cache=48.00MiB handles=48 readonly=true 2022/05/17 15:09:31 resource temporarily unavailable panic: resource temporarily unavailable

    Is there anything I'm missing here?

Related tags
Moeing chain is an EVM&Web3 compatible sidechain for Bitcoin Cash

Full node client of smartBCH This repository contains the code of the full node client of smartBCH, an EVM&Web3 compatible sidechain for Bitcoin Cash.

Nov 29, 2022
Akroma GO client - Akroma is an EVM based application development platform (smart-contracts).

Akroma Akroma is an EVM based application development platform (smart-contracts). Akroma will utilize a Masternode system, and build out an Oracle pla

Dec 11, 2022
Go-chain - EVM-compatible chain secured by the Lachesis consensus algorithm

ICICB galaxy EVM-compatible chain secured by the Lachesis consensus algorithm. B

Jun 8, 2022
Signing, Keystore and RLP encoding utilities for EVM / Ethereum / secp256k1 based blockchains

Signing, Keystore and RLP encoding utilities for EVM / Ethereum / secp256k1 based blockchains. Written in Go with an enterprise friendly Apache 2.0 license, and a runtime JSON/RPC proxy server. Part of the Hyperledger FireFly project

Aug 9, 2022
Gogst - This lib will tell you what is current market status of your stock

gogst (Golang global stock time) This lib will tell you what is current market s

Jan 28, 2022
Coinbase - You can use this to retrieve the current price for an crypto currency

whats-this You can use this to retrieve the current price for an crypto currency

Sep 29, 2022
Dec 27, 2022
Signer manages Web3 transactions

Signer Website: https://signer-tech41.com Signer is a distributed, highly available, and data center aware solution to connect and configure applicati

Oct 29, 2021
A blockchains platform with high throughput, and blazing fast transactions
A blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high throughput, and blazing fast transactions. Installation Avalanche is

Oct 31, 2021
Flashbots utilities in Go: Blocks & Transactions API, and tools to spot bundle and block irregularities

Utilities for Flashbots Go API client for the mev-blocks API for information about Flashbots blocks and transactions Detect bundle errors: (a) out of

Nov 26, 2022