BFA Token Logo

BFA Token

ALERT: rug pull scam

About BFA

Listings

Not Found
Token 3 years

Website

Not Found

Description

Not Found

Social

Not Found

Laser Scorebeta Last Audit: 1 July 2022

report
Token seems to be a scam (type: rug pull scam).


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

Contract locking ether found:
Contract newToken (#273-717) has payable functions:
- newToken.receive() (#448)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.

Additional information: link


Contract ownership is not renounced (belongs to a wallet)

newToken._tokenTransferBuy(address,address,uint256,bool) (#519-561) performs a multiplication on the result of a division:
-_takeTransfer(sender,_FoundingNodeAddress,tAmount.div(100).mul(1),currentRate) (#534-539)
newToken._tokenTransferBuy(address,address,uint256,bool) (#519-561) performs a multiplication on the result of a division:
-_rOwned[recipient] = _rOwned[recipient].add(rAmount.div(100).mul(recipientRate)) (#557-559)
newToken._tokenTransferBuy(address,address,uint256,bool) (#519-561) performs a multiplication on the result of a division:
-_takeTransfer(sender,_LPFundAddress,tAmount.div(1000).mul(20),currentRate) (#541-546)
newToken._tokenTransferBuy(address,address,uint256,bool) (#519-561) performs a multiplication on the result of a division:
-Transfer(sender,recipient,tAmount.div(100).mul(recipientRate)) (#560)
newToken._tokenTransferSell(address,address,uint256,bool) (#564-609) performs a multiplication on the result of a division:
-_takeTransfer(sender,_destroyAddress,tAmount.div(100).mul(2),currentRate) (#579-584)
newToken._tokenTransferSell(address,address,uint256,bool) (#564-609) performs a multiplication on the result of a division:
-_takeTransfer(sender,_FoundingNodeAddress,tAmount.div(1000).mul(20),currentRate) (#586-591)
newToken._tokenTransferSell(address,address,uint256,bool) (#564-609) performs a multiplication on the result of a division:
-_rOwned[recipient] = _rOwned[recipient].add(rAmount.div(1000).mul(recipientRate)) (#605-607)
newToken._tokenTransferSell(address,address,uint256,bool) (#564-609) performs a multiplication on the result of a division:
-Transfer(sender,recipient,tAmount.div(1000).mul(recipientRate)) (#608)
newToken._tokenTransferSell(address,address,uint256,bool) (#564-609) performs a multiplication on the result of a division:
-_takeTransfer(sender,_LPFundAddress,tAmount.div(1000).mul(20),currentRate) (#593-598)
newToken._tokenTransfer(address,address,uint256,bool) (#612-632) performs a multiplication on the result of a division:
-_rOwned[recipient] = _rOwned[recipient].add(rAmount.div(100).mul(recipientRate)) (#628-630)
newToken._tokenTransfer(address,address,uint256,bool) (#612-632) performs a multiplication on the result of a division:
-Transfer(sender,recipient,tAmount.div(100).mul(recipientRate)) (#631)
newToken._takeInviterFee(address,address,uint256,uint256) (#651-687) performs a multiplication on the result of a division:
-curTAmount = tAmount.div(1000).mul(rate) (#682)
Consider ordering multiplication before division.

Additional information: link

newToken._tokenTransferSell(address,address,uint256,bool).rate (#576) is a local variable never initialized
newToken._tokenTransferBuy(address,address,uint256,bool).rate (#531) is a local variable never initialized
newToken._tokenTransfer(address,address,uint256,bool).rate (#624) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.

Additional information: link

newToken.allowance(address,address).owner (#350) shadows:
- Ownable.owner() (#111-113) (function)
newToken._approve(address,address,uint256).owner (#476) shadows:
- Ownable.owner() (#111-113) (function)
Rename the local variables that shadow another component.

Additional information: link

newToken.constructor(address).tokenOwner (#307) lacks a zero-check on :
- _default = tokenOwner (#317)
newToken.changeRouter(address).router (#704) lacks a zero-check on :
- uniswapV2Pair = router (#705)
newToken.changeOtherRouter(address).router (#708) lacks a zero-check on :
- otherPair = router (#709)
newToken.changeDefault(address).router (#712) lacks a zero-check on :
- _default = router (#713)
Check that the address is not zero.

Additional information: link

Context._msgData() (#90-92) is never used and should be removed
SafeMath.mod(uint256,uint256) (#267-270) is never used and should be removed
newToken._reflectFee(uint256,uint256) (#646-649) is never used and should be removed
Remove unused functions.

Additional information: link

solc-0.8.15 is not recommended for deployment
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.

Additional information: link

Contract newToken (#273-717) is not in CapWords
Variable newToken._tTotal (#285) is not in mixedCase
Variable newToken._rTotal (#286) is not in mixedCase
Variable newToken._tFeeTotal (#287) is not in mixedCase
Variable newToken._default (#294) is not in mixedCase
Variable newToken._LPFundAddress (#296) is not in mixedCase
Variable newToken._FoundingNodeAddress (#297) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

newToken.constructor(address) (#307-319) uses literals with too many digits:
- _tTotal = 2100000 * 10 ** _decimals (#312)
newToken.slitherConstructorVariables() (#273-717) uses literals with too many digits:
- _destroyAddress = address(0x000000000000000000000000000000000000dEaD) (#295)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

newToken._tOwned (#277) is never used in newToken (#273-717)
newToken.buyAmount (#278) is never used in newToken (#273-717)
Remove unused state variables.

Additional information: link

newToken._FoundingNodeAddress (#297) should be constant
newToken._LPFundAddress (#296) should be constant
newToken._destroyAddress (#295) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#130-132)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#138-141)
name() should be declared external:
- newToken.name() (#321-323)
symbol() should be declared external:
- newToken.symbol() (#325-327)
decimals() should be declared external:
- newToken.decimals() (#329-331)
totalSupply() should be declared external:
- newToken.totalSupply() (#333-335)
transfer(address,uint256) should be declared external:
- newToken.transfer(address,uint256) (#341-348)
allowance(address,address) should be declared external:
- newToken.allowance(address,address) (#350-357)
approve(address,uint256) should be declared external:
- newToken.approve(address,uint256) (#359-366)
transferFrom(address,address,uint256) should be declared external:
- newToken.transferFrom(address,address,uint256) (#368-383)
increaseAllowance(address,uint256) should be declared external:
- newToken.increaseAllowance(address,uint256) (#385-396)
decreaseAllowance(address,uint256) should be declared external:
- newToken.decreaseAllowance(address,uint256) (#398-412)
totalFees() should be declared external:
- newToken.totalFees() (#414-416)
excludeFromFee(address) should be declared external:
- newToken.excludeFromFee(address) (#431-433)
includeInFee(address) should be declared external:
- newToken.includeInFee(address) (#435-437)
excludeFromVip(address) should be declared external:
- newToken.excludeFromVip(address) (#439-441)
includeInVip(address) should be declared external:
- newToken.includeInVip(address) (#443-445)
getInviter(address) should be declared external:
- newToken.getInviter(address) (#455-457)
getInviterSunSize(address) should be declared external:
- newToken.getInviterSunSize(address) (#459-461)
isExcludedFromFee(address) should be declared external:
- newToken.isExcludedFromFee(address) (#471-473)
pushList(address[],address) should be declared external:
- newToken.pushList(address[],address) (#689-695)
pushOneList(address,address) should be declared external:
- newToken.pushOneList(address,address) (#698-702)
changeRouter(address) should be declared external:
- newToken.changeRouter(address) (#704-706)
changeOtherRouter(address) should be declared external:
- newToken.changeOtherRouter(address) (#708-710)
changeDefault(address) should be declared external:
- newToken.changeDefault(address) (#712-714)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token seems to be untradeable: there is no PancakeSwap trading pair and no trading volumes. Ignore for presale.


Unable to find Telegram and Twitter accounts


Unable to find website, listings and other project-related information


Young tokens have high risks of scam / price dump / death


Token has no active CoinGecko listing / rank


Token has no active CoinMarketCap listing / rank

Price for BFA