Contract Address Details

0x872952d3c1Caf944852c5ADDa65633F1Ef218A26

Token
Liquid Crypto (LQDX)
Creator
0x78ad...3ca3 at 0x0eb9...389d
Balance
0 ONUS
Tokens
Fetching tokens...
Transactions
73 Transactions
Transfers
0 Transfers
Gas Used
3,011,397
Last Balance Update
22483550
Contract name:
LQDX




Optimization enabled
true
Compiler version
v0.8.19+commit.7dd6d404




Optimization runs
200
EVM Version
default




Verified at
2023-12-11 12:42:52.931963Z

Constructor Arguments

00000000000000000000000068d2883641ff9ca33687aca47d1354775577f18f

Arg [0] (address) : 0x68d2883641ff9ca33687aca47d1354775577f18f

              

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, 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 from,
address to,
uint256 amount
) external returns (bool);
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b > a) return (false, 0);
return (true, a - b);
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a / b);
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a % b);
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
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, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: division by zero");
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: modulo by zero");
return a % b;
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
return a - b;
}
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, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a % b;
}
}
contract LQDX is Context, IERC20 {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
uint256 private _totalSupply;
uint256 public maxLimit = 400_000_000_0000_0000_0000_0000_00;
string private _name = "Liquid Crypto";
string private _symbol = "LQDX";
uint8 private _decimals = 18;
mapping (address => bool) public minter;
address[] public minterList;
address public minterSetter;
modifier onlyMinter() {
require(minter[msg.sender], "LUSDT: !minter");
_;
}
constructor (address _minterSetter) {
minterSetter = _minterSetter;
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return _decimals;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "LQDX: transfer amount exceeds allowance"));
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "LQDX: decreased allowance below zero"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "LQDX: transfer from the zero address");
require(recipient != address(0), "LQDX: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount, "LQDX: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "LQDX: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply = _totalSupply.add(amount);
require(_totalSupply <= maxLimit, "LQDX: overflow max limitation");
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "LQDX: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
_balances[account] = _balances[account].sub(amount, "LQDX: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
function _approve(address owner, address spender, uint256 amount) internal virtual {
require(owner != address(0), "LQDX: approve from the zero address");
require(spender != address(0), "LQDX: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
function mint(address account, uint256 amount) public onlyMinter {
_mint(account, amount);
}
function burn(address account, uint256 amount) public onlyMinter {
_burn(account, amount);
}
function getAllMinter() public view returns(address[] memory) {
return minterList;
}
function insertMinter(address account) public {
require(msg.sender == minterSetter, 'LQDX: minterSetter');
if (minter[account] == false) {
minter[account] = true;
minterList.push(account);
}
}
function removeMinter(address account) public {
require(msg.sender == minterSetter, 'LQDX: minterSetter');
if (minter[account] == true) {
minter[account] = false;
uint256 len = minterList.length;
for (uint256 x = 0; x < len; x++) {
if (minterList[x] == account) {
minterList[x] = minterList[len - 1];
break;
}
}
minterList.pop();
}
}
function setMinterSetter(address _minterSetter) external {
require(msg.sender == minterSetter, 'LUSDT: !minterSetter');
minterSetter = _minterSetter;
}
}

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_minterSetter","internalType":"address"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burn","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address[]","name":"","internalType":"address[]"}],"name":"getAllMinter","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"insertMinter","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxLimit","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"mint","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"minter","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"minterList","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"minterSetter","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"removeMinter","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMinterSetter","inputs":[{"type":"address","name":"_minterSetter","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]}]
            

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063313ce567116100b857806370a082311161007c57806370a082311461029757806395d89b41146102c05780639dc29fac146102c8578063a457c2d7146102db578063a9059cbb146102ee578063dd62ed3e1461030157600080fd5b8063313ce56714610226578063395093511461023b5780633dd08c381461024e57806340c10f1914610271578063552e842b1461028457600080fd5b806322ec0638116100ff57806322ec0638146101ad57806323b872dd146101c257806324d3a587146101d5578063279ad7ab146102005780633092afd51461021357600080fd5b806306fdde031461013c578063095ea7b31461015a57806315d812c01461017d57806318160ddd146101925780631a861d26146101a4575b600080fd5b61014461033a565b6040516101519190610ee9565b60405180910390f35b61016d610168366004610f53565b6103cc565b6040519015158152602001610151565b6101856103e3565b6040516101519190610f7d565b6002545b604051908152602001610151565b61019660035481565b6101c06101bb366004610fca565b610444565b005b61016d6101d0366004610fe5565b6104bc565b6009546101e8906001600160a01b031681565b6040516001600160a01b039091168152602001610151565b6101e861020e366004611021565b610525565b6101c0610221366004610fca565b61054f565b60065460405160ff9091168152602001610151565b61016d610249366004610f53565b6106ee565b61016d61025c366004610fca565b60076020526000908152604090205460ff1681565b6101c061027f366004610f53565b610724565b6101c0610292366004610fca565b610782565b6101966102a5366004610fca565b6001600160a01b031660009081526020819052604090205490565b61014461085b565b6101c06102d6366004610f53565b61086a565b61016d6102e9366004610f53565b6108c4565b61016d6102fc366004610f53565b610913565b61019661030f36600461103a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600480546103499061106d565b80601f01602080910402602001604051908101604052809291908181526020018280546103759061106d565b80156103c25780601f10610397576101008083540402835291602001916103c2565b820191906000526020600020905b8154815290600101906020018083116103a557829003601f168201915b5050505050905090565b60006103d9338484610920565b5060015b92915050565b606060088054806020026020016040519081016040528092919081815260200182805480156103c257602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161041d575050505050905090565b6009546001600160a01b0316331461049a5760405162461bcd60e51b8152602060048201526014602482015273262aa9a22a1d1010b6b4b73a32b929b2ba3a32b960611b60448201526064015b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006104c9848484610a44565b61051b843361051685604051806060016040528060278152602001611172602791396001600160a01b038a1660009081526001602090815260408083203384529091529020549190610bc4565b610920565b5060019392505050565b6008818154811061053557600080fd5b6000918252602090912001546001600160a01b0316905081565b6009546001600160a01b0316331461059e5760405162461bcd60e51b81526020600482015260126024820152712628a22c1d1036b4b73a32b929b2ba3a32b960711b6044820152606401610491565b6001600160a01b03811660009081526007602052604090205460ff1615156001036106eb576001600160a01b0381166000908152600760205260408120805460ff19169055600854905b818110156106b557826001600160a01b03166008828154811061060d5761060d6110a7565b6000918252602090912001546001600160a01b0316036106a35760086106346001846110d3565b81548110610644576106446110a7565b600091825260209091200154600880546001600160a01b039092169183908110610670576106706110a7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506106b5565b806106ad816110e6565b9150506105e8565b5060088054806106c7576106c76110ff565b600082815260209020810160001990810180546001600160a01b0319169055019055505b50565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916103d99185906105169086610bfb565b3360009081526007602052604090205460ff166107745760405162461bcd60e51b815260206004820152600e60248201526d262aa9a22a1d1010b6b4b73a32b960911b6044820152606401610491565b61077e8282610c61565b5050565b6009546001600160a01b031633146107d15760405162461bcd60e51b81526020600482015260126024820152712628a22c1d1036b4b73a32b929b2ba3a32b960711b6044820152606401610491565b6001600160a01b03811660009081526007602052604081205460ff16151590036106eb576001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6060600580546103499061106d565b3360009081526007602052604090205460ff166108ba5760405162461bcd60e51b815260206004820152600e60248201526d262aa9a22a1d1010b6b4b73a32b960911b6044820152606401610491565b61077e8282610d93565b60006103d933846105168560405180606001604052806024815260200161114e602491393360009081526001602090815260408083206001600160a01b038d1684529091529020549190610bc4565b60006103d9338484610a44565b6001600160a01b0383166109825760405162461bcd60e51b815260206004820152602360248201527f4c5144583a20617070726f76652066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610491565b6001600160a01b0382166109e25760405162461bcd60e51b815260206004820152602160248201527f4c5144583a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610491565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610aa65760405162461bcd60e51b8152602060048201526024808201527f4c5144583a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610491565b6001600160a01b038216610b075760405162461bcd60e51b815260206004820152602260248201527f4c5144583a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610491565b610b4481604051806060016040528060258152602001611129602591396001600160a01b0386166000908152602081905260409020549190610bc4565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610b739082610bfb565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610a37565b60008184841115610be85760405162461bcd60e51b81526004016104919190610ee9565b50610bf383856110d3565b949350505050565b600080610c088385611115565b905083811015610c5a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610491565b9392505050565b6001600160a01b038216610cb75760405162461bcd60e51b815260206004820152601e60248201527f4c5144583a206d696e7420746f20746865207a65726f206164647265737300006044820152606401610491565b600254610cc49082610bfb565b60028190556003541015610d1a5760405162461bcd60e51b815260206004820152601d60248201527f4c5144583a206f766572666c6f77206d6178206c696d69746174696f6e0000006044820152606401610491565b6001600160a01b038216600090815260208190526040902054610d3d9082610bfb565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216610de95760405162461bcd60e51b815260206004820181905260248201527f4c5144583a206275726e2066726f6d20746865207a65726f20616464726573736044820152606401610491565b610e2681604051806060016040528060218152602001611199602191396001600160a01b0385166000908152602081905260409020549190610bc4565b6001600160a01b038316600090815260208190526040902055600254610e4c9082610e8d565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d87565b600082821115610edf5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610491565b610c5a82846110d3565b600060208083528351808285015260005b81811015610f1657858101830151858201604001528201610efa565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610f4e57600080fd5b919050565b60008060408385031215610f6657600080fd5b610f6f83610f37565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015610fbe5783516001600160a01b031683529284019291840191600101610f99565b50909695505050505050565b600060208284031215610fdc57600080fd5b610c5a82610f37565b600080600060608486031215610ffa57600080fd5b61100384610f37565b925061101160208501610f37565b9150604084013590509250925092565b60006020828403121561103357600080fd5b5035919050565b6000806040838503121561104d57600080fd5b61105683610f37565b915061106460208401610f37565b90509250929050565b600181811c9082168061108157607f821691505b6020821081036110a157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156103dd576103dd6110bd565b6000600182016110f8576110f86110bd565b5060010190565b634e487b7160e01b600052603160045260246000fd5b808201808211156103dd576103dd6110bd56fe4c5144583a207472616e7366657220616d6f756e7420657863656564732062616c616e63654c5144583a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4c5144583a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654c5144583a206275726e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220c467853394c9f69ee714007701eedbfe2acd8fe86f9c4087ea66c062f4bcec6764736f6c63430008130033