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

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0xe3c88fe0738235e9f852ed3dab6d9aa4102ea1c87d6522fd7a3a2b6ec5a48552 Transfer 2024-04-05 14:49:34 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 47.5000 MDR
0x0d3f4a857af7dbbf37e1225b485c107c859215c709787fc9a83a64e922f1e10d Transfer 2024-04-05 14:47:34 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 47.5000 MDR
0xcae301d8851cbcbe8d138038328efc445bc3b4f7cee1ae900cf3cce798ee75c3 Transfer 2024-04-03 17:44:32 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 725.8000 MDR
0x6e722b4c90db1a7c0442b18ee1ac16bb108201b90ec61719004ad4fe8e2468de Transfer 2024-04-03 17:43:32 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 725.8000 MDR
0x8ad24c2aaffee27fe1b857d21a54aff2eeb3362ca295a748b81a2974a649f404 Transfer 2024-04-03 10:44:38 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 275.5000 MDR
0x878e0999cff8ae62572296d4573c57dce8b6cc7706738c264aab875df3cdd243 Transfer 2024-04-02 21:59:31 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 47.5000 MDR
0x6862c72b8534d8a904523adc2df57786657c5e34e00c56960f66a1a64d49d73c Transfer 2024-04-02 18:04:40 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 55.1000 MDR
0x7bbc4aa64766beeaed41a818b06c87a3eb7f427d4e597e1511aa95f02f34dbd6 Transfer 2024-04-02 17:59:16 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 161.5000 MDR
0x4127f64cf9b40470a6530381b124b2e4b4560ad45372322bc9f23f26309ce444 Transfer 2024-04-02 17:53:22 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 233.7000 MDR
0xa33a40aa67e4f5277ac70c55e14ec8d8098ff6859626d254655d81278f7426a3 Transfer 2024-04-02 17:46:40 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 332.5000 MDR
0x62e4641992b92360af5e8afe64057ce5d8718c90640101f7d7f1f15554512c73 Transfer 2024-03-27 17:35:38 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 659.0000 MDR
0xd6dc94d68d217f2a2d6a7b31d9631e1d4f813a681a7414b8b0e33f40253c0fc7 Transfer 2024-03-08 17:52:44 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 235.6000 MDR
0x17dd7f62842ad3f272832566326b459a3c74e585b362fec3e519ae3404d00801 Transfer 2024-03-08 17:52:29 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 343.9000 MDR
0xf60b2eeb0c0474d5ba7b59aecc23acd8f7b3fba4d55a74552c6ee26a7e439d39 Transfer 2024-03-01 16:31:16 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 286.9000 MDR
0x155a69735e893797422776cb801c5eefe57e7b63e123564c5df30d5f9ff05626 Transfer 2024-02-01 10:23:59 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 331.5500 MDR
0xe3ef7b99546f988482cbdf61209658bc9a5b076655277a8d92e91cc89e10da9d Transfer 2024-02-01 10:23:26 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 289.7500 MDR
0x1ea79ca0892814bd1cd16518a155312c46104be6128b26256888f0adc52b2e34 Transfer 2024-02-01 10:23:08 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 217.5500 MDR
0x1bbecc30e510bafa7cf15f94888963108612a5aa212f465c2d916abaf5009600 Transfer 2024-02-01 10:22:47 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 94.0500 MDR
0xd27f8cf568a955ae7bd20f9b5f66897f98410816f8b5f2730207bbed82bb0a93 Transfer 2024-02-01 10:22:32 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 70.3000 MDR
0x78027a2acdd05b86912f27db6dc1072829faaf315e86be6f8d9fae87829a5b8c Transfer 2024-02-01 10:21:14 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 58.9000 MDR
0xbb8e38ef514093116eea19b36ca1649dd8a28915e1a259ce148a8c2fd7203f36 Transfer 2024-02-01 10:20:59 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 49.4000 MDR
0x832d3313d099fe69b95d3496ae94b42b0b94cacfb87f8e4535d5b63f5bda7228 Transfer 2024-02-01 10:20:44 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 49.4000 MDR
0xeec7ca8186297edcc882cd821de54dc2000b0fd83ce72be49801ce57c4a8fb0b Transfer 2024-01-01 10:43:03 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 105.4500 MDR
0x431559261c0965fa0944767e9eb855ff3aa4ba2d5f5b770d66e80d5dee384923 Transfer 2024-01-01 10:42:42 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 231.8000 MDR
0xce51238b204830d9d96087a8227062427bf6c3377a100377b36385c45a6632e8 Transfer 2024-01-01 10:41:36 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 298.3000 MDR
0x01463e2716663ee5ab396133029c13076f612f1d15e56e0fae327492483566a4 Transfer 2024-01-01 10:37:54 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 216.6000 MDR
0xdfb5a42bf7ae8d98a29649fbb134ef98820dc5416dd1ad89f0610cd00b819953 Transfer 2023-12-31 16:03:12 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c OUT 0x728c70ffe7a3decbc7e3c345a6449462c1e80102 722.0000 MDR
0x5f6ca084bb23df728b1c6d0f1ed1ea0c88f3d675207f955188ce084ac4309b0a Transfer 2023-12-25 18:00:34 0xcd3828ab70b2bcccc38efa5c6d86bd65e46ec14d IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 250.0000 MDR
0x33c366bbe905fc9a8e2a7003d69b8b462e210cb802b165e1c3c23cdd5bb49a3f Transfer 2023-11-30 07:20:00 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 96.9000 MDR
0xacc3d3a78c4a9391dfeafa6f39d4b53b505e1bd1b6e3cae859fd6c534322c221 Transfer 2023-11-30 07:19:48 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 96.9000 MDR
0x4df62bf0229550a18279fbe44ccbe9f3937a6a54c281eb0fb93700a0955f72b9 Transfer 2023-11-29 17:55:15 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 65.5500 MDR
0x0b45ca3decaa9fd74603cae17502e8edf7a1f065da4c89411562d20204b9c047 Transfer 2023-11-29 17:35:36 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 74.1000 MDR
0xbffbc7b5a58f1d645295fe071873005c1414bbe12a14fb0184c7845b0d8b2cd0 Transfer 2023-11-29 17:23:24 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 131.1000 MDR
0x92c09f8f11c485eb7c31536b393785f3dcd2f35888d7ff33fe6b74f7d0594559 Transfer 2023-11-18 17:38:51 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 266.0000 MDR
0xcc5c4d835b59ef4f535846b2e1b131d316d5b84f7f7804468bf94cd422acd46b Transfer 2023-11-17 10:37:51 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 57.0000 MDR
0xbd4cf7eac1b4b6f554aaac528fd19e6fd9985b4fc2de54ed11c3a653ded04fc6 Transfer 2023-11-17 10:37:33 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 87.4000 MDR
0xf0889e246a52e8398f89595f5e41b09ceeb10a040da1e6220cba1e278483ec0a Transfer 2023-11-16 10:39:21 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 95.9500 MDR
0xb971a21d0891b870ecfd908e28276f9dca039a3234f4efa4d98ed893f6a3d052 Transfer 2023-11-15 16:56:21 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 121.6000 MDR
0x0a70d4f3ee729f576abff7c16be6dc1a093098d7d727bc1a3c5c84c1c382a1af Transfer 2023-11-06 17:27:19 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c OUT 0x728c70ffe7a3decbc7e3c345a6449462c1e80102 193.0000 MDR
0xcded99a529cac18a41dbd3bc2a63d441a8f20f479b9fdcc00e9f48a9023a476f Transfer 2023-11-05 09:09:34 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 95.0000 MDR
0xe012aebf35f4dbd19dd65b26edecf99babde5aae9e746a56cfcb84ca9aa41fa2 Transfer 2023-11-03 17:23:19 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 158.6500 MDR
0x13339db8e14378118777732a173c8566067b328bcc35306c241c47c4c0877b35 Transfer 2023-10-20 13:04:10 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c OUT 0x45a3597cb0a83d7d55d6f7edd5d787e16fc8f547 345.0000 MDR
0x8475cc79c6303cf35900184989d5da363172a60f8ec509b03490c18efca480d2 Transfer 2023-10-20 11:59:46 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 83.6000 MDR
0x5e11c0019a5f29252ed7ef8809c72606780315b60a2ec5b9c637f55d639c9e76 Transfer 2023-10-18 11:48:13 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 65.5500 MDR
0x0596ec159eb82d35fdffcc38bce269b76d2c5f29af9ff8d5a506500e55b13d86 Transfer 2023-10-17 11:39:31 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 70.3000 MDR
0x5284337a45975d2fb150e054f892c2ac09e9ef0c87b996591b0a99ea05a25506 Transfer 2023-10-17 10:10:34 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 120.6500 MDR
0x450948c0855a51ee90807391ae2d1b7809cc61c013519dfac3b5cfa2c78eee93 Transfer 2023-10-16 17:25:52 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c OUT 0x45a3597cb0a83d7d55d6f7edd5d787e16fc8f547 963.0000 MDR
0x725c362d41ea7a2383578c9d70b74d82379dfdc5433fa4bbb7c9c41d7365c477 Transfer 2023-10-06 19:17:07 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c OUT 0x45a3597cb0a83d7d55d6f7edd5d787e16fc8f547 313.0000 MDR
0x184f5cddf7fdae20d307ea17349084a40a4983fd99a5e052125a81d33848572a Transfer 2023-10-06 11:24:16 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 346.7500 MDR
0xd6a9b7cb361ef3dd6f4e2b4d53e8bf9ce630389db335917a937adf38c0d17368 Transfer 2023-10-05 11:10:10 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 618.4500 MDR
0xb31f0a071a605a17c59a43bdfd11aabf1ad108cfbbdb818b8d699f54ece597e5 Transfer 2023-10-05 11:09:46 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 293.5500 MDR
0xa16afecba31f3b6b50562e2080d6bc70ab63d7c7099ace0a3b59ec02b7d6f8ef Transfer 2023-09-26 13:50:31 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c OUT 0x728c70ffe7a3decbc7e3c345a6449462c1e80102 625.0000 MDR
0x227017b59d63ca53b52e94be4066e3ddbd11c86f20395fb3d38a587cc832d740 Transfer 2023-09-26 10:06:07 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 59.3750 MDR
0x32686e74e6f3db45ecf8901b2edf01c16970b67333af458295c04376ccd962fc Transfer 2023-08-21 17:31:35 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 12.3500 MDR
0x5ac3a6116f59cb23f798fb7d85039461bd9d0867009d74f1f33c66a55a7bfb90 Transfer 2023-08-08 15:01:39 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 12.5400 MDR
0x37f1dc67728ab64dac3c9b36fff6209f47cbf63d0b76c62f3c291ffc258cb9bc Transfer 2023-08-07 17:56:27 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 12.5400 MDR
0x8c6e7a6b6119a326697f693b5d70703eb7b46b8ae1fd56f1f7a8b6be7d7f54f9 Transfer 2023-08-07 17:55:36 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 12.5400 MDR
0xe2b4675266dd6da21cfd97c2df35b05108863e7f53b89389afda9bd84044f5f3 Transfer 2023-08-07 17:45:42 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 12.5400 MDR
0x12a77208552abaa00c55332118e0a405eccec9e0be87d4a73120004459a8a10d Transfer 2023-07-28 16:49:31 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 116.8500 MDR
0x4703205c462bef98edeb668804cc8e53e843606671aea2df64320bfcff640c78 Transfer 2023-07-27 15:41:18 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 134.9000 MDR
0x554c9f6db1ba9a6f5c2d95a6f462a1885c1bdab75e3b375f101f948d1a2e215a Transfer 2023-07-27 15:40:48 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 53.2000 MDR
0xe9618d00785d64a3b7d8112460415e91c6033b72d0a2e7091e240f4ad4c3e8e7 Transfer 2023-07-10 14:03:08 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 22.8000 MDR
0xd8f8340885b540df9a240663f1ed710f284ee545515491536d0efd7aa43f4a74 Transfer 2023-07-08 15:40:11 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0xea09ff76acd0723f65e97fb79c5a7eda002fa68c 198.5500 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.