OpenZeppelin Test Helpers (OpenZeppelin Solidity version): "web3.currentProvider.sendAsync is not a function"

Hello @abcoathup
I was trying to use the increaseTimeto function of Openzepplin test helpers.
I was importing from - openzeppelin-solidity/test/helpers/increaseTime

However I got an error which(I assume) is related to web3 breaking changes -

ERROR- “web3.currentProvider.sendAsync is not a function

Because of this web3 error I am not being able to proceed with my time tests using Openzepplin.

How to solve this .?

Should I use any other upgraded version?

1 Like

Hi @zaryab2000,

Welcome to the community forum :wave:

Thanks for posting here.

It looks like you are using the test helpers from an older version of OpenZeppelin Contracts

I recommend using the latest version of OpenZeppelin Test Helpers which is a separate package.

npm install --save-dev @openzeppelin/test-helpers

You can then use time functionality in your tests. See the documentation for details:

A simple test example (based from the Learn guides:

// test/Box.test.js
// Load dependencies
const { expect } = require('chai');

// Import utilities from Test Helpers
const { BN, time } = require('@openzeppelin/test-helpers');

// Load compiled artifacts
const Box = artifacts.require('Box');

// Start test block
contract('Box', function ([ owner, other ]) {

  // Use large integers ('big numbers')
  const value = new BN('42');

  beforeEach(async function () { = await{ from: owner });

  it('retrieve returns a value previously stored', async function () {
    await, { from: owner });

    await time.increase(10);

    // Use large integer comparisons

Testing Box.sol (from the Learn guides)

// contracts/Box.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

contract Box {
    uint256 private value;

    // Emitted when the stored value changes
    event ValueChanged(uint256 newValue);

    // Stores a new value in the contract
    function store(uint256 newValue) public {
        value = newValue;
        emit ValueChanged(newValue);

    // Reads the last stored value
    function retrieve() public view returns (uint256) {
        return value;

Running the test:

$ npx truffle test

Compiling your contracts...
> Compiling ./contracts/Box.sol
> Compiling ./contracts/Migrations.sol
> Artifacts written to /tmp/test--1751-QgwJ7hZSF9IO
> Compiled successfully using:
   - solc: 0.6.12+commit.27d51765.Emscripten.clang

  Contract: Box
    ✓ retrieve returns a value previously stored (100ms)

  1 passing (182ms)