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

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0xdedad60d11c48463471a12f8f685fc945e6607e5fe38711d3a93aadc8628ea87 Transfer 2024-02-15 16:00:00 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 211.8500 MDR
0xf6c1d6bd369f32a5c7d20f853b4ad2e2cf5d4ce9b496d9b76cf2df5b07e13fd0 Transfer 2024-02-10 07:29:22 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 86.4500 MDR
0xee004b31643134a7567d56e3ba9750cfff9e7711d73d1fe13d302a411562cff2 Transfer 2024-02-08 09:03:01 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 250.8000 MDR
0x2ec0a9e79823988119ee85d48b68ffada96edde65cb729d3187c8d5b9e94e0e4 Transfer 2024-02-05 13:53:44 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 739.1000 MDR
0x3608b570c3148b0528b338a87609b45121dea06606caca90a59a178e3c195ca5 Transfer 2024-01-16 12:04:39 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0xd12151a6d223ecfd95498d5edabd0244d35fb1dcd2fa5cd5f56ad4a0e85de571 Transfer 2024-01-13 22:20:50 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0x97d05d0cfbeefec5f17aa0adafcf067f94e329cf 1,500.0000 MDR
0x713898e81277d07f02bb84d4629ee284c0c8521a8df25caeef31a3fd5ca53cdb Transfer 2024-01-13 20:23:23 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.9500 MDR
0x6c54879a112887d8047baa7262b5b680f3c2dcfe4c79c1ef98887ff1c6218338 Transfer 2024-01-13 16:13:20 0x02a7c2e81e5607ddd0fa4be9eab67738631d41df IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 1,036.0000 MDR
0x11c26351d8b0db6e3a24bc7d68a3780fc69156a13a5294c78558f17bb61d5aff Transfer 2024-01-10 10:54:44 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 443.6500 MDR
0x2f173dfebf333987d06055c53fc7e094b2d021bb46df908324448217d7f14542 Transfer 2024-01-01 10:35:12 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 308.7500 MDR
0x28c897767cabc23af606a0e8fceaa9144d1b103077c6dc484fe0db422f1f20d2 Transfer 2023-12-25 11:43:10 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0x9147364517ee32e58898811e0530fa4d8fafd680 2,404.9500 MDR
0x89df89f2b1ca1c07d2defd5990323e75f759a0f2be8e5c2b2e2d9a00a8a64b68 Transfer 2023-12-25 11:08:40 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 134.9000 MDR
0x09051c0eb6901f15f590eabb07d03c8f8b4cc62724177e167112f8596a24c391 Transfer 2023-12-21 14:56:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 177.6500 MDR
0x7ca357764c2870acbf4e6c70ab5d008d53a982cab669b01e90f1a06695c6c1f2 Transfer 2023-12-17 13:25:23 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 89.3000 MDR
0x379099df1241a0b362a193afd4995ab8ba18945d4493a013f40a3eda3cac2906 Transfer 2023-12-15 15:16:15 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 178.6000 MDR
0x61af412b8064bb530254f71d4ba5c7538e8b847b37bd145c76d9cad1ac9a1c9e Transfer 2023-12-11 11:04:53 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 489.2500 MDR
0x9065ef5a160c1d46450620e979082c67e79b91de36ce4c403f8c1304367b8306 Transfer 2023-11-30 10:37:39 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 131.1000 MDR
0xef4a097006d0902c3f4178df446187ca0035b9a288da4c3e3e1c7f791548aa96 Transfer 2023-11-28 13:12:00 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 177.6500 MDR
0xdabf7a1bfb4d28799452e82c12c5c1dc7bfc68106200096f22a02f3d5344a65b Transfer 2023-11-23 15:22:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 91.2000 MDR
0xad8af514eabfb104f278386f6c873e809c42b9efdd66ed4762b33ac6ccc97ed8 Transfer 2023-11-21 10:51:51 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 131.1000 MDR
0x9f60fb4594fe5f5f42e65e086a99820355765a02748ab77bc27bfbdb0c278695 Transfer 2023-11-18 14:48:54 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 128.2500 MDR
0xa6ed4a666db75ae28d03f17c9eda29a9fa304fd53d78c5553cd452678b3a28bc Transfer 2023-11-16 12:10:36 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 94.0500 MDR
0x40bd5239e5486989afd40d0508542b7308aa7452e35c59b11f93ced5cc002c28 Transfer 2023-11-13 16:46:57 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0xf90bfd1728c7cab3934e10b5d5eb9d19bc529a32 320.0000 MDR
0xee08a1ceb4aced3c209c4a63b9dc4c9bf01a0744246b612fd9950336b479c3a7 Transfer 2023-11-13 16:31:45 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0xf90bfd1728c7cab3934e10b5d5eb9d19bc529a32 75.0000 MDR
0xdda8ef6dea05f618dc2bb58a4ef662d18939262076d94eec727172101278896e Transfer 2023-11-13 13:08:57 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0x4459d7e1d4955ccadf439132941677c8a38062db4d29dc9bb6bf1d84836c44b3 Transfer 2023-11-10 10:57:40 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0x543f1801292c934cb31333090cae752ff871b7c88f781e8ccd17b54eacaaeb0e Transfer 2023-11-07 11:14:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0x4fb93ff7403b8e7cf7ece6557561aed8e698718bacb48769b8782200e21f41e0 Transfer 2023-11-04 10:00:55 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 89.3000 MDR
0x77fa1d8a7c996f080aef4a91bbb6b7c511ed9a12b912174cdd5dd4564f367188 Transfer 2023-11-02 17:03:28 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0xb4b2e3a319bd154fefd092b72969c475092f197531040a7290e88ddcb15e174e Transfer 2023-10-30 09:15:21 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0x95752c3102f800ba85a59eafacddb2371d9da7b24f3f4047b448728373e71e54 Transfer 2023-10-27 07:50:55 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.9500 MDR
0x3ca8aa05c1a08c6d11bb1548688ab9df2b3c56d59ed0e8c77eb031f056f0a4a0 Transfer 2023-10-24 12:23:55 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 88.3500 MDR
0xc105ee318ab69c04a6f6a6aff69c308a623ce678764affdc19e246b4dcc8184d Transfer 2023-10-23 13:32:13 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0xc4132e73f769420fd5b8b3c4ccc643812a3e0c2d 1,466.0000 MDR
0x8f3c7721547f324f7ad60e2fbba28e4f8af56010b0d505fc1928cb4b78dc8c0a Transfer 2023-10-22 08:29:31 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0x2393e0cd9f98fca1c7387e13f0ffc24f26c2ce52203b39f3dbce5aa1a04caae3 Transfer 2023-10-19 09:26:01 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 89.3000 MDR
0xe271cc6f07ff747fbdb94c8c724172ab0ef4c13b3e181164522cc70fe27d39a3 Transfer 2023-10-17 15:05:28 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 44.6500 MDR
0x1db3a21537cc56210bdefb285822bdfc7798dbdffb848101a0bed300cbcc8099 Transfer 2023-10-16 13:30:10 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 88.3500 MDR
0xbfd12123c7bf34a44ebb532845814b12f195366b5ec3b22d6e07ba25f93e4be3 Transfer 2023-10-14 10:14:31 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 177.6500 MDR
0xb1401a3a4101aff17c357b217c8fe3f22c2627c289398c0c3258a3dd40f23306 Transfer 2023-10-10 17:49:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 177.6500 MDR
0x5d21ab761d18e1611235c8c2ea854e6f4eb2a1758109f21c839f22ed25e2c4ec Transfer 2023-10-06 12:37:10 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 222.3000 MDR
0x4afc1f42da59c22b7f3d59d209ceae6701ea072c41ea6efe96b0a1b9d45805c5 Transfer 2023-10-01 10:51:22 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0x2abc225d655926a44603efe2aa65bc65b41a0141640d2505c685f0f2761508b9 Transfer 2023-09-28 19:17:34 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 133.0000 MDR
0x449972bc76d055ef5c0171f1b1be79a8b5ab34f59a8ca4db58613b644127d662 Transfer 2023-09-25 10:33:28 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 89.3000 MDR
0xa47e5821d412caf065459f71170bb0ff8c85141190d25c9490736bc9a6c1891e Transfer 2023-09-23 15:03:55 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 177.6500 MDR
0xa05df2ffcddb37e0d17224eef2972c5afff94f63bae000c09e64adce00c149cd Transfer 2023-09-19 22:43:43 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0xc4132e73f769420fd5b8b3c4ccc643812a3e0c2d 2,500.0000 MDR
0x4268ffacb41c79f37c55c5c09a60d88cf63c54a635510c49060b0d6795eda8e8 Transfer 2023-09-19 21:26:04 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0xc4132e73f769420fd5b8b3c4ccc643812a3e0c2d 284.0000 MDR
0x34976d616ba84c589d38d32c37f15049778a5ae74aca46c279538a02e7ffcc04 Transfer 2023-09-19 13:24:25 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 88.3500 MDR
0x2e9dbfe5af2f33e1d020398996ed056596badb22b60c85702b95eb1038daa365 Transfer 2023-09-17 11:28:51 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 177.6500 MDR
0xcb956f5e5da906e91650ada4825dea8fd3b60a758848affd712caba79b342566 Transfer 2023-09-17 08:12:27 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 177.6500 MDR
0xfa1ec28903d5ec3fc47dcf1fa7b82f0aa8c9f00c64d4a37990c2f870d4513767 Transfer 2023-09-14 15:33:15 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 220.4000 MDR
0xdba3da01f5f9e7bb1d097ec52ecb3ec40354e1e1e1febca754b2dc022ad20ac8 Transfer 2023-09-08 16:03:20 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 132.0500 MDR
0xfd6e03a7002de348b56810467524ee464af86a12b42a5ee66f54b99b4994853c Transfer 2023-09-05 16:27:26 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 220.4000 MDR
0xb7a093403d57accfac1a51c1ce75c6eb66c3ecdb294a4136e4ab192e7052f7ba Transfer 2023-09-02 12:20:05 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 130.1500 MDR
0xb22251487b2ae08eeb64fc57b101cea525a1d3676badb9a676912482e0d6e15f Transfer 2023-08-29 11:21:47 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 1,309.1000 MDR
0xdaa22645ec72a4f517253f6266090190bba1daa5f5d8802bf347b69800fd8b72 Transfer 2023-08-15 12:51:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 18.0500 MDR
0xa3dfe8d04667c2427a49868833b403158171073479be9ddac8efa0c6b4757880 Transfer 2023-08-02 16:36:22 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 162.4500 MDR
0x8c8f61f5405a1a2bce2f83e4a4303eb6340c7a9d1a551d050043096af4255955 Transfer 2023-07-26 17:01:53 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 148.2000 MDR
0xbd3ca57f6ca56bbee3294a12ce9c0c4e16da6b00f1ab9ca479650e16965abb82 Transfer 2023-07-23 19:08:47 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0xafcc1b28f5ed7782f03c5c56a28ca543ce4e90da 570.0000 MDR
0x7d8cd63ce62c2a2fdc79e791a5e15f42d364befe6663811516584c3f7ec6862b Transfer 2023-07-22 18:47:32 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 63.6500 MDR
0xc295ff3668825bab59aef9d37194dc07562419f277778630e13402afeff1e9aa Transfer 2023-07-20 11:23:41 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 506.3500 MDR
0x1e15c53f8c3e4dfa2684c273700625b87b497bf3ca6ae0dadb6efcff8b25d764 Transfer 2023-07-06 18:21:02 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0x73938fd2a936c1ea3f8acec73c2c8ca044bab2af 63.6500 MDR
0x9a771864062a826f4ca39327590c1137c5f42a3befdf92baadda13808ac93522 Transfer 2023-07-04 23:06:32 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 20.9000 MDR
0x3e20db5651348b8a4f22da7d493d144fd1d83b686ef6dfd3ec29c4a5009ccb2f Transfer 2023-07-03 23:20:05 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 42.7500 MDR
0x7b32528a924f03026bc9905d89a1987b559b9ed3e8d57e66d716620cb69b4071 Transfer 2023-07-03 19:29:47 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0x73938fd2a936c1ea3f8acec73c2c8ca044bab2af 136.8000 MDR
0xf9d0224040d18ff39e86a9d5b05650cba213038823a0447e026139a4c845881f Transfer 2023-07-01 20:57:26 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 105.4500 MDR
0x333664465ca0b6687ea1b9e989dacae254d1987e473e13cfc83b21d3f9d68637 Transfer 2023-06-26 22:11:08 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 31.3500 MDR
0x3e9db035a1f50646188b6c9bc53a7c78429b7caf81b8394c783b4c7de5e714dd Transfer 2023-06-24 17:51:47 0xf744c26a43c980a16f968dbe8672e7e497c8827b OUT 0xb5ff7364bb1c154ab72b6146d0483e245eb5f455 459.8000 MDR
0xa8e3a74a761f861d9e57a849b0cea587f87754f86e658b7f680cfe0960348b41 Transfer 2023-06-24 15:00:53 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 63.6500 MDR
0x0b83c40ad13e8c0ae65f6702a1d7153331723a7bd0e7f05150c619db809eadca Transfer 2023-06-20 17:17:05 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 126.3500 MDR
0x34fe22fe17d81bdf102fa4fdf8ae4416a970abce60eab9a1e7daf546625a71c5 Transfer 2023-06-13 12:38:56 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 47.5000 MDR
0x178cfb4a6e8fe67b3df404d2e095577dafa13773277fc1c29984fcb6ba197afc Transfer 2023-06-13 12:01:02 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xf744c26a43c980a16f968dbe8672e7e497c8827b 222.3000 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.