Contract 0xbfF6149B2a1EeB145B84e897d2af5AfA3bFf6119

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x09c3d374fe38cfcb22fcac9bf37e7334adf7828e3a160106cecc4285a48b99d2Harvest198855902022-09-15 3:13:4315 days 22 hrs ago0x706765a537d7b4cb95146d9a05613d4ada51dc46 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.01946420388 26.94
0xd1f8924a8b326a0541379bc35add8e6396f1cff3cb308aa3234d8c64e996b9faHarvest192390512022-08-28 17:59:4133 days 7 hrs ago0x74b2a9c92f8d0644c253cf300449a4f5176c7ea1 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0096230775 26.5
0x7ae7cdcfa7e5379b5e6fbcc16a8410af005792fe88e04c1ff8413bdbb0927e97Harvest188762322022-08-20 6:07:4641 days 19 hrs ago0xcad9b3fe59edb87a33f74a33d35d2fc35d18e5a6 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0248230005 26.5
0x70b40ef66c5aec17d8ceaa8850f40ca2beb90416c9277c78bedb42e2631f17c5Harvest187269022022-08-16 17:24:4445 days 7 hrs ago0x98625957c6b96eeecd040e5bd26bd42100d124b2 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.013483094 26.5
0x674390bcb49f2f8dc2bfed4999cb3b45c6ed968936c1f80c40b1af8e632fb107Harvest187268902022-08-16 17:24:1245 days 7 hrs ago0x98625957c6b96eeecd040e5bd26bd42100d124b2 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0099099665 26.5
0xc3561df4c043d7ef81ad61ced1ba0e9602638755ff76df07f8273faa2412f8d6Harvest187214392022-08-16 14:19:2045 days 10 hrs ago0x9f1b11acd3d5a013cc3a3145e1a6f250b52d20ba IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.068872539625 27.425
0x9db35d2a46b9a951e15aec54165e2a935f331f604ff2434d9a72052a40e6a850Harvest183803752022-08-08 15:29:3953 days 9 hrs ago0x702816268ad970c41edc3f880e4b657b9dec0acd IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.061753427 26.5
0x7814b518b1bfa20e83369caa89cd490ffe170e90f86948686b08c8fba20c06e4Harvest182901022022-08-06 12:59:0755 days 12 hrs ago0x98625957c6b96eeecd040e5bd26bd42100d124b2 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.004134424 26.5
0x61c55c3b665160264cdedf3d7cc11231519556cf84c6c951bd1b732a179ad755Harvest180989062022-08-02 1:26:4459 days 23 hrs ago0x3d6eb74c694c8128e634fc6008dcafe6b82a92ff IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.023107311 26.5
0xc266d0b5e9e6952a82daa39d60e592aae63ee6d805eb09d3bb59046f9941f5c3Harvest179766682022-07-30 3:01:4662 days 22 hrs ago0xf5f08ba7f46e2a86b5ef3bfd56c2097c9f4276d7 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0189515342 26.2
0x5c47a239e4db8227e1c716c2438883a4c520f034136acfc3ff507455c42bea8aHarvest176197742022-07-21 14:19:2871 days 10 hrs ago0x5e52308fd5270a16c766fb03555aa6857a261828 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0633953935 26.5
0xc54b51558422fcc8619715a1d72f1277e38aa5c496d93b746fa2e8811851bf51Harvest173099572022-07-14 9:20:2578 days 15 hrs ago0x3d0b6947e035580c6852f9e658386883ceccd34d IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.024021508 26.5
0x6eacae452e5416693238ef46b0974089085671a8a19139a0f4c58ca3b9766464Harvest172620942022-07-13 6:39:2079 days 18 hrs ago0x538590c0821fd57ab9961fe7e63fe6eba252768b IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0203037 60
0x4974948efe225fe1802e0f20fc163a04e46741000a9afd6212bb02ff6b3ee3c3Harvest168521832022-07-03 17:21:0889 days 7 hrs ago0xd19de4e58a699e9ad1a785a6c017e897b5dba6ab IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0279389765 26.5
0xf33db6ab6a5abe0ff5da2319c70a8913c3531258f1ac0c79339c2101eb9a64f1Harvest167598012022-07-01 13:49:4191 days 11 hrs ago0xee5cc119617f437d341adb738a384790e064f7b0 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0251835065 26.5
0x755c77eb88bd0ecdf28746b9da80253b67cfe1340ae667edd42c9791d41eac2cHarvest164805082022-06-25 2:29:5097 days 22 hrs ago0x3cc28c5c20a157e57e4cc02d489e16b70a1d9a63 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.009906813 26.5
0xc820d68fc11158e7917dc1d970a822046f077da50e3b5d006df8adb02bdd5178Harvest163277682022-06-21 13:43:04101 days 11 hrs ago0xf5f08ba7f46e2a86b5ef3bfd56c2097c9f4276d7 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.027824138 26.2
0xcf9363c68b069a3900570b5740aaf8ae9a517ebdc7fc2568199074749a25dc77Harvest163276702022-06-21 13:39:48101 days 11 hrs ago0x98625957c6b96eeecd040e5bd26bd42100d124b2 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.036236736 26.5
0x6fdd1c431efa5e50b0da06a3d76d414501c2fa4e409feb4a5bfb74dd2685579fHarvest162909332022-06-20 17:13:03102 days 8 hrs ago0x44f63c44189ceb46116dab3ac8e2df7454b3c924 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0080645595 26.5
0x2580257364797a1eca1185a1052ea62e6174ab742c0a015c59509b14e76c161eHarvest162758632022-06-20 8:52:02102 days 16 hrs ago0x492da4ff9cfe9c8f74fc4c99699b6ec1c6794861 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.024053997 26.5
0x1d780aeed24f3604c30f378436bd91613da2a929e69af4b5104961263bcd5e76Transfer Ownersh...161783642022-06-18 3:08:56104 days 22 hrs ago0xc99ee029ebaeaf473ef69aef6633489d9ae53385 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.000754546 26
0x0bc6d46a917a6bb429d27553f9bbb93a13e02482117b0b84c525a649cd8f285eHarvest161772672022-06-18 2:32:41104 days 22 hrs ago0xc99ee029ebaeaf473ef69aef6633489d9ae53385 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.1000726125 26.5
0xc469c00dd03fd54e414bc747a6850787d53e054526cdf901ca2219c2f60255e2Harvest161392842022-06-17 5:26:18105 days 19 hrs ago0xc99ee029ebaeaf473ef69aef6633489d9ae53385 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.058431599 26.5
0xa3f3602a6be9ff1b1e4d30bc05c542b2df519ecdafa31c3138a877f00336a436Harvest161392312022-06-17 5:24:33105 days 19 hrs ago0xc99ee029ebaeaf473ef69aef6633489d9ae53385 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.038351966 26.5
0x834cbb6b9fe03516157c7e8f99da4c007812d921288521079ab45a0e96e30cc8Harvest161391312022-06-17 5:21:13105 days 19 hrs ago0xc99ee029ebaeaf473ef69aef6633489d9ae53385 IN  0xbff6149b2a1eeb145b84e897d2af5afa3bff61190 AVAX0.0386065515 26.5
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Harvester

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at snowtrace.io on 2022-06-16
*/

