async function callWithRetry(
  boundContractMethod,
  sendParams,
  totalAttempts = 3
) {
  return backoffRetrier(totalAttempts)(async () => {
    // @ts-ignore A newer version of Web3 is needed to include call in TS.
    return await boundContractMethod.call({
      from: "", // FIXME Need systemic handling of default from address.
      ...sendParams
    })
  })
}
/**
 * Calls the bound contract method (using `.call`, that is as a read-only call)
 * and retries up to `totalAttempts` number of times, or 3 if unspecified.
 *
 * @param {ContractSendMethod} boundContractMethod A bound web3 contract method
 *        with `estimateGas`, `send`, and `call` variants available.
 * @param {Partial<SendOptions>} [sendParams] The parameters to pass to `call`.
 * @param {number} [totalAttempts=3] Total attempts which should be performed in
 *        case of an error before rethrowing it to the caller.
 *
 * @return {Promise<any>} A promise to the result of sending the bound contract
 *         method. Fails the promise if gas estimation fails, extracting an
 *         on-chain error if possible.
 */
Calls the bound contract method (using `.call`, that is as a read-only call)
and retries up to `totalAttempts` number of times, or 3 if unspecified.



@return {Promise} A promise to the result of sending the bound contract
method. Fails the promise if gas estimation fails, extracting an
on-chain error if possible.
Calls the bound contract method ( using ` . call ` that is as a read - only call ) and retries up to ` totalAttempts ` number of times or 3 if unspecified . @return { Promise } A promise to the result of sending the bound contract method . Fails the promise if gas estimation fails extracting an on - chain error if possible .
async function callWithRetry(
  boundContractMethod,
  sendParams,
  totalAttempts = 3
) {
  return backoffRetrier(totalAttempts)(async () => {
    return await boundContractMethod.call({
      from: "", 
      ...sendParams
    })
  })
}
async function callWithRetry ( boundContractMethod , sendParams , totalAttempts = 3 ) { return backoffRetrier ( totalAttempts ) ( async ( ) => { return await boundContractMethod . call ( { from : "" , ... sendParams } ) } ) }
Calls the bound contract method (using `.call`, that is as a read-only call)
 and retries up to `totalAttempts` number of times, or 3 if unspecified.
Calls the bound contract method ( using ` . call ` that is as a read - only call ) and retries up to ` totalAttempts ` number of times or 3 if unspecified .
// @ts-ignore A newer version of Web3 is needed to include call in TS. // FIXME Need systemic handling of default from address.