Giter VIP home page Giter VIP logo

atomic-arbitrage's Introduction

Atomic Arbitrage

Atomic Arbitrage is a base example of a bare implementation of an arbitrage bot. Written in Go based off an old example bot. Starting with UNI V2 arbs before moving onto UNI v3, Balancer, and Curve arbitrage.

Contributing?

Just tackle a To-Do task and submit a PR, ideally once done I can make some Github actions to test speed and determine if PRs actually improve efficiency. Also if you have design/architecture improvements file and issue and I will start on them, not sure how to make public right away so starting with a conceptually simple bot then gradually evolve it over time.

To - do

  • - Re-write flash-swap to Yul+ instead of Solidity
  • - Build out an example test environment (hopefully in Foundry cramming in Yul+ via FFI and yul-log)
  • - Clean up code structure
  • - Move off hardcoded pairs from json, use event listening with Geth to reconstruct an in-memory db of all pairs for each exchange. (Recreate from factory logs at cold boot) (credit @mempooler)
  • - GraphQL interface instead of relying on JSON-RPC (although this can also be skipped by just moving straight to Geth)
  • - Fuzzing Tests with Go 1.18beta2
  • - Better transaction signing and construction (ie call uniswap call() first then direct it to the arb contract rather than having a contract call it first)
  • - e2e tests and timing
  • - Detect more swaps than just swapExactTokensForTokens (or just use a better method to detect arb opportunities, and dive into the mempool)
  • - Organize Code from flat repo, and fix a lot of code-style issues (credit @0xKitsune)
  • - Goroutine stuff
  • - Remove interfaces in favor of generics where possible? (I think Generics are faster?)
  • - Transactions is also mostly unfinished and un optimized in any way
  • - Has also occured to me file names may need to be changed to be more inline with what they actually do

Go Notes

Some good talks if you are bored, if you want to learn how to make your Go code run faster.

atomic-arbitrage's People

Contributors

0xkitsune avatar controlcpluscontrolv avatar mempooler 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.