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.")
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), )
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.")
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.")
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.")
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