ETH Price: $2,124.08 (-10.60%)

Contract

0xF142f1c7BaDc95FB438302D7Cf0a5Db426f8f779
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Auto Transfer93188602020-01-20 14:22:211865 days ago1579530141IN
0xF142f1c7...426f8f779
0 ETH0.000842133
Insert Schedules93188432020-01-20 14:18:311865 days ago1579529911IN
0xF142f1c7...426f8f779
0 ETH0.001176163
Insert Schedules93188372020-01-20 14:17:491865 days ago1579529869IN
0xF142f1c7...426f8f779
0 ETH0.001176163
Insert Schedules93188212020-01-20 14:13:471865 days ago1579529627IN
0xF142f1c7...426f8f779
0 ETH0.001176163
Auto Transfer93187202020-01-20 13:53:011865 days ago1579528381IN
0xF142f1c7...426f8f779
0 ETH0.000864633
Auto Transfer84007422019-08-22 14:54:312016 days ago1566485671IN
0xF142f1c7...426f8f779
0 ETH0.000817977
Auto Transfer82719882019-08-02 15:12:382036 days ago1564758758IN
0xF142f1c7...426f8f779
0 ETH0.000214531
Insert Schedules77306932019-05-10 4:41:472121 days ago1557463307IN
0xF142f1c7...426f8f779
0 ETH0.001593912
Insert Schedules77304862019-05-10 3:50:202121 days ago1557460220IN
0xF142f1c7...426f8f779
0 ETH0.001593912
Insert Schedules77303152019-05-10 3:13:142121 days ago1557457994IN
0xF142f1c7...426f8f779
0 ETH0.001593912
Auto Transfer77298082019-05-10 1:17:532121 days ago1557451073IN
0xF142f1c7...426f8f779
0 ETH0.000237922
Auto Transfer76241182019-04-23 13:37:452137 days ago1556026665IN
0xF142f1c7...426f8f779
0 ETH0.000342743
Auto Transfer74898232019-04-02 15:52:502158 days ago1554220370IN
0xF142f1c7...426f8f779
0 ETH0.00023112
Auto Transfer72662232019-02-25 14:23:082194 days ago1551104588IN
0xF142f1c7...426f8f779
0 ETH0.0031984515
Auto Transfer71478922019-01-30 7:55:492221 days ago1548834949IN
0xF142f1c7...426f8f779
0 ETH0.000477834
Insert Schedules71478792019-01-30 7:50:402221 days ago1548834640IN
0xF142f1c7...426f8f779
0 ETH0.003187824
Insert Schedules71478712019-01-30 7:47:552221 days ago1548834475IN
0xF142f1c7...426f8f779
0 ETH0.003187824
Insert Schedules71478652019-01-30 7:46:312221 days ago1548834391IN
0xF142f1c7...426f8f779
0 ETH0.003187824
Remove Schedules71478592019-01-30 7:44:392221 days ago1548834279IN
0xF142f1c7...426f8f779
0 ETH0.000364563
Remove Schedules71478592019-01-30 7:44:392221 days ago1548834279IN
0xF142f1c7...426f8f779
0 ETH0.000364563
Remove Schedules71478542019-01-30 7:43:252221 days ago1548834205IN
0xF142f1c7...426f8f779
0 ETH0.000364563
Auto Transfer71478162019-01-30 7:31:342221 days ago1548833494IN
0xF142f1c7...426f8f779
0 ETH0.000403373
Insert Schedules71477972019-01-30 7:25:372221 days ago1548833137IN
0xF142f1c7...426f8f779
0 ETH0.00238513
Insert Schedules71477912019-01-30 7:23:332221 days ago1548833013IN
0xF142f1c7...426f8f779
0 ETH0.00238513
Insert Schedules71477852019-01-30 7:22:142221 days ago1548832934IN
0xF142f1c7...426f8f779
0 ETH0.00238513
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TrioPeriodicTransfer

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-06-19
*/

