ETH Price: $3,137.43 (-4.79%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve216952992025-01-24 15:36:478 days ago1737733007IN
Lemuoid: lemu Token
0 ETH0.0006189521.20072786
Transfer216927072025-01-24 6:56:238 days ago1737701783IN
Lemuoid: lemu Token
0 ETH0.000139974.07637919
Transfer216926922025-01-24 6:53:238 days ago1737701603IN
Lemuoid: lemu Token
0 ETH0.000115313.9040445
Transfer216926872025-01-24 6:52:238 days ago1737701543IN
Lemuoid: lemu Token
0 ETH0.000112893.82205848
Transfer216926822025-01-24 6:51:238 days ago1737701483IN
Lemuoid: lemu Token
0 ETH0.000183633.93756161
Approve216895002025-01-23 20:11:359 days ago1737663095IN
Lemuoid: lemu Token
0 ETH0.000344477.44289047
Transfer216894452025-01-23 20:00:239 days ago1737662423IN
Lemuoid: lemu Token
0 ETH0.0005234710.17912641
Transfer216792732025-01-22 9:56:4710 days ago1737539807IN
Lemuoid: lemu Token
0 ETH0.000385198.25927857
Transfer216787092025-01-22 8:03:4710 days ago1737533027IN
Lemuoid: lemu Token
0 ETH0.000381757.4215763
Transfer216130392025-01-13 3:59:3519 days ago1736740775IN
Lemuoid: lemu Token
0 ETH0.000093582.72542933
Approve211706342024-11-12 9:13:5981 days ago1731402839IN
Lemuoid: lemu Token
0 ETH0.001806138.76172905
Approve210201552024-10-22 9:14:23102 days ago1729588463IN
Lemuoid: lemu Token
0 ETH0.0002546210.47384069
Approve210122452024-10-21 6:45:23103 days ago1729493123IN
Lemuoid: lemu Token
0 ETH0.0005760512.36299049
Approve210122132024-10-21 6:38:59103 days ago1729492739IN
Lemuoid: lemu Token
0 ETH0.000264710.88815574
Transfer205755802024-08-21 7:43:35164 days ago1724226215IN
Lemuoid: lemu Token
0 ETH0.000058971.14646561
Approve205208482024-08-13 16:18:23172 days ago1723565903IN
Lemuoid: lemu Token
0 ETH0.000258285.54611271
Transfer204113202024-07-29 9:27:59187 days ago1722245279IN
Lemuoid: lemu Token
0 ETH0.000157463.06119098
Transfer204074472024-07-28 20:29:47188 days ago1722198587IN
Lemuoid: lemu Token
0 ETH0.00011192.40007585
Transfer203686852024-07-23 10:38:47193 days ago1721731127IN
Lemuoid: lemu Token
0 ETH0.000226014.39399734
Approve203541302024-07-21 9:51:11195 days ago1721555471IN
Lemuoid: lemu Token
0 ETH0.000184883.96796216
Approve203211062024-07-16 19:16:47200 days ago1721157407IN
Lemuoid: lemu Token
0 ETH0.0010366422.37486726
Approve199495722024-05-25 21:27:59252 days ago1716672479IN
Lemuoid: lemu Token
0 ETH0.000237185.09043557
Transfer199495522024-05-25 21:23:47252 days ago1716672227IN
Lemuoid: lemu Token
0 ETH0.000191614.10854804
Transfer197698922024-04-30 18:23:35277 days ago1714501415IN
Lemuoid: lemu Token
0 ETH0.000383311.15872557
Approve197687372024-04-30 14:31:35277 days ago1714487495IN
Lemuoid: lemu Token
0 ETH0.0005939320.33535189
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
188930252023-12-29 18:30:47400 days ago1703874647  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
lemuoid

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
File 1 of 8 : Token.sol
/*
PUSH1 0x80
PUSH1 0x40
MSTORE
PUSH1 0x04
CALLDATASIZE
LT
PUSH2 0x010d
JUMPI
PUSH1 0x00
CALLDATALOAD
PUSH1 0xe0
SHR
DUP1
PUSH4 0x79ba5097
GT
PUSH2 0x0095
JUMPI
DUP1
PUSH4 0xa457c2d7
GT
PUSH2 0x0064
JUMPI
DUP1
PUSH4 0xa457c2d7
EQ
PUSH2 0x02d8
JUMPI
DUP1
PUSH4 0xa9059cbb
EQ
PUSH2 0x02f8
JUMPI
DUP1
PUSH4 0xdd62ed3e
EQ
PUSH2 0x0318
JUMPI
DUP1
PUSH4 0xe30c3978
EQ
PUSH2 0x0338
JUMPI
DUP1
PUSH4 0xf2fde38b
EQ
PUSH2 0x0356
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
DUP1
PUSH4 0x79ba5097
EQ
PUSH2 0x025c
JUMPI
DUP1
PUSH4 0x79cc6790
EQ
PUSH2 0x0271
JUMPI
DUP1
PUSH4 0x8da5cb5b
EQ
PUSH2 0x0291
JUMPI
DUP1
PUSH4 0x95d89b41
EQ
PUSH2 0x02c3
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
DUP1
PUSH4 0x313ce567
GT
PUSH2 0x00dc
JUMPI
DUP1
PUSH4 0x313ce567
EQ
PUSH2 0x01b3
JUMPI
DUP1
PUSH4 0x39509351
EQ
PUSH2 0x01cf
JUMPI
DUP1
PUSH4 0x42966c68
EQ
PUSH2 0x01ef
JUMPI
DUP1
PUSH4 0x70a08231
EQ
PUSH2 0x0211
JUMPI
DUP1
PUSH4 0x715018a6
EQ
PUSH2 0x0247
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
DUP1
PUSH4 0x06fdde03
EQ
PUSH2 0x0119
JUMPI
DUP1
PUSH4 0x095ea7b3
EQ
PUSH2 0x0144
JUMPI
DUP1
PUSH4 0x18160ddd
EQ
PUSH2 0x0174
JUMPI
DUP1
PUSH4 0x23b872dd
EQ
PUSH2 0x0193
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
CALLDATASIZE
PUSH2 0x0114
JUMPI
STOP
JUMPDEST
PUSH1 0x00
DUP1
REVERT
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0125
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x012e
PUSH2 0x0376
JUMP
JUMPDEST
PUSH1 0x40
MLOAD
PUSH2 0x013b
SWAP2
SWAP1
PUSH2 0x0b86
JUMP
JUMPDEST
PUSH1 0x40
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0150
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x0164
PUSH2 0x015f
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0bf0
JUMP
JUMPDEST
PUSH2 0x0408
JUMP
JUMPDEST
PUSH1 0x40
MLOAD
SWAP1
ISZERO
ISZERO
DUP2
MSTORE
PUSH1 0x20
ADD
PUSH2 0x013b
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0180
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH1 0x02
SLOAD
JUMPDEST
PUSH1 0x40
MLOAD
SWAP1
DUP2
MSTORE
PUSH1 0x20
ADD
PUSH2 0x013b
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x019f
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x0164
PUSH2 0x01ae
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0c1a
JUMP
JUMPDEST
PUSH2 0x0422
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x01bf
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH1 0x40
MLOAD
PUSH1 0x12
DUP2
MSTORE
PUSH1 0x20
ADD
PUSH2 0x013b
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x01db
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x0164
PUSH2 0x01ea
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0bf0
JUMP
JUMPDEST
PUSH2 0x0446
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x01fb
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x020f
PUSH2 0x020a
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0c56
JUMP
JUMPDEST
PUSH2 0x0468
JUMP
JUMPDEST
STOP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x021d
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x0185
PUSH2 0x022c
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0c6f
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
AND
PUSH1 0x00
SWAP1
DUP2
MSTORE
PUSH1 0x20
DUP2
SWAP1
MSTORE
PUSH1 0x40
SWAP1
SHA3
SLOAD
SWAP1
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0253
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x020f
PUSH2 0x0475
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0268
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x020f
PUSH2 0x0489
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x027d
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x020f
PUSH2 0x028c
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0bf0
JUMP
JUMPDEST
PUSH2 0x0505
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x029d
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH1 0x05
SLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
AND
JUMPDEST
PUSH1 0x40
MLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
SWAP1
SWAP2
AND
DUP2
MSTORE
PUSH1 0x20
ADD
PUSH2 0x013b
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x02cf
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x012e
PUSH2 0x051e
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x02e4
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x0164
PUSH2 0x02f3
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0bf0
JUMP
JUMPDEST
PUSH2 0x052d
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0304
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x0164
PUSH2 0x0313
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0bf0
JUMP
JUMPDEST
PUSH2 0x05a8
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0324
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x0185
PUSH2 0x0333
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0c91
JUMP
JUMPDEST
PUSH2 0x05b6
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0344
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH1 0x06
SLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
AND
PUSH2 0x02ab
JUMP
JUMPDEST
CALLVALUE
DUP1
ISZERO
PUSH2 0x0362
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
PUSH2 0x020f
PUSH2 0x0371
CALLDATASIZE
PUSH1 0x04
PUSH2 0x0c6f
JUMP
JUMPDEST
PUSH2 0x05e1
JUMP
JUMPDEST
PUSH1 0x60
PUSH1 0x03
DUP1
SLOAD
PUSH2 0x0385
SWAP1
PUSH2 0x0cc4
JUMP
JUMPDEST
DUP1
PUSH1 0x1f
ADD
PUSH1 0x20
DUP1
SWAP2
DIV
MUL
PUSH1 0x20
ADD
PUSH1 0x40
MLOAD
SWAP1
DUP2
ADD
PUSH1 0x40
MSTORE
DUP1
SWAP3
SWAP2
SWAP1
DUP2
DUP2
MSTORE
PUSH1 0x20
ADD
DUP3
DUP1
SLOAD
PUSH2 0x03b1
SWAP1
PUSH2 0x0cc4
JUMP
JUMPDEST
DUP1
ISZERO
PUSH2 0x03fe
JUMPI
DUP1
PUSH1 0x1f
LT
PUSH2 0x03d3
JUMPI
PUSH2 0x0100
DUP1
DUP4
SLOAD
DIV
MUL
DUP4
MSTORE
SWAP2
PUSH1 0x20
ADD
SWAP2
PUSH2 0x03fe
JUMP
JUMPDEST
DUP3
ADD
SWAP2
SWAP1
PUSH1 0x00
MSTORE
PUSH1 0x20
PUSH1 0x00
SHA3
SWAP1
JUMPDEST
DUP2
SLOAD
DUP2
MSTORE
SWAP1
PUSH1 0x01
ADD
SWAP1
PUSH1 0x20
ADD
DUP1
DUP4
GT
PUSH2 0x03e1
JUMPI
DUP3
SWAP1
SUB
PUSH1 0x1f
AND
DUP3
ADD
SWAP2
JUMPDEST
POP
POP
POP
POP
POP
SWAP1
POP
SWAP1
JUMP
JUMPDEST
PUSH1 0x00
CALLER
PUSH2 0x0416
DUP2
DUP6
DUP6
PUSH2 0x0652
JUMP
JUMPDEST
PUSH1 0x01
SWAP2
POP
POP
JUMPDEST
SWAP3
SWAP2
POP
POP
JUMP
JUMPDEST
PUSH1 0x00
CALLER
PUSH2 0x0430
DUP6
DUP3
DUP6
PUSH2 0x0776
JUMP
JUMPDEST
PUSH2 0x043b
DUP6
DUP6
DUP6
PUSH2 0x07f0
JUMP
JUMPDEST
POP
PUSH1 0x01
SWAP5
SWAP4
POP
POP
POP
POP
JUMP
JUMPDEST
PUSH1 0x00
CALLER
PUSH2 0x0416
DUP2
DUP6
DUP6
PUSH2 0x0459
DUP4
DUP4
PUSH2 0x05b6
JUMP
JUMPDEST
PUSH2 0x0463
SWAP2
SWAP1
PUSH2 0x0cfe
JUMP
JUMPDEST
PUSH2 0x0652
JUMP
JUMPDEST
PUSH2 0x0472
CALLER
DUP3
PUSH2 0x0994
JUMP
JUMPDEST
POP
JUMP
JUMPDEST
PUSH2 0x047d
PUSH2 0x0ac6
JUMP
JUMPDEST
PUSH2 0x0487
PUSH1 0x00
PUSH2 0x0b20
JUMP
JUMPDEST
JUMP
JUMPDEST
PUSH1 0x06
SLOAD
CALLER
SWAP1
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
AND
DUP2
EQ
PUSH2 0x04fc
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x29
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH9 0x3732bb9037bbb732b9
PUSH1 0xb9
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
JUMPDEST
PUSH1 0x40
MLOAD
DUP1
SWAP2
SUB
SWAP1
REVERT
JUMPDEST
PUSH2 0x0472
DUP2
PUSH2 0x0b20
JUMP
JUMPDEST
PUSH2 0x0510
DUP3
CALLER
DUP4
PUSH2 0x0776
JUMP
JUMPDEST
PUSH2 0x051a
DUP3
DUP3
PUSH2 0x0994
JUMP
JUMPDEST
POP
POP
JUMP
JUMPDEST
PUSH1 0x60
PUSH1 0x04
DUP1
SLOAD
PUSH2 0x0385
SWAP1
PUSH2 0x0cc4
JUMP
JUMPDEST
PUSH1 0x00
CALLER
DUP2
PUSH2 0x053b
DUP3
DUP7
PUSH2 0x05b6
JUMP
JUMPDEST
SWAP1
POP
DUP4
DUP2
LT
ISZERO
PUSH2 0x059b
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x25
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH5 0x207a65726f
PUSH1 0xd8
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH2 0x043b
DUP3
DUP7
DUP7
DUP5
SUB
PUSH2 0x0652
JUMP
JUMPDEST
PUSH1 0x00
CALLER
PUSH2 0x0416
DUP2
DUP6
DUP6
PUSH2 0x07f0
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
SWAP2
DUP3
AND
PUSH1 0x00
SWAP1
DUP2
MSTORE
PUSH1 0x01
PUSH1 0x20
SWAP1
DUP2
MSTORE
PUSH1 0x40
DUP1
DUP4
SHA3
SWAP4
SWAP1
SWAP5
AND
DUP3
MSTORE
SWAP2
SWAP1
SWAP2
MSTORE
SHA3
SLOAD
SWAP1
JUMP
JUMPDEST
PUSH2 0x05e9
PUSH2 0x0ac6
JUMP
JUMPDEST
PUSH1 0x06
DUP1
SLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP4
AND
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
NOT
SWAP1
SWAP2
AND
DUP2
OR
SWAP1
SWAP2
SSTORE
PUSH2 0x061a
PUSH1 0x05
SLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
AND
SWAP1
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
AND
PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
PUSH1 0x40
MLOAD
PUSH1 0x40
MLOAD
DUP1
SWAP2
SUB
SWAP1
LOG3
POP
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP4
AND
PUSH2 0x06b4
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x24
DUP1
DUP3
ADD
MSTORE
PUSH32 0x45524332303a20617070726f76652066726f6d20746865207a65726f20616464
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH4 0x72657373
PUSH1 0xe0
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP3
AND
PUSH2 0x0715
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x22
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a20617070726f766520746f20746865207a65726f206164647265
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH2 0x7373
PUSH1 0xf0
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP4
DUP2
AND
PUSH1 0x00
DUP2
DUP2
MSTORE
PUSH1 0x01
PUSH1 0x20
SWAP1
DUP2
MSTORE
PUSH1 0x40
DUP1
DUP4
SHA3
SWAP5
DUP8
AND
DUP1
DUP5
MSTORE
SWAP5
DUP3
MSTORE
SWAP2
DUP3
SWAP1
SHA3
DUP6
SWAP1
SSTORE
SWAP1
MLOAD
DUP5
DUP2
MSTORE
PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
SWAP2
ADD
PUSH1 0x40
MLOAD
DUP1
SWAP2
SUB
SWAP1
LOG3
POP
POP
POP
JUMP
JUMPDEST
PUSH1 0x00
PUSH2 0x0782
DUP5
DUP5
PUSH2 0x05b6
JUMP
JUMPDEST
SWAP1
POP
PUSH1 0x00
NOT
DUP2
EQ
PUSH2 0x07ea
JUMPI
DUP2
DUP2
LT
ISZERO
PUSH2 0x07dd
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x1d
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH1 0x64
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH2 0x07ea
DUP5
DUP5
DUP5
DUP5
SUB
PUSH2 0x0652
JUMP
JUMPDEST
POP
POP
POP
POP
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP4
AND
PUSH2 0x0854
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x25
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a207472616e736665722066726f6d20746865207a65726f206164
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH5 0x6472657373
PUSH1 0xd8
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP3
AND
PUSH2 0x08b6
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x23
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a207472616e7366657220746f20746865207a65726f2061646472
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH3 0x657373
PUSH1 0xe8
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP4
AND
PUSH1 0x00
SWAP1
DUP2
MSTORE
PUSH1 0x20
DUP2
SWAP1
MSTORE
PUSH1 0x40
SWAP1
SHA3
SLOAD
DUP2
DUP2
LT
ISZERO
PUSH2 0x092e
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x26
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732062
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH6 0x616c616e6365
PUSH1 0xd0
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP5
DUP2
AND
PUSH1 0x00
DUP2
DUP2
MSTORE
PUSH1 0x20
DUP2
DUP2
MSTORE
PUSH1 0x40
DUP1
DUP4
SHA3
DUP8
DUP8
SUB
SWAP1
SSTORE
SWAP4
DUP8
AND
DUP1
DUP4
MSTORE
SWAP2
DUP5
SWAP1
SHA3
DUP1
SLOAD
DUP8
ADD
SWAP1
SSTORE
SWAP3
MLOAD
DUP6
DUP2
MSTORE
SWAP1
SWAP3
PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
SWAP2
ADD
PUSH1 0x40
MLOAD
DUP1
SWAP2
SUB
SWAP1
LOG3
PUSH2 0x07ea
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP3
AND
PUSH2 0x09f4
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x21
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a206275726e2066726f6d20746865207a65726f20616464726573
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH1 0x73
PUSH1 0xf8
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP3
AND
PUSH1 0x00
SWAP1
DUP2
MSTORE
PUSH1 0x20
DUP2
SWAP1
MSTORE
PUSH1 0x40
SWAP1
SHA3
SLOAD
DUP2
DUP2
LT
ISZERO
PUSH2 0x0a68
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
MSTORE
PUSH1 0x22
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x45524332303a206275726e20616d6f756e7420657863656564732062616c616e
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH2 0x6365
PUSH1 0xf0
SHL
PUSH1 0x64
DUP3
ADD
MSTORE
PUSH1 0x84
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP4
AND
PUSH1 0x00
DUP2
DUP2
MSTORE
PUSH1 0x20
DUP2
DUP2
MSTORE
PUSH1 0x40
DUP1
DUP4
SHA3
DUP7
DUP7
SUB
SWAP1
SSTORE
PUSH1 0x02
DUP1
SLOAD
DUP8
SWAP1
SUB
SWAP1
SSTORE
MLOAD
DUP6
DUP2
MSTORE
SWAP2
SWAP3
SWAP2
PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
SWAP2
ADD
PUSH1 0x40
MLOAD
DUP1
SWAP2
SUB
SWAP1
LOG3
POP
POP
POP
JUMP
JUMPDEST
PUSH1 0x05
SLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
AND
CALLER
EQ
PUSH2 0x0487
JUMPI
PUSH1 0x40
MLOAD
PUSH3 0x461bcd
PUSH1 0xe5
SHL
DUP2
MSTORE
PUSH1 0x20
PUSH1 0x04
DUP3
ADD
DUP2
SWAP1
MSTORE
PUSH1 0x24
DUP3
ADD
MSTORE
PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
PUSH1 0x44
DUP3
ADD
MSTORE
PUSH1 0x64
ADD
PUSH2 0x04f3
JUMP
JUMPDEST
PUSH1 0x06
DUP1
SLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
NOT
AND
SWAP1
SSTORE
PUSH2 0x0472
DUP2
PUSH1 0x05
DUP1
SLOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP4
DUP2
AND
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
NOT
DUP4
AND
DUP2
OR
SWAP1
SWAP4
SSTORE
PUSH1 0x40
MLOAD
SWAP2
AND
SWAP2
SWAP1
DUP3
SWAP1
PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
SWAP1
PUSH1 0x00
SWAP1
LOG3
POP
POP
JUMP
JUMPDEST
PUSH1 0x00
PUSH1 0x20
DUP1
DUP4
MSTORE
DUP4
MLOAD
DUP1
DUP3
DUP6
ADD
MSTORE
PUSH1 0x00
JUMPDEST
DUP2
DUP2
LT
ISZERO
PUSH2 0x0bb3
JUMPI
DUP6
DUP2
ADD
DUP4
ADD
MLOAD
DUP6
DUP3
ADD
PUSH1 0x40
ADD
MSTORE
DUP3
ADD
PUSH2 0x0b97
JUMP
JUMPDEST
POP
PUSH1 0x00
PUSH1 0x40
DUP3
DUP7
ADD
ADD
MSTORE
PUSH1 0x40
PUSH1 0x1f
NOT
PUSH1 0x1f
DUP4
ADD
AND
DUP6
ADD
ADD
SWAP3
POP
POP
POP
SWAP3
SWAP2
POP
POP
JUMP
JUMPDEST
DUP1
CALLDATALOAD
PUSH1 0x01
PUSH1 0x01
PUSH1 0xa0
SHL
SUB
DUP2
AND
DUP2
EQ
PUSH2 0x0beb
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
SWAP2
SWAP1
POP
JUMP
JUMPDEST
PUSH1 0x00
DUP1
PUSH1 0x40
DUP4
DUP6
SUB
SLT
ISZERO
PUSH2 0x0c03
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
PUSH2 0x0c0c
DUP4
PUSH2 0x0bd4
JUMP
JUMPDEST
SWAP5
PUSH1 0x20
SWAP4
SWAP1
SWAP4
ADD
CALLDATALOAD
SWAP4
POP
POP
POP
JUMP
JUMPDEST
PUSH1 0x00
DUP1
PUSH1 0x00
PUSH1 0x60
DUP5
DUP7
SUB
SLT
ISZERO
PUSH2 0x0c2f
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
PUSH2 0x0c38
DUP5
PUSH2 0x0bd4
JUMP
JUMPDEST
SWAP3
POP
PUSH2 0x0c46
PUSH1 0x20
DUP6
ADD
PUSH2 0x0bd4
JUMP
JUMPDEST
SWAP2
POP
PUSH1 0x40
DUP5
ADD
CALLDATALOAD
SWAP1
POP
SWAP3
POP
SWAP3
POP
SWAP3
JUMP
JUMPDEST
PUSH1 0x00
PUSH1 0x20
DUP3
DUP5
SUB
SLT
ISZERO
PUSH2 0x0c68
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
POP
CALLDATALOAD
SWAP2
SWAP1
POP
JUMP
JUMPDEST
PUSH1 0x00
PUSH1 0x20
DUP3
DUP5
SUB
SLT
ISZERO
PUSH2 0x0c81
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
PUSH2 0x0c8a
DUP3
PUSH2 0x0bd4
JUMP
JUMPDEST
SWAP4
SWAP3
POP
POP
POP
JUMP
JUMPDEST
PUSH1 0x00
DUP1
PUSH1 0x40
DUP4
DUP6
SUB
SLT
ISZERO
PUSH2 0x0ca4
JUMPI
PUSH1 0x00
DUP1
REVERT
JUMPDEST
PUSH2 0x0cad
DUP4
PUSH2 0x0bd4
JUMP
JUMPDEST
SWAP2
POP
PUSH2 0x0cbb
PUSH1 0x20
DUP5
ADD
PUSH2 0x0bd4
JUMP
JUMPDEST
SWAP1
POP
SWAP3
POP
SWAP3
SWAP1
POP
JUMP
JUMPDEST
PUSH1 0x01
DUP2
DUP2
SHR
SWAP1
DUP3
AND
DUP1
PUSH2 0x0cd8
JUMPI
PUSH1 0x7f
DUP3
AND
SWAP2
POP
JUMPDEST
PUSH1 0x20
DUP3
LT
DUP2
SUB
PUSH2 0x0cf8
JUMPI
PUSH4 0x4e487b71
PUSH1 0xe0
SHL
PUSH1 0x00
MSTORE
PUSH1 0x22
PUSH1 0x04
MSTORE
PUSH1 0x24
PUSH1 0x00
REVERT
JUMPDEST
POP
SWAP2
SWAP1
POP
JUMP
JUMPDEST
DUP1
DUP3
ADD
DUP1
DUP3
GT
ISZERO
PUSH2 0x041c
JUMPI
PUSH4 0x4e487b71
PUSH1 0xe0
SHL
PUSH1 0x00
MSTORE
PUSH1 0x11
PUSH1 0x04
MSTORE
PUSH1 0x24
PUSH1 0x00
REVERT
'fe'(Unknown Opcode)
LOG2
PUSH5 0x6970667358
'22'(Unknown Opcode)
SLT
SHA3
PUSH21 0x1da4d474cd683bf9c84ccc4443c41b4392da71f60c
'24'(Unknown Opcode)
EXTCODEHASH
'24'(Unknown Opcode)
GAS
SWAP11
*/


// SPDX-License-Identifier: No License
pragma solidity 0.8.19;

import "./ERC20.sol";
import "./ERC20Burnable.sol";
import "./Ownable2Step.sol";

contract lemuoid is ERC20, ERC20Burnable, Ownable2Step {
      
    constructor()
        ERC20(unicode"lemuoid", unicode"lemu") 
    {
        address supplyRecipient = 0xe2Ca93ae9b0586FABB9429e977319d5bD560F7dc;
        
        _mint(supplyRecipient, 10000000 * (10 ** decimals()) / 10);
        _transferOwnership(0xe2Ca93ae9b0586FABB9429e977319d5bD560F7dc);
    }
    
    receive() external payable {}

    function decimals() public pure override returns (uint8) {
        return 18;
    }
    
    function _beforeTokenTransfer(address from, address to, uint256 amount)
        internal
        override
    {
        super._beforeTokenTransfer(from, to, amount);
    }

    function _afterTokenTransfer(address from, address to, uint256 amount)
        internal
        override
    {
        super._afterTokenTransfer(from, to, amount);
    }
}

File 2 of 8 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

File 3 of 8 : ERC20Burnable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity ^0.8.0;

import "./ERC20.sol";
import "./Context.sol";

/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

File 4 of 8 : Ownable2Step.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)

