ETH Price: $2,669.46 (+10.12%)
Gas: 1 Gwei

Contract

0xC7b0F970c1EFBB181194Fc15ccD5C4a2c2Ab863B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Stake204770462024-08-07 13:38:5939 hrs ago1723037939IN
0xC7b0F970...2c2Ab863B
0 ETH0.000336745.59144803
Stake204770352024-08-07 13:36:3539 hrs ago1723037795IN
0xC7b0F970...2c2Ab863B
0 ETH0.000313875.21166507
Stake204770232024-08-07 13:34:1139 hrs ago1723037651IN
0xC7b0F970...2c2Ab863B
0 ETH0.00031945.30452795
Stake204770142024-08-07 13:32:2339 hrs ago1723037543IN
0xC7b0F970...2c2Ab863B
0 ETH0.000336385.5855
Stake204770042024-08-07 13:30:2339 hrs ago1723037423IN
0xC7b0F970...2c2Ab863B
0 ETH0.000273744.545307
Stake204769372024-08-07 13:16:5939 hrs ago1723036619IN
0xC7b0F970...2c2Ab863B
0 ETH0.000243964.05081035
Stake204769272024-08-07 13:14:5939 hrs ago1723036499IN
0xC7b0F970...2c2Ab863B
0 ETH0.000240823.99948827
Stake204769162024-08-07 13:12:4740 hrs ago1723036367IN
0xC7b0F970...2c2Ab863B
0 ETH0.000254.15119824
Stake204768852024-08-07 13:06:3540 hrs ago1723035995IN
0xC7b0F970...2c2Ab863B
0 ETH0.000345184.46341875
Stake204767052024-08-07 12:30:3540 hrs ago1723033835IN
0xC7b0F970...2c2Ab863B
0 ETH0.000341164.41212783
Stake204766802024-08-07 12:25:3540 hrs ago1723033535IN
0xC7b0F970...2c2Ab863B
0 ETH0.000283683.9734075
Stake204761912024-08-07 10:47:1142 hrs ago1723027631IN
0xC7b0F970...2c2Ab863B
0 ETH0.000134312.42290073
Stake204740142024-08-07 3:29:232 days ago1723001363IN
0xC7b0F970...2c2Ab863B
0 ETH0.00014252.36527563
Request Withdraw204678452024-08-06 6:49:592 days ago1722926999IN
0xC7b0F970...2c2Ab863B
0 ETH0.000242864.87269772
Request Withdraw204678302024-08-06 6:46:592 days ago1722926819IN
0xC7b0F970...2c2Ab863B
0 ETH0.000253875.0935387
Request Withdraw204678152024-08-06 6:43:592 days ago1722926639IN
0xC7b0F970...2c2Ab863B
0 ETH0.000227624.56678682
Stake204616352024-08-05 10:01:353 days ago1722852095IN
0xC7b0F970...2c2Ab863B
0 ETH0.0007364617.74233009
Stake204616332024-08-05 10:01:113 days ago1722852071IN
0xC7b0F970...2c2Ab863B
0 ETH0.0011891617.8563995
Request Withdraw204592992024-08-05 2:12:474 days ago1722823967IN
0xC7b0F970...2c2Ab863B
0 ETH0.00619754189.27833436
Stake204576922024-08-04 20:50:354 days ago1722804635IN
0xC7b0F970...2c2Ab863B
0 ETH0.000203093.66282048
Request Withdraw204575832024-08-04 20:28:354 days ago1722803315IN
0xC7b0F970...2c2Ab863B
0 ETH0.000152964.67172629
Request Withdraw204565572024-08-04 17:02:474 days ago1722790967IN
0xC7b0F970...2c2Ab863B
0 ETH0.0003874511.83317188
Withdraw204467732024-08-03 8:19:115 days ago1722673151IN
0xC7b0F970...2c2Ab863B
0 ETH0.000073271.53319811
Stake204465302024-08-03 7:30:235 days ago1722670223IN
0xC7b0F970...2c2Ab863B
0 ETH0.000109581.97631449
Stake204459552024-08-03 5:34:355 days ago1722663275IN
0xC7b0F970...2c2Ab863B
0 ETH0.000085241.63554979
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
204840732024-08-08 13:09:4716 hrs ago1723122587
0xC7b0F970...2c2Ab863B
0 ETH
204770462024-08-07 13:38:5939 hrs ago1723037939
0xC7b0F970...2c2Ab863B
0 ETH
204770352024-08-07 13:36:3539 hrs ago1723037795
0xC7b0F970...2c2Ab863B
0 ETH
204770232024-08-07 13:34:1139 hrs ago1723037651
0xC7b0F970...2c2Ab863B
0 ETH
204770142024-08-07 13:32:2339 hrs ago1723037543
0xC7b0F970...2c2Ab863B
0 ETH
204770042024-08-07 13:30:2339 hrs ago1723037423
0xC7b0F970...2c2Ab863B
0 ETH
204769372024-08-07 13:16:5939 hrs ago1723036619
0xC7b0F970...2c2Ab863B
0 ETH
204769272024-08-07 13:14:5939 hrs ago1723036499
0xC7b0F970...2c2Ab863B
0 ETH
204769162024-08-07 13:12:4740 hrs ago1723036367
0xC7b0F970...2c2Ab863B
0 ETH
204768952024-08-07 13:08:3540 hrs ago1723036115
0xC7b0F970...2c2Ab863B
0 ETH
204768952024-08-07 13:08:3540 hrs ago1723036115
0xC7b0F970...2c2Ab863B
0 ETH
204768852024-08-07 13:06:3540 hrs ago1723035995
0xC7b0F970...2c2Ab863B
0 ETH
204768782024-08-07 13:05:1140 hrs ago1723035911
0xC7b0F970...2c2Ab863B
0 ETH
204767052024-08-07 12:30:3540 hrs ago1723033835
0xC7b0F970...2c2Ab863B
0 ETH
204766802024-08-07 12:25:3540 hrs ago1723033535
0xC7b0F970...2c2Ab863B
0 ETH
204761942024-08-07 10:47:4742 hrs ago1723027667
0xC7b0F970...2c2Ab863B
0 ETH
204761942024-08-07 10:47:4742 hrs ago1723027667
0xC7b0F970...2c2Ab863B
0 ETH
204761912024-08-07 10:47:1142 hrs ago1723027631
0xC7b0F970...2c2Ab863B
0 ETH
204751272024-08-07 7:13:2346 hrs ago1723014803
0xC7b0F970...2c2Ab863B
0 ETH
204740302024-08-07 3:32:352 days ago1723001555
0xC7b0F970...2c2Ab863B
0 ETH
204740302024-08-07 3:32:352 days ago1723001555
0xC7b0F970...2c2Ab863B
0 ETH
204740142024-08-07 3:29:232 days ago1723001363
0xC7b0F970...2c2Ab863B
0 ETH
204740032024-08-07 3:27:112 days ago1723001231
0xC7b0F970...2c2Ab863B
0 ETH
204679142024-08-06 7:03:472 days ago1722927827
0xC7b0F970...2c2Ab863B
0 ETH
204679082024-08-06 7:02:352 days ago1722927755
0xC7b0F970...2c2Ab863B
0 ETH
View All Internal Transactions
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.