ETH Price: $2,045.39 (+0.91%)

Contract

0xC7b0F970c1EFBB181194Fc15ccD5C4a2c2Ab863B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Stake246337582026-03-11 10:53:3515 hrs ago1773226415IN
0xC7b0F970...2c2Ab863B
0 ETH0.000115522.08328894
Withdraw246227202026-03-09 21:52:472 days ago1773093167IN
0xC7b0F970...2c2Ab863B
0 ETH0.000098092.05255631
Request Withdraw246213002026-03-09 17:06:472 days ago1773076007IN
0xC7b0F970...2c2Ab863B
0 ETH0.000106812.14293778
Withdraw246165042026-03-09 1:03:593 days ago1773018239IN
0xC7b0F970...2c2Ab863B
0 ETH0.00014182.18524677
Request Withdraw245898182026-03-05 7:37:356 days ago1772696255IN
0xC7b0F970...2c2Ab863B
0 ETH0.000034251.04614843
Withdraw245825512026-03-04 7:18:597 days ago1772608739IN
0xC7b0F970...2c2Ab863B
0 ETH0.000132322.03917051
Stake245809972026-03-04 2:06:118 days ago1772589971IN
0xC7b0F970...2c2Ab863B
0 ETH0.00001090.16370059
Stake245776352026-03-03 14:50:358 days ago1772549435IN
0xC7b0F970...2c2Ab863B
0 ETH0.00014852.40274041
Withdraw245731472026-03-02 23:48:479 days ago1772495327IN
0xC7b0F970...2c2Ab863B
0 ETH0.000097982.05027381
Withdraw245613292026-03-01 8:14:2310 days ago1772352863IN
0xC7b0F970...2c2Ab863B
0 ETH0.000097072.03128855
Withdraw245534932026-02-28 5:58:2311 days ago1772258303IN
0xC7b0F970...2c2Ab863B
0 ETH0.000132082.0355014
Withdraw245407612026-02-26 11:21:5913 days ago1772104919IN
0xC7b0F970...2c2Ab863B
0 ETH0.000098842.06827148
Withdraw245130062026-02-22 14:27:4717 days ago1771770467IN
0xC7b0F970...2c2Ab863B
0 ETH0.000097582.04205305
Request Withdraw244848412026-02-18 16:13:1121 days ago1771431191IN
0xC7b0F970...2c2Ab863B
0 ETH0.000073512.24514412
Request Withdraw244825402026-02-18 8:31:1121 days ago1771403471IN
0xC7b0F970...2c2Ab863B
0 ETH0.000101742.04138622
Request Withdraw244821522026-02-18 7:13:3521 days ago1771398815IN
0xC7b0F970...2c2Ab863B
0 ETH0.000066572.03311922
Request Withdraw244790272026-02-17 20:45:5922 days ago1771361159IN
0xC7b0F970...2c2Ab863B
0 ETH0.000067592.06450573
Request Withdraw244726702026-02-16 23:28:4723 days ago1771284527IN
0xC7b0F970...2c2Ab863B
0 ETH0.000066542.03234337
Request Withdraw244310222026-02-11 4:04:2328 days ago1770782663IN
0xC7b0F970...2c2Ab863B
0 ETH0.000101472.03589914
Request Withdraw243960522026-02-06 6:40:2333 days ago1770360023IN
0xC7b0F970...2c2Ab863B
0 ETH0.000084252.57319055
Request Withdraw243367742026-01-28 23:57:4742 days ago1769644667IN
0xC7b0F970...2c2Ab863B
0 ETH0.000002480.04983448
Stake242897172026-01-22 10:25:3548 days ago1769077535IN
0xC7b0F970...2c2Ab863B
0 ETH0.000108632.14479507
Request Withdraw242835962026-01-21 13:54:4749 days ago1769003687IN
0xC7b0F970...2c2Ab863B
0 ETH0.000004460.13627423
Withdraw242745232026-01-20 7:33:3550 days ago1768894415IN
0xC7b0F970...2c2Ab863B
0 ETH0.000136622.10545552
Request Withdraw242728952026-01-20 2:06:5951 days ago1768874819IN
0xC7b0F970...2c2Ab863B
0 ETH0.000066462.02983482
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
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:
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

API
[{"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 Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.