ETH Price: $2,518.89 (+2.81%)

Contract

0x843F38142Df6C485dbc60f1DDD05599E3A7F2b4C
 

Overview

ETH Balance

0.01531599999999996 ETH

Eth Value

$38.58 (@ $2,518.89/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Reward Distribut...190630172024-01-22 15:00:11224 days ago1705935611IN
0x843F3814...E3A7F2b4C
0 ETH0.0077224196.54831113
Reward Distribut...190559942024-01-21 15:00:23225 days ago1705849223IN
0x843F3814...E3A7F2b4C
0 ETH0.0059393760.94289084
Add Funds190559932024-01-21 15:00:11225 days ago1705849211IN
0x843F3814...E3A7F2b4C
0.23291999 ETH0.0014988265.13236205
Reward Distribut...190524112024-01-21 3:00:11226 days ago1705806011IN
0x843F3814...E3A7F2b4C
0 ETH0.0042761643.87699828
Reward Distribut...190488312024-01-20 14:59:59226 days ago1705762799IN
0x843F3814...E3A7F2b4C
0 ETH0.0131171372.92890146
Reward Distribut...190452462024-01-20 3:00:11227 days ago1705719611IN
0x843F3814...E3A7F2b4C
0 ETH0.0081947158.57216273
Reward Distribut...190416642024-01-19 15:00:11227 days ago1705676411IN
0x843F3814...E3A7F2b4C
0 ETH0.01390072173.79166491
Reward Distribut...190273592024-01-17 15:00:11229 days ago1705503611IN
0x843F3814...E3A7F2b4C
0 ETH0.01522639145.05470556
Reward Distribut...190058802024-01-14 15:00:11232 days ago1705244411IN
0x843F3814...E3A7F2b4C
0 ETH0.00949863118.75519141
Reward Distribut...189773032024-01-10 15:00:11236 days ago1704898811IN
0x843F3814...E3A7F2b4C
0 ETH0.02360537147.62953481
Reward Distribut...189382702024-01-05 3:00:11242 days ago1704423611IN
0x843F3814...E3A7F2b4C
0 ETH0.0051937756.17020352
Reward Distribut...189347222024-01-04 15:00:11242 days ago1704380411IN
0x843F3814...E3A7F2b4C
0 ETH0.02627468159.35255688
Reward Distribut...189311492024-01-04 3:00:11243 days ago1704337211IN
0x843F3814...E3A7F2b4C
0 ETH0.0052530277.83180318
Reward Distribut...188777462023-12-27 15:00:11250 days ago1703689211IN
0x843F3814...E3A7F2b4C
0 ETH0.01771966221.53737114
Reward Distribut...187922692023-12-15 15:00:11262 days ago1702652411IN
0x843F3814...E3A7F2b4C
0 ETH0.02183963273.04660991
Reward Distribut...187208952023-12-05 15:00:11272 days ago1701788411IN
0x843F3814...E3A7F2b4C
0 ETH0.02458345265.86764386
Reward Distribut...186851712023-11-30 15:00:11277 days ago1701356411IN
0x843F3814...E3A7F2b4C
0 ETH0.01816026148.3294322
Reward Distribut...186816002023-11-30 3:00:11278 days ago1701313211IN
0x843F3814...E3A7F2b4C
0 ETH0.01743607170.15786563
Reward Distribut...186673062023-11-28 3:00:11280 days ago1701140411IN
0x843F3814...E3A7F2b4C
0 ETH0.00957334141.84420241
Reward Distribut...186637332023-11-27 15:00:23280 days ago1701097223IN
0x843F3814...E3A7F2b4C
0 ETH0.04578604166.629242
Add Funds186637322023-11-27 15:00:11280 days ago1701097211IN
0x843F3814...E3A7F2b4C
4.88025 ETH0.00374827162.88359308
Reward Distribut...186601612023-11-27 3:00:11281 days ago1701054011IN
0x843F3814...E3A7F2b4C
0 ETH0.00456889110.14689236
Reward Distribut...186530272023-11-26 3:00:23282 days ago1700967623IN
0x843F3814...E3A7F2b4C
0 ETH0.0078176577.26028887
Reward Distribut...186458902023-11-25 3:00:11283 days ago1700881211IN
0x843F3814...E3A7F2b4C
0 ETH0.003205977.28796466
Reward Distribut...186387502023-11-24 3:00:11284 days ago1700794811IN
0x843F3814...E3A7F2b4C
0 ETH0.0086928897.41126994
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
190630172024-01-22 15:00:11224 days ago1705935611
0x843F3814...E3A7F2b4C
0.019799 ETH
190630172024-01-22 15:00:11224 days ago1705935611
0x843F3814...E3A7F2b4C
0.0264 ETH
190630172024-01-22 15:00:11224 days ago1705935611
0x843F3814...E3A7F2b4C
0.033 ETH
190630172024-01-22 15:00:11224 days ago1705935611
0x843F3814...E3A7F2b4C
0.066 ETH
190559942024-01-21 15:00:23225 days ago1705849223
0x843F3814...E3A7F2b4C
0.0264 ETH
190559942024-01-21 15:00:23225 days ago1705849223
0x843F3814...E3A7F2b4C
0.033 ETH
190559942024-01-21 15:00:23225 days ago1705849223
0x843F3814...E3A7F2b4C
0.066 ETH
190559942024-01-21 15:00:23225 days ago1705849223
0x843F3814...E3A7F2b4C
0.0264 ETH
190559942024-01-21 15:00:23225 days ago1705849223
0x843F3814...E3A7F2b4C
0.033 ETH
190559942024-01-21 15:00:23225 days ago1705849223
0x843F3814...E3A7F2b4C
0.066 ETH
190524112024-01-21 3:00:11226 days ago1705806011
0x843F3814...E3A7F2b4C
0.0264 ETH
190524112024-01-21 3:00:11226 days ago1705806011
0x843F3814...E3A7F2b4C
0.033 ETH
190524112024-01-21 3:00:11226 days ago1705806011
0x843F3814...E3A7F2b4C
0.066 ETH
190524112024-01-21 3:00:11226 days ago1705806011
0x843F3814...E3A7F2b4C
0.0264 ETH
190524112024-01-21 3:00:11226 days ago1705806011
0x843F3814...E3A7F2b4C
0.033 ETH
190524112024-01-21 3:00:11226 days ago1705806011
0x843F3814...E3A7F2b4C
0.066 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.019799 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.0264 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.033 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.066 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.019799 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.0264 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.033 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.066 ETH
190488312024-01-20 14:59:59226 days ago1705762799
0x843F3814...E3A7F2b4C
0.0264 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Reward

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Reward.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

/**
 * @title Reward
 * @dev This contract handles the distribution of rewards to recipients.
 * It allows single and batch reward distributions, checks for available balance,
 * and emits events to log reward distribution and balance changes.
 */
contract Reward is Ownable{

    IERC20 public usdtToken; // Declare a variable for the USDC token contract
    IERC20 public erc20Crypto;



// Event emitted when funds are added to the contract
    event addedFund(address walletAddress, uint256 fund);

// Event emitted to indicate whether the reward amount is less than the smart contract's balance
    event event_isRewardAmountLessThanSMCBalance(bool isRewardAmountLessThanSMCBalance);

// Event emitted when a reward is successfully distributed
    event rewardDistributed(address rewardSMC, address recipient, uint256 rewardAmount);

// Event emitted when rewards are successfully distributed in batch
    event rewardDistributedInBatch(address rewardSMC, address payable[] recipient, uint256[] rewardAmount);

// Event emitted after reward distribution to log the balance of the contract
    event balanceAfterRewardDistribution(uint256 balanceAfterRewardDistribution);

// Event emitted to log details of failed reward distributions
    event failedRewardDistribution(address[] failedRecipient, uint256[] rewardAmount);

// Event emitted to log details of successful reward distributions
    event succeededRewardDistribution(address[] succeededRecipient, uint256[] rewardAmount);

    event transferredUSDT(address userAddress, uint256 amount);
    event changedERC20Token(address newCrypto);
    event transferredCrypto(address userAddress, uint256 amount);

// Constructor to initialize the contract with an owner
    constructor(address ownerOfTheSmartContract, address  _usdcTokenAddress){
        // Set the provided address as the initial owner of the smart contract
        _transferOwnership(ownerOfTheSmartContract);
        usdtToken = IERC20(_usdcTokenAddress);
    }

/**
 * @dev Changes the ERC-20 token used for bonus distribution.
 * @param newCrypto The address of the new ERC-20 token contract.
 * @return The address of the new ERC-20 token contract.
 */
    function changeERC20Token(address newCrypto) external onlyOwner returns (address) {
        usdtToken = IERC20(newCrypto);
        emit changedERC20Token(newCrypto);
        return newCrypto;
    }



/**
 * @dev Transfers USDT tokens to a specified address.
 * @param to The recipient's address.
 * @param amount The amount of USDT tokens to transfer.
 * @return True if the transfer is successful, false otherwise.
 */
    function transferUSDT(address to, uint256 amount) external onlyOwner returns (bool) {
        require(balanceOfUSDT() >= amount, "Not sufficient amount to transfer!");
        require(usdtToken.transfer(to, amount), "USDT transfer failed");
        emit transferredUSDT(to, amount);
        return true;
    }

/**
 * @dev Returns the balance of USDT tokens owned by the caller.
 * @return The balance of USDT tokens.
 */
    function balanceOfUSDT() public view returns (uint256) {
        return usdtToken.balanceOf(address(this));
    }


/**
 * @dev Changes the cryptocurrency used for transfers.
 * @param newCrypto The address of the new cryptocurrency contract.
 * @return The address of the new cryptocurrency contract.
 */
    function changeCrypto(address newCrypto) external onlyOwner returns (address) {
        require(newCrypto != address(0), "ERC20: Crypto address cannot be empty!"); // Ensure the new cryptocurrency address is not empty
        erc20Crypto = IERC20(newCrypto); // Update the cryptocurrency contract
        return newCrypto; // Return the new cryptocurrency contract address
    }

/**
 * @dev Transfers cryptocurrency tokens to a specified address.
 * @param to The recipient's address.
 * @param amount The amount of cryptocurrency tokens to transfer.
 * @return True if the transfer is successful, false otherwise.
 */
    function transferCrypto(address to, uint256 amount) external onlyOwner returns (bool) {
        require(erc20Crypto != IERC20(address(0)), "ERC20: Crypto address cannot be empty, Please add crypto first!"); // Ensure the cryptocurrency contract is set
        require(balanceOfCrypto() >= amount, "Not sufficient amount to transfer!"); // Ensure the caller has sufficient balance
        require(erc20Crypto.transfer(to, amount), "Cryptocurrency transfer failed"); // Perform the transfer
        emit transferredCrypto(to, amount); // Emit an event to log the transfer
        return true; // Return true to indicate a successful transfer
    }

/**
 * @dev Returns the balance of the selected cryptocurrency owned by the caller.
 * @return The balance of the selected cryptocurrency.
 */
    function balanceOfCrypto() public view returns (uint256) {
        return erc20Crypto.balanceOf(address(this)); // Return the caller's balance of the selected cryptocurrency
    }



/**
 * @dev Fallback function to receive MATIC.
 * This function is automatically called when the contract receives MATIC.
 * The received MATIC will be added to the contract's balance.
 * This function is marked as "payable" to allow the contract to accept funds.
 */
    receive() external payable {
    }
    
/**
 * @dev Get the current balance of the smart contract.
 * @return The amount of MATIC held by the contract.
 */
    function getContractBalance() public view returns (uint256) {
        return address(this).balance;
    }

/**
 * @dev Add funds to the smart contract.
 * Emits the `addedFund` event to log the added funds and the sender's address.
 * @return The amount of MATIC added to the contract.
 */
    function addFunds() external payable returns (uint256) {
        emit addedFund(msg.sender, msg.value);
        return msg.value;
    }

/**
 * @dev Check if the total reward amount is less than the smart contract's balance.
 * Emits the `event_isRewardAmountLessThanSMCBalance` event to log the result.
 * @param totalRewardAmount The total amount of MATIC for the reward.
 * @return Whether the reward amount is less than the contract's balance.
 */
    function isRewardAmountLessThanSMCBalance(uint256 totalRewardAmount) public returns (bool) {
        if (totalRewardAmount < address(this).balance) {
            emit event_isRewardAmountLessThanSMCBalance(true);
            return true;
        }

        emit event_isRewardAmountLessThanSMCBalance(false);
        return false;
    }

/**
 * @dev Distribute a reward to a recipient.
 * Requires that the reward amount is less than the smart contract's balance.
 * Transfers the reward amount to the recipient and emits the `rewardDistributed` event.
 * @param rewardAmount The amount of MATIC to be rewarded.
 * @param recipient The address of the recipient of the reward.
 * @return A boolean indicating the success of the reward distribution.
 */
    function rewardDistribution(uint256 rewardAmount, address payable recipient) external onlyOwner returns (bool) {
        require(isRewardAmountLessThanSMCBalance(rewardAmount), "Insufficient balance in reward SMC");
        
        recipient.transfer(rewardAmount);
        
        emit rewardDistributed(address(this), recipient, rewardAmount);
        
        return true;
    }

/**
 * @dev Distribute rewards to multiple recipients in batch.
 * Requires that the arrays have the same length, and each recipient address and reward amount is valid.
 * Transfers rewards to recipients, logs failed and successful distributions, and emits balance information.
 * @param rewardAmount An array of reward amounts to be distributed.
 * @param recipients An array of recipient addresses for the rewards.
 * @return A boolean indicating the success of the batch reward distribution.
 */
    function rewardDistributionInbatch(uint256[] memory rewardAmount, address payable[] memory recipients) external onlyOwner returns (bool) {
        require(recipients.length == rewardAmount.length, "Arrays must have the same length");
        
        address[] memory failedRecipients = new address[](recipients.length);
        uint256[] memory failedRewardAmount = new uint256[](rewardAmount.length);
        
        address[] memory succeededRecipients = new address[](recipients.length);
        uint256[] memory succeededRewardAmount = new uint256[](rewardAmount.length);
        
        uint256 failedCount = 0;
        uint256 succeededCount = 0;
        
        for (uint256 i = 0; i < recipients.length; i++) {
            require(recipients[i] != address(0), "Invalid recipient address");
            require(rewardAmount[i] > 0, "Amount must be greater than 0");
            
            // Attempt to transfer the funds
            if (rewardAmount[i] <= address(this).balance) {
                if (recipients[i].send(rewardAmount[i])) {
                    // Add succeeded recipient and reward amount to arrays
                    succeededRecipients[succeededCount] = recipients[i];
                    succeededRewardAmount[succeededCount] = rewardAmount[i];
                    succeededCount++;
                }
            } else {
                // Add failed recipient and reward amount to arrays
                failedRecipients[failedCount] = recipients[i];
                failedRewardAmount[failedCount] = rewardAmount[i];
                failedCount++;
            }
        }
        
        // Resize the arrays to remove any empty slots
        assembly {
            mstore(failedRecipients, failedCount)
            mstore(failedRewardAmount, failedCount)
            mstore(succeededRecipients, succeededCount)
            mstore(succeededRewardAmount, succeededCount)
        }

        emit failedRewardDistribution(failedRecipients, failedRewardAmount);
        emit succeededRewardDistribution(succeededRecipients, succeededRewardAmount);
        emit balanceAfterRewardDistribution(address(this).balance);
        
        return true;
    }

}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool);
}