pragma solidity ^0.8.0;

import "./Ownable.sol";

/**
 * @dev Contract module which provides access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership} and {acceptOwnership}.
 *
 * This module is used through inheritance. It will make available all functions
 * from parent (Ownable).
 */
abstract contract Ownable2Step is Ownable {
    address private _pendingOwner;

    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Returns the address of the pending owner.
     */
    function pendingOwner() public view virtual returns (address) {
        return _pendingOwner;
    }

    /**
     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual override onlyOwner {
        _pendingOwner = newOwner;
        emit OwnershipTransferStarted(owner(), newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual override {
        delete _pendingOwner;
        super._transferOwnership(newOwner);
    }

    /**
     * @dev The new owner accepts the ownership transfer.
     */
    function acceptOwnership() public virtual {
        address sender = _msgSender();
        require(pendingOwner() == sender, "Ownable2Step: caller is not the new owner");
        _transferOwnership(sender);
    }
}

File 5 of 8 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "./Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 6 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

File 7 of 8 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 8 of 8 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract 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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b50604051806040016040528060078152602001661b195b5d5bda5960ca1b815250604051806040016040528060048152602001636c656d7560e01b81525081600390816200006091906200030e565b5060046200006f82826200030e565b5050506200008c62000086620000fc60201b60201c565b62000100565b73e2ca93ae9b0586fabb9429e977319d5bd560f7dc620000d681600a620000b5601282620004ef565b620000c4906298968062000507565b620000d0919062000521565b6200011e565b620000f573e2ca93ae9b0586fabb9429e977319d5bd560f7dc62000100565b506200055a565b3390565b600680546001600160a01b03191690556200011b8162000200565b50565b6001600160a01b038216620001795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b620001876000838362000252565b80600260008282546200019b919062000544565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001fc6000838362000252565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620002658383836001600160e01b038416565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029557607f821691505b602082108103620002b657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026557600081815260208120601f850160051c81016020861015620002e55750805b601f850160051c820191505b818110156200030657828155600101620002f1565b505050505050565b81516001600160401b038111156200032a576200032a6200026a565b62000342816200033b845462000280565b84620002bc565b602080601f8311600181146200037a5760008415620003615750858301515b600019600386901b1c1916600185901b17855562000306565b600085815260208120601f198616915b82811015620003ab578886015182559484019460019091019084016200038a565b5085821015620003ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000431578160001904821115620004155762000415620003da565b808516156200042357918102915b93841c9390800290620003f5565b509250929050565b6000826200044a57506001620004e9565b816200045957506000620004e9565b81600181146200047257600281146200047d576200049d565b6001915050620004e9565b60ff841115620004915762000491620003da565b50506001821b620004e9565b5060208310610133831016604e8410600b8410161715620004c2575081810a620004e9565b620004ce8383620003f0565b8060001904821115620004e557620004e5620003da565b0290505b92915050565b60006200050060ff84168362000439565b9392505050565b8082028115828204841417620004e957620004e9620003da565b6000826200053f57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004e957620004e9620003da565b610d55806200056a6000396000f3fe60806040526004361061010d5760003560e01c806379ba509711610095578063a457c2d711610064578063a457c2d7146102d8578063a9059cbb146102f8578063dd62ed3e14610318578063e30c397814610338578063f2fde38b1461035657600080fd5b806379ba50971461025c57806379cc6790146102715780638da5cb5b1461029157806395d89b41146102c357600080fd5b8063313ce567116100dc578063313ce567146101b357806339509351146101cf57806342966c68146101ef57806370a0823114610211578063715018a61461024757600080fd5b806306fdde0314610119578063095ea7b31461014457806318160ddd1461017457806323b872dd1461019357600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5061012e610376565b60405161013b9190610b86565b60405180910390f35b34801561015057600080fd5b5061016461015f366004610bf0565b610408565b604051901515815260200161013b565b34801561018057600080fd5b506002545b60405190815260200161013b565b34801561019f57600080fd5b506101646101ae366004610c1a565b610422565b3480156101bf57600080fd5b506040516012815260200161013b565b3480156101db57600080fd5b506101646101ea366004610bf0565b610446565b3480156101fb57600080fd5b5061020f61020a366004610c56565b610468565b005b34801561021d57600080fd5b5061018561022c366004610c6f565b6001600160a01b031660009081526020819052604090205490565b34801561025357600080fd5b5061020f610475565b34801561026857600080fd5b5061020f610489565b34801561027d57600080fd5b5061020f61028c366004610bf0565b610505565b34801561029d57600080fd5b506005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b3480156102cf57600080fd5b5061012e61051e565b3480156102e457600080fd5b506101646102f3366004610bf0565b61052d565b34801561030457600080fd5b50610164610313366004610bf0565b6105a8565b34801561032457600080fd5b50610185610333366004610c91565b6105b6565b34801561034457600080fd5b506006546001600160a01b03166102ab565b34801561036257600080fd5b5061020f610371366004610c6f565b6105e1565b60606003805461038590610cc4565b80601f01602080910402602001604051908101604052809291908181526020018280546103b190610cc4565b80156103fe5780601f106103d3576101008083540402835291602001916103fe565b820191906000526020600020905b8154815290600101906020018083116103e157829003601f168201915b5050505050905090565b600033610416818585610652565b60019150505b92915050565b600033610430858285610776565b61043b8585856107f0565b506001949350505050565b60003361041681858561045983836105b6565b6104639190610cfe565b610652565b6104723382610994565b50565b61047d610ac6565b6104876000610b20565b565b60065433906001600160a01b031681146104fc5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084015b60405180910390fd5b61047281610b20565b610510823383610776565b61051a8282610994565b5050565b60606004805461038590610cc4565b6000338161053b82866105b6565b90508381101561059b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104f3565b61043b8286868403610652565b6000336104168185856107f0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6105e9610ac6565b600680546001600160a01b0383166001600160a01b0319909116811790915561061a6005546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0383166106b45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f3565b6001600160a01b0382166107155760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061078284846105b6565b905060001981146107ea57818110156107dd5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104f3565b6107ea8484848403610652565b50505050565b6001600160a01b0383166108545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f3565b6001600160a01b0382166108b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f3565b6001600160a01b0383166000908152602081905260409020548181101561092e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104f3565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36107ea565b6001600160a01b0382166109f45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104f3565b6001600160a01b03821660009081526020819052604090205481811015610a685760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104f3565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6005546001600160a01b031633146104875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f3565b600680546001600160a01b031916905561047281600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610bb357858101830151858201604001528201610b97565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610beb57600080fd5b919050565b60008060408385031215610c0357600080fd5b610c0c83610bd4565b946020939093013593505050565b600080600060608486031215610c2f57600080fd5b610c3884610bd4565b9250610c4660208501610bd4565b9150604084013590509250925092565b600060208284031215610c6857600080fd5b5035919050565b600060208284031215610c8157600080fd5b610c8a82610bd4565b9392505050565b60008060408385031215610ca457600080fd5b610cad83610bd4565b9150610cbb60208401610bd4565b90509250929050565b600181811c90821680610cd857607f821691505b602082108103610cf857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561041c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220741da4d474cd683bf9c84ccc4443c41b4392da71f60c243f245a9a797f40babd64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806379ba509711610095578063a457c2d711610064578063a457c2d7146102d8578063a9059cbb146102f8578063dd62ed3e14610318578063e30c397814610338578063f2fde38b1461035657600080fd5b806379ba50971461025c57806379cc6790146102715780638da5cb5b1461029157806395d89b41146102c357600080fd5b8063313ce567116100dc578063313ce567146101b357806339509351146101cf57806342966c68146101ef57806370a0823114610211578063715018a61461024757600080fd5b806306fdde0314610119578063095ea7b31461014457806318160ddd1461017457806323b872dd1461019357600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5061012e610376565b60405161013b9190610b86565b60405180910390f35b34801561015057600080fd5b5061016461015f366004610bf0565b610408565b604051901515815260200161013b565b34801561018057600080fd5b506002545b60405190815260200161013b565b34801561019f57600080fd5b506101646101ae366004610c1a565b610422565b3480156101bf57600080fd5b506040516012815260200161013b565b3480156101db57600080fd5b506101646101ea366004610bf0565b610446565b3480156101fb57600080fd5b5061020f61020a366004610c56565b610468565b005b34801561021d57600080fd5b5061018561022c366004610c6f565b6001600160a01b031660009081526020819052604090205490565b34801561025357600080fd5b5061020f610475565b34801561026857600080fd5b5061020f610489565b34801561027d57600080fd5b5061020f61028c366004610bf0565b610505565b34801561029d57600080fd5b506005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b3480156102cf57600080fd5b5061012e61051e565b3480156102e457600080fd5b506101646102f3366004610bf0565b61052d565b34801561030457600080fd5b50610164610313366004610bf0565b6105a8565b34801561032457600080fd5b50610185610333366004610c91565b6105b6565b34801561034457600080fd5b506006546001600160a01b03166102ab565b34801561036257600080fd5b5061020f610371366004610c6f565b6105e1565b60606003805461038590610cc4565b80601f01602080910402602001604051908101604052809291908181526020018280546103b190610cc4565b80156103fe5780601f106103d3576101008083540402835291602001916103fe565b820191906000526020600020905b8154815290600101906020018083116103e157829003601f168201915b5050505050905090565b600033610416818585610652565b60019150505b92915050565b600033610430858285610776565b61043b8585856107f0565b506001949350505050565b60003361041681858561045983836105b6565b6104639190610cfe565b610652565b6104723382610994565b50565b61047d610ac6565b6104876000610b20565b565b60065433906001600160a01b031681146104fc5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084015b60405180910390fd5b61047281610b20565b610510823383610776565b61051a8282610994565b5050565b60606004805461038590610cc4565b6000338161053b82866105b6565b90508381101561059b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104f3565b61043b8286868403610652565b6000336104168185856107f0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6105e9610ac6565b600680546001600160a01b0383166001600160a01b0319909116811790915561061a6005546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0383166106b45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f3565b6001600160a01b0382166107155760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061078284846105b6565b905060001981146107ea57818110156107dd5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104f3565b6107ea8484848403610652565b50505050565b6001600160a01b0383166108545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f3565b6001600160a01b0382166108b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f3565b6001600160a01b0383166000908152602081905260409020548181101561092e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104f3565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36107ea565b6001600160a01b0382166109f45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104f3565b6001600160a01b03821660009081526020819052604090205481811015610a685760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104f3565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6005546001600160a01b031633146104875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f3565b600680546001600160a01b031916905561047281600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610bb357858101830151858201604001528201610b97565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610beb57600080fd5b919050565b60008060408385031215610c0357600080fd5b610c0c83610bd4565b946020939093013593505050565b600080600060608486031215610c2f57600080fd5b610c3884610bd4565b9250610c4660208501610bd4565b9150604084013590509250925092565b600060208284031215610c6857600080fd5b5035919050565b600060208284031215610c8157600080fd5b610c8a82610bd4565b9392505050565b60008060408385031215610ca457600080fd5b610cad83610bd4565b9150610cbb60208401610bd4565b90509250929050565b600181811c90821680610cd857607f821691505b602082108103610cf857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561041c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220741da4d474cd683bf9c84ccc4443c41b4392da71f60c243f245a9a797f40babd64736f6c63430008130033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Lemuoid project aims for high profitability in order to explain the return of technology to sports, recreational activities and entertainment.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.