The provided Solidity contract implements a BEP-20 token for the TapMoon token with the ticker TAPS. Here's a detailed breakdown of its components and behavior, reflecting the correct token name, ticker, and total supply.
Key Features of the Contract:
BEP-20 Functionality:
Implements the basic BEP-20 token standard (totalSupply, balanceOf, transfer, approve, transferFrom, etc.).
Uses the SafeMath library to prevent overflow and underflow issues during arithmetic operations.
Token Supply:
The total supply is fixed at 10,500,000 TAPS tokens, each with 18 decimals.
Tokens are minted during the contract's deployment (_mint function), and the deployer (owner) initially receives the full supply.
Whitelist and Restrictions:
There is a whitelist mechanism via isWhiteList, which determines whether an address can bypass certain transaction limits.
Addresses that are not on the whitelist are subject to additional restrictions in the _transfer function.
PancakeSwap Integration:
The contract has an integration with PancakeSwap, as indicated by the pancakeswap address.
The contract allows the owner to set the PancakeSwap address and control whether the price contract is active (priceContractactive).
Transfers involving PancakeSwap addresses are restricted by a user token limit and possibly by a daily selling limit.
ROI and Token Limits:
There is a system for tracking and limiting the amount of tokens an address can transfer/sell within a day. This is done using Buying_From_pancakeswap, ROI_Amount, and sellTime mappings.
A specific daily limit is applied to each address, calculated based on the amount they bought from PancakeSwap (Buying_From_pancakeswap) and a configurable buyingPercentage.
Price Monitoring:
The contract interfaces with an external price contract (token_price_contract) that provides the current price of the token.
If the price contract is active, the contract will only allow transfers that involve a price greater than or equal to a specified minimum price (minimumPrice).
Admin Functions:
The contract owner can add new admin addresses (adminROIaddress) and set various parameters like the PancakeSwap address, token limits, price contract, and whitelist status.
Minting and Burning:
The contract has minting and burning functionality (_mint and _burn), enabling the creation or destruction of tokens. These functions are restricted to the owner.
Allowance Functions:
The contract supports the standard BEP-20 allowance mechanism (approve, transferFrom, increaseAllowance, decreaseAllowance), with additional safety checks via SafeMath for ensuring the proper transfer of allowances.
Key Functionality and Modifiers:
Daily Transfer Limit:
Each user has a daily transfer limit based on the amount they bought from PancakeSwap. This limit can be increased by receiving additional tokens from certain sources, such as the admin's ROI address.
Whitelisted Addresses:
Users on the whitelist are exempt from some of the restrictions, such as daily transfer limits or token limits.
Owner Control:
The owner of the contract has control over various parameters:
Setting the PancakeSwap address (addpancakeswap).
Adding and removing addresses from the whitelist (add_WhiteList_Status).
Modifying token limits (Changebuyinglimit, addUserTokenlimit).
Linking the contract to an external price contract (add_price_contract).
Enabling or disabling the price check (add_price_limit).