ETH Price: $3,277.52 (-1.61%)

Contract

0xC7b0F970c1EFBB181194Fc15ccD5C4a2c2Ab863B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw214607072024-12-22 21:25:3518 hrs ago1734902735IN
0xC7b0F970...2c2Ab863B
0 ETH0.000340157.1177218
Request Withdraw214492992024-12-21 7:09:472 days ago1734764987IN
0xC7b0F970...2c2Ab863B
0 ETH0.000273358.34851814
Stake214487992024-12-21 5:29:112 days ago1734758951IN
0xC7b0F970...2c2Ab863B
0 ETH0.000477586.6891947
Withdraw214487822024-12-21 5:25:472 days ago1734758747IN
0xC7b0F970...2c2Ab863B
0 ETH0.000482027.42836996
Request Withdraw214458432024-12-20 19:32:592 days ago1734723179IN
0xC7b0F970...2c2Ab863B
0 ETH0.0005536416.97815337
Request Withdraw214456652024-12-20 18:57:112 days ago1734721031IN
0xC7b0F970...2c2Ab863B
0 ETH0.0005242216.01018563
Request Withdraw214439252024-12-20 13:06:593 days ago1734700019IN
0xC7b0F970...2c2Ab863B
0 ETH0.0012133237.20817236
Request Withdraw214432642024-12-20 10:54:113 days ago1734692051IN
0xC7b0F970...2c2Ab863B
0 ETH0.0009180528.03835357
Request Withdraw214432512024-12-20 10:51:353 days ago1734691895IN
0xC7b0F970...2c2Ab863B
0 ETH0.0009448728.85730343
Stake214355372024-12-19 9:01:114 days ago1734598871IN
0xC7b0F970...2c2Ab863B
0 ETH0.0007326510.99753463
Withdraw214354932024-12-19 8:52:234 days ago1734598343IN
0xC7b0F970...2c2Ab863B
0 ETH0.0007770411.97698391
Withdraw214353792024-12-19 8:29:114 days ago1734596951IN
0xC7b0F970...2c2Ab863B
0 ETH0.0005149210.77473344
Request Withdraw214353022024-12-19 8:13:474 days ago1734596027IN
0xC7b0F970...2c2Ab863B
0 ETH0.0003564210.93025141
Request Withdraw214352592024-12-19 8:04:594 days ago1734595499IN
0xC7b0F970...2c2Ab863B
0 ETH0.0003769211.55898912
Request Withdraw214352412024-12-19 8:01:234 days ago1734595283IN
0xC7b0F970...2c2Ab863B
0 ETH0.0003661311.22814058
Stake214345272024-12-19 5:37:354 days ago1734586655IN
0xC7b0F970...2c2Ab863B
0 ETH0.000604139.77431976
Withdraw214325002024-12-18 22:48:594 days ago1734562139IN
0xC7b0F970...2c2Ab863B
0 ETH0.0007316215.30924074
Withdraw214323432024-12-18 22:17:354 days ago1734560255IN
0xC7b0F970...2c2Ab863B
0 ETH0.0012349325.84076291
Withdraw214293502024-12-18 12:14:595 days ago1734524099IN
0xC7b0F970...2c2Ab863B
0 ETH0.0012449219.18508382
Withdraw214279762024-12-18 7:37:595 days ago1734507479IN
0xC7b0F970...2c2Ab863B
0 ETH0.0005156410.78976783
Withdraw214236012024-12-17 16:58:355 days ago1734454715IN
0xC7b0F970...2c2Ab863B
0 ETH0.0017210626.52286864
Request Withdraw214234662024-12-17 16:31:355 days ago1734453095IN
0xC7b0F970...2c2Ab863B
0 ETH0.0010704532.69276652
Withdraw214234612024-12-17 16:30:355 days ago1734453035IN
0xC7b0F970...2c2Ab863B
0 ETH0.001542632.27885838
Withdraw214227482024-12-17 14:06:596 days ago1734444419IN
0xC7b0F970...2c2Ab863B
0 ETH0.0013970829.23377675
Request Withdraw214225702024-12-17 13:31:236 days ago1734442283IN
0xC7b0F970...2c2Ab863B
0 ETH0.0008193625.12697776
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:
TwoWeeksNotice

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-11-09
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract TwoWeeksNotice {
    
    struct StakeState {
        uint64 balance;
        uint64 unlockPeriod; // time it takes from requesting withdraw to being able to withdraw
        uint64 lockedUntil; // 0 if withdraw is not requested
        uint64 since;
        uint128 accumulated; // token-days staked
        uint128 accumulatedStrict; // token-days staked sans withdraw periods
    }
    
    event StakeUpdate(address indexed from, uint64 balance);
    event WithdrawRequest(address indexed from, uint64 until);
    
    mapping(address => StakeState) private _states;
    
    IERC20 private token;
    
    constructor (IERC20 _token) public {
        token = _token;
    }

    function getStakeState(address account) external view returns (uint64, uint64, uint64, uint64) {
        StakeState storage ss = _states[account];
        return (ss.balance, ss.unlockPeriod, ss.lockedUntil, ss.since);
    }
    
    function getAccumulated(address account) external view returns (uint128, uint128) {
        StakeState storage ss = _states[account];
        return (ss.accumulated, ss.accumulatedStrict);
    }

    function estimateAccumulated(address account) external view returns (uint128, uint128) {
        StakeState storage ss = _states[account];
        uint128 sum = ss.accumulated;
        uint128 sumStrict = ss.accumulatedStrict;
        if (ss.balance > 0) {
            uint256 until = block.timestamp;
            if (ss.lockedUntil > 0 && ss.lockedUntil < block.timestamp) {
                until = ss.lockedUntil;
            }
            if (until > ss.since) {
                uint128 delta = uint128( (uint256(ss.balance) * (until - ss.since))/86400 );
                sum += delta;
                if (ss.lockedUntil == 0) {
                    sumStrict += delta;
                }
            }
        }
        return (sum, sumStrict);
    }
    
    
    function updateAccumulated(StakeState storage ss) private {
        if (ss.balance > 0) {
            uint256 until = block.timestamp;
            if (ss.lockedUntil > 0 && ss.lockedUntil < block.timestamp) {
                until = ss.lockedUntil;
            }
            if (until > ss.since) {
                uint128 delta = uint128( (uint256(ss.balance) * (until - ss.since))/86400 );
                ss.accumulated += delta;
                if (ss.lockedUntil == 0) {
                    ss.accumulatedStrict += delta;
                }
            }
        }
    }

    function stake(uint64 amount, uint64 unlockPeriod) external {
        StakeState storage ss = _states[msg.sender];
        require(amount > 0, "amount must be positive");
        require(ss.balance <= amount, "cannot decrease balance");
        require(unlockPeriod <= 1000 days, "unlockPeriod cannot be higher than 1000 days");
        require(ss.unlockPeriod <= unlockPeriod, "cannot decrease unlock period");
        require(unlockPeriod >= 2 weeks, "unlock period can't be less than 2 weeks");
        
        updateAccumulated(ss);
        
        uint128 delta = amount - ss.balance;
        if (delta > 0) {
            require(token.transferFrom(msg.sender, address(this), delta), "transfer unsuccessful");
        }

        ss.balance = amount;
        ss.unlockPeriod = unlockPeriod;
        ss.lockedUntil = 0;
        ss.since = uint64(block.timestamp);
        emit StakeUpdate(msg.sender, amount);
    }
    
    function requestWithdraw() external {
         StakeState storage ss = _states[msg.sender];
         require(ss.balance > 0);
         updateAccumulated(ss);
         ss.since = uint64(block.timestamp);
         ss.lockedUntil = uint64(block.timestamp + ss.unlockPeriod);
    }

    function withdraw(address to) external {
        StakeState storage ss = _states[msg.sender];
        require(ss.balance > 0, "must have tokens to withdraw");
        require(ss.lockedUntil != 0, "unlock not requested");
        require(ss.lockedUntil < block.timestamp, "still locked");
        updateAccumulated(ss);
        uint128 balance = ss.balance;
        ss.balance = 0;
        ss.unlockPeriod = 0;
        ss.lockedUntil = 0;
        ss.since = 0;
        require(token.transfer(to, balance), "transfer unsuccessful");
        emit StakeUpdate(msg.sender, 0);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint64","name":"balance","type":"uint64"}],"name":"StakeUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint64","name":"until","type":"uint64"}],"name":"WithdrawRequest","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"estimateAccumulated","outputs":[{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getAccumulated","outputs":[{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getStakeState","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"},{"internalType":"uint64","name":"unlockPeriod","type":"uint64"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610af8380380610af88339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055610a95806100636000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806344ab37b41461006757806351cff8d9146100bc57806364156fed146100e45780637333aad71461010a578063b3423eec14610138578063fd40037014610140575b600080fd5b61008d6004803603602081101561007d57600080fd5b50356001600160a01b031661019a565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6100e2600480360360208110156100d257600080fd5b50356001600160a01b03166101cd565b005b61008d600480360360208110156100fa57600080fd5b50356001600160a01b031661040c565b6100e26004803603604081101561012057600080fd5b506001600160401b03813581169160200135166104fd565b6100e261084f565b6101666004803603602081101561015657600080fd5b50356001600160a01b03166108c9565b604080516001600160401b039586168152938516602085015291841683830152909216606082015290519081900360800190f35b6001600160a01b03166000908152602081905260409020600101546001600160801b0380821692600160801b9092041690565b33600090815260208190526040902080546001600160401b0316610238576040805162461bcd60e51b815260206004820152601c60248201527f6d757374206861766520746f6b656e7320746f20776974686472617700000000604482015290519081900360640190fd5b8054600160801b90046001600160401b0316610292576040805162461bcd60e51b81526020600482015260146024820152731d5b9b1bd8dac81b9bdd081c995c5d595cdd195960621b604482015290519081900360640190fd5b805442600160801b9091046001600160401b0316106102e7576040805162461bcd60e51b815260206004820152600c60248201526b1cdd1a5b1b081b1bd8dad95960a21b604482015290519081900360640190fd5b6102f08161090d565b805460008083556001546040805163a9059cbb60e01b81526001600160a01b0387811660048301526001600160401b0390951660248201819052915191949092169263a9059cbb92604480820193602093909283900390910190829087803b15801561035b57600080fd5b505af115801561036f573d6000803e3d6000fd5b505050506040513d602081101561038557600080fd5b50516103d0576040805162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881d5b9cdd58d8d95cdcd99d5b605a1b604482015290519081900360640190fd5b6040805160008152905133917fa883c874fc7b74e9c9a9f14b66cdd381ebb21a6d11e0a965a628ff143e9a91d6919081900360200190a2505050565b6001600160a01b0381166000908152602081905260408120600181015481548392916001600160801b0380821692600160801b90920416906001600160401b0316156104f25782544290600160801b90046001600160401b0316158015906104855750835442600160801b9091046001600160401b0316105b1561049e57508254600160801b90046001600160401b03165b8354600160c01b90046001600160401b03168111156104f0578354620151806001600160401b03808316600160c01b84048216850302919091049485019491600160801b9004166104ee57918201915b505b505b909350915050915091565b3360009081526020819052604090206001600160401b038316610567576040805162461bcd60e51b815260206004820152601760248201527f616d6f756e74206d75737420626520706f736974697665000000000000000000604482015290519081900360640190fd5b80546001600160401b03808516911611156105c9576040805162461bcd60e51b815260206004820152601760248201527f63616e6e6f742064656372656173652062616c616e6365000000000000000000604482015290519081900360640190fd5b6305265c00826001600160401b031611156106155760405162461bcd60e51b815260040180806020018281038252602c815260200180610a34602c913960400191505060405180910390fd5b80546001600160401b03808416600160401b90920416111561067e576040805162461bcd60e51b815260206004820152601d60248201527f63616e6e6f7420646563726561736520756e6c6f636b20706572696f64000000604482015290519081900360640190fd5b62127500826001600160401b031610156106c95760405162461bcd60e51b8152600401808060200182810382526028815260200180610a0c6028913960400191505060405180910390fd5b6106d28161090d565b80546001600160401b0390811684031680156107bf57600154604080516323b872dd60e01b81523360048201523060248201526001600160801b038416604482015290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b505050506040513d602081101561077457600080fd5b50516107bf576040805162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881d5b9cdd58d8d95cdcd99d5b605a1b604482015290519081900360640190fd5b815467ffffffffffffffff19166001600160401b038581169182176fffffffffffffffff00000000000000001916600160401b86831602176001600160801b0316600160c01b429290921691909102178355604080519182525133917fa883c874fc7b74e9c9a9f14b66cdd381ebb21a6d11e0a965a628ff143e9a91d6916020918190039190910190a250505050565b33600090815260208190526040902080546001600160401b031661087257600080fd5b61087b8161090d565b8054600160401b6001600160401b0342818116600160c01b026001600160c01b03909416939093179182048116909201909116600160801b0267ffffffffffffffff60801b19909116179055565b6001600160a01b03166000908152602081905260409020546001600160401b0380821692600160401b8304821692600160801b8104831692600160c01b9091041690565b80546001600160401b031615610a085780544290600160801b90046001600160401b0316158015906109505750815442600160801b9091046001600160401b0316105b1561096957508054600160801b90046001600160401b03165b8154600160c01b90046001600160401b0316811115610a065781546001830180546fffffffffffffffffffffffffffffffff198116620151806001600160401b03808616600160c01b87048216880302919091046001600160801b0393841681019093169190911790925591600160801b900416610a04576001830180546001600160801b03600160801b8083048216850182160291161790555b505b505b5056fe756e6c6f636b20706572696f642063616e2774206265206c657373207468616e2032207765656b73756e6c6f636b506572696f642063616e6e6f7420626520686967686572207468616e20313030302064617973a26469706673582212208ad9755d1ff791d9a74d701752dffeb3e5c8e8ec15a754a5cd7d90fc45c8674464736f6c634300060c00330000000000000000000000008a2279d4a90b6fe1c4b30fa660cc9f926797baa2

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100625760003560e01c806344ab37b41461006757806351cff8d9146100bc57806364156fed146100e45780637333aad71461010a578063b3423eec14610138578063fd40037014610140575b600080fd5b61008d6004803603602081101561007d57600080fd5b50356001600160a01b031661019a565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6100e2600480360360208110156100d257600080fd5b50356001600160a01b03166101cd565b005b61008d600480360360208110156100fa57600080fd5b50356001600160a01b031661040c565b6100e26004803603604081101561012057600080fd5b506001600160401b03813581169160200135166104fd565b6100e261084f565b6101666004803603602081101561015657600080fd5b50356001600160a01b03166108c9565b604080516001600160401b039586168152938516602085015291841683830152909216606082015290519081900360800190f35b6001600160a01b03166000908152602081905260409020600101546001600160801b0380821692600160801b9092041690565b33600090815260208190526040902080546001600160401b0316610238576040805162461bcd60e51b815260206004820152601c60248201527f6d757374206861766520746f6b656e7320746f20776974686472617700000000604482015290519081900360640190fd5b8054600160801b90046001600160401b0316610292576040805162461bcd60e51b81526020600482015260146024820152731d5b9b1bd8dac81b9bdd081c995c5d595cdd195960621b604482015290519081900360640190fd5b805442600160801b9091046001600160401b0316106102e7576040805162461bcd60e51b815260206004820152600c60248201526b1cdd1a5b1b081b1bd8dad95960a21b604482015290519081900360640190fd5b6102f08161090d565b805460008083556001546040805163a9059cbb60e01b81526001600160a01b0387811660048301526001600160401b0390951660248201819052915191949092169263a9059cbb92604480820193602093909283900390910190829087803b15801561035b57600080fd5b505af115801561036f573d6000803e3d6000fd5b505050506040513d602081101561038557600080fd5b50516103d0576040805162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881d5b9cdd58d8d95cdcd99d5b605a1b604482015290519081900360640190fd5b6040805160008152905133917fa883c874fc7b74e9c9a9f14b66cdd381ebb21a6d11e0a965a628ff143e9a91d6919081900360200190a2505050565b6001600160a01b0381166000908152602081905260408120600181015481548392916001600160801b0380821692600160801b90920416906001600160401b0316156104f25782544290600160801b90046001600160401b0316158015906104855750835442600160801b9091046001600160401b0316105b1561049e57508254600160801b90046001600160401b03165b8354600160c01b90046001600160401b03168111156104f0578354620151806001600160401b03808316600160c01b84048216850302919091049485019491600160801b9004166104ee57918201915b505b505b909350915050915091565b3360009081526020819052604090206001600160401b038316610567576040805162461bcd60e51b815260206004820152601760248201527f616d6f756e74206d75737420626520706f736974697665000000000000000000604482015290519081900360640190fd5b80546001600160401b03808516911611156105c9576040805162461bcd60e51b815260206004820152601760248201527f63616e6e6f742064656372656173652062616c616e6365000000000000000000604482015290519081900360640190fd5b6305265c00826001600160401b031611156106155760405162461bcd60e51b815260040180806020018281038252602c815260200180610a34602c913960400191505060405180910390fd5b80546001600160401b03808416600160401b90920416111561067e576040805162461bcd60e51b815260206004820152601d60248201527f63616e6e6f7420646563726561736520756e6c6f636b20706572696f64000000604482015290519081900360640190fd5b62127500826001600160401b031610156106c95760405162461bcd60e51b8152600401808060200182810382526028815260200180610a0c6028913960400191505060405180910390fd5b6106d28161090d565b80546001600160401b0390811684031680156107bf57600154604080516323b872dd60e01b81523360048201523060248201526001600160801b038416604482015290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b505050506040513d602081101561077457600080fd5b50516107bf576040805162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c881d5b9cdd58d8d95cdcd99d5b605a1b604482015290519081900360640190fd5b815467ffffffffffffffff19166001600160401b038581169182176fffffffffffffffff00000000000000001916600160401b86831602176001600160801b0316600160c01b429290921691909102178355604080519182525133917fa883c874fc7b74e9c9a9f14b66cdd381ebb21a6d11e0a965a628ff143e9a91d6916020918190039190910190a250505050565b33600090815260208190526040902080546001600160401b031661087257600080fd5b61087b8161090d565b8054600160401b6001600160401b0342818116600160c01b026001600160c01b03909416939093179182048116909201909116600160801b0267ffffffffffffffff60801b19909116179055565b6001600160a01b03166000908152602081905260409020546001600160401b0380821692600160401b8304821692600160801b8104831692600160c01b9091041690565b80546001600160401b031615610a085780544290600160801b90046001600160401b0316158015906109505750815442600160801b9091046001600160401b0316105b1561096957508054600160801b90046001600160401b03165b8154600160c01b90046001600160401b0316811115610a065781546001830180546fffffffffffffffffffffffffffffffff198116620151806001600160401b03808616600160c01b87048216880302919091046001600160801b0393841681019093169190911790925591600160801b900416610a04576001830180546001600160801b03600160801b8083048216850182160291161790555b505b505b5056fe756e6c6f636b20706572696f642063616e2774206265206c657373207468616e2032207765656b73756e6c6f636b506572696f642063616e6e6f7420626520686967686572207468616e20313030302064617973a26469706673582212208ad9755d1ff791d9a74d701752dffeb3e5c8e8ec15a754a5cd7d90fc45c8674464736f6c634300060c0033

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

0000000000000000000000008a2279d4a90b6fe1c4b30fa660cc9f926797baa2

-----Decoded View---------------
Arg [0] : _token (address): 0x8A2279d4A90B6fe1C4B30fa660cC9f926797bAA2

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


Deployed Bytecode Sourcemap

2777:4378:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3730:197;;;;;;;;;;;;;;;;-1:-1:-1;3730:197:0;-1:-1:-1;;;;;3730:197:0;;:::i;:::-;;;;;-1:-1:-1;;;;;3730:197:0;;;;;;-1:-1:-1;;;;;3730:197:0;;;;;;;;;;;;;;;;6562:590;;;;;;;;;;;;;;;;-1:-1:-1;6562:590:0;-1:-1:-1;;;;;6562:590:0;;:::i;:::-;;3935:770;;;;;;;;;;;;;;;;-1:-1:-1;3935:770:0;-1:-1:-1;;;;;3935:770:0;;:::i;5319:940::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5319:940:0;;;;;;;;;;:::i;6271:283::-;;;:::i;3491:227::-;;;;;;;;;;;;;;;;-1:-1:-1;3491:227:0;-1:-1:-1;;;;;3491:227:0;;:::i;:::-;;;;-1:-1:-1;;;;;3491:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3730:197;-1:-1:-1;;;;;3847:16:0;3794:7;3847:16;;;;;;;;;;3882:14;;;-1:-1:-1;;;;;3882:14:0;;;;-1:-1:-1;;;3898:20:0;;;;;3730:197::o;6562:590::-;6644:10;6612:21;6636:19;;;;;;;;;;6674:10;;-1:-1:-1;;;;;6674:10:0;6666:55;;;;;-1:-1:-1;;;6666:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6740:14;;-1:-1:-1;;;6740:14:0;;-1:-1:-1;;;;;6740:14:0;6732:52;;;;;-1:-1:-1;;;6732:52:0;;;;;;;;;;;;-1:-1:-1;;;6732:52:0;;;;;;;;;;;;;;;6803:14;;6820:15;-1:-1:-1;;;6803:14:0;;;-1:-1:-1;;;;;6803:14:0;:32;6795:57;;;;;-1:-1:-1;;;6795:57:0;;;;;;;;;;;;-1:-1:-1;;;6795:57:0;;;;;;;;;;;;;;;6863:21;6881:2;6863:17;:21::i;:::-;6913:10;;6895:15;7018:12;;;6913:10;7049:5;:27;;;-1:-1:-1;;;7049:27:0;;-1:-1:-1;;;;;7049:27:0;;;;;;;-1:-1:-1;;;;;6913:10:0;;;7049:27;;;;;;;;6913:10;;7049:5;;;;:14;;:27;;;;;;;;;;;;;;;;;;:5;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7049:27:0;7041:61;;;;;-1:-1:-1;;;7041:61:0;;;;;;;;;;;;-1:-1:-1;;;7041:61:0;;;;;;;;;;;;;;;7118:26;;;7142:1;7118:26;;;;7130:10;;7118:26;;;;;;;;;;6562:590;;;:::o;3935:770::-;-1:-1:-1;;;;;4057:16:0;;4004:7;4057:16;;;;;;;;;;4098:14;;;;4178:10;;4004:7;;4057:16;-1:-1:-1;;;;;4098:14:0;;;;-1:-1:-1;;;4143:20:0;;;;;-1:-1:-1;;;;;4178:10:0;:14;4174:490;;4259:14;;4225:15;;-1:-1:-1;;;4259:14:0;;-1:-1:-1;;;;;4259:14:0;:18;;;;:54;;-1:-1:-1;4281:14:0;;4298:15;-1:-1:-1;;;4281:14:0;;;-1:-1:-1;;;;;4281:14:0;:32;4259:54;4255:117;;;-1:-1:-1;4342:14:0;;-1:-1:-1;;;4342:14:0;;-1:-1:-1;;;;;4342:14:0;4255:117;4398:8;;-1:-1:-1;;;4398:8:0;;-1:-1:-1;;;;;4398:8:0;4390:16;;4386:267;;;4484:8;;4495:5;-1:-1:-1;;;;;4461:10:0;;;-1:-1:-1;;;4484:8:0;;;;4476:16;;4453:40;4452:48;;;;4521:12;;;;4452:48;-1:-1:-1;;;4556:14:0;;;4552:86;;4600:18;;;;4552:86;4386:267;;4174:490;;4682:3;;-1:-1:-1;4687:9:0;-1:-1:-1;;3935:770:0;;;:::o;5319:940::-;5422:10;5390:21;5414:19;;;;;;;;;;-1:-1:-1;;;;;5452:10:0;;5444:46;;;;;-1:-1:-1;;;5444:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5509:10;;-1:-1:-1;;;;;5509:20:0;;;:10;;:20;;5501:56;;;;;-1:-1:-1;;;5501:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5592:9;5576:12;-1:-1:-1;;;;;5576:25:0;;;5568:82;;;;-1:-1:-1;;;5568:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5669:15;;-1:-1:-1;;;;;5669:31:0;;;-1:-1:-1;;;5669:15:0;;;;:31;;5661:73;;;;;-1:-1:-1;;;5661:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5769:7;5753:12;-1:-1:-1;;;;;5753:23:0;;;5745:76;;;;-1:-1:-1;;;5745:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5842:21;5860:2;5842:17;:21::i;:::-;5909:10;;-1:-1:-1;;;;;5909:10:0;;;5900:19;;5884:35;5934:9;;5930:128;;5968:5;;:52;;;-1:-1:-1;;;5968:52:0;;5987:10;5968:52;;;;6007:4;5968:52;;;;-1:-1:-1;;;;;5968:52:0;;;;;;;;-1:-1:-1;;;;;5968:5:0;;;;:18;;:52;;;;;;;;;;;;;;;:5;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5968:52:0;5960:86;;;;;-1:-1:-1;;;5960:86:0;;;;;;;;;;;;-1:-1:-1;;;5960:86:0;;;;;;;;;;;;;;;6070:19;;-1:-1:-1;;6070:19:0;-1:-1:-1;;;;;6070:19:0;;;;;;-1:-1:-1;;6100:30:0;-1:-1:-1;;;6100:30:0;;;;;-1:-1:-1;;;;;6170:34:0;-1:-1:-1;;;6188:15:0;6170:34;;;;;;;;;;;6220:31;;;;;;;6232:10;;6220:31;;;;;;;;;;;;;5319:940;;;;:::o;6271:283::-;6351:10;6319:21;6343:19;;;;;;;;;;6382:10;;-1:-1:-1;;;;;6382:10:0;6374:23;;;;;;6409:21;6427:2;6409:17;:21::i;:::-;6442:34;;-1:-1:-1;;;;;;;;6460:15:0;6442:34;;;-1:-1:-1;;;6442:34:0;-1:-1:-1;;;;;6442:34:0;;;;;;;6530:15;;;;;6512:33;;;6488:58;;;-1:-1:-1;;;6488:58:0;-1:-1:-1;;;;6488:58:0;;;;;;6271:283::o;3491:227::-;-1:-1:-1;;;;;3621:16:0;3554:6;3621:16;;;;;;;;;;3656:10;-1:-1:-1;;;;;3656:10:0;;;;-1:-1:-1;;;3668:15:0;;;;;-1:-1:-1;;;3685:14:0;;;;;-1:-1:-1;;;3701:8:0;;;;;3491:227::o;4723:588::-;4796:10;;-1:-1:-1;;;;;4796:10:0;:14;4792:512;;4877:14;;4843:15;;-1:-1:-1;;;4877:14:0;;-1:-1:-1;;;;;4877:14:0;:18;;;;:54;;-1:-1:-1;4899:14:0;;4916:15;-1:-1:-1;;;4899:14:0;;;-1:-1:-1;;;;;4899:14:0;:32;4877:54;4873:117;;;-1:-1:-1;4960:14:0;;-1:-1:-1;;;4960:14:0;;-1:-1:-1;;;;;4960:14:0;4873:117;5016:8;;-1:-1:-1;;;5016:8:0;;-1:-1:-1;;;;;5016:8:0;5008:16;;5004:289;;;5102:8;;5139:14;;;:23;;-1:-1:-1;;5139:23:0;;5113:5;-1:-1:-1;;;;;5079:10:0;;;-1:-1:-1;;;5102:8:0;;;;5094:16;;5071:40;5070:48;;;;-1:-1:-1;;;;;5139:23:0;;;;;;;;;;;;;;;5070:48;-1:-1:-1;;;5185:14:0;;;5181:97;;5229:20;;;:29;;-1:-1:-1;;;;;;;;5229:29:0;;;;;;;;;;;;;;;5181:97;5004:289;;4792:512;;4723:588;:::o

Swarm Source

ipfs://8ad9755d1ff791d9a74d701752dffeb3e5c8e8ec15a754a5cd7d90fc45c86744

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.