Esempio n. 1
0
 def setUpClass(cls):
     if conf.test_bamboo_relay_chain_id == 3:
         chain = EthereumChain.ROPSTEN
     elif conf.test_bamboo_relay_chain_id == 4:
         chain = EthereumChain.RINKEBY
     elif conf.test_bamboo_relay_chain_id == 42:
         chain = EthereumChain.KOVAN
     else:
         chain = EthereumChain.MAIN_NET
     cls.chain = chain
     cls.base_token_symbol = conf.test_bamboo_relay_base_token_symbol
     cls.quote_token_symbol = conf.test_bamboo_relay_quote_token_symbol
     cls.clock: Clock = Clock(ClockMode.REALTIME)
     cls.wallet = Web3Wallet(private_key=conf.web3_private_key_bamboo,
                             backend_urls=conf.test_web3_provider_list,
                             erc20_token_addresses=[conf.test_bamboo_relay_base_token_address, 
                                                    conf.test_bamboo_relay_quote_token_address],
                             chain=chain)
     cls.market: BambooRelayMarket = BambooRelayMarket(
         wallet=cls.wallet,
         ethereum_rpc_url=conf.test_web3_provider_list[0],
         order_book_tracker_data_source_type=OrderBookTrackerDataSourceType.EXCHANGE_API,
         symbols=[conf.test_bamboo_relay_base_token_symbol + "-" + conf.test_bamboo_relay_quote_token_symbol],
         use_coordinator=True,
         pre_emptive_soft_cancels=True
     )
     print("Initializing Bamboo Relay market... ")
     cls.ev_loop: asyncio.BaseEventLoop = asyncio.get_event_loop()
     cls.clock.add_iterator(cls.wallet)
     cls.clock.add_iterator(cls.market)
     stack = contextlib.ExitStack()
     cls._clock = stack.enter_context(cls.clock)
     cls.ev_loop.run_until_complete(cls.wait_til_ready())
     print("Ready.")
