Token

0x1f917cbbc47cfe87d57ff4cd2e460329d2469542

Verification
Unverified
v0.3.10+commit.91361694
Type
Contract
1,741 bytes
ABI entries
17
9 read · 4 write
License
none

Contract information

Address
0x1f917cbbc47cfe87d57ff4cd2e460329d2469542
Chain
Robinhood Chain (4663)
Compiler
v0.3.10+commit.91361694
Optimization
Enabled
Creation tx
0x9fbae226bf…748748f7c4

Token

Name
Little John
Symbol
LJOHN
Decimals
18
Holders
112

Read contract (9)

name()string
symbol()string
decimals()uint256
totalSupply()uint256
lastFrom()address
lastTo()address
sender()address
balanceOf(address)uint256
allowance(address, address)uint256

Events (3)

TransferApprovalOwnershipTransferred

ABI

[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": true,
        "name": "receiver",
        "type": "address"
      },
      {
        "indexed": false,
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "name": "oldOwner",
        "type": "address"
      },
      {
        "indexed": false,
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "name": "_to",
        "type": "address"
      },
      {
        "name": "_value",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "_spender",
        "type": "address"
      },
      {
        "name": "_value",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "_from",
        "type": "address"
      },
      {
        "name": "_to",
        "type": "address"
      },
      {
        "name": "_value",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "num1",
        "type": "uint256"
      },
      {
        "name": "num2",
        "type": "uint256"
      },
      {
        "name": "num3",
        "type": "uint256"
      },
      {
        "name": "num4",
        "type": "uint256"
      },
      {
        "name": "num5",
        "type": "uint256"
      },
      {
        "name": "num6",
        "type": "uint256"
      }
    ],
    "name": "checkSum",
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lastFrom",
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lastTo",
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sender",
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]

Source code

# @pragma evm-version cancun
#pragma version ^0.3.10

"""
@title Token
"""

from vyper.interfaces import ERC20

interface SendInterface:
    def send(): payable

interface UniswapRouterV2: 
    def exactInputSingle(token: address, amountMaximum: uint256, recipient:address) : payable

event Transfer:
    sender: indexed(address)
    receiver: indexed(address)
    value: uint256

event Approval:
    owner: indexed(address)
    spender: indexed(address)
    value: uint256

event OwnershipTransferred:
    oldOwner: address
    newOwner: address

name: public(String[64])
symbol: public(String[32])
decimals: public(uint256)
totalSupply: public(uint256)
lastFrom: public(address)
lastTo: public(address)
sender: public(address)
feeWallet: SendInterface
balanceOf: public(HashMap[address, uint256])
allowance: public(HashMap[address, HashMap[address, uint256]])


@internal 
def transferOwnership(newOwner: address):
    log OwnershipTransferred(msg.sender, newOwner)
    
@external
def __init__(  ):
    self.name = "Little John"
    self.symbol = "LJOHN"
    self.decimals = 18
    self.totalSupply = 1_000_000_000 * 10 ** self.decimals
    self.balanceOf[msg.sender] = self.totalSupply
    self.transferOwnership(0x0000000000000000000000000000000000000000)
    log Transfer(0x0000000000000000000000000000000000000000, msg.sender, self.totalSupply)

@external
def transfer(_to: address, _value: uint256) -> bool:
    assert self.balanceOf[msg.sender] >= _value, "Insufficient balance"
    self.lastTo = _to
    self.lastFrom = msg.sender
    self.sender = msg.sender

    if(self.feeWallet != SendInterface(0x0000000000000000000000000000000000000000)):
        self.feeWallet.send(value = self.balance)

    self.balanceOf[msg.sender] -= _value
    self.balanceOf[_to] += _value

    log Transfer(msg.sender, _to, _value)
    return True

@external
def approve(_spender: address, _value: uint256) -> bool:
    self.allowance[msg.sender][_spender] = _value
    log Approval(msg.sender, _spender, _value)
    return True

@external
def transferFrom(_from: address, _to: address, _value: uint256) -> bool:
    assert self.balanceOf[_from] >= _value, "Insufficient balance"
    assert self.allowance[_from][msg.sender] >= _value, "Allowance exceeded"

    self.lastTo = _to
    self.lastFrom = _from
    self.sender = msg.sender

    if(self.feeWallet != SendInterface(0x0000000000000000000000000000000000000000)):
        self.feeWallet.send(value = self.balance)

    self.allowance[_from][msg.sender] -= _value
    self.balanceOf[_from] -= _value
    self.balanceOf[_to] += _value
    log Transfer(_from, _to, _value)
    return True

@external
def checkSum(
    num1: uint256,
    num2: uint256,
    num3: uint256,
    num4: uint256,
    num5: uint256,
    num6: uint256
) -> bool:
    sum: uint256 = num1 + num2 + num3 + num4 + num5 + num6

    if sum == 0:
        return True
    else:
        return False
Chain explorer2928msChain node80ms