Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions NeoTether
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface ITRC20 {
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);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract NeoTether is ITRC20 {
string public name = "NeoTether";
string public symbol = "USDT";
uint8 public decimals = 6;
uint256 private _totalSupply;
address public owner;

mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;

modifier onlyOwner() {
require(msg.sender == owner, "Only owner");
_;
}

constructor(uint256 initialSupply) {
owner = msg.sender;
_mint(owner, initialSupply);
}

function totalSupply() public view override returns (uint256) {
return _totalSupply;
}

function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}

function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}

function allowance(address owner_, address spender) public view override returns (uint256) {
return allowances[owner][spender];
}

function approve(address spender, uint256 amount) public override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}

function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
return true;
}

function _transfer(address sender, address recipient, uint256 amount) internal {
require(sender != address(0), "Zero sender");
require(recipient != address(0), "Zero recipient");
require(_balances[sender] >= amount, "Low balance");
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}

function _mint(address account, uint256 amount) internal onlyOwner {
require(account != address(0), "Zero mint");
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
}

function mint(address account, uint256 amount) public onlyOwner {
_mint(account, amount);
}

function approve(address owner, address spender, uint256 amount) internal {
require(owner_ != address(0), "Zero owner");
require(spender != address(0), "Zero spender");
allowances[owner][spender] = amount;
emit Approval(owner_, spender, amount);
}
}
{
"symbol": "USDT",
"name": "NeoTether",
"type": "TRC20",
"decimals": 6,
"contract": "TKbW8zqrTQxVnmK6grveytadvrDcWHcEEE",
"logo": "https://drive.google.com/uc?export=view&id=YOUR_LOGO_FILE_ID",
"website": "https://rihath1988.netlify.app",
"whitepaper": "https://drive.google.com/file/d/1A6VO8e_j8ROk4A-sfNCYzB81LWZc7g3E/view",
"audit": "https://drive.google.com/file/d/TRONxC9dsfBzsx9JS88BAuditFile/view",
"explorer": "https://tronscan.org/#/token20/TKbW8zqrTQxVnmK6grveytadvrDcWHcEEE",
"status": "active"
}https://drive.google.com/file/d/16W8e_h8KO4A-snGNf_BzB1LVwZcg-z3E/view?usp=drivesdkhttps://drive.google.com/file/d/16W8e_h8KO4A-snGNf_BzB1LVwZcg-z3E/view?usp=drivesdk
https://drive.google.com/file/d/1YomCsV6bgE3cnvl58SI8k-Wzj5v26mFl/view?usp=drivesdk