pragma solidity ^0.4.21;
contract TripioToken {
    function transfer(address _to, uint256 _value) public returns (bool);
    function balanceOf(address who) public view returns (uint256);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
}
/**
 * Owned contract
 */
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed from, address indexed to);

    function Owned() public {
        owner = msg.sender;
    }

    /**
     * Only the owner of contract
     */ 
    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    /**
     * transfer the ownership to other
     * - Only the owner can operate
     */ 
    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    /** 
     * Accept the ownership from last owner
     */ 
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}
contract TPTData {
    address public trioContract;

    struct Contributor {
        uint256 next;
        uint256 prev;
        uint256 cid;
        address contributor;
        bytes32 name;
    }
    
    struct ContributorChain {
        uint256 balance;
        uint256 head;
        uint256 tail;
        uint256 index;
        mapping(uint256 => Contributor) nodes; // cid -> Contributor
    }

    struct Schedule {
        uint256 next;
        uint256 prev;
        uint256 sid;
        uint32 timestamp;
        uint256 trio;
    }

    struct ScheduleChain {
        uint256 balance;
        uint256 head;
        uint256 tail;
        uint256 index;
        mapping (uint256 => Schedule) nodes;
    }

    // The contributors chain
    ContributorChain contributorChain;

    // The schedules chains
    mapping (uint256 => ScheduleChain) scheduleChains;

    /**
     * The contributor is valid
     */
    modifier contributorValid(uint256 _cid) {
        require(contributorChain.nodes[_cid].cid == _cid);
        _;
    }

    /**
     * The schedule is valid
     */
    modifier scheduleValid(uint256 _cid, uint256 _sid) {
        require(scheduleChains[_cid].nodes[_sid].sid == _sid);
        _;
    }
}
contract TPTContributors is TPTData, Owned {
    function TPTContributors() public {
        
    }

    /**
     * This emits when contributors are added
     */
    event ContributorsAdded(address[] indexed _contributors);

    /**
     * This emits when contributors are removed
     */
    event ContributorsRemoved(uint256[] indexed _cids);


    /**
     * Record `_contributor`
     */
    function _pushContributor(address _contributor, bytes32 _name) internal {
        require(_contributor != address(0));
        uint256 prev = 0;
        uint256 cid = contributorChain.index + 1;
        if (contributorChain.balance == 0) {
            contributorChain = ContributorChain(1, cid, cid, cid);
            contributorChain.nodes[cid] = Contributor(0, 0, cid, _contributor, _name);
        } else {
            contributorChain.index = cid;
            prev = contributorChain.tail;
            contributorChain.balance++;

            contributorChain.nodes[cid] = Contributor(0, prev, cid, _contributor, _name);
            contributorChain.nodes[prev].next = cid;
            contributorChain.tail = cid;
        }
    }

    /**
     * Remove contributor by `_cid`
     */
    function _removeContributor(uint _cid) internal contributorValid(_cid) {
        require(_cid != 0);
        uint256 next = 0;
        uint256 prev = 0;
        require(contributorChain.nodes[_cid].cid == _cid);
        next = contributorChain.nodes[_cid].next;
        prev = contributorChain.nodes[_cid].prev;
        if (next == 0) {
            if(prev != 0) {
                contributorChain.nodes[prev].next = 0;
                delete contributorChain.nodes[_cid];
                contributorChain.tail = prev;
            }else {
                delete contributorChain.nodes[_cid];
                delete contributorChain;
            }
        } else {
            if (prev == 0) {
                contributorChain.head = next;
                contributorChain.nodes[next].prev = 0;
                delete contributorChain.nodes[_cid];
            } else {
                contributorChain.nodes[prev].next = next;
                contributorChain.nodes[next].prev = prev;
                delete contributorChain.nodes[_cid];
            }
        }
        if(contributorChain.balance > 0) {
            contributorChain.balance--;
        }
    }

    /**
     * Record `_contributors`
     * @param _contributors The contributor
     */
    function addContributors(address[] _contributors, bytes32[] _names) external onlyOwner {
        require(_contributors.length == _names.length && _contributors.length > 0);
        for(uint256 i = 0; i < _contributors.length; i++) {
            _pushContributor(_contributors[i], _names[i]);
        }

        // Event
        emit ContributorsAdded(_contributors);
    }

    /**
     * Remove contributor by `_cids`
     * @param _cids The contributor's ids
     */
    function removeContributors(uint256[] _cids) external onlyOwner {
        for(uint256 i = 0; i < _cids.length; i++) {
            _removeContributor(_cids[i]);
        }

        // Event
        emit ContributorsRemoved(_cids);
    }

    /**
     * Returns all the contributors
     * @return All the contributors
     */
    function contributors() public view returns(uint256[]) {
        uint256 count;
        uint256 index;
        uint256 next;
        index = 0;
        next = contributorChain.head;
        count = contributorChain.balance;
        if (count > 0) {
            uint256[] memory result = new uint256[](count);
            while(next != 0 && index < count) {
                result[index] = contributorChain.nodes[next].cid;
                next = contributorChain.nodes[next].next;
                index++;
            }
            return result;
        } else {
            return new uint256[](0);
        }
    }

    /**
     * Return the contributor by `_cid`
     * @return The contributor
     */
    function contributor(uint _cid) external view returns(address, bytes32) {
        return (contributorChain.nodes[_cid].contributor, contributorChain.nodes[_cid].name);
    }  
}
contract TPTSchedules is TPTData, Owned {
    function TPTSchedules() public {
        
    }

    /**
     * This emits when schedules are inserted
     */
    event SchedulesInserted(uint256 _cid);

    /**
     * This emits when schedules are removed
     */
    event SchedulesRemoved(uint _cid, uint256[] _sids);

    /**
     * Record TRIO transfer schedule to  `_contributor`
     * @param _cid The contributor
     * @param _timestamps The transfer timestamps
     * @param _trios The transfer trios
     */
    function insertSchedules(uint256 _cid, uint32[] _timestamps, uint256[] _trios) 
        external 
        onlyOwner 
        contributorValid(_cid) {
        require(_timestamps.length > 0 && _timestamps.length == _trios.length);
        for (uint256 i = 0; i < _timestamps.length; i++) {
            uint256 prev = 0;
            uint256 next = 0;
            uint256 sid = scheduleChains[_cid].index + 1;
            if (scheduleChains[_cid].balance == 0) {
                scheduleChains[_cid] = ScheduleChain(1, sid, sid, sid);
                scheduleChains[_cid].nodes[sid] = Schedule(0, 0, sid, _timestamps[i], _trios[i]);
            } else {
                scheduleChains[_cid].index = sid;
                scheduleChains[_cid].balance++;
                prev = scheduleChains[_cid].tail;
                while(scheduleChains[_cid].nodes[prev].timestamp > _timestamps[i] && prev != 0) {
                    prev = scheduleChains[_cid].nodes[prev].prev;
                }
                if (prev == 0) {
                    next = scheduleChains[_cid].head;
                    scheduleChains[_cid].nodes[sid] = Schedule(next, 0, sid, _timestamps[i], _trios[i]);
                    scheduleChains[_cid].nodes[next].prev = sid;
                    scheduleChains[_cid].head = sid;
                } else {
                    next = scheduleChains[_cid].nodes[prev].next;
                    scheduleChains[_cid].nodes[sid] = Schedule(next, prev, sid, _timestamps[i], _trios[i]);
                    scheduleChains[_cid].nodes[prev].next = sid;
                    if (next == 0) {
                        scheduleChains[_cid].tail = sid;
                    }else {
                        scheduleChains[_cid].nodes[next].prev = sid;
                    }
                }
            }
        }

        // Event
        emit SchedulesInserted(_cid);
    }

    /**
     * Remove schedule by `_cid` and `_sids`
     * @param _cid The contributor's id
     * @param _sids The schedule's ids
     */
    function removeSchedules(uint _cid, uint256[] _sids) 
        public 
        onlyOwner 
        contributorValid(_cid) {
        uint256 next = 0;
        uint256 prev = 0;
        uint256 sid;
        for (uint256 i = 0; i < _sids.length; i++) {
            sid = _sids[i];
            require(scheduleChains[_cid].nodes[sid].sid == sid);
            next = scheduleChains[_cid].nodes[sid].next;
            prev = scheduleChains[_cid].nodes[sid].prev;
            if (next == 0) {
                if(prev != 0) {
                    scheduleChains[_cid].nodes[prev].next = 0;
                    delete scheduleChains[_cid].nodes[sid];
                    scheduleChains[_cid].tail = prev;
                }else {
                    delete scheduleChains[_cid].nodes[sid];
                    delete scheduleChains[_cid];
                }
            } else {
                if (prev == 0) {
                    scheduleChains[_cid].head = next;
                    scheduleChains[_cid].nodes[next].prev = 0;
                    delete scheduleChains[_cid].nodes[sid];
                } else {
                    scheduleChains[_cid].nodes[prev].next = next;
                    scheduleChains[_cid].nodes[next].prev = prev;
                    delete scheduleChains[_cid].nodes[sid];
                }
            }
            if(scheduleChains[_cid].balance > 0) {
                scheduleChains[_cid].balance--;
            }   
        }

        // Event
        emit SchedulesRemoved(_cid, _sids);
    }

    /**
     * Return all the schedules of `_cid`
     * @param _cid The contributor's id 
     * @return All the schedules of `_cid`
     */
    function schedules(uint256 _cid) 
        public 
        contributorValid(_cid) 
        view 
        returns(uint256[]) {
        uint256 count;
        uint256 index;
        uint256 next;
        index = 0;
        next = scheduleChains[_cid].head;
        count = scheduleChains[_cid].balance;
        if (count > 0) {
            uint256[] memory result = new uint256[](count);
            while(next != 0 && index < count) {
                result[index] = scheduleChains[_cid].nodes[next].sid;
                next = scheduleChains[_cid].nodes[next].next;
                index++;
            }
            return result;
        } else {
            return new uint256[](0);
        }
    }

    /**
     * Return the schedule by `_cid` and `_sid`
     * @param _cid The contributor's id
     * @param _sid The schedule's id
     * @return The schedule
     */
    function schedule(uint256 _cid, uint256 _sid) 
        public
        scheduleValid(_cid, _sid) 
        view 
        returns(uint32, uint256) {
        return (scheduleChains[_cid].nodes[_sid].timestamp, scheduleChains[_cid].nodes[_sid].trio);
    }
}
contract TPTTransfer is TPTContributors, TPTSchedules {
    function TPTTransfer() public {
        
    }

    /**
     * This emits when transfer 
     */
    event AutoTransfer(address indexed _to, uint256 _trio);

    /**
     * This emits when 
     */
    event AutoTransferCompleted();

    /**
     * Withdraw TRIO TOKEN balance from contract account, the balance will transfer to the contract owner
     */
    function withdrawToken() external onlyOwner {
        TripioToken tripio = TripioToken(trioContract);
        uint256 tokens = tripio.balanceOf(address(this));
        tripio.transfer(owner, tokens);
    }

    /**
     * Auto Transfer All Schedules
     */
    function autoTransfer() external onlyOwner {
        // TRIO contract
        TripioToken tripio = TripioToken(trioContract);
        
        // All contributors
        uint256[] memory _contributors = contributors();
        for (uint256 i = 0; i < _contributors.length; i++) {
            // cid and contributor address
            uint256 _cid = _contributors[i];
            address _contributor = contributorChain.nodes[_cid].contributor;
            
            // All schedules
            uint256[] memory _schedules = schedules(_cid);
            for (uint256 j = 0; j < _schedules.length; j++) {
                // sid, trio and timestamp
                uint256 _sid = _schedules[j];
                uint256 _trio = scheduleChains[_cid].nodes[_sid].trio;
                uint256 _timestamp = scheduleChains[_cid].nodes[_sid].timestamp;

                // hasn't arrived
                if(_timestamp > now) {
                    break;
                }
                // Transfer TRIO to contributor
                tripio.transfer(_contributor, _trio);

                // Remove schedule of contributor
                uint256[] memory _sids = new uint256[](1);
                _sids[0] = _sid;
                removeSchedules(_cid, _sids);
                emit AutoTransfer(_contributor, _trio);
            }
        }

        emit AutoTransferCompleted();
    }

    /**
     * Is there any transfer in schedule
     */
    function totalTransfersInSchedule() external view returns(uint256,uint256) {
        // All contributors
        uint256[] memory _contributors = contributors();
        uint256 total = 0;
        uint256 amount = 0;
        for (uint256 i = 0; i < _contributors.length; i++) {
            // cid and contributor address
            uint256 _cid = _contributors[i];            
            // All schedules
            uint256[] memory _schedules = schedules(_cid);
            for (uint256 j = 0; j < _schedules.length; j++) {
                // sid, trio and timestamp
                uint256 _sid = _schedules[j];
                uint256 _timestamp = scheduleChains[_cid].nodes[_sid].timestamp;
                if(_timestamp < now) {
                    total++;
                    amount += scheduleChains[_cid].nodes[_sid].trio;
                }
            }
        }
        return (total,amount);
    }
}

