GithubHelp home page GithubHelp logo

flashbots / mev-inspect-rs Goto Github PK

View Code? Open in Web Editor NEW
536.0 28.0 123.0 1.34 MB

Discover historic Miner Extractable Value (MEV) opportunities

License: MIT License

Rust 97.76% Python 2.24%
ethereum mev rust web3 liquidation arbitrage defi

mev-inspect-rs's Introduction

MEV Inspect

Ethereum MEV Inspector in Rust
Further documentation on mev-inspect-rs available here

Inspectors

  • Curve
  • Balancer
  • Uniswap (& clones)
  • Aave
  • Compound
  • 0x
  • DyDx

Installing

cargo build --release

Running the CLI

Usage: ./target/release/mev-inspect [OPTIONS]

Optional arguments:
  -h, --help
  -r, --reset              clear and re-build the database
  -o, --overwrite          do not skip blocks which already exist
  -u, --url URL            The tracing / archival node's URL (default: http://localhost:8545)
  -c, --cache CACHE        Path to where traces will be cached
  -d, --db-cfg DB-CFG      Database config
  -D, --db-table DB-TABLE  the table of the database (default: mev_inspections)

Available commands:
  tx      inspect a transaction
  blocks  inspect a range of blocks

Running the tests

Tests require postgres installed.

cargo test

mev-inspect-rs's People

Contributors

gakonst avatar guanqun avatar jparyani avatar mattsse avatar obadiaa avatar thegostep avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mev-inspect-rs's Issues

Fix misclassified transactions

Txs below:

tx_hash datetime amount_usd gas_spend_in_usd type address
0x1b1b0e149de4e358a0eadab48125c1b4acf4ad568aac9dc1a27e21817a97240e October 14, 2020, 10:31 AM $497,749.62 $244.45 {trade,arbitrage} 0xfe56a0dbdad44dd14e4d560632cc842c8a13642b
0x203152e6fd3e9c2f8ff2718998127180daac1c01d8ffc3901d5793620aae2a72 January 11, 2021, 10:41 PM $779,922.74 $106.54 {arbitrage} 0x923b167e3026869c15fbcf2e82e4429e4dc97cbb
0x6aab9d1a448736975c102adc628c9d320efc4732fd3a3a9bb5f00265b5447113 October 14, 2020, 4:44 PM $518,697.86 $275.65 {arbitrage,trade} 0xfe56a0dbdad44dd14e4d560632cc842c8a13642b
0xa90968af5eac95c8643f820a6e5760db1b4cbb566e8ef37e92d9efdd160191d2 January 11, 2021, 10:39 PM $572,090.81 $228.21 {trade,arbitrage} 0x770b4c20451fc8183f13ac6db4f166b21e0edc93
0xd242175e58e74c22088b6a4b05585da4a0ec6d52dabd7d7e141a4e008c90dc92 January 11, 2021, 10:40 PM $582,018.08 $169.50 {arbitrage} 0x89653c7156ccc49be0e0b5ab63f2848296bb1a8d
0xe017fb4afc9c407982392851f0c1fd8e14248aaf43ba62650ecdac3fbab77288 October 14, 2020, 3:02 AM $569,385.29 $67.06 {trade,arbitrage} 0xd6fe434afd8a03cf2ad770cc4e0403b262168b0c
0xff93e60267c2021923ea6fc28e860150be4af56bda120f5b4c5e81ccb415340b January 11, 2021, 10:40 PM $635,046.30 $110.42 {arbitrage} 0x5a16552f59ea34e44ec81e58b3817833e9fd5436

Error with Mac Installation

Platform
Darwin BTCs-iMac.local 21.5.0 Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:22 PDT 2022; root:xnu-8020.121.3~4/RELEASE_X86_64 x86_64

Description
Error running cargo build --release within this repo.

