false
false

Contract Address Details

0xFD7A0e0A629402d92Cb665d2A64fE6D22Bf08a66

Token
KuSwapV3 Token (KUSv3)
Creator
0x0348f8–a27d70 at 0x58c3f9–3d6fd5
Balance
0 KCS ( )
Tokens
Fetching tokens...
Transactions
3,405 Transactions
Transfers
0 Transfers
Gas Used
150,652,541
Last Balance Update
47760352
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify.
Contract name:
Kus




Optimization enabled
true
Compiler version
v0.8.13+commit.abaa5c0e




Optimization runs
200
EVM Version
default




Verified at
2023-08-30T21:00:12.059622Z

Constructor Arguments

0x0000000000000000000000000348f836ced3b0003b59cf2ae3fe64995fa27d700000000000000000000000000000000000000000002051a94d8aaf3dee540000

Arg [0] (address) : 0x0348f836ced3b0003b59cf2ae3fe64995fa27d70
Arg [1] (uint256) : 39071261000000000000000000

              

Contract source code

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.13;

interface IKus {
    function totalSupply() external view returns (uint);
    function balanceOf(address) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address, uint) external returns (bool);
    function transferFrom(address,address,uint) external returns (bool);
    function mint(address, uint) external returns (bool);
    function minter() external returns (address);
}

contract Kus is IKus {

    string public constant name = "KuSwapV3 Token";
    string public constant symbol = "KUSv3";
    uint8 public constant decimals = 18;
    uint public totalSupply = 0;

    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    address public minter;
    address public msTimelock;
    uint public maxSupply = 47000000 ether;

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    constructor(address initialSupplyRecipient, uint initialAmount) {
        require(initialAmount <= maxSupply, "Exceeds max supply");
        minter = msg.sender;
        msTimelock = msg.sender; // changed to timelock
        _mint(initialSupplyRecipient, initialAmount);
    }

    // No checks as its meant to be once off to set minting rights to KCC Minter
    function setMinter(address _minter) external {
        require(msg.sender == minter, "Only minter");
        minter = _minter;
    }

    function approve(address _spender, uint _value) external returns (bool) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function _mint(address _to, uint _amount) internal returns (bool) {
        require(totalSupply + _amount <= maxSupply, "Exceeds max supply");
        totalSupply += _amount;
        unchecked {
            balanceOf[_to] += _amount;
        }
        emit Transfer(address(0x0), _to, _amount);
        return true;
    }

    function _transfer(address _from, address _to, uint _value) internal returns (bool) {
        balanceOf[_from] -= _value;
        unchecked {
            balanceOf[_to] += _value;
        }
        emit Transfer(_from, _to, _value);
        return true;
    }

    function transfer(address _to, uint _value) external returns (bool) {
        return _transfer(msg.sender, _to, _value);
    }

    function transferFrom(address _from, address _to, uint _value) external returns (bool) {
        uint allowed_from = allowance[_from][msg.sender];
        if (allowed_from != type(uint).max) {
            allowance[_from][msg.sender] -= _value;
        }
        return _transfer(_from, _to, _value);
    }

    function mint(address account, uint amount) external returns (bool) {
        require(msg.sender == minter, "Only minter");
        _mint(account, amount);
        return true;
    }
    
    function setMaxSupply(uint _maxSupply) external {
        require(msg.sender == msTimelock, "Only msTimelock");
        require(_maxSupply >= totalSupply, "New maxSupply must be >= totalSupply");
        maxSupply = _maxSupply;
    }

    function setMSTimelock(address _msTimelock) external {
        require(msg.sender == msTimelock, "Only msTimelock");
        msTimelock = _msTimelock;
    }
}
        

Contract ABI

