Unable to query or get any response from BscScan contract

86 views Asked by At

The following code:

const { JsonRpcProvider } = require("@ethersproject/providers")
const { Contract } = require("ethers") 
const { Wallet } = require("@ethersproject/wallet");

const abi = require('./abi.json');

const GLOBAL_CONFIG = { 
  PPV2_ADDRESS: "0x18B2A687610328590Bc8F2e5fEdDe3b582A49cdA",
  PRIVATE_KEY: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  BSC_RPC: "https://bsc-mainnet.public.blastapi.io"
};

const signer = new Wallet(GLOBAL_CONFIG.PRIVATE_KEY, new JsonRpcProvider(GLOBAL_CONFIG.BSC_RPC));

const contract = new Contract(GLOBAL_CONFIG.PPV2_ADDRESS, abi, signer)

const predictionContract = contract.connect(
  signer
)

predictionContract.on("StartRound", async (epoch) => {
    console.log("\nStarted Epoch", epoch.toString())
});

It has been working perfectly for months. However, last night it stopped. No new builds/code changes on my end. I've been trying everything I can think of but nothing. The signer seems to bring back my wallet details ok. I can also see all the functions on the predictionContract but can't get it to return the current Epoch value etc. As you've probably already noticed, I'm not much of a coder, so any help in understanding this would be amazing.

1

There are 1 answers

0
steve On

After some more time thinking, I noticed that the contract seemed pretty busy and decided to try a different RPC (I'd already tried 3 before). Seems to be working now, but not exactly scientific. Is there any way to monitor the time requests take and where the lag is? I had a design idea to test a multiple of RPCs during initiation and then use the fastest / most reliable, but no idea where to start with that!