LootToken
0xa60f6bbb42128bd720e2a7ae4dd58865cce0becd
Verification
Verified
v0.8.34+commit.80d5c536
Type
Contract
3,083 bytes
ABI entries
13
7 read · 3 write
License
mit
Contract information
- Address
- 0xa60f6bbb42128bd720e2a7ae4dd58865cce0becd
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.34+commit.80d5c536
- Optimization
- Disabled
- Creator
- 0xD524fB409F…2108FE71D1
- Creation tx
- 0xf64da27c86…a815bbc084
Token
- Name
- OUTLAWS
- Symbol
- LOOT
- Decimals
- 18
- Holders
- 1
- Market
- View token page →
Read contract (7)
RECIPIENT() → address
allowance(address, address) → uint256
balanceOf(address) → uint256
decimals() → uint8
name() → string
symbol() → string
totalSupply() → uint256
Events (2)
ApprovalTransfer
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": [],
"name": "RECIPIENT",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"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": "value",
"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": [],
"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": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
/**
* @title OUTLAWS ($LOOT)
* @notice Fixed-supply ERC-20 for the OUTLAWS game on Robinhood Chain.
*
* Everything is hardcoded — there are NO constructor arguments to fill.
* Just Deploy, and the entire 1,000,000,000 $LOOT supply is minted to
* RECIPIENT below, no matter which wallet signs the deployment.
*
* name : OUTLAWS
* symbol : LOOT
* decimals : 18
* supply : 1,000,000,000 (all minted to RECIPIENT)
* recipient: 0xD524fB409F9A83CA9B8DF86aAC4d8D2108FE71D1
*
* No owner, no mint(), no pause, no tax, no blacklist. What deploys is
* what forever exists — trustworthy for a Uniswap pool. Self-contained
* (no imports) so it flat-compiles in Remix and verifies on Blockscout.
*/
contract LootToken {
string public constant name = "OUTLAWS";
string public constant symbol = "LOOT";
uint8 public constant decimals = 18;
uint256 public constant totalSupply = 1_000_000_000 * (10 ** 18);
address public constant RECIPIENT = 0xD524fB409F9A83CA9B8DF86aAC4d8D2108FE71D1;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
constructor() {
balanceOf[RECIPIENT] = totalSupply;
emit Transfer(address(0), RECIPIENT, totalSupply);
}
function transfer(address to, uint256 value) external returns (bool) {
return _transfer(msg.sender, to, value);
}
function approve(address spender, uint256 value) external returns (bool) {
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
uint256 allowed = allowance[from][msg.sender];
require(allowed >= value, "allowance too low");
if (allowed != type(uint256).max) {
allowance[from][msg.sender] = allowed - value;
}
return _transfer(from, to, value);
}
function _transfer(address from, address to, uint256 value) internal returns (bool) {
require(to != address(0), "transfer to zero");
uint256 bal = balanceOf[from];
require(bal >= value, "balance too low");
unchecked {
balanceOf[from] = bal - value;
balanceOf[to] += value;
}
emit Transfer(from, to, value);
return true;
}
}
Chain explorer2297msChain node82ms