Contract Address 0x73c084388F5423c991030C3FA22249D3e02b1960

 

Overview

Total Supply:
1,000,000,000 MDR

Circulating Supply:
300,000,000 MDR

Holders:
Addresses

Price:
$0.07

Market Cap/Fully MC:
$400,000,000 (@ $0.07)

Token:
My Name Tag:
Not Available, login to update

Contract:
0x73c084388F5423c991030C3FA22249D3e02b1960

Creator:
0x7d528109c7Db392E92740C982A4e36f37c4ca684

Decimal:
8

Issuing Time :
2023-05-04 11:23

Official Website:
#

Social Profiles:
Balance
12403.4 MDR

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0xf5a74eec846b73e8c549e79dbbe17270c897803c05b746e5b1e4aeae7d42943c Transfer 2024-05-10 16:23:12 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 1,499.1000 MDR
0xbd5c34be7c40d13db85a3c75e2af6e28a1f3879dc526fe031e39810bf7908c0a Transfer 2024-05-10 13:55:30 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 6,545.5000 MDR
0x1da4499b27f0edbcc16f2324f677711b047b1de394aae24a2fe48c6cd9f2febe Transfer 2024-05-10 14:35:57 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 1,881.9500 MDR
0x5cad5042c750d08a02fc0c7d9c42b9d2320560b5c08a2108ec89a4e376609243 Transfer 2024-05-10 14:29:42 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 743.8500 MDR
0xc03ffb6d19aab1b4674ee83dbba842ea05b84db8dc3c2abfc99ca4ff62656a90 Transfer 2024-05-09 17:34:01 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 1,733.0000 MDR
0x753cc8cca7a1b52fd629df81dad232aae2c9947b632018ab29a77de2a47f1ee9 Transfer 2024-05-02 22:01:43 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0xde594f5c51c2c152bb596cf9526d5279f5ae32bc 280.0000 MDR
0xe546597cda2076496ead3334bb42d3267e1b19ce95ea1a72fddfc1ed431e69f2 Transfer 2024-03-28 16:44:01 0x20f220876ac50971be10e3428316e3f6c49aafbf IN 0x8005895168f12d42c2558e7af0213d525a006eac 280.0000 MDR
0x0de61b208965158d1972249f7dfa69c64c9413104b3a87aaf57638daae6d8fb3 Transfer 2024-03-03 21:59:16 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0xde594f5c51c2c152bb596cf9526d5279f5ae32bc 1,030.7500 MDR
0xf5f40853b466064181657264e286b48b11b9643edee2b69b4318b944eabdf057 Transfer 2024-03-03 21:50:07 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 698.2500 MDR
0xc8123b089ad02345f6b58b4c3caa3d1944fd6574a81b5a42cdbaf39542a21fbe Transfer 2024-03-03 18:48:10 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 332.5000 MDR
0xff9a729241e952b63b213d6cf132dd4072fb0f2fe0df6ebfe3ca4b619964466a Transfer 2024-02-13 16:51:35 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0xde594f5c51c2c152bb596cf9526d5279f5ae32bc 122.5500 MDR
0xfce4a4c7b5da9495d8700e6a95176f898590cd4af10aab3ab939b9e13ea8c480 Transfer 2024-02-10 12:57:16 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 122.5500 MDR
0xd6c47a4c8821a4ab864e5cbfeed7de7ea76b368594ece193b363645dc111abfd Transfer 2024-02-07 11:41:25 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0xa81a9889c9452c7e5b8f8087cdd7c59c77788667 975.6500 MDR
0x62b01dfcc5de5fdc1aa1674b75063f7589c222bbabddb27c264c4f30f1085a6a Transfer 2024-02-06 15:48:15 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 914.8500 MDR
0x77a740fbd1bd0e9bd9e65ed181e5e52eba3d959181c435935d71f5d214378dd3 Transfer 2024-02-05 22:49:44 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 29.4500 MDR
0x00ad3b4a8f088caf343cb05894a50d799c0e571cc9be22c78432e9648d606b2e Transfer 2024-02-05 22:41:32 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 31.3500 MDR
0x2f1e1996b40208c176d1536902e1daa21d82057b6d5c2fd80c7c8eae9721a937 Transfer 2024-02-05 19:57:56 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0xde594f5c51c2c152bb596cf9526d5279f5ae32bc 4,035.6000 MDR
0xe082e8cfe750463dd3c10b6405bfb7eba9ed39e145bb33de46993f9784e6b1aa Transfer 2024-02-05 17:26:02 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 355.3000 MDR
0x09b372c29e1089f46e562e1024bf61a45c8eee8abb967383930756c468142771 Transfer 2024-02-05 17:25:11 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 831.2500 MDR
0xc7e08592eef7b53a4eee38cc23325715bd0f74d2770aa27bd8a1ad6e7ff3b265 Transfer 2024-02-03 14:15:35 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 579.5000 MDR
0xff865cfdc6e0562f08ddbd49f6ab5c5c81b23094927800b7fd83f6deac09411e Transfer 2024-02-02 17:57:56 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 2,083.3500 MDR
0x46c5bd4f9b2b8c7608ce2d30f77cbbc67bc0c46412a084e1785340172ec400aa Transfer 2024-01-31 11:08:32 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 34.2000 MDR
0xd9eb32fd371efa1326047cafb0a452d111a0ba5b1ff0de62589616479124eb74 Transfer 2024-01-29 14:19:07 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 118.7500 MDR
0x3100fb092f4fba22a00087f4b10559beb474ccc849b78c3f5c593de54b63025b Transfer 2024-01-21 22:59:32 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 33.2500 MDR
0x609992a3a206138a15ede08e7fa076edf321b6f7297b56663cc895069c4900e5 Transfer 2024-01-03 21:22:51 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x9d2694d0cc5abfa379e9b42ad8cfc3abfd9f0797 1,160.9000 MDR
0xf10872fb4a6d8f587d18688697b96ef2142e4a84881ad94b131861e4749fd0e7 Transfer 2024-01-02 18:04:00 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 61.7500 MDR
0x9d6815f8ff1854d42509abb5582789b6e976aac5a49311a493b59ce4bd9283d6 Transfer 2024-01-02 18:03:15 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 95.9500 MDR
0x244590a83458f6d651e774f1a6893764e8d0b9e95630318c3f7104938dd1ec19 Transfer 2024-01-02 16:59:36 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 42.7500 MDR
0x296e88bd52c838b0ad29fecaab47fa04326df2bbe26e9ef58b5731596cbdf4fd Transfer 2024-01-02 16:58:48 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 42.7500 MDR
0x7ca2045498b627f3fcfa0e477b4fed31da6ab9fd9cc8b670beb283fbab982bc5 Transfer 2024-01-01 13:11:54 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 139.6500 MDR
0x3520c5c002813e6f5446065f1862f334bb232188e6348dd700d0f7e997918a4a Transfer 2024-01-01 12:57:27 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 78.8500 MDR
0xc398f6bd7cc1cab21534ece76dc370f763909f2fa514aa8c15daa0deeaee3cfa Transfer 2023-12-27 18:43:24 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 189.0500 MDR
0xcfa174ee3d82423e0839aac9588fba2d11807195f3c1dbc89b26059df3a8e558 Transfer 2023-12-26 17:03:40 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 372.4000 MDR
0x4232bcf349e10a58fe6f27fe26a1043e9136f0f52f5bcbe3777e2f14da8c775f Transfer 2023-12-23 17:30:25 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 75.0500 MDR
0x39960a281704159a0f64a2f827dfbdf19ac5233b9ed95ee591837316f30c4d31 Transfer 2023-12-21 10:02:10 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 62.7000 MDR
0x1130d3014faaefa9f9d32934cf2ddeeda2ad4825fae168513a503d623dcbca08 Transfer 2023-12-18 13:16:23 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x9d2694d0cc5abfa379e9b42ad8cfc3abfd9f0797 38.0000 MDR
0xcd7a8a9402ff5e2dd734e09c75ed38fc367f3425e5223f925fd990b8adde365a Transfer 2023-12-18 00:26:20 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 38.0000 MDR
0xc68499c4ce257fd68b7fca7cc67716a44d49d0833ab438a3b815b6b9ec3136d4 Transfer 2023-12-12 18:11:38 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0xa81a9889c9452c7e5b8f8087cdd7c59c77788667 149.1500 MDR
0xddc2dff1b2b3442a1d467c092c749129e10f3a5809fce47492d87d2db5f221d2 Transfer 2023-12-12 09:17:50 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 149.1500 MDR
0x9b19b0711427af45c74a17620d32223087e5c3407b8ac24fad410e8bab0bad5f Transfer 2023-12-02 13:54:24 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x8d6f8cd2dc05cec63f764bbcdcc117257f778198 385.7000 MDR
0x7ee800519cc01c2736d8e0afec73f6984de2b4dfd12c885e2ea92ed02334e966 Transfer 2023-11-25 14:36:48 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 252.7000 MDR
0x52d73abc907968658e787f15acbc4e0ac5ce1913441714f44318de5c0e429383 Transfer 2023-11-23 08:37:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 90.2500 MDR
0x57b53c62841ca871677782f878bf21b468ac5ee30f77a17b45f9eb26b2cac236 Transfer 2023-11-20 11:52:06 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 42.7500 MDR
0xaf5f0fe579cba949b108798f8c65d4480c2210e0f34a88b5c04344ca70478a61 Transfer 2023-10-26 05:56:55 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x9d2694d0cc5abfa379e9b42ad8cfc3abfd9f0797 73.1500 MDR
0x7546829c970786988675a4355496aa5546b350d305c200a5ef5b6212d72e86ae Transfer 2023-10-26 05:52:43 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 73.1500 MDR
0x863b5ed49e06a37059394300ec92de454392f79fb1ff1324360a76a9b2503184 Transfer 2023-10-23 16:20:52 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x9d2694d0cc5abfa379e9b42ad8cfc3abfd9f0797 169.1000 MDR
0x1ddad3cab4a0b58bc43ae9dcedc883d59c478f55d49c2a013905ee629b5646a4 Transfer 2023-10-23 16:04:16 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 169.1000 MDR
0xe3ffda3ff8b5343cd5cd58a25a5f950fba5fdf1543ca344cf24352c40e7d5cfe Transfer 2023-10-15 13:59:19 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0xa81a9889c9452c7e5b8f8087cdd7c59c77788667 95.9500 MDR
0xea62f714c4652c61034abd2cff21da8d1fd04129ffc7666c3aa2eaecc11df44b Transfer 2023-10-15 13:45:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 48.4500 MDR
0x2b6e28b7ec6ee94fa8de20745794e4bd0e75d55c05035ffb68261cd4109293d8 Transfer 2023-10-13 10:40:34 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 47.5000 MDR
0x4fd0a2dab434fc1be0afbeffa45910412910ee2a56bb6d6f70fa982cc095fe2f Transfer 2023-10-06 12:12:01 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x9d2694d0cc5abfa379e9b42ad8cfc3abfd9f0797 129.2000 MDR
0xf7234ef1232eb77f421ddbaaee4abf02ba65cabe791651dbd4319a3db5e6e2fd Transfer 2023-10-06 09:56:10 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 129.2000 MDR
0x38c11d676ae0345c41f8d3410e9f81bcde70567cf44f28824535da8cb8bf01b5 Transfer 2023-09-13 11:10:16 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x26edcc2bbba9815697ec46f782ac97a67abc2842 115.9000 MDR
0x238544515c28514d919397b2db6ede7db7a0002ff46089a31e975396aa89ee1a Transfer 2023-09-13 11:07:01 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 115.9000 MDR
0x50b410a9d2e9c3ebb6dd1be5394b44e37019186822731cb92f6e6344c2fdb86c Transfer 2023-08-30 07:43:35 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x26edcc2bbba9815697ec46f782ac97a67abc2842 275.0250 MDR
0xdf2241a0793e4d6788217c27d5682a347257572cd7a38cc0dcae00fdf3fef3b5 Transfer 2023-08-27 09:59:08 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 56.0500 MDR
0xa21a8dd3671ef4812ec3f9b46ad46129d2f842250f6cf96c9ddf365631deb5e2 Transfer 2023-08-27 09:55:11 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 208.0500 MDR
0x25365ce57e255ada92b8f0d58d3eb6789d97b6d8a1555444eddfce889ef63f33 Transfer 2023-08-09 21:27:00 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 10.9250 MDR
0x26270ac2bdcd35c74753bb96321923cc35dcde5ba99ce1eb6f2d49de0eae828c Transfer 2023-07-28 20:35:34 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x26edcc2bbba9815697ec46f782ac97a67abc2842 60.8000 MDR
0x068b55c1cb3cd16c17253ce558ccd49238cdddd090f2161dd657bed1aa14cda1 Transfer 2023-07-28 20:29:37 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 28.5000 MDR
0x66f9f3a94eec71599f4a292a3d20871dbd4a9f9936923105938c44df8da716f1 Transfer 2023-07-28 16:25:37 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8005895168f12d42c2558e7af0213d525a006eac 32.3000 MDR
0xe346ff2e6df81582c4de28d986dea8fff8f4aff94eb9652a9db2d5057e2aaff9 Transfer 2023-07-07 21:00:23 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x332aab96f15744ed758967a0d0a1510f329647f2 17.1000 MDR
0x734c46cc30ad0c5b22251b1d05ce033553b172a57236667b6587f414b30a2a2b Transfer 2023-07-07 12:44:47 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 17.1000 MDR
0x460f165ec533fe9e16b3dea41102d9f10a14dd5ecb734b8d7d834150779b3f2a Transfer 2023-07-07 09:33:59 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x332aab96f15744ed758967a0d0a1510f329647f2 16.1500 MDR
0x20fca196b61f6491cb033b15e06b1868709705fc14be57e5ff81251be98439ec Transfer 2023-07-06 12:59:44 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 16.1500 MDR
0x1a3f06175eaa8faa25d2b64e289c07bd8882285b36bcc2ab2cf52f449b9cc5b7 Transfer 2023-06-11 16:57:16 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x9d2694d0cc5abfa379e9b42ad8cfc3abfd9f0797 229.9000 MDR
0xd518d762285ca0bf1a47c35d9db95c3c0d28922e6931e7470c8361058da2b410 Transfer 2023-06-11 11:58:37 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 229.9000 MDR
0x29ad78d015f592d39fa7ea51907f4a0dd06ec79af3c3ae27b1f5cdc75d5821c6 Transfer 2023-06-06 17:46:37 0x8005895168f12d42c2558e7af0213d525a006eac OUT 0x26edcc2bbba9815697ec46f782ac97a67abc2842 130.1500 MDR
0x6f50378bce95f15c034ca001a789fd31fe6bba8347b6189a60f8bc1d63c5b329 Transfer 2023-06-06 10:47:24 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8005895168f12d42c2558e7af0213d525a006eac 130.1500 MDR

 Latest 9 ERC-20 Token Transfer Events

