Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
ConfigManager
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; contract ConfigManager is Ownable { address public platformWallet; address public susdToken; address public boomToken; address public feeManager; address public migratorManager; address public rewardManager; address public graduateFactory; address public graduateRouter; address public router; uint256 public minPurchaseAmount; uint256 public inactivePoolThreshold; uint256 public creationFee; // Constants for virtual dollar thresholds uint256 public constant START_THRESHOLD = 10_000 * 1e6; // 10,000 virtual dollars uint256 public constant FAMOUS_THRESHOLD = 20_000 * 1e6; // 20,000 virtual dollars uint256 public constant VIRAL_THRESHOLD = 40_000 * 1e6; // 40,000 virtual dollars uint256 public constant GRADUATE_THRESHOLD = 80_000 * 1e6; // 80,000 virtual dollars constructor() Ownable(msg.sender) { inactivePoolThreshold = 24 hours; minPurchaseAmount = 1 * 1e6; // 1 SUSD (1,000,000 base units) creationFee = 1_000; // 0.001 SUSD in base units } function setAddresses( address _platformWallet, address _susdToken, address _boomToken, address _feeManager, address _migratorManager, address _rewardManager, address _router ) public onlyOwner { platformWallet = _platformWallet; susdToken = _susdToken; boomToken = _boomToken; feeManager = _feeManager; migratorManager = _migratorManager; rewardManager = _rewardManager; router = _router; } function setParameters( uint256 _minPurchaseAmount, uint256 _inactivePoolThreshold, uint256 _creationFee ) public onlyOwner { minPurchaseAmount = _minPurchaseAmount; inactivePoolThreshold = _inactivePoolThreshold; creationFee = _creationFee; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FAMOUS_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GRADUATE_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"START_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VIRAL_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boomToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creationFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"graduateFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"graduateRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inactivePoolThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"migratorManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPurchaseAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"platformWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_platformWallet","type":"address"},{"internalType":"address","name":"_susdToken","type":"address"},{"internalType":"address","name":"_boomToken","type":"address"},{"internalType":"address","name":"_feeManager","type":"address"},{"internalType":"address","name":"_migratorManager","type":"address"},{"internalType":"address","name":"_rewardManager","type":"address"},{"internalType":"address","name":"_router","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPurchaseAmount","type":"uint256"},{"internalType":"uint256","name":"_inactivePoolThreshold","type":"uint256"},{"internalType":"uint256","name":"_creationFee","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"susdToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100408161005a565b5062015180600b55620f4240600a556103e8600c556100aa565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610547806100b96000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063aef98eab116100b8578063dce0b4e41161007c578063dce0b4e414610249578063eaa8ba7f14610252578063f2fde38b14610265578063f39690e414610278578063f887ea401461028b578063fa2af9da1461029e57600080fd5b8063aef98eab146101fb578063b3ae5d5b1461020e578063b47dbf221461021a578063ba02322514610223578063d0fb02031461023657600080fd5b80636f91ff2d116100ff5780636f91ff2d146101c1578063715018a6146101cd578063842e3004146101d557806386460474146101e15780638da5cb5b146101ea57600080fd5b80630f4ef8a61461013c57806324b951f91461016c57806334c5d2ce1461017f578063497818e2146101945780636a8ddac3146101ae575b600080fd5b60065461014f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b60035461014f906001600160a01b031681565b61019261018d366004610421565b6102b1565b005b6101a06404a817c80081565b604051908152602001610163565b60085461014f906001600160a01b031681565b6101a06412a05f200081565b6101926102c7565b6101a06409502f900081565b6101a0600b5481565b6000546001600160a01b031661014f565b60075461014f906001600160a01b031681565b6101a06402540be40081565b6101a0600a5481565b60055461014f906001600160a01b031681565b60045461014f906001600160a01b031681565b6101a0600c5481565b610192610260366004610469565b6102db565b6101926102733660046104ef565b610361565b60025461014f906001600160a01b031681565b60095461014f906001600160a01b031681565b60015461014f906001600160a01b031681565b6102b96103a4565b600a92909255600b55600c55565b6102cf6103a4565b6102d960006103d1565b565b6102e36103a4565b600180546001600160a01b03199081166001600160a01b03998a1617909155600280548216978916979097179096556003805487169588169590951790945560048054861693871693909317909255600580548516918616919091179055600680548416918516919091179055600980549092169216919091179055565b6103696103a4565b6001600160a01b03811661039857604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103a1816103d1565b50565b6000546001600160a01b031633146102d95760405163118cdaa760e01b815233600482015260240161038f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006060848603121561043657600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b038116811461046457600080fd5b919050565b600080600080600080600060e0888a03121561048457600080fd5b61048d8861044d565b965061049b6020890161044d565b95506104a96040890161044d565b94506104b76060890161044d565b93506104c56080890161044d565b92506104d360a0890161044d565b91506104e160c0890161044d565b905092959891949750929550565b60006020828403121561050157600080fd5b61050a8261044d565b939250505056fea2646970667358221220437fe5136aad7ceffc288b30ca5fbc3f9e2d231459b1486ea7fdd31ab1db469564736f6c63430008140033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063aef98eab116100b8578063dce0b4e41161007c578063dce0b4e414610249578063eaa8ba7f14610252578063f2fde38b14610265578063f39690e414610278578063f887ea401461028b578063fa2af9da1461029e57600080fd5b8063aef98eab146101fb578063b3ae5d5b1461020e578063b47dbf221461021a578063ba02322514610223578063d0fb02031461023657600080fd5b80636f91ff2d116100ff5780636f91ff2d146101c1578063715018a6146101cd578063842e3004146101d557806386460474146101e15780638da5cb5b146101ea57600080fd5b80630f4ef8a61461013c57806324b951f91461016c57806334c5d2ce1461017f578063497818e2146101945780636a8ddac3146101ae575b600080fd5b60065461014f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b60035461014f906001600160a01b031681565b61019261018d366004610421565b6102b1565b005b6101a06404a817c80081565b604051908152602001610163565b60085461014f906001600160a01b031681565b6101a06412a05f200081565b6101926102c7565b6101a06409502f900081565b6101a0600b5481565b6000546001600160a01b031661014f565b60075461014f906001600160a01b031681565b6101a06402540be40081565b6101a0600a5481565b60055461014f906001600160a01b031681565b60045461014f906001600160a01b031681565b6101a0600c5481565b610192610260366004610469565b6102db565b6101926102733660046104ef565b610361565b60025461014f906001600160a01b031681565b60095461014f906001600160a01b031681565b60015461014f906001600160a01b031681565b6102b96103a4565b600a92909255600b55600c55565b6102cf6103a4565b6102d960006103d1565b565b6102e36103a4565b600180546001600160a01b03199081166001600160a01b03998a1617909155600280548216978916979097179096556003805487169588169590951790945560048054861693871693909317909255600580548516918616919091179055600680548416918516919091179055600980549092169216919091179055565b6103696103a4565b6001600160a01b03811661039857604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103a1816103d1565b50565b6000546001600160a01b031633146102d95760405163118cdaa760e01b815233600482015260240161038f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006060848603121561043657600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b038116811461046457600080fd5b919050565b600080600080600080600060e0888a03121561048457600080fd5b61048d8861044d565b965061049b6020890161044d565b95506104a96040890161044d565b94506104b76060890161044d565b93506104c56080890161044d565b92506104d360a0890161044d565b91506104e160c0890161044d565b905092959891949750929550565b60006020828403121561050157600080fd5b61050a8261044d565b939250505056fea2646970667358221220437fe5136aad7ceffc288b30ca5fbc3f9e2d231459b1486ea7fdd31ab1db469564736f6c63430008140033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.