OpenZepplin simple crowdsale - can't buy tokens

I have a very simple OpenZepplin (v2.5.1) crowdsale contract deployed on Rinkeby Testnet. But when I try to buy tokens it fails with SafeERC20: low-level call failed Why?

pragma solidity ^0.5.5;

import '@openzeppelin/contracts/crowdsale/Crowdsale.sol';
import '@openzeppelin/contracts/crowdsale/emission/AllowanceCrowdsale.sol';
import '@openzeppelin/contracts/crowdsale/validation/TimedCrowdsale.sol';
import '@openzeppelin/contracts/crowdsale/distribution/PostDeliveryCrowdsale.sol';
import '@openzeppelin/contracts/crowdsale/price/IncreasingPriceCrowdsale.sol';

contract MyCrowdsale is Crowdsale, TimedCrowdsale, AllowanceCrowdsale, PostDeliveryCrowdsale, IncreasingPriceCrowdsale {
    constructor(
        uint256 openingTime,
        uint256 closingTime,
        uint256 initialRate,
        uint256 finalRate,
        address payable wallet,
        IERC20 token
    )
    public
    Crowdsale(initialRate, wallet, token)
    TimedCrowdsale(openingTime, closingTime)
    IncreasingPriceCrowdsale(initialRate, finalRate)
    AllowanceCrowdsale(wallet)
    PostDeliveryCrowdsale()
    {

    }
}

It's deployed here: https://rinkeby.etherscan.io/address/0xd2a5f2ab4d0371b615663caf3213e20f945786e8#code

I have a feeling this has something to do with AllowanceCrowdsale, however I believe I already granted the contract allowance to sell the token, since remainingTokens() returns the correct amount of tokens for sale (prior to approving the allowance it returned 0).

You can easily test with the link above, using web3 on etherscan:

enter image description here

Related Questions