GithubHelp home page GithubHelp logo

skip-mev / skipper Goto Github PK

View Code? Open in Web Editor NEW
190.0 8.0 46.0 2.56 MB

Example MEV searching bot for the Cosmos ecosystem, using Skip.

Python 4.26% Dockerfile 0.03% Shell 0.28% Jupyter Notebook 0.14% Go 2.31% Makefile 0.08% Nix 0.01% Solidity 59.30% JavaScript 28.54% Ruby 0.99% TypeScript 4.06%

skipper's Introduction

Skipper

Example MEV searching bots for the Cosmos ecosystem, using Skip.

Skipper

Overview

This repository contains example MEV bots that search for and executes on profitable MEV opportunities throughout the Interchain, starting with Juno, Terra, and Evmos.

  • If you're new to MEV or searching, use this repo as an educational tool to help you learn the what and how of searching.

  • If you're already an experienced searcher, use this repo as an example on how to easily sign and send bundles to Skip on our supported chains.

For more searcher documentation, please see: https://docs.skip.money/searcher-docs

For an overview of the Block SDK, please see: https://docs.skip.money/chains/overview

About our bots

There are two bots in the skipper repo, skipper-py and skipper-go:

skipper-py: A Python-based bot for CosmWasm-based Cosmos chains that captures cyclic arbitrage opportunities across all major DEXs on Juno and Terra by backrunning transactions that trade against particular pools. You can read more about JUNO, Loop DEX, and JunoSwap in our state of JUNO MEV report

skipper-go: A Golang-based bot for EVM-based Cosmos chains that captures cyclic arbitrage opportunities across all major DEXs on Evmos (Diffusion, EvmoSwap, Cronus) by backrunning transactions that trade against particular pools. Execution is carried out by an on-chain smart contract written in Solidity (also included in the repo for your own deployment / learning purposes).

skipper's People

Contributors

davidterpay avatar janfabian avatar kw1knode avatar notjeremyliu avatar thal0x avatar thomaswos avatar zygimantass 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

skipper's Issues

Bundle codes on skipper-go

Hi! I can't figure out what the problem is. Please help me understand

Arbitrage opportunity found:
WEVMOS (0xD4949664cD82660AaE99bEdc034a0deA8A0bd517) to ceUSDC (0xe46910336479F254723710D57e7b683F3315b22B) on Diffusion / ceUSDC (0xe46910336479F254723710D57e7b683F3315b22B) to ceWETH (0x153A59d48AcEAbedbDCf7a13F67Ae52b434B810B) on cronus / ceWETH (0x153A59d48AcEAbedbDCf7a13F67Ae52b434B810B) to WEVMOS (0xD4949664cD82660AaE99bEdc034a0deA8A0bd517) on Diffusion
Amount In: 2.1973025972871232 WEVMOS
Amount Out: 2.290327047821797429 WEVMOS
Profit: 0.093024450534674229 WEVMOS
Bid: 46512225267337114
Bundle Status Code: 4
&{0 4 3 12335887 Don't have skip validator up next false false}
Target TX: https://escan.live/tx/0xc3bb526c35870f2a30ccbcb2dc7aecb32784282d9411507c282785883dd780c9

Arbitrage opportunity found:
WEVMOS (0xD4949664cD82660AaE99bEdc034a0deA8A0bd517) to ceUSDC (0xe46910336479F254723710D57e7b683F3315b22B) on Diffusion / ceUSDC (0xe46910336479F254723710D57e7b683F3315b22B) to ceWETH (0x153A59d48AcEAbedbDCf7a13F67Ae52b434B810B) on cronus / ceWETH (0x153A59d48AcEAbedbDCf7a13F67Ae52b434B810B) to WEVMOS (0xD4949664cD82660AaE99bEdc034a0deA8A0bd517) on Diffusion
Amount In: 2.539842328606928182 WEVMOS
Amount Out: 2.662634960096658249 WEVMOS
Profit: 0.122792631489730067 WEVMOS
Bid: 61396315744865033
Bundle Status Code: 5
&{0 5 3 12335932 BUNDLE REJECTED (failed CheckTx): responses... [code:3 log:"invalid nonce; got 24039, expected 24040: invalid sequence" gas_wanted:3000000 codespace:"sdk" code:3 log:"invalid nonce; got 3, expected 4: invalid sequence" gas_wanted:400000 codespace:"sdk" code:4 log:"signature verification failed; please verify account number (19428303) and chain-id (evmos_9001-2): unauthorized" gas_wanted:5000000 gas_used:88317 codespace:"sdk" ] [map[code:3 codespace:sdk data: events:[] gas_used:0 gas_wanted:3000000 info: log:invalid nonce; got 24039, expected 24040: invalid sequence mempoolError: priority:0 sender:] map[code:3 codespace:sdk data: events:[] gas_used:0 gas_wanted:400000 info: log:invalid nonce; got 3, expected 4: invalid sequence mempoolError: priority:0 sender:] map[code:4 codespace:sdk data: events:[] gas_used:88317 gas_wanted:5000000 info: log:signature verification failed; please verify account number (19428303) and chain-id (evmos_9001-2): unauthorized mempoolError: priority:0 sender:] map[code:0 codespace: data: events:[] gas_used:0 gas_wanted:0 info: log: mempoolError: priority:0 sender:]] false [3e5dd57dca8c2dbd235e64720019b644dd67ec89bcf48464d3562795e8caef86 6e248d5e924abea6af807a59e882fb56e1c4764d40af5a60a573e63aad5c77ce 1024e9cf383ef66d36e7bbe2f892c050488d17acc498c644399d23028634e40c] false}
Target TX: https://escan.live/tx/0xce1ce76c75637960aafa39ec390064f99c03e77f9fc201b2f39f43f056004d5c

Tx response cannot be parsed - juno(cosmpy)

The same bug as described by Shultzie fetchai/cosmpy#367

After broadcasting the tx, when the bot fetch the tx, cosmpy fails to decode the tx because of

Failed to parse tx field: Failed to parse auth_info field: Message type "cosmos.tx.v1beta1.AuthInfo" has no field named "tip" at "GetTxResponse.tx.auth_info".

Throws an Valueerror while connecting to RPC endpoints

File "/home/arlene_m/skipper/skipper/venv/lib/python3.10/site-packages/anyio/_core/_sockets.py", line 186, in connect_tcp
addr_obj = ip_address(remote_host)
File "/usr/lib/python3.10/ipaddress.py", line 54, in ip_address
raise ValueError(f'{address!r} does not appear to be an IPv4 or IPv6 address')
ValueError: 'rpc-juno-ia.cosmosia.notional.ventures' does not appear to be an IPv4 or IPv6 address

I am running the bot on ArchLinux FYI. Only envs/juno.env throws this error. terra works fine

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.