ETH Price: $3,159.37 (+1.99%)

Contract

0xC38cbAA2BB998ea0bbB33d006C107560aaCCbc08
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim169034232023-03-25 8:55:11604 days ago1679734511IN
0xC38cbAA2...0aaCCbc08
0 ETH0.0015380316.37544975
Accept Ownership133156762021-09-28 17:49:541147 days ago1632851394IN
0xC38cbAA2...0aaCCbc08
0 ETH0.00518197183.4718336
Give Ownership132158322021-09-13 6:46:331162 days ago1631515593IN
0xC38cbAA2...0aaCCbc08
0 ETH0.0018213339.48099259
0x60c06040131790112021-09-07 13:53:241168 days ago1631022804IN
 Create: BigSBsaleClaim
0 ETH0.10164464108.03376552

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BigSBsaleClaim

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: public-claim.sol
// SPDX-License-Identifier: UNLICENSE
// Rzucam 70mln worków w tłum w tłum .. kto łapie ten jara ... XD

/**
Apes Together Strong!

About BigShortBets DeFi project:

We are creating a social&trading p2p platform that guarantees encrypted interaction between investors.
Logging in is possible via a cryptocurrency wallet (e.g. Metamask).
The security level is one comparable to the Tor network.

https://bigsb.io/ - Our Tool
https://bigshortbets.com - Project&Team info

Video explainer:
https://youtu.be/wbhUo5IvKdk

Zaorski, You Son of a bitch I’m in …
*/

pragma solidity 0.8.7;
import "./owned.sol";
import "./reentryGuard.sol";
import "./interfaces.sol";

contract BigSBsaleClaim is Owned, Guarded {
    /**
        Claiming contract for BigSB public sale
        @param sale address of sale contract
        @param token address of BigSB token tontract
     */
    constructor(address sale, address token) {
        saleContract = sale;
        tokenContract = token;
        emergencyUnlock = block.timestamp + 720 days;
    }

    /// timestamp moving 2 years of last lock made
    uint256 public emergencyUnlock;

    address public immutable tokenContract;
    address public immutable saleContract;

    struct Lock {
        uint256 reflection;
        uint256 locktime;
    }

    /// Storage of user locks by address
    mapping(address => Lock[]) public userLocks;

    /**
        Add lock for user, can be called only by sale contract.
        Using contract reflection rate it can earn from transfer fees.
        @param user address of user
        @param reflection amount of reflection tokens
        @param locktime timestamp after which tokens can be released
     */
    function addLock(
        address user,
        uint256 reflection,
        uint256 locktime
    ) external {
        require(msg.sender == saleContract, "Only sale contract");
        userLocks[user].push(Lock(reflection, locktime));
        emergencyUnlock = block.timestamp + 720 days;
    }

    /// claim all tokens than can be claimed
    function claim() external guarded {
        uint256 len = userLocks[msg.sender].length;
        require(len > 0, "Nothing locked");
        uint256 i;
        uint256 timeNow = block.timestamp;
        uint256 amt;
        for (i; i < len; i++) {
            Lock memory l = userLocks[msg.sender][i];
            if (timeNow > l.locktime && l.reflection > 0) {
                amt += IReflect(tokenContract).tokenFromReflection(
                    l.reflection
                );
                // tokens taken
                userLocks[msg.sender][i].reflection = 0;
            }
        }
        require(amt > 0, "Nothing to claim");
        IERC20(tokenContract).transfer(msg.sender, amt);
    }

    /// return all user locks
    function getUserLocks(address user) external view returns (Lock[] memory) {
        return userLocks[user];
    }

    /// return balance of user from all locks
    function balanceOf(address user) external view returns (uint256 amt) {
        uint256 len = userLocks[user].length;
        if (len == 0) return amt;
        uint256 i;
        for (i; i < len; i++) {
            amt += IReflect(tokenContract).tokenFromReflection(
                userLocks[user][i].reflection
            );
        }
        return amt;
    }

    /// How many tokens user can claim now?
    function claimable(address user) external view returns (uint256 amt) {
        uint256 len = userLocks[user].length;
        if (len == 0) return amt;
        uint256 i;
        uint256 timeNow = block.timestamp;
        for (i; i < len; i++) {
            Lock memory l = userLocks[user][i];
            if (timeNow > l.locktime) {
                amt += IReflect(tokenContract).tokenFromReflection(
                    l.reflection
                );
            }
        }
        return amt;
    }

    //
    // Emergency functions
    //
    /**
        Take ETH from contract
    */
    function withdrawEth() external onlyOwner {
        payable(owner).transfer(address(this).balance);
    }

    /**
        Take any ERC20 from contract
        BigSB is possible after 2 years form last lock event
    */
    function withdrawErc20(address token) external onlyOwner {
        if (token == tokenContract) {
            require(block.timestamp > emergencyUnlock, "Too soon");
        }
        uint256 balance = IERC20(token).balanceOf(address(this));
        require(balance > 0, "Nothing to withdraw");
        // use broken IERC20
        IUsdt(token).transfer(owner, balance);
    }
}
//This is fine!

