From 20c540529d99da18d5ff0bfb13bbbeefcd33eff7 Mon Sep 17 00:00:00 2001 From: Kirill Fedoseev Date: Tue, 26 Nov 2019 18:35:05 +0300 Subject: [PATCH] Waiting in side oracle until connection with rpc is successful --- .circleci/config.yml | 2 +- src/ethereum-testnet/side-oracle/index.js | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cb370fa..bccbbec 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -90,7 +90,7 @@ orbs: - save_docker_logs: validator: 3 - run: - name: "Save ganache logs" + name: "Save ethereum logs" command: | mkdir -p ./artifacts/logs/ethereum docker logs ethereum-testnet_side-oracle_1 > ./artifacts/logs/ethereum/side-oracle.log diff --git a/src/ethereum-testnet/side-oracle/index.js b/src/ethereum-testnet/side-oracle/index.js index 30632a3..d90ecfc 100644 --- a/src/ethereum-testnet/side-oracle/index.js +++ b/src/ethereum-testnet/side-oracle/index.js @@ -58,14 +58,22 @@ async function handleNewMessage(event) { } async function initialize() { - await delay(5000) - sideProvider = new ethers.providers.JsonRpcProvider(SIDE_RPC_URL) - homeProvider = new ethers.providers.JsonRpcProvider(HOME_RPC_URL) - homeWallet = new ethers.Wallet(HOME_PRIVATE_KEY, homeProvider) - bridge = new ethers.Contract(HOME_BRIDGE_ADDRESS, bridgeAbi, homeWallet) - sharedDb = new ethers.Contract(SIDE_SHARED_DB_ADDRESS, sharedDbAbi, sideProvider) + while (true) { + try { + sideProvider = new ethers.providers.JsonRpcProvider(SIDE_RPC_URL) + homeProvider = new ethers.providers.JsonRpcProvider(HOME_RPC_URL) - nonce = await homeWallet.getTransactionCount() + homeWallet = new ethers.Wallet(HOME_PRIVATE_KEY, homeProvider) + bridge = new ethers.Contract(HOME_BRIDGE_ADDRESS, bridgeAbi, homeWallet) + sharedDb = new ethers.Contract(SIDE_SHARED_DB_ADDRESS, sharedDbAbi, sideProvider) + + nonce = await homeWallet.getTransactionCount() + break + } catch (e) { + console.log('Cannot create providers') + await delay(1000) + } + } } async function loop() {