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

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0x96147b4738e008ee3fbe17e3dc9f3fad88869d367fc7451d9a6132f5822b3ff3 Transfer 2024-06-15 10:03:12 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 855.0000 MDR
0x4204eb4805997043177ef4e6c9846b41a6b22827c7558f123d3344b0b7d0b2fa Transfer 2024-06-14 13:20:00 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 66.5000 MDR
0x8829d8639431074023791667ce749dd13dfca577c208de5e2ea9e0b391a6b91c Transfer 2024-05-23 14:07:30 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 227.0500 MDR
0xfa35667204368076ed4393f680e6fc09977fd05d3614edc55f68c7d29efae986 Transfer 2024-05-22 03:46:24 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 161.5000 MDR
0xed1a060f32eca9ddb24b5db83aa7737e4d3b6dd0d177f5f0bc488630b30e7524 Transfer 2024-05-19 07:04:38 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 969.9500 MDR
0x1a92f8bebfd7031f84fb5fa36fd72a7188ea65985e663a287faa1190e080fa05 Transfer 2024-03-29 12:01:10 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 161.5000 MDR
0x5070557b5c4eef693f10680929aaea3d687f127ecf22fca095f04cb0a728fc58 Transfer 2024-04-06 15:27:41 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 442.7000 MDR
0xf10073b6fc06caa783b1173d6c126df4be8e3a7f2be17c83618905673056448d Transfer 2024-03-29 12:44:49 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 161.5000 MDR
0x2b3c0e335197224c5b3b56171e89d6ec592858962cedd68f8c748adc585b821d Transfer 2024-03-26 10:11:14 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 213.7500 MDR
0xc748a492a35917dc846b8c776ef3e6ceefd534d4bdd88155fd2542f380ba25e8 Transfer 2024-03-22 12:32:37 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 95.0000 MDR
0x6997f53b612c204c10f203e88b9f932f580c2394b8bd9b41f8bd78abebc17952 Transfer 2024-03-20 10:40:06 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 142.5000 MDR
0x68108578ee993ee1e5d25c1704ac5ca1d300f7a8b8e48fe73673015482969261 Transfer 2024-03-18 00:01:31 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 213.7500 MDR
0x420a4939e6a7864913d23fdbb2e986b3175de971372e8426b576078b7d337d6d Transfer 2024-03-12 23:04:03 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 213.7500 MDR
0xfa40008fdddfe6b5cf2926e9680fbab71bc89007a9a1f1d73a00d6a123507356 Transfer 2024-03-12 15:03:48 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 59.8500 MDR
0x6979cf53cee4a8b93c0ab04d1ba552af2f0d1ebb244754ae00313901ba21b6ac Transfer 2024-03-07 10:13:42 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 194.7500 MDR
0x7d0349a86506c4e117145ad9becec1d548c98966703b35e1340eff625312f3b3 Transfer 2024-03-02 17:58:31 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 188.1000 MDR
0xb2e619585b27b73c9b6b7924e28912400bf712f8699ab4d1f3d685606fc558ef Transfer 2024-02-26 11:57:37 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 130.1500 MDR
0x88e7ea9187f8380700e193f596eeda0d9fc64a9307f8681b1c909843289bf528 Transfer 2024-02-23 15:40:32 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 256.5000 MDR
0xa3976cf675526cb8be3396c87edbcb4006fa4f2379f0c50c373e533aa17fe934 Transfer 2024-02-22 08:26:56 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 142.5000 MDR
0x252f661f10388c9a38bb8bce8041238efe2c326f69e854c72d417cee82fd00b8 Transfer 2024-02-21 12:13:29 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 86.4500 MDR
0x67c8ab0d1e3c034d128717190d5b968baeabc4db30a5191be4159dfd25aed6e3 Transfer 2024-02-15 19:26:57 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0xbed92cd5667e246c8ad41454d90626093dbb48f8 6,578.7500 MDR
0x7e441de6613607d3488818d43ce4b33f693e33ec44014b8889fe154cba083480 Transfer 2024-02-15 16:44:48 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 378.1000 MDR
0xf394c27c0a3db7d8dc365337b8809aac89f28f2005d39de8cd3e93dfeff4dd0e Transfer 2024-02-14 12:04:54 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 171.0000 MDR
0x3980388435022d1584128b7e6ce3607e7d014299de8fcb65d22aaa58b1dee467 Transfer 2024-02-13 10:35:06 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 6,029.6500 MDR
0x9753c920881f8e3cbc3552d731ec5f230879000dc09d7217c80020a48d407cb6 Transfer 2024-02-12 22:34:00 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x64238c8f18d9967a02d633f6be750b7dbddcc5fc 5,000.0000 MDR
0xbd4c800264ffa559e032f05952bcc3407ea4369396e3a76726171ca23bfc6c1e Transfer 2024-02-10 18:18:49 0x64238c8f18d9967a02d633f6be750b7dbddcc5fc IN 0x50ebe2b13bba50048183da0aade496d59481e05d 5,000.0000 MDR
0x2e6b870995a129dcf7c09a8bf720c1557880513988dfb02978e5ab29ab69a121 Transfer 2024-01-01 21:27:54 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x64238c8f18d9967a02d633f6be750b7dbddcc5fc 50.3500 MDR
0xdacc58e6fdf84d67910764774bb68ab82bfcaa3d4be340eebfb3387b184440e4 Transfer 2023-12-27 04:31:03 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 50.3500 MDR
0x9141a48dd2b25bcfd1f917aaf7d1301e632d55ed1364a41b6f3875269d448fba Transfer 2023-12-23 09:39:25 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x64238c8f18d9967a02d633f6be750b7dbddcc5fc 559.5500 MDR
0xe26e0d10ae23dc229d853ee0c56c04fed23adc18ebda320bc8377655c2413768 Transfer 2023-12-11 11:01:44 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 467.4000 MDR
0xf74b19e6a1cb60d66d711acd6d0ce207411b4e21a9dbc9a3e1f6c28f82892218 Transfer 2023-12-11 05:14:36 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 31.3500 MDR
0x758c6cb8b95b8a1f30bc09bbe0339911d0c863eadb7901d2c6fe0a56ff87c449 Transfer 2023-12-01 11:36:12 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 60.8000 MDR
0x9c00352349541e2617bfb47c06cdcc307963b3ae693873a71569af858995df1b Transfer 2023-11-24 14:51:30 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x64238c8f18d9967a02d633f6be750b7dbddcc5fc 617.5000 MDR
0x9cff29fa84b16607e4c325680d110ae6139f6a8f261acd235c0940e1155123aa Transfer 2023-11-13 08:43:20 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 519.6500 MDR
0xe78d237bf39b33d65ca2881afd9f8067249623757634de2f845599b789741aaa Transfer 2023-11-13 06:20:39 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 50.3500 MDR
0x783ca33bb4a79cdb5293d1f28284a683394020c26b3774acd8af36c6f8676d4e Transfer 2023-10-27 23:23:31 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 47.5000 MDR
0xebdf3885309861ec39eb4b0a076316c154b933ecb1089251c4c30a10b5ea5b85 Transfer 2023-10-24 23:56:40 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x64238c8f18d9967a02d633f6be750b7dbddcc5fc 1,311.9500 MDR
0x651007481de5d69b23b9e7e5e01f04951ea27846b0c43c8c8f4e04b2928d2d03 Transfer 2023-10-18 10:48:43 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 1,217.9000 MDR
0x2937a6123fd8e193f467b72b9959d7b0965c0e166a0cb10c0619e1172bea89da Transfer 2023-10-12 06:52:55 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 65.5500 MDR
0x27f0da5e1a858093d268bfede9eb1b744868d80739d64c2309ed018b0e62b057 Transfer 2023-09-21 09:40:23 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 28.5000 MDR
0x36d636d898bb68578747fb7f8c326fbf40942b2aaa173da57344a30001001516 Transfer 2023-09-21 08:44:05 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x923ccb14d71d71e9e2b3ef91db03c2742cda398b 70.3000 MDR
0x9b65714f45759f9de108edfffdce4084206b78f2b9173e8a786c2700206382e6 Transfer 2023-09-21 07:25:23 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 28.5000 MDR
0x2fc64e1d41d4677042fccbdf9b045c96c5f997770216d33ef3b045b664c81bea Transfer 2023-09-12 19:02:57 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 41.8000 MDR
0x12d223854aa4a401ea632d58183891ddefc74b9fd580cabce13125e2405d114b Transfer 2023-09-02 20:10:05 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x923ccb14d71d71e9e2b3ef91db03c2742cda398b 809.4000 MDR
0xcc406efa1e74035a1e56e80a2a674ea80896f33fe327b57ec4978a84b6be70a4 Transfer 2023-09-01 11:08:17 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 809.4000 MDR
0xd71ac32d1140ee05a2054963da5dba6600b1d8525bcedf3d6f70a4485678c231 Transfer 2023-07-29 12:01:48 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x923ccb14d71d71e9e2b3ef91db03c2742cda398b 48.4500 MDR
0x1dd995da1f46ad5f440c05e2848f633b2f4a6fa93e61d48b3146fdad9e92bb85 Transfer 2023-07-22 07:45:04 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 48.4500 MDR
0x7d7a058c57719a4fe3e4b559228b2feda1d1f5b6bb17b4bfd7b424502e859375 Transfer 2023-07-08 07:17:26 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x923ccb14d71d71e9e2b3ef91db03c2742cda398b 58.9000 MDR
0xe24e165e99d93a3f92c3c43c5b6cb109dad9cc562270a155f796beba63947299 Transfer 2023-06-28 22:08:53 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 33.2500 MDR
0xa32191f021f4be8cd8d82f95d931c7759a41a0a247b76f077b0190f8ff0a151f Transfer 2023-06-21 23:21:02 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 25.6500 MDR
0x6f0ed127c9b9946e6d8027d5f129fb5607a615aed29609d17c1588db791c347b Transfer 2023-06-16 20:30:47 0x50ebe2b13bba50048183da0aade496d59481e05d OUT 0x923ccb14d71d71e9e2b3ef91db03c2742cda398b 80.7500 MDR
0x04a393ce3ac5682eb62a86ac7ebb39c4a555bd78868ce3af6497848ce8001a00 Transfer 2023-06-15 18:00:20 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 29.4500 MDR
0xbcf0ad73c40ebf78463021b1ea41c51606bddc0248b1814631b6e264fd8c58a6 Transfer 2023-06-09 13:02:49 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x50ebe2b13bba50048183da0aade496d59481e05d 51.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.