0% Tax / Fee
Currently, transacting the BagSoccer token ($BAGS) does not incur any type of fee or tax.
However, there are Reflective and Liquidity Tax functions within the code. The goal and purpose of this is to have a tool that, if the community decides for us to put it into action, rewards holders in two ways: Receiving tokens just for holding in their wallet and increasing BAGS/BNB liquidity.
How does Liquidity Tax work? The liquidity contribution for each transaction is structured as follows: Every time an address (regardless of whether it is a contract or a wallet) interacts with $BAGS within the BSC blockchain (different if it is off-chain), the $BAGS contract will retain a % of that transaction. Once the contract reaches the amount of 5,000 $BAGS held, it will settle half (2,500) at the market price per BNB and add it, along with the remaining 2,500 $BAGS, to the liquidity pair.
//this method is responsible for taking all fee, if takeFee is true
function _tokenTransfer(
address sender,
address recipient,
uint256 amount,
bool takeFee
) private {
if (!takeFee) removeAllFee();
if (_isExcluded[sender] && !_isExcluded[recipient]) {
_transferFromExcluded(sender, recipient, amount);
} else if (!_isExcluded[sender] && _isExcluded[recipient]) {
_transferToExcluded(sender, recipient, amount);
} else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
_transferStandard(sender, recipient, amount);
} else if (_isExcluded[sender] && _isExcluded[recipient]) {
_transferBothExcluded(sender, recipient, amount);
} else {
_transferStandard(sender, recipient, amount);
}
if (!takeFee) restoreAllFee();
}
function _transferStandard(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tLiquidity
) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferToExcluded(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tLiquidity
) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferFromExcluded(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tLiquidity
) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
//New Pancakeswap router version?
function setRouterAddress(address newRouter, bool createPair)
public
onlyOwner
{
IUniswapV2Router02 _newPancakeRouter = IUniswapV2Router02(newRouter);
if (createPair) {
uniswapV2Pair = IUniswapV2Factory(_newPancakeRouter.factory()).createPair(
address(this),
_newPancakeRouter.WETH()
);
}
uniswapV2Router = _newPancakeRouter;
}
}
The code excerpt displayed above is between lines 766 and 865 of the code published and verified by BSCScan as well as Audited by SolidProof and Certik.
Additionally, we attach the link to the liquidity token to be able to visualize each time liquidity is added to the BAGS BUSD pair.
Link al token de liquidez.
Do not send tokens directly to the contract. The contract must only be used to interact with it through the Exchanges (DEX & CEX)
Last modified 4mo ago