ETH Price: $2,268.97 (+2.35%)
Gas: 1.22 Gwei

Contract

0x37510211032c82E6fFe134768AAad360e8B9C71D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Fee Address168935342023-03-23 23:35:11533 days ago1679614511IN
0x37510211...0e8B9C71D
0 ETH0.0006129621.20406098
Set Fee Eth166280842023-02-14 16:08:35571 days ago1676390915IN
0x37510211...0e8B9C71D
0 ETH0.0008495335.65566351
0x60806040165445492023-02-03 0:00:23582 days ago1675382423IN
 Create: FeeSettings
0 ETH0.0080576225.64024434

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FeeSettings

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : FeeSettings.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

import '../lib/ownable/Ownable.sol';
import './IFeeSettings.sol';

contract FeeSettings is IFeeSettings, Ownable {
    address _feeAddress;
    uint256 _feePercent = 300; // 0.3%
    uint256 constant _maxFeePercent = 1000; // max fee is 1%
    uint256 _feeEth = 1e16;
    uint256 constant _maxFeeEth = 35e15; // max fixed eth fee is 0.035 eth

    constructor() {
        _feeAddress = msg.sender;
    }

    function feeAddress() external view returns (address) {
        return _feeAddress;
    }

    function feePercent() external view returns (uint256) {
        return _feePercent;
    }

    function feeDecimals() external pure returns(uint256){
        return 100000;
    }

    function feeEth() external view returns (uint256) {
        return _feeEth;
    }

    function setFeeAddress(address newFeeAddress) public onlyOwner {
        _feeAddress = newFeeAddress;
    }

    function setFeePercent(uint256 newFeePercent) external onlyOwner {
        require(newFeePercent >= 0 && newFeePercent <= _maxFeePercent);
        _feePercent = newFeePercent;
    }

    function setFeeEth(uint256 newFeeEth) external onlyOwner {
        require(newFeeEth >= 0 && newFeeEth <= _maxFeeEth);
        _feeEth = newFeeEth;
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

import './IOwnable.sol';

contract Ownable is IOwnable {
    address _owner;

    constructor() {
        _owner = msg.sender;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, 'caller is not the owner');
        _;
    }

    function owner() external virtual view returns (address) {
        return _owner;
    }

    function transferOwnership(address newOwner) external override onlyOwner {
        _owner = newOwner;
    }
}

File 3 of 4 : IFeeSettings.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

interface IFeeSettings {
    function feeAddress() external returns (address); // address to pay fee

    function feePercent() external returns (uint256); // fee in 1/decimals for deviding values

    function feeDecimals() external view returns(uint256); // fee decimals

    function feeEth() external returns (uint256); // fee value for not dividing deal points
}

File 4 of 4 : IOwnable.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

interface IOwnable {
    function owner() external view returns (address);

    function transferOwnership(address newOwner) external;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeeEth","type":"uint256"}],"name":"setFeeEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeePercent","type":"uint256"}],"name":"setFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405261012c600255662386f26fc1000060035534801561002157600080fd5b5060008054336001600160a01b0319918216811783556001805490921617905561031c90819061005190396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638705fcd4116100665780638705fcd4146100f15780638da5cb5b14610104578063a3b73aff14610115578063cc0f178614610128578063f2fde38b1461013157600080fd5b806341275358146100985780635e9dc44c146100c25780637ce3489b146100d45780637fd6f15c146100e9575b600080fd5b6001546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6003545b6040519081526020016100b9565b6100e76100e2366004610266565b610144565b005b6002546100c6565b6100e76100ff36600461027f565b61018b565b6000546001600160a01b03166100a5565b6100e7610123366004610266565b6101d7565b620186a06100c6565b6100e761013f36600461027f565b61021a565b6000546001600160a01b031633146101775760405162461bcd60e51b815260040161016e906102af565b60405180910390fd5b6103e881111561018657600080fd5b600255565b6000546001600160a01b031633146101b55760405162461bcd60e51b815260040161016e906102af565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146102015760405162461bcd60e51b815260040161016e906102af565b667c58508723800081111561021557600080fd5b600355565b6000546001600160a01b031633146102445760405162461bcd60e51b815260040161016e906102af565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561027857600080fd5b5035919050565b60006020828403121561029157600080fd5b81356001600160a01b03811681146102a857600080fd5b9392505050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060408201526060019056fea2646970667358221220124acbfcd35d9f888bf4a1bc7049ebd5134ef0e2527be1eb9aa3b7c1a08e73c464736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638705fcd4116100665780638705fcd4146100f15780638da5cb5b14610104578063a3b73aff14610115578063cc0f178614610128578063f2fde38b1461013157600080fd5b806341275358146100985780635e9dc44c146100c25780637ce3489b146100d45780637fd6f15c146100e9575b600080fd5b6001546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6003545b6040519081526020016100b9565b6100e76100e2366004610266565b610144565b005b6002546100c6565b6100e76100ff36600461027f565b61018b565b6000546001600160a01b03166100a5565b6100e7610123366004610266565b6101d7565b620186a06100c6565b6100e761013f36600461027f565b61021a565b6000546001600160a01b031633146101775760405162461bcd60e51b815260040161016e906102af565b60405180910390fd5b6103e881111561018657600080fd5b600255565b6000546001600160a01b031633146101b55760405162461bcd60e51b815260040161016e906102af565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146102015760405162461bcd60e51b815260040161016e906102af565b667c58508723800081111561021557600080fd5b600355565b6000546001600160a01b031633146102445760405162461bcd60e51b815260040161016e906102af565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561027857600080fd5b5035919050565b60006020828403121561029157600080fd5b81356001600160a01b03811681146102a857600080fd5b9392505050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060408201526060019056fea2646970667358221220124acbfcd35d9f888bf4a1bc7049ebd5134ef0e2527be1eb9aa3b7c1a08e73c464736f6c63430008110033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.