SteleFundSetting

Description:

Smart contract deployed on Ethereum with Factory features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 600
    },
    "viaIR": true,
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  },
  "sources": {
    "contracts/SteleFundSetting.sol": {
      "content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

import './interfaces/ISteleFundSetting.sol';

interface IERC20Decimals {
  function decimals() external view returns (uint8);
  function balanceOf(address account) external view returns (uint256);
}

contract SteleFundSetting is ISteleFundSetting {
  address public override owner;
  address public override weth9;
  address public override usdc;

  uint256 public override managerFee = 100; // 100 : 1%
  uint256 public override maxTokens = 20; // Maximum number of different tokens in portfolio
  uint256 public override maxSlippage = 300; // Maximum 3% slippage allowed (300 = 3%)
  
  mapping(address => bool) public override isInvestable;

  modifier onlyOwner() {
    require(msg.sender == owner, 'NO');
    _;
  }

  constructor(address _weth9, address _usdc) {
    owner = msg.sender;
    weth9 = _weth9;
    usdc = _usdc;
    isInvestable[weth9] = true;
    isInvestable[usdc] = true;
    emit SettingCreated();
  }

  function setOwner(address newOwner) external override onlyOwner {
    address oldOwner = owner;
    owner = newOwner;
    emit OwnerChanged(oldOwner, newOwner);
  }

  function setManagerFee(uint256 _managerFee) external override onlyOwner {
    managerFee = _managerFee;
    emit ManagerFeeChanged(_managerFee);
  }

  function setMaxTokens(uint256 _maxTokens) external override onlyOwner {
    require(_maxTokens > 0, 'Invalid max tokens');
    maxTokens = _maxTokens;
    emit MaxTokensChanged(_maxTokens);
  }

  function setMaxSlippage(uint256 _maxSlippage) external override onlyOwner {
    require(_maxSlippage <= 5000, 'Slippage too high'); // Maximum 50% to prevent abuse
    maxSlippage = _maxSlippage;
    emit MaxSlippageChanged(_maxSlippage);
  }

  function setToken(address _token) external override onlyOwner {
    require(isInvestable[_token] == false, 'WLT');
    isInvestable[_token] = true;
    emit AddToken(_token);
  }

  function resetToken(address _token) external override onlyOwner {
    require(_token != weth9 && isInvestable[_token] == true, 'WLT');
    isInvestable[_token] = false;
    emit RemoveToken(_token);
  }
}"
    },
    "contracts/interfaces/ISteleFundSetting.sol": {
      "content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

interface ISteleFundSetting {
  event SettingCreated();
  event OwnerChanged(address oldOwner, address newOwner);
  event ManagerFeeChanged(uint256 managerFee);
  event AddToken(address indexed token);
  event RemoveToken(address indexed token);
  event MaxTokensChanged(uint256 maxTokens);
  event MaxSlippageChanged(uint256 maxSlippage);

  function owner() external view returns (address);
  function weth9() external view returns (address);
  function usdc() external view returns (address);
  function managerFee() external view returns (uint256);
  function maxTokens() external view returns (uint256);
  function maxSlippage() external view returns (uint256);
  function isInvestable(address _token) external view returns (bool);

  function setOwner(address _owner) external;
  function setManagerFee(uint256 _managerFee) external;
  function setMaxTokens(uint256 _maxTokens) external;
  function setMaxSlippage(uint256 _maxSlippage) external;
  function setToken(address _token) external;
  function resetToken(address _token) external;
}"
    }
  }
}}

Tags:
Factory|addr:0x2fa9eae18d1b6b47ad950404651043258a8c81d2|verified:true|block:23423309|tx:0x14103fc7d16083b9f634f0edb4997c04e022cc959db3e230b0418abfe981cb70|first_check:1758719896

Submitted on: 2025-09-24 15:18:20

Comments

Log in to comment.

No comments yet.