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

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0x581c2c80d899f8b8fe73fb8bc01a99f98396a2bc72c005f2508859522d697e26 Transfer 2024-06-10 09:56:23 0x4936a7743ea88e3e123581360a1a8634c2cb2af5 IN 0x742288ea800407ad292435faa7047f8912e1f34c 2,500.0000 MDR
0x52b1b0928d874cb3a6194e43859c5e952b8296d782cbcdaa05f8a33bf1a5996d Transfer 2024-06-10 09:42:38 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0x4936a7743ea88e3e123581360a1a8634c2cb2af5 0.0001 MDR
0xfd4dddd49c626c0b780e3ae3fdbbee806efcca4fe59f809f64f404d20def9fc2 Transfer 2024-06-03 11:21:31 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xaa5071799234e80574713909bab0b3ee8b737d4c 2,780.0000 MDR
0x6a9b07f2978ba27da058293ee05c6728e1e813f7d0e210c1b2077ab2f523e63b Transfer 2024-05-31 21:33:38 0x389edb5980fa807aa9f1a6feeaa165b9d18194ad IN 0x742288ea800407ad292435faa7047f8912e1f34c 2,780.0000 MDR
0xaab478abe1b68ad290fe821fd5da6ce9d7164484d8db68d0f56a6668b329a3c0 Transfer 2024-05-15 12:35:11 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xaa5071799234e80574713909bab0b3ee8b737d4c 12,203.0000 MDR
0x984f62fe2930c0b1ef65f2970d829add2b92d17c08cd06583e81f235c9bd9e71 Transfer 2024-05-14 18:03:35 0x08d4a6de767153c1526f069367b1ac00bbce4d3a IN 0x742288ea800407ad292435faa7047f8912e1f34c 4,000.0000 MDR
0xd8082efd12444b63ae6f22fbb0218c28e405d72ed4e1bf974cc7667f20ab048d Transfer 2024-04-17 17:15:56 0x389edb5980fa807aa9f1a6feeaa165b9d18194ad IN 0x742288ea800407ad292435faa7047f8912e1f34c 2,900.0000 MDR
0x95ccb6c68d1c7608b495d6db5313495fff813903141f8b85af2262bd06169c1f Transfer 2024-04-15 18:18:10 0x4936a7743ea88e3e123581360a1a8634c2cb2af5 IN 0x742288ea800407ad292435faa7047f8912e1f34c 2,737.0000 MDR
0xcdbcc8348e205334f86a0f08ce67d54738617dfe1db463818b1c878012457920 Transfer 2024-03-17 23:25:43 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 1,538.0000 MDR
0x3201b56377c0e39e34e66e87375dafb6fedd3a3da1d07d91c3c2a350267c0ddb Transfer 2024-03-05 11:04:35 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 3,000.0000 MDR
0xa24a234b432b82009e37a9e0cf52aa45c782406f85afcb0796f3f56e9c3bd31d Transfer 2024-03-05 10:44:11 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 2,725.0000 MDR
0x6c8b4b1146c64bbb12c69e0693b3601c7a3b6135e4096f7e81377388934b4ca0 Transfer 2024-03-03 18:17:01 0x08d4a6de767153c1526f069367b1ac00bbce4d3a IN 0x742288ea800407ad292435faa7047f8912e1f34c 2,427.0000 MDR
0xf4b96df35e66e5e37543fda23f21a8cfc19a0e0571a061dcb59e40eb9085c1c8 Transfer 2024-02-25 20:02:20 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 812.0000 MDR
0x6a14a15dfa15d8239c13b6ebe87454b702279a604509d3fbcc8d7e0f90e125bb Transfer 2024-02-25 11:44:35 0x4936a7743ea88e3e123581360a1a8634c2cb2af5 IN 0x742288ea800407ad292435faa7047f8912e1f34c 162.0000 MDR
0x7d686ea850c7908f999d792bdee4efc50e4f559c264d8b80e05ab8f37f1af86e Transfer 2024-02-25 11:29:56 0x4936a7743ea88e3e123581360a1a8634c2cb2af5 IN 0x742288ea800407ad292435faa7047f8912e1f34c 775.0000 MDR
0x07a6658212cf31b98bdfa338d415f16faa84bf080cc6c08a4b8a9b8bd60ea50c Transfer 2024-02-18 11:48:07 0x4936a7743ea88e3e123581360a1a8634c2cb2af5 IN 0x742288ea800407ad292435faa7047f8912e1f34c 2,082.0000 MDR
0x234265b56f4303441a27c98a83f18db3bc9d95a608869c10d238dbf1c2b36d18 Transfer 2024-02-17 19:01:02 0xbc4c666968f400c0fa35e72126369c584ce48e6e IN 0x742288ea800407ad292435faa7047f8912e1f34c 1,500.0000 MDR
0x748a486640795e546be213177b293e753abab24f8145c59d906717da925a72d5 Transfer 2024-02-11 18:04:38 0x389edb5980fa807aa9f1a6feeaa165b9d18194ad IN 0x742288ea800407ad292435faa7047f8912e1f34c 2,686.6000 MDR
0x28625fdc553ee4f5d5535e78a41654848cf7d35036ca2d7ae479d098a5fe6751 Transfer 2024-02-07 17:39:04 0xbc4c666968f400c0fa35e72126369c584ce48e6e IN 0x742288ea800407ad292435faa7047f8912e1f34c 416.0000 MDR
0xfa2bf452ca0dc37cbfeacb891b9596cb9124ab1c54372386daa50b4e295c3513 Transfer 2024-01-18 18:16:21 0x086fbb9e82fda607c59ed4c01eee1ec218243f5c IN 0x742288ea800407ad292435faa7047f8912e1f34c 588.0000 MDR
0xd65a05d79ecc6c49b2d5c60c767caa902aec9f4dbbe90b1083c78be85b687361 Transfer 2023-12-16 11:45:01 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 650.0000 MDR
0xfa43d324e8d585352d00f47209b422fd2c4161d0657f4b6a370fa04457651911 Transfer 2023-11-30 11:27:57 0x0bf104bee4b46a59d9e6ea691886632a0814fda3 IN 0x742288ea800407ad292435faa7047f8912e1f34c 353.0000 MDR
0xf2a74fdfaf0953b077a4dd3b61f89f7f185da450c96ba464f1431828c51941e3 Transfer 2023-11-30 08:19:42 0x08d4a6de767153c1526f069367b1ac00bbce4d3a IN 0x742288ea800407ad292435faa7047f8912e1f34c 294.0000 MDR
0x3659b3df4e73802683a320bacf241c5fa32124798f4856f34c0a58e6a938adfb Transfer 2023-11-27 19:33:39 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 660.0000 MDR
0x27d71da8af42468cc8f2f254f71f60d6241d3c58bbd21f181521cfdc02b42fc6 Transfer 2023-11-19 23:11:36 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 147.0000 MDR
0x1a1b1a3d4afc1e9743f6721cf1c104cfe84a6d1bc823870b92227fb6649deff4 Transfer 2023-11-16 17:14:00 0x0bf104bee4b46a59d9e6ea691886632a0814fda3 IN 0x742288ea800407ad292435faa7047f8912e1f34c 294.0000 MDR
0x0e44eb2aab12c4690591a9f400e8db9c5df880af9e1a6d9c7e0e1a07cdd17502 Transfer 2023-11-14 17:21:45 0xc1878440dc170800a07b648d50c23571ec902d47 IN 0x742288ea800407ad292435faa7047f8912e1f34c 294.0000 MDR
0xa1708e343d6b92ced3456deb5c7af8f930e653409c87b24c26e692502d22ef93 Transfer 2023-10-26 19:57:37 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 88.0000 MDR
0xd7fd8167ffd4c502779dbee36084ef3c408606db57a84079d3d3485e151f1417 Transfer 2023-10-21 07:19:31 0x8e3768363af0ef5a622f585c85900d4ff1f8b00b IN 0x742288ea800407ad292435faa7047f8912e1f34c 50.0000 MDR
0x2570db9e28f603e99a57c2601bd6fc9d08db04146652cd82b52c571391e27a05 Transfer 2023-10-17 07:47:49 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 588.0000 MDR
0x9abcd75321b5dc0a726bcb8b3c98e0cb165bdb4d714595fa9b73d4c0b254f219 Transfer 2023-10-17 07:44:37 0x086fbb9e82fda607c59ed4c01eee1ec218243f5c IN 0x742288ea800407ad292435faa7047f8912e1f34c 383.0000 MDR
0x8b55606f49bc812b2c45bbad38c6cf3e218431031d6633d8b4a9b1291c06f738 Transfer 2023-10-12 10:32:34 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 1,492.0000 MDR
0x3bd1fddebbc369ba62fb7c395abf9506fc5e7186b181ba3c34d638f3e716f231 Transfer 2023-10-09 11:30:25 0xc1878440dc170800a07b648d50c23571ec902d47 IN 0x742288ea800407ad292435faa7047f8912e1f34c 137.0000 MDR
0x1663537117acefb95c1ff15483a6076c44924532ca1b87569999b1a954e83c5d Transfer 2023-10-08 12:17:55 0x11b702a97ab58c61977768397d3bf59cdd12026f IN 0x742288ea800407ad292435faa7047f8912e1f34c 147.0000 MDR
0x439c199d04a93bd5bcfaacf4eb1b8ce1dcf48bff4933c9c3494e505132e316fe Transfer 2023-10-05 17:33:10 0x08d4a6de767153c1526f069367b1ac00bbce4d3a IN 0x742288ea800407ad292435faa7047f8912e1f34c 661.0000 MDR
0x554c5e978fb79aca8963c1cc595761f7e339d694e0c6d6c1ca45e1d4e96507a4 Transfer 2023-10-05 17:25:49 0x0bf104bee4b46a59d9e6ea691886632a0814fda3 IN 0x742288ea800407ad292435faa7047f8912e1f34c 500.0000 MDR
0xa1c53b769bc70740c893af73c964f4954775febe700720b7a264353eeb975759 Transfer 2023-10-02 16:20:58 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xd6d570fddc0c557860fd6c49dfaff6d9339062d7 2.0000 MDR
0x23cd4c65556a70712c7216444c61621fe82aecb3491e0577eb731f72de83f221 Transfer 2023-09-22 17:48:06 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0x81f676e2a0b7b996e64a889882f3d625922d1734 192.0000 MDR
0xef5133d591c41888c7975e9cbbdba36e9fada4acb1e11e35eb096a54d2393fdf Transfer 2023-09-22 17:21:36 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0x0d7edf0d62e80101428e1128f74822c7efe2ed54 218.0000 MDR
0xae6e40e621a4eac09ac429d9f682218ab280836790d1068e72d64992553be113 Transfer 2023-09-19 17:37:55 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 147.0000 MDR
0x1d51b7582df8f24fae50e50066a0235fae53c0d00b27896dace47809dd6dc2a2 Transfer 2023-09-05 18:24:44 0x0bf104bee4b46a59d9e6ea691886632a0814fda3 IN 0x742288ea800407ad292435faa7047f8912e1f34c 465.0000 MDR
0x76939f09fae69355378189121195781a77f25d2f299dedb73fcf63f3eef82719 Transfer 2023-09-03 19:39:05 0xf5ed51cb78d980078541e764c570087f87caa488 IN 0x742288ea800407ad292435faa7047f8912e1f34c 262.0000 MDR
0xfa90c91d474054fff1f7a86bee2af076bf984a18afc59f9133c94e0ce1e313a0 Transfer 2023-08-31 17:18:08 0xf5cc1b0ca5f0be74d57f6a0a604da5e896038002 IN 0x742288ea800407ad292435faa7047f8912e1f34c 55.0000 MDR
0xa9361c012fa4d55d4aaaf44b456f21a5cb83ef9711ae6cc73fa040c77a0c38d9 Transfer 2023-08-06 12:15:18 0x08d4a6de767153c1526f069367b1ac00bbce4d3a IN 0x742288ea800407ad292435faa7047f8912e1f34c 257.0000 MDR
0xf035ab87bf828c941df6c77b280511ad1cd75181a3964c5c233a56578320a0d5 Transfer 2023-07-31 00:22:04 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x742288ea800407ad292435faa7047f8912e1f34c 36.2805 MDR
0x4f8140f5e4f8c1ec9ef53436be8832f3284803ccf7680f52a33bd157fb886844 Transfer 2023-07-29 11:40:33 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 565.0000 MDR
0x1e5e0b5e14cd47abe296d74984cecd1d2b6a64886bed87ffb93f6c81e41e43d3 Transfer 2023-07-28 21:01:37 0xca21287136309dfdb6de29ff5c32076e9fc64e73 IN 0x742288ea800407ad292435faa7047f8912e1f34c 374.0000 MDR
0xab7c2e5df2fb577498bf0cd06fdcb425867b8e9448ec96d373e8ff9cdb1f4217 Transfer 2023-07-25 18:41:08 0x08d4a6de767153c1526f069367b1ac00bbce4d3a IN 0x742288ea800407ad292435faa7047f8912e1f34c 184.0000 MDR
0x15b00533bcf4877b439fa1c6eca05e2f820ba372b2c61ab59582ad71fe16f5ef Transfer 2023-07-23 17:45:05 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 740.0000 MDR
0xcb797cfb0445eefee8114cd4e96f773493b627e2c79a20b1f94c75bd7be707b5 Transfer 2023-07-10 17:57:26 0x742288ea800407ad292435faa7047f8912e1f34c OUT 0xf5ed51cb78d980078541e764c570087f87caa488 615.0000 MDR
0x6307e701c68f6cb1c13fc16533a31ecbbfb30544fdb71c886b22ac3f237acaf4 Transfer 2023-07-10 16:49:56 0x83825024f33bdaa0a2882dfd837901ad98033923 IN 0x742288ea800407ad292435faa7047f8912e1f34c 223.2500 MDR
0x8f147fd45a5ed246c6df1f4ef3c4c6b1acdae5d4aab3842f3c259a0c7489bf93 Transfer 2023-06-28 15:26:23 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x742288ea800407ad292435faa7047f8912e1f34c 1,115.3000 MDR
0x8ca60f9cbab2b810c51354336c149b985352bef3b0ffe4b954b5b169be4e5db6 Transfer 2023-06-14 16:47:56 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x742288ea800407ad292435faa7047f8912e1f34c 23.7500 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.