Esempio n. 2
0
    def _initialize_wallet(self, token_trading_pairs: List[str]):
        # Todo: This function should be removed as it's currently not used by current working connectors

        if not using_wallet():
            return
        # Commented this out for now since get_erc20_token_addresses uses blocking call

        # if not self.token_list:
        #     self.token_list = get_erc20_token_addresses()

        ethereum_wallet = global_config_map.get("ethereum_wallet").value
        private_key = Security._private_keys[ethereum_wallet]
        ethereum_rpc_url = global_config_map.get("ethereum_rpc_url").value
        erc20_token_addresses = {
            t: l[0]
            for t, l in self.token_list.items() if t in token_trading_pairs
        }

        chain_name: str = global_config_map.get("ethereum_chain_name").value
        self.wallet: Web3Wallet = Web3Wallet(
            private_key=private_key,
            backend_urls=[ethereum_rpc_url],
            erc20_token_addresses=erc20_token_addresses,
            chain=getattr(EthereumChain, chain_name),
        )
 def setUpClass(cls):
     cls.clock: Clock = Clock(ClockMode.REALTIME)
     cls.market: CoinbaseProMarket = CoinbaseProMarket(
         ethereum_rpc_url=conf.test_web3_provider_list[0],
         coinbase_pro_api_key=conf.coinbase_pro_api_key,
         coinbase_pro_secret_key=conf.coinbase_pro_secret_key,
         coinbase_pro_passphrase=conf.coinbase_pro_passphrase,
         symbols=["ETH-USDC", "ETH-USD"])
     cls.wallet: Web3Wallet = Web3Wallet(
         private_key=conf.web3_private_key_coinbase_pro,
         backend_urls=conf.test_web3_provider_list,
         erc20_token_addresses=[
             conf.mn_weth_token_address, conf.mn_zerox_token_address
         ],
         chain=EthereumChain.MAIN_NET)
     print(
         "Initializing Coinbase Pro market... this will take about a minute."
     )
     cls.ev_loop: asyncio.BaseEventLoop = asyncio.get_event_loop()
     cls.clock.add_iterator(cls.market)
     cls.clock.add_iterator(cls.wallet)
     stack = contextlib.ExitStack()
     cls._clock = stack.enter_context(cls.clock)
     cls.ev_loop.run_until_complete(cls.wait_til_ready())
     print("Ready.")
    def _initialize_wallet(self, token_symbols: List[str]):
        ethereum_rpc_url = global_config_map.get("ethereum_rpc_url").value
        erc20_token_addresses = get_erc20_token_addresses(token_symbols)

        if self.acct is not None:
            self.wallet: Web3Wallet = Web3Wallet(private_key=self.acct.privateKey,
                                                 backend_urls=[ethereum_rpc_url],
                                                 erc20_token_addresses=erc20_token_addresses,
                                                 chain=EthereumChain.MAIN_NET)
    def setUpClass(cls):
        cls.clock: Clock = Clock(ClockMode.REALTIME)
        cls.erc20_token_address = conf.test_erc20_token_address
        cls.w3 = Web3(Web3.HTTPProvider(conf.test_web3_provider_list[0]))

        cls.wallet_a = Web3Wallet(
            conf.web3_test_private_key_a, conf.test_web3_provider_list, [cls.erc20_token_address])
        cls.wallet_b = Web3Wallet(
            conf.web3_test_private_key_b, conf.test_web3_provider_list, [cls.erc20_token_address])

        cls.erc20_token: ERC20Token = list(cls.wallet_a.current_backend.erc20_tokens.values())[0]

        cls.clock.add_iterator(cls.wallet_a)
        cls.clock.add_iterator(cls.wallet_b)
        cls.ev_loop: asyncio.BaseEventLoop = asyncio.get_event_loop()

        next_iteration = (time.time() // 5.0 + 1) * 5
        cls.ev_loop.run_until_complete(cls.clock.run_til(next_iteration))
async def main():
    cmd_args = CmdlineParser().parse_args()
    with open(cmd_args.key_file, "r") as fd:
        encrypted_json: Dict[str, any] = json.load(fd)

    wallet: Web3Wallet = Web3Wallet(
        Account.decrypt(encrypted_json, getpass.getpass("Wallet password: "******"createdAt"], o["id"], o["marketId"]) for o in orders],
            columns=["Created", "OrderID", "Symbol"])
        order_data.Created = order_data.Created.astype(
            "datetime64[ms]").astype("datetime64[ns, UTC]")
        order_data = order_data.set_index("Created")

        while True:
            try:
                sample_ids: List[str] = list(order_data.sample(10).OrderID)
                tasks: List[asyncio.Future] = [
                    market.get_order(order_id) for order_id in sample_ids
                ]
                response_data: List[Dict[str,
                                         any]] = await asyncio.gather(*tasks)

                mismatches: int = 0
                for expected_id, response in zip(sample_ids, response_data):
                    returned_order_id = response["id"]
                    if returned_order_id != expected_id:
                        print(
                            f"    - Error: requested for {expected_id} but got {returned_order_id} back."
                        )
                        mismatches += 1

                if mismatches < 1:
                    print(
                        f"[{str(pd.Timestamp.utcnow())}] All fetches passed.")
                else:
                    print(
                        f"[{str(pd.Timestamp.utcnow())}] {mismatches} out of 10 requests failed."
                    )

                now: float = time.time()
                next_tick: float = now // 1 + 1
                await asyncio.sleep(next_tick - now)
            except asyncio.CancelledError:
                raise
    def _initialize_wallet(self, token_trading_pairs: List[str]):
        ethereum_rpc_url = global_config_map.get("ethereum_rpc_url").value
        erc20_token_addresses = get_erc20_token_addresses(token_trading_pairs)

        if self.acct is not None:
            chain_name: str = global_config_map.get("ethereum_chain_name").value
            self.wallet: Web3Wallet = Web3Wallet(
                private_key=self.acct.privateKey,
                backend_urls=[ethereum_rpc_url],
                erc20_token_addresses=erc20_token_addresses,
                chain=getattr(EthereumChain, chain_name),
            )
    def _initialize_wallet(self, token_trading_pairs: List[str]):
        if not using_wallet():
            return

        ethereum_wallet = global_config_map.get("ethereum_wallet").value
        private_key = Security._private_keys[ethereum_wallet]
        ethereum_rpc_url = global_config_map.get("ethereum_rpc_url").value
        erc20_token_addresses = get_erc20_token_addresses(token_trading_pairs)

        chain_name: str = global_config_map.get("ethereum_chain_name").value
        self.wallet: Web3Wallet = Web3Wallet(
            private_key=private_key,
            backend_urls=[ethereum_rpc_url],
            erc20_token_addresses=erc20_token_addresses,
            chain=getattr(EthereumChain, chain_name),
        )
