Sonic Blaze Testnet

Token

SwapX (SWPx)
ERC-20

Overview

Max Total Supply

103,868,920.786425998259258795 SWPx

Holders

27

Market

Price

-

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
95 SWPx
0x2359da6bbc435be7a87e6faabaad556cd92cfb93
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xeFa92Da8...29C37f6d9
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
SWPx

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 2 : SWPx.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.13;

import {ISWPx} from "./interfaces/ISWPx.sol";

contract SWPx is ISWPx {

    string public constant name = "SwapX";
    string public constant symbol = "SWPx";
    uint8 public constant decimals = 18;
    uint public totalSupply = 0;

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

    bool public initialMinted;
    address public minter;

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

    constructor() {
        minter = msg.sender;
        _mint(msg.sender, 0);
    }

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


    // Initial mint: total 42M
    function initialMint(address _recipient) external {
        require(msg.sender == minter && !initialMinted);
        initialMinted = true;
        _mint(_recipient, 42 * 1e6 * 1e18);
    }

    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) {
        totalSupply += _amount;
        unchecked {
            balanceOf[_to] += _amount;
        }
        emit Transfer(address(0x0), _to, _amount);
        return true;
    }

    function _burn(address account, uint256 amount) internal {
        uint256 accountBalance = balanceOf[account];
        require(accountBalance >= amount && amount > 0, "burn amount exceeds balance or zero");
        unchecked {
            balanceOf[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }

    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, 'not allowed');
        _mint(account, amount);
        return true;
    }

    function burn(uint amount) external {
        _burn(msg.sender, amount);
    }

}

File 2 of 2 : ISWPx.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;

interface ISWPx {
    function initialMint(address _recipient) external;
    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);
}

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

Contract ABI

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

