Skip to content

Latest commit

 

History

History
114 lines (105 loc) · 5.66 KB

LIST_OF_FEATURE_IDEAS.md

File metadata and controls

114 lines (105 loc) · 5.66 KB

Bug fixes

  • Have a look at MakerDao Auction Keep and their API usage about Price Feeds

New Features

  • Check if selling ETH to participate in DAI auction is profitable
  • Add deal for flip auctions
  • Add Uniswap V2
  • Move wait time to config? private static final int WAIT_TIME = 60 * 60 * 1000; // 60 minutes
  • Compare oasis and uniswap profit in Main
  • Add maker.borrowAndLendDai(balances)
  • Add dydx.lendDai()
  • Add eth gas estimation per transaction
  • Add dydx buy and sell dai
  • Add maker.borrowAndSellDai(balances)
  • Add maker.borrowDai(balances) ?
  • Add manage maker debt
  • Add maker.paybackBorrowedDai(balances)
  • Add priority order of profit operations/ financial models
  • Add compound.borrowAndLendDai(balances)
  • Add compound.paybackBorrowedDai(balances)
  • Add checking for internet, if no internet then wait for a period of time
  • Add checking for global/emergency shutdown
  • Add option to use Geth instead of Infura
  • Add fallback option for web3j connectivity
  • Improve method getGasLimit() in class GasProvider
    • Use web3j.ethEstimateGas(t).send(); to estimate gas or
    • Add a differentiation between contracts to method getGasLimit() in class GasProvider
  • Use web3j.ethEstimateGas(t).send(); to estimate gas for calculateGasPriceAsAPercentageOfProfit() instead of constant
  • Add checking next Oasis Offer if current offer amount too low
  • Add support for multithreading: Multiple application with different web3j objects
  • Add a timeout to the transaction confirmation in the command line
  • Add do nothing during pending transactions
  • Add unstuck pending transactions org.web3j.protocol.exceptions.TransactionException: Transaction receipt was not generated after 600 seconds for transaction: 0x71ac56e8dba69d789a8d5e80e081740a7a75fd1c887f4a8d28fd93f47fd69261
  • Add DSProxy
  • Add feeds to Medianizer
    • Coinbase
    • Gemini
    • Bitstamp
  • Add polling mode if there is no wallet in the config
  • Add flashloans
    • For fast unwinding vaults
  • Add (maybe) PoolTogether
  • Add an Infura class that used the Infura API and the probability of future transactions to manage the requests to Infura
  • Add information about interest earned

Performance Improvements

  • Analyse why lose bids
  • dont bid on single stuff, but general
  • medianizer/gasprice
  • dxproxy
  • Have a look at the Median and the GasPrice update frequency to increase performance and make them dependent on their volatility
    • Move Medianizer.PRICE_UPDATE_INTERVAL to config.properties or make it variable

Refactoring

  • Add test coverage to Uniswap and Oasis
  • Fix bug profit provider bug
  • Use Mockito to mock balances and test methods
  • Have a look at both uniswap profitable methods, maybe refactor into one?
12:02:55.317 TRACE Uniswap - Profit 2.1924
12:02:55.318 INFO  CompoundDai - CDAI CONVERSION NOT NECESSARY
12:02:55.545 TRACE Etherchain - ETHERCHAIN SUGGESTS GP 15 GWEI
12:02:55.755 TRACE ETHGasStation - ETHERGASSTATION SUGGESTS GP 150 GWEI
12:02:55.755 TRACE GasProvider - GP PERCENTAGE OF PROFIT 0.1
12:02:55.755 TRACE GasProvider - EST. TRANSACTION FEE 20.3935 DAI
12:02:55.755 TRACE GasProvider - PROFIT SUGGESTS GP 31006.81311057 GWEI
  • Create TimeUtils and put all the unixTime and timeZone stuff into it
  • Fix all to dos
  • Implement all empty tests
  • Use rules/extension to avoid code duplication in the setup of tests
  • Refactor profitable methods to make them more readable
  • Test profitable methods
  • Fix all sonarlints (log4j2)
  • Fix handling of gas price too low:
  • Check if Uniswap 0.3% fee is taken into account
  • Check existing price feeds for new APIs
  • Add telegram notifications about trades and balances
  • Add logging layout

Think about

Current limitations

  • Where do you run it (AWS or Raspberry Pi)?
  • How to you connect to the Ethereum Nethwork (Infura or Geth)?
  • How do you get price feeds (Need API keys)?

Open Questions

  • Will the new OasisDex contract expire like the last one?

Others

  • write peak total usd balance into java properties and date of it
  • redeploy and check for errors/ null pointer exception
  • java properties: TOTAL ARBITRAGE P&L, TOTAL MISSED PROFITS, TOTAL P&L DURING EXECUTION -55.15 USD
  • interest wins or loses by compound, can get transaction costs out of transaction receipts and compare in and output of daiUser into compound
  • partial redeem of compound
  • cdai trading on compound
  • examine in and out of compound
  • CompoundEth.checkBorrowDaiOpportunity();
  • logg all transaction meta data: amount + eth/daiUser