ETH Price: $1,942.16 (-2.00%)
 

Overview

ETH Balance

0.972662627435231128 ETH

Eth Value

$1,889.07 (@ $1,942.16/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Unstake All Prod...214677142024-12-23 20:57:59426 days ago1734987479IN
0x35c80cb6...a4807306a
0 ETH0.0033773316.74409642
Compound Produce...214155602024-12-16 14:04:47433 days ago1734357887IN
0x35c80cb6...a4807306a
0 ETH0.0037081419.53092735
Unstake Produce ...213408432024-12-06 3:42:59443 days ago1733456579IN
0x35c80cb6...a4807306a
0 ETH0.0015479116.18865708
Compound Produce...213408132024-12-06 3:36:59443 days ago1733456219IN
0x35c80cb6...a4807306a
0 ETH0.0033657217.72742881
Unstake Produce ...212785482024-11-27 10:39:47452 days ago1732703987IN
0x35c80cb6...a4807306a
0 ETH0.0016057914.24627027
Unstake Produce ...212661352024-11-25 17:02:47454 days ago1732554167IN
0x35c80cb6...a4807306a
0 ETH0.0016076416.8112931
Unstake Produce ...212637312024-11-25 8:58:35454 days ago1732525115IN
0x35c80cb6...a4807306a
0 ETH0.001783438.35882583
Compound Produce...212108002024-11-17 23:45:11461 days ago1731887111IN
0x35c80cb6...a4807306a
0 ETH0.001623998.55367008
Stake Produce AI211635462024-11-11 9:27:59468 days ago1731317279IN
0x35c80cb6...a4807306a
0 ETH0.0024712214.00919881
Unstake Produce ...211458742024-11-08 22:21:11470 days ago1731104471IN
0x35c80cb6...a4807306a
0 ETH0.0023989611.34456848
Claim Rewards211449322024-11-08 19:11:59471 days ago1731093119IN
0x35c80cb6...a4807306a
0 ETH0.0005974613.43188515
Claim Rewards211439452024-11-08 15:53:47471 days ago1731081227IN
0x35c80cb6...a4807306a
0 ETH0.0011140925.04650773
Unstake Produce ...211392042024-11-07 23:58:59471 days ago1731023939IN
0x35c80cb6...a4807306a
0 ETH0.0013137413.73967739
Claim Rewards211392002024-11-07 23:58:11471 days ago1731023891IN
0x35c80cb6...a4807306a
0 ETH0.0008223513.35406012
Unstake Produce ...211388872024-11-07 22:55:23471 days ago1731020123IN
0x35c80cb6...a4807306a
0 ETH0.0072834936.09785251
Claim Rewards211388622024-11-07 22:50:23471 days ago1731019823IN
0x35c80cb6...a4807306a
0 ETH0.0057699893.69745851
Unstake Produce ...211358992024-11-07 12:53:35472 days ago1730984015IN
0x35c80cb6...a4807306a
0 ETH0.0012635513.21476515
Unstake Produce ...211355452024-11-07 11:41:59472 days ago1730979719IN
0x35c80cb6...a4807306a
0 ETH0.0034146714.21875449
Unstake Produce ...211353142024-11-07 10:55:35472 days ago1730976935IN
0x35c80cb6...a4807306a
0 ETH0.001455216.93118533
Unstake Produce ...211325552024-11-07 1:41:23472 days ago1730943683IN
0x35c80cb6...a4807306a
0 ETH0.0026524723.52966598
Unstake Produce ...211323432024-11-07 0:58:35472 days ago1730941115IN
0x35c80cb6...a4807306a
0 ETH0.0012538513.11326729
Unstake Produce ...211144122024-11-04 12:54:11475 days ago1730724851IN
0x35c80cb6...a4807306a
0 ETH0.000518595.42362609
Unstake Produce ...211019932024-11-02 19:17:59477 days ago1730575079IN
0x35c80cb6...a4807306a
0 ETH0.000549676.39637895
Claim Rewards211019912024-11-02 19:17:35477 days ago1730575055IN
0x35c80cb6...a4807306a
0 ETH0.00039946.48591011
Unstake Produce ...210873352024-10-31 18:12:11479 days ago1730398331IN
0x35c80cb6...a4807306a
0 ETH0.0014658514.22660407
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Swap Exact ETH F...214155602024-12-16 14:04:47433 days ago1734357887
0x35c80cb6...a4807306a
0.00138886 ETH
Swap Exact ETH F...213408132024-12-06 3:36:59443 days ago1733456219
0x35c80cb6...a4807306a
0.02934371 ETH
Transfer212637312024-11-25 8:58:35454 days ago1732525115
0x35c80cb6...a4807306a
0.01231538 ETH
Swap Exact ETH F...212108002024-11-17 23:45:11461 days ago1731887111
0x35c80cb6...a4807306a
0.00173451 ETH
Transfer211449322024-11-08 19:11:59471 days ago1731093119
0x35c80cb6...a4807306a
0.00590553 ETH
Transfer211439452024-11-08 15:53:47471 days ago1731081227
0x35c80cb6...a4807306a
0.01070096 ETH
Transfer211392002024-11-07 23:58:11471 days ago1731023891
0x35c80cb6...a4807306a
0.0243868 ETH
Transfer211388622024-11-07 22:50:23471 days ago1731019823
0x35c80cb6...a4807306a
0.01013583 ETH
Transfer211355452024-11-07 11:41:59472 days ago1730979719
0x35c80cb6...a4807306a
0.00555822 ETH
Transfer211019912024-11-02 19:17:35477 days ago1730575055
0x35c80cb6...a4807306a
0.00468685 ETH
Transfer210333942024-10-24 5:33:47486 days ago1729748027
0x35c80cb6...a4807306a
0.0025804 ETH
Transfer210307502024-10-23 20:41:59487 days ago1729716119
0x35c80cb6...a4807306a
0.00346922 ETH
Swap Exact ETH F...210087952024-10-20 19:11:23490 days ago1729451483
0x35c80cb6...a4807306a
0.03059269 ETH
Transfer209977112024-10-19 6:05:35491 days ago1729317935
0x35c80cb6...a4807306a
0.00536741 ETH
Transfer209967382024-10-19 2:49:59491 days ago1729306199
0x35c80cb6...a4807306a
0.0045222 ETH
Transfer209941912024-10-18 18:18:23492 days ago1729275503
0x35c80cb6...a4807306a
0.004244 ETH
Transfer209742462024-10-15 23:28:47494 days ago1729034927
0x35c80cb6...a4807306a
0.02084225 ETH
Transfer209670452024-10-14 23:20:11495 days ago1728948011
0x35c80cb6...a4807306a
0.15904276 ETH
Transfer209647222024-10-14 15:33:23496 days ago1728920003
0x35c80cb6...a4807306a
0.13869239 ETH
Transfer209646432024-10-14 15:17:23496 days ago1728919043
0x35c80cb6...a4807306a
0.81087478 ETH
Transfer209516902024-10-12 19:44:23498 days ago1728762263
0x35c80cb6...a4807306a
0.01440313 ETH
Transfer209235952024-10-08 21:37:35501 days ago1728423455
0x35c80cb6...a4807306a
0.04786456 ETH
Swap Exact ETH F...209052492024-10-06 8:14:23504 days ago1728202463
0x35c80cb6...a4807306a
0.05542212 ETH
Swap Exact ETH F...209046692024-10-06 6:17:59504 days ago1728195479
0x35c80cb6...a4807306a
0.00594598 ETH
Swap Exact ETH F...208971242024-10-05 5:04:35505 days ago1728104675
0x35c80cb6...a4807306a
0.00653619 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ProduceAIStaking

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-02-01
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

library CastMath {
    function int256Cast(uint256 a) internal pure returns (int256) {
        int256 b = int256(a);
        require(b >= 0, "unsafe int256 cast");
        return b;
    }

    function uint256Cast(int256 a) internal pure returns (uint256) {
        require(a >= 0, "unsafe uint256 cast");
        return uint256(a);
    }
}

interface UniSwap {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
}

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

contract DividendContract {

    uint256 constant internal MAGNITUDE = 2**128;
    uint256 internal magnifiedDividendPerShare;
                                                                         
    mapping(address => int256) internal magnifiedDividendCorrections;
    mapping(address => uint256) internal withdrawnDividends;
    mapping(address => uint256) public holderBalance;
 
    uint256 public totalDividends;
    uint256 public totalProduceAIDividendsDistributed;

    event DividendsDistributed(address indexed from, uint256 amount);
    event DividendWithdrawn(address indexed to, uint256 amount);

    function withdrawnDividendOf(address user) external view returns(uint256) {
        return withdrawnDividends[user];
    }

    function dividendOf(address user) public view returns(uint256) {
        return accumulativeDividendOf(user) - withdrawnDividends[user];
    }

    function accumulativeDividendOf(address user) public view returns(uint256) {
        int256 magnifiedBalance = CastMath.int256Cast(magnifiedDividendPerShare * holderBalance[user]);
        uint256 correctedBalance = CastMath.uint256Cast(magnifiedBalance + magnifiedDividendCorrections[user]);
        return correctedBalance / MAGNITUDE;
    }

    function _distributeDividends(uint amount) internal {
        require(totalDividends > 0, "Nobody to distribute to");
        magnifiedDividendPerShare += (amount * MAGNITUDE) / totalDividends;
        emit DividendsDistributed(msg.sender, amount);
        totalProduceAIDividendsDistributed += amount;
    }

    function _withdrawDividendOfUser(address payable user) internal  {
        uint256 _withdrawableDividend = dividendOf(user);
        if (_withdrawableDividend == 0) {return;} 
        withdrawnDividends[user] += _withdrawableDividend;
        (bool success,) = user.call{value: _withdrawableDividend}("");
        if (!success) {
            withdrawnDividends[user] -= _withdrawableDividend; //undo withdraw
            return;
        }
        emit DividendWithdrawn(user, _withdrawableDividend);
   } 

  function _updateBalance(address user, uint256 newBalance) internal {
    uint256 currentBalance = holderBalance[user];
    holderBalance[user] = newBalance;
    if (newBalance > currentBalance) {
        uint256 increaseAmount = newBalance - currentBalance;
        magnifiedDividendCorrections[user] -= CastMath.int256Cast(magnifiedDividendPerShare * increaseAmount);
        totalDividends += increaseAmount;
    } else if (newBalance < currentBalance) {
        uint256 reduceAmount = currentBalance - newBalance;
        magnifiedDividendCorrections[user] += CastMath.int256Cast(magnifiedDividendPerShare * reduceAmount);
        totalDividends -= reduceAmount;
    }
   }

    function _updateAccountBalance(address payable user, uint256 newBalance) internal {
        _updateBalance(user, newBalance);
    	_withdrawDividendOfUser(user); // auto-send dividends when balance changes (i.e. unstake)
    }
}

contract ProduceAIStaking is DividendContract, ReentrancyGuard {

    IERC20 public immutable ProduceAIToken;
    UniSwap private immutable dexRouter;

    mapping (address => uint256) public holderUnlockTime;
    mapping(address => uint256) internal stakeBlock;
    uint256 public immutable lockDuration;

    event Stake(address indexed user, uint256 amount);
    event Unstake(address indexed user, uint256 amount);

    constructor(address token, uint256 lockDays) { 
        ProduceAIToken = IERC20(token);
        lockDuration = lockDays * 1 days;
        dexRouter = UniSwap(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    }

    receive() external payable {
        revShare();
    }

    function stakeProduceAI(uint256 amount) external nonReentrant {
        require(amount > 0, "Amount cannot be 0");
        if(holderUnlockTime[msg.sender] == 0) {
            holderUnlockTime[msg.sender] = block.timestamp + lockDuration;
        }
        stakeBlock[msg.sender] = block.timestamp;
        uint256 userAmount = holderBalance[msg.sender];
        uint256 balanceBefore = ProduceAIToken.balanceOf(address(this));
        ProduceAIToken.transferFrom(address(msg.sender), address(this), amount);
        uint256 bought = ProduceAIToken.balanceOf(address(this)) - balanceBefore;
        _updateAccountBalance(payable(msg.sender), userAmount + bought);
        emit Stake(msg.sender, amount);
    }

    function revShare() public payable {
        require(msg.value > 0, "No ETH sent");
        _distributeDividends(msg.value);
    }

    function unstakeProduceAI(uint256 amount) public nonReentrant  {
        require(amount > 0, "Cannot withdraw 0 tokens");
        require(holderUnlockTime[msg.sender] <= block.timestamp, "Cannot withdraw yet");
        require(stakeBlock[msg.sender] + 1 hours < block.timestamp, "Attack block");
        uint256 userDividends = holderBalance[msg.sender];
        require(amount <= userDividends, "Not enough ProduceAI tokens");
        _updateAccountBalance(payable(msg.sender), userDividends - amount);
        // Everything unstaked = reset stamp to 0, else extend lock
        holderUnlockTime[msg.sender] = userDividends == amount ? 0 : block.timestamp + lockDuration;
        bool success = ProduceAIToken.transfer(address(msg.sender), amount);
        require(success, "Transfer of ProduceAI failed");
        emit Unstake(msg.sender, amount);
    }

    function unstakeAllProduceAI() external   { 
        uint256 totalTokens = holderBalance[msg.sender];
        unstakeProduceAI(totalTokens);
    }

    function buyProduceAITokens(uint256 weiAmount, uint256 minOut) internal returns(uint256) {
        uint256 initialBalance = ProduceAIToken.balanceOf(address(this));
        address[] memory path = new address[](2);
        path[0] = dexRouter.WETH();
        path[1] = address(ProduceAIToken);
        dexRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: weiAmount}(
            minOut,
            path,
            address(this),
            block.timestamp
        );
        return ProduceAIToken.balanceOf(address(this)) - initialBalance;
    }

    function claimRewards() external nonReentrant { 
        _withdrawDividendOfUser(payable(msg.sender));
    }

    function compoundProduceAI(uint256 minOutput) external nonReentrant {
        // Check how much dividend ETH we have
        uint256 accountBalance = holderBalance[msg.sender];
        uint256 dividendETH = dividendOf(msg.sender);
        require(dividendETH > 0, "Nothing to compound");
        withdrawnDividends[msg.sender] += dividendETH; // We use the ETH for buyback
        emit DividendWithdrawn(msg.sender, dividendETH);
        // Use dividend ETH to buy ProduceAI tokens
        uint ProduceAIBought = buyProduceAITokens(dividendETH, minOutput); 
        // Update balance
        _updateAccountBalance(payable(msg.sender), accountBalance + ProduceAIBought);
    }

    function getCompoundTokensForWallet(address wallet) external view returns(uint256) {
        uint256 dividendETH = dividendOf(wallet);
        require(dividendETH > 0, "Nothing to compound");
        address[] memory path = new address[](2);
        path[0] = dexRouter.WETH();
        path[1] = address(ProduceAIToken);
        // Get the tokens we can buy for the given ETH
        return dexRouter.getAmountsOut(dividendETH, path)[1]; 
    }

 }

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"lockDays","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DividendWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DividendsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstake","type":"event"},{"inputs":[],"name":"ProduceAIToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"accumulativeDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minOutput","type":"uint256"}],"name":"compoundProduceAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"dividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getCompoundTokensForWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revShare","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stakeProduceAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalProduceAIDividendsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unstakeAllProduceAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstakeProduceAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"withdrawnDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e060405234801561001057600080fd5b50604051620018ce380380620018ce83398101604081905261003191610072565b60016006556001600160a01b03821660805261005081620151806100ac565b60c0525050737a250d5630b4cf539739df2c5dacb4c659f2488d60a0526100d7565b6000806040838503121561008557600080fd5b82516001600160a01b038116811461009c57600080fd5b6020939093015192949293505050565b80820281158282048414176100d157634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c05161176c620001626000396000818161011d0152818161041e0152610c2e0152600081816106fa01528181610806015281816110f501526112010152600081816102010152818161049101528181610521015281816105b9015281816107af01528181610c9401528181611062015281816111aa0152611287015261176c6000f3fe6080604052600436106100f75760003560e01c806391b89fba1161008a578063aafd847a11610059578063aafd847a146102be578063ab6ddfa8146102f4578063c15fb86714610321578063e0b1ab651461033657600080fd5b806391b89fba1461023b57806391dfb5c81461025b578063997664d71461027b578063a913a5f71461029157600080fd5b806327ce0147116100c657806327ce01471461019a578063372500ab146101ba5780635a6121cf146101cf5780637a492fee146101ef57600080fd5b8063045544431461010b5780631b03ddc1146101525780631efea7ae1461015a5780632087f9771461017a57600080fd5b366101065761010461034c565b005b600080fd5b34801561011757600080fd5b5061013f7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61010461034c565b34801561016657600080fd5b50610104610175366004611415565b61039a565b34801561018657600080fd5b5061013f610195366004611443565b610683565b3480156101a657600080fd5b5061013f6101b5366004611443565b6108a7565b3480156101c657600080fd5b5061010461091f565b3480156101db57600080fd5b506101046101ea366004611415565b610956565b3480156101fb57600080fd5b506102237f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610149565b34801561024757600080fd5b5061013f610256366004611443565b610a5f565b34801561026757600080fd5b50610104610276366004611415565b610a91565b34801561028757600080fd5b5061013f60045481565b34801561029d57600080fd5b5061013f6102ac366004611443565b60076020526000908152604090205481565b3480156102ca57600080fd5b5061013f6102d9366004611443565b6001600160a01b031660009081526002602052604090205490565b34801561030057600080fd5b5061013f61030f366004611443565b60036020526000908152604090205481565b34801561032d57600080fd5b50610104610d8f565b34801561034257600080fd5b5061013f60055481565b6000341161038f5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064015b60405180910390fd5b61039834610dab565b565b6002600654036103bc5760405162461bcd60e51b815260040161038690611467565b6002600655806104035760405162461bcd60e51b81526020600482015260126024820152710416d6f756e742063616e6e6f7420626520360741b6044820152606401610386565b336000908152600760205260408120549003610454576104437f0000000000000000000000000000000000000000000000000000000000000000426114b4565b336000908152600760205260409020555b33600090815260086020908152604080832042905560039091528082205490516370a0823160e01b81523060048201529091906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc91906114c7565b6040516323b872dd60e01b8152336004820152306024820152604481018590529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610572573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059691906114e0565b506040516370a0823160e01b815230600482015260009082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610600573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062491906114c7565b61062e9190611502565b90506106433361063e83866114b4565b610e7c565b60405184815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a2505060016006555050565b60008061068f83610a5f565b9050600081116106d75760405162461bcd60e51b8152602060048201526013602482015272139bdd1a1a5b99c81d1bc818dbdb5c1bdd5b99606a1b6044820152606401610386565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a919061152b565b8160008151811061078d5761078d611548565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106107e1576107e1611548565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063d06ca61f9061083f90859085906004016115a2565b600060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261088491908101906115bb565b60018151811061089657610896611548565b602002602001015192505050919050565b6001600160a01b038116600090815260036020526040812054815482916108d7916108d29190611679565b610e93565b6001600160a01b03841660009081526001602052604081205491925090610907906109029084611690565b610edb565b9050610917600160801b826116b8565b949350505050565b6002600654036109415760405162461bcd60e51b815260040161038690611467565b600260065561094f33610f27565b6001600655565b6002600654036109785760405162461bcd60e51b815260040161038690611467565b6002600655336000818152600360205260408120549161099790610a5f565b9050600081116109df5760405162461bcd60e51b8152602060048201526013602482015272139bdd1a1a5b99c81d1bc818dbdb5c1bdd5b99606a1b6044820152606401610386565b33600090815260026020526040812080548392906109fe9084906114b4565b909155505060405181815233907fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d9060200160405180910390a26000610a448285611040565b9050610a543361063e83866114b4565b505060016006555050565b6001600160a01b038116600090815260026020526040812054610a81836108a7565b610a8b9190611502565b92915050565b600260065403610ab35760405162461bcd60e51b815260040161038690611467565b600260065580610b055760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74207769746864726177203020746f6b656e7300000000000000006044820152606401610386565b33600090815260076020526040902054421015610b5a5760405162461bcd60e51b815260206004820152601360248201527210d85b9b9bdd081dda5d1a191c985dc81e595d606a1b6044820152606401610386565b336000908152600860205260409020544290610b7890610e106114b4565b10610bb45760405162461bcd60e51b815260206004820152600c60248201526b41747461636b20626c6f636b60a01b6044820152606401610386565b3360009081526003602052604090205480821115610c145760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f7567682050726f64756365414920746f6b656e7300000000006044820152606401610386565b610c223361063e8484611502565b818114610c5857610c537f0000000000000000000000000000000000000000000000000000000000000000426114b4565b610c5b565b60005b3360008181526007602052604080822093909355915163a9059cbb60e01b81526004810191909152602481018490526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0191906114e0565b905080610d505760405162461bcd60e51b815260206004820152601c60248201527f5472616e73666572206f662050726f647563654149206661696c6564000000006044820152606401610386565b60405183815233907f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd9060200160405180910390a25050600160065550565b33600090815260036020526040902054610da881610a91565b50565b600060045411610dfd5760405162461bcd60e51b815260206004820152601760248201527f4e6f626f647920746f206469737472696275746520746f0000000000000000006044820152606401610386565b600454610e0e600160801b83611679565b610e1891906116b8565b600080828254610e2891906114b4565b909155505060405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a28060056000828254610e7491906114b4565b909155505050565b610e86828261130f565b610e8f82610f27565b5050565b60008181811215610a8b5760405162461bcd60e51b81526020600482015260126024820152711d5b9cd85999481a5b9d0c8d4d8818d85cdd60721b6044820152606401610386565b600080821215610f235760405162461bcd60e51b81526020600482015260136024820152721d5b9cd85999481d5a5b9d0c8d4d8818d85cdd606a1b6044820152606401610386565b5090565b6000610f3282610a5f565b905080600003610f40575050565b6001600160a01b03821660009081526002602052604081208054839290610f689084906114b4565b90915550506040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610fb8576040519150601f19603f3d011682016040523d82523d6000602084013e610fbd565b606091505b5050905080610ff8576001600160a01b03831660009081526002602052604081208054849290610fee908490611502565b9091555050505050565b826001600160a01b03167fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d8360405161103391815260200190565b60405180910390a2505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156110a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cd91906114c7565b60408051600280825260608201835292935060009290916020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611151573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611175919061152b565b8160008151811061118857611188611548565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106111dc576111dc611548565b6001600160a01b03928316602091820292909201015260405163b6f9de9560e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063b6f9de959087906112409088908690309042906004016116da565b6000604051808303818588803b15801561125957600080fd5b505af115801561126d573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201528593507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506370a082319150602401602060405180830381865afa1580156112d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fc91906114c7565b6113069190611502565b95945050505050565b6001600160a01b0382166000908152600360205260409020805490829055808211156113a15760006113418284611502565b9050611354816000546108d29190611679565b6001600160a01b0385166000908152600160205260408120805490919061137c90849061170f565b92505081905550806004600082825461139591906114b4565b90915550611410915050565b808210156114105760006113b58383611502565b90506113c8816000546108d29190611679565b6001600160a01b038516600090815260016020526040812080549091906113f0908490611690565b9250508190555080600460008282546114099190611502565b9091555050505b505050565b60006020828403121561142757600080fd5b5035919050565b6001600160a01b0381168114610da857600080fd5b60006020828403121561145557600080fd5b81356114608161142e565b9392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a8b57610a8b61149e565b6000602082840312156114d957600080fd5b5051919050565b6000602082840312156114f257600080fd5b8151801515811461146057600080fd5b81810381811115610a8b57610a8b61149e565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561153d57600080fd5b81516114608161142e565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156115975781516001600160a01b031687529582019590820190600101611572565b509495945050505050565b828152604060208201526000610917604083018461155e565b600060208083850312156115ce57600080fd5b825167ffffffffffffffff808211156115e657600080fd5b818501915085601f8301126115fa57600080fd5b81518181111561160c5761160c611515565b8060051b604051601f19603f8301168101818110858211171561163157611631611515565b60405291825284820192508381018501918883111561164f57600080fd5b938501935b8285101561166d57845184529385019392850192611654565b98975050505050505050565b8082028115828204841417610a8b57610a8b61149e565b80820182811260008312801582168215821617156116b0576116b061149e565b505092915050565b6000826116d557634e487b7160e01b600052601260045260246000fd5b500490565b8481526080602082015260006116f3608083018661155e565b6001600160a01b03949094166040830152506060015292915050565b818103600083128015838313168383128216171561172f5761172f61149e565b509291505056fea26469706673582212208339f4b92d85105bc78746bb7226ff5b1f05a4be2bc1e90932019ad9eb0ffb8564736f6c634300081200330000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc6000000000000000000000000000000000000000000000000000000000000000e

Deployed Bytecode

0x6080604052600436106100f75760003560e01c806391b89fba1161008a578063aafd847a11610059578063aafd847a146102be578063ab6ddfa8146102f4578063c15fb86714610321578063e0b1ab651461033657600080fd5b806391b89fba1461023b57806391dfb5c81461025b578063997664d71461027b578063a913a5f71461029157600080fd5b806327ce0147116100c657806327ce01471461019a578063372500ab146101ba5780635a6121cf146101cf5780637a492fee146101ef57600080fd5b8063045544431461010b5780631b03ddc1146101525780631efea7ae1461015a5780632087f9771461017a57600080fd5b366101065761010461034c565b005b600080fd5b34801561011757600080fd5b5061013f7f000000000000000000000000000000000000000000000000000000000012750081565b6040519081526020015b60405180910390f35b61010461034c565b34801561016657600080fd5b50610104610175366004611415565b61039a565b34801561018657600080fd5b5061013f610195366004611443565b610683565b3480156101a657600080fd5b5061013f6101b5366004611443565b6108a7565b3480156101c657600080fd5b5061010461091f565b3480156101db57600080fd5b506101046101ea366004611415565b610956565b3480156101fb57600080fd5b506102237f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc681565b6040516001600160a01b039091168152602001610149565b34801561024757600080fd5b5061013f610256366004611443565b610a5f565b34801561026757600080fd5b50610104610276366004611415565b610a91565b34801561028757600080fd5b5061013f60045481565b34801561029d57600080fd5b5061013f6102ac366004611443565b60076020526000908152604090205481565b3480156102ca57600080fd5b5061013f6102d9366004611443565b6001600160a01b031660009081526002602052604090205490565b34801561030057600080fd5b5061013f61030f366004611443565b60036020526000908152604090205481565b34801561032d57600080fd5b50610104610d8f565b34801561034257600080fd5b5061013f60055481565b6000341161038f5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064015b60405180910390fd5b61039834610dab565b565b6002600654036103bc5760405162461bcd60e51b815260040161038690611467565b6002600655806104035760405162461bcd60e51b81526020600482015260126024820152710416d6f756e742063616e6e6f7420626520360741b6044820152606401610386565b336000908152600760205260408120549003610454576104437f0000000000000000000000000000000000000000000000000000000000127500426114b4565b336000908152600760205260409020555b33600090815260086020908152604080832042905560039091528082205490516370a0823160e01b81523060048201529091906001600160a01b037f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc616906370a0823190602401602060405180830381865afa1580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc91906114c7565b6040516323b872dd60e01b8152336004820152306024820152604481018590529091507f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc66001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610572573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059691906114e0565b506040516370a0823160e01b815230600482015260009082906001600160a01b037f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc616906370a0823190602401602060405180830381865afa158015610600573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062491906114c7565b61062e9190611502565b90506106433361063e83866114b4565b610e7c565b60405184815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a2505060016006555050565b60008061068f83610a5f565b9050600081116106d75760405162461bcd60e51b8152602060048201526013602482015272139bdd1a1a5b99c81d1bc818dbdb5c1bdd5b99606a1b6044820152606401610386565b6040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a919061152b565b8160008151811061078d5761078d611548565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc6816001815181106107e1576107e1611548565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063d06ca61f9061083f90859085906004016115a2565b600060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261088491908101906115bb565b60018151811061089657610896611548565b602002602001015192505050919050565b6001600160a01b038116600090815260036020526040812054815482916108d7916108d29190611679565b610e93565b6001600160a01b03841660009081526001602052604081205491925090610907906109029084611690565b610edb565b9050610917600160801b826116b8565b949350505050565b6002600654036109415760405162461bcd60e51b815260040161038690611467565b600260065561094f33610f27565b6001600655565b6002600654036109785760405162461bcd60e51b815260040161038690611467565b6002600655336000818152600360205260408120549161099790610a5f565b9050600081116109df5760405162461bcd60e51b8152602060048201526013602482015272139bdd1a1a5b99c81d1bc818dbdb5c1bdd5b99606a1b6044820152606401610386565b33600090815260026020526040812080548392906109fe9084906114b4565b909155505060405181815233907fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d9060200160405180910390a26000610a448285611040565b9050610a543361063e83866114b4565b505060016006555050565b6001600160a01b038116600090815260026020526040812054610a81836108a7565b610a8b9190611502565b92915050565b600260065403610ab35760405162461bcd60e51b815260040161038690611467565b600260065580610b055760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74207769746864726177203020746f6b656e7300000000000000006044820152606401610386565b33600090815260076020526040902054421015610b5a5760405162461bcd60e51b815260206004820152601360248201527210d85b9b9bdd081dda5d1a191c985dc81e595d606a1b6044820152606401610386565b336000908152600860205260409020544290610b7890610e106114b4565b10610bb45760405162461bcd60e51b815260206004820152600c60248201526b41747461636b20626c6f636b60a01b6044820152606401610386565b3360009081526003602052604090205480821115610c145760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f7567682050726f64756365414920746f6b656e7300000000006044820152606401610386565b610c223361063e8484611502565b818114610c5857610c537f0000000000000000000000000000000000000000000000000000000000127500426114b4565b610c5b565b60005b3360008181526007602052604080822093909355915163a9059cbb60e01b81526004810191909152602481018490526001600160a01b037f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc6169063a9059cbb906044016020604051808303816000875af1158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0191906114e0565b905080610d505760405162461bcd60e51b815260206004820152601c60248201527f5472616e73666572206f662050726f647563654149206661696c6564000000006044820152606401610386565b60405183815233907f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd9060200160405180910390a25050600160065550565b33600090815260036020526040902054610da881610a91565b50565b600060045411610dfd5760405162461bcd60e51b815260206004820152601760248201527f4e6f626f647920746f206469737472696275746520746f0000000000000000006044820152606401610386565b600454610e0e600160801b83611679565b610e1891906116b8565b600080828254610e2891906114b4565b909155505060405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a28060056000828254610e7491906114b4565b909155505050565b610e86828261130f565b610e8f82610f27565b5050565b60008181811215610a8b5760405162461bcd60e51b81526020600482015260126024820152711d5b9cd85999481a5b9d0c8d4d8818d85cdd60721b6044820152606401610386565b600080821215610f235760405162461bcd60e51b81526020600482015260136024820152721d5b9cd85999481d5a5b9d0c8d4d8818d85cdd606a1b6044820152606401610386565b5090565b6000610f3282610a5f565b905080600003610f40575050565b6001600160a01b03821660009081526002602052604081208054839290610f689084906114b4565b90915550506040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610fb8576040519150601f19603f3d011682016040523d82523d6000602084013e610fbd565b606091505b5050905080610ff8576001600160a01b03831660009081526002602052604081208054849290610fee908490611502565b9091555050505050565b826001600160a01b03167fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d8360405161103391815260200190565b60405180910390a2505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc616906370a0823190602401602060405180830381865afa1580156110a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cd91906114c7565b60408051600280825260608201835292935060009290916020830190803683370190505090507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611151573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611175919061152b565b8160008151811061118857611188611548565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc6816001815181106111dc576111dc611548565b6001600160a01b03928316602091820292909201015260405163b6f9de9560e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063b6f9de959087906112409088908690309042906004016116da565b6000604051808303818588803b15801561125957600080fd5b505af115801561126d573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201528593507f0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc66001600160a01b031692506370a082319150602401602060405180830381865afa1580156112d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fc91906114c7565b6113069190611502565b95945050505050565b6001600160a01b0382166000908152600360205260409020805490829055808211156113a15760006113418284611502565b9050611354816000546108d29190611679565b6001600160a01b0385166000908152600160205260408120805490919061137c90849061170f565b92505081905550806004600082825461139591906114b4565b90915550611410915050565b808210156114105760006113b58383611502565b90506113c8816000546108d29190611679565b6001600160a01b038516600090815260016020526040812080549091906113f0908490611690565b9250508190555080600460008282546114099190611502565b9091555050505b505050565b60006020828403121561142757600080fd5b5035919050565b6001600160a01b0381168114610da857600080fd5b60006020828403121561145557600080fd5b81356114608161142e565b9392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a8b57610a8b61149e565b6000602082840312156114d957600080fd5b5051919050565b6000602082840312156114f257600080fd5b8151801515811461146057600080fd5b81810381811115610a8b57610a8b61149e565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561153d57600080fd5b81516114608161142e565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156115975781516001600160a01b031687529582019590820190600101611572565b509495945050505050565b828152604060208201526000610917604083018461155e565b600060208083850312156115ce57600080fd5b825167ffffffffffffffff808211156115e657600080fd5b818501915085601f8301126115fa57600080fd5b81518181111561160c5761160c611515565b8060051b604051601f19603f8301168101818110858211171561163157611631611515565b60405291825284820192508381018501918883111561164f57600080fd5b938501935b8285101561166d57845184529385019392850192611654565b98975050505050505050565b8082028115828204841417610a8b57610a8b61149e565b80820182811260008312801582168215821617156116b0576116b061149e565b505092915050565b6000826116d557634e487b7160e01b600052601260045260246000fd5b500490565b8481526080602082015260006116f3608083018661155e565b6001600160a01b03949094166040830152506060015292915050565b818103600083128015838313168383128216171561172f5761172f61149e565b509291505056fea26469706673582212208339f4b92d85105bc78746bb7226ff5b1f05a4be2bc1e90932019ad9eb0ffb8564736f6c63430008120033

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

0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc6000000000000000000000000000000000000000000000000000000000000000e

-----Decoded View---------------
Arg [0] : token (address): 0x0e6D98de664A28a32B584c72E606Ff7DeA898Dc6
Arg [1] : lockDays (uint256): 14

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000e6d98de664a28a32b584c72e606ff7dea898dc6
Arg [1] : 000000000000000000000000000000000000000000000000000000000000000e


Deployed Bytecode Sourcemap

4877:4475:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5571:10;:8;:10::i;:::-;4877:4475;;;;;5151:37;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5151:37:0;;;;;;;;6325:133;;;:::i;5597:720::-;;;;;;;;;;-1:-1:-1;5597:720:0;;;;;:::i;:::-;;:::i;8894:452::-;;;;;;;;;;-1:-1:-1;8894:452:0;;;;;:::i;:::-;;:::i;2748:347::-;;;;;;;;;;-1:-1:-1;2748:347:0;;;;;:::i;:::-;;:::i;8082:110::-;;;;;;;;;;;;;:::i;8200:686::-;;;;;;;;;;-1:-1:-1;8200:686:0;;;;;:::i;:::-;;:::i;4949:38::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;947:32:1;;;929:51;;917:2;902:18;4949:38:0;769:217:1;2596:144:0;;;;;;;;;;-1:-1:-1;2596:144:0;;;;;:::i;:::-;;:::i;6466:867::-;;;;;;;;;;-1:-1:-1;6466:867:0;;;;;:::i;:::-;;:::i;2231:29::-;;;;;;;;;;;;;;;;5038:52;;;;;;;;;;-1:-1:-1;5038:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;2464:124;;;;;;;;;;-1:-1:-1;2464:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;2556:24:0;2529:7;2556:24;;;:18;:24;;;;;;;2464:124;2173:48;;;;;;;;;;-1:-1:-1;2173:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;7341:149;;;;;;;;;;;;;:::i;2267:49::-;;;;;;;;;;;;;;;;6325:133;6391:1;6379:9;:13;6371:37;;;;-1:-1:-1;;;6371:37:0;;1193:2:1;6371:37:0;;;1175:21:1;1232:2;1212:18;;;1205:30;-1:-1:-1;;;1251:18:1;;;1244:41;1302:18;;6371:37:0;;;;;;;;;6419:31;6440:9;6419:20;:31::i;:::-;6325:133::o;5597:720::-;1538:1;1686:7;;:19;1678:63;;;;-1:-1:-1;;;1678:63:0;;;;;;;:::i;:::-;1538:1;1752:7;:18;5678:10;5670:41:::1;;;::::0;-1:-1:-1;;;5670:41:0;;1893:2:1;5670:41:0::1;::::0;::::1;1875:21:1::0;1932:2;1912:18;;;1905:30;-1:-1:-1;;;1951:18:1;;;1944:48;2009:18;;5670:41:0::1;1691:342:1::0;5670:41:0::1;5742:10;5725:28;::::0;;;:16:::1;:28;::::0;;;;;:33;;5722:126:::1;;5806:30;5824:12;5806:15;:30;:::i;:::-;5792:10;5775:28;::::0;;;:16:::1;:28;::::0;;;;:61;5722:126:::1;5869:10;5858:22;::::0;;;:10:::1;:22;::::0;;;;;;;5883:15:::1;5858:40:::0;;5930:13:::1;:25:::0;;;;;;;5990:39;;-1:-1:-1;;;5990:39:0;;6023:4:::1;5990:39;::::0;::::1;929:51:1::0;5930:25:0;;5858:22;-1:-1:-1;;;;;5990:14:0::1;:24;::::0;::::1;::::0;902:18:1;;5990:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6040:71;::::0;-1:-1:-1;;;6040:71:0;;6076:10:::1;6040:71;::::0;::::1;2937:34:1::0;6097:4:0::1;2987:18:1::0;;;2980:43;3039:18;;;3032:34;;;5966:63:0;;-1:-1:-1;6040:14:0::1;-1:-1:-1::0;;;;;6040:27:0::1;::::0;::::1;::::0;2872:18:1;;6040:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6139:39:0::1;::::0;-1:-1:-1;;;6139:39:0;;6172:4:::1;6139:39;::::0;::::1;929:51:1::0;6122:14:0::1;::::0;6181:13;;-1:-1:-1;;;;;6139:14:0::1;:24;::::0;::::1;::::0;902:18:1;;6139:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;;;;:::i;:::-;6122:72:::0;-1:-1:-1;6205:63:0::1;6235:10;6248:19;6122:72:::0;6248:10;:19:::1;:::i;:::-;6205:21;:63::i;:::-;6284:25;::::0;160::1;;;6290:10:0::1;::::0;6284:25:::1;::::0;148:2:1;133:18;6284:25:0::1;;;;;;;-1:-1:-1::0;;1494:1:0;1793:7;:22;-1:-1:-1;;5597:720:0:o;8894:452::-;8968:7;8988:19;9010:18;9021:6;9010:10;:18::i;:::-;8988:40;;9061:1;9047:11;:15;9039:47;;;;-1:-1:-1;;;9039:47:0;;3694:2:1;9039:47:0;;;3676:21:1;3733:2;3713:18;;;3706:30;-1:-1:-1;;;3752:18:1;;;3745:49;3811:18;;9039:47:0;3492:343:1;9039:47:0;9121:16;;;9135:1;9121:16;;;;;;;;9097:21;;9121:16;;;;;;;;;;-1:-1:-1;9121:16:0;9097:40;;9158:9;-1:-1:-1;;;;;9158:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9148:4;9153:1;9148:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1;;;;;9148:26:0;;;-1:-1:-1;;;;;9148:26:0;;;;;9203:14;9185:4;9190:1;9185:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9185:33:0;;;:7;;;;;;;;;:33;9292:42;;-1:-1:-1;;;9292:42:0;;:9;:23;;;;;;:42;;9316:11;;9329:4;;9292:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9292:42:0;;;;;;;;;;;;:::i;:::-;9335:1;9292:45;;;;;;;;:::i;:::-;;;;;;;9285:52;;;;8894:452;;;:::o;2748:347::-;-1:-1:-1;;;;;2908:19:0;;2814:7;2908:19;;;:13;:19;;;;;;2880:25;;2814:7;;2860:68;;2880:47;;2908:19;2880:47;:::i;:::-;2860:19;:68::i;:::-;-1:-1:-1;;;;;3006:34:0;;2939:24;3006:34;;;:28;:34;;;;;;2834:94;;-1:-1:-1;2939:24:0;2966:75;;2987:53;;2834:94;2987:53;:::i;:::-;2966:20;:75::i;:::-;2939:102;-1:-1:-1;3059:28:0;-1:-1:-1;;;2939:102:0;3059:28;:::i;:::-;3052:35;2748:347;-1:-1:-1;;;;2748:347:0:o;8082:110::-;1538:1;1686:7;;:19;1678:63;;;;-1:-1:-1;;;1678:63:0;;;;;;;:::i;:::-;1538:1;1752:7;:18;8140:44:::1;8172:10;8140:23;:44::i;:::-;1494:1:::0;1793:7;:22;8082:110::o;8200:686::-;1538:1;1686:7;;:19;1678:63;;;;-1:-1:-1;;;1678:63:0;;;;;;;:::i;:::-;1538:1;1752:7;:18;8366:10:::1;8327:22;8352:25:::0;;;:13:::1;:25;::::0;;;;;;8410:22:::1;::::0;:10:::1;:22::i;:::-;8388:44;;8465:1;8451:11;:15;8443:47;;;::::0;-1:-1:-1;;;8443:47:0;;3694:2:1;8443:47:0::1;::::0;::::1;3676:21:1::0;3733:2;3713:18;;;3706:30;-1:-1:-1;;;3752:18:1;;;3745:49;3811:18;;8443:47:0::1;3492:343:1::0;8443:47:0::1;8520:10;8501:30;::::0;;;:18:::1;:30;::::0;;;;:45;;8535:11;;8501:30;:45:::1;::::0;8535:11;;8501:45:::1;:::i;:::-;::::0;;;-1:-1:-1;;8592:42:0::1;::::0;160:25:1;;;8610:10:0::1;::::0;8592:42:::1;::::0;148:2:1;133:18;8592:42:0::1;;;;;;;8698:20;8721:42;8740:11;8753:9;8721:18;:42::i;:::-;8698:65:::0;-1:-1:-1;8802:76:0::1;8832:10;8845:32;8698:65:::0;8845:14;:32:::1;:::i;8802:76::-;-1:-1:-1::0;;1494:1:0;1793:7;:22;-1:-1:-1;;8200:686:0:o;2596:144::-;-1:-1:-1;;;;;2708:24:0;;2650:7;2708:24;;;:18;:24;;;;;;2677:28;2727:4;2677:22;:28::i;:::-;:55;;;;:::i;:::-;2670:62;2596:144;-1:-1:-1;;2596:144:0:o;6466:867::-;1538:1;1686:7;;:19;1678:63;;;;-1:-1:-1;;;1678:63:0;;;;;;;:::i;:::-;1538:1;1752:7;:18;6548:10;6540:47:::1;;;::::0;-1:-1:-1;;;6540:47:0;;7091:2:1;6540:47:0::1;::::0;::::1;7073:21:1::0;7130:2;7110:18;;;7103:30;7169:26;7149:18;;;7142:54;7213:18;;6540:47:0::1;6889:348:1::0;6540:47:0::1;6623:10;6606:28;::::0;;;:16:::1;:28;::::0;;;;;6638:15:::1;-1:-1:-1::0;6606:47:0::1;6598:79;;;::::0;-1:-1:-1;;;6598:79:0;;7444:2:1;6598:79:0::1;::::0;::::1;7426:21:1::0;7483:2;7463:18;;;7456:30;-1:-1:-1;;;7502:18:1;;;7495:49;7561:18;;6598:79:0::1;7242:343:1::0;6598:79:0::1;6707:10;6696:22;::::0;;;:10:::1;:22;::::0;;;;;6731:15:::1;::::0;6696:32:::1;::::0;6721:7:::1;6696:32;:::i;:::-;:50;6688:75;;;::::0;-1:-1:-1;;;6688:75:0;;7792:2:1;6688:75:0::1;::::0;::::1;7774:21:1::0;7831:2;7811:18;;;7804:30;-1:-1:-1;;;7850:18:1;;;7843:42;7902:18;;6688:75:0::1;7590:336:1::0;6688:75:0::1;6812:10;6774:21;6798:25:::0;;;:13:::1;:25;::::0;;;;;6842:23;;::::1;;6834:63;;;::::0;-1:-1:-1;;;6834:63:0;;8133:2:1;6834:63:0::1;::::0;::::1;8115:21:1::0;8172:2;8152:18;;;8145:30;8211:29;8191:18;;;8184:57;8258:18;;6834:63:0::1;7931:351:1::0;6834:63:0::1;6908:66;6938:10;6951:22;6967:6:::0;6951:13;:22:::1;:::i;6908:66::-;7102:6;7085:13;:23;:60;;7115:30;7133:12;7115:15;:30;:::i;:::-;7085:60;;;7111:1;7085:60;7071:10;7054:28;::::0;;;:16:::1;:28;::::0;;;;;:91;;;;7171:52;;-1:-1:-1;;;7171:52:0;;::::1;::::0;::::1;8461:51:1::0;;;;8528:18;;;8521:34;;;-1:-1:-1;;;;;7171:14:0::1;:23;::::0;::::1;::::0;8434:18:1;;7171:52:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7156:67;;7242:7;7234:48;;;::::0;-1:-1:-1;;;7234:48:0;;8768:2:1;7234:48:0::1;::::0;::::1;8750:21:1::0;8807:2;8787:18;;;8780:30;8846;8826:18;;;8819:58;8894:18;;7234:48:0::1;8566:352:1::0;7234:48:0::1;7298:27;::::0;160:25:1;;;7306:10:0::1;::::0;7298:27:::1;::::0;148:2:1;133:18;7298:27:0::1;;;;;;;-1:-1:-1::0;;1494:1:0;1793:7;:22;-1:-1:-1;6466:867:0:o;7341:149::-;7431:10;7395:19;7417:25;;;:13;:25;;;;;;7453:29;7417:25;7453:16;:29::i;:::-;7383:107;7341:149::o;3103:313::-;3191:1;3174:14;;:18;3166:54;;;;-1:-1:-1;;;3166:54:0;;9125:2:1;3166:54:0;;;9107:21:1;9164:2;9144:18;;;9137:30;9203:25;9183:18;;;9176:53;9246:18;;3166:54:0;8923:347:1;3166:54:0;3283:14;;3261:18;-1:-1:-1;;;3261:6:0;:18;:::i;:::-;3260:37;;;;:::i;:::-;3231:25;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;3313:40:0;;160:25:1;;;3334:10:0;;3313:40;;148:2:1;133:18;3313:40:0;;;;;;;3402:6;3364:34;;:44;;;;;;;:::i;:::-;;;;-1:-1:-1;;;3103:313:0:o;4641:229::-;4734:32;4749:4;4755:10;4734:14;:32::i;:::-;4774:29;4798:4;4774:23;:29::i;:::-;4641:229;;:::o;84:168::-;138:6;175:1;196:6;;;;188:37;;;;-1:-1:-1;;;188:37:0;;9477:2:1;188:37:0;;;9459:21:1;9516:2;9496:18;;;9489:30;-1:-1:-1;;;9535:18:1;;;9528:48;9593:18;;188:37:0;9275:342:1;260:148:0;314:7;347:1;342;:6;;334:38;;;;-1:-1:-1;;;334:38:0;;9824:2:1;334:38:0;;;9806:21:1;9863:2;9843:18;;;9836:30;-1:-1:-1;;;9882:18:1;;;9875:49;9941:18;;334:38:0;9622:343:1;334:38:0;-1:-1:-1;398:1:0;260:148::o;3424:514::-;3500:29;3532:16;3543:4;3532:10;:16::i;:::-;3500:48;;3563:21;3588:1;3563:26;3559:41;;3592:7;3424:514;:::o;3559:41::-;-1:-1:-1;;;;;3611:24:0;;;;;;:18;:24;;;;;:49;;3639:21;;3611:24;:49;;3639:21;;3611:49;:::i;:::-;;;;-1:-1:-1;;3689:43:0;;3672:12;;-1:-1:-1;;;;;3689:9:0;;;3706:21;;3672:12;3689:43;3672:12;3689:43;3706:21;3689:9;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:61;;;3748:7;3743:127;;-1:-1:-1;;;;;3772:24:0;;;;;;:18;:24;;;;;:49;;3800:21;;3772:24;:49;;3800:21;;3772:49;:::i;:::-;;;;-1:-1:-1;;;;;3424:514:0:o;3743:127::-;3903:4;-1:-1:-1;;;;;3885:46:0;;3909:21;3885:46;;;;160:25:1;;148:2;133:18;;14:177;3885:46:0;;;;;;;;3489:449;;3424:514;:::o;7498:576::-;7623:39;;-1:-1:-1;;;7623:39:0;;7656:4;7623:39;;;929:51:1;7578:7:0;;;;-1:-1:-1;;;;;7623:14:0;:24;;;;902:18:1;;7623:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7697:16;;;7711:1;7697:16;;;;;;;;7598:64;;-1:-1:-1;7673:21:0;;7697:16;;;;;;;;;;;;-1:-1:-1;7697:16:0;7673:40;;7734:9;-1:-1:-1;;;;;7734:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7724:4;7729:1;7724:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1;;;;;7724:26:0;;;-1:-1:-1;;;;;7724:26:0;;;;;7779:14;7761:4;7766:1;7761:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7761:33:0;;;:7;;;;;;;;;:33;7805:187;;-1:-1:-1;;;7805:187:0;;:9;:60;;;;;;7873:9;;7805:187;;7898:6;;7919:4;;7946;;7966:15;;7805:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8010:39:0;;-1:-1:-1;;;8010:39:0;;8043:4;8010:39;;;929:51:1;8052:14:0;;-1:-1:-1;8010:14:0;-1:-1:-1;;;;;8010:24:0;;-1:-1:-1;8010:24:0;;-1:-1:-1;902:18:1;;8010:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;;:::i;:::-;8003:63;7498:576;-1:-1:-1;;;;;7498:576:0:o;3945:688::-;-1:-1:-1;;;;;4044:19:0;;4019:22;4044:19;;;:13;:19;;;;;;;4070:32;;;;4113:27;;;4109:518;;;4153:22;4178:27;4191:14;4178:10;:27;:::i;:::-;4153:52;;4254:63;4302:14;4274:25;;:42;;;;:::i;4254:63::-;-1:-1:-1;;;;;4216:34:0;;;;;;:28;:34;;;;;:101;;:34;;;:101;;;;;:::i;:::-;;;;;;;;4346:14;4328;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;4109:518:0;;-1:-1:-1;;4109:518:0;;4391:14;4378:10;:27;4374:253;;;4418:20;4441:27;4458:10;4441:14;:27;:::i;:::-;4418:50;;4517:61;4565:12;4537:25;;:40;;;;:::i;4517:61::-;-1:-1:-1;;;;;4479:34:0;;;;;;:28;:34;;;;;:99;;:34;;;:99;;;;;:::i;:::-;;;;;;;;4607:12;4589:14;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;;4374:253:0;4012:621;3945:688;;:::o;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;381:131::-;-1:-1:-1;;;;;456:31:1;;446:42;;436:70;;502:1;499;492:12;517:247;576:6;629:2;617:9;608:7;604:23;600:32;597:52;;;645:1;642;635:12;597:52;684:9;671:23;703:31;728:5;703:31;:::i;:::-;753:5;517:247;-1:-1:-1;;;517:247:1:o;1331:355::-;1533:2;1515:21;;;1572:2;1552:18;;;1545:30;1611:33;1606:2;1591:18;;1584:61;1677:2;1662:18;;1331:355::o;2038:127::-;2099:10;2094:3;2090:20;2087:1;2080:31;2130:4;2127:1;2120:15;2154:4;2151:1;2144:15;2170:125;2235:9;;;2256:10;;;2253:36;;;2269:18;;:::i;2508:184::-;2578:6;2631:2;2619:9;2610:7;2606:23;2602:32;2599:52;;;2647:1;2644;2637:12;2599:52;-1:-1:-1;2670:16:1;;2508:184;-1:-1:-1;2508:184:1:o;3077:277::-;3144:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:52;;;3213:1;3210;3203:12;3165:52;3245:9;3239:16;3298:5;3291:13;3284:21;3277:5;3274:32;3264:60;;3320:1;3317;3310:12;3359:128;3426:9;;;3447:11;;;3444:37;;;3461:18;;:::i;3840:127::-;3901:10;3896:3;3892:20;3889:1;3882:31;3932:4;3929:1;3922:15;3956:4;3953:1;3946:15;3972:251;4042:6;4095:2;4083:9;4074:7;4070:23;4066:32;4063:52;;;4111:1;4108;4101:12;4063:52;4143:9;4137:16;4162:31;4187:5;4162:31;:::i;4228:127::-;4289:10;4284:3;4280:20;4277:1;4270:31;4320:4;4317:1;4310:15;4344:4;4341:1;4334:15;4360:461;4413:3;4451:5;4445:12;4478:6;4473:3;4466:19;4504:4;4533:2;4528:3;4524:12;4517:19;;4570:2;4563:5;4559:14;4591:1;4601:195;4615:6;4612:1;4609:13;4601:195;;;4680:13;;-1:-1:-1;;;;;4676:39:1;4664:52;;4736:12;;;;4771:15;;;;4712:1;4630:9;4601:195;;;-1:-1:-1;4812:3:1;;4360:461;-1:-1:-1;;;;;4360:461:1:o;4826:332::-;5033:6;5022:9;5015:25;5076:2;5071;5060:9;5056:18;5049:30;4996:4;5096:56;5148:2;5137:9;5133:18;5125:6;5096:56;:::i;5163:1105::-;5258:6;5289:2;5332;5320:9;5311:7;5307:23;5303:32;5300:52;;;5348:1;5345;5338:12;5300:52;5381:9;5375:16;5410:18;5451:2;5443:6;5440:14;5437:34;;;5467:1;5464;5457:12;5437:34;5505:6;5494:9;5490:22;5480:32;;5550:7;5543:4;5539:2;5535:13;5531:27;5521:55;;5572:1;5569;5562:12;5521:55;5601:2;5595:9;5623:2;5619;5616:10;5613:36;;;5629:18;;:::i;:::-;5675:2;5672:1;5668:10;5707:2;5701:9;5770:2;5766:7;5761:2;5757;5753:11;5749:25;5741:6;5737:38;5825:6;5813:10;5810:22;5805:2;5793:10;5790:18;5787:46;5784:72;;;5836:18;;:::i;:::-;5872:2;5865:22;5922:18;;;5956:15;;;;-1:-1:-1;5998:11:1;;;5994:20;;;6026:19;;;6023:39;;;6058:1;6055;6048:12;6023:39;6082:11;;;;6102:135;6118:6;6113:3;6110:15;6102:135;;;6184:10;;6172:23;;6135:12;;;;6215;;;;6102:135;;;6256:6;5163:1105;-1:-1:-1;;;;;;;;5163:1105:1:o;6273:168::-;6346:9;;;6377;;6394:15;;;6388:22;;6374:37;6364:71;;6415:18;;:::i;6446:216::-;6510:9;;;6538:11;;;6485:3;6568:9;;6596:10;;6592:19;;6621:10;;6613:19;;6589:44;6586:70;;;6636:18;;:::i;:::-;6586:70;;6446:216;;;;:::o;6667:217::-;6707:1;6733;6723:132;;6777:10;6772:3;6768:20;6765:1;6758:31;6812:4;6809:1;6802:15;6840:4;6837:1;6830:15;6723:132;-1:-1:-1;6869:9:1;;6667:217::o;10180:502::-;10443:6;10432:9;10425:25;10486:3;10481:2;10470:9;10466:18;10459:31;10406:4;10507:57;10559:3;10548:9;10544:19;10536:6;10507:57;:::i;:::-;-1:-1:-1;;;;;10600:32:1;;;;10595:2;10580:18;;10573:60;-1:-1:-1;10664:2:1;10649:18;10642:34;10499:65;10180:502;-1:-1:-1;;10180:502:1:o;10687:200::-;10753:9;;;10726:4;10781:9;;10809:10;;10821:12;;;10805:29;10844:12;;;10836:21;;10802:56;10799:82;;;10861:18;;:::i;:::-;10799:82;10687:200;;;;:::o

Swarm Source

ipfs://8339f4b92d85105bc78746bb7226ff5b1f05a4be2bc1e90932019ad9eb0ffb85

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.