Contract 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b04

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x02b8874acc6025cabd660e418029acf8adf87ac653be24e85bfad0cb0137e118Settlement(pending)2022-07-04 0:04:222 secs ago0x7fba6bcd9686e064806d47143172389f37e2de14 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x30ed70af721155644df7de09e0cedefb614e42980b1d1e6bc53cfdcef357c305Settlement(pending)2022-07-04 0:04:222 secs ago0x7fba6bcd9686e064806d47143172389f37e2de14 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0xfc84ac7f92694789020100bf4f5251dae690a13b7b077d062cfe00d9262c06b7Settlement(pending)2022-07-04 0:04:222 secs ago0x30c2bc786e2c5a10ca6135eaddb7fb34d4ca056c IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x80292d076cec070821496813006c3b158c71b54ec67dfd671edc68359bb3a9bcSettlement(pending)2022-07-04 0:04:222 secs ago0x30c2bc786e2c5a10ca6135eaddb7fb34d4ca056c IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x2244ec6c80cf35777502f1078326b607e687a0a6cea6fe5c2e9e5bed17e603f3Settlement(pending)2022-07-04 0:04:222 secs ago0xb82d67b09958ecf998acbac93074219dfafb19f1 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x47bc03ff8b485c9987063d72fd901122725a54d2bea656349dd3b0e26274a0ffSettlement(pending)2022-07-04 0:04:222 secs ago0x120460a9ea36174fd6297ba266f1ce3624cda5d9 IN 0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT(Pending)
0x569d86a438ea34177c54983cf6ca214aaf7e23cceea4747a03e7366fd0dffd9dBurn166660632022-07-03 23:52:0112 mins ago0xf2faaa63f5019c42dcc986e99e5db4909df03bf1 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029394362.7
0xd1e7d8d6a4c546c26ea0a6ffd371661aa9515a7402afc6fe35689ea0f65bf6aeSettlement166660572022-07-03 23:51:4312 mins ago0xf2faaa63f5019c42dcc986e99e5db4909df03bf1 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000238623562.38
0x6ef3f7860e775f7ee1194fa5807794169921f3bc78d33cc6a7fde5605f5dc05bSettlement166660002022-07-03 23:48:5215 mins ago0x57cd36367fa0830c952dcd1bfe3aa029366b4cf5 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00088852952.7
0xab7660dd5a3f7586f50880283db313673f291d3e7076edfac117fcc6dba26d26Burn To166659212022-07-03 23:44:5519 mins ago0x22e1cf75a45fc7ed40f7d327c79c22c0a9cb37ab IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000245963252.25
0x5438fa49f5097e9fed8d85bcc89c48080134b2844731410fbe1f4344f541723bBurn To166658772022-07-03 23:42:4321 mins ago0x00d7a96e7ac32decc2118430329067ec831a6334 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.0006810752.25
0x58108bbe4551ef0ace547766511911bd6c3331e2ed2dcf065aac80266703cfb4Burn To166657282022-07-03 23:35:1629 mins ago0x5fedc20d56de01b0af66fb7040304f27b49232de IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029515592.7
0x3650a8fa491f2e70e29b69cafc27949666376ecedd0f18744cfcb5a535b3c8fbBurn To166657022022-07-03 23:33:5830 mins ago0x5fedc20d56de01b0af66fb7040304f27b49232de IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000245963252.25
0x556e7f6bce54f4ee960cf806ecf89a9a4594a2f6471a9460e30ddcab0f5cc4c7Burn To166656752022-07-03 23:32:3731 mins ago0x5fedc20d56de01b0af66fb7040304f27b49232de IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000245990252.25
0x33a4bca93c7237375ab2e9d42f5040eb58d5bdd601c5c04918ca16d1a25fbd46Burn To166656482022-07-03 23:31:1633 mins ago0xaac091b8a61b7a2eb4d3cfa7832c6e27e28fa426 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00029518832.7
0x0148b771eda1a4bd776b2bb81dcf07c4754755221844f65a4fcaaa9dc87f166aBurn To166656172022-07-03 23:29:4334 mins ago0xaac091b8a61b7a2eb4d3cfa7832c6e27e28fa426 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000699531752.25
0xf6490f822b8df3bcc65c1f308bf1b6a4a58cae073adf580cc4ff9ab533ee96a0Burn To166655862022-07-03 23:28:1036 mins ago0xddd098b948233a73dd23ef564c90091c590f60e2 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00071354252.25
0x0fb61aa8e6bd1d3c7cbd8c20c7c7d274169cd3aa980fc54a70221df384e8b8d0Burn To166655642022-07-03 23:27:0437 mins ago0xdf5d5bef98ccfc3f4ac043df410606a27ae491cf IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00071804252.25
0x5841fea30a038db8dc78c21f59da0059879db72fa868e393e824399e5b7c1df1Burn To166655402022-07-03 23:25:5238 mins ago0x86322feb25a6e16030686031d0ebf5aa31ad7aa1 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000770474252.25
0x5f3fde647a22ab4bd3d56570d6d561a0ab43a635551c9de607a926ffb5156595Burn To166655142022-07-03 23:24:3439 mins ago0x6e7a612a09b7347719a329e093e8804c38e55c9c IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00071801552.25
0x140b43666bea7067564f6c9ac3440856312114ca355371e8d979544a58e71310Settlement166655042022-07-03 23:24:0440 mins ago0x6e7a612a09b7347719a329e093e8804c38e55c9c IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00061908752.25
0x1afee88c5d62df215180f5e41985c6c18452e572ed06acbb023f924ce34728fcBurn To166654872022-07-03 23:23:1341 mins ago0x91abbed902a8695c6fd7a95dce7aea72140c7194 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000245963252.25
0xbff68add7857b0180d72e8e6578ee14acec6efb6cd74711c19fb21cbc13599daBurn To166654652022-07-03 23:22:0742 mins ago0xbb62442c1d644b0b4a8ee8649ede9f1710bab5fd IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000250363412.29
0xcf6a08cde4a8d073315dd3e62570b888fb782f687b03996e939613f7943e2454Settlement166654592022-07-03 23:21:4942 mins ago0xbb62442c1d644b0b4a8ee8649ede9f1710bab5fd IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.000645860152.29
0xe63e4839c4cdd004f2323c5994b91beb590875833cf55dae7b5fffccfda5520dBurn166652952022-07-03 23:13:3750 mins ago0x55f869a6fd0ed6d92b288f30ede56fca44c2c508 IN  0x5b18f41ac7ac7d756b1374a8e7c5ce46450a7b040 HT0.00027222.5
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

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