Txn Hash
Block
From
To
Value [Txn Fee]
0x4c8599fa5db502d29d78ad3c85e39ff7160c4775e4e645cd344af13d662eded3 16807914 2 hrs 6 mins ago 0x931cdb4f83672a7803a552414c026b7914bb72ae OUT 0x1fd1259fa8cdc60c6e8c86cfa592ca1b8403dfad 0 BLN 0.000143891192

 Latest 25 blocks (From a total of 353,417 blocks with 47,300.41 BLN in fees)

Block Transaction Gas Used Reward
16738610 31 secs ago 430 19,977,660 (99.89%)
0.16001155598032753 BLN
16738609 33 secs ago 349 19,967,071 (99.84%)
1.368512730518157196 BLN
16738608 35 secs ago 430 19,959,026 (99.80%)
1.119899900678144967 BLN

pragma solidity ^0.4.24;

contract ERC20 {
    uint256 public totalSupply;

    function balanceOf(address who) public view returns (uint256 balance);

    function allowance(address owner, address spender) public view returns (uint256 remaining);

    function transfer(address to, uint256 value) public returns (bool success);

    function approve(address spender, uint256 value) public returns (bool success);

    function transferFrom(address from, address to, uint256 value) public returns (bool success);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);

    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a - b;
        assert(b <= a && c <= a);
        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a && c>=b);
        return c;
    }
}