/**
 *Submitted for verification at snowtrace.io on 2022-06-14
*/

pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IStrategy {
    function harvest() external;

    function getHarvestable() external view returns (uint256);
}

contract Harvester is Ownable {

    uint32 hour = 3600;
    uint32 day = 86400;

    enum TimingWindow { 
        hour,
        day,
        custom
    }

    struct TimeWindow { 
        TimingWindow timingWindow;
        uint256 value;
    }

    struct Strategy {
        //check for default values
        bool initialized;
        // The last time(timestamp) this strategy was harvested 
        uint256  lastHarvest;
        // The time window in which this strategy can be call in
        TimeWindow timeWindow;
    }
    
    // Current strategies that have been called at least once.
    mapping (address => Strategy) strategies; 
   
    // Event to emit on each call to harvest
    event harvested(address strategy, uint256 timestamp);

    function harvest(address _strategyAddress) public {
        require(_strategyAddress == address(_strategyAddress), "Harvester:!address");

	(bool _canCall,Strategy storage _strat) = validateHarvest(strategies[_strategyAddress]);
        require(_canCall,'Harvester:!harvest');

        if (!_strat.initialized) { 
            _strat.timeWindow.timingWindow = TimingWindow.hour;
            _strat.timeWindow.value = hour;
            _strat.initialized = true;
        }

	IStrategy(_strategyAddress).harvest();
        strategies[_strategyAddress] = _strat;

        emit harvested(_strategyAddress,_strat.lastHarvest);
    }

    // Get the timestamp when this strategy was last harvested 
    function lastHarvested(address _strategyAddress) public view returns (uint256) { 
        return strategies[_strategyAddress].lastHarvest;
    }

    // Get the current harvest window for strategy
    function harvestWindow(address _strategyAddress) public view returns (uint256) { 
        return strategies[_strategyAddress].timeWindow.value;
    }

    // Get the current harvestable for strategy
    function harvestable(address _strategyAddress) public view returns (uint256) { 
        return IStrategy(_strategyAddress).getHarvestable();
    }

    // Check if we can call harvest and sets the last harvested time on the strategy if needed
    function validateHarvest(Strategy storage _strat) private returns (bool,Strategy storage) {
        uint256 timeWindow = block.timestamp - _strat.timeWindow.value;

        if (_strat.lastHarvest == 0 || _strat.lastHarvest >= timeWindow) {
            _strat.lastHarvest = block.timestamp; 
            return (true, _strat);
        }

        return (false, _strat);
    }

    function setTimeWindowFor(address _strategyAddress,TimingWindow _timingWindow, uint256 _value) public onlyOwner {
        Strategy storage _strat = strategies[_strategyAddress];
        if (_timingWindow == TimingWindow.custom) { 
            require(_value > 0);
            _strat.timeWindow.timingWindow = TimingWindow.custom;
            _strat.timeWindow.value = _value;
        }

        if (_timingWindow == TimingWindow.hour) { 
            _strat.timeWindow.timingWindow = TimingWindow.hour;
            _strat.timeWindow.value = hour;
        }

        if (_timingWindow == TimingWindow.day) { 
            _strat.timeWindow.timingWindow = TimingWindow.day;
            _strat.timeWindow.value = day;
        }
	strategies[_strategyAddress] = _strat;
    }
}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"strategy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"harvested","type":"event"},{"inputs":[{"internalType":"address","name":"_strategyAddress","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_strategyAddress","type":"address"}],"name":"harvestWindow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_strategyAddress","type":"address"}],"name":"harvestable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_strategyAddress","type":"address"}],"name":"lastHarvested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_strategyAddress","type":"address"},{"internalType":"enum Harvester.TimingWindow","name":"_timingWindow","type":"uint8"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setTimeWindowFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052610e10600060146101000a81548163ffffffff021916908363ffffffff16021790555062015180600060186101000a81548163ffffffff021916908363ffffffff16021790555034801561005757600080fd5b5061007461006961007960201b60201c565b61008160201b60201c565b610145565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611031806101546000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637b212e731161005b5780637b212e73146100ff5780638ce266271461012f5780638da5cb5b1461015f578063f2fde38b1461017d57610088565b80630e5c011e1461008d57806357a3f919146100a95780635dc9cc1c146100d9578063715018a6146100f5575b600080fd5b6100a760048036038101906100a29190610be8565b610199565b005b6100c360048036038101906100be9190610be8565b61048a565b6040516100d09190610c2e565b60405180910390f35b6100f360048036038101906100ee9190610c9a565b610511565b005b6100fd61081b565b005b61011960048036038101906101149190610be8565b6108a3565b6040516101269190610c2e565b60405180910390f35b61014960048036038101906101449190610be8565b6108f2565b6040516101569190610c2e565b60405180910390f35b61016761093e565b6040516101749190610cfc565b60405180910390f35b61019760048036038101906101929190610be8565b610967565b005b8073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fe90610d74565b60405180910390fd5b600080610251600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610a5f565b9150915081610295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028c90610de0565b60405180910390fd5b8060000160009054906101000a900460ff1661031d5760008160020160000160006101000a81548160ff021916908360028111156102d6576102d5610e00565b5b0217905550600060149054906101000a900463ffffffff1663ffffffff16816002016001018190555060018160000160006101000a81548160ff0219169083151502179055505b8273ffffffffffffffffffffffffffffffffffffffff16634641257d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561036557600080fd5b505af1158015610379573d6000803e3d6000fd5b5050505080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506001820154816001015560028201816002016000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083600281111561043457610433610e00565b5b02179055506001820154816001015550509050507f5c7e64405e37743c7442cdc3e89c44b1bc33d7952a7a6cdcdf7b314a9572cddf83826001015460405161047d929190610e2f565b60405180910390a1505050565b60008173ffffffffffffffffffffffffffffffffffffffff16630547104d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d257600080fd5b505afa1580156104e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050a9190610e6d565b9050919050565b610519610ab9565b73ffffffffffffffffffffffffffffffffffffffff1661053761093e565b73ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490610ee6565b60405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506002808111156105e3576105e2610e00565b5b8360028111156105f6576105f5610e00565b5b1415610646576000821161060957600080fd5b60028160020160000160006101000a81548160ff0219169083600281111561063457610633610e00565b5b02179055508181600201600101819055505b6000600281111561065a57610659610e00565b5b83600281111561066d5761066c610e00565b5b14156106c85760008160020160000160006101000a81548160ff0219169083600281111561069e5761069d610e00565b5b0217905550600060149054906101000a900463ffffffff1663ffffffff1681600201600101819055505b600160028111156106dc576106db610e00565b5b8360028111156106ef576106ee610e00565b5b141561074a5760018160020160000160006101000a81548160ff021916908360028111156107205761071f610e00565b5b0217905550600060189054906101000a900463ffffffff1663ffffffff1681600201600101819055505b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083151502179055506001820154816001015560028201816002016000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083600281111561080157610800610e00565b5b021790555060018201548160010155505090505050505050565b610823610ab9565b73ffffffffffffffffffffffffffffffffffffffff1661084161093e565b73ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90610ee6565b60405180910390fd5b6108a16000610ac1565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600101549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61096f610ab9565b73ffffffffffffffffffffffffffffffffffffffff1661098d61093e565b73ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90610ee6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90610f78565b60405180910390fd5b610a5c81610ac1565b50565b6000806000836002016001015442610a779190610fc7565b9050600084600101541480610a90575080846001015410155b15610aab574284600101819055506001849250925050610ab4565b60008492509250505b915091565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb582610b8a565b9050919050565b610bc581610baa565b8114610bd057600080fd5b50565b600081359050610be281610bbc565b92915050565b600060208284031215610bfe57610bfd610b85565b5b6000610c0c84828501610bd3565b91505092915050565b6000819050919050565b610c2881610c15565b82525050565b6000602082019050610c436000830184610c1f565b92915050565b60038110610c5657600080fd5b50565b600081359050610c6881610c49565b92915050565b610c7781610c15565b8114610c8257600080fd5b50565b600081359050610c9481610c6e565b92915050565b600080600060608486031215610cb357610cb2610b85565b5b6000610cc186828701610bd3565b9350506020610cd286828701610c59565b9250506040610ce386828701610c85565b9150509250925092565b610cf681610baa565b82525050565b6000602082019050610d116000830184610ced565b92915050565b600082825260208201905092915050565b7f4861727665737465723a21616464726573730000000000000000000000000000600082015250565b6000610d5e601283610d17565b9150610d6982610d28565b602082019050919050565b60006020820190508181036000830152610d8d81610d51565b9050919050565b7f4861727665737465723a21686172766573740000000000000000000000000000600082015250565b6000610dca601283610d17565b9150610dd582610d94565b602082019050919050565b60006020820190508181036000830152610df981610dbd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000604082019050610e446000830185610ced565b610e516020830184610c1f565b9392505050565b600081519050610e6781610c6e565b92915050565b600060208284031215610e8357610e82610b85565b5b6000610e9184828501610e58565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610ed0602083610d17565b9150610edb82610e9a565b602082019050919050565b60006020820190508181036000830152610eff81610ec3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610f62602683610d17565b9150610f6d82610f06565b604082019050919050565b60006020820190508181036000830152610f9181610f55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fd282610c15565b9150610fdd83610c15565b925082821015610ff057610fef610f98565b5b82820390509291505056fea264697066735822122066177197327f0c4b967535efc850e355972d6d71562d9e31796fab848044810964736f6c63430008090033

