Mrweb Finance Token Logo

AMA [Mrweb Finance] Token

About AMA

Listings

Token 2 years
CoinGecko 19 months
CoinMarketCap 2 years
[CoinMarketCap] alert: Mrweb Finance has migrated contract address from v1 to v2. For official announcement, kindly visit here.
[CoinGecko] alert: MrWeb Finance has recently migrated from their https://bscscan.com/token/0xfc3da4a1b6fadab364039525dd2ab7c0c16521cd>old contract to a https://bscscan.com/token/0xa77d560e34bd6a8d7265f754b4fcd65d9a8e5619>new one. in 500:1 ratio, kindly refer to this https://mrwebfi.medium.com/ama-smart-contract-migration-2851df06f2f0>post for more information.
white paper

MrWeb Finance is a simplified and trusted Decentralized financial system for everyone.

Laser Scorebeta Last Audit: 2 November 2022

report
Token seems to be legit.

Owned.nominateNewOwner(address)._owner (contracts/Owned.sol#24) lacks a zero-check on :
- nominatedOwner = _owner (contracts/Owned.sol#25)
Check that the address is not zero.

Additional information: link

Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#201-221) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#213-216)
Do not use evm assembly.

Additional information: link

Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193):
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#191)
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65):
- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#63)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#137)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#164)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#158-167)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#35-38)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#87-89)
snapshot() should be declared external:
- MFTERC20.snapshot() (contracts/MFTERC20.sol#40-42)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#201-210)
recoverTokens(IERC20) should be declared external:
- TokensRecoverable.recoverTokens(IERC20) (contracts/TokensRecoverable.sol#19-21)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#70-72)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#113-117)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#181-185)
balanceOfAt(address,uint256) should be declared external:
- ERC20Snapshot.balanceOfAt(address,uint256) (@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol#106-110)
totalSupplyAt(uint256) should be declared external:
- ERC20Snapshot.totalSupplyAt(uint256) (@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol#115-119)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#62-64)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#136-140)
recoverBNB(uint256) should be declared external:
- TokensRecoverable.recoverBNB(uint256) (contracts/TokensRecoverable.sol#30-32)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#20-22)
Use the external attribute for functions never called from the contract.

Additional information: link

Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65) is never used and should be removed
Math.ceilDiv(uint256,uint256) (@openzeppelin/contracts/utils/math/Math.sol#39-42) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#114-120) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193) is never used and should be removed
Math.max(uint256,uint256) (@openzeppelin/contracts/utils/math/Math.sol#13-15) is never used and should be removed
Address.functionDelegateCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#174-176) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#60-67) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#45-58) is never used and should be removed
Counters.reset(Counters.Counter) (@openzeppelin/contracts/utils/Counters.sol#40-42) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#29-36) is never used and should be removed
Counters.decrement(Counters.Counter) (@openzeppelin/contracts/utils/Counters.sol#32-38) is never used and should be removed
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#21-23) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#147-149) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#69-80) is never used and should be removed
Math.min(uint256,uint256) (@openzeppelin/contracts/utils/math/Math.sol#20-22) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166) is never used and should be removed
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#85-87) is never used and should be removed
Remove unused functions.

Additional information: link

Different versions of Solidity are used:
- Version used: ['0.8.2', '^0.8.0', '^0.8.1']
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
- ^0.8.1 (@openzeppelin/contracts/utils/Address.sol#4)
- ^0.8.0 (@openzeppelin/contracts/utils/Arrays.sol#4)
- ^0.8.0 (@openzeppelin/contracts/utils/Context.sol#4)
- ^0.8.0 (@openzeppelin/contracts/utils/Counters.sol#4)
- ^0.8.0 (@openzeppelin/contracts/utils/math/Math.sol#4)
- 0.8.2 (contracts/MFTERC20.sol#3)
- 0.8.2 (contracts/Owned.sol#2)
- 0.8.2 (contracts/TokensRecoverable.sol#3)
Use one Solidity version.

Additional information: link

Parameter Owned.nominateNewOwner(address)._owner (contracts/Owned.sol#24) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Pragma version0.8.2 (contracts/MFTERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Arrays.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4) allows old versions
Pragma version0.8.2 (contracts/Owned.sol#2) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/math/Math.sol#4) allows old versions
Pragma version^0.8.1 (@openzeppelin/contracts/utils/Address.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Counters.sol#4) allows old versions
Pragma version0.8.2 (contracts/TokensRecoverable.sol#3) allows old versions
solc-0.8.2 is not recommended for deployment
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Context.sol#4) allows old versions
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

MFTERC20.constructor() (contracts/MFTERC20.sol#24-29) uses literals with too many digits:
- _mint(0x0aB68BaC7902418f6D4892D4Bc8c772D04Ea5526,100000000000000000000000000) (contracts/MFTERC20.sol#28)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

Holders:
No disclosed threats
No disclosed threats


Token is not listed at Mobula.Finance

Additional information: link

No disclosed threats

Price for AMA

News for AMA