Contract 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b04

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2dbd52c2d1cf4625030ddac54f38da836ecab1ff8e95abbd79812b9e02427c8fSettlement(pending)2022-01-28 8:55:152 secs ago0x21c62015bcf86695698ac40fc569a05fe0a1dc0e IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0xe8fc19bc98558ff87e4d4d6415ff86059f1886b56796e9c2ebad1fd96646f8a6Settlement(pending)2022-01-28 8:55:152 secs ago0x439aab1c3b6dbb437165b5cad375fae6f5556ef3 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0xceb0e64e116d99964af02c7cba91d7a6177fe90e402e0068128114e468e1d440Settlement(pending)2022-01-28 8:55:152 secs ago0x439aab1c3b6dbb437165b5cad375fae6f5556ef3 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0xed65b48a886d7104dc686989a1abe0979712e721b8bda5a8211aebead6f29cf3Settlement(pending)2022-01-28 8:51:243 mins ago0x568ee49fa6ffc6a6c2868d44ca320a1b7db360fc IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x47bc03ff8b485c9987063d72fd901122725a54d2bea656349dd3b0e26274a0ffSettlement(pending)2022-01-28 8:51:243 mins ago0x120460a9ea36174fd6297ba266f1ce3624cda5d9 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x2244ec6c80cf35777502f1078326b607e687a0a6cea6fe5c2e9e5bed17e603f3Settlement(pending)2022-01-28 8:51:243 mins ago0xb82d67b09958ecf998acbac93074219dfafb19f1 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0xea1b0eba70491a3813c776e378c3b82268d0e9bf97b46d31bfd75b8fadd96b0fSettlement(pending)2022-01-28 8:51:243 mins ago0x628b5caf6ebe70491c1db1d39745e46a06b5d394 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x8fb7833c359f7582764e014f7e1b7cfdecdf48d9c172b66b9cdc9e12e71fdc42Settlement(pending)2022-01-28 8:51:243 mins ago0x628b5caf6ebe70491c1db1d39745e46a06b5d394 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x02b8874acc6025cabd660e418029acf8adf87ac653be24e85bfad0cb0137e118Settlement(pending)2022-01-28 8:51:243 mins ago0x7fba6bcd9686e064806d47143172389f37e2de14 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x30ed70af721155644df7de09e0cedefb614e42980b1d1e6bc53cfdcef357c305Settlement(pending)2022-01-28 8:51:243 mins ago0x7fba6bcd9686e064806d47143172389f37e2de14 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x56416d549b812c9d2bae310483e239950ec3f432adbd89e7987b1006ef4d24c9Burn121553562022-01-28 8:55:0017 secs ago0x9c99b7721d6aed6fa7ad5202e05cca9e6f679f3e IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029394362.7
0x3f27ebc8a5c087dcbda704a9f226add4213102e89e1eb2d5cceac3cbcbadcd76Settlement121553512022-01-28 8:54:4532 secs ago0x9c99b7721d6aed6fa7ad5202e05cca9e6f679f3e IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00027068042.7
0xcaf9eeb3486be872739f4dfd31122749463fb2548d87dc0ab7c4248898d0f197Burn121553422022-01-28 8:54:1859 secs ago0x9425c9d19515e7a265c7186540a6099648f9ce58 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029394362.7
0x99192d66b37dd8c5890fdcdbca4548b0e1d86154d54241f5ee4baedd154af5f9Burn121553412022-01-28 8:54:151 min ago0x22f998bd9007a54304eb1bcff1b9633b8d7ff3ae IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029394362.7
0x9adb255e141d4f7ee1286d87cfb6f1fa5a3aa4c1b93cbfcb199542ed1b9386f1Settlement121553372022-01-28 8:54:031 min ago0xc3ff6d864823065895d2f3ae0f12e9fee7d5e69f IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.0002255672.25
0x53a29020a17e8135a827b82dcfcf3c7b88499415b41cf1258fc7c48465fd0a7fSettlement121553372022-01-28 8:54:031 min ago0x9425c9d19515e7a265c7186540a6099648f9ce58 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00027068042.7
0xe195cada2d9dc18dfaaf71b95aa7ffb192605b905dff561c2a6e40e6d84b992eSettlement121553332022-01-28 8:53:511 min ago0x22f998bd9007a54304eb1bcff1b9633b8d7ff3ae IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00027070742.7
0xdee6b8a374b400cc65495b49c8655fa82f4d1300773ffc30bf204b2e2c0fc80eBurn121553272022-01-28 8:53:331 min ago0xfff3071d8a125ab6359f9cf902094442b8514c58 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029394362.7
0x751d680a9a19b3101aef5d9a2ec0367988489ebb8c6c227cbc2d7c3d822d6f94Settlement121553222022-01-28 8:53:181 min ago0xfff3071d8a125ab6359f9cf902094442b8514c58 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00027068042.7
0x90ea7aaf86916c70951cf8e72e384314debeac3f0a51333071498e86cb83ecb3Settlement121553152022-01-28 8:52:572 mins ago0x68bc53d42f7719c3547bbddd645368524bd2364b IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.0002255672.25
0xd4d2a6dff3a96ca31384678ebecee6b602b51a5dc31cba77be7b329a217e1c28Burn121553112022-01-28 8:52:452 mins ago0x089128db05ddab5bc95481ab8faa3f3888389642 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029394362.7
0xbb0f528872970e20848004ab14db7a555969359d2c851e04ec0336ff7f97d7feSettlement121553072022-01-28 8:52:332 mins ago0x089128db05ddab5bc95481ab8faa3f3888389642 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00027068042.7
0x249b3b37721f259929c7c40c2288435133ad983cc89eae005c6802604fa5d083Settlement121553032022-01-28 8:52:212 mins ago0x439daf6278a4ed9f4f45da01f455bfdebb816c12 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.0002255672.25
0x2ac97601bfcd7a4563c5f5d20e1c56a65bf181b5e289b5474a7096a073c3d89cBurn121552972022-01-28 8:52:033 mins ago0x4035b729f4ef96848af0c4b7c3d30af4377e8d5c IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029394362.7
0xe08ac9a377297a1aaba6699731d46ec41f79e6d77c56aa3368ea6fb1af808e58Settlement121552922022-01-28 8:51:483 mins ago0x4035b729f4ef96848af0c4b7c3d30af4377e8d5c IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00027068042.7
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MineStorage

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
Yes with 2000 runs