File 2 of 4: interfaces.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

/**
 * @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
    );
}

// Reflection
interface IReflect {
    function tokenFromReflection(uint256 rAmount)
        external
        view
        returns (uint256);

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee)
        external
        view
        returns (uint256);

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

/// ChainLink ETH/USD oracle
interface IChainLink {
    // chainlink ETH/USD oracle
    // answer|int256 :  216182781556 - 8 decimals
    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

/// USDT is not ERC-20 compliant, not returning true on transfers
interface IUsdt {
    function transfer(address, uint256) external;

    function transferFrom(
        address,
        address,
        uint256
    ) external;
}

// Check ETH send to first presale
// Yes, there is a typo
interface IPresale1 {
    function blanceOf(address user) external view returns (uint256 amt);
}

// Check tokens bought in second presale
// There is bug in ETH deposits, we need handle it
// Also "tokensBoughtOf" calculation is broken, so we do all math
interface IPresale2 {
    function ethDepositOf(address user) external view returns (uint256 amt);

    function usdDepositOf(address user) external view returns (uint256 amt);
}

// Check final sale tokens bought
interface ISale {
    function tokensBoughtOf(address user) external view returns (uint256 amt);
}

interface IClaimSale {
    function addLock(
        address user,
        uint256 reflection,
        uint256 locktime
    ) external;
}

File 3 of 4: owned.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipChanged(address from, address to);

    constructor() {
        owner = msg.sender;
        emit OwnershipChanged(address(0), msg.sender);
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner");
        _;
    }

    // owner can give super-rights to someone
    function giveOwnership(address user) external onlyOwner {
        require(user != address(0), "User renounceOwnership");
        newOwner = user;
    }

    // new owner need to accept
    function acceptOwnership() external {
        require(msg.sender == newOwner, "Only NewOwner");
        emit OwnershipChanged(owner, newOwner);
        owner = msg.sender;
        delete newOwner;
    }
}

File 4 of 4: reentryGuard.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

contract Guarded {
    uint256 constant NOT_ENTERED = 1;
    uint256 constant ENTERED = 2;
    uint256 entryState = NOT_ENTERED;

    modifier guarded() {
        require(entryState == NOT_ENTERED, "Reentry");
        entryState = ENTERED;
        _;
        entryState = NOT_ENTERED;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"sale","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipChanged","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"reflection","type":"uint256"},{"internalType":"uint256","name":"locktime","type":"uint256"}],"name":"addLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserLocks","outputs":[{"components":[{"internalType":"uint256","name":"reflection","type":"uint256"},{"internalType":"uint256","name":"locktime","type":"uint256"}],"internalType":"struct BigSBsaleClaim.Lock[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"giveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userLocks","outputs":[{"internalType":"uint256","name":"reflection","type":"uint256"},{"internalType":"uint256","name":"locktime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawErc20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c0604052600160025534801561001557600080fd5b50604051611043380380611043833981016040819052610034916100d1565b600080546001600160a01b0319163390811782556040805192835260208301919091527f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b910160405180910390a16001600160601b0319606083811b821660a05282901b166080526100aa426303b53800610104565b6003555061012a9050565b80516001600160a01b03811681146100cc57600080fd5b919050565b600080604083850312156100e457600080fd5b6100ed836100b5565b91506100fb602084016100b5565b90509250929050565b6000821982111561012557634e487b7160e01b600052601160045260246000fd5b500190565b60805160601c60a05160601c610ec461017f600039600081816102290152610b8501526000818161015301528181610395015281816105570152818161068d0152818161074e01526109da0152610ec46000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a0ef91df11610097578063d4ee1d9011610066578063d4ee1d9014610211578063daf6ca3014610224578063e3a0a1481461024b578063f2c399921461025e57600080fd5b8063a0ef91df146101bb578063aa33fedb146101c3578063c7e42b1b146101eb578063cc9ac376146101fe57600080fd5b806355a373d6116100d357806355a373d61461014e57806370a082311461018d57806379ba5097146101a05780638da5cb5b146101a857600080fd5b806323a35de9146100fa578063402914f5146101235780634e71d92d14610144575b600080fd5b61010d610108366004610d02565b610267565b60405161011a9190610dbc565b60405180910390f35b610136610131366004610d02565b6102f0565b60405190815260200161011a565b61014c61043f565b005b6101757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161011a565b61013661019b366004610d02565b61071d565b61014c610856565b600054610175906001600160a01b031681565b61014c61090b565b6101d66101d1366004610d24565b610972565b6040805192835260208301919091520161011a565b61014c6101f9366004610d02565b6109ae565b61014c61020c366004610d4e565b610b7a565b600154610175906001600160a01b031681565b6101757f000000000000000000000000000000000000000000000000000000000000000081565b61014c610259366004610d02565b610c4b565b61013660035481565b6001600160a01b0381166000908152600460209081526040808320805482518185028101850190935280835260609492939192909184015b828210156102e55783829060005260206000209060020201604051806040016040529081600082015481526020016001820154815250508152602001906001019061029f565b505050509050919050565b6001600160a01b038116600090815260046020526040812054806103145750919050565b6000425b82821015610437576001600160a01b038516600090815260046020526040812080548490811061034a5761034a610e78565b60009182526020918290206040805180820190915260029092020180548252600101549181018290529150821115610424578051604051632d83811960e01b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632d8381199060240160206040518083038186803b1580156103df57600080fd5b505afa1580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104179190610da3565b6104219086610e2f565b94505b508161042f81610e47565b925050610318565b505050919050565b6001600254146104805760405162461bcd60e51b81526020600482015260076024820152665265656e74727960c81b60448201526064015b60405180910390fd5b6002805533600090815260046020526040902054806104d25760405162461bcd60e51b815260206004820152600e60248201526d139bdd1a1a5b99c81b1bd8dad95960921b6044820152606401610477565b600042815b8383101561062e5733600090815260046020526040812080548590811061050057610500610e78565b60009182526020918290206040805180820190915260029092020180548252600101549181018290529150831180156105395750805115155b1561061b578051604051632d83811960e01b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632d8381199060240160206040518083038186803b1580156105a157600080fd5b505afa1580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d99190610da3565b6105e39083610e2f565b336000908152600460205260408120805492945090918690811061060957610609610e78565b60009182526020909120600290910201555b508261062681610e47565b9350506104d7565b600081116106715760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b6044820152606401610477565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90604401602060405180830381600087803b1580156106d957600080fd5b505af11580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107119190610d81565b50506001600255505050565b6001600160a01b038116600090815260046020526040812054806107415750919050565b60005b8181101561084f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d83811960046000876001600160a01b03166001600160a01b0316815260200190815260200160002083815481106107b1576107b1610e78565b9060005260206000209060020201600001546040518263ffffffff1660e01b81526004016107e191815260200190565b60206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190610da3565b61083b9084610e2f565b92508061084781610e47565b915050610744565b5050919050565b6001546001600160a01b031633146108a05760405162461bcd60e51b815260206004820152600d60248201526c27b7363c902732bba7bbb732b960991b6044820152606401610477565b600054600154604080516001600160a01b0393841681529290911660208301527f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b910160405180910390a1600080546001600160a01b03199081163317909155600180549091169055565b6000546001600160a01b031633146109355760405162461bcd60e51b815260040161047790610e0b565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561096f573d6000803e3d6000fd5b50565b6004602052816000526040600020818154811061098e57600080fd5b600091825260209091206002909102018054600190910154909250905082565b6000546001600160a01b031633146109d85760405162461bcd60e51b815260040161047790610e0b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161415610a4e576003544211610a4e5760405162461bcd60e51b81526020600482015260086024820152672a37b79039b7b7b760c11b6044820152606401610477565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190610da3565b905060008111610b105760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b6044820152606401610477565b60005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401600060405180830381600087803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610be75760405162461bcd60e51b815260206004820152601260248201527113db9b1e481cd85b194818dbdb9d1c9858dd60721b6044820152606401610477565b6001600160a01b0383166000908152600460209081526040808320815180830190925285825281830185815281546001818101845592865293909420915160029093029091019182559151910155610c43426303b53800610e2f565b600355505050565b6000546001600160a01b03163314610c755760405162461bcd60e51b815260040161047790610e0b565b6001600160a01b038116610cc45760405162461bcd60e51b81526020600482015260166024820152750557365722072656e6f756e63654f776e6572736869760541b6044820152606401610477565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b0381168114610cfd57600080fd5b919050565b600060208284031215610d1457600080fd5b610d1d82610ce6565b9392505050565b60008060408385031215610d3757600080fd5b610d4083610ce6565b946020939093013593505050565b600080600060608486031215610d6357600080fd5b610d6c84610ce6565b95602085013595506040909401359392505050565b600060208284031215610d9357600080fd5b81518015158114610d1d57600080fd5b600060208284031215610db557600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b82811015610dfe57815180518552860151868501529284019290850190600101610dd9565b5091979650505050505050565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b60008219821115610e4257610e42610e62565b500190565b6000600019821415610e5b57610e5b610e62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122028d7fc522c64294bd2acacc00b353332b3e294bd44d3ae7007ac03e6d7cc76e464736f6c63430008070033000000000000000000000000286b2eb4f4dbf2dffc1fcb00bab547f103be5fd4000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f6

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a0ef91df11610097578063d4ee1d9011610066578063d4ee1d9014610211578063daf6ca3014610224578063e3a0a1481461024b578063f2c399921461025e57600080fd5b8063a0ef91df146101bb578063aa33fedb146101c3578063c7e42b1b146101eb578063cc9ac376146101fe57600080fd5b806355a373d6116100d357806355a373d61461014e57806370a082311461018d57806379ba5097146101a05780638da5cb5b146101a857600080fd5b806323a35de9146100fa578063402914f5146101235780634e71d92d14610144575b600080fd5b61010d610108366004610d02565b610267565b60405161011a9190610dbc565b60405180910390f35b610136610131366004610d02565b6102f0565b60405190815260200161011a565b61014c61043f565b005b6101757f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f681565b6040516001600160a01b03909116815260200161011a565b61013661019b366004610d02565b61071d565b61014c610856565b600054610175906001600160a01b031681565b61014c61090b565b6101d66101d1366004610d24565b610972565b6040805192835260208301919091520161011a565b61014c6101f9366004610d02565b6109ae565b61014c61020c366004610d4e565b610b7a565b600154610175906001600160a01b031681565b6101757f000000000000000000000000286b2eb4f4dbf2dffc1fcb00bab547f103be5fd481565b61014c610259366004610d02565b610c4b565b61013660035481565b6001600160a01b0381166000908152600460209081526040808320805482518185028101850190935280835260609492939192909184015b828210156102e55783829060005260206000209060020201604051806040016040529081600082015481526020016001820154815250508152602001906001019061029f565b505050509050919050565b6001600160a01b038116600090815260046020526040812054806103145750919050565b6000425b82821015610437576001600160a01b038516600090815260046020526040812080548490811061034a5761034a610e78565b60009182526020918290206040805180820190915260029092020180548252600101549181018290529150821115610424578051604051632d83811960e01b815260048101919091527f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b031690632d8381199060240160206040518083038186803b1580156103df57600080fd5b505afa1580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104179190610da3565b6104219086610e2f565b94505b508161042f81610e47565b925050610318565b505050919050565b6001600254146104805760405162461bcd60e51b81526020600482015260076024820152665265656e74727960c81b60448201526064015b60405180910390fd5b6002805533600090815260046020526040902054806104d25760405162461bcd60e51b815260206004820152600e60248201526d139bdd1a1a5b99c81b1bd8dad95960921b6044820152606401610477565b600042815b8383101561062e5733600090815260046020526040812080548590811061050057610500610e78565b60009182526020918290206040805180820190915260029092020180548252600101549181018290529150831180156105395750805115155b1561061b578051604051632d83811960e01b815260048101919091527f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b031690632d8381199060240160206040518083038186803b1580156105a157600080fd5b505afa1580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d99190610da3565b6105e39083610e2f565b336000908152600460205260408120805492945090918690811061060957610609610e78565b60009182526020909120600290910201555b508261062681610e47565b9350506104d7565b600081116106715760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b6044820152606401610477565b60405163a9059cbb60e01b8152336004820152602481018290527f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b03169063a9059cbb90604401602060405180830381600087803b1580156106d957600080fd5b505af11580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107119190610d81565b50506001600255505050565b6001600160a01b038116600090815260046020526040812054806107415750919050565b60005b8181101561084f577f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b0316632d83811960046000876001600160a01b03166001600160a01b0316815260200190815260200160002083815481106107b1576107b1610e78565b9060005260206000209060020201600001546040518263ffffffff1660e01b81526004016107e191815260200190565b60206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190610da3565b61083b9084610e2f565b92508061084781610e47565b915050610744565b5050919050565b6001546001600160a01b031633146108a05760405162461bcd60e51b815260206004820152600d60248201526c27b7363c902732bba7bbb732b960991b6044820152606401610477565b600054600154604080516001600160a01b0393841681529290911660208301527f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b910160405180910390a1600080546001600160a01b03199081163317909155600180549091169055565b6000546001600160a01b031633146109355760405162461bcd60e51b815260040161047790610e0b565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561096f573d6000803e3d6000fd5b50565b6004602052816000526040600020818154811061098e57600080fd5b600091825260209091206002909102018054600190910154909250905082565b6000546001600160a01b031633146109d85760405162461bcd60e51b815260040161047790610e0b565b7f000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f66001600160a01b0316816001600160a01b03161415610a4e576003544211610a4e5760405162461bcd60e51b81526020600482015260086024820152672a37b79039b7b7b760c11b6044820152606401610477565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190610da3565b905060008111610b105760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b6044820152606401610477565b60005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401600060405180830381600087803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000286b2eb4f4dbf2dffc1fcb00bab547f103be5fd41614610be75760405162461bcd60e51b815260206004820152601260248201527113db9b1e481cd85b194818dbdb9d1c9858dd60721b6044820152606401610477565b6001600160a01b0383166000908152600460209081526040808320815180830190925285825281830185815281546001818101845592865293909420915160029093029091019182559151910155610c43426303b53800610e2f565b600355505050565b6000546001600160a01b03163314610c755760405162461bcd60e51b815260040161047790610e0b565b6001600160a01b038116610cc45760405162461bcd60e51b81526020600482015260166024820152750557365722072656e6f756e63654f776e6572736869760541b6044820152606401610477565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b0381168114610cfd57600080fd5b919050565b600060208284031215610d1457600080fd5b610d1d82610ce6565b9392505050565b60008060408385031215610d3757600080fd5b610d4083610ce6565b946020939093013593505050565b600080600060608486031215610d6357600080fd5b610d6c84610ce6565b95602085013595506040909401359392505050565b600060208284031215610d9357600080fd5b81518015158114610d1d57600080fd5b600060208284031215610db557600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b82811015610dfe57815180518552860151868501529284019290850190600101610dd9565b5091979650505050505050565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b60008219821115610e4257610e42610e62565b500190565b6000600019821415610e5b57610e5b610e62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122028d7fc522c64294bd2acacc00b353332b3e294bd44d3ae7007ac03e6d7cc76e464736f6c63430008070033

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

000000000000000000000000286b2eb4f4dbf2dffc1fcb00bab547f103be5fd4000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f6

-----Decoded View---------------
Arg [0] : sale (address): 0x286b2eb4f4DBF2dFFc1FcB00BAB547f103be5fd4
Arg [1] : token (address): 0x131157c6760f78f7dDF877C0019Eba175BA4b6F6

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000286b2eb4f4dbf2dffc1fcb00bab547f103be5fd4
Arg [1] : 000000000000000000000000131157c6760f78f7ddf877c0019eba175ba4b6f6


Deployed Bytecode Sourcemap

668:3890:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:113;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3362:502;;;;;;:::i;:::-;;:::i;:::-;;;6253:25:4;;;6241:2;6226:18;3362:502:2;6107:177:4;2047:702:2;;;:::i;:::-;;1134:38;;;;;;;;-1:-1:-1;;;;;1604:32:4;;;1586:51;;1574:2;1559:18;1134:38:2;1440:203:4;2950:362:2;;;;;;:::i;:::-;;:::i;638:202:1:-;;;:::i;85:20::-;;;;;-1:-1:-1;;;;;85:20:1;;;3957:105:2;;;:::i;1342:43::-;;;;;;:::i;:::-;;:::i;:::-;;;;6463:25:4;;;6519:2;6504:18;;6497:34;;;;6436:18;1342:43:2;6289:248:4;4181:375:2;;;;;;:::i;:::-;;:::i;1702:294::-;;;;;;:::i;:::-;;:::i;111:23:1:-;;;;;-1:-1:-1;;;;;111:23:1;;;1178:37:2;;;;;449:151:1;;;;;;:::i;:::-;;:::i;1097:30:2:-;;;;;;2785:113;-1:-1:-1;;;;;2876:15:2;;;;;;:9;:15;;;;;;;;2869:22;;;;;;;;;;;;;;;;;2844:13;;2869:22;;2876:15;;2869:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:113;;;:::o;3362:502::-;-1:-1:-1;;;;;3455:15:2;;3418:11;3455:15;;;:9;:15;;;;;:22;3491:8;3487:24;;3501:10;3362:502;;;:::o;3487:24::-;3521:9;3558:15;3583:255;3595:3;3591:1;:7;3583:255;;;-1:-1:-1;;;;;3635:15:2;;3619:13;3635:15;;;:9;:15;;;;;:18;;3651:1;;3635:18;;;;;;:::i;:::-;;;;;;;;;;3619:34;;;;;;;;;3635:18;;;;;3619:34;;;;;;;;;;;;;;-1:-1:-1;3671:20:2;;3667:161;;;3783:12;;3718:95;;-1:-1:-1;;;3718:95:2;;;;;6253:25:4;;;;3727:13:2;-1:-1:-1;;;;;3718:43:2;;;;6226:18:4;;3718:95:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3711:102;;;;:::i;:::-;;;3667:161;-1:-1:-1;3600:3:2;;;;:::i;:::-;;;;3583:255;;;3847:10;;;3362:502;;;:::o;2047:702::-;118:1:3;235:10;;:25;227:45;;;;-1:-1:-1;;;227:45:3;;3223:2:4;227:45:3;;;3205:21:4;3262:1;3242:18;;;3235:29;-1:-1:-1;;;3280:18:4;;;3273:37;3327:18;;227:45:3;;;;;;;;;152:1;282:20;;2115:10:2::1;2091:11;2105:21:::0;;;:9:::1;:21;::::0;;;;:28;2151:7;2143:34:::1;;;::::0;-1:-1:-1;;;2143:34:2;;4590:2:4;2143:34:2::1;::::0;::::1;4572:21:4::0;4629:2;4609:18;;;4602:30;-1:-1:-1;;;4648:18:4;;;4641:44;4702:18;;2143:34:2::1;4388:338:4::0;2143:34:2::1;2187:9;2224:15;2187:9:::0;2270:370:::1;2282:3;2278:1;:7;2270:370;;;2332:10;2306:13;2322:21:::0;;;:9:::1;:21;::::0;;;;:24;;2344:1;;2322:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;2306:40:::1;::::0;;;;::::1;::::0;;;2322:24:::1;::::0;;::::1;;2306:40:::0;;;;::::1;;::::0;;;::::1;::::0;;;;-1:-1:-1;2364:20:2;::::1;:40:::0;::::1;;;-1:-1:-1::0;2388:12:2;;:16;;2364:40:::1;2360:270;;;2496:12:::0;;2431:95:::1;::::0;-1:-1:-1;;;2431:95:2;;::::1;::::0;::::1;6253:25:4::0;;;;2440:13:2::1;-1:-1:-1::0;;;;;2431:43:2::1;::::0;::::1;::::0;6226:18:4;;2431:95:2::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2424:102;::::0;;::::1;:::i;:::-;2586:10;2614:1;2576:21:::0;;;:9:::1;:21;::::0;;;;:24;;2424:102;;-1:-1:-1;2614:1:2;;2598;;2576:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:39:::0;2360:270:::1;-1:-1:-1::0;2287:3:2;::::1;::::0;::::1;:::i;:::-;;;;2270:370;;;2663:1;2657:3;:7;2649:36;;;::::0;-1:-1:-1;;;2649:36:2;;4245:2:4;2649:36:2::1;::::0;::::1;4227:21:4::0;4284:2;4264:18;;;4257:30;-1:-1:-1;;;4303:18:4;;;4296:46;4359:18;;2649:36:2::1;4043:340:4::0;2649:36:2::1;2695:47;::::0;-1:-1:-1;;;2695:47:2;;2726:10:::1;2695:47;::::0;::::1;2131:51:4::0;2198:18;;;2191:34;;;2702:13:2::1;-1:-1:-1::0;;;;;2695:30:2::1;::::0;::::1;::::0;2104:18:4;;2695:47:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;118:1:3;323:10;:24;-1:-1:-1;;;2047:702:2:o;2950:362::-;-1:-1:-1;;;;;3043:15:2;;3006:11;3043:15;;;:9;:15;;;;;:22;3079:8;3075:24;;3089:10;2950:362;;;:::o;3075:24::-;3109:9;3128:158;3140:3;3136:1;:7;3128:158;;;3180:13;-1:-1:-1;;;;;3171:43:2;;3232:9;:15;3242:4;-1:-1:-1;;;;;3232:15:2;-1:-1:-1;;;;;3232:15:2;;;;;;;;;;;;3248:1;3232:18;;;;;;;;:::i;:::-;;;;;;;;;;;:29;;;3171:104;;;;;;;;;;;;;6253:25:4;;6241:2;6226:18;;6107:177;3171:104:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3164:111;;;;:::i;:::-;;-1:-1:-1;3145:3:2;;;;:::i;:::-;;;;3128:158;;;3295:10;;2950:362;;;:::o;638:202:1:-;706:8;;-1:-1:-1;;;;;706:8:1;692:10;:22;684:48;;;;-1:-1:-1;;;684:48:1;;5967:2:4;684:48:1;;;5949:21:4;6006:2;5986:18;;;5979:30;-1:-1:-1;;;6025:18:4;;;6018:43;6078:18;;684:48:1;5765:337:4;684:48:1;764:5;;;771:8;747:33;;;-1:-1:-1;;;;;764:5:1;;;1860:34:4;;771:8:1;;;;1925:2:4;1910:18;;1903:43;747:33:1;;1795:18:4;747:33:1;;;;;;;790:5;:18;;-1:-1:-1;;;;;;790:18:1;;;798:10;790:18;;;;;818:15;;;;;;;638:202::o;3957:105:2:-;359:5:1;;-1:-1:-1;;;;;359:5:1;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:1;;;;;;;:::i;:::-;4017:5:2::1;::::0;;4009:46:::1;::::0;-1:-1:-1;;;;;4017:5:2;;::::1;::::0;4033:21:::1;4009:46:::0;::::1;;;::::0;4033:21;;4009:46;4017:5;4009:46;4033:21;4017:5;4009:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;3957:105::o:0;1342:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1342:43:2;-1:-1:-1;1342:43:2;:::o;4181:375::-;359:5:1;;-1:-1:-1;;;;;359:5:1;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:1;;;;;;;:::i;:::-;4261:13:2::1;-1:-1:-1::0;;;;;4252:22:2::1;:5;-1:-1:-1::0;;;;;4252:22:2::1;;4248:107;;;4316:15;;4298;:33;4290:54;;;::::0;-1:-1:-1;;;4290:54:2;;4933:2:4;4290:54:2::1;::::0;::::1;4915:21:4::0;4972:1;4952:18;;;4945:29;-1:-1:-1;;;4990:18:4;;;4983:38;5038:18;;4290:54:2::1;4731:331:4::0;4290:54:2::1;4382:38;::::0;-1:-1:-1;;;4382:38:2;;4414:4:::1;4382:38;::::0;::::1;1586:51:4::0;4364:15:2::1;::::0;-1:-1:-1;;;;;4382:23:2;::::1;::::0;::::1;::::0;1559:18:4;;4382:38:2::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4364:56;;4448:1;4438:7;:11;4430:43;;;::::0;-1:-1:-1;;;4430:43:2;;3897:2:4;4430:43:2::1;::::0;::::1;3879:21:4::0;3936:2;3916:18;;;3909:30;-1:-1:-1;;;3955:18:4;;;3948:49;4014:18;;4430:43:2::1;3695:343:4::0;4430:43:2::1;4534:5;::::0;4512:37:::1;::::0;-1:-1:-1;;;4512:37:2;;-1:-1:-1;;;;;4534:5:2;;::::1;4512:37;::::0;::::1;2131:51:4::0;2198:18;;;2191:34;;;4512:21:2;;::::1;::::0;::::1;::::0;2104:18:4;;4512:37:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4238:318;4181:375:::0;:::o;1702:294::-;1828:10;-1:-1:-1;;;;;1842:12:2;1828:26;;1820:57;;;;-1:-1:-1;;;1820:57:2;;5620:2:4;1820:57:2;;;5602:21:4;5659:2;5639:18;;;5632:30;-1:-1:-1;;;5678:18:4;;;5671:48;5736:18;;1820:57:2;5418:342:4;1820:57:2;-1:-1:-1;;;;;1887:15:2;;;;;;:9;:15;;;;;;;;1908:26;;;;;;;;;;;;;;;;;1887:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1963:26;:15;1981:8;1963:26;:::i;:::-;1945:15;:44;-1:-1:-1;;;1702:294:2:o;449:151:1:-;359:5;;-1:-1:-1;;;;;359:5:1;345:10;:19;337:42;;;;-1:-1:-1;;;337:42:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;523:18:1;::::1;515:53;;;::::0;-1:-1:-1;;;515:53:1;;5269:2:4;515:53:1::1;::::0;::::1;5251:21:4::0;5308:2;5288:18;;;5281:30;-1:-1:-1;;;5327:18:4;;;5320:52;5389:18;;515:53:1::1;5067:346:4::0;515:53:1::1;578:8;:15:::0;;-1:-1:-1;;;;;;578:15:1::1;-1:-1:-1::0;;;;;578:15:1;;;::::1;::::0;;;::::1;::::0;;449:151::o;14:173:4:-;82:20;;-1:-1:-1;;;;;131:31:4;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:4:o;383:254::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;627:2;612:18;;;;599:32;;-1:-1:-1;;;383:254:4:o;642:322::-;719:6;727;735;788:2;776:9;767:7;763:23;759:32;756:52;;;804:1;801;794:12;756:52;827:29;846:9;827:29;:::i;:::-;817:39;903:2;888:18;;875:32;;-1:-1:-1;954:2:4;939:18;;;926:32;;642:322;-1:-1:-1;;;642:322:4:o;969:277::-;1036:6;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1137:9;1131:16;1190:5;1183:13;1176:21;1169:5;1166:32;1156:60;;1212:1;1209;1202:12;1251:184;1321:6;1374:2;1362:9;1353:7;1349:23;1345:32;1342:52;;;1390:1;1387;1380:12;1342:52;-1:-1:-1;1413:16:4;;1251:184;-1:-1:-1;1251:184:4:o;2236:780::-;2449:2;2501:21;;;2571:13;;2474:18;;;2593:22;;;2420:4;;2449:2;2634;;2652:18;;;;2693:15;;;2420:4;2736:254;2750:6;2747:1;2744:13;2736:254;;;2809:13;;2847:9;;2835:22;;2897:11;;2891:18;2877:12;;;2870:40;2930:12;;;;2965:15;;;;2772:1;2765:9;2736:254;;;-1:-1:-1;3007:3:4;;2236:780;-1:-1:-1;;;;;;;2236:780:4:o;3356:334::-;3558:2;3540:21;;;3597:2;3577:18;;;3570:30;-1:-1:-1;;;3631:2:4;3616:18;;3609:40;3681:2;3666:18;;3356:334::o;6542:128::-;6582:3;6613:1;6609:6;6606:1;6603:13;6600:39;;;6619:18;;:::i;:::-;-1:-1:-1;6655:9:4;;6542:128::o;6675:135::-;6714:3;-1:-1:-1;;6735:17:4;;6732:43;;;6755:18;;:::i;:::-;-1:-1:-1;6802:1:4;6791:13;;6675:135::o;6815:127::-;6876:10;6871:3;6867:20;6864:1;6857:31;6907:4;6904:1;6897:15;6931:4;6928:1;6921:15;6947:127;7008:10;7003:3;6999:20;6996:1;6989:31;7039:4;7036:1;7029:15;7063:4;7060:1;7053:15

Swarm Source

ipfs://28d7fc522c64294bd2acacc00b353332b3e294bd44d3ae7007ac03e6d7cc76e4

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.