[{"type":"constructor","inputs":[{"type":"address","name":"initialSupplyRecipient","internalType":"address"},{"type":"uint256","name":"initialAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"_spender","internalType":"address"},{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"mint","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"minter","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"msTimelock","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMSTimelock","inputs":[{"type":"address","name":"_msTimelock","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMaxSupply","inputs":[{"type":"uint256","name":"_maxSupply","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMinter","inputs":[{"type":"address","name":"_minter","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"_from","internalType":"address"},{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","indexed":true},{"type":"address","name":"spender","indexed":true},{"type":"uint256","name":"value","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","indexed":true},{"type":"address","name":"to","indexed":true},{"type":"uint256","name":"value","indexed":false}],"anonymous":false}]
              

Contract Creation Code

Verify & Publish
0x6080604052600080556a26e0a31af79fa08f00000060055534801561002357600080fd5b50604051610aaa380380610aaa83398101604081905261004291610187565b60055481111561008e5760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b60448201526064015b60405180910390fd5b60038054336001600160a01b031991821681179092556004805490911690911790556100ba82826100c2565b5050506101e7565b6000600554826000546100d591906101c1565b11156101185760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b6044820152606401610085565b8160008082825461012991906101c1565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350600192915050565b6000806040838503121561019a57600080fd5b82516001600160a01b03811681146101b157600080fd5b6020939093015192949293505050565b600082198211156101e257634e487b7160e01b600052601160045260246000fd5b500190565b6108b4806101f66000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063c67496dc11610066578063c67496dc1461026c578063d5abeb011461027f578063dd62ed3e14610288578063fca3b5aa146102b357600080fd5b806370a082311461020257806395d89b4114610222578063a9059cbb14610246578063c4022ad91461025957600080fd5b806323b872dd116100d357806323b872dd146101ad578063313ce567146101c057806340c10f19146101da5780636f8b44b0146101ed57600080fd5b806306fdde03146101055780630754617214610148578063095ea7b31461017357806318160ddd14610196575b600080fd5b6101326040518060400160405280600e81526020016d25baa9bbb0b82b19902a37b5b2b760911b81525081565b60405161013f91906106fb565b60405180910390f35b60035461015b906001600160a01b031681565b6040516001600160a01b03909116815260200161013f565b61018661018136600461076c565b6102c6565b604051901515815260200161013f565b61019f60005481565b60405190815260200161013f565b6101866101bb366004610796565b610332565b6101c8601281565b60405160ff909116815260200161013f565b6101866101e836600461076c565b6103ac565b6102006101fb3660046107d2565b610410565b005b61019f6102103660046107eb565b60016020526000908152604090205481565b610132604051806040016040528060058152602001644b5553763360d81b81525081565b61018661025436600461076c565b6104bf565b6102006102673660046107eb565b6104d3565b60045461015b906001600160a01b031681565b61019f60055481565b61019f610296366004610806565b600260209081526000928352604080842090915290825290205481565b6102006102c13660046107eb565b610541565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103219086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610398576001600160a01b03851660009081526002602090815260408083203384529091528120805485929061039290849061084f565b90915550505b6103a38585856105ab565b95945050505050565b6003546000906001600160a01b031633146103fc5760405162461bcd60e51b815260206004820152600b60248201526a27b7363c9036b4b73a32b960a91b60448201526064015b60405180910390fd5b6104068383610642565b5060019392505050565b6004546001600160a01b0316331461045c5760405162461bcd60e51b815260206004820152600f60248201526e4f6e6c79206d7354696d656c6f636b60881b60448201526064016103f3565b6000548110156104ba5760405162461bcd60e51b8152602060048201526024808201527f4e6577206d6178537570706c79206d757374206265203e3d20746f74616c537560448201526370706c7960e01b60648201526084016103f3565b600555565b60006104cc3384846105ab565b9392505050565b6004546001600160a01b0316331461051f5760405162461bcd60e51b815260206004820152600f60248201526e4f6e6c79206d7354696d656c6f636b60881b60448201526064016103f3565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146105895760405162461bcd60e51b815260206004820152600b60248201526a27b7363c9036b4b73a32b960a91b60448201526064016103f3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600160205260408120805483919083906105d590849061084f565b90915550506001600160a01b03808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106309086815260200190565b60405180910390a35060019392505050565b6000600554826000546106559190610866565b11156106985760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b60448201526064016103f3565b816000808282546106a99190610866565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610321565b600060208083528351808285015260005b818110156107285785810183015185820160400152820161070c565b8181111561073a576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461076757600080fd5b919050565b6000806040838503121561077f57600080fd5b61078883610750565b946020939093013593505050565b6000806000606084860312156107ab57600080fd5b6107b484610750565b92506107c260208501610750565b9150604084013590509250925092565b6000602082840312156107e457600080fd5b5035919050565b6000602082840312156107fd57600080fd5b6104cc82610750565b6000806040838503121561081957600080fd5b61082283610750565b915061083060208401610750565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008282101561086157610861610839565b500390565b6000821982111561087957610879610839565b50019056fea264697066735822122040019e66009b9902791001f3037935f7ca78f81d6e32cbf55c97ff70a842c84564736f6c634300080d00330000000000000000000000000348f836ced3b0003b59cf2ae3fe64995fa27d700000000000000000000000000000000000000000002051a94d8aaf3dee540000

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063c67496dc11610066578063c67496dc1461026c578063d5abeb011461027f578063dd62ed3e14610288578063fca3b5aa146102b357600080fd5b806370a082311461020257806395d89b4114610222578063a9059cbb14610246578063c4022ad91461025957600080fd5b806323b872dd116100d357806323b872dd146101ad578063313ce567146101c057806340c10f19146101da5780636f8b44b0146101ed57600080fd5b806306fdde03146101055780630754617214610148578063095ea7b31461017357806318160ddd14610196575b600080fd5b6101326040518060400160405280600e81526020016d25baa9bbb0b82b19902a37b5b2b760911b81525081565b60405161013f91906106fb565b60405180910390f35b60035461015b906001600160a01b031681565b6040516001600160a01b03909116815260200161013f565b61018661018136600461076c565b6102c6565b604051901515815260200161013f565b61019f60005481565b60405190815260200161013f565b6101866101bb366004610796565b610332565b6101c8601281565b60405160ff909116815260200161013f565b6101866101e836600461076c565b6103ac565b6102006101fb3660046107d2565b610410565b005b61019f6102103660046107eb565b60016020526000908152604090205481565b610132604051806040016040528060058152602001644b5553763360d81b81525081565b61018661025436600461076c565b6104bf565b6102006102673660046107eb565b6104d3565b60045461015b906001600160a01b031681565b61019f60055481565b61019f610296366004610806565b600260209081526000928352604080842090915290825290205481565b6102006102c13660046107eb565b610541565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103219086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610398576001600160a01b03851660009081526002602090815260408083203384529091528120805485929061039290849061084f565b90915550505b6103a38585856105ab565b95945050505050565b6003546000906001600160a01b031633146103fc5760405162461bcd60e51b815260206004820152600b60248201526a27b7363c9036b4b73a32b960a91b60448201526064015b60405180910390fd5b6104068383610642565b5060019392505050565b6004546001600160a01b0316331461045c5760405162461bcd60e51b815260206004820152600f60248201526e4f6e6c79206d7354696d656c6f636b60881b60448201526064016103f3565b6000548110156104ba5760405162461bcd60e51b8152602060048201526024808201527f4e6577206d6178537570706c79206d757374206265203e3d20746f74616c537560448201526370706c7960e01b60648201526084016103f3565b600555565b60006104cc3384846105ab565b9392505050565b6004546001600160a01b0316331461051f5760405162461bcd60e51b815260206004820152600f60248201526e4f6e6c79206d7354696d656c6f636b60881b60448201526064016103f3565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146105895760405162461bcd60e51b815260206004820152600b60248201526a27b7363c9036b4b73a32b960a91b60448201526064016103f3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600160205260408120805483919083906105d590849061084f565b90915550506001600160a01b03808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106309086815260200190565b60405180910390a35060019392505050565b6000600554826000546106559190610866565b11156106985760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b60448201526064016103f3565b816000808282546106a99190610866565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610321565b600060208083528351808285015260005b818110156107285785810183015185820160400152820161070c565b8181111561073a576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461076757600080fd5b919050565b6000806040838503121561077f57600080fd5b61078883610750565b946020939093013593505050565b6000806000606084860312156107ab57600080fd5b6107b484610750565b92506107c260208501610750565b9150604084013590509250925092565b6000602082840312156107e457600080fd5b5035919050565b6000602082840312156107fd57600080fd5b6104cc82610750565b6000806040838503121561081957600080fd5b61082283610750565b915061083060208401610750565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008282101561086157610861610839565b500390565b6000821982111561087957610879610839565b50019056fea264697066735822122040019e66009b9902791001f3037935f7ca78f81d6e32cbf55c97ff70a842c84564736f6c634300080d0033