Other Settings:
byzantium EvmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2021-05-10
*/

pragma solidity >=0.5.0 <0.6.0;

library TimeLineValue {
    struct Data {
        uint256 timeInterval_final;
        uint256[] timeList;
        mapping(uint256 => uint256) valueMapping;
    }

    function init(
        Data storage self,
        uint256 interval,
        uint256 t,
        uint256 value
    ) internal {
        uint256 tz = (t / interval) * interval;

        self.timeInterval_final = interval;
        self.timeList.push(tz);
        self.valueMapping[tz] = value;
    }

    function increase(Data storage self, uint256 addValue)
        internal
        returns (uint256)
    {
        uint256 t = (now / self.timeInterval_final) * self.timeInterval_final;

        uint256 latestTime = self.timeList[self.timeList.length - 1];

        if (latestTime == t) {
            self.valueMapping[latestTime] += addValue;
            return self.valueMapping[latestTime];
        } else {
            self.timeList.push(t);
            self.valueMapping[t] = (self.valueMapping[latestTime] + addValue);
            return self.valueMapping[t];
        }
    }

    function decrease(Data storage self, uint256 subValue)
        internal
        returns (uint256)
    {
        uint256 t = (now / self.timeInterval_final) * self.timeInterval_final;

        uint256 latestTime =
            self.timeList.length == 0
                ? t
                : self.timeList[self.timeList.length - 1];

        require(self.valueMapping[latestTime] >= subValue, "InsufficientQuota");

        if (latestTime == t) {
            self.valueMapping[latestTime] -= subValue;
            return self.valueMapping[latestTime];
        } else {
            self.timeList.push(t);
            self.valueMapping[t] = (self.valueMapping[latestTime] - subValue);
            return self.valueMapping[t];
        }
    }

    function forceSet(Data storage self, uint256 value) internal {
        uint256 t = (now / self.timeInterval_final) * self.timeInterval_final;

        uint256 latestTime = self.timeList[self.timeList.length - 1];

        if (latestTime == t) {
            self.valueMapping[latestTime] = value;
        } else {
            self.timeList.push(t);
            self.valueMapping[t] = value;
        }
    }

    function latestValue(Data storage self) internal view returns (uint256) {
        uint256[] storage s = self.timeList;
        if (s.length <= 0) {
            return 0;
        }
        return self.valueMapping[s[s.length - 1]];
    }

    function bestMatchValue(Data storage self, uint256 time)
        internal
        view
        returns (uint256)
    {
        uint256[] storage s = self.timeList;

        if (s.length <= 0 || time < s[0]) {
            return 0;
        }

        if (time >= s[s.length - 1]) {
            return self.valueMapping[s[s.length - 1]];
        }

        uint256 t = (time / self.timeInterval_final) * self.timeInterval_final;

        for (
            uint256 d = t;
            d >= t - 7 * self.timeInterval_final;
            d -= self.timeInterval_final
        ) {
            if (self.valueMapping[d] > 0) {
                return self.valueMapping[d];
            }
        }

        return 0;
    }
}

pragma solidity >=0.5.0 <0.6.0;

contract KTimeController {
    uint256 public offsetTime;

    function timestemp() external view returns (uint256) {
        return now + offsetTime;
    }

    function increaseTime(uint256 t) external {
        offsetTime += t;
    }
}

pragma solidity >=0.5.0 <0.6.0;

