Contract Address 0xea8DfeBBd4DB9E93513b7d797adF14b7b3e15edb

 

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:
0xea8DfeBBd4DB9E93513b7d797adF14b7b3e15edb

Creator:
0x44B87A2a404DA6393e16b2e69aC86A40d4EF474c

Decimal:
8

Issuing Time :
2023-05-04 11:23

Official Website:
#

Social Profiles:
Balance
125110.65 MDR

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0xa88504e534e837e45e3bf89aef74e5fd312d1b04ed1abed8c3df25f8b20563db Transfer 2024-12-19 12:10:05 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 2,914.6000 MDR
0x00fe06f62d92b2a2364fdf36f9e591f7bb4d0d2c5de65b7f4fec391b229522cb Transfer 2024-12-19 12:09:29 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 272.6500 MDR
0x2dce53dfc04669513e06040af5207c621258384b39638e77bfade892584bf5c4 Transfer 2024-12-19 12:07:41 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 272.6500 MDR
0x850e30c6f6e6e8e146be94b906324374034393594765bae97bc7f3ce7a0db668 Transfer 2024-12-18 17:11:32 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 458.8500 MDR
0x86691d2bbdca7e0483a7f8367174dbc8da43aa3ab31c0614cf19ea1e7999800b Transfer 2024-12-18 17:10:59 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,660.6000 MDR
0xfacdfac505cae5019c8ccc5f405ab3b207ffd164dda7840451a3d718def3c75b Transfer 2024-12-18 17:10:26 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 30.4000 MDR
0x35153caa0e7a880e99fac4a09049f869bdf7ca0029f3436df41fc3edfbc5db04 Transfer 2024-12-18 17:09:50 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 133.9500 MDR
0x72e0c1c690379b304dd84786eb75623b627fdcddbddd7b86f9f31733e56d59e4 Transfer 2024-12-18 17:09:20 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 695.4000 MDR
0xda906f14eebd08a654dffe8e1ae3488a27a238ff756de9bbfef206babf2a9572 Transfer 2024-12-18 17:08:44 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 984.2000 MDR
0x20c68dc3d0a857830220ca9ce0feed8e3b916c7e6329ff30d171a527ae801a3e Transfer 2024-12-18 17:08:05 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 718.2000 MDR
0x0a7bbbef28f1716591fefd4493923900a4271fd9631fd28ed6b490090952dfdf Transfer 2024-12-16 18:43:41 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 601.3500 MDR
0x4576740dd753488236ae901a75d9753fe36a7f513a7bb5ca7d2b7ac022ba08eb Transfer 2024-12-16 18:10:02 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,533.3000 MDR
0xdcb66e44a14df10622add78a8d35e91aa14d226bf059311a82f43f0ee39bb2b1 Transfer 2024-11-29 12:39:11 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 10,429.1000 MDR
0x1f029cb8fdc519e5969d8f22a18942a0055bc774e2d954dd74cd63d710313dcc Transfer 2024-11-20 12:54:59 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 10,429.1000 MDR
0x5987e74462daee0e82b9a352a30d3fd4a69252df96e1d194597bab4dcbcd1ae5 Transfer 2024-11-20 12:48:23 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 3,718.3000 MDR
0x022c8af808cf61b95e7b9e320a44a973764922f234f33b42f24dfce6a0bd9453 Transfer 2024-11-20 12:47:53 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 2,247.7000 MDR
0x45d55367b4530d5b71a95b7c90c536561882c57f287b33fb8f1f32ba49a1ea0d Transfer 2024-11-20 12:47:20 0x395d3b45e250c6b7709c32feeb5251350b674211 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,541.8500 MDR
0xecf3958af747baa5f04bb02f3c7bcf5a7b8ce78e7092586dfb96f6a6fcc16bf4 Transfer 2024-11-15 13:51:29 0xf61d440b5b07a9ff84954f8b80dd7dc0b4f4f4ef IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,358.5000 MDR
0x2d16b67db46361e7befcd95a9d6c8ddb551481b287812b2a52cf2440de6f257a Transfer 2024-11-15 09:20:20 0x67fc097fb2c343d530936caab03496c0a70183e6 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,613.1000 MDR
0x286c76754e34d4d50600c68adebd4b52f6d06ac2c88ed2a7bf423380b68ca97b Transfer 2024-09-30 11:24:42 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 2,730.3000 MDR
0xabfdd0d52c7befad753cab7572352862cef4e041e4b36e95abe4fd2b78345e0e Transfer 2024-09-27 13:21:00 0x0becfac124aeea76ee00362ad63a774633b17a18 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 29,995.0000 MDR
0xa180a777bb62ee92575f3a3c7192298274f1730efcfc7053bdd440c1c773f1ee Transfer 2024-09-27 11:35:33 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,562.7500 MDR
0x84a4d934b78fe8a01a8aeef7861372c34125c4fa97b2f6c882a51c8a320d1dcd Transfer 2024-09-25 15:11:18 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 OUT 0x9d34373efa95914ee8317bd49db63f7cc781361c 6,000.0000 MDR
0x6db5e1c7814fc1a4bbd3c47fd71a0fc0f6f5a7b81ba941ee9e7cd2ef58fae2f1 Transfer 2024-09-20 13:00:40 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 241.3000 MDR
0x84be03cdb20b77818e3613d042ffd32ad77f9fcc894204d0a3583babc49eec0c Transfer 2024-09-12 17:14:25 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 890.1500 MDR
0xc2d81de79c765e841e1f34ea1022267c2ebdb271f75caa373b31ef4ef142717b Transfer 2024-09-12 17:12:40 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 141.5500 MDR
0x434375d4467cb2cd066bb3e6bf3ebedefd758d7d9d997c52e4bb12318da42f39 Transfer 2024-09-12 17:12:10 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 404.7000 MDR
0x35cd27fabf76c4238f882d635cb7ffa97f2bbc2dca7b502abc1de9ea7b1b7f13 Transfer 2024-09-12 17:11:22 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 984.2000 MDR
0xf64560a55d6620e1d12bd61e282482a559233abc4dd7a9bebd503780176dd93d Transfer 2024-09-12 17:10:58 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 2,760.7000 MDR
0xe0f42b2de74fc40a6b634d956eb8dbcf0008fbbfc1cf06b7b53c4913a7a9e957 Transfer 2024-09-12 08:47:46 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 76.0000 MDR
0x1dcf6e2831d78614e4c29949572592965ae391d8eb34e5fbdd3b0943bae72b52 Transfer 2024-09-12 08:42:19 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 94.0500 MDR
0x5600fc1513819e57f16b23bcee235d8ab804b53adcdab84ce9957f716bc67183 Transfer 2024-09-10 20:44:15 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 OUT 0x9d34373efa95914ee8317bd49db63f7cc781361c 412.5000 MDR
0x25efc7308ca285334ab963dd7c09734fd698fbb8475afa726413185ac58bda77 Transfer 2024-08-26 12:14:20 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,039.3000 MDR
0x7dba8e3e13f5327f19ff97d0793de6328af5a4379627ad185171b0e6dfc20513 Transfer 2024-08-26 12:13:29 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 2,914.6000 MDR
0x06dbee2f969cdf395f4e493d9e3df688f3de1b784c35a5e81cdfcb503b0fb0c0 Transfer 2024-08-16 16:41:32 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 OUT 0x632135616f68ebe08e3e84df54f002b0855806e6 4,000.0000 MDR
0x1bf631bd05a6e0db6f7a2983a788bfaa23b518842c7c57f305e9348b9e96b92d Transfer 2024-08-07 11:09:39 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 282.1500 MDR
0xca446ffb7585597217d1cd2e55d63c360c77335af43f2eea6d6378be8e7ac75c Transfer 2024-08-06 13:26:42 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 319.2000 MDR
0x5a07bd9007da58d7ed8c1223fc71c520bded0e56f64ffb3806932682819172ba Transfer 2024-08-06 13:25:45 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 766.6500 MDR
0xbf7457dd09fa5bf7bb4dfe84e358b4ac908086d41e4045299b6f572a7371425b Transfer 2024-08-01 10:30:45 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 28,500.0000 MDR
0x0c9cc899ec1b2ed734809345bb4fe0a005518fd1425142aec1ce4b91fd88032a Transfer 2024-08-01 10:19:30 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 777.1000 MDR
0xcd68176bf8304c128a7bec5f44744235fa39676805668e567fa19747775edfa4 Transfer 2024-08-01 10:19:09 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,533.3000 MDR
0xe969e84c82c275bd8e4576100ad5479f8238d99cdb516f382e3ff5efb3c428e0 Transfer 2024-08-01 10:18:18 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,197.9500 MDR
0xa58a9a335121ebc689b5af55456a15ec75e2707c0e39d1c1de7e83655920abfd Transfer 2024-08-01 10:16:15 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 888.2500 MDR
0x366f74e5f09ca04aaf9cf4e96bb1f2ca429dcb9ae19c0b57b5e23cac4b3f9f57 Transfer 2024-07-22 11:25:48 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 829.3500 MDR
0x46853c060916a5103fbd645cded7ed8984f9cfcf387ff61ceb7d7212f7d96c47 Transfer 2024-07-22 11:25:24 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 104.5000 MDR
0x5b364639d860fd1bd1bd3250d92467f4cd789697703c64690ff903a7f9e8aadd Transfer 2024-07-22 11:24:57 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 632.7000 MDR
0x62a6ecaeedea4a570cbe5332ecdb906f573a44b4980c0f054ec3348761178a8d Transfer 2024-07-22 11:24:33 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 155.8000 MDR
0xd0815fc7bfcb8f09d3ada4476c199f34c53fe5c5b12c47d4c761946c729819cf Transfer 2024-07-22 11:24:00 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,648.2500 MDR
0x4431737690458e7e1e53141e99bd7835302eeac27be6b591808f208a7bccd133 Transfer 2024-07-22 11:23:33 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,320.5000 MDR
0xa5700658f38791b5ae65ab83d531ee4b369b213f4d961ce1e4aec838d34d46f1 Transfer 2024-07-22 11:23:06 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 2,607.7500 MDR
0xdf5f67b5f8e597b6b4ab5216f9b4e38eeb0238a47d1d11aac1300e419dc8a779 Transfer 2024-07-22 11:22:39 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 2,041.5500 MDR
0xefc0f9ee2f78344121db28a768c6ecf2da808e11175c391bedc92b955df8d453 Transfer 2024-07-21 10:37:37 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 OUT 0x44b87a2a404da6393e16b2e69ac86a40d4ef474c 50.0000 MDR
0x7433c7ab6cefa52710cfcd8a7ae6fd9ca500fdc6df3713740da5cf958b78bb12 Transfer 2024-07-08 12:00:23 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,146.6500 MDR
0x18c73bcdbecc016a483d6241f0b5f51b1ab86627fe1419e81e118d9bdf587148 Transfer 2024-07-08 11:59:53 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,425.0000 MDR
0xbb021d272445d49e426f5b5c8e053c7af3090f3b0458629ac9b327a9aa632446 Transfer 2024-07-08 11:58:50 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,387.9500 MDR
0xc32a1d8c046482b287b1dd8f869966c6e6154265be92eded6edb5e2c5fcd571b Transfer 2024-07-04 12:54:46 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 912.0000 MDR
0x15598e95cf741931e406eda9f924428b553056a267317f9b9b64a34be759d431 Transfer 2024-07-04 12:54:16 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,578.9000 MDR
0x43c6099a5432a3dbd6903dddbc99cc9c0dcf92b4b8449f6c50567fbdd2054fa3 Transfer 2024-07-04 12:32:52 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 OUT 0x632135616f68ebe08e3e84df54f002b0855806e6 2,700.0000 MDR
0x305af095a763cecf4902eea7d35eec7687f8a18fe179f54151b54f8489726503 Transfer 2024-06-29 16:12:22 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 1,281.5500 MDR
0xe78b813b32798ce86d03c936f366e44ed47f7620c0487ae989557a9bd3caed38 Transfer 2024-06-29 16:11:52 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 570.0000 MDR
0x607e4d38fde69ba887bbbfa5c6409d86408c0179e0868ea798025970ebedeb92 Transfer 2024-06-29 16:11:28 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x8a1075eb14a8d3967fee969311f7ff3867a01d07 917.7000 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.