error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-m64" "-arch" "x86_64" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.0.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.1.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.10.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.11.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.12.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.13.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.14.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.15.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.2.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.3.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.4.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.5.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.6.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.7.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.8.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.ethers_contract_derive.3e5fdf48-cgu.9.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.22abztbeej3e9lwt.rcgu.o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/ethers_contract_derive-0e3fefc7635ce6f1.3rujs1cb7awoesqn.rcgu.o" "-L" "/Users/btccenternyc/mev-inspect-rs/target/release/deps" "-L" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libethers_contract_abigen-549c7163ff94d228.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libcurl-dd9641284cb954f2.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libsocket2-d3d631deadad345b.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libcurl_sys-0128e437357f9f77.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/liburl-c654b6fb41d0140a.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libidna-7f9a494f646855b7.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libunicode_normalization-079a4682b4ffc3f3.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libtinyvec-398e72a15e88a1d3.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libtinyvec_macros-1e03194989f4cb3a.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libunicode_bidi-556606e3601da147.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libform_urlencoded-fac523a9c0809bea.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libpercent_encoding-2172b3df5402bc48.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libmatches-3fc0cbbae55772c2.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libinflector-d6ce8fe91bdb7cb5.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/liblazy_static-c72c0ebaf2bfafb1.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libregex-421ed231283932b4.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libthread_local-60cf4f220d0f25fc.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libonce_cell-86a355fc9629afbb.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libregex_syntax-93f8928b227e9ac2.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libaho_corasick-e059336fd146171f.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libmemchr-9781facd2e9d4eba.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libethers_core-e48e8bb478c46ce1.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librand-6de8c70c122db7d7.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librand_chacha-2068f08d2d815e2c.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libglob-1da55b3531358bc1.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libethabi_next-cfe34c56b1687fab.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libserde_json-abd5cd715618325a.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libryu-bcd156af2e80d2de.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libitoa-4fb6d863e53e9752.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libanyhow-ac35f998ce7f9a17.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libk256-acbf2d5f798928f5.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libsha3-d17ed1b874f57fe8.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libkeccak-b876bd7759ba6376.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libopaque_debug-03656bc2110a3c5a.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libblock_buffer-de4725930ef94c3e.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libblock_padding-364c1979755831eb.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libecdsa-b19ea300fa5e5d6b.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libhmac-399aa6e02ae07813.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libcrypto_mac-7d2cb09501f7bffd.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libsignature-794c349d5460ddd0.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libelliptic_curve-01302afdb43179b8.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libdigest-0e3359d010176929.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libgroup-fbd5641bccfb4415.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libff-ea5357c7829c0f95.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librand_core-bbd04ca687821c19.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libgetrandom-306cc52ffb040e58.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libbitvec-4330c024559dc202.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libfunty-989cea8a021cb950.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libwyz-a8a267fc20f61b67.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libradium-64c632c0022cb462.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libzeroize-a27583f1678613f3.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libelliptic_curve-1ee7ed1dd80cb858.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libgeneric_array-d956a33e00eb26f3.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libtypenum-874ab895ac58b8e9.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libsubtle-f678dd512d5576ed.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libthiserror-5d6216456c4a71dc.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libethereum_types-c5bf14e95942c28c.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libethbloom-58822fb483f28bc0.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libtiny_keccak-e66ce298ca7df8d6.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libprimitive_types-16a2d7a264a4b7cf.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libimpl_codec-25fba7e2aecd4cd2.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libparity_scale_codec-ddcebd4d1305d88f.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libbyte_slice_cast-d649409344a89c16.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libarrayvec-e9ed3f06fe4e7db3.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libuint-1fc6399d26365f8b.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libcrunchy-75b2c49b74b38494.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libhex-17206ec2ee387c0a.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libimpl_serde-395c07616dc7cf30.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libimpl_rlp-502a4cab9db71124.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librlp-2d1ff8f3303b4e75.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libbytes-68a6d7461fd919ce.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libserde-b8e1cd58f854a87d.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libfixed_hash-edd8570eeb4e6562.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librand-ea7d48c66a951afc.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librand_chacha-bab77ffaf44c5245.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libppv_lite86-78dafd25eee3e0a7.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librand_core-da4bd29931602db4.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libgetrandom-9e5fecd98ff761d1.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/liblibc-1219727945216cae.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libcfg_if-e45b275d0e310807.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/librustc_hex-6010c4436d347c62.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libbyteorder-bcf8ea162f74dce9.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libstatic_assertions-5add4d1a038f75e0.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libsyn-e9875b9c8a6fb051.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libquote-18b5cf1fd3fa7dc8.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libproc_macro2-72eef4d1f8f6f5c1.rlib" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libunicode_xid-e0ec6367cd60d758.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libproc_macro-e654089d7f69e271.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-91f0e69a7ebd6e00.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-36050f194975374d.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libobject-e31c8111c698d163.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-cadc9c82d273f933.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e4462cb73bc7c44d.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libgimli-37047837b923d0f0.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-16528d37a8f3eab3.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-54ab9662306ce2de.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-b493ccc9a0b06169.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-7a86533803c69aa4.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-95847f4481c1d402.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-f9d3de4d6bdbf64b.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-b524a7407cf68766.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-38142aee14781386.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-c27d31671763ac4a.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-7eec28d9e637d9ae.rlib" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-870fc7f82e4bde6f.rlib" "-lcurl" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/btccenternyc/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/Users/btccenternyc/mev-inspect-rs/target/release/deps/libethers_contract_derive-0e3fefc7635ce6f1.dylib" "-Wl,-dead_strip" "-dynamiclib" "-Wl,-dylib" "-nodefaultlibs"
  = note: ld: reference to symbol (which has not been assigned an address) __ZN4curl4init9INIT_CTOR17h1bcbb5138ddf5354E in '__ZN4curl4init17h1b3b2548a803e363E' from /Users/btccenternyc/mev-inspect-rs/target/release/deps/libcurl-dd9641284cb954f2.rlib(curl-dd9641284cb954f2.curl.f6123ffc-cgu.15.rcgu.o) for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: could not compile `ethers-contract-derive` due to previous error
warning: build failed, waiting for other jobs to finish...
error: build failed

Add table for blocks

Add an extra table for storing extra block metadata

  • gaslimit
  • timestamp
  • num txs
  • ...?

Adding Etherscan links column to db

I'd like to do Etherscan linking for all our tx views in MEV-Explore /leaderboard tx tables. Instead of manually linking them, I'm thinking a simpler way to do Etherscan linking is adding a column to the database that reads like:
https://etherscan.io/tx/ + "tx_hash".

In the /leaderboard tx views itself, we'd either take away the "tx_hash" column and just have a 'Transaction' columns instead that reads like the screenshot below or have an extra columns that says Etherscan

image

More accurate ETH price data

We are currently using eth_price table from @epheph which is daily Ethereum price. It'd be great if we could use Ethereum block price data rather than daily data for extra precision.

I believe we can use Uniswap V2 oracle to get ETH price data but that's only from May 18 2020 onwards, we'd ideally like ETH price data per block from Jan 1 2020 onwards.

Tokio-Tungstenite missing branch

Version
Fresh git clone of master branch.

Platform
Linux main 5.9.14-arch1-1

Description

tokio-tungstenite = { git = "https://github.com/dnaka91/tokio-tungstenite", branch = "tokio-1.0" }

This branch no longer exists so cargo build no longer works. Not sure what this was patching.

Develop ways to guide the direction of future inspectors to write and bugs to fix

We currently do not have a clear idea of the coverage of MEV-Inspect. This is a proposition by @pdaian to arrive at a relatively accurate coverage metric. In addition, such a proposal would also guide us which inspectors we write next by focusing on the most profitable behaviours of addresses not already classified.

Proposal

  • We run a "flash boys 2.0" style node that looks for any high price gas replacement transaction OR repeated gas token logs per tx OR spam (multiple txs per block), tags all those accounts as "MEV bots", and labels what percentage of them we categorize.
  • We then manually check the top 100, validate that they are bots, and have metrics for what percentage of that extracted value is covered in our dashboard

Roadblocks
For the gas replacement tx bit we need mempool data - something we do not currently have but may have soon.

Additional context
This effort would be very helpful for MEV Explore, at the very least in order for us to display a coverage metric, and at best to add a few key inspectors to Inspect before Explore goes live.

C

Version
List the versions of all mev-inspect-rs crates you are using. The easiest way to get
this information is using cargo-tree.