contract KOwnerable {
    address[] internal _authAddress = [
        address(0x013a0Fe4a79afFF253Fd0ACBDC891384EBbD0630)
    ];

    address[] public KContractOwners = [
        address(0x013a0Fe4a79afFF253Fd0ACBDC891384EBbD0630)
    ];

    bool private _call_locked;

    constructor() public {
        KContractOwners.push(msg.sender);
        _authAddress.push(msg.sender);
    }

    function KAuthAddresses() external view returns (address[] memory) {
        return _authAddress;
    }

    function KAddAuthAddress(address auther) external KOwnerOnly {
        _authAddress.push(auther);
    }

    function KDelAuthAddress(address auther) external KOwnerOnly {
        for (uint256 i = 0; i < _authAddress.length; i++) {
            if (_authAddress[i] == auther) {
                for (uint256 j = 0; j < _authAddress.length - 1; j++) {
                    _authAddress[j] = _authAddress[j + 1];
                }
                delete _authAddress[_authAddress.length - 1];
                _authAddress.pop();
                return;
            }
        }
    }

    modifier KOwnerOnly() {
        bool exist = false;
        for (uint256 i = 0; i < KContractOwners.length; i++) {
            if (KContractOwners[i] == msg.sender) {
                exist = true;
                break;
            }
        }
        require(exist, "NotAuther");
        _;
    }

    modifier KOwnerOnlyAPI() {
        bool exist = false;
        for (uint256 i = 0; i < KContractOwners.length; i++) {
            if (KContractOwners[i] == msg.sender) {
                exist = true;
                break;
            }
        }
        require(exist, "NotAuther");
        _;
    }

    modifier KRejectContractCall() {
        uint256 size;
        address payable safeAddr = msg.sender;
        assembly {
            size := extcodesize(safeAddr)
        }
        require(size == 0, "Sender Is Contract");
        _;
    }

    modifier KDAODefense() {
        require(!_call_locked, "DAO_Warning");
        _call_locked = true;
        _;
        _call_locked = false;
    }

    modifier KDelegateMethod() {
        bool exist = false;
        for (uint256 i = 0; i < _authAddress.length; i++) {
            if (_authAddress[i] == msg.sender) {
                exist = true;
                break;
            }
        }
        require(exist, "PermissionDeny");
        _;
    }

    function uint2str(uint256 i) internal pure returns (string memory c) {
        if (i == 0) return "0";
        uint256 j = i;
        uint256 length;
        while (j != 0) {
            length++;
            j /= 10;
        }
        bytes memory bstr = new bytes(length);
        uint256 k = length - 1;
        while (i != 0) {
            bstr[k--] = bytes1(uint8(48 + (i % 10)));
            i /= 10;
        }
        c = string(bstr);
    }
}

contract KPausable is KOwnerable {
    event Paused(address account);

    event Unpaused(address account);

    bool public paused;

    constructor() internal {
        paused = false;
    }

    modifier KWhenNotPaused() {
        require(!paused, "Pausable: paused");
        _;
    }

    modifier KWhenPaused() {
        require(paused, "Pausable: not paused");
        _;
    }

    function Pause() public KOwnerOnly {
        paused = true;
        emit Paused(msg.sender);
    }

    function Unpause() public KOwnerOnly {
        paused = false;
        emit Unpaused(msg.sender);
    }
}

contract KDebug is KPausable {
    KTimeController internal debugTimeController;

    function timestempZero() internal view returns (uint256) {
        return (timestemp() / 1 days) * 1 days;
    }

    function timestemp() internal view returns (uint256) {
        if (debugTimeController != KTimeController(0)) {
            return debugTimeController.timestemp();
        } else {
            return now;
        }
    }

    function KSetDebugTimeController(address tc) external KOwnerOnly {
        debugTimeController = KTimeController(tc);
    }
}

contract KStorage is KDebug {
    address public KImplementAddress;

    function SetKImplementAddress(address impl) external KOwnerOnly {
        KImplementAddress = impl;
    }

    function() external {
        address impl_address = KImplementAddress;
        assembly {
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                sub(gas(), 10000),
                impl_address,
                0x0,
                calldatasize(),
                0,
                0
            )
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
                case 0 {
                    revert(0, retSz)
                }
                default {
                    return(0, retSz)
                }
        }
    }
}

contract KStoragePayable is KDebug {
    address public KImplementAddress;

    function SetKImplementAddress(address impl) external KOwnerOnly {
        KImplementAddress = impl;
    }

    function() external payable {
        address impl_address = KImplementAddress;
        assembly {
            if eq(calldatasize(), 0) {
                return(0, 0)
            }

            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                gas(),
                impl_address,
                0x0,
                calldatasize(),
                0,
                0
            )
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
                case 0 {
                    revert(0, retSz)
                }
                default {
                    return(0, retSz)
                }
        }
    }
}

pragma solidity >=0.5.1 <0.7.0;

interface iERC777_1 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function increaseAllowance(address spender, uint256 addedValue)
        external
        returns (bool);

    function decreaseAllowance(address spender, uint256 subtractedValue)
        external
        returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function granularity() external view returns (uint256);

    function defaultOperators() external view returns (address[] memory);

    function addDefaultOperators(address owner) external returns (bool);

    function removeDefaultOperators(address owner) external returns (bool);

    function isOperatorFor(address operator, address holder)
        external
        view
        returns (bool);

    function authorizeOperator(address operator) external;

    function revokeOperator(address operator) external;

    function send(
        address to,
        uint256 amount,
        bytes calldata data
    ) external;

    function operatorSend(
        address from,
        address to,
        uint256 amount,
        bytes calldata data,
        bytes calldata operatorData
    ) external;

    function burn(uint256 amount, bytes calldata data) external;

    function operatorBurn(
        address from,
        uint256 amount,
        bytes calldata data,
        bytes calldata operatorData
    ) external;

    event Sent(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256 amount,
        bytes data,
        bytes operatorData
    );
    event Minted(
        address indexed operator,
        address indexed to,
        uint256 amount,
        bytes data,
        bytes operatorData
    );
    event Burned(
        address indexed operator,
        address indexed from,
        uint256 amount,
        bytes data,
        bytes operatorData
    );
    event AuthorizedOperator(address indexed operator, address indexed holder);
    event RevokedOperator(address indexed operator, address indexed holder);
}

