А что тут не так c функцией?
uint256 public constant TokensForOneEth = 20000;
function () external payable {
uint256 amount = msg.value * TokensForOneEth / 10000000000;
_balances[msg.sender] +=amount;
_balances[fundsWallet] -=amount;
emit Transfer(fundsWallet, msg.sender, amount);
fundsWallet.transfer(msg.value);
}