cargo install cargo-tree
(see install here: https://github.com/sfackler/cargo-tree)

Then:

cargo tree | grep mev-inspect

Platform
The output of uname -a (UNIX), or version and 32 or 64-bit (Windows)

Description
Enter your issue details here.
One way to structure the description:

[short summary of the bug]

I tried this code:

[code sample that causes the bug]

I expected to see this happen: [explanation]

Instead, this happened: [explanation]

Find missing blocks

It'd be nice if the binary could find which blocks are missing between our min/max blocks and start filling them in.

Verbose mode

Is your feature request related to a problem? Please describe.

Allow the user to pass -v to display all the known actions from an inspected trace, and -vv to display all the actions in the trace, including unclassified ones (inspection.known() / inspection.unknown())

Run inspectors in the following block/date intervals currently missing

  • Starting at January 1st 2020: Inspectors currently starting at block 9,200,000 which is Jan 2, want them to start at Jan 1 so block 9193266

Data seems to be missing from the following date ranges:

  • November 27th 2020 to February 4th 2021
  • November 12 to November 17 2020
  • November 3 to November 10th 2020
  • October 22 2020 to October 27 2020
  • some interval between 10,530,000 and 10,550,000 (~late July)

Add Uniswap ETH block price oracle

Could we add logging of Ethereum price from Uniswap oracle in our db as an 11th column?

It should be a simple inspector in Rust afaik and would help us for our USD conversions (so that we convert ETH to USD based on Uniswap oracle ETH block price instead of the daily price we're using atm)

Ideally starting from Jan 1 2021, before we can use Will's db of ETH prices per minute for 2020

Parallelize block processing

Currently we process each block's transactions by joining all the futures together. It'd be nice if we could also do block processing in parallel. A naive way to do this is by spawning multiple processes of the binary. This might be an issue if we end up getting too many handles to PostGres?

Support Flashswaps in Uniswap

Is your feature request related to a problem? Please describe.

Uniswap flashswaps are not supported yet

Examples:

 0x88578f94901ac2e775d56abf9459b599bcb4ec431144dcc6d12298fd0e2738b3
 0xcb1a92401f66fdc2d7c0b1bab02bc4618bce03cfe29ae4fc6e6df469ffdad93e
 0x18c6047b826947281323b21ccddbd75e2a3b5375606b7291a711b660944f6579
 0x8dfc813936ed47202fff66c5ba239adfa0fc7290c6be70b0feb7ab08943cce70
 0x5d12ce2122a367e4393f3ad0b73f24af68fdd5d6d3fae0b337457ade414bb11c
 0x4de3ce1ae438bb12a0d4fd93c2ee76340d69320af125b64d425663df29345e38
 0xc3cfc98338c9e3ab495b5c24faf2f4775bb00c6406ce39276a77e461c8940d21
 0x3878ed5e3e2b50c26f2aa40652efcf5648412f56094fd90e373dfd41dbe8bce7
 0x5acfecddd3bee0c72b312b3890be47eed92465667b6009cb1858a56168d86647
 0x042932a17af9be730df160690875c4ac9544325571ae496d6fcd472221b629c9
 0x992133192befd0ae5e64e174b58b9e025d1ee81584a4e7424e439d16c4b9d338
 0x9343ceed7506ebb4fea13e28371efb61c4193e113172e1d9c7bc5ebd59a60bf8
 0xe10364aff2b6fa72bd305c548d34e9cf3fdd2b2d1f8a4d9effd198f92e4aa110
 0x7418f13c6ee7c8bb2f3303dae9513b3378aaa7c30742535b870eaaf1ca1465b8
 0x97afae49a25201dbb34502d36a7903b51754362ceb231ff775c07db540f4a3d6
 0xeaa883c1439b2fa68bf22a423a6e15e3e438706005717d7b57a6ec5840f2ba30
 0xf84d00040ac7b03d29f8c95fa788094ec808bf9d62a0c9dd2888201df51ea0ee
 0x526656763ec7292dc67378c868b0240c75c342d84645f263b7c8e60487e223f1
 0x10f91be5ffff93bf8e8c9ecbf46634b5c2b59dc50ab0afb1155574bf71c6f334
 0xa4cdf41063ffd29cf0c5054b0687ae963b233e6e04987be002392d510d5979c5
 0x16f5a223913329c24d26a117b75f540fd3ae92a43e0a29e8a4ecc79bd754d786
 0xef801bef0fdc45c6e9903593186a625172d8b78eae761caf722f925a8eab8da2
 0xcd570ab1787d683e3cf08f4706e20bb5a9a9b59e3d4ee5f4959edc2c9b121bdf
 0xabfe88b5edae56dc9cc6398f483adbe890c76c0d3a5d60220b652855da4b6ee1
 0xa19fedaf51999dc9cba67922aa3eb1f521d9f2add02733d02d0f84c56aa83b6a
 0x323870685d79f065430ae211324096f89f3ea8c6f59f5ba5f011012e4c5c76a8
 0x51c555718ccbc69d7cd05b815f7e31c1b4b5578b9964ebddc8629917f52df587
 0x9deab4454b656514634681e6c3154e1a8b94d56bcc1426e96ba68fceed7bd6fa
 0x582fb831915dba80bd68be7e5c453dc341dbe4a56d118fdaa642e5773cd40d8c
 0xb756e001812bf9ef78855f37a858fa86a872bff38a580eca5dfd2696c4fd6f41
 0x560665f12f89ce140cac7afebf9a6bf2369e9ef2321b5d596d0c05ec0cd8e2a6
 0x143d27da1224d6309b7f36ed8f67c3a65736f7334b10c7c5268f11e93b05c3cd
 0xe96708eb437fb9ed49414a6a5a85da9ce15f2aa7b44554690107e73cc10c5d0f
 0xb7105d7bf1b90bb2e9ce266ac8574d6ff3447788678c1e6b026093b7b46bd6f5
 0xc8678c72a865102fec9e0fbb88ff70d8fbcd50640e2710c67f2bd2fa7bc849c7
 0x1d641a0f0a1c48283cea78816b47c35c9aba35faa0ec8704b56d8b55ff053397
 0x583b31c4665a79d72901a7ce0d76fea8ad7d920af7f12a1fe3bc7ba43a253f27
 0x74021ffb6a058d4533284e1b9d9e2ebfcbed65f390e9fb5b8a151675f9877139
 0x4199cd7e35e54e3997893aadf4e852e6cdbd5ae385870f3ecbd798e1888957bf
 0xf14862b13679bbe6a623258ce85bebe4363329511cadeb7652703a5ecc45d912
 0x4222f2281276a3e998e5c3ed2704cd55edd3704809a4e09b6612bf7c0120e618
 0x44e95c0d4aecdf99ab90acdb97daee4b6d567ddae2cd1152ad4727633a08b0ab
 0x3a9004613829055298fb09431864536f146487f3659170a1da73e79e9122e542
 0xb977b1c086c18dfcd42bcb7788d14414b7636e0aae14d95fcbd05174791f40e1
 0x084489be32c7d9a64cdbe67d6686531aef5f37d86b3f92d8c2f46e15fa3695ec
 0x7302e4304e04fb6fcc0cce5dd9b3d76ae892a4d751a1b29a7f325577ea340ae6
 0x4c1f77afc091e89024c19ca9d8d7ae3a1edc5d251f8fdccade00968633f19d40
 0xd4c6066613c5b23bcf6923050655f6e6d285c5162c088f01d38a904b60312690
 0xf62f439041d13f03e66d9de8048654e97f3531afcf095cbe97cf3632779a5539
 0xc3cbea72d601713f57a28e1a2218dd37a9b3a7c46b5c3943a7440739b81caeb8
 0xa28a9966dd1337d2155675af92e886b1e14bf85d322761e454f7dbdb21f98653
 0xe65227013c90e0e82da284287ef3d0bda1eb5f27642d192f996b80ca165d1b4c
 0x69b11fd284fb4633afdd08ddacd206d25517a5d00b72673ee101b89b76eef123
 0x012080103723a0c52f441ea75095812ce1229e7776c5349a5e6361a867798175
 0xcbd715eea18afd2168e3411c372dd4f034adcdfb431d162d6f351207e3f76bed
 0x90e72307c7e3494ed7195b41c2a1ba3dc739517f61527913af1f5739bf6095c1
 0xb2fd2c3e3a5b4e64b4f4fe33f08a8ab779412d6e28ffab74edfdb9d6025550ed
 0x28864d19302c6a48853435b71afed87c3f5c40214cafb1dcd6533666c08b90c1
 0x186a86af4bfb376b99dd18d82912eec4808d5aa8cbd080ca82969e43bd0ffda9
 0x0fe2f624c713588e33fbd1a7e6518c7f99612762be02be66c1d2f0f7c8ceb9da
 0xb68bec0f67085a5214d18f65c3a22d9093e5655227590907b89f028abcb5044d
 0x187c65157d668dac833d58885264515e77721e76883fffa9ea6712b9f3c7c068
 0x465fc43346cf689b9024eda5d6ed86658af5e370c773cc494d9276a95febd5a1
 0x3432004d0e2dbd68f387b3110197a0a04c4c41af118e756e60d793b440c781c3
 0xeae9ae61a2cb0021731e8296ab4e93930c31dd6b91cbe09a3725dfdf16feb20e
 0x1e4a88e1af73295d98d45fa40896618d97fb3affd550fa43c8a19db345ce71de
 0x1e62b12daf90c0fcd49283478ee34f14e57d89e221ef9c75e1ef497abcdf8b78
 0x708dbc1ec3df66c59c6d93956d4a9d2cb2b0cd450294201db3038e7ace4aa5bc
 0xf6497d582be5ad10b417de2bfd65114075ac1d8d5544a98728964cda4e8fd2e7
 0xeac978dbdfbba1614b929c1af66a8ba85517f2bc45482f0d0c40855ba6c90152
 0xf63491901895f9dbcc85ff821fbd7dde48c4106dfec1ad8e65a84538258809c3
 0x6e36a35faff79a48fc85f9db53d8c88df87fa99d9bc2dd6f0725e61fd239521e
 0x342ff09b65f35c6dc0d3ce998bcdfe7e807c46ff75842d6d509a29a66042527e
 0xbe1b67a8ca65b969d50dcf0ce4a01322a6d6cad909e9f31c095c8966ba3761e3
 0x9004e4e906d8e076b0cfb9dae07acac5468e1b293952e8d8a7774cf575e1f6f6
 0x408bfc8f26a8240f5632b497768da176049be600577500269216bc2ee662d2ab
 0xdd9b0df08f3ef3c1a412e92e100453f8bc948e06e0b8dc018baefe7c9e022169
 0x1d3c266a6bbb0ae790005515b655140266f3eecd8a965c5797dc2b8a2a09e187
 0x3fcf6c4596887cdff56f78c5829ba20c11758070c477d8ef0ff4a14ea4535749
 0x9256362102e3e3b1c0e05bea61b8917a955f95351e8d048a8525dd529a0449fe
 0x51b2ceac87553079a47c4f017cc04a96d02fa3d9d08525e7855ac3d7525f1503
 0x128184f2adc8cf90ddd7123dde204ae63f2a238b6b4a380535b1cb53f3bb252d
 0x62d85946c33f6462361bc76c1820e89afe7bde57b6ba81ed7a69210c7a2634a5
 0x917cc5370fa211b509a968b1bad9671a148d968a321557fe3abef899c810dc85
 0x58a8f3ead8e8f32b40d4743c200615e898079249470cf12f3eeacfe2f25cf322
 0x22fa0008858996637666d95f336058d9498d559572f0711b010e56da0005d940
 0x2e656cff0c21a9678cddc8b1306ec5b3b70d56a3dfd9d56d268bbfbf41b49aca
 0xef4e737adb5cc31e3c3448ef9139522eb3514137ed5ab003c6b8854330de78fa
 0x07d997fa64e6ab24463445e65246342df67d49086887ff54fbc90579cbb3123e
 0x4cc35d9cde6adea753c1e9a329465617a1deb8c026e12da133ee12551eb6c8f0
 0x97aa577c29c0ecd1607840dd66eec95162190e0445669f09edba1d77cbbeb922
 0x9a4f29aa57b12320a85b5be96393ac54ed7c90f25f02ccb4c79206ca6967cd04
 0x53605dd371a1cb802b16a84917212d9ea7d2c748777d5c0aa0617009f8941001
 0xb69a84dd9fbbd1cd536c5efdb0bb88c26589c4e88e8e908d37635caaa81b11f4
 0x6e56331ec03b6bd2d2e151bd6bb0aa2e0d00fc971a5850dfd561f5b7611b545e
 0x4155b9facf31af498aa2f392f2879ebb0b824f2dd30f5dbbc7c57636df4b33f7
 0x8657b8b571acdb24c939a17fda2b66fc6ff5696d07612306233e56c39af43644
 0x1ed4be473d6c743052ea815e0798151fcae24241ee449fd4f0c32d0ed8c4f56a
 0x9ebbf6a09fb7c6d03cb33b4a4592c0e8434d1a519da634d0b76b8b66d3de850e
 0xda10becc8ad7bb7b28447264ba5f60c84f00f52eebd7c59617c0d5066432066a
 0x376c054a245ed6b74f1a4641a282d3296ab8dbdeb12fdee6ed87a44fb6435a57
 0x7ebcd471855409b899d29439e6c89a1290f3e6e2925a3d04f3023264b0d4aac1
 0x16e70230f6549c9ce7a0bbb15bc56444938fb56c6181e82c28dad45185c5c037
 0xd33af049b50e472b8dec28700545833cad64d579032fde2b985b33e49a1ca3ff
 0x0e275062a81c634a1ee58ef58eca85bb827ea3fa5ecb6c096197cb7041bf98dc
 0x14e98498c99c80cc5e42e04aab73668babe12744ff40e23e1fa788c55886062f
 0xb437ab7e28e118d42417c196a0c552d75e47a746eb8ca29f0a2eaf41b03e70f8
 0x40d4996870f32c392ba620078d90a303b005f51e8744e30aa2a0db725a8acd51
 0x5aea327a0998f52b98baaf5dbe9a51b4d1207447ee1eb97eaa95d8ea04483be9
 0x142f3ce1fa38fdb0149e51f526604581aaebbbd6f26644c87cee06ee8b8e2362
 0x2bac0d49b43eb22be20d7de6b41f233604ecf978a95c66f398a8ecd905395e75
 0x06f7163a247ecd074e4d619064e2ad4695654732e28a5263eb2c7e63f578288c
 0xce6471a6d3dea5da62f7788b93b4c91273abe60e8af5b16f756129018f6159dc
 0xbaf80df0ee5fafebe36e6c7f9730bbab12d7125fc92d6f3abfb73e3990b67019
 0x988b538fc7530688167bc9deaab148ef73f70dbd4aa658c3e7f692022cb3dda5
 0xc1661a92e371fb6923ca931738b418d459d12b7ae7e8e05bddbc33d71c64d1f2
 0x65b3fc077a81dee47f20bbbd46ae26630f292ef0eb3282f1829af8ff0c84abf2
 0xcd733cbb2a6d86b27adb441d907b704c64e4f5dcfcc246e8830558b9f6bec30e
 0x105a5398f968f1f0c22809561ae4b3ad2763e338ba42ba64b99e3a15e47dc409
 0xce86c8fa2b777f12d8309d564e04193c6a288a9c333b67005615bbf7d0133adc
 0x769f3dcffd34d8671895e838675ba7a42ae0c8595c566a61c203244ca5cba390
 0x985bc3dd9b771018c7b8c67b69c1b66ed4b1568ade8c4cd063e75fcc675db52b
 0xc3bb44b0090a3c167f580c96c50a6256c16acc8acdc100db5f912cdf40435e05
 0x51b50cc273f3105c7890732d68964598c51f0f43f65da8e328f15cd93e4fb5e7
 0xcce6d0721e03419dd0396419da54df49f9830aef595bed4341d4713b214cfb3f
 0x48b5cc12ec1e48184626718188c6f1d7e182a4431296e48347025405240283ff
 0x2dc6ba289c00b2141b0f146f16b8aa3a16c2c99499a11f906a94c421af24fd0b
 0xc6e90f8430f4c97f38883f496fa8c19d45860ffc2da3641da59a33cf2bf0a6d9
 0xaf001d18915c5999a3badc6ace5b4477e91d9612a41caf4756bd28ef1ae77494
 0x9b9700befcbd0518072d36979485fea3c630a6316f80f12b8e67f6a8873539e0
 0x9f2a6f826e6ac0a36cf31245895870c0d13dbb6e86330a68811cad92d192c49d
 0x4bb462bdd9fe4f15b56b9ac7387bdd61142e558e06822ed39589b91e83b5a371
 0x061d8bfe91b6db43c0257d0a1eb3d43bab09d55d8d57069a646f4cdf81392336
 0xfa5377a0fbf7b0aa754184a863c4c537f54da4ed15d2b3b11b83cca58c176b16
 0xf33de9df2baa79a51994543e46b468d93d869c697a9b95859dc1757481ff183b
 0x0eefa443e4b73af962f23b55929dc02c2416f0a26e564f964e9530088510390f
 0x842ab3798527f2abf5b0f6e7eb9c3f16ca9bf6127ab6740503f5259027c9bcd9
 0xbe82b9fec72744fc335c2cc05c7278b062fe952040189eb2562cf1b7f3a57af3
 0x3c884ce3056e19e6f937d4d71f8d74b0da75658f55541287d3985ca4699258c3
 0x22d2747349f3ad855d78efd368fce315f3662594a5287c5bb0c02ebbbd9fd67a
 0xd716ba0e02cf3a2f27d7548277181b9c7857b73a8f859e6a4eb79917837dc0f3
 0xad559bcdc79c69d7e34d62b13442df2d4bfabe92b2067563732b70317f53e7f6
 0x041f1d06b9aed3d30b6ce7d2756bbcb42a1f21d77bdb82aada1cbb46ec44d521
 0xf1616d46a4e55f0714be9d5cb27db008b020d92414cee24b37bbb977af97c709
 0xe9531fb6b261f820e7abf41fa4998b7c65b1396b06943fe9d9c673ccd2f12859
 0xbfa8cb3778a2f934b5e422c34859e513fa6123a2c96951b22f566b1bcafda905
 0xd5079e54acebfe5dbc5e31a118e944acffe094386093d0866631c4fbceb54640
 0x8214a2c10d4b1cc1fbb2a032d28e649692468443d98aee96c40d4a097349951c
 0xd0d6b692daa7f4d3c49a167b05c70fb9e461e8bc4b47ce6caae117ed47131503
 0xca718bce5975c98afd65a17b2c1653be4317c8296bbab0fb5b70ba23a812b371
 0x78ede5d4c928d1c22cbdfd060f24935f7dadc9d403aa58b1d27077095f782616
 0x225ca383ed9a239ca2d42cd36b1e9a5e0f48c9dc95bbc6d32884220259c321b0
 0x56d4a6450181bb24ce15f75d4c1d0df06568b64c99b87d81ee6f455a415b0107
 0x91c23aaab47b6c2f5ece9fa9c59ac02bbb85c3075459ede434299b39a188c0ea
 0xec03d6d6b44b7fb10c8dc7e6fc6f9be8d67a75590b19ad0ede8f7d36a833b610
 0x70c457de3e4f08eb79dcb3fcd30140c74cd12d1b0941e8648148f40e47e010f3
 0xeac4a3aba6dcaab48c9490214736d6604a2ab45434145c6bd3556760c3ae6a41
 0xad029f81563158c393820459a7cb27a40a38fb0cf73668ccbbe357ffb1db795e
 0x69948500d5bd33faf69aa6f253f0a27b191c714e81d0f4ff68dbd360e363dcdc
 0xf45d54ae3f146a45090d54e8f2b0460b4b56eadc47ad46c646990782ebb461e9
 0x4bf0dda94a7a8343550d6b493d8926ad4e615c6c266fa466fba295f799a71164


Build failed

I got this error when i run cargo build --release

Then:

`Caused by:
0: unable to canonicalize file from working dir C:\mev-inspect-rs with path /C:/Users/ARCH.%20DAVID%20OCHAI/Desktop/blackOps2/mev-inspect-rs/abi/curveregistry.json
1: The filename, directory name, or volume label syntax is incorrect. (os error 123)
--> src\inspectors\curve.rs:31:5
|
31 | "abi/curveregistry.json",
| ^^^^^^^^^^^^^^^^^^^^^^^^

error: failed to get ABI JSON

   Caused by:
       0: unable to canonicalize file from working dir C:\mev-inspect-rs with path /C:/Users/ARCH.%20DAVID%20OCHAI/Desktop/blackOps2/mev-inspect-rs/abi/comptroller.json
       1: The filename, directory name, or volume label syntax is incorrect. (os error 123)

--> src\inspectors\compound.rs:25:5
|
25 | "abi/comptroller.json",
| ^^^^^^^^^^^^^^^^^^^^^^

error: failed to get ABI JSON

   Caused by:
       0: unable to canonicalize file from working dir C:\mev-inspect-rs with path /C:/Users/ARCH.%20DAVID%20OCHAI/Desktop/blackOps2/mev-inspect-rs/abi/ctoken.json
       1: The filename, directory name, or volume label syntax is incorrect. (os error 123)

--> src\inspectors\compound.rs:34:17
|
34 | abigen!(CToken, "abi/ctoken.json",);`

cargo build --release errors

I'm getting the following build errors off of $ cargo build --release. I had to comment out a part of my ~/.gitconfig run the following updates on Ubuntu 18.04.

sudo apt install pkg-config
sudo apt install libssl-dev

Any idea what needs to happen?

warning: unused manifest key: net
warning: Patch rust_decimal v1.10.2 (https://github.com/paupino/rust-decimal/#d5f1126d) was not used in the crate graph.
Check that the patched package version and available features are compatible
with the dependency requirements. If the patch has a different version from
what is locked in the Cargo.lock file, run cargo update to use the new
version. This may also occur with an optional dependency that is not enabled.
Downloaded anyhow v1.0.38
Downloaded byteorder v1.4.2
Downloaded futures-channel v0.3.12
Downloaded futures-core v0.3.12
Downloaded httparse v1.3.5
Downloaded http v0.2.3
Downloaded getrandom v0.2.2
Downloaded encoding_rs v0.8.28
Downloaded curl-sys v0.4.40+curl-7.75.0
Downloaded itoa v0.4.7
Downloaded log v0.4.14
Downloaded hyper v0.14.4
Downloaded pin-project v1.0.5
Downloaded parity-scale-codec v1.3.6
Downloaded futures-task v0.3.12
Downloaded futures-sink v0.3.12
Downloaded futures-macro v0.3.12
Downloaded futures-executor v0.3.12
Downloaded proc-macro-nested v0.1.7
Downloaded pin-project-lite v0.2.4
Downloaded quote v1.0.8
Downloaded rand_core v0.6.1
Downloaded regex-syntax v0.6.22
Downloaded serde_derive v1.0.123
Downloaded thread_local v1.1.3
Downloaded syn v1.0.60
Downloaded sha2 v0.9.3
Downloaded sha-1 v0.9.3
Downloaded serde_json v1.0.62
Downloaded unicode-normalization v0.1.17
Downloaded tinyvec_macros v0.1.0
Downloaded serde v1.0.123
Downloaded rand v0.8.3
Downloaded futures-util v0.3.12
Downloaded time v0.1.43
Downloaded tower-service v0.3.1
Downloaded pin-project-internal v1.0.5
Downloaded regex v1.4.3
Downloaded tinyvec v1.1.1
Downloaded tokio-util v0.6.3
Downloaded tracing v0.1.23
Downloaded idna v0.2.1
Downloaded libc v0.2.86
Downloaded tokio v1.2.0
Downloaded ring v0.16.20
Downloaded 45 crates (12.9 MB) in 15.82s (largest was ring at 5.1 MB)
Compiling libc v0.2.86
Compiling syn v1.0.60
Compiling serde_derive v1.0.123
Compiling serde v1.0.123
Compiling getrandom v0.2.2
Compiling itoa v0.4.7
Compiling log v0.4.14
Compiling pin-project-lite v0.2.4
Compiling byteorder v1.4.2
Compiling proc-macro-nested v0.1.7
Compiling serde_json v1.0.62
Compiling futures-core v0.3.12
Compiling futures-sink v0.3.12
Compiling tinyvec_macros v0.1.0
Compiling anyhow v1.0.38
Compiling httparse v1.3.5
Compiling encoding_rs v0.8.28
Compiling tower-service v0.3.1
Compiling regex-syntax v0.6.22
Compiling tokio v1.2.0
Compiling ring v0.16.20
Compiling futures-task v0.3.12
Compiling curl-sys v0.4.40+curl-7.75.0
Compiling thread_local v1.1.3
Compiling futures-channel v0.3.12
Compiling tinyvec v1.1.1
Compiling tracing v0.1.23
Compiling quote v1.0.8
Compiling uint v0.9.0
Compiling want v0.3.0
Compiling sha-1 v0.9.3
Compiling sha2 v0.9.3
Compiling unicode-normalization v0.1.17
Compiling getrandom v0.1.16
Compiling mio v0.7.7
Compiling openssl-sys v0.9.60
Compiling socket2 v0.3.19
Compiling libz-sys v1.1.2
Compiling rand v0.4.6
Compiling time v0.1.43
Compiling rand_core v0.6.1
Compiling rand_core v0.5.1
Compiling regex v1.4.3
Compiling idna v0.2.1
Compiling openssl v0.10.32
Compiling proc-macro-error-attr v1.0.4
Compiling rand_chacha v0.3.0
Compiling ff v0.8.0
Compiling rand_chacha v0.2.2
Compiling signature v1.2.2
Compiling rand v0.3.23
Compiling url v2.2.0
Compiling rand v0.8.3
Compiling Inflector v0.11.4
Compiling group v0.8.0
Compiling rand v0.7.3
Compiling rust-crypto v0.2.36
Compiling native-tls v0.2.7
Compiling fixed-hash v0.7.0
Compiling proc-macro-error v1.0.4
Compiling elliptic-curve v0.8.4
Compiling ecdsa v0.10.2
Compiling k256 v0.7.2
Compiling webpki v0.21.4
Compiling sct v0.6.0
Compiling rustls v0.19.0
Compiling webpki-roots v0.21.0
Compiling curl v0.4.34
Compiling futures-macro v0.3.12
Compiling thiserror-impl v1.0.23
Compiling pin-project-internal v0.4.27
Compiling pin-project-internal v1.0.5
Compiling async-trait v0.1.42
Compiling auto_impl v0.4.1
Compiling futures-util v0.3.12
Compiling thiserror v1.0.23
Compiling futures-executor v0.3.12
Compiling pin-project v0.4.27
Compiling tracing-futures v0.2.4
Compiling pin-project v1.0.5
Compiling bytes v1.0.1
Compiling parity-scale-codec v1.3.6
Compiling impl-serde v0.3.1
Compiling serde_urlencoded v0.7.0
Compiling uuid v0.8.2
Compiling rlp v0.5.0
Compiling http v0.2.3
Compiling input_buffer v0.4.0
Compiling impl-rlp v0.3.0
Compiling ethbloom v0.10.0
Compiling eth-keystore v0.1.0
Compiling serde-aux v2.1.1
Compiling http-body v0.4.0
Compiling tungstenite v0.12.0
Compiling tokio-util v0.6.3
Compiling tokio-rustls v0.22.0
Compiling tokio-native-tls v0.3.0
Compiling tokio-tungstenite v0.13.0
Compiling h2 v0.3.0
Compiling impl-codec v0.4.2
Compiling primitive-types v0.8.0
Compiling ethereum-types v0.10.0
Compiling ethabi-next v13.0.0
Compiling hyper v0.14.4
Compiling ethers-core v0.2.0
Compiling ethers-contract-abigen v0.2.0
Compiling ethers-signers v0.2.0
Compiling hyper-rustls v0.22.1
Compiling reqwest v0.11.0
Compiling ethers-providers v0.2.0
Compiling ethers-middleware v0.2.0
Compiling ethers-contract-derive v0.2.0
Compiling ethers-contract v0.2.0
Compiling ethers v0.2.0
Compiling mev-inspect v0.1.0 (/home/tesa/flashbots/mev-inspect-rs)
error[E0706]: functions in traits cannot be declared async
--> src/cached_provider.rs:57:5
|
57 | async fn trace_block(&self, block: BlockNumber) -> Result<Vec, Self::Error> {
| ^----
| |
| async because of this
| |
58 | | // check if it exists, else get from the provider
59 | | let mut traces = None;
60 | | if let BlockNumber::Number(block_number) = block {
... |
84 | | }
85 | | }
| |
^
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait

error[E0432]: unresolved import thiserror
--> src/types/evaluation.rs:13:5
|
13 | use thiserror::Error;
| ^^^^^^^^^ use of undeclared type or module thiserror

error[E0433]: failed to resolve: use of undeclared type or module serde
--> src/cached_provider.rs:7:5
|
7 | use serde::{de::DeserializeOwned, Serialize};
| ^^^^^ use of undeclared type or module serde

error[E0432]: unresolved import async_trait
--> src/cached_provider.rs:2:5
|
2 | use async_trait::async_trait;
| ^^^^^^^^^^^ use of undeclared type or module async_trait

error[E0432]: unresolved import serde
--> src/cached_provider.rs:7:5
|
7 | use serde::{de::DeserializeOwned, Serialize};
| ^^^^^ use of undeclared type or module serde

error[E0433]: failed to resolve: use of undeclared type or module rust_decimal
--> src/mevdb.rs:3:5
|
3 | use rust_decimal::prelude::*;
| ^^^^^^^^^^^^ use of undeclared type or module rust_decimal

error[E0432]: unresolved import thiserror
--> src/cached_provider.rs:16:5
|
16 | use thiserror::Error;
| ^^^^^^^^^ use of undeclared type or module thiserror

error[E0433]: failed to resolve: use of undeclared type or module tokio_postgres
--> src/mevdb.rs:5:5
|
5 | use tokio_postgres::{config::Config, Client, NoTls};
| ^^^^^^^^^^^^^^ use of undeclared type or module tokio_postgres

error[E0432]: unresolved imports thiserror, tokio_postgres::config::Config
--> src/mevdb.rs:4:5
|
4 | use thiserror::Error;
| ^^^^^^^^^ use of undeclared type or module thiserror
5 | use tokio_postgres::{config::Config, Client, NoTls};
| ^^^^^^^^^^^^^^

error[E0432]: unresolved import tokio_postgres
--> src/mevdb.rs:5:5
|
5 | use tokio_postgres::{config::Config, Client, NoTls};
| ^^^^^^^^^^^^^^ use of undeclared type or module tokio_postgres

error: cannot determine resolution for the derive macro Error
--> src/types/evaluation.rs:133:17
|
133 | #[derive(Debug, Error)]
| ^^^^^
|
= note: import resolution is stuck, try simplifying macro imports

error: cannot find attribute error in this scope
--> src/types/evaluation.rs:138:7
|
138 | #[error(transparent)]
| ^^^^^

error: cannot find attribute error in this scope
--> src/types/evaluation.rs:140:7
|
140 | #[error("Transaction was not found {0}")]
| ^^^^^

error: cannot find attribute error in this scope
--> src/types/evaluation.rs:142:7
|
142 | #[error(transparent)]
| ^^^^^

error: cannot determine resolution for the attribute macro async_trait
--> src/cached_provider.rs:47:3
|
47 | #[async_trait]
| ^^^^^^^^^^^
|
= note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the derive macro Error
--> src/cached_provider.rs:88:10
|
88 | #[derive(Error, Debug)]
| ^^^^^
|
= note: import resolution is stuck, try simplifying macro imports

error: cannot find attribute error in this scope
--> src/cached_provider.rs:91:7
|
91 | #[error("{0}")]
| ^^^^^

error: cannot find attribute error in this scope
--> src/cached_provider.rs:93:7
|
93 | #[error(transparent)]
| ^^^^^

error: cannot find attribute from in this scope
--> src/cached_provider.rs:94:15
|
94 | IoError(#[from] std::io::Error),
| ^^^^

error: cannot find attribute error in this scope
--> src/cached_provider.rs:95:7
|
95 | #[error(transparent)]
| ^^^^^

error: cannot find attribute from in this scope
--> src/cached_provider.rs:96:28
|
96 | DeserializationError(#[from] serde_json::Error),
| ^^^^

error: cannot determine resolution for the derive macro Error
--> src/mevdb.rs:152:10
|
152 | #[derive(Error, Debug)]
| ^^^^^
|
= note: import resolution is stuck, try simplifying macro imports

error: cannot find attribute error in this scope
--> src/mevdb.rs:154:7
|
154 | #[error(transparent)]
| ^^^^^

error: cannot find attribute from in this scope
--> src/mevdb.rs:155:15
|
155 | Decimal(#[from] rust_decimal::Error),
| ^^^^

error: cannot find attribute error in this scope
--> src/mevdb.rs:157:7
|
157 | #[error("could not convert u64 to decimal")]
| ^^^^^

error: cannot find attribute error in this scope
--> src/mevdb.rs:160:7
|
160 | #[error(transparent)]
| ^^^^^

error: cannot find attribute from in this scope
--> src/mevdb.rs:161:21
|
161 | TokioPostGres(#[from] tokio_postgres::Error),
| ^^^^

error[E0433]: failed to resolve: use of undeclared type or module futures
--> src/inspectors/compound.rs:135:19
|
135 | let res = futures::future::join_all(futs).await;
| ^^^^^^^ use of undeclared type or module futures

error[E0433]: failed to resolve: use of undeclared type or module futures
--> src/types/evaluation.rs:73:35
|
73 | let res = futures::future::join(
| ^^^^^^^ use of undeclared type or module futures

error[E0433]: failed to resolve: use of undeclared type or module hex
--> src/types/classification.rs:129:34
|
129 | .field("input", &hex::encode(&call.input))
| ^^^ use of undeclared type or module hex

error[E0433]: failed to resolve: use of undeclared type or module tokio
--> src/mevdb.rs:19:9
|
19 | tokio::spawn(async move {
| ^^^^^ use of undeclared type or module tokio

error[E0433]: failed to resolve: use of undeclared type or module rust_decimal
--> src/mevdb.rs:155:21
|
155 | Decimal(#[from] rust_decimal::Error),
| ^^^^^^^^^^^^ use of undeclared type or module rust_decimal

error[E0433]: failed to resolve: use of undeclared type or module tokio_postgres
--> src/mevdb.rs:161:27
|
161 | TokioPostGres(#[from] tokio_postgres::Error),
| ^^^^^^^^^^^^^^ use of undeclared type or module tokio_postgres

error[E0433]: failed to resolve: use of undeclared type or module rust_decimal
--> src/mevdb.rs:171:47
|
171 | fn u256_decimal(src: U256) -> Result<Decimal, rust_decimal::Error> {
| ^^^^^^^^^^^^ use of undeclared type or module rust_decimal

error[E0405]: cannot find trait DeserializeOwned in this scope
--> src/cached_provider.rs:27:16
|
27 | fn read<T: DeserializeOwned, K: AsRef>(
| ^^^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type Config in this scope
--> src/mevdb.rs:16:31
|
16 | pub async fn connect(cfg: Config, table_name: &'a str) -> Result<MevDB<'a>, DbError> {
| ^^^^^^ not found in this scope

error[E0433]: failed to resolve: use of undeclared type or module Decimal
--> src/mevdb.rs:87:22
|
87 | &Decimal::from(evaluation.inspection.block_number),
| ^^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 | use core::num::dec2flt::parse::Decimal;
|

error[E0433]: failed to resolve: use of undeclared type or module Decimal
--> src/mevdb.rs:134:20
|
134 | &[&Decimal::from_u64(block).ok_or(DbError::InvalidDecimal)?],
| ^^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 | use core::num::dec2flt::parse::Decimal;
|

error[E0412]: cannot find type Decimal in this scope
--> src/mevdb.rs:171:38
|
171 | fn u256_decimal(src: U256) -> Result<Decimal, rust_decimal::Error> {
| ^^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 | use core::num::dec2flt::parse::Decimal;
|

error[E0433]: failed to resolve: use of undeclared type or module Decimal
--> src/mevdb.rs:172:5
|
172 | Decimal::from_str(&src.to_string())
| ^^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 | use core::num::dec2flt::parse::Decimal;
|

error: aborting due to 40 previous errors

Some errors have detailed explanations: E0405, E0412, E0432, E0433, E0706.
For more information about an error, try rustc --explain E0405.
error: could not compile mev-inspect.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

please ensure the contract and method you're calling exist! failed to decode empty byte

Please post your question as a discussion in the Flashbots Discord

I met a error hint:

bob@bob-XPS-8940:~/search/code/bot/bot/mev-inspect-rs$ ./target/release/mev-inspect -u http://localhost:8549  blocks -f 7475414  -t 7475462
Error: Invalid name: please ensure the contract and method you're calling exist! failed to decode empty bytes. if you're using jsonrpc this is likely due to jsonrpc returning `0x` in case contract or method don't exist

My command:

./target/release/openethereum --ws-port 8548 --jsonrpc-port=8549 --jsonrpc-interface all --jsonrpc-cors all --jsonrpc-apis all --jsonrpc-hosts all

ws port: 8548
RPC port: 8549

Am I missing a method to open at runtime, such as debug, etc.

however, I set the specific apis like this:

./target/release/openethereum --ws-port 8548 --jsonrpc-port=8549 --jsonrpc-interface all --jsonrpc-cors all --jsonrpc-apis safe,debug,web3,net,eth,pubsub,personal,signer,parity,parity_pubsub,parity_accounts,parity_set,traces,secretstore --jsonrpc-hosts all
It met the same error.

Can you help me?
Thanks

Instantiate Uniswap with all pairs

It'd be nice if Uniswap was aware of all pairs generated from the factory. We could do that by getting all PairCreated events since the factory was deployed at block 10000835. We could then cache these in a file, and check only for new events after the last time the binary was run

An example of fetching events from a known ABI can be found here

Error: Invalid name: please ensure the contract and method you're calling exist! failed to decode empty bytes. if you're using jsonrpc this is likely due to jsonrpc returning `0x` in case contract or method don't exist

I have a problem:
Execute the command
./target/release/mev-inspect -u http://x.x.x.x:8545

Error: Invalid name: please ensure the contract and method you're calling exist! failed to decode empty bytes. if you're using jsonrpc this is likely due to jsonrpc returning 0x in case contract or method don't exist

I need help.๐Ÿ˜ข

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.