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

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0x704b2f27ea5db8b1e61dcceecb88e8145941070683ab4b462c2a6becbb34856d Transfer 2024-05-20 21:32:43 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0xd76db7bb9c4748cdbe2cfdd7fdd390a4c3285671 88.0000 MDR
0x851534db2072381d503fafd4ed6385286b430d26364703a92ba4d6e9134973a0 Transfer 2024-05-20 21:29:37 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x1e8618d4419c915c0d88da8286217849b977fce7 100.0000 MDR
0x5ccd8552556fb011fcc89c0834facea228b03d8f7f887e6e5158b8ba6065057d Transfer 2024-05-16 21:10:54 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x524ff4838cf6b7d11b947f7f3cf8ed32d8a99cb3 74.0000 MDR
0x35b39da4848aaf08a045cda5b5a34e3fced7ad614d7c248c9b301734f5a73d2b Transfer 2024-05-03 22:29:30 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x1618aaf60d26d76521bd0ce027f7c9e743c501ae 317.0000 MDR
0xcd866dd0e7404713a4e6eec77da669a432a2f5fc062e8a44462fe214f7d736aa Transfer 2024-05-01 20:16:55 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x5b7ed2566e4cb9195577f9fb8d7061566f8d03e9 29,500.0000 MDR
0x8ffc0358254b2b4e0bd03c16fb91e8626e0f4bc14b902289497f5f5962847b8e Transfer 2024-05-01 20:15:16 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x5b7ed2566e4cb9195577f9fb8d7061566f8d03e9 500.0000 MDR
0xf786e0609c219bfc17c77e6d100b73ed7ccbf6e36ee1c93657ea500cd3be3140 Transfer 2024-04-30 14:46:18 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 11,903.5000 MDR
0xf051437238102179bb3b3e28ed8e5a5081e8a7e35e931175c54ed1cc084a0751 Transfer 2024-04-05 11:31:55 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 17,037.3000 MDR
0x82f33f43826b8618ec969ebeca6e90dd3395413c4cf8793a05caa4ea2bafe6e5 Transfer 2024-03-18 12:14:31 0xc8bcd015b71bcf0251b94fd02361bf58345e3f75 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 7,898.0000 MDR
0x6f0a9e6f35d5620ae80158d83f6290123f16b1d212ff66d448d4540b4e0d8f34 Transfer 2024-03-08 10:40:05 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 8,024.6500 MDR
0xb1c878da8d093aa2ce6e7163dd02d0042d97877b52745c4bc2dc28bfbda5c204 Transfer 2024-03-02 21:02:22 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0xf5ed51cb78d980078541e764c570087f87caa488 1,176.0000 MDR
0x19f1d0e2376fc4da5c075667107a7f4b2c684d4671d985b56d5d6995c6f24847 Transfer 2024-02-19 21:40:54 0xc8bcd015b71bcf0251b94fd02361bf58345e3f75 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 7,885.0000 MDR
0x2c2b70cdca72c8eabedd3207b5f057ab4d795401f693ed4eccb99d49f53303dc Transfer 2024-02-18 16:52:13 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 4,104.0000 MDR
0x637e0d3175f9985475ba9397233980794b7cc4bb8adebc12bc9e50edd64a9700 Transfer 2024-02-15 12:05:48 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x65ab6311a4d699ffbc1d8a370043c80c401cffb7 5,000.0000 MDR
0x27670716904d232fcbac7e57c29c27f0a6a0c4f3d944a05532e06c3afd25342f Transfer 2024-02-14 21:50:21 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x3b725acaafcdfd37db603c986441e58275e09ffb 13,000.0000 MDR
0x71e65e8e5f59cc11e0aae09cf236d7502f5ec12ac957658eedb3f158164bf89a Transfer 2024-02-10 17:29:19 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x20073895bd04ae0105b7bcd8578094fdd3baa64d 25,000.0000 MDR
0x615ef243203340960196649e5a1ea58a8d18e1188a5b0bfdfebe2f91caa6ce35 Transfer 2024-02-09 23:22:25 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 4,814.6000 MDR
0x2007f86089be4d1f6878f49ea94882d80d0e0e724154ec36a02db346c09a85bb Transfer 2024-02-09 20:29:34 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x850f784723887c5ddb8f6fd68949387b34e7e25a 25,000.0000 MDR
0xafa7b1d4d718da5ffceaf0fb51cf2924c1b76bd08d016066d177003579116290 Transfer 2024-02-09 19:20:07 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x850f784723887c5ddb8f6fd68949387b34e7e25a 58,333.0000 MDR
0x1c47b7b3936ffcdd2691e6afb893d5c19a669f9973e38d90584fb4fc88d5169e Transfer 2024-02-07 20:15:07 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0xa4edfd2f39458c33d963b70cdefbeab59d2b4e35 16,666.0000 MDR
0x163555747a142432ade7cd1639c8db3b64662cffddee4f4d3c1f2083dd43c388 Transfer 2024-02-06 16:56:36 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0xa4edfd2f39458c33d963b70cdefbeab59d2b4e35 16,666.0000 MDR
0x580ad9cf63f1d2100f5978866c9cb484c8178165dc3179659ae82a989f2f8e5f Transfer 2024-02-05 22:15:20 0xc2779a07b4e1fdd9286ef685b8cbc2f5f637a31e IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 13,336.1000 MDR
0x828b878e67432700a2031cb93422661f8414cc7cee3b0ffc79ad52b109f3f3e3 Transfer 2024-02-05 22:13:14 0x197bb5dff32700cf28996323ca466d157789e15c IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 2,951.6500 MDR
0x522e7e8164536a0c2abb0c3c7bc5263b1c13452f17e65753e8958b441628dd04 Transfer 2024-02-05 22:10:38 0x957c0226c677d7139082cd4037b63e2c9230141e IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 19,340.1000 MDR
0x838e5893e5f055b1faa1509f3acc7d03bb48875765818bea78c5b89655efa290 Transfer 2024-02-03 22:08:14 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0xfadb471d007be01cc497754209e118d448e21f69 6,000.0000 MDR
0x2745b1154e34ac3f3b34060b9d5ca06c94fb1552a626e0f9b8125fd38e9e537a Transfer 2024-02-02 10:59:26 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 17,362.2000 MDR
0xf037f74cf1dd96c5be801907955ee1d9279e13f679f532f72f27c6a71d35689b Transfer 2024-02-01 16:07:54 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x65ab6311a4d699ffbc1d8a370043c80c401cffb7 5,000.0000 MDR
0xe54e23870880d13bc82b64e0bbe2ddf2fd5ac88e62c629baa0dd897f54c14af9 Transfer 2024-01-30 16:25:06 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x65ab6311a4d699ffbc1d8a370043c80c401cffb7 15,000.0000 MDR
0xc34675cc750fb4cdda3990104bf6eb3294b17097bd4ce169fe8f7892f60167ca Transfer 2024-01-30 13:00:48 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x65ab6311a4d699ffbc1d8a370043c80c401cffb7 15,000.0000 MDR
0xabecafe74793b4d90a861f849733fbb6d68a151b4ea25f5a3656e310963d69b7 Transfer 2024-01-29 21:56:40 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x58596e630458d0e011085b21a0d7a2c54f6426cf 3,333.0000 MDR
0xbec28db9f5f40bb98eb04561ff900175b0fcffd9d564bec0cd4a745ee7cd710b Transfer 2024-01-16 19:49:30 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x88b9efbcda052250192ea42e9b7aef4482898e06 2,466.0000 MDR
0xe724c2df9d03cdc85d0604c12196ae2533082519ce9cbb7fd64402e65208582f Transfer 2024-01-15 21:43:23 0x957c0226c677d7139082cd4037b63e2c9230141e IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 27,236.5000 MDR
0xdf1f4611bee7aaa3776be2eeaae3d3ff92c1a92c6a1991d61d08227eab159646 Transfer 2024-01-15 21:41:17 0xc2779a07b4e1fdd9286ef685b8cbc2f5f637a31e IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 20,692.9000 MDR
0x21dc9da2ae5e768b12437d5f9475fe5ddd4d3aa2d487cace28720ff32724991b Transfer 2024-01-15 17:18:02 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x88b9efbcda052250192ea42e9b7aef4482898e06 10,000.0000 MDR
0xa9085c7dd32263c8b9f1b5762ad9ff181c9d293b0839695dc4a8fa321588e571 Transfer 2024-01-13 18:58:17 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0xa9e9ceebd6766902677b4ec837b8bc98d57cd2ec 95,000.0000 MDR
0xc063038fc1a0b36ccdc9816b9014181c9ecf7ed0d0018d17afa5e69697314218 Transfer 2024-01-11 19:42:04 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 14,611.9500 MDR
0xb7019c048444c3ab8c5151561c4d5b4f5c8d247b5bd08a4a9097f98cbe3582f8 Transfer 2024-01-04 13:11:57 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0xb044bac415071fbf8ca795f89d2f04363a069d6a 200.0000 MDR
0x35376de0ad69b130494f3d0e47b97a5d356e58cc3701b7ea3d9fe6de2b868516 Transfer 2023-12-21 20:45:01 0x7cf1a0e1511c7d27778c86c52a9ea57c754bf759 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 6,587.0000 MDR
0x3fcd13e8f7f2d4887319ddcd16f1b0d25e170cb07fb08fea4ab6a40ab0919051 Transfer 2023-12-21 10:03:43 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 8,404.6500 MDR
0x516349992591d3f8ce4e93ae873696a166fd97b3a4dcd517bf7f4983b9b1e293 Transfer 2023-12-20 21:52:13 0x5328946ec9a7c92ab87092e04644e0c992c98a92 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 4,277.4000 MDR
0xc2943b2be9c9a599be447b1858f576519afbf937ac9a09c31afe5286322bf8d5 Transfer 2023-12-20 21:51:19 0x6840f7382ea7667cba4af02e0872ff999e45a141 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 18,606.7000 MDR
0x224834af2c77f15daddbf01f0d98006b40759f91324ce3c01a603409555e4772 Transfer 2023-12-20 21:48:52 0x74fa110da34c75bd1bd2d2c1079b5d09e886b486 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 7,555.8000 MDR
0x19b35a083b8d227e07c928a8a79172a277c92785e0969e9fffd9740ff5e1324f Transfer 2023-12-20 21:47:25 0x29da950882feb9560825e25dfe247d6318a19de1 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 6,041.0500 MDR
0x1a416fb6e937cafb79ea8a9ff6919ab3b3f61d767c7ebbd67e8692df01e9af21 Transfer 2023-12-20 21:44:40 0x957c0226c677d7139082cd4037b63e2c9230141e IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 35,077.0000 MDR
0xa0117c726485bb98ced1cd195ff529babab2730d5251cea7d0d45da135a561b4 Transfer 2023-12-20 21:41:58 0x197bb5dff32700cf28996323ca466d157789e15c IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 3,851.4000 MDR
0x75cd487a121f68e7de53e06fcf1879611cc2860cc7fd312893d308930eb00b80 Transfer 2023-12-20 21:40:28 0xc2779a07b4e1fdd9286ef685b8cbc2f5f637a31e IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 40,869.0000 MDR
0xca95809a8f372cebba2b96836ad4570d19bf53ba7420f3cf525d576a88924846 Transfer 2023-12-10 15:00:45 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 9,643.4500 MDR
0x625d6c12b9cbad200b370325aa5ac75f40f4c871d4b46f04d178ff9e6e9ba00b Transfer 2023-12-10 13:25:36 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 399.0000 MDR
0xafa277946b123d3345b18607389924181908c595e6905b42d6bf4b2af0a3eba5 Transfer 2023-11-27 12:49:12 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 10,707.4500 MDR
0x7ff1ddd035eb5a7ffe43ac80780cd9ae25a7284c180efc72a3fb4e314549e059 Transfer 2023-11-25 17:50:27 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 167.2000 MDR
0x9974c3436f52e2a6e4ae58e8c4a47474c2ecb3b16079f98d8946bd394ae5d8ea Transfer 2023-11-05 13:21:34 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 24,016.0000 MDR
0x919d4ab3a7162b672598310de61fbbe8eee80492e9c8724127db494e2421d93d Transfer 2023-11-05 09:31:31 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 464.5500 MDR
0xb1ad758c060a49d5ac24a3488eb3dfe63fef518d26fe5721ac05be1dd94e4f58 Transfer 2023-10-05 05:18:49 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 14,679.4000 MDR
0x4397d3cbd446e54efaaafde825053c5db9efa9c7fed0cf073d49592cc1a6a8d0 Transfer 2023-09-16 18:54:20 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc OUT 0x61217a9b806fbbc373c69c524eb726520733ff33 20,295.8000 MDR
0xd2c694fe9e167db3ace7a334c5ed9bf6d8a1dbc3ed445f7e3d06e761233b730d Transfer 2023-09-15 21:30:04 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 17,364.1000 MDR
0x2741dbcca3bd51426431d814beab877f1b11e9facff8ba3deeb27fdf9344c711 Transfer 2023-08-13 23:33:27 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x7a14e132232c6a7d0795a375aa8ab52383cab2cc 2,931.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.