pragma solidity >=0.4.22 <0.7.0;

library UserRelation {
    struct MainDB {
        uint256 totalAddresses;
        mapping(address => address) _recommerMapping;
        mapping(address => address[]) _recommerList;
        mapping(address => uint256) _recommerCountMapping;
        mapping(bytes6 => address) _shortCodeMapping;
        mapping(address => bytes6) _addressShotCodeMapping;
    }

    function Init(MainDB storage self) internal {
        address rootAddr = address(0xdead);
        bytes6 rootCode = 0x303030303030;
        self._recommerMapping[rootAddr] = address(0xdeaddead);
        self._shortCodeMapping[rootCode] = rootAddr;
        self._addressShotCodeMapping[rootAddr] = rootCode;
    }

    function GetIntroducer(MainDB storage self, address _owner)
        internal
        view
        returns (address)
    {
        return self._recommerMapping[_owner];
    }

    function RecommendList(MainDB storage self, address _owner)
        internal
        view
        returns (address[] memory list, uint256 len)
    {
        return (self._recommerList[_owner], self._recommerList[_owner].length);
    }

    function RegisterShortCode(
        MainDB storage self,
        address _owner,
        bytes6 shortCode
    ) internal returns (bool) {
        if (self._shortCodeMapping[shortCode] != address(0x0)) {
            return false;
        }

        if (self._addressShotCodeMapping[_owner] != bytes6(0x0)) {
            return false;
        }

        self._shortCodeMapping[shortCode] = _owner;
        self._addressShotCodeMapping[_owner] = shortCode;

        return true;
    }

    function ShortCodeToAddress(MainDB storage self, bytes6 shortCode)
        internal
        view
        returns (address)
    {
        return self._shortCodeMapping[shortCode];
    }

    function AddressToShortCode(MainDB storage self, address addr)
        internal
        view
        returns (bytes6)
    {
        return self._addressShotCodeMapping[addr];
    }

    function AddRelation(
        MainDB storage self,
        address owner,
        address recommer
    ) internal returns (int256) {
        if (recommer == owner) {
            require(false, "-1");
            return -1;
        }

        require(recommer != owner, "-1");

        require(self._recommerMapping[owner] == address(0x0), "-2");

        if (recommer != address(0xdead)) {
            require(self._recommerMapping[recommer] != address(0x0), "-3");
        }

        self._recommerMapping[owner] = recommer;

        self._recommerList[recommer].push(owner);

        self._recommerCountMapping[recommer]++;

        self.totalAddresses++;

        return 0;
    }

    function AddRelationEx(
        MainDB storage self,
        address owner,
        address recommer,
        bytes6 regShoutCode
    ) internal returns (int256) {
        if (!RegisterShortCode(self, owner, regShoutCode)) {
            return -4;
        }

        return AddRelation(self, owner, recommer);
    }

    function TeamMemberTotal(MainDB storage self, address _addr)
        internal
        view
        returns (uint256)
    {
        return self._recommerCountMapping[_addr];
    }
}

pragma solidity >=0.5.1 <0.6.0;

interface AirDrop {
    function airDropDelegate(address owner) external;
}

contract RelationsStorage is KStorage {
    UserRelation.MainDB _userRelation;
    using UserRelation for UserRelation.MainDB;

    constructor() public {
        _userRelation.Init();
    }
}

contract Relations is RelationsStorage {
    function GetIntroducer(address _owner) external view returns (address) {
        return _userRelation.GetIntroducer(_owner);
    }

    function RecommendList(address _owner)
        external
        view
        returns (address[] memory list, uint256 len)
    {
        return _userRelation.RecommendList(_owner);
    }

    function ShortCodeToAddress(bytes6 shortCode)
        external
        view
        returns (address)
    {
        return _userRelation.ShortCodeToAddress(shortCode);
    }

    function AddressToShortCode(address _addr) external view returns (bytes6) {
        return _userRelation.AddressToShortCode(_addr);
    }

    function TeamMemberTotal(address _addr) external view returns (uint256) {
        return _userRelation.TeamMemberTotal(_addr);
    }

    function RegisterShortCode(bytes6 shortCode) external {
        require(_userRelation.RegisterShortCode(msg.sender, shortCode));
    }

    function BindRelation(address _recommer) external {
        require(_userRelation.AddRelation(msg.sender, _recommer) >= 0, "-1");
    }

    function BindRelationEx(address _recommer, bytes6 shortCode) external {
        require(
            _userRelation.AddRelationEx(msg.sender, _recommer, shortCode) >= 0,
            "-1"
        );
        AirDrop(0x5B18f41Ac7AC7D756b1374A8e7C5ce46450a7b04).airDropDelegate(
            msg.sender
        );
    }

    function AddressesCount() external view returns (uint256) {
        return _userRelation.totalAddresses;
    }

    function importData(
        address _parent,
        bytes6 _shortCode,
        address[] calldata _children
    ) external KOwnerOnly {
        _userRelation._shortCodeMapping[_shortCode] = _parent;
        _userRelation._addressShotCodeMapping[_parent] = _shortCode;

        if (_children.length > 0) {
            for (uint256 i = 0; i < _children.length; i++) {
                _userRelation._recommerMapping[_children[i]] = _parent;

                _userRelation._recommerList[_parent].push(_children[i]);
            }

            _userRelation._recommerCountMapping[_parent] = _children.length;

            _userRelation.totalAddresses += _children.length;
        }
    }
}