library SafeERC20 {
    function safeTransfer(ERC20 _token, address _to, uint256 _value) internal {
        require(_token.transfer(_to, _value));
    }
}

contract Owned {
    address public owner;

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner,"O1- Owner only function");
        _;
    }

    function setOwner(address newOwner) onlyOwner public {
        owner = newOwner;
    }
}

contract Pausable is Owned {
    event Pause();
    event Unpause();

    bool public paused = false;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause() public onlyOwner whenNotPaused {
        paused = true;
        emit Pause();
    }

    function unpause() public onlyOwner whenPaused {
        paused = false;
        emit Unpause();
    }
}

contract AVNrich is Owned, Pausable, ERC20 {
    using SafeMath for uint256;
    using SafeERC20 for ERC20;

    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;
    mapping (address => bool) public frozenAccount;
    mapping (address => bool) public verifyPublisher;
    mapping (address => bool) public verifyWallet;

    struct fStruct { uint256 index; }
    mapping(string => fStruct) private fileHashes;
    string[] private fileIndex;

    string public constant name = "Bullion Share";
    uint8 public constant decimals = 8;
    string public constant symbol = "BLNS";
    uint256 public constant initialSupply = 21000000;
    uint256 public validationPrice = 7 * 10 ** uint(decimals);
    address public validationWallet = address(0);

    constructor() public {
        validationWallet = msg.sender;
        verifyWallet[msg.sender] = true;
        totalSupply = initialSupply * 10 ** uint(decimals);
        balances[msg.sender] = totalSupply;
        emit Transfer(address(0),owner,initialSupply);
    }

    function () public payable {
        revert();
    }

    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool success) {
        require(_to != msg.sender,"T1- Recipient can not be the same as sender");
        require(_to != address(0),"T2- Please check the recipient address");
        require(balances[msg.sender] >= _value,"T3- The balance of sender is too low");
        require(!frozenAccount[msg.sender],"T4- The wallet of sender is frozen");
        require(!frozenAccount[_to],"T5- The wallet of recipient is frozen");

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);

        emit Transfer(msg.sender, _to, _value);

        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool success) {
        require(_to != address(0),"TF1- Please check the recipient address");
        require(balances[_from] >= _value,"TF2- The balance of sender is too low");
        require(allowed[_from][msg.sender] >= _value,"TF3- The allowance of sender is too low");
        require(!frozenAccount[_from],"TF4- The wallet of sender is frozen");
        require(!frozenAccount[_to],"TF5- The wallet of recipient is frozen");

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);

        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);

        emit Transfer(_from, _to, _value);

        return true;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool success) {
        require((_value == 0) || (allowed[msg.sender][_spender] == 0),"A1- Reset allowance to 0 first");

        allowed[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value);

        return true;
    }

    function increaseApproval(address _spender, uint256 _addedValue) public whenNotPaused returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);

        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);

        return true;
    }

    function decreaseApproval(address _spender, uint256 _subtractedValue) public whenNotPaused returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].sub(_subtractedValue);

        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);

        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    struct TKN { address sender; uint256 value; bytes data; bytes4 sig; }

    function tokenFallback(address _from, uint256 _value, bytes _data) public pure returns (bool) {
        TKN memory tkn;
        tkn.sender = _from;
        tkn.value = _value;
        tkn.data = _data;
        uint32 u = uint32(_data[3]) + (uint32(_data[2]) << 8) + (uint32(_data[1]) << 16) + (uint32(_data[0]) << 24);
        tkn.sig = bytes4(u);
        return true;
    }

    function transferToken(address tokenAddress, uint256 tokens) public onlyOwner {
        ERC20(tokenAddress).safeTransfer(owner,tokens);
    }

    function burn(uint256 _value) public onlyOwner returns (bool) {
        require(_value <= balances[msg.sender],"B1- The balance of burner is too low");

        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);

        emit Burn(msg.sender, _value);

        emit Transfer(msg.sender, address(0), _value);

        return true;
    }

    function freeze(address _address, bool _state) public onlyOwner returns (bool) {
        frozenAccount[_address] = _state;

        emit Freeze(_address, _state);

        return true;
    }

    function validatePublisher(address Address, bool State, string Publisher) public onlyOwner returns (bool) {
        verifyPublisher[Address] = State;

        emit ValidatePublisher(Address,State,Publisher);

        return true;
    }

    function validateWallet(address Address, bool State, string Wallet) public onlyOwner returns (bool) {
        verifyWallet[Address] = State;

        emit ValidateWallet(Address,State,Wallet);

        return true;
    }

    function validateFile(address To, uint256 Payment, bytes Data, bool cStore, bool eLog) public whenNotPaused returns (bool) {
        require(Payment>=validationPrice,"V1- Insufficient payment provided");
        require(verifyPublisher[msg.sender],"V2- Unverified publisher address");
        require(!frozenAccount[msg.sender],"V3- The wallet of publisher is frozen");
        require(Data.length == 64,"V4- Invalid hash provided");

        if (!verifyWallet[To] || frozenAccount[To]) {
            To = validationWallet;
        }

        uint256 index = 0;
        string memory fileHash = string(Data);

        if (cStore) {
            if (fileIndex.length > 0) {
                require(fileHashes[fileHash].index == 0,"V5- This hash was previously validated");
            }

            fileHashes[fileHash].index = fileIndex.push(fileHash)-1;
            index = fileHashes[fileHash].index;
        }

        if (allowed[To][msg.sender] >= Payment) {
            allowed[To][msg.sender] = allowed[To][msg.sender].sub(Payment);
        } else {
            balances[msg.sender] = balances[msg.sender].sub(Payment);
            balances[To] = balances[To].add(Payment);
        }

        emit Transfer(msg.sender, To, Payment);

        if (eLog) {
            emit ValidateFile(index,fileHash);
        }

        return true;
    }

    function verifyFile(string fileHash) public view returns (bool) {
        if (fileIndex.length == 0) {
            return false;
        }

        bytes memory a = bytes(fileIndex[fileHashes[fileHash].index]);
        bytes memory b = bytes(fileHash);

        if (a.length != b.length) {
            return false;
        }

        for (uint256 i = 0; i < a.length; i ++) {
            if (a[i] != b[i]) {
                return false;
            }
        }

        return true;
    }

    function setPrice(uint256 newPrice) public onlyOwner {
        validationPrice = newPrice;
    }

    function setWallet(address newWallet) public onlyOwner {
        validationWallet = newWallet;
    }

    function listFiles(uint256 startAt, uint256 stopAt) onlyOwner public returns (bool) {
        if (fileIndex.length == 0) {
            return false;
        }

        require(startAt <= fileIndex.length-1,"L1- Please select a valid start");

        if (stopAt > 0) {
            require(stopAt > startAt && stopAt <= fileIndex.length-1,"L2- Please select a valid stop");
        } else {
            stopAt = fileIndex.length-1;
        }

        for (uint256 i = startAt; i <= stopAt; i++) {
            emit LogEvent(i,fileIndex[i]);
        }

        return true;
    }

    event Burn(address indexed burner, uint256 value);
    event Freeze(address target, bool frozen);

    event ValidateFile(uint256 index, string data);
    event ValidatePublisher(address indexed publisherAddress, bool state, string indexed publisherName);
    event ValidateWallet(address indexed walletAddress, bool state, string indexed walletName);

    event LogEvent(uint256 index, string data) anonymous;
}
Block Uncle Number Difficulty Gas Used Reward

Analytics data

Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.