Esempio n. 9
0
 def setUpClass(cls):
     cls.clock: Clock = Clock(ClockMode.REALTIME)
     cls.wallet = Web3Wallet(private_key=conf.web3_private_key_radar,
                             backend_urls=conf.test_web3_provider_list,
                             erc20_token_addresses=[conf.mn_zerox_token_address, conf.mn_weth_token_address],
                             chain=EthereumChain.MAIN_NET)
     cls.market: RadarRelayMarket = RadarRelayMarket(
         wallet=cls.wallet,
         ethereum_rpc_url=conf.test_web3_provider_list[0],
         order_book_tracker_data_source_type=OrderBookTrackerDataSourceType.EXCHANGE_API,
         symbols=["ZRX-WETH"]
     )
     print("Initializing Radar Relay market... ")
     cls.ev_loop: asyncio.BaseEventLoop = asyncio.get_event_loop()
     cls.clock.add_iterator(cls.wallet)
     cls.clock.add_iterator(cls.market)
     cls.stack = contextlib.ExitStack()
     cls._clock = cls.stack.enter_context(cls.clock)
     cls.ev_loop.run_until_complete(cls.wait_til_ready())
     print("Ready.")
Esempio n. 10
0
 def setUpClass(cls):
     cls.clock: Clock = Clock(ClockMode.REALTIME)
     cls.wallet = Web3Wallet(
         private_key=conf.dolomite_test_web3_private_key,
         backend_urls=conf.test_web3_provider_list,
         erc20_token_addresses=[conf.dolomite_test_web3_address],
         chain=EthereumChain.MAIN_NET,
     )
     cls.market: DolomiteMarket = DolomiteMarket(
         wallet=cls.wallet,
         ethereum_rpc_url=conf.test_web3_provider_list[0],
         order_book_tracker_data_source_type=OrderBookTrackerDataSourceType.EXCHANGE_API,
         isTestNet=True,
         trading_pairs=["WETH-DAI"],
     )
     print("Initializing Dolomite market... ")
     cls.ev_loop: asyncio.BaseEventLoop = asyncio.get_event_loop()
     cls.clock.add_iterator(cls.wallet)
     cls.clock.add_iterator(cls.market)
     cls.stack = contextlib.ExitStack()
     cls._clock = cls.stack.enter_context(cls.clock)
     cls.ev_loop.run_until_complete(cls.wait_til_ready())
     print("Ready.")
Esempio n. 11
0
 def setUpClass(cls):
     cls.clock: Clock = Clock(ClockMode.REALTIME)
     cls.wallet = Web3Wallet(private_key=conf.web3_test_private_key_ddex,
                             backend_urls=conf.test_ddex_web3_provider_list,
                             erc20_token_addresses=[
                                 conf.test_ddex_erc20_token_address_1,
                                 conf.test_ddex_erc20_token_address_2
                             ],
                             chain=EthereumChain.MAIN_NET)
     cls.market: IDEXMarket = IDEXMarket(
         idex_api_key=conf.idex_api_key,
         wallet=cls.wallet,
         ethereum_rpc_url=conf.test_ddex_web3_provider_list[0],
         order_book_tracker_data_source_type=OrderBookTrackerDataSourceType.
         EXCHANGE_API,
         symbols=[ETH_FXC])
     print("Initializing IDEX market... ")
     cls.ev_loop: asyncio.BaseEventLoop = asyncio.get_event_loop()
     cls.clock.add_iterator(cls.wallet)
     cls.clock.add_iterator(cls.market)
     cls.stack = contextlib.ExitStack()
     cls._clock = cls.stack.enter_context(cls.clock)
     cls.ev_loop.run_until_complete(cls.wait_til_ready())
     print("Ready.")
Esempio n. 12
0
import time

from hummingbot.client.config.config_helpers import get_erc20_token_addresses
from hummingbot.wallet.ethereum.web3_wallet import Web3Wallet
from hummingbot.wallet.ethereum.ethereum_chain import EthereumChain
from hummingbot.core.clock import Clock, ClockMode
from hummingbot.market.ddex.ddex_market import DDEXMarket
from hummingbot.core.data_type.order_book_tracker import OrderBookTrackerDataSourceType

token_addresses = get_erc20_token_addresses(["WETH", "DAI"])
zrx_addr = "0x74622073a4821dbfd046E9AA2ccF691341A076e1"
pkey = "7BB21B1C4C9C0A474BCD08C1BA3C31ACEA8B6840AC72A67EDD38CB32899CBF87"
server = "http://aws-mainnet-1.mainnet-rpc-headless.mainnet:8545"
clock = Clock(ClockMode.REALTIME)
wallet = Web3Wallet(pkey, [server],
                    token_addresses,
                    chain=EthereumChain.MAIN_NET)
market = DDEXMarket(
    wallet,
    server,
    order_book_tracker_data_source_type=OrderBookTrackerDataSourceType.
    EXCHANGE_API,
    trading_pairs=["WETH-DAI"])
clock.add_iterator(wallet)
clock.add_iterator(market)


async def main():
    begin = time.time() // 1
    while True:
        now = time.time() // 1