contract TrioPeriodicTransfer is TPTTransfer {
    function TrioPeriodicTransfer(address _trio) public {
        trioContract = _trio;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[],"name":"autoTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cid","type":"uint256"},{"name":"_sid","type":"uint256"}],"name":"schedule","outputs":[{"name":"","type":"uint32"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTransfersInSchedule","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cid","type":"uint256"},{"name":"_sids","type":"uint256[]"}],"name":"removeSchedules","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cid","type":"uint256"}],"name":"contributor","outputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contributors","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cid","type":"uint256"},{"name":"_timestamps","type":"uint32[]"},{"name":"_trios","type":"uint256[]"}],"name":"insertSchedules","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cid","type":"uint256"}],"name":"schedules","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cids","type":"uint256[]"}],"name":"removeContributors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contributors","type":"address[]"},{"name":"_names","type":"bytes32[]"}],"name":"addContributors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"trioContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_trio","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_trio","type":"uint256"}],"name":"AutoTransfer","type":"event"},{"anonymous":false,"inputs":[],"name":"AutoTransferCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_cid","type":"uint256"}],"name":"SchedulesInserted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_cid","type":"uint256"},{"indexed":false,"name":"_sids","type":"uint256[]"}],"name":"SchedulesRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_contributors","type":"address[]"}],"name":"ContributorsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_cids","type":"uint256[]"}],"name":"ContributorsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052341561000f57600080fd5b6040516020806118ba8339810160405280805160078054600160a060020a03338116600160a060020a03199283161790925560008054929093169116179055505061185b8061005f6000396000f3006060604052600436106100cc5763ffffffff60e060020a6000350416630d342cab81146100d15780631d9b1d6f146100e6578063335b496e1461011e5780633d532bde1461014957806365158b3b1461019d5780636e7e3b2b146101d557806379ba50971461023b5780638da5cb5b1461024e578063af01866d1461027d578063bdc6d9ab146102ab578063beda86b9146102c1578063ca628c78146102df578063cd9b2f05146102f2578063d23e09f51461031c578063d4ee1d901461032f578063f2fde38b14610342575b600080fd5b34156100dc57600080fd5b6100e4610361565b005b34156100f157600080fd5b6100ff6004356024356105ab565b60405163ffffffff909216825260208201526040908101905180910390f35b341561012957600080fd5b610131610612565b60405191825260208201526040908101905180910390f35b341561015457600080fd5b6100e46004803590604460248035908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061071e95505050505050565b34156101a857600080fd5b6101b3600435610a26565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156101e057600080fd5b6101e8610a4d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561022757808201518382015260200161020f565b505050509050019250505060405180910390f35b341561024657600080fd5b6100e4610b27565b341561025957600080fd5b610261610ba8565b604051600160a060020a03909116815260200160405180910390f35b341561028857600080fd5b6100e4600480359060248035808201929081013591604435908101910135610bb7565b34156102b657600080fd5b6101e8600435611094565b34156102cc57600080fd5b6100e460048035602481019101356111ba565b34156102ea57600080fd5b6100e4611258565b34156102fd57600080fd5b6100e46024600480358281019290820135918135918201910135611359565b341561032757600080fd5b610261611435565b341561033a57600080fd5b610261611444565b341561034d57600080fd5b6100e4600160a060020a0360043516611453565b600061036b61181d565b600080600061037861181d565b60008060008061038661181d565b60075433600160a060020a039081169116146103a157600080fd5b600054600160a060020a03169a506103b7610a4d565b9950600098505b8951891015610572578989815181106103d357fe5b90602001906020020151600081815260056020526040902060030154909850600160a060020a0316965061040688611094565b9550600094505b85518510156105675785858151811061042257fe5b906020019060200201516000898152600660209081526040808320848452600490810190925290912090810154600390910154919550935063ffffffff1691504282111561046f57610567565b8a600160a060020a031663a9059cbb888560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156104c357600080fd5b5af115156104d057600080fd5b505050604051805190505060016040518059106104ea5750595b90808252806020026020018201604052509050838160008151811061050b57fe5b6020908102909101015261051f888261071e565b86600160a060020a03167f2d2226328619f084c62fc937398f719670d1b9cfaea5ad83e6fce6ed930d743c8460405190815260200160405180910390a260019094019361040d565b6001909801976103be565b7f865265ae79513b76d60178379d89f02c687f9e8e6984eac5044f101b47b22f3160405160405180910390a15050505050505050505050565b600082815260066020908152604080832084845260040190915281206002015481908490849081146105dc57600080fd5b5050506000928352506006602090815260408084209284526004928301909152909120600381015491015463ffffffff90911691565b60008061061d61181d565b60008060008061062b61181d565b6000806000610638610a4d565b98506000975060009650600095505b885186101561070d5788868151811061065c57fe5b90602001906020020151945061067185611094565b9350600092505b83518310156107025783838151811061068d57fe5b90602001906020020151600086815260066020908152604080832084845260040190915290206003015490925063ffffffff169050428110156106f75760008581526006602090815260408083208584526004908101909252909120015460019098019796909601955b600190920191610678565b600190950194610647565b509599949850939650505050505050565b60075460009081908190819033600160a060020a0390811691161461074257600080fd5b6000868152600560205260409020600201548690811461076157600080fd5b6000945060009350600091505b85518210156109a15785828151811061078357fe5b90602001906020020151600088815260066020908152604080832084845260040190915290206002015490935083146107bb57600080fd5b60008781526006602090815260408083208684526004019091529020805460019091015490955093508415156108b357831561084e5760008781526006602081815260408084208885526004808201845282862086905588865291852085815560018101869055600280820187905560038201805463ffffffff191690559201859055938b9052919052018490556108ae565b600087815260066020818152604080842087855260048082018452918520858155600180820187905560028083018890556003808401805463ffffffff19169055929094018790558d875294909352848155928301849055820183905501555b61096a565b83151561091257600087815260066020908152604080832060018082018a9055898552600491820190935281842083018490558684529083208381559182018390556002820183905560038201805463ffffffff19169055015561096a565b6000878152600660209081526040808320878452600490810190925280832088905587835280832060019081018890558684529083208381559081018390556002810183905560038101805463ffffffff1916905501555b600087815260066020526040812054111561099657600087815260066020526040902080546000190190555b60019091019061076e565b7f7132af95d18b04891532b629fc8c45faa21e6d89b93eda74706a461ae7d22f18878760405182815260406020820181815290820183818151815260200191508051906020019060200280838360005b83811015610a095780820151838201526020016109f1565b50505050905001935050505060405180910390a150505050505050565b60009081526005602052604090206003810154600490910154600160a060020a0390911691565b610a5561181d565b6000806000610a6261181d565b600254600154945060009350915082841115610afd5783604051805910610a865750595b908082528060200260200182016040525090505b8115801590610aa857508383105b15610af557600082815260056020526040902060020154818481518110610acb57fe5b60209081029091018101919091526000928352600590526040909120546001929092019190610a9a565b809450610b20565b6000604051805910610b0c5750595b908082528060200260200182016040525094505b5050505090565b60085433600160a060020a03908116911614610b4257600080fd5b600854600754600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36008805460078054600160a060020a0319908116600160a060020a03841617909155169055565b600754600160a060020a031681565b60075460009081908190819033600160a060020a03908116911614610bdb57600080fd5b60008981526005602052604090206002015489908114610bfa57600080fd5b600088118015610c0957508786145b1515610c1457600080fd5b600094505b878510156110555760008a81526006602052604081206003810154905491955085945060010192501515610d6157608060405190810160409081526001825260208083018590528183018590526060830185905260008d815260069091522081518155602082015181600101556040820151816002015560608201516003909101555060a06040519081016040528060008152602001600081526020018381526020018a8a888181101515610cca57fe5b9050602002013563ffffffff1663ffffffff1681526020018888888181101515610cf057fe5b6020908102929092013590925260008d8152600682526040808220878352600401909252209050815181556020820151816001015560408201518160020155606082015160038201805463ffffffff191663ffffffff9290921691909117905560808201516004909101555061104a565b60008a815260066020526040902060038101839055805460010181556002015493505b888886818110610d9057fe5b60008d81526006602090815260408083208a84526004018252909120600301549102929092013563ffffffff90811692169190911190508015610dd257508315155b15610e005760008a815260066020908152604080832096835260049096019052939093206001015492610d84565b831515610f0c5760008a8152600660205260409081902060010154935060a0905190810160405280848152602001600081526020018381526020018a8a888181101515610e4957fe5b9050602002013563ffffffff1663ffffffff1681526020018888888181101515610e6f57fe5b6020908102929092013590925260008d8152600682526040808220878352600401909252209050815181556020820151816001015560408201518160020155606082015160038201805463ffffffff191663ffffffff92909216919091179055608082015160049182015560008c8152600660208181526040808420898552948501825283206001908101889055928f905252018390555061104a565b60008a81526006602090815260408083208784526004019091529081902054935060a09051908101604052808481526020018581526020018381526020018a8a888181101515610f5857fe5b9050602002013563ffffffff1663ffffffff1681526020018888888181101515610f7e57fe5b6020908102929092013590925260008d8152600682526040808220878352600401909252209050815181556020820151816001015560408201518160020155606082015160038201805463ffffffff191663ffffffff92909216919091179055608082015160049182015560008c8152600660209081526040808320898452909301905220839055508215156110275760008a815260066020526040902060020182905561104a565b60008a815260066020908152604080832086845260040190915290206001018290555b600190940193610c19565b7f2440386194e8151787a0616bb3725430eedf255c119ee50992da415daf31eeab8a60405190815260200160405180910390a150505050505050505050565b61109c61181d565b60008060006110a961181d565b600086815260056020526040902060020154869081146110c857600080fd5b600087815260066020526040812060018101549054965090945092508385111561118d57846040518059106110fa5750595b908082528060200260200182016040525091505b821580159061111c57508484105b1561118557600087815260066020908152604080832086845260040190915290206002015482858151811061114d57fe5b60209081029091018101919091526000888152600682526040808220958252600490950190915292909220546001909301929161110e565b8195506111b0565b600060405180591061119c5750595b908082528060200260200182016040525095505b5050505050919050565b60075460009033600160a060020a039081169116146111d857600080fd5b5060005b81811015611207576111ff8383838181106111f357fe5b90506020020135611490565b6001016111dc565b82826040518083836020028082843782019150509250505060405180910390207fb143d5b2000a3fd522c0fa8a1377d3cfd60315bde4d72f846627aeacb529733360405160405180910390a2505050565b600754600090819033600160a060020a0390811691161461127857600080fd5b600054600160a060020a03169150816370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156112cb57600080fd5b5af115156112d857600080fd5b5050506040518051600754909250600160a060020a03808516925063a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561133e57600080fd5b5af1151561134b57600080fd5b505050604051805150505050565b60075460009033600160a060020a0390811691161461137757600080fd5b83821480156113865750600084115b151561139157600080fd5b5060005b838110156113e2576113da8585838181106113ac57fe5b90506020020135600160a060020a031684848481811015156113ca57fe5b9050602002013560001916611660565b600101611395565b84846040518083836020028082843782019150509250505060405180910390207f877d5206f988fb6bf19d1bada52bae5eeec8bbdec24ad9db2406b3ac905e03ce60405160405180910390a25050505050565b600054600160a060020a031681565b600854600160a060020a031681565b60075433600160a060020a0390811691161461146e57600080fd5b60088054600160a060020a031916600160a060020a0392909216919091179055565b6000818152600560205260408120600201548190839081146114b157600080fd5b8315156114bd57600080fd5b60008481526005602052604081206002015490935083925084146114e057600080fd5b6000848152600560205260409020805460019091015490935091508215156115a1578115611554576000828152600560205260408082208290558582528120818155600181018290556002810182905560038082018054600160a060020a031916905560049091019190915582905561159c565b60008481526005602052604081208181556001818101839055600280830184905560038084018054600160a060020a0319169055600493840185905591849055839055829055555b611643565b8115156115f65760028381556000848152600560205260408082206001908101839055878352908220828155908101829055918201819055600382018054600160a060020a0319169055600490910155611643565b600082815260056020526040808220859055848252808220600190810185905586835290822082815590810182905560028101829055600381018054600160a060020a0319169055600401555b600154600090111561165a57600180546000190190555b50505050565b600080600160a060020a038416151561167857600080fd5b505060045460018054600092909101901515611768576080604051908101604052806001815260200182815260200182815260200182815250600160008201518155602082015181600101556040820151816002015560608201516003909101555060a0604051908101604090815260008083526020808401829052828401859052600160a060020a03881660608501526080840187905284825260059052208151815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a039290921691909117905560808201516004909101555061165a565b60048190556003546001805481019055915060a0604051908101604090815260008083526020808401869052828401859052600160a060020a03881660608501526080840187905284825260059052208151815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a0392909216919091179055608082015160049190910155506000918252600560205260409091208190556003555050565b602060405190810160405260008152905600a165627a7a7230582023b28f949377710d9fbaaee0711860063109f2499274aaf2b7217b3309ffbc1f00290000000000000000000000008b40761142b9aa6dc8964e61d0585995425c3d94