Deployed ByteCode Sourcemap

3485:3345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4269:642;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5398:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6041:786;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2540:103;;;:::i;:::-;;5190:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4984:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1889:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2798:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4269:642;4366:16;4338:45;;:16;:45;;;4330:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;4413:13;4427:23;4454:45;4470:10;:28;4481:16;4470:28;;;;;;;;;;;;;;;4454:15;:45::i;:::-;4412:87;;;;4518:8;4510:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4566:6;:18;;;;;;;;;;;;4561:188;;4635:17;4602:6;:17;;:30;;;:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4693:4;;;;;;;;;;;4667:30;;:6;:17;;:23;;:30;;;;4733:4;4712:6;:18;;;:25;;;;;;;;;;;;;;;;;;4561:188;4764:16;4754:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4833:6;4802:10;:28;4813:16;4802:28;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;4857:46;4867:16;4884:6;:18;;;4857:46;;;;;;;:::i;:::-;;;;;;;;4319:592;;4269:642;:::o;5398:148::-;5466:7;5504:16;5494:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5487:51;;5398:148;;;:::o;6041:786::-;2120:12;:10;:12::i;:::-;2109:23;;:7;:5;:7::i;:::-;:23;;;2101:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6164:23:::1;6190:10;:28;6201:16;6190:28;;;;;;;;;;;;;;;6164:54;;6250:19;6233:36:::0;::::1;;;;;;;:::i;:::-;;:13;:36;;;;;;;;:::i;:::-;;;6229:203;;;6304:1;6295:6;:10;6287:19;;;::::0;::::1;;6354;6321:6;:17;;:30;;;:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6414:6;6388;:17;;:23;;:32;;;;6229:203;6465:17;6448:34;;;;;;;;:::i;:::-;;:13;:34;;;;;;;;:::i;:::-;;;6444:163;;;6533:17;6500:6;:17;;:30;;;:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6591:4;;;;;;;;;;;6565:30;;:6;:17;;:23;;:30;;;;6444:163;6640:16;6623:33;;;;;;;;:::i;:::-;;:13;:33;;;;;;;;:::i;:::-;;;6619:160;;;6707:16;6674:6;:17;;:30;;;:49;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6764:3;;;;;;;;;;;6738:29;;:6;:17;;:23;;:29;;;;6619:160;6813:6;6782:10;:28;6793:16;6782:28;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6153:674;6041:786:::0;;;:::o;2540:103::-;2120:12;:10;:12::i;:::-;2109:23;;:7;:5;:7::i;:::-;:23;;;2101:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2605:30:::1;2632:1;2605:18;:30::i;:::-;2540:103::o:0;5190:151::-;5260:7;5288:10;:28;5299:16;5288:28;;;;;;;;;;;;;;;:39;;:45;;;5281:52;;5190:151;;;:::o;4984:146::-;5054:7;5082:10;:28;5093:16;5082:28;;;;;;;;;;;;;;;:40;;;5075:47;;4984:146;;;:::o;1889:87::-;1935:7;1962:6;;;;;;;;;;;1955:13;;1889:87;:::o;2798:201::-;2120:12;:10;:12::i;:::-;2109:23;;:7;:5;:7::i;:::-;:23;;;2101:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2907:1:::1;2887:22;;:8;:22;;;;2879:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2963:28;2982:8;2963:18;:28::i;:::-;2798:201:::0;:::o;5650:383::-;5717:4;5722:16;5751:18;5790:6;:17;;:23;;;5772:15;:41;;;;:::i;:::-;5751:62;;5852:1;5830:6;:18;;;:23;:59;;;;5879:10;5857:6;:18;;;:32;;5830:59;5826:165;;;5927:15;5906:6;:18;;:36;;;;5966:4;5972:6;5958:21;;;;;;;5826:165;6011:5;6018:6;6003:22;;;;;5650:383;;;;:::o;754:98::-;807:7;834:10;827:17;;754:98;:::o;3159:191::-;3233:16;3252:6;;;;;;;;;;;3233:25;;3278:8;3269:6;;:17;;;;;;;;;;;;;;;;;;3333:8;3302:40;;3323:8;3302:40;;;;;;;;;;;;3222:128;3159:191;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:115::-;1700:1;1693:5;1690:12;1680:40;;1716:1;1713;1706:12;1680:40;1611:115;:::o;1732:171::-;1794:5;1832:6;1819:20;1810:29;;1848:49;1891:5;1848:49;:::i;:::-;1732:171;;;;:::o;1909:122::-;1982:24;2000:5;1982:24;:::i;:::-;1975:5;1972:35;1962:63;;2021:1;2018;2011:12;1962:63;1909:122;:::o;2037:139::-;2083:5;2121:6;2108:20;2099:29;;2137:33;2164:5;2137:33;:::i;:::-;2037:139;;;;:::o;2182:651::-;2275:6;2283;2291;2340:2;2328:9;2319:7;2315:23;2311:32;2308:119;;;2346:79;;:::i;:::-;2308:119;2466:1;2491:53;2536:7;2527:6;2516:9;2512:22;2491:53;:::i;:::-;2481:63;;2437:117;2593:2;2619:69;2680:7;2671:6;2660:9;2656:22;2619:69;:::i;:::-;2609:79;;2564:134;2737:2;2763:53;2808:7;2799:6;2788:9;2784:22;2763:53;:::i;:::-;2753:63;;2708:118;2182:651;;;;;:::o;2839:118::-;2926:24;2944:5;2926:24;:::i;:::-;2921:3;2914:37;2839:118;;:::o;2963:222::-;3056:4;3094:2;3083:9;3079:18;3071:26;;3107:71;3175:1;3164:9;3160:17;3151:6;3107:71;:::i;:::-;2963:222;;;;:::o;3191:169::-;3275:11;3309:6;3304:3;3297:19;3349:4;3344:3;3340:14;3325:29;;3191:169;;;;:::o;3366:168::-;3506:20;3502:1;3494:6;3490:14;3483:44;3366:168;:::o;3540:366::-;3682:3;3703:67;3767:2;3762:3;3703:67;:::i;:::-;3696:74;;3779:93;3868:3;3779:93;:::i;:::-;3897:2;3892:3;3888:12;3881:19;;3540:366;;;:::o;3912:419::-;4078:4;4116:2;4105:9;4101:18;4093:26;;4165:9;4159:4;4155:20;4151:1;4140:9;4136:17;4129:47;4193:131;4319:4;4193:131;:::i;:::-;4185:139;;3912:419;;;:::o;4337:168::-;4477:20;4473:1;4465:6;4461:14;4454:44;4337:168;:::o;4511:366::-;4653:3;4674:67;4738:2;4733:3;4674:67;:::i;:::-;4667:74;;4750:93;4839:3;4750:93;:::i;:::-;4868:2;4863:3;4859:12;4852:19;;4511:366;;;:::o;4883:419::-;5049:4;5087:2;5076:9;5072:18;5064:26;;5136:9;5130:4;5126:20;5122:1;5111:9;5107:17;5100:47;5164:131;5290:4;5164:131;:::i;:::-;5156:139;;4883:419;;;:::o;5308:180::-;5356:77;5353:1;5346:88;5453:4;5450:1;5443:15;5477:4;5474:1;5467:15;5494:332;5615:4;5653:2;5642:9;5638:18;5630:26;;5666:71;5734:1;5723:9;5719:17;5710:6;5666:71;:::i;:::-;5747:72;5815:2;5804:9;5800:18;5791:6;5747:72;:::i;:::-;5494:332;;;;;:::o;5832:143::-;5889:5;5920:6;5914:13;5905:22;;5936:33;5963:5;5936:33;:::i;:::-;5832:143;;;;:::o;5981:351::-;6051:6;6100:2;6088:9;6079:7;6075:23;6071:32;6068:119;;;6106:79;;:::i;:::-;6068:119;6226:1;6251:64;6307:7;6298:6;6287:9;6283:22;6251:64;:::i;:::-;6241:74;;6197:128;5981:351;;;;:::o;6338:182::-;6478:34;6474:1;6466:6;6462:14;6455:58;6338:182;:::o;6526:366::-;6668:3;6689:67;6753:2;6748:3;6689:67;:::i;:::-;6682:74;;6765:93;6854:3;6765:93;:::i;:::-;6883:2;6878:3;6874:12;6867:19;;6526:366;;;:::o;6898:419::-;7064:4;7102:2;7091:9;7087:18;7079:26;;7151:9;7145:4;7141:20;7137:1;7126:9;7122:17;7115:47;7179:131;7305:4;7179:131;:::i;:::-;7171:139;;6898:419;;;:::o;7323:225::-;7463:34;7459:1;7451:6;7447:14;7440:58;7532:8;7527:2;7519:6;7515:15;7508:33;7323:225;:::o;7554:366::-;7696:3;7717:67;7781:2;7776:3;7717:67;:::i;:::-;7710:74;;7793:93;7882:3;7793:93;:::i;:::-;7911:2;7906:3;7902:12;7895:19;;7554:366;;;:::o;7926:419::-;8092:4;8130:2;8119:9;8115:18;8107:26;;8179:9;8173:4;8169:20;8165:1;8154:9;8150:17;8143:47;8207:131;8333:4;8207:131;:::i;:::-;8199:139;;7926:419;;;:::o;8351:180::-;8399:77;8396:1;8389:88;8496:4;8493:1;8486:15;8520:4;8517:1;8510:15;8537:191;8577:4;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8670:1;8667;8664:8;8661:34;;;8675:18;;:::i;:::-;8661:34;8720:1;8717;8713:9;8705:17;;8537:191;;;;:::o

Swarm Source

ipfs://66177197327f0c4b967535efc850e355972d6d71562d9e31796fab8480448109
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.