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

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0x0e7dd9b7fa0c7587432f76076527bba52d6b528d986a7b5bcb96ea42d24de1d6 Transfer 2024-03-30 15:36:49 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 23.7500 MDR
0x6e6374ca07d2d3c8e71328483972291e33e3108d1d24762d614cacc6f9b39415 Transfer 2024-03-28 15:01:10 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 43.7000 MDR
0xc1c6e4d535552d90d2505def3ce3e486a965e4c2a6cebcc2b51afba6a0de0cd9 Transfer 2024-03-26 09:02:59 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 67.4500 MDR
0xdf96528228d3c0540c99a6f13109e2dffe8b955bdfba1bec8643640a66d0ea81 Transfer 2024-03-23 23:18:04 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 43.7000 MDR
0xd33dfd0bda1a6f98edbac29f1ec6db852cbc1c82ccf0c148556c5ee6de7829f4 Transfer 2024-03-21 21:12:50 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 22.8000 MDR
0x05d8560c4bd4f4ce042f9a99824bc4fd5f2e25411afa575a95f7817dc65b78e1 Transfer 2024-03-20 18:56:39 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 21.8500 MDR
0x495561b2ae06c23d7cc7b14706f8eaa852885bc0f284d9b0144eaec44975f6df Transfer 2024-03-19 09:12:19 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 66.5000 MDR
0xc620a17a6480e7b41a2034623cb2b00a2acfbe573f191c95939891b6ddaa11b9 Transfer 2024-03-16 11:46:01 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 22.8000 MDR
0x613504973a93504b924a82ffa4659d2b85ec75ed2709708ed804f4f2ccd6518f Transfer 2024-03-15 11:16:53 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 44.6500 MDR
0xb4e573f9fea9050915a6f1c6c4a2093261a8e9820796809215f950e6631cf9d4 Transfer 2024-03-13 14:21:09 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 43.7000 MDR
0x3f43483ac346abee150a22414ca677737dbbcf95cee34ec49ea74546c1655f8e Transfer 2024-03-11 19:05:59 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 22.8000 MDR
0x2f22e4ba0137942863ff58b0227fb0dfd479bb914b5f51693ff3c483a78bf11f Transfer 2024-03-11 17:28:02 0xe02c78757c98cb1e0bc7ead7dffc34de385408da OUT 0x65ab6311a4d699ffbc1d8a370043c80c401cffb7 266.0000 MDR
0xcf082615d264625f788652aa30af11efd4866f882dd9af0af0943cb3f48d529e Transfer 2024-03-10 19:22:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 44.6500 MDR
0x93440cce98f953e7b29d70074a41b596acff010c348e860a41f73501c9bfc747 Transfer 2024-03-08 09:13:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 43.7000 MDR
0x12947347c4f9b28a933257ddf3daa7a3c9c8b966dd3effadec978bb19bd503c7 Transfer 2024-03-06 08:10:32 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 44.6500 MDR
0x6a8f3c3c7688a5ced7623f2a0f5ac0f427c789cb75dcfc3a57df8d27b07c760f Transfer 2024-03-04 12:57:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 67.4500 MDR
0xca03de1dbbb8ddf62c5f7bb6f41d2cb99dd472f124c71b787b10f30c3119b5ea Transfer 2024-03-01 20:33:25 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 21.8500 MDR
0x238669c1b190de3e03c31a32c516904b394b135a0d6607651a935d447af0b0c9 Transfer 2024-02-29 19:31:13 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 21.8500 MDR
0x4f2efac7f185f023436519773392a6190fd8464f293bd6b44d7c60b989b2469c Transfer 2024-02-28 17:51:42 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 67.4500 MDR
0xb63299f16f06fead0da54d2fd938a4313609290d80033152efcfc024a5e63c58 Transfer 2024-02-25 15:03:26 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 43.7000 MDR
0x113aaa6ac8c56d771974b03264c63d801b23575ae36f0713707a7b28209fd408 Transfer 2024-02-23 17:53:08 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 44.6500 MDR
0xe9951fbd55f1275a062fb5bada67d7c34ee478cd55933a52f1fe4b86b727142a Transfer 2024-02-23 12:42:59 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 45.6000 MDR
0x3e2aca9af618e24f3ef235ab4274746fa0230499db1a924433a2cf05aa60d691 Transfer 2024-02-19 19:56:57 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 43.7000 MDR
0xce646f0f73f99e249b4db7fd177bc98d6677b701850f53ddbff268274b1534f1 Transfer 2024-02-17 17:35:20 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 21.8500 MDR
0x07f76e10c82c3d0b9f7854a863b90907b81a5f4dbcc09696262492b3c611d74f Transfer 2024-02-16 18:05:40 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 49.4000 MDR
0x6f8c56142924f0500a81706eeca72585e8dd4e8ba00b036dd791c2bb53eae16e Transfer 2024-02-14 15:26:03 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 23.7500 MDR
0x9e2e64e1397fd9833fa49b86e794b57ea111d4297698f0609841c055b4edc5ec Transfer 2024-02-13 15:58:38 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 24.7000 MDR
0x4e31c2a7dc93d354567430015e43ab5dceda53cd11d700bb17b82962d0038ff1 Transfer 2024-02-12 11:23:35 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 24.7000 MDR
0xa754cec1285ba847bc5a3c06fd2ba21066c514e2828330be54396dd537215eaf Transfer 2024-02-11 11:00:11 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 25.6500 MDR
0xe1aeda99c787ef78297ea5443ed2a841153f76c1b462eabbd1338297150d5dd7 Transfer 2024-02-10 08:25:34 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 22.8000 MDR
0x92314454b5e94721a641200f75692e7be59370b2fee574bcc8253e6dbe43bc07 Transfer 2024-02-09 09:19:38 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 23.7500 MDR
0x02877681d7eb57b6ac9e2c3443e8d0a580c93a4a5fd94b35096b031e9e11ff80 Transfer 2024-02-08 10:30:07 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 26.6000 MDR
0x6dba653ad27e5de85d31ac32f0ab9aaf9b5550397f9e77af2277f8dba346bc13 Transfer 2024-02-07 16:52:22 0xe02c78757c98cb1e0bc7ead7dffc34de385408da OUT 0xf2eff72a9b029038c82c9d052dd6fbf2c22a1337 337.2500 MDR
0x7136ace8b98f5531bdf5eec1f23c2f5d123447964c9f533530f0f2001dd9af96 Transfer 2024-02-07 09:03:15 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 26.6000 MDR
0x641dcc1f7f0f50b305fd3a953d7732e6d53b18829d6e4557bb816996f3099921 Transfer 2024-02-06 09:48:00 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 25.6500 MDR
0x2732fc6f717c79aa60a02748663ff7587b74006701037049e73a59999c37849c Transfer 2024-02-05 08:42:39 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 50.3500 MDR
0xb7ec347d4f00d75a961fb8cd5387e018dddb794f234bbd7aeb4ad008cdda0114 Transfer 2024-02-03 12:58:50 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 27.5500 MDR
0x9125a9a1130518ae8b36d79c80eea3d529e7dbde53cd3855aa26054435f3e6e3 Transfer 2024-02-02 08:13:39 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 50.3500 MDR
0xed8b6b7099f12ef1c6ce2e68908a43815a871aeb388a97161e0d1c4b2aecc0e7 Transfer 2024-01-31 13:30:17 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 51.3000 MDR
0x46c808da4a220ca39c95ba00d0ffccfc95c6ddbfe2983f87433009314d0014a1 Transfer 2024-01-29 16:18:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 78.8500 MDR
0xbb809fc0bc97e5b407553df76590f3290a9d29f2033dc0b52c6753045b789d51 Transfer 2024-01-26 23:46:11 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 26.6000 MDR
0xfbc1f339c8f62f4b8296768b8ee25fcebc93a2d8b74d067ad7611430435635f5 Transfer 2024-01-25 18:08:17 0xe02c78757c98cb1e0bc7ead7dffc34de385408da OUT 0xf2eff72a9b029038c82c9d052dd6fbf2c22a1337 4,611.9500 MDR
0xd98e974351510fbba47cbd7a5f378b500ba7f8b2cbf60435f0bf4cecff1c431a Transfer 2024-01-25 16:32:38 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 26.6000 MDR
0xfa31287a56afc2c9bbf69965619ae2c2aacf63d26aaae5cde2ec748fb4c23f7d Transfer 2024-01-24 16:08:21 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 26.6000 MDR
0x67e74ab5f34485789f620c5c819e34ccf6de10578ec0d6fcf5e7e5a7ed24c6b2 Transfer 2024-01-23 13:29:56 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 79.8000 MDR
0x451e97f92ed705addca3000b83120094cb081e72f93a71629432ea656a914c3a Transfer 2024-01-20 15:41:25 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 106.4000 MDR
0x3eb3f4bdc831f38a5e1e58462d5374569d281d9c0d6b2f20fe73d773cbcc867a Transfer 2024-01-16 12:16:57 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 53.2000 MDR
0x4d9e3667d71f8114f00ed5722b848e9b93a0efa40ccf4b3c02033767a61da2ee Transfer 2024-01-14 11:00:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 133.0000 MDR
0xe0622789f010ae8de211abfee44ef5b72311cfcbc57a6a7be9dc34db6c1d8dfd Transfer 2024-01-09 13:17:21 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 186.2000 MDR
0x97a0177dce3d0551a4a82c65153a446c3b7d611407c75fae8167ea469460e2fc Transfer 2024-01-03 11:03:30 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 927.2000 MDR
0x51ec660d48ecb720cb3da341b49d59c945b979093538c20b13ff340bbe3cd975 Transfer 2023-12-17 07:44:47 0xe02c78757c98cb1e0bc7ead7dffc34de385408da OUT 0x73c084388f5423c991030c3fa22249d3e02b1960 0.0000 MDR
0x9e816f1793a26a9ebb1342f5ed0b19bc6f9aa1bfde3a1eb56f3eabd00d5819aa Transfer 2023-11-29 11:12:06 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 723.9000 MDR
0x48a2dbe1dbc799854f79d216a55caeed55732e565f0a92f80f51b1f8055bb2f9 Transfer 2023-11-01 17:42:49 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 849.3000 MDR
0x06f453a3c23bfcaef57820201278da3ad13123b2be8c7cff6e53043040eadeca Transfer 2023-10-06 13:36:46 0xe02c78757c98cb1e0bc7ead7dffc34de385408da OUT 0x8ec7e656aa8a54fe6ee70823c2c54006fa8cc71c 87.0000 MDR
0x90aeaa61f8b37d7c4b72c338908e9430b5e133455b98f73c7f1205c7da0cfbb5 Transfer 2023-09-30 15:22:55 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 631.7500 MDR
0x55195b10a08903fee9a9d67a70f7067c56662ebf543b449c51530881403f9d3a Transfer 2023-09-06 07:26:53 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 78.8500 MDR
0x34a31968614da21994f59a7f9ed67f5469c102e9023102f9d0d497244957f629 Transfer 2023-09-03 09:00:23 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 131.1000 MDR
0x15ccb79c5c6432a780e55dbcf9e97b1a00c6ff0e4b811b9396267bc6f58278d4 Transfer 2023-08-29 14:08:14 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 744.8000 MDR
0x3af05cd0b0f0bbeed8fd834bef268f194a16fc31254bb976f889e3751850eecd Transfer 2023-08-12 18:23:24 0xe02c78757c98cb1e0bc7ead7dffc34de385408da OUT 0xeafe420565a71062ac9411896deca1e3ff20fcbb 1,268.0000 MDR
0x7375d6205a74f3437685526d187ad98161c66ad0530c0f1a6d410d5efdeff5f6 Transfer 2023-08-12 11:25:09 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 177.6500 MDR
0x6eda5ef8f388b593a2f59d88e636d601089bd5a322efd926220c5d5b129eb479 Transfer 2023-08-01 11:59:37 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 76.0000 MDR
0xba9a59c23b7b58ae4ea0476fa914d44e5a979c882db0101c93bd0867a2e9023e Transfer 2023-07-27 12:57:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 51.3000 MDR
0xb801eacda1cf87a08b2691281c872bd2bda2e69b3c627a968a6671141888d2c3 Transfer 2023-07-23 13:13:44 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 342.0000 MDR
0x50128328519ab40e2ef714b7f82d7a5d99008617cc0ffa2c681a3f87a22293d9 Transfer 2023-07-01 19:54:29 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 74.1000 MDR
0x48e90fcfb304fcc4c62f54105553b92e6f2b7bffa71217fce00f9a7001761d89 Transfer 2023-06-24 19:11:23 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 25.6500 MDR
0x301af15ed09aa23fcd445a9f7830b05153eda83781543ab8cf9d68067d35830a Transfer 2023-06-21 17:54:29 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 17.1000 MDR
0x302d7a38708753a97d09c5129c1c68bca3bec4ced771e9bfa405c08527fc33ec Transfer 2023-06-19 13:24:08 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 51.3000 MDR
0x3ff027de3c0e3f986f589848a2806a37439327d91313e381ac164b29f4241cac Transfer 2023-06-13 16:12:20 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 42.7500 MDR
0x6c8a118d75925d782f1ad6cd833286533b6c719bb63e9b183942dfddf0bff183 Transfer 2023-06-13 11:47:08 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 400.9000 MDR
0xca8412e710a3c5bbfd7271a2f585cbec7eb2677cd161f722bbe7e738e3bb243d Transfer 2023-06-03 15:05:43 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xe02c78757c98cb1e0bc7ead7dffc34de385408da 9.5000 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.