Deployed Bytecode

0x6060604052600436106100cc5763ffffffff60e060020a6000350416630d342cab81146100d15780631d9b1d6f146100e6578063335b496e1461011e5780633d532bde1461014957806365158b3b1461019d5780636e7e3b2b146101d557806379ba50971461023b5780638da5cb5b1461024e578063af01866d1461027d578063bdc6d9ab146102ab578063beda86b9146102c1578063ca628c78146102df578063cd9b2f05146102f2578063d23e09f51461031c578063d4ee1d901461032f578063f2fde38b14610342575b600080fd5b34156100dc57600080fd5b6100e4610361565b005b34156100f157600080fd5b6100ff6004356024356105ab565b60405163ffffffff909216825260208201526040908101905180910390f35b341561012957600080fd5b610131610612565b60405191825260208201526040908101905180910390f35b341561015457600080fd5b6100e46004803590604460248035908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061071e95505050505050565b34156101a857600080fd5b6101b3600435610a26565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156101e057600080fd5b6101e8610a4d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561022757808201518382015260200161020f565b505050509050019250505060405180910390f35b341561024657600080fd5b6100e4610b27565b341561025957600080fd5b610261610ba8565b604051600160a060020a03909116815260200160405180910390f35b341561028857600080fd5b6100e4600480359060248035808201929081013591604435908101910135610bb7565b34156102b657600080fd5b6101e8600435611094565b34156102cc57600080fd5b6100e460048035602481019101356111ba565b34156102ea57600080fd5b6100e4611258565b34156102fd57600080fd5b6100e46024600480358281019290820135918135918201910135611359565b341561032757600080fd5b610261611435565b341561033a57600080fd5b610261611444565b341561034d57600080fd5b6100e4600160a060020a0360043516611453565b600061036b61181d565b600080600061037861181d565b60008060008061038661181d565b60075433600160a060020a039081169116146103a157600080fd5b600054600160a060020a03169a506103b7610a4d565b9950600098505b8951891015610572578989815181106103d357fe5b90602001906020020151600081815260056020526040902060030154909850600160a060020a0316965061040688611094565b9550600094505b85518510156105675785858151811061042257fe5b906020019060200201516000898152600660209081526040808320848452600490810190925290912090810154600390910154919550935063ffffffff1691504282111561046f57610567565b8a600160a060020a031663a9059cbb888560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156104c357600080fd5b5af115156104d057600080fd5b505050604051805190505060016040518059106104ea5750595b90808252806020026020018201604052509050838160008151811061050b57fe5b6020908102909101015261051f888261071e565b86600160a060020a03167f2d2226328619f084c62fc937398f719670d1b9cfaea5ad83e6fce6ed930d743c8460405190815260200160405180910390a260019094019361040d565b6001909801976103be565b7f865265ae79513b76d60178379d89f02c687f9e8e6984eac5044f101b47b22f3160405160405180910390a15050505050505050505050565b600082815260066020908152604080832084845260040190915281206002015481908490849081146105dc57600080fd5b5050506000928352506006602090815260408084209284526004928301909152909120600381015491015463ffffffff90911691565b60008061061d61181d565b60008060008061062b61181d565b6000806000610638610a4d565b98506000975060009650600095505b885186101561070d5788868151811061065c57fe5b90602001906020020151945061067185611094565b9350600092505b83518310156107025783838151811061068d57fe5b90602001906020020151600086815260066020908152604080832084845260040190915290206003015490925063ffffffff169050428110156106f75760008581526006602090815260408083208584526004908101909252909120015460019098019796909601955b600190920191610678565b600190950194610647565b509599949850939650505050505050565b60075460009081908190819033600160a060020a0390811691161461074257600080fd5b6000868152600560205260409020600201548690811461076157600080fd5b6000945060009350600091505b85518210156109a15785828151811061078357fe5b90602001906020020151600088815260066020908152604080832084845260040190915290206002015490935083146107bb57600080fd5b60008781526006602090815260408083208684526004019091529020805460019091015490955093508415156108b357831561084e5760008781526006602081815260408084208885526004808201845282862086905588865291852085815560018101869055600280820187905560038201805463ffffffff191690559201859055938b9052919052018490556108ae565b600087815260066020818152604080842087855260048082018452918520858155600180820187905560028083018890556003808401805463ffffffff19169055929094018790558d875294909352848155928301849055820183905501555b61096a565b83151561091257600087815260066020908152604080832060018082018a9055898552600491820190935281842083018490558684529083208381559182018390556002820183905560038201805463ffffffff19169055015561096a565b6000878152600660209081526040808320878452600490810190925280832088905587835280832060019081018890558684529083208381559081018390556002810183905560038101805463ffffffff1916905501555b600087815260066020526040812054111561099657600087815260066020526040902080546000190190555b60019091019061076e565b7f7132af95d18b04891532b629fc8c45faa21e6d89b93eda74706a461ae7d22f18878760405182815260406020820181815290820183818151815260200191508051906020019060200280838360005b83811015610a095780820151838201526020016109f1565b50505050905001935050505060405180910390a150505050505050565b60009081526005602052604090206003810154600490910154600160a060020a0390911691565b610a5561181d565b6000806000610a6261181d565b600254600154945060009350915082841115610afd5783604051805910610a865750595b908082528060200260200182016040525090505b8115801590610aa857508383105b15610af557600082815260056020526040902060020154818481518110610acb57fe5b60209081029091018101919091526000928352600590526040909120546001929092019190610a9a565b809450610b20565b6000604051805910610b0c5750595b908082528060200260200182016040525094505b5050505090565b60085433600160a060020a03908116911614610b4257600080fd5b600854600754600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36008805460078054600160a060020a0319908116600160a060020a03841617909155169055565b600754600160a060020a031681565b60075460009081908190819033600160a060020a03908116911614610bdb57600080fd5b60008981526005602052604090206002015489908114610bfa57600080fd5b600088118015610c0957508786145b1515610c1457600080fd5b600094505b878510156110555760008a81526006602052604081206003810154905491955085945060010192501515610d6157608060405190810160409081526001825260208083018590528183018590526060830185905260008d815260069091522081518155602082015181600101556040820151816002015560608201516003909101555060a06040519081016040528060008152602001600081526020018381526020018a8a888181101515610cca57fe5b9050602002013563ffffffff1663ffffffff1681526020018888888181101515610cf057fe5b6020908102929092013590925260008d8152600682526040808220878352600401909252209050815181556020820151816001015560408201518160020155606082015160038201805463ffffffff191663ffffffff9290921691909117905560808201516004909101555061104a565b60008a815260066020526040902060038101839055805460010181556002015493505b888886818110610d9057fe5b60008d81526006602090815260408083208a84526004018252909120600301549102929092013563ffffffff90811692169190911190508015610dd257508315155b15610e005760008a815260066020908152604080832096835260049096019052939093206001015492610d84565b831515610f0c5760008a8152600660205260409081902060010154935060a0905190810160405280848152602001600081526020018381526020018a8a888181101515610e4957fe5b9050602002013563ffffffff1663ffffffff1681526020018888888181101515610e6f57fe5b6020908102929092013590925260008d8152600682526040808220878352600401909252209050815181556020820151816001015560408201518160020155606082015160038201805463ffffffff191663ffffffff92909216919091179055608082015160049182015560008c8152600660208181526040808420898552948501825283206001908101889055928f905252018390555061104a565b60008a81526006602090815260408083208784526004019091529081902054935060a09051908101604052808481526020018581526020018381526020018a8a888181101515610f5857fe5b9050602002013563ffffffff1663ffffffff1681526020018888888181101515610f7e57fe5b6020908102929092013590925260008d8152600682526040808220878352600401909252209050815181556020820151816001015560408201518160020155606082015160038201805463ffffffff191663ffffffff92909216919091179055608082015160049182015560008c8152600660209081526040808320898452909301905220839055508215156110275760008a815260066020526040902060020182905561104a565b60008a815260066020908152604080832086845260040190915290206001018290555b600190940193610c19565b7f2440386194e8151787a0616bb3725430eedf255c119ee50992da415daf31eeab8a60405190815260200160405180910390a150505050505050505050565b61109c61181d565b60008060006110a961181d565b600086815260056020526040902060020154869081146110c857600080fd5b600087815260066020526040812060018101549054965090945092508385111561118d57846040518059106110fa5750595b908082528060200260200182016040525091505b821580159061111c57508484105b1561118557600087815260066020908152604080832086845260040190915290206002015482858151811061114d57fe5b60209081029091018101919091526000888152600682526040808220958252600490950190915292909220546001909301929161110e565b8195506111b0565b600060405180591061119c5750595b908082528060200260200182016040525095505b5050505050919050565b60075460009033600160a060020a039081169116146111d857600080fd5b5060005b81811015611207576111ff8383838181106111f357fe5b90506020020135611490565b6001016111dc565b82826040518083836020028082843782019150509250505060405180910390207fb143d5b2000a3fd522c0fa8a1377d3cfd60315bde4d72f846627aeacb529733360405160405180910390a2505050565b600754600090819033600160a060020a0390811691161461127857600080fd5b600054600160a060020a03169150816370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156112cb57600080fd5b5af115156112d857600080fd5b5050506040518051600754909250600160a060020a03808516925063a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561133e57600080fd5b5af1151561134b57600080fd5b505050604051805150505050565b60075460009033600160a060020a0390811691161461137757600080fd5b83821480156113865750600084115b151561139157600080fd5b5060005b838110156113e2576113da8585838181106113ac57fe5b90506020020135600160a060020a031684848481811015156113ca57fe5b9050602002013560001916611660565b600101611395565b84846040518083836020028082843782019150509250505060405180910390207f877d5206f988fb6bf19d1bada52bae5eeec8bbdec24ad9db2406b3ac905e03ce60405160405180910390a25050505050565b600054600160a060020a031681565b600854600160a060020a031681565b60075433600160a060020a0390811691161461146e57600080fd5b60088054600160a060020a031916600160a060020a0392909216919091179055565b6000818152600560205260408120600201548190839081146114b157600080fd5b8315156114bd57600080fd5b60008481526005602052604081206002015490935083925084146114e057600080fd5b6000848152600560205260409020805460019091015490935091508215156115a1578115611554576000828152600560205260408082208290558582528120818155600181018290556002810182905560038082018054600160a060020a031916905560049091019190915582905561159c565b60008481526005602052604081208181556001818101839055600280830184905560038084018054600160a060020a0319169055600493840185905591849055839055829055555b611643565b8115156115f65760028381556000848152600560205260408082206001908101839055878352908220828155908101829055918201819055600382018054600160a060020a0319169055600490910155611643565b600082815260056020526040808220859055848252808220600190810185905586835290822082815590810182905560028101829055600381018054600160a060020a0319169055600401555b600154600090111561165a57600180546000190190555b50505050565b600080600160a060020a038416151561167857600080fd5b505060045460018054600092909101901515611768576080604051908101604052806001815260200182815260200182815260200182815250600160008201518155602082015181600101556040820151816002015560608201516003909101555060a0604051908101604090815260008083526020808401829052828401859052600160a060020a03881660608501526080840187905284825260059052208151815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a039290921691909117905560808201516004909101555061165a565b60048190556003546001805481019055915060a0604051908101604090815260008083526020808401869052828401859052600160a060020a03881660608501526080840187905284825260059052208151815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a0392909216919091179055608082015160049190910155506000918252600560205260409091208190556003555050565b602060405190810160405260008152905600a165627a7a7230582023b28f949377710d9fbaaee0711860063109f2499274aaf2b7217b3309ffbc1f0029

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

0000000000000000000000008b40761142b9aa6dc8964e61d0585995425c3d94

-----Decoded View---------------
Arg [0] : _trio (address): 0x8B40761142B9aa6dc8964e61D0585995425C3D94

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008b40761142b9aa6dc8964e61d0585995425c3d94


Swarm Source

bzzr://23b28f949377710d9fbaaee0711860063109f2499274aaf2b7217b3309ffbc1f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.