pragma solidity >=0.5.1 <0.7.0;

interface RecommendValidUserInterface {
    function recommendValidUserTotalOf(address owner)
        external
        view
        returns (uint256);
}

contract MineStorage is KStorage {
    struct UserInfomation {
        uint256 pow_st;
        uint256 pow_dy;
        uint256 totalProfix;
        uint256 latestWithdrawTime;
    }

    mapping(address => UserInfomation) public userInfomationOf;

    uint256 public issueTime;
    uint256 public latestCutDownTime;
    uint256 public releaseToken = 33000 ether;

    using TimeLineValue for TimeLineValue.Data;
    TimeLineValue.Data _networkPowST;
    TimeLineValue.Data _networkPowDY;

    iERC777_1 internal _erc20Inc;
    Relations internal _rlsInc;
    RecommendValidUserInterface internal _bankInc;

    constructor(iERC777_1 erc20Inc, Relations rlsInc) public {
        _erc20Inc = erc20Inc;
        _rlsInc = rlsInc;

        _networkPowST.init(1 days, timestempZero(), 0);
        _networkPowDY.init(1 days, timestempZero(), 0);

        issueTime = timestempZero();
        latestCutDownTime = timestempZero();
    }
}

contract Mine is MineStorage(iERC777_1(0), Relations(0)) {
    event Log_Profix(
        address indexed owner,
        uint256 indexed time,
        uint256 st,
        uint256 dy
    );

    function setRecommendValidUserInterface(RecommendValidUserInterface i)
        external
        KOwnerOnly
    {
        _bankInc = i;
    }

    function networkPowerInfo()
        external
        view
        returns (uint256 totalSt, uint256 totalDy)
    {
        if (issueTime == 0) {
            return (0, 0);
        }
        return (
            _networkPowST.bestMatchValue(timestemp()),
            _networkPowDY.bestMatchValue(timestemp())
        );
    }

    function networkPowerInfo(uint256 time)
        external
        view
        returns (uint256 totalSt, uint256 totalDy)
    {
        if (issueTime == 0) {
            return (0, 0);
        }
        return (
            _networkPowST.bestMatchValue(time),
            _networkPowDY.bestMatchValue(time)
        );
    }

    function _currentReleaseToken() internal returns (uint256) {
        uint256 issueMonth = (timestemp() - issueTime) / 30 days;

        uint256 cutdownInterval = timestempZero() - latestCutDownTime;
        if (cutdownInterval < 30 days) {
            return releaseToken;
        }

        if (issueMonth <= 6) {
            releaseToken = (releaseToken * 1.10e12) / 1e12;
        } else if (issueMonth <= 12) {
            releaseToken = (releaseToken * 1.08e12) / 1e12;
        } else if (issueMonth <= 24) {
            releaseToken = (releaseToken * 1.05e12) / 1e12;
        } else if (issueMonth <= 36) {
            releaseToken = (releaseToken * 1.03e12) / 1e12;
        } else {
            releaseToken = (releaseToken * 1.02e12) / 1e12;
        }

        latestCutDownTime = timestempZero();
        return releaseToken;
    }

    function settlement()
        external
        returns (
            uint256 st,
            uint256 dy,
            uint256 sent
        )
    {
        if (issueTime == 0) {
            return (0, 0, 0);
        }
        return _settlement();
    }

    function _settlement()
        internal
        returns (
            uint256 st,
            uint256 dy,
            uint256 sent
        )
    {
        UserInfomation storage userInfo = userInfomationOf[msg.sender];

        uint256 intervalDay =
            (timestempZero() - userInfo.latestWithdrawTime) / 1 days;

        uint256 totalSt =
            (_networkPowST.bestMatchValue(userInfo.latestWithdrawTime) +
                _networkPowST.bestMatchValue(timestempZero() - 1 days)) / 2;

        if (totalSt > 0) {
            st =
                ((userInfo.pow_st * (_currentReleaseToken() / 2)) / totalSt) *
                intervalDay;
        }

        dy = userInfo.pow_dy;

        if (intervalDay > 0 && totalSt > 0) {
            uint40[15] memory props =
                [
                    0.20e12,
                    0.15e12,
                    0.10e12,
                    0.05e12,
                    0.05e12,
                    0.05e12,
                    0.05e12,
                    0.05e12,
                    0.05e12,
                    0.05e12,
                    0.04e12,
                    0.04e12,
                    0.04e12,
                    0.04e12,
                    0.04e12
                ];

            for (
                (address parent, uint256 i) =
                    (_rlsInc.GetIntroducer(msg.sender), 0);
                parent != address(0) &&
                    parent != address(0xdead) &&
                    i < props.length;
                (i++, parent = _rlsInc.GetIntroducer(parent))
            ) {
                uint256 amount = (st * props[i]) / 1e12;
                _networkPowDY.increase(amount);
                userInfomationOf[parent].pow_dy += (amount);
            }
        }

        if (st + dy > 0 && userInfo.totalProfix < userInfo.pow_st * 3) {
            if (userInfo.totalProfix + st + dy > userInfo.pow_st * 3) {
                sent = userInfo.pow_st * 3 - userInfo.totalProfix;
                userInfo.totalProfix = userInfo.pow_st * 3;
            } else {
                sent = (st + dy);
                userInfo.totalProfix += sent;
            }

            if (sent > 0) {
                userInfo.pow_dy = 0;
                userInfo.latestWithdrawTime = timestempZero();

                _erc20Inc.transfer(msg.sender, sent);
                emit Log_Profix(msg.sender, timestempZero(), st, dy);
            }
        }
    }

    function burn(uint256 amount) external returns (uint256 profix) {
        _erc20Inc.operatorBurn(msg.sender, amount, "MinerBurn", "");
        return _burned(msg.sender, amount);
    }

    function _burned(address owner, uint256 amount)
        internal
        returns (uint256 profix)
    {
        UserInfomation storage userInfo = userInfomationOf[owner];

        if (userInfo.pow_st == 0) {
            userInfo.latestWithdrawTime = timestempZero();
        } else {
            (, , profix) = _settlement();
        }

        userInfo.pow_st += amount;
        _networkPowST.increase(amount);
    }

    function increasePOWDelegate(address owner, uint256 pow)
        external
        KDelegateMethod
    {
        _burned(owner, pow);
    }

    function increasePOWGroupDelegate(
        address[] calldata addressList,
        uint256[] calldata pow
    ) external KOwnerOnly {
        uint256 totalNeedBurn = 0;
        for (uint256 i = 0; i < addressList.length; i++) {
            _burned(addressList[i], pow[i]);
            totalNeedBurn += pow[i];
        }
        _erc20Inc.transfer(address(0xdead), totalNeedBurn);
    }

    function airDropDelegate(address owner) external KDelegateMethod {
        _burned(owner, 9 ether);
        _erc20Inc.transfer(owner, 1 ether);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract iERC777_1","name":"erc20Inc","type":"address"},{"internalType":"contract Relations","name":"rlsInc","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"auther","type":"address"}],"name":"KAddAuthAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KAuthAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"KContractOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"auther","type":"address"}],"name":"KDelAuthAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KImplementAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tc","type":"address"}],"name":"KSetDebugTimeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"Pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"impl","type":"address"}],"name":"SetKImplementAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"Unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"issueTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestCutDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfomationOf","outputs":[{"internalType":"uint256","name":"pow_st","type":"uint256"},{"internalType":"uint256","name":"pow_dy","type":"uint256"},{"internalType":"uint256","name":"totalProfix","type":"uint256"},{"internalType":"uint256","name":"latestWithdrawTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]

60a060405273013a0fe4a79afff253fd0acbdc891384ebbd063060809081526200002e9060009060016200032b565b50604080516020810190915273013a0fe4a79afff253fd0acbdc891384ebbd063081526200006090600190816200032b565b506906fceeff6681b2a000006007553480156200007c57600080fd5b50604051620010c1380380620010c183398181016040526040811015620000a257600080fd5b5080516020909101516001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805433600160a060020a0319918216811790925560008054938401815580527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639092018054831690911790556002805461ff0019169055600e80548216600160a060020a0380861691909117909155600f805490921690831617905562000187620151806200016d640100000000620001f1810204565b60089190600064010000000062000c776200021e82021704565b620001bc62015180620001a2640100000000620001f1810204565b600b9190600064010000000062000c776200021e82021704565b620001cf640100000000620001f1810204565b600555620001e5640100000000620001f1810204565b60065550620003bc9050565b6000620151806200020a64010000000062000268810204565b816200021257fe5b04620151800290505b90565b6000838484816200022b57fe5b9587556001808801805491820181556000908152602080822093909804939093029101819055815260029095019093526040909320929092555050565b600254600090620100009004600160a060020a03161562000323576002809054906101000a9004600160a060020a0316600160a060020a0316635ce845a96040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015620002ed57600080fd5b505afa15801562000302573d6000803e3d6000fd5b505050506040513d60208110156200031957600080fd5b505190506200021b565b50426200021b565b82805482825590600052602060002090810192821562000383579160200282015b82811115620003835782518254600160a060020a031916600160a060020a039091161782556020909201916001909101906200034c565b506200039192915062000395565b5090565b6200021b91905b8082111562000391578054600160a060020a03191681556001016200039c565b610cf580620003cc6000396000f3fe608060405234801561001057600080fd5b5060043610610107576000357c0100000000000000000000000000000000000000000000000000000000900480637391cca2116100a9578063ce447c6511610083578063ce447c65146102ab578063dd021ff814610304578063df07b60e1461035c578063ec715a311461036457610107565b80637391cca21461023d5780637805862f1461027057806383fce35a1461027857610107565b80634cc1fc07116100e55780634cc1fc07146101cb5780635261f2dc146101fc5780635c975abb146102195780636985a0221461023557610107565b8063042132c1146101495780633355ab631461017e578063476190fd14610198575b60035473ffffffffffffffffffffffffffffffffffffffff163660008037600080366000846127105a03f43d806000803e81801561014457816000f35b816000fd5b61017c6004803603602081101561015f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661036c565b005b6101866105be565b60408051918252519081900360200190f35b61017c600480360360208110156101ae57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166105c4565b6101d3610706565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101d36004803603602081101561021257600080fd5b5035610722565b610221610756565b604080519115158252519081900360200190f35b61017c610764565b61017c6004803603602081101561025357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610881565b61017c6109a7565b61017c6004803603602081101561028e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ac0565b6102de600480360360208110156102c157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610bd5565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61030c610bfc565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610348578181015183820152602001610330565b505050509050019250505060405180910390f35b610186610c6b565b610186610c71565b6000805b6001548110156103d7573373ffffffffffffffffffffffffffffffffffffffff166001828154811061039e57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156103cf57600191506103d7565b600101610370565b508061044457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f744175746865720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b6000548110156105b8578273ffffffffffffffffffffffffffffffffffffffff166000828154811061047557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156105b05760005b6000546000190181101561053a57600081600101815481106104be57fe5b6000918252602082200154815473ffffffffffffffffffffffffffffffffffffffff9091169190839081106104ef57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff929092169190911790556001016104a0565b5060008054600019810190811061054d57fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff1916905580548061057b57fe5b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff19169055019055506105ba565b600101610447565b505b5050565b60065481565b6000805b60015481101561062f573373ffffffffffffffffffffffffffffffffffffffff16600182815481106105f657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610627576001915061062f565b6001016105c8565b508061069c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f744175746865720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001818154811061072f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600254610100900460ff1681565b6000805b6001548110156107cf573373ffffffffffffffffffffffffffffffffffffffff166001828154811061079657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156107c757600191506107cf565b600101610768565b508061083c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f744175746865720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6002805461ff0019166101001790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a150565b6000805b6001548110156108ec573373ffffffffffffffffffffffffffffffffffffffff16600182815481106108b357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156108e457600191506108ec565b600101610885565b508061095957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f744175746865720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b506002805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b6000805b600154811015610a12573373ffffffffffffffffffffffffffffffffffffffff16600182815481106109d957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610a0a5760019150610a12565b6001016109ab565b5080610a7f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f744175746865720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6002805461ff00191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a150565b6000805b600154811015610b2b573373ffffffffffffffffffffffffffffffffffffffff1660018281548110610af257fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610b235760019150610b2b565b600101610ac4565b5080610b9857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f744175746865720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b506003805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60046020526000908152604090208054600182015460028301546003909301549192909184565b60606000805480602002602001604051908101604052809291908181526020018280548015610c6157602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c36575b5050505050905090565b60055481565b60075481565b600083848481610c8357fe5b958755600180880180549182018155600090815260208082209390980493909302910181905581526002909501909352604090932092909255505056fea265627a7a723158202e6ae939d7393c02ab32739d67287bf1fd4c118e51b5ea585de654ec5a09f26664736f6c634300050c0032000000000000000000000000b1bcc3bacbbbd02f02f9c1335f79c9dd98684905000000000000000000000000c6b812b423bdae60cce7fc7e503009b1cfcfbae6

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b1bcc3bacbbbd02f02f9c1335f79c9dd98684905000000000000000000000000c6b812b423bdae60cce7fc7e503009b1cfcfbae6

-----Decoded View---------------
Arg [0] : erc20Inc (address): 0xb1bcc3bacbbbd02f02f9c1335f79c9dd98684905
Arg [1] : rlsInc (address): 0xc6b812b423bdae60cce7fc7e503009b1cfcfbae6

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b1bcc3bacbbbd02f02f9c1335f79c9dd98684905
Arg [1] : 000000000000000000000000c6b812b423bdae60cce7fc7e503009b1cfcfbae6


Deployed ByteCode Sourcemap

18745:961:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18745:961:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8041:17;;;;8116:14;8018:20;;8093:38;8333:1;8313;8280:14;8258:3;8227:12;8202:5;8195;8191:17;8160:189;8376:16;8427:5;8424:1;8421;8406:27;8454:7;8479:65;;;;8603:5;8600:1;8593:16;8479:65;8519:5;8516:1;8509:16;4262:479;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4262:479:0;;;;:::i;:::-;;19038:32;;;:::i;:::-;;;;;;;;;;;;;;;;4149:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4149:105:0;;;;:::i;7831:32::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3769:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3769:104:0;;:::i;6704:18::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;6997:101;;;:::i;7664:125::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7664:125:0;;;;:::i;7106:106::-;;;:::i;7872:107::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7872:107:0;;;;:::i;18940:58::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18940:58:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4036:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4036:105:0;;;;;;;;;;;;;;;;;19007:24;;;:::i;19077:41::-;;;:::i;4262:479::-;4782:10;;4811:188;4835:15;:22;4831:26;;4811:188;;;4905:10;4883:32;;:15;4899:1;4883:18;;;;;;;;;;;;;;;;;;;;:32;4879:109;;;4944:4;4936:12;;4967:5;;4879:109;4859:3;;4811:188;;;;5017:5;5009:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4339:9;4334:400;4358:12;:19;4354:23;;4334:400;;;4422:6;4403:25;;:12;4416:1;4403:15;;;;;;;;;;;;;;;;;;;;:25;4399:324;;;4454:9;4449:134;4473:12;:19;-1:-1:-1;;4473:23:0;4469:27;;4449:134;;;4544:12;4557:1;4561;4557:5;4544:19;;;;;;;;;;;;;;;;;4526:15;;4544:19;;;;;;4539:1;;4526:15;;;;;;;;;;;;;;;:37;;-1:-1:-1;;4526:37:0;;;;;;;;;;;;-1:-1:-1;4498:3:0;4449:134;;;-1:-1:-1;4608:12:0;4621:19;;-1:-1:-1;;4621:23:0;;;4608:37;;;;;;;;;;;;;;4601:44;;-1:-1:-1;;4601:44:0;;;4664:18;;;;;;;;;;;;;;;;-1:-1:-1;;4664:18:0;;;;;-1:-1:-1;;4664:18:0;;;;;;-1:-1:-1;4701:7:0;;4399:324;4379:3;;4334:400;;;;5047:1;4262:479;;:::o;19038:32::-;;;;:::o;4149:105::-;4782:10;;4811:188;4835:15;:22;4831:26;;4811:188;;;4905:10;4883:32;;:15;4899:1;4883:18;;;;;;;;;;;;;;;;;;;;:32;4879:109;;;4944:4;4936:12;;4967:5;;4879:109;4859:3;;4811:188;;;;5017:5;5009:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4221:12:0;27:10:-1;;39:1;23:18;;45:23;;4221:25:0;;;;;;;-1:-1:-1;;4221:25:0;;;;;;;;;;;;4149:105::o;7831:32::-;;;;;;:::o;3769:104::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3769:104:0;:::o;6704:18::-;;;;;;;;;:::o;6997:101::-;4782:10;;4811:188;4835:15;:22;4831:26;;4811:188;;;4905:10;4883:32;;:15;4899:1;4883:18;;;;;;;;;;;;;;;;;;;;:32;4879:109;;;4944:4;4936:12;;4967:5;;4879:109;4859:3;;4811:188;;;;5017:5;5009:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7043:6;:13;;-1:-1:-1;;7043:13:0;;;;;7072:18;;;7079:10;7072:18;;;;;;;;;;;;;6997:101;:::o;7664:125::-;4782:10;;4811:188;4835:15;:22;4831:26;;4811:188;;;4905:10;4883:32;;:15;4899:1;4883:18;;;;;;;;;;;;;;;;;;;;:32;4879:109;;;4944:4;4936:12;;4967:5;;4879:109;4859:3;;4811:188;;;;5017:5;5009:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7740:19:0;:41;;;;;;;;;;;;;;;;;;7664:125::o;7106:106::-;4782:10;;4811:188;4835:15;:22;4831:26;;4811:188;;;4905:10;4883:32;;:15;4899:1;4883:18;;;;;;;;;;;;;;;;;;;;:32;4879:109;;;4944:4;4936:12;;4967:5;;4879:109;4859:3;;4811:188;;;;5017:5;5009:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7154:6;:14;;-1:-1:-1;;7154:14:0;;;7184:20;;;7193:10;7184:20;;;;;;;;;;;;;7106:106;:::o;7872:107::-;4782:10;;4811:188;4835:15;:22;4831:26;;4811:188;;;4905:10;4883:32;;:15;4899:1;4883:18;;;;;;;;;;;;;;;;;;;;:32;4879:109;;;4944:4;4936:12;;4967:5;;4879:109;4859:3;;4811:188;;;;5017:5;5009:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7947:17:0;:24;;-1:-1:-1;;7947:24:0;;;;;;;;;;;;7872:107::o;18940:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4036:105::-;4085:16;4121:12;4114:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4036:105;:::o;19007:24::-;;;;:::o;19077:41::-;;;;:::o;209:306::-;349:10;379:8;367;363:1;:12;;;;;400:34;;;445:13;;;;27:10:-1;;23:18;;;45:23;;400::0;445:22;;;;;;;363:12;;;;362:25;;;;445:22;;;;;478:21;;:17;;;;:21;;;;;;;:29;;;;-1:-1:-1;;209:306:0:o

Swarm Source

bzzr://2e6ae939d7393c02ab32739d67287bf1fd4c118e51b5ea585de654ec5a09f266
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading