ETH Price: $2,488.92 (-0.98%)
Gas: 0.67 Gwei

Contract

0x32E04437087059377D08FdDa62cd4d1e1b98fE6D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve203116082024-07-15 11:27:2347 days ago1721042843IN
0x32E04437...e1b98fE6D
0 ETH0.000159225.42176207
Approve203116002024-07-15 11:25:4747 days ago1721042747IN
0x32E04437...e1b98fE6D
0 ETH0.00015985.44164258
Approve203115962024-07-15 11:24:5947 days ago1721042699IN
0x32E04437...e1b98fE6D
0 ETH0.00014195.8824362
Approve203115882024-07-15 11:23:2347 days ago1721042603IN
0x32E04437...e1b98fE6D
0 ETH0.00014855.5899951
Burn203115882024-07-15 11:23:2347 days ago1721042603IN
0x32E04437...e1b98fE6D
0 ETH0.000213815.5899951
Approve203115452024-07-15 11:14:4747 days ago1721042087IN
0x32E04437...e1b98fE6D
0 ETH0.000273725.89837838
Approve203115452024-07-15 11:14:4747 days ago1721042087IN
0x32E04437...e1b98fE6D
0 ETH0.000274075.89837838
Approve203115442024-07-15 11:14:3547 days ago1721042075IN
0x32E04437...e1b98fE6D
0 ETH0.000281576.06755607
Approve203115382024-07-15 11:13:2347 days ago1721042003IN
0x32E04437...e1b98fE6D
0 ETH0.000284786.12872625
Approve203115382024-07-15 11:13:2347 days ago1721042003IN
0x32E04437...e1b98fE6D
0 ETH0.000284416.12872625
Approve203115222024-07-15 11:10:1147 days ago1721041811IN
0x32E04437...e1b98fE6D
0 ETH0.000270075.81970006
Approve203115222024-07-15 11:10:1147 days ago1721041811IN
0x32E04437...e1b98fE6D
0 ETH0.000270075.81970006
Approve203115142024-07-15 11:08:3547 days ago1721041715IN
0x32E04437...e1b98fE6D
0 ETH0.000285386.14971869
Approve203115012024-07-15 11:05:5947 days ago1721041559IN
0x32E04437...e1b98fE6D
0 ETH0.000310716.69546647
Approve203114922024-07-15 11:04:1147 days ago1721041451IN
0x32E04437...e1b98fE6D
0 ETH0.000301796.50324255
Approve203114892024-07-15 11:03:3547 days ago1721041415IN
0x32E04437...e1b98fE6D
0 ETH0.000303716.54452331
Approve203114882024-07-15 11:03:2347 days ago1721041403IN
0x32E04437...e1b98fE6D
0 ETH0.000404328.70141954
Approve203114842024-07-15 11:02:3547 days ago1721041355IN
0x32E04437...e1b98fE6D
0 ETH0.000232295.03034219
Approve203114832024-07-15 11:02:2347 days ago1721041343IN
0x32E04437...e1b98fE6D
0 ETH0.0008612418.53464016
Approve203114792024-07-15 11:01:3547 days ago1721041295IN
0x32E04437...e1b98fE6D
0 ETH0.000197124.24771366
Approve203114772024-07-15 11:01:1147 days ago1721041271IN
0x32E04437...e1b98fE6D
0 ETH0.0002124.56836155
Approve203114712024-07-15 10:59:5947 days ago1721041199IN
0x32E04437...e1b98fE6D
0 ETH0.000252465.44026964
Approve203114672024-07-15 10:59:1147 days ago1721041151IN
0x32E04437...e1b98fE6D
0 ETH0.0008690918.70343622
Approve203114662024-07-15 10:58:5947 days ago1721041139IN
0x32E04437...e1b98fE6D
0 ETH0.000246955.3145733
Approve203114622024-07-15 10:58:1147 days ago1721041091IN
0x32E04437...e1b98fE6D
0 ETH0.000314416.77524512
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

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.