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

Value
$0.00

Txn Hash
Method
Age
From
To
Quantity
0x5fe4681e48b8e49f4dcfe267c2310d1052ee131e3d58d9c7cfea806bca290176 Transfer 2024-05-07 13:00:31 0x23169b677c79a48bba400dfb020de0a15655c864 OUT 0xde05fa18755f5c6ea76264aa85e7aaa57648e1f0 9,777.0000 MDR
0xf78c34268c6bf6af709dba33721f4619930611a3dd7c6d1674169603d6163d3e Transfer 2024-05-06 09:55:31 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,858.2000 MDR
0x21d1c55fac9b36db42a0b07020c602addb2ad6d06fd56ebc28e9d56a4cb9fcc8 Transfer 2024-05-06 09:55:01 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,875.3000 MDR
0x69252a23814ed04d3d7de79c82ffeba4203de3e6665de025536d6b87f8833a67 Transfer 2024-05-05 01:07:54 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,302.4500 MDR
0xc97865008014beab07e578d355a357f50d45a6fa55cc0eb773659dca6dffdc9f Transfer 2024-05-05 00:53:06 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 652.6500 MDR
0x46a9e52cb27ed68ce924049c0c264fb32bfd258e48f8795618a699f11d2e2bdb Transfer 2024-05-05 00:49:39 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 617.5000 MDR
0xd4eea4cf41d9e584a73a5bdcaa4a7a42d0a3c7a32d0e89365d0cf55adb2c3a61 Transfer 2024-05-05 00:44:57 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,241.6500 MDR
0xd20c586bc57dd6bdb80c71c2b6e9f866cc1f60ecbcc014fb48239ba5e115cad3 Transfer 2024-05-05 00:41:24 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,064.0000 MDR
0x8309c9d64c3005503c76210c4b75692e4ea60935d151cfa316cbe62c74c5f7b4 Transfer 2024-05-05 00:37:36 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 567.1500 MDR
0x3e37188af979a0c80941717a339551c53b9912c14e8488aa4b1a43e54e7efb0b Transfer 2024-05-05 00:32:42 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 597.5500 MDR
0xc974adb53a1d0183f32b5ae58f7edc02bd565dc7b7af6888d635f9760450669a Transfer 2024-04-23 11:47:42 0x23169b677c79a48bba400dfb020de0a15655c864 OUT 0xb9cbbc198704672ff211ed512d17dd3c1cec95cf 3,246.0000 MDR
0x3b3b20edfbaa8fc7a2d9709b9e23b00c4aa94008648feccb8482d46bdd1ef953 Transfer 2024-04-23 11:44:21 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 990.8500 MDR
0x00ed651e695c6e42823b8e7fdafac86f1a590e899917e8bf5722e0e1d8acd693 Transfer 2024-04-19 09:50:40 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,127.6500 MDR
0x149831034a4dafef9544444b0e28434994250c9a38613ed34f6b167448290bbe Transfer 2024-04-15 16:32:10 0x23169b677c79a48bba400dfb020de0a15655c864 OUT 0xb9cbbc198704672ff211ed512d17dd3c1cec95cf 25,284.0000 MDR
0xfdf58a53f1c8d031adc77ee44ab3feedb9cfce1f44b651e76d6a9876ddf433d0 Transfer 2024-04-15 15:19:58 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 2,575.4500 MDR
0x379f749bfa8e2613cfd85b8ac5ca7d85ecb94436a9c1c43ecc3b07c7f5875893 Transfer 2024-04-15 10:54:34 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,257.8000 MDR
0xba378370e8b02cb085f20148ecfb205d23ec841ba4573ca5beaeff52f47c1130 Transfer 2024-04-15 10:53:55 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,971.2500 MDR
0xe18d0b005fc7adaf36b57dabdbf77bf6890691d9c4c6a181d68eaef35188a209 Transfer 2024-04-15 10:52:04 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 2,008.3000 MDR
0xd9df5f19ace25d731a7577c991b6b545e2f22a90017a078bcb4924510e4c9c33 Transfer 2024-04-15 10:51:40 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,582.7000 MDR
0x703604f830006d775d2e73ceb821d9755e31dfa037ec3d3856ca2228c3a96c7e Transfer 2024-04-15 10:51:13 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,455.4000 MDR
0x9acb1491706f7719bc5fc4942ece4f783ef5d2af681ba5c287561a1baa3f2227 Transfer 2024-04-15 10:50:46 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 215.6500 MDR
0x589cc0bceb84e8b530431b89ebbeb1af10d14915b2cc5dc301bf2062622d9a89 Transfer 2024-04-15 10:50:25 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,586.5000 MDR
0xe0f98bb236052da0ff92d8ffeb2b725c1e613e285a739f170873da9b95a26d5d Transfer 2024-04-15 10:35:10 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 721.0500 MDR
0xa15858c53632e98b35fcafe4da29136c80e8b4a45575c72bded7285d41a5f569 Transfer 2024-04-15 09:38:52 0xd0de0c63f3da08cd396593da761f56a4d6fa59c8 IN 0x23169b677c79a48bba400dfb020de0a15655c864 693.5000 MDR
0xbc65b7363246e951286f0d22ec76a0a14df254d1f141356e14840417d1f8e627 Transfer 2024-04-06 10:19:29 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,882.9000 MDR
0x414d2fe7e8c08dee36ada5e704c75c9785e1ddfdee6a4778033c8e360988c427 Transfer 2024-03-24 13:39:27 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 517.7500 MDR
0xcd15a354f99b1c09b005a1b0581aacad8dd019fe2ee4fb6f764031fe29705e8d Transfer 2024-03-21 12:17:29 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 913.9000 MDR
0xbc6433c66166b3832397ed7e33d14bcfe8c5752189ba382f3c8d712fe31c5f9e Transfer 2024-03-21 12:16:56 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 870.2000 MDR
0x28c008fcddd2b20ccb3817d290caf1b37436173dc4d18bf710ea7109c809c3a3 Transfer 2024-03-21 12:16:35 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 845.5000 MDR
0xf3067c8fe41b83ec6e39fd1726a921e40b93359da7531989b9ff2d32498a7466 Transfer 2024-03-21 12:15:08 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 2,658.1000 MDR
0xce591f0793cdb1e7a7757dba34fe64a71768d6b7f59dab4f210dae94ad9d4c62 Transfer 2024-03-20 10:46:39 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 227.0500 MDR
0xf9e6a42353521cf9a2cf384fe24da438508d776f4b583cc3d5ddb55cf1eec70e Transfer 2024-03-19 10:17:40 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,219.8000 MDR
0xe0d963540a94d3efce8123703df26412050b7994b4b8e21afe1caddce0f5cd8d Transfer 2024-03-18 13:10:13 0x23169b677c79a48bba400dfb020de0a15655c864 OUT 0xb9cbbc198704672ff211ed512d17dd3c1cec95cf 1,387.0000 MDR
0x9c3894dfe2d1761b212f5b3efd2e91490fdb58ac4cea4e5772a799bda2eb41ec Transfer 2024-03-18 11:33:22 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,387.0000 MDR
0x52031cdf6d4464dcc5ee71eb77c7c22d7a6fc9edfde97fb466193b6ab8dc0235 Transfer 2024-03-17 15:52:34 0x23169b677c79a48bba400dfb020de0a15655c864 OUT 0xb9cbbc198704672ff211ed512d17dd3c1cec95cf 2,517.0000 MDR
0xcdeba17261abb6d0107934b5f3c9c42ed616fbe41e60d8e8d6baedaf1942b8fc Transfer 2024-03-09 09:56:23 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,186.5500 MDR
0x5c8972020ead1b02690c6adf8fbed68961601cb51d0d25d6ae12c423f8ff331c Transfer 2024-03-03 20:51:49 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 825.5500 MDR
0x5b8afa184b4fec5935ba6f198b9f55f89ca9395fd83bf4706747242523cae9f1 Transfer 2024-02-23 13:13:50 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 338.2000 MDR
0xae9371b738df1e123fc858c28da9b068a6c41a080604a56a14839c4e869bc064 Transfer 2024-02-18 07:57:34 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 166.2500 MDR
0x4b1f68bb9cadbeb31fd490bf86c4cea12df4abedb2dedb551a39e372da79443c Transfer 2024-02-17 11:00:44 0x23169b677c79a48bba400dfb020de0a15655c864 OUT 0xb9cbbc198704672ff211ed512d17dd3c1cec95cf 7,073.0000 MDR
0x53eef9a3165b5998ece1d1452ef0191060ce28da4bcaaeb3005c0e5052098aaa Transfer 2024-02-15 15:59:18 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 136.8000 MDR
0xc4eb8add58a253e18da8204286137a9bb17abebca5dc8cc3726313399b257431 Transfer 2024-02-15 11:41:09 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 344.8500 MDR
0x723f8e7bfe18592402c1c6b159d4a6631b6543f0e0ecf6b02a4215c861cbe956 Transfer 2024-02-14 16:25:12 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 4,641.7000 MDR
0xa81f6418c8cd987cb1b6ee7555953f16b609caa1194146281879d9a65673f19e Transfer 2024-02-14 16:21:12 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,950.3500 MDR
0x1b108ac882f99bb6894436320062e461c102826ba15b80a5d832b22cb2bcc22d Transfer 2024-02-09 14:30:29 0x23169b677c79a48bba400dfb020de0a15655c864 OUT 0xb9cbbc198704672ff211ed512d17dd3c1cec95cf 24,769.3500 MDR
0x72b55e9b805897b2e925b19ba4d14808929432fe2615f8016da6934459e1a63d Transfer 2024-02-08 17:37:25 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,440.2000 MDR
0xc3ab4ae96a8acac3eb117ac18eff34f7e8e98c07ac6601cc7621dcd7f3f9fc0e Transfer 2024-02-08 17:36:49 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,386.0500 MDR
0x9f9b6d738619ec9f28bee9b5f4542881b829847a4eb3d0c2e5d02c44eff7a09c Transfer 2024-02-08 17:36:07 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 2,202.1000 MDR
0x769f903cc5ac80cdb00ecf463cc4117b0fe3caccd00af3673517d527ca43baf3 Transfer 2024-02-08 17:35:37 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 2,202.1000 MDR
0xb5e00544e11c2f42b849df172e4956e821c07923b685742e3530ae2873f8a4e4 Transfer 2024-02-08 17:34:28 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,920.9000 MDR
0x38e32f083845d3711a97bf17412840a75ff91be1557b3a09ee177a0ec907d3d2 Transfer 2024-02-08 17:33:46 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 2,415.8500 MDR
0x8816810fb720ce165a6bf4b75644bb6a53da1bc3161dd7df951299a3d15170af Transfer 2024-02-08 17:33:04 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,874.3500 MDR
0xd8f1b8542e0637fd9c1c5b6fdf7593769edc573204c21dd7355034445da335ab Transfer 2024-02-08 17:32:19 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 933.8500 MDR
0xfc91de707c0d9d0642b86528c0160bb9a9340a409d7150c203319e3e738af775 Transfer 2024-02-08 17:32:13 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 933.8500 MDR
0x1c3a96b7c2f22fdacec908df6f59c7913a78f31f8612369c1cf6e72550be99cb Transfer 2024-02-08 17:31:07 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 264.1000 MDR
0x93efcb5e322ff4041c3825549efd12dfa2fe79761ebb10ac6edadc60e0d07061 Transfer 2024-02-08 17:29:37 0x20133264da3139b659df04cbf889b98864c7cb66 IN 0x23169b677c79a48bba400dfb020de0a15655c864 1,370.8500 MDR
0xb8219fa96f79bf20166c194809d62da87a01c24b1bdf0cd40ae8f41c339b9779 Transfer 2024-02-08 00:30:46 0x4b79bf5bcd1edeea03d9200dacca3a24ff232cb6 IN 0x23169b677c79a48bba400dfb020de0a15655c864 7,196.2500 MDR
0xf565567ad5300880dcbe79fb17c7b0b2bbe228af08f693b6cead74d56d65218a Transfer 2024-02-07 23:34:10 0x19033ec74a4086b7f12b72e06762c543e3183b35 IN 0x23169b677c79a48bba400dfb020de0a15655c864 628.9000 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.