60806040526000805534801561001457600080fd5b5060038054610100600160a81b0319163361010081029190911790915561003c906000610042565b506100d9565b60008160008082825461005591906100b3565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350600192915050565b600082198211156100d457634e487b7160e01b600052601160045260246000fd5b500190565b610840806100e86000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806342966c6811610097578063c268f9ba11610066578063c268f9ba14610249578063ca1c4de91461025c578063dd62ed3e14610269578063fca3b5aa1461029457600080fd5b806342966c68146101de57806370a08231146101f357806395d89b4114610213578063a9059cbb1461023657600080fd5b806318160ddd116100d357806318160ddd1461018757806323b872dd1461019e578063313ce567146101b157806340c10f19146101cb57600080fd5b806306fdde03146100fa5780630754617214610134578063095ea7b314610164575b600080fd5b61011e604051806040016040528060058152602001640a6eec2e0b60db1b81525081565b60405161012b9190610687565b60405180910390f35b60035461014c9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161012b565b6101776101723660046106f8565b6102a7565b604051901515815260200161012b565b61019060005481565b60405190815260200161012b565b6101776101ac366004610722565b610313565b6101b9601281565b60405160ff909116815260200161012b565b6101776101d93660046106f8565b61038d565b6101f16101ec36600461075e565b6103f6565b005b610190610201366004610777565b60016020526000908152604090205481565b61011e604051806040016040528060048152602001630a6aea0f60e31b81525081565b6101776102443660046106f8565b610403565b6101f1610257366004610777565b610417565b6003546101779060ff1681565b610190610277366004610792565b600260209081526000928352604080842090915290825290205481565b6101f16102a2366004610777565b610468565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103029086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610379576001600160a01b0385166000908152600260209081526040808320338452909152812080548592906103739084906107db565b90915550505b6103848585856104ac565b95945050505050565b60035460009061010090046001600160a01b031633146103e25760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b60448201526064015b60405180910390fd5b6103ec8383610543565b5060019392505050565b61040033826105a8565b50565b60006104103384846104ac565b9392505050565b60035461010090046001600160a01b031633148015610439575060035460ff16155b61044257600080fd5b6003805460ff19166001179055610464816a22bdd88fed9efc6a000000610543565b5050565b60035461010090046001600160a01b0316331461048457600080fd5b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166000908152600160205260408120805483919083906104d69084906107db565b90915550506001600160a01b03808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105319086815260200190565b60405180910390a35060019392505050565b60008160008082825461055691906107f2565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610302565b6001600160a01b0382166000908152600160205260409020548181108015906105d15750600082115b6106295760405162461bcd60e51b815260206004820152602360248201527f6275726e20616d6f756e7420657863656564732062616c616e6365206f72207a60448201526265726f60e81b60648201526084016103d9565b6001600160a01b0383166000818152600160209081526040808320868603905582548690038355518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600060208083528351808285015260005b818110156106b457858101830151858201604001528201610698565b818111156106c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146106f357600080fd5b919050565b6000806040838503121561070b57600080fd5b610714836106dc565b946020939093013593505050565b60008060006060848603121561073757600080fd5b610740846106dc565b925061074e602085016106dc565b9150604084013590509250925092565b60006020828403121561077057600080fd5b5035919050565b60006020828403121561078957600080fd5b610410826106dc565b600080604083850312156107a557600080fd5b6107ae836106dc565b91506107bc602084016106dc565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000828210156107ed576107ed6107c5565b500390565b60008219821115610805576108056107c5565b50019056fea2646970667358221220228b224ed10dbf74dc2c80a15a045827b9e2e5859ea3248a30c37068d580ad3c64736f6c634300080d0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806342966c6811610097578063c268f9ba11610066578063c268f9ba14610249578063ca1c4de91461025c578063dd62ed3e14610269578063fca3b5aa1461029457600080fd5b806342966c68146101de57806370a08231146101f357806395d89b4114610213578063a9059cbb1461023657600080fd5b806318160ddd116100d357806318160ddd1461018757806323b872dd1461019e578063313ce567146101b157806340c10f19146101cb57600080fd5b806306fdde03146100fa5780630754617214610134578063095ea7b314610164575b600080fd5b61011e604051806040016040528060058152602001640a6eec2e0b60db1b81525081565b60405161012b9190610687565b60405180910390f35b60035461014c9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161012b565b6101776101723660046106f8565b6102a7565b604051901515815260200161012b565b61019060005481565b60405190815260200161012b565b6101776101ac366004610722565b610313565b6101b9601281565b60405160ff909116815260200161012b565b6101776101d93660046106f8565b61038d565b6101f16101ec36600461075e565b6103f6565b005b610190610201366004610777565b60016020526000908152604090205481565b61011e604051806040016040528060048152602001630a6aea0f60e31b81525081565b6101776102443660046106f8565b610403565b6101f1610257366004610777565b610417565b6003546101779060ff1681565b610190610277366004610792565b600260209081526000928352604080842090915290825290205481565b6101f16102a2366004610777565b610468565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103029086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610379576001600160a01b0385166000908152600260209081526040808320338452909152812080548592906103739084906107db565b90915550505b6103848585856104ac565b95945050505050565b60035460009061010090046001600160a01b031633146103e25760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b60448201526064015b60405180910390fd5b6103ec8383610543565b5060019392505050565b61040033826105a8565b50565b60006104103384846104ac565b9392505050565b60035461010090046001600160a01b031633148015610439575060035460ff16155b61044257600080fd5b6003805460ff19166001179055610464816a22bdd88fed9efc6a000000610543565b5050565b60035461010090046001600160a01b0316331461048457600080fd5b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166000908152600160205260408120805483919083906104d69084906107db565b90915550506001600160a01b03808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105319086815260200190565b60405180910390a35060019392505050565b60008160008082825461055691906107f2565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610302565b6001600160a01b0382166000908152600160205260409020548181108015906105d15750600082115b6106295760405162461bcd60e51b815260206004820152602360248201527f6275726e20616d6f756e7420657863656564732062616c616e6365206f72207a60448201526265726f60e81b60648201526084016103d9565b6001600160a01b0383166000818152600160209081526040808320868603905582548690038355518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600060208083528351808285015260005b818110156106b457858101830151858201604001528201610698565b818111156106c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146106f357600080fd5b919050565b6000806040838503121561070b57600080fd5b610714836106dc565b946020939093013593505050565b60008060006060848603121561073757600080fd5b610740846106dc565b925061074e602085016106dc565b9150604084013590509250925092565b60006020828403121561077057600080fd5b5035919050565b60006020828403121561078957600080fd5b610410826106dc565b600080604083850312156107a557600080fd5b6107ae836106dc565b91506107bc602084016106dc565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000828210156107ed576107ed6107c5565b500390565b60008219821115610805576108056107c5565b50019056fea2646970667358221220228b224ed10dbf74dc2c80a15a045827b9e2e5859ea3248a30c37068d580ad3c64736f6c634300080d0033

[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.