File 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"ownerOfTheSmartContract","type":"address"},{"internalType":"address","name":"_usdcTokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"fund","type":"uint256"}],"name":"addedFund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balanceAfterRewardDistribution","type":"uint256"}],"name":"balanceAfterRewardDistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newCrypto","type":"address"}],"name":"changedERC20Token","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isRewardAmountLessThanSMCBalance","type":"bool"}],"name":"event_isRewardAmountLessThanSMCBalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"failedRecipient","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"rewardAmount","type":"uint256[]"}],"name":"failedRewardDistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"rewardSMC","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"rewardDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"rewardSMC","type":"address"},{"indexed":false,"internalType":"address payable[]","name":"recipient","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"rewardAmount","type":"uint256[]"}],"name":"rewardDistributedInBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"succeededRecipient","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"rewardAmount","type":"uint256[]"}],"name":"succeededRewardDistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferredCrypto","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferredUSDT","type":"event"},{"inputs":[],"name":"addFunds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"balanceOfCrypto","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceOfUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newCrypto","type":"address"}],"name":"changeCrypto","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCrypto","type":"address"}],"name":"changeERC20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"erc20Crypto","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"totalRewardAmount","type":"uint256"}],"name":"isRewardAmountLessThanSMCBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"address payable","name":"recipient","type":"address"}],"name":"rewardDistribution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"rewardAmount","type":"uint256[]"},{"internalType":"address payable[]","name":"recipients","type":"address[]"}],"name":"rewardDistributionInbatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferCrypto","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferUSDT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdtToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162002425380380620024258339818101604052810190620000379190620001e7565b620000576200004b620000b160201b60201c565b620000b960201b60201c565b6200006882620000b960201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200022e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001af8262000182565b9050919050565b620001c181620001a2565b8114620001cd57600080fd5b50565b600081519050620001e181620001b6565b92915050565b600080604083850312156200020157620002006200017d565b5b60006200021185828601620001d0565b92505060206200022485828601620001d0565b9150509250929050565b6121e7806200023e6000396000f3fe6080604052600436106100f75760003560e01c8063979b388d1161008a578063ca5d89dc11610059578063ca5d89dc14610340578063d015ed6a1461037d578063e28a6281146103ba578063f2fde38b146103e5576100fe565b8063979b388d1461027d578063a26759cb146102ba578063a98ad46c146102d8578063a9d3583a14610303576100fe565b80636f9fb98a116100c65780636f9fb98a146101e5578063715018a61461021057806379b05119146102275780638da5cb5b14610252576100fe565b80631aab347414610103578063305d3c181461012e57806348bb57d71461016b578063695b3e6c146101a8576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b5061011861040e565b604051610125919061138a565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061165f565b6104b1565b60405161016291906116f2565b60405180910390f35b34801561017757600080fd5b50610192600480360381019061018d919061170d565b6109fb565b60405161019f91906116f2565b60405180910390f35b3480156101b457600080fd5b506101cf60048036038101906101ca9190611778565b610a88565b6040516101dc91906117b4565b60405180910390f35b3480156101f157600080fd5b506101fa610b12565b604051610207919061138a565b60405180910390f35b34801561021c57600080fd5b50610225610b1a565b005b34801561023357600080fd5b5061023c610b2e565b604051610249919061182e565b60405180910390f35b34801561025e57600080fd5b50610267610b54565b60405161027491906117b4565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190611778565b610b7d565b6040516102b191906117b4565b60405180910390f35b6102c2610c3f565b6040516102cf919061138a565b60405180910390f35b3480156102e457600080fd5b506102ed610c80565b6040516102fa919061182e565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190611849565b610ca6565b60405161033791906116f2565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190611889565b610d84565b60405161037491906116f2565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190611889565b610f8b565b6040516103b191906116f2565b60405180910390f35b3480156103c657600080fd5b506103cf611101565b6040516103dc919061138a565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190611778565b6111a4565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161046b91906117b4565b602060405180830381865afa158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906118de565b905090565b60006104bb611227565b82518251146104ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f690611968565b60405180910390fd5b6000825167ffffffffffffffff81111561051c5761051b6113cf565b5b60405190808252806020026020018201604052801561054a5781602001602082028036833780820191505090505b5090506000845167ffffffffffffffff81111561056a576105696113cf565b5b6040519080825280602002602001820160405280156105985781602001602082028036833780820191505090505b5090506000845167ffffffffffffffff8111156105b8576105b76113cf565b5b6040519080825280602002602001820160405280156105e65781602001602082028036833780820191505090505b5090506000865167ffffffffffffffff811115610606576106056113cf565b5b6040519080825280602002602001820160405280156106345781602001602082028036833780820191505090505b50905060008060005b885181101561093557600073ffffffffffffffffffffffffffffffffffffffff1689828151811061067157610670611988565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690611a03565b60405180910390fd5b60008a82815181106106e4576106e3611988565b5b60200260200101511161072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390611a6f565b60405180910390fd5b478a82815181106107405761073f611988565b5b602002602001015111610871578881815181106107605761075f611988565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc8b838151811061079457610793611988565b5b60200260200101519081150290604051600060405180830381858888f193505050501561086c578881815181106107ce576107cd611988565b5b60200260200101518583815181106107e9576107e8611988565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505089818151811061083657610835611988565b5b602002602001015184838151811061085157610850611988565b5b602002602001018181525050818061086890611abe565b9250505b610922565b88818151811061088457610883611988565b5b602002602001015187848151811061089f5761089e611988565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508981815181106108ec576108eb611988565b5b602002602001015186848151811061090757610906611988565b5b602002602001018181525050828061091e90611abe565b9350505b808061092d90611abe565b91505061063d565b508186528185528084528083527f2935af76ef8c9ff0d8229d46edd34d753773adf481a20a788b503bf146c0a2c88686604051610973929190611c82565b60405180910390a17f9b0d0d0a91746502e57b5fe7c7e37d4a4606b0fdc24c322b4d28a339498826af84846040516109ac929190611c82565b60405180910390a17f46c86363452e765e457470c88efc778370ef2dcc2e0462f158fc0f47cd72948a476040516109e3919061138a565b60405180910390a16001965050505050505092915050565b600047821015610a46577f8ecd0c27ffd343fd3ba896cce2e81f257568977e3e4b7ed9f678fb328cef78386001604051610a3591906116f2565b60405180910390a160019050610a83565b7f8ecd0c27ffd343fd3ba896cce2e81f257568977e3e4b7ed9f678fb328cef78386000604051610a7691906116f2565b60405180910390a1600090505b919050565b6000610a92611227565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc416561a497c1bc3d4a6232ad748d75298a375f94051e94a624d758e59a0b05482604051610b0291906117b4565b60405180910390a1819050919050565b600047905090565b610b22611227565b610b2c60006112a5565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610b87611227565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed90611d2b565b60405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550819050919050565b60007f4f78a6b3e4de1b14874326e330a0f5789e29512ff7d751593279b95579fbfcd73334604051610c72929190611d4b565b60405180910390a134905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cb0611227565b610cb9836109fb565b610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90611de6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610d3e573d6000803e3d6000fd5b507f4628439204b48b5db54bd3cfc580994d85c71cde2e281ba39f92f7f96a7faab1308385604051610d7293929190611e27565b60405180910390a16001905092915050565b6000610d8e611227565b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690611ed0565b60405180910390fd5b81610e28611101565b1015610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090611f62565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401610ec6929190611d4b565b6020604051808303816000875af1158015610ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f099190611fae565b610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90612027565b60405180910390fd5b7fd2aa9258b098aa1e260cf6ff53f9a673f6bc5af2c3bcf23f0be7e12b745a77ed8383604051610f79929190611d4b565b60405180910390a16001905092915050565b6000610f95611227565b81610f9e61040e565b1015610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd690611f62565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b815260040161103c929190611d4b565b6020604051808303816000875af115801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190611fae565b6110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612093565b60405180910390fd5b7f5e50c2a22a5bc387b80e806d4777b5b49bf356b015708e6639af5587e42c61a983836040516110ef929190611d4b565b60405180910390a16001905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115e91906117b4565b602060405180830381865afa15801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f91906118de565b905090565b6111ac611227565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290612125565b60405180910390fd5b611224816112a5565b50565b61122f611369565b73ffffffffffffffffffffffffffffffffffffffff1661124d610b54565b73ffffffffffffffffffffffffffffffffffffffff16146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90612191565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000819050919050565b61138481611371565b82525050565b600060208201905061139f600083018461137b565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611407826113be565b810181811067ffffffffffffffff82111715611426576114256113cf565b5b80604052505050565b60006114396113a5565b905061144582826113fe565b919050565b600067ffffffffffffffff821115611465576114646113cf565b5b602082029050602081019050919050565b600080fd5b61148481611371565b811461148f57600080fd5b50565b6000813590506114a18161147b565b92915050565b60006114ba6114b58461144a565b61142f565b905080838252602082019050602084028301858111156114dd576114dc611476565b5b835b8181101561150657806114f28882611492565b8452602084019350506020810190506114df565b5050509392505050565b600082601f830112611525576115246113b9565b5b81356115358482602086016114a7565b91505092915050565b600067ffffffffffffffff821115611559576115586113cf565b5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115958261156a565b9050919050565b6115a58161158a565b81146115b057600080fd5b50565b6000813590506115c28161159c565b92915050565b60006115db6115d68461153e565b61142f565b905080838252602082019050602084028301858111156115fe576115fd611476565b5b835b81811015611627578061161388826115b3565b845260208401935050602081019050611600565b5050509392505050565b600082601f830112611646576116456113b9565b5b81356116568482602086016115c8565b91505092915050565b60008060408385031215611676576116756113af565b5b600083013567ffffffffffffffff811115611694576116936113b4565b5b6116a085828601611510565b925050602083013567ffffffffffffffff8111156116c1576116c06113b4565b5b6116cd85828601611631565b9150509250929050565b60008115159050919050565b6116ec816116d7565b82525050565b600060208201905061170760008301846116e3565b92915050565b600060208284031215611723576117226113af565b5b600061173184828501611492565b91505092915050565b60006117458261156a565b9050919050565b6117558161173a565b811461176057600080fd5b50565b6000813590506117728161174c565b92915050565b60006020828403121561178e5761178d6113af565b5b600061179c84828501611763565b91505092915050565b6117ae8161173a565b82525050565b60006020820190506117c960008301846117a5565b92915050565b6000819050919050565b60006117f46117ef6117ea8461156a565b6117cf565b61156a565b9050919050565b6000611806826117d9565b9050919050565b6000611818826117fb565b9050919050565b6118288161180d565b82525050565b6000602082019050611843600083018461181f565b92915050565b600080604083850312156118605761185f6113af565b5b600061186e85828601611492565b925050602061187f858286016115b3565b9150509250929050565b600080604083850312156118a05761189f6113af565b5b60006118ae85828601611763565b92505060206118bf85828601611492565b9150509250929050565b6000815190506118d88161147b565b92915050565b6000602082840312156118f4576118f36113af565b5b6000611902848285016118c9565b91505092915050565b600082825260208201905092915050565b7f417272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b600061195260208361190b565b915061195d8261191c565b602082019050919050565b6000602082019050818103600083015261198181611945565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b60006119ed60198361190b565b91506119f8826119b7565b602082019050919050565b60006020820190508181036000830152611a1c816119e0565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000611a59601d8361190b565b9150611a6482611a23565b602082019050919050565b60006020820190508181036000830152611a8881611a4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ac982611371565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611afb57611afa611a8f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611b3b8161173a565b82525050565b6000611b4d8383611b32565b60208301905092915050565b6000602082019050919050565b6000611b7182611b06565b611b7b8185611b11565b9350611b8683611b22565b8060005b83811015611bb7578151611b9e8882611b41565b9750611ba983611b59565b925050600181019050611b8a565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611bf981611371565b82525050565b6000611c0b8383611bf0565b60208301905092915050565b6000602082019050919050565b6000611c2f82611bc4565b611c398185611bcf565b9350611c4483611be0565b8060005b83811015611c75578151611c5c8882611bff565b9750611c6783611c17565b925050600181019050611c48565b5085935050505092915050565b60006040820190508181036000830152611c9c8185611b66565b90508181036020830152611cb08184611c24565b90509392505050565b7f45524332303a2043727970746f20616464726573732063616e6e6f742062652060008201527f656d707479210000000000000000000000000000000000000000000000000000602082015250565b6000611d1560268361190b565b9150611d2082611cb9565b604082019050919050565b60006020820190508181036000830152611d4481611d08565b9050919050565b6000604082019050611d6060008301856117a5565b611d6d602083018461137b565b9392505050565b7f496e73756666696369656e742062616c616e636520696e20726577617264205360008201527f4d43000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dd060228361190b565b9150611ddb82611d74565b604082019050919050565b60006020820190508181036000830152611dff81611dc3565b9050919050565b6000611e11826117fb565b9050919050565b611e2181611e06565b82525050565b6000606082019050611e3c60008301866117a5565b611e496020830185611e18565b611e56604083018461137b565b949350505050565b7f45524332303a2043727970746f20616464726573732063616e6e6f742062652060008201527f656d7074792c20506c65617365206164642063727970746f2066697273742100602082015250565b6000611eba603f8361190b565b9150611ec582611e5e565b604082019050919050565b60006020820190508181036000830152611ee981611ead565b9050919050565b7f4e6f742073756666696369656e7420616d6f756e7420746f207472616e73666560008201527f7221000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f4c60228361190b565b9150611f5782611ef0565b604082019050919050565b60006020820190508181036000830152611f7b81611f3f565b9050919050565b611f8b816116d7565b8114611f9657600080fd5b50565b600081519050611fa881611f82565b92915050565b600060208284031215611fc457611fc36113af565b5b6000611fd284828501611f99565b91505092915050565b7f43727970746f63757272656e6379207472616e73666572206661696c65640000600082015250565b6000612011601e8361190b565b915061201c82611fdb565b602082019050919050565b6000602082019050818103600083015261204081612004565b9050919050565b7f55534454207472616e73666572206661696c6564000000000000000000000000600082015250565b600061207d60148361190b565b915061208882612047565b602082019050919050565b600060208201905081810360008301526120ac81612070565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061210f60268361190b565b915061211a826120b3565b604082019050919050565b6000602082019050818103600083015261213e81612102565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061217b60208361190b565b915061218682612145565b602082019050919050565b600060208201905081810360008301526121aa8161216e565b905091905056fea264697066735822122010732853d71faf08d73eb5bda677e4f2c4de81133dff32f50e86ad5cd3f5f34764736f6c634300081100330000000000000000000000002a398c735a7061b04dbc3588e17f9bb206bf8a08000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063979b388d1161008a578063ca5d89dc11610059578063ca5d89dc14610340578063d015ed6a1461037d578063e28a6281146103ba578063f2fde38b146103e5576100fe565b8063979b388d1461027d578063a26759cb146102ba578063a98ad46c146102d8578063a9d3583a14610303576100fe565b80636f9fb98a116100c65780636f9fb98a146101e5578063715018a61461021057806379b05119146102275780638da5cb5b14610252576100fe565b80631aab347414610103578063305d3c181461012e57806348bb57d71461016b578063695b3e6c146101a8576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b5061011861040e565b604051610125919061138a565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061165f565b6104b1565b60405161016291906116f2565b60405180910390f35b34801561017757600080fd5b50610192600480360381019061018d919061170d565b6109fb565b60405161019f91906116f2565b60405180910390f35b3480156101b457600080fd5b506101cf60048036038101906101ca9190611778565b610a88565b6040516101dc91906117b4565b60405180910390f35b3480156101f157600080fd5b506101fa610b12565b604051610207919061138a565b60405180910390f35b34801561021c57600080fd5b50610225610b1a565b005b34801561023357600080fd5b5061023c610b2e565b604051610249919061182e565b60405180910390f35b34801561025e57600080fd5b50610267610b54565b60405161027491906117b4565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190611778565b610b7d565b6040516102b191906117b4565b60405180910390f35b6102c2610c3f565b6040516102cf919061138a565b60405180910390f35b3480156102e457600080fd5b506102ed610c80565b6040516102fa919061182e565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190611849565b610ca6565b60405161033791906116f2565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190611889565b610d84565b60405161037491906116f2565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190611889565b610f8b565b6040516103b191906116f2565b60405180910390f35b3480156103c657600080fd5b506103cf611101565b6040516103dc919061138a565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190611778565b6111a4565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161046b91906117b4565b602060405180830381865afa158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906118de565b905090565b60006104bb611227565b82518251146104ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f690611968565b60405180910390fd5b6000825167ffffffffffffffff81111561051c5761051b6113cf565b5b60405190808252806020026020018201604052801561054a5781602001602082028036833780820191505090505b5090506000845167ffffffffffffffff81111561056a576105696113cf565b5b6040519080825280602002602001820160405280156105985781602001602082028036833780820191505090505b5090506000845167ffffffffffffffff8111156105b8576105b76113cf565b5b6040519080825280602002602001820160405280156105e65781602001602082028036833780820191505090505b5090506000865167ffffffffffffffff811115610606576106056113cf565b5b6040519080825280602002602001820160405280156106345781602001602082028036833780820191505090505b50905060008060005b885181101561093557600073ffffffffffffffffffffffffffffffffffffffff1689828151811061067157610670611988565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690611a03565b60405180910390fd5b60008a82815181106106e4576106e3611988565b5b60200260200101511161072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390611a6f565b60405180910390fd5b478a82815181106107405761073f611988565b5b602002602001015111610871578881815181106107605761075f611988565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc8b838151811061079457610793611988565b5b60200260200101519081150290604051600060405180830381858888f193505050501561086c578881815181106107ce576107cd611988565b5b60200260200101518583815181106107e9576107e8611988565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505089818151811061083657610835611988565b5b602002602001015184838151811061085157610850611988565b5b602002602001018181525050818061086890611abe565b9250505b610922565b88818151811061088457610883611988565b5b602002602001015187848151811061089f5761089e611988565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508981815181106108ec576108eb611988565b5b602002602001015186848151811061090757610906611988565b5b602002602001018181525050828061091e90611abe565b9350505b808061092d90611abe565b91505061063d565b508186528185528084528083527f2935af76ef8c9ff0d8229d46edd34d753773adf481a20a788b503bf146c0a2c88686604051610973929190611c82565b60405180910390a17f9b0d0d0a91746502e57b5fe7c7e37d4a4606b0fdc24c322b4d28a339498826af84846040516109ac929190611c82565b60405180910390a17f46c86363452e765e457470c88efc778370ef2dcc2e0462f158fc0f47cd72948a476040516109e3919061138a565b60405180910390a16001965050505050505092915050565b600047821015610a46577f8ecd0c27ffd343fd3ba896cce2e81f257568977e3e4b7ed9f678fb328cef78386001604051610a3591906116f2565b60405180910390a160019050610a83565b7f8ecd0c27ffd343fd3ba896cce2e81f257568977e3e4b7ed9f678fb328cef78386000604051610a7691906116f2565b60405180910390a1600090505b919050565b6000610a92611227565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc416561a497c1bc3d4a6232ad748d75298a375f94051e94a624d758e59a0b05482604051610b0291906117b4565b60405180910390a1819050919050565b600047905090565b610b22611227565b610b2c60006112a5565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610b87611227565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed90611d2b565b60405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550819050919050565b60007f4f78a6b3e4de1b14874326e330a0f5789e29512ff7d751593279b95579fbfcd73334604051610c72929190611d4b565b60405180910390a134905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cb0611227565b610cb9836109fb565b610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90611de6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610d3e573d6000803e3d6000fd5b507f4628439204b48b5db54bd3cfc580994d85c71cde2e281ba39f92f7f96a7faab1308385604051610d7293929190611e27565b60405180910390a16001905092915050565b6000610d8e611227565b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690611ed0565b60405180910390fd5b81610e28611101565b1015610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090611f62565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401610ec6929190611d4b565b6020604051808303816000875af1158015610ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f099190611fae565b610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90612027565b60405180910390fd5b7fd2aa9258b098aa1e260cf6ff53f9a673f6bc5af2c3bcf23f0be7e12b745a77ed8383604051610f79929190611d4b565b60405180910390a16001905092915050565b6000610f95611227565b81610f9e61040e565b1015610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd690611f62565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b815260040161103c929190611d4b565b6020604051808303816000875af115801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190611fae565b6110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612093565b60405180910390fd5b7f5e50c2a22a5bc387b80e806d4777b5b49bf356b015708e6639af5587e42c61a983836040516110ef929190611d4b565b60405180910390a16001905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115e91906117b4565b602060405180830381865afa15801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f91906118de565b905090565b6111ac611227565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290612125565b60405180910390fd5b611224816112a5565b50565b61122f611369565b73ffffffffffffffffffffffffffffffffffffffff1661124d610b54565b73ffffffffffffffffffffffffffffffffffffffff16146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90612191565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000819050919050565b61138481611371565b82525050565b600060208201905061139f600083018461137b565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611407826113be565b810181811067ffffffffffffffff82111715611426576114256113cf565b5b80604052505050565b60006114396113a5565b905061144582826113fe565b919050565b600067ffffffffffffffff821115611465576114646113cf565b5b602082029050602081019050919050565b600080fd5b61148481611371565b811461148f57600080fd5b50565b6000813590506114a18161147b565b92915050565b60006114ba6114b58461144a565b61142f565b905080838252602082019050602084028301858111156114dd576114dc611476565b5b835b8181101561150657806114f28882611492565b8452602084019350506020810190506114df565b5050509392505050565b600082601f830112611525576115246113b9565b5b81356115358482602086016114a7565b91505092915050565b600067ffffffffffffffff821115611559576115586113cf565b5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115958261156a565b9050919050565b6115a58161158a565b81146115b057600080fd5b50565b6000813590506115c28161159c565b92915050565b60006115db6115d68461153e565b61142f565b905080838252602082019050602084028301858111156115fe576115fd611476565b5b835b81811015611627578061161388826115b3565b845260208401935050602081019050611600565b5050509392505050565b600082601f830112611646576116456113b9565b5b81356116568482602086016115c8565b91505092915050565b60008060408385031215611676576116756113af565b5b600083013567ffffffffffffffff811115611694576116936113b4565b5b6116a085828601611510565b925050602083013567ffffffffffffffff8111156116c1576116c06113b4565b5b6116cd85828601611631565b9150509250929050565b60008115159050919050565b6116ec816116d7565b82525050565b600060208201905061170760008301846116e3565b92915050565b600060208284031215611723576117226113af565b5b600061173184828501611492565b91505092915050565b60006117458261156a565b9050919050565b6117558161173a565b811461176057600080fd5b50565b6000813590506117728161174c565b92915050565b60006020828403121561178e5761178d6113af565b5b600061179c84828501611763565b91505092915050565b6117ae8161173a565b82525050565b60006020820190506117c960008301846117a5565b92915050565b6000819050919050565b60006117f46117ef6117ea8461156a565b6117cf565b61156a565b9050919050565b6000611806826117d9565b9050919050565b6000611818826117fb565b9050919050565b6118288161180d565b82525050565b6000602082019050611843600083018461181f565b92915050565b600080604083850312156118605761185f6113af565b5b600061186e85828601611492565b925050602061187f858286016115b3565b9150509250929050565b600080604083850312156118a05761189f6113af565b5b60006118ae85828601611763565b92505060206118bf85828601611492565b9150509250929050565b6000815190506118d88161147b565b92915050565b6000602082840312156118f4576118f36113af565b5b6000611902848285016118c9565b91505092915050565b600082825260208201905092915050565b7f417272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b600061195260208361190b565b915061195d8261191c565b602082019050919050565b6000602082019050818103600083015261198181611945565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b60006119ed60198361190b565b91506119f8826119b7565b602082019050919050565b60006020820190508181036000830152611a1c816119e0565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000611a59601d8361190b565b9150611a6482611a23565b602082019050919050565b60006020820190508181036000830152611a8881611a4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ac982611371565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611afb57611afa611a8f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611b3b8161173a565b82525050565b6000611b4d8383611b32565b60208301905092915050565b6000602082019050919050565b6000611b7182611b06565b611b7b8185611b11565b9350611b8683611b22565b8060005b83811015611bb7578151611b9e8882611b41565b9750611ba983611b59565b925050600181019050611b8a565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611bf981611371565b82525050565b6000611c0b8383611bf0565b60208301905092915050565b6000602082019050919050565b6000611c2f82611bc4565b611c398185611bcf565b9350611c4483611be0565b8060005b83811015611c75578151611c5c8882611bff565b9750611c6783611c17565b925050600181019050611c48565b5085935050505092915050565b60006040820190508181036000830152611c9c8185611b66565b90508181036020830152611cb08184611c24565b90509392505050565b7f45524332303a2043727970746f20616464726573732063616e6e6f742062652060008201527f656d707479210000000000000000000000000000000000000000000000000000602082015250565b6000611d1560268361190b565b9150611d2082611cb9565b604082019050919050565b60006020820190508181036000830152611d4481611d08565b9050919050565b6000604082019050611d6060008301856117a5565b611d6d602083018461137b565b9392505050565b7f496e73756666696369656e742062616c616e636520696e20726577617264205360008201527f4d43000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dd060228361190b565b9150611ddb82611d74565b604082019050919050565b60006020820190508181036000830152611dff81611dc3565b9050919050565b6000611e11826117fb565b9050919050565b611e2181611e06565b82525050565b6000606082019050611e3c60008301866117a5565b611e496020830185611e18565b611e56604083018461137b565b949350505050565b7f45524332303a2043727970746f20616464726573732063616e6e6f742062652060008201527f656d7074792c20506c65617365206164642063727970746f2066697273742100602082015250565b6000611eba603f8361190b565b9150611ec582611e5e565b604082019050919050565b60006020820190508181036000830152611ee981611ead565b9050919050565b7f4e6f742073756666696369656e7420616d6f756e7420746f207472616e73666560008201527f7221000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f4c60228361190b565b9150611f5782611ef0565b604082019050919050565b60006020820190508181036000830152611f7b81611f3f565b9050919050565b611f8b816116d7565b8114611f9657600080fd5b50565b600081519050611fa881611f82565b92915050565b600060208284031215611fc457611fc36113af565b5b6000611fd284828501611f99565b91505092915050565b7f43727970746f63757272656e6379207472616e73666572206661696c65640000600082015250565b6000612011601e8361190b565b915061201c82611fdb565b602082019050919050565b6000602082019050818103600083015261204081612004565b9050919050565b7f55534454207472616e73666572206661696c6564000000000000000000000000600082015250565b600061207d60148361190b565b915061208882612047565b602082019050919050565b600060208201905081810360008301526120ac81612070565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061210f60268361190b565b915061211a826120b3565b604082019050919050565b6000602082019050818103600083015261213e81612102565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061217b60208361190b565b915061218682612145565b602082019050919050565b600060208201905081810360008301526121aa8161216e565b905091905056fea264697066735822122010732853d71faf08d73eb5bda677e4f2c4de81133dff32f50e86ad5cd3f5f34764736f6c63430008110033

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

0000000000000000000000002a398c735a7061b04dbc3588e17f9bb206bf8a08000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7

-----Decoded View---------------
Arg [0] : ownerOfTheSmartContract (address): 0x2A398C735A7061B04dBc3588e17F9bB206Bf8a08
Arg [1] : _usdcTokenAddress (address): 0xdAC17F958D2ee523a2206206994597C13D831ec7

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002a398c735a7061b04dbc3588e17f9bb206bf8a08
Arg [1] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7


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  ]
[ 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.