Example #1
0
    def pool_finder(self, pool_finder_config, mocker: MockerFixture, whitelist):
        mocker.patch.object(Coingecko, "coins", return_value=whitelist)

        config = yaml.safe_load(pool_finder_config)
        app = App(config)
        assert len(app.action_tree.actions) == 2
        yield app
        app.store.delete(Result.pool_finder_pools)
        app.store.delete(Result.pool_finder_tokens)
        app.store.delete(Result.whitelist_addresses)
Example #2
0
    async def test_run(self, store, config_file, mocker):
        mocker.patch.object(SettingsParser, "setup_store", return_value=store)

        config = yaml.safe_load(config_file)
        app = App(config)
        assert len(app.action_tree.actions) == 2
        await app.run()
        assert len(store["found_cycles"]) == 5
        trades = app.store["filtered_trades"]
        assert trades[0].profit == pytest.approx(1.354642)
Example #3
0
def main(argv=None):
    arguments = docopt(__doc__, argv,
                       version=Arbie.__version__)  # noqa: WPS609

    logging.getLogger().info(f"arguments: {arguments}")

    setup_logging(str(arguments["--log"]))

    config_path = str(arguments["--file"])
    config = None
    with open(config_path, "r") as config_file:
        config = yaml.safe_load(config_file)

    app = App(config)

    try:
        asyncio.run(app.run())
    except Exception as ex:
        logging.getLogger().error(ex)
        raise ex
Example #4
0
 def trader(self, trader_config, weth: GenericToken, dummy_account):
     weth.transfer(dummy_account.address, BigNumber(4))
     config = yaml.safe_load(trader_config)
     app = App(config)
     yield app
     app.store.delete(Result.trader_profit)
Example #5
0
 def path_finder(self, path_finder_config):
     config = yaml.safe_load(path_finder_config)
     app = App(config)
     yield app
     app.store.delete(Result.arbitrage_filtered_trades)
Example #6
0
 def pool_updater(self, pool_updater_config):
     config = yaml.safe_load(pool_updater_config)
     app = App(config)
     yield app
     app.store.delete(Result.pool_updater_pools)