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
0 MDR

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0xcf1c8a33cca5dc3ffaea1b0e9a22269c9fd8622f28d84114e6f3ad8f33a7861b Transfer 2024-06-17 06:46:52 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 782.8000 MDR
0x741b8c0123f9b1d0c7b535c4bff750b0f952d597a332f0b4cb641997bc1cfeda Transfer 2024-06-14 16:11:27 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 782.8000 MDR
0x555eef56acdffd876c765da17af73db0a625f3731a049dd8eb552cfd625f3f32 Transfer 2024-06-08 17:29:31 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 5,225.0000 MDR
0xa8bd1d39502d4a9be87dcd893c2ca6759f69740d90f7081cfd99cb0bc6c90238 Transfer 2024-06-08 13:58:07 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 5,225.0000 MDR
0xa57624aa2b370fb21ffba02008ff6f2f259674efdc8e40ab55c6f64de3f411f9 Transfer 2024-06-07 15:38:36 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 783.7500 MDR
0x8640f4a49a9264f9663311e1fee4983ad86074ea34830b8661afb69cfdc55503 Transfer 2024-06-07 09:52:03 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 783.7500 MDR
0x1aa7b6ba3a26c8d905d973749ec923cbc90852a77bc0d7968e3fd602db5b30e0 Transfer 2024-06-02 14:51:07 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,611.2000 MDR
0xb7efc0915af89f6e012425ec4d690c8c990b41a696fea5eb4a7c0306400a9c0b Transfer 2024-05-31 17:42:23 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,611.2000 MDR
0x8d3496efdea5a1da409c46c21328941b8b978d53d809368bf63336654146ec40 Transfer 2024-05-19 16:57:29 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 533.9000 MDR
0x6f106349b13c47689ae787ed228e51d702f807f0073837bb3b4e6fe95d7aa494 Transfer 2024-05-18 21:25:23 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 533.9000 MDR
0xc6e332d5f41bd51092469ef8625e788f122e57c6f8195bb747ea4f89af97d9be Transfer 2024-05-14 09:35:09 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 564.3000 MDR
0xacf0985e234d3b1f8614b312a2f9aec9c8ddd4db70a7de1103d4913234aef5ca Transfer 2024-05-14 07:56:50 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 564.3000 MDR
0xf19496924747a252a0e2e4831804fedc279056f561f1b5dc632fb08083cad1b0 Transfer 2024-05-12 18:15:45 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,489.6000 MDR
0xa72c4180602b12ff808bd1e3e0230c4205ec0bd54efae61b65f8c3a3d36431eb Transfer 2024-05-10 23:17:26 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,191.3000 MDR
0x0f4d03702c2d966d85ecdcdbee551af87ec32d14c1421fe94cf133560c0587cb Transfer 2024-05-02 12:22:46 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 298.3000 MDR
0x34ca74637c87d7cd440dbb17231201a9653afac60c53eb857a7595467c84ca6e Transfer 2024-04-30 21:03:03 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,192.2500 MDR
0xaf40e038730520632fe640b343b06e3a57182cf8e48e43b179170165ac6d13c6 Transfer 2024-04-30 09:37:51 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,192.2500 MDR
0x6c537b82013bff33648cd560db398ef291c259d30e3e783fbaef66b345aa5a6a Transfer 2024-04-25 22:05:24 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,900.0000 MDR
0xcbd846646257d11a9a048eaafd9489d25491bb92aa08bc3eda529cedff5582d9 Transfer 2024-04-25 21:59:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,900.0000 MDR
0xf4b2abbaa6361eafc7a0032952a8539adde12020df6b365a4cf73223bb73db18 Transfer 2024-04-22 12:05:55 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,260.6500 MDR
0x2a2fc0a31ebe98b043e56085bd96cc354d94a98ff425cc8fe8a062921c8420a3 Transfer 2024-04-22 11:12:19 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,260.6500 MDR
0xc95bdc06478dda37272533da667f955e3519cf3364a792dc0dc18de8ec1d5f80 Transfer 2024-04-20 19:00:27 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,029.8000 MDR
0x87566155eda6ea6d3349561f999b10fde33229aee9f37e3b7bafebb6b1ea6ffd Transfer 2024-04-20 14:19:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,029.8000 MDR
0x6e82819b12a3a435e59ddc859df23031372eeb299973033b7413a681f2bf8a1d Transfer 2024-04-17 23:25:32 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,301.5000 MDR
0xdc920e76351f928396cfd1932ac0684c1da6313e6adcdc49b590347cbb3b4216 Transfer 2024-04-17 22:52:05 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,301.5000 MDR
0xe7f6ef433cb5396bc02ed8a8c621366540d5600a7766f7329389eba3c56ed863 Transfer 2024-04-16 12:47:42 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,548.5000 MDR
0x9918c9d55cb774ea3d7cc36e7bbd817f931d96debd8134eae57c76caa1e7bea4 Transfer 2024-04-16 10:45:34 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,548.5000 MDR
0x46cfe8c5253081ee3e9a859334de0157eda641df55bf13bc7144455058c7eefe Transfer 2024-04-13 19:05:45 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,183.7000 MDR
0xcdc22cfdc2d697bee808ae0977978fee177a3a01a1acf3b6696250e6e504a2c2 Transfer 2024-04-13 18:43:45 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,183.7000 MDR
0xee298c4013e48c9061e88acc4887d913344188284e4cd36dc7c38f721a6d7c4f Transfer 2024-04-13 09:23:36 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 380.0000 MDR
0x03067844c3fbb81db0e31e6eed9ec97602ebb7fd850499870d289d09ab712968 Transfer 2024-04-12 14:52:08 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 380.0000 MDR
0x6e6cd74787dff7a6ddb21cd1c7027d8a1b8c50ce1002e77a3d6e5dbebfa5d11b Transfer 2024-03-11 14:42:44 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x040f14ffd64eb691467c252bd8dd2f84f02119dc 434.1500 MDR
0xfab8de94d5a062b008cc38507ff1a773cea5d3a81461a4a98ab1f85c710390e7 Transfer 2024-03-11 14:25:35 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 434.1500 MDR
0x3c36088bc630f97e18ac10c6fe8eb5522d1616da717c9cb2c3145addb0839f97 Transfer 2024-03-07 20:53:30 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 471.2000 MDR
0x675cb20810fa9c536a3c2ccc94cbc58744fa52c85986d5b3142453d2c8a7eb62 Transfer 2024-03-07 20:19:36 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 471.2000 MDR
0xf44c072ddc07470606c2af719c290ade55b1b033ebc6b6feb7aeb665144e137f Transfer 2024-03-06 14:10:29 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 456.9500 MDR
0xe12377560846ad91472f5984afcc9ed402dacbfab4d965999d9f3e8c92b95c3c Transfer 2024-03-06 14:00:29 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 456.9500 MDR
0x63d6a4a573444e5e4e4a696b70a58bc512e439be9bbd21c5ad0e8e290b4e8ae5 Transfer 2024-02-29 19:03:10 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 461.7000 MDR
0xdaa05141c4f05da2b5d8adc97286731888304e75c09eb46a3a8fb549c9e56b9c Transfer 2024-02-29 18:55:58 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 461.7000 MDR
0x947bd98b7f11be4cb2a36deb06bae7fa85710b9f36d3dcef8ef13c2b3aa0f479 Transfer 2024-02-24 19:12:11 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 465.5000 MDR
0xd9aa53423a322a3e408270083316868a62ece7cba1accb65c2084e60f2903101 Transfer 2024-02-24 18:57:23 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 465.5000 MDR
0xe541bbf1e61ffe668b385024b79fdb1f1e2453b13fa9f031d09cfb051ece34bb Transfer 2024-02-14 00:06:47 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 479.7500 MDR
0xc50c5221d78fd852f32924cf900278908f3d9764f09ffe0ccdc0a72813a61716 Transfer 2024-02-14 00:05:11 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x909a6d7a12361137b417e485be363f02029d49d8 479.7500 MDR
0x4be1d843900d0d7fcc23a2b8701d2a45cbff200176b8e018fcf9d7e5a3132505 Transfer 2024-02-13 16:10:11 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 247.0000 MDR
0x4d50696c5a61f76bbf2d4aec5524bbcc149dae0dda3fcf43302c75ce70345cec Transfer 2024-02-12 23:07:21 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 247.0000 MDR
0x48c6d0dc82864522e13e59de7ec765e3ed4bef9fb569b539fb6c94a9e5d16142 Transfer 2024-02-09 16:15:56 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 0.0000 MDR
0x4d8fbd32cd7f82dd6b776f06f625050b0eb890b1d189c2bb08d478220443367e Transfer 2024-02-08 23:10:35 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 5,214.5500 MDR
0xce02ae3c2792536e47f3b528da541fe0b2cca00866e3470258d69e471165ea20 Transfer 2024-02-08 15:44:31 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 5,214.5500 MDR
0xb3372fab46e1e6dae50318fcbd345845f18cffc64f4ec65ef05e41999ff52694 Transfer 2024-02-03 17:52:17 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 4,618.9000 MDR
0x4ee804e22b90d8f70ec3ef3dd9c607c201136bd83c631b621091a87f0b497fe7 Transfer 2024-02-03 13:41:50 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 4,618.9000 MDR
0xa6bb5f8da7a6ab004d7d5931ad9d7e7d4a320742bf4a5c0d47bafb738a459ea5 Transfer 2023-12-11 18:39:11 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 6,557.5500 MDR
0xc830d4ec95fb0a70981e0265767d66f103f9f9207c9339835868df5544b6a1a4 Transfer 2023-11-30 17:03:54 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 5,156.6000 MDR
0x45640fc885073289e225980bead8b05ddd225adc4394c4a721bc9c6e41749256 Transfer 2023-11-07 18:08:19 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0xbeb0abceac8ac9795eadfb5c3dfe63e7e28c3a6a 465.0000 MDR
0x32dbf7df2700fc7397e6d56ecd77ad11a8be89816305e5cb4e35f917bad1e130 Transfer 2023-11-07 14:40:58 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0xbeb0abceac8ac9795eadfb5c3dfe63e7e28c3a6a 2,600.0000 MDR
0x8b18a24d667dfd3976d7bc6c93e7dffc808a11b5dc5981a32061d8ce47f8dcef Transfer 2023-11-06 07:58:19 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 4,465.9500 MDR
0x842d414d34024bbb1af3d3d3dd7928c7148c6039a9f71393c5ecfd2e7d57b506 Transfer 2023-09-30 19:25:43 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 893.9500 MDR
0x5ff5f15e96b7146f2ce1e0bd4b3f5411cc5ec361f92aac4573c5331075b287cc Transfer 2023-09-30 15:21:13 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 893.9500 MDR
0x236a0d8cff1240a9f3685fdc986b84d6cce78827ff623494787826c2ec109e78 Transfer 2023-09-10 14:41:59 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,479.1500 MDR
0xe637e5e7856e73a92ea1b41dd03d02fbc8265702f895ca59bd6b5fe16849afb2 Transfer 2023-09-10 14:17:02 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,479.1500 MDR
0xaac549105797aaf9a691f01b65a2d032a7c812bb8d4bba7d22f4e890d43ad9f3 Transfer 2023-08-10 13:10:30 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 50.0000 MDR
0x0eab9d7cc95461ae817fb6778a8d27b1a00e57b5c979a54bd2d304f4b7df53e3 Transfer 2023-08-09 22:22:36 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0xe78f1935b7659fd59b3af51ac089d2e6fd3be27b 2,150.0000 MDR
0xfd677e28f8230d1203ba1e4932e330b6b134e31e5a29dfb43f6a697d629e06ce Transfer 2023-08-09 22:21:15 0x040f14ffd64eb691467c252bd8dd2f84f02119dc IN 0x909a6d7a12361137b417e485be363f02029d49d8 2,200.0000 MDR
0xabf0c7c02377e20aa50bd13d49aca784637a183ccaa44db811fcd2f26d625449 Transfer 2023-07-24 19:43:47 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,327.1500 MDR
0x510046487049d203e1a510bd9be0ff993ee7ebc64cc25aacca6ca632be7dbb16 Transfer 2023-07-24 16:47:47 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,327.1500 MDR
0x46c45a1e4c7be2fa5d20a91456d7bcbe083ab0c94277380c8144d76936891e07 Transfer 2023-07-10 11:58:05 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 889.4000 MDR
0x3cfc8547f3c0f908dc1f63aaf40c8b5a7ed29649ede02d3a4f417d1609b0e4e9 Transfer 2023-07-10 11:15:23 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 885.4000 MDR
0x5d4ecb8cc7ec0e13c851e3bf06ceab13f617a04f8d4a41e36e6d700bd55f8548 Transfer 2023-07-04 17:10:50 0x040f14ffd64eb691467c252bd8dd2f84f02119dc IN 0x909a6d7a12361137b417e485be363f02029d49d8 4.0000 MDR
0x9e857db9d4fa97304bf973717bba1c4c78845d9354b2884958fc27d838bb70d3 Transfer 2023-07-01 11:37:05 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x040f14ffd64eb691467c252bd8dd2f84f02119dc 374.3000 MDR
0x1a301f5eec5b8086d6b3ddba2eccc3c17deecb896b77c28ef999787595fa2d7f Transfer 2023-07-01 06:44:20 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 374.3000 MDR
0xa9a24e05d43c5b61383b21eca2fbf732a4c820bf1d49dbd2bfbd415b38e90b52 Transfer 2023-06-24 14:53:11 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 663.1000 MDR
0xe5794bb866e1abf99286a14b72582527576db2a4956784928fbf80943ac441a0 Transfer 2023-06-24 14:15:08 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 663.1000 MDR
0x966692cbdad99d0a91ac2bb666f17b1e7e03a20ce422064b58e34ac31c0c5ae5 Transfer 2023-06-13 12:28:47 0x909a6d7a12361137b417e485be363f02029d49d8 OUT 0x9009ae98306d7619254cc95f7589597633248267 1,327.1500 MDR
0xbbd0fdf1351405e598279cb6f3824d051f6c586b96ba49478e0d84d8161932fa Transfer 2023-06-13 12:25:02 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x909a6d7a12361137b417e485be363f02029d49d8 1,327.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.