ETH Price: $1,800.09 (-1.18%)

Contract

0x90d02e13128A01a9e2e45E1F69fA599B888E92C9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer219889382025-03-06 16:07:2328 days ago1741277243IN
0x90d02e13...B888E92C9
0 ETH0.000091291.74371498
Transfer189032202023-12-31 4:55:47460 days ago1703998547IN
0x90d02e13...B888E92C9
0 ETH0.0004921410.33577804
Buy Tokens With ...185017752023-11-04 22:54:47516 days ago1699138487IN
0x90d02e13...B888E92C9
0.0371 ETH0.0015629815.85870776
Buy Tokens With ...184017272023-10-21 22:40:59530 days ago1697928059IN
0x90d02e13...B888E92C9
0.084 ETH0.000726837.37481352
Buy Tokens With ...183881402023-10-20 1:04:35532 days ago1697763875IN
0x90d02e13...B888E92C9
0.0437 ETH0.000759537.70654308
Buy Tokens With ...183514592023-10-14 21:59:23537 days ago1697320763IN
0x90d02e13...B888E92C9
0.044 ETH0.000534175.41996371
Buy Tokens With ...183496702023-10-14 15:59:59537 days ago1697299199IN
0x90d02e13...B888E92C9
0.0441 ETH0.000561015.69225892
Buy Tokens With ...183438422023-10-13 20:25:47538 days ago1697228747IN
0x90d02e13...B888E92C9
0.0443 ETH0.000903039.16252574
Buy Tokens With ...183348892023-10-12 14:19:11539 days ago1697120351IN
0x90d02e13...B888E92C9
0.0487 ETH0.0011070811.23293593
Buy Tokens With ...183285942023-10-11 17:09:35540 days ago1697044175IN
0x90d02e13...B888E92C9
0.0044 ETH0.000635197.79792563
Buy Tokens With ...183285872023-10-11 17:08:11540 days ago1697044091IN
0x90d02e13...B888E92C9
0.0441 ETH0.000758337.69442287
Buy Tokens With ...183238302023-10-11 1:08:35541 days ago1696986515IN
0x90d02e13...B888E92C9
0.1306 ETH0.000547665.55684457
Buy Tokens With ...183225262023-10-10 20:45:47541 days ago1696970747IN
0x90d02e13...B888E92C9
0.0044 ETH0.000639437.84998333
Buy Tokens With ...183225222023-10-10 20:44:47541 days ago1696970687IN
0x90d02e13...B888E92C9
0.0044 ETH0.000663278.14258381
Buy Tokens With ...183210182023-10-10 15:42:11541 days ago1696952531IN
0x90d02e13...B888E92C9
0.0434 ETH0.000799948.11659089
Buy Tokens With ...183056632023-10-08 12:07:59543 days ago1696766879IN
0x90d02e13...B888E92C9
0.0424 ETH0.000496545.03812477
Buy Tokens With ...182960372023-10-07 3:50:59545 days ago1696650659IN
0x90d02e13...B888E92C9
0.0417 ETH0.00065826.67844476
Buy Tokens With ...182893532023-10-06 5:23:47546 days ago1696569827IN
0x90d02e13...B888E92C9
0.0423 ETH0.000710447.20843061
Buy Tokens With ...182816652023-10-05 3:35:47547 days ago1696476947IN
0x90d02e13...B888E92C9
0.0416 ETH0.000657386.67009032
Buy Tokens With ...182792122023-10-04 19:21:59547 days ago1696447319IN
0x90d02e13...B888E92C9
0.0414 ETH0.0012277312.45712903
Buy Tokens With ...182671152023-10-03 2:45:35549 days ago1696301135IN
0x90d02e13...B888E92C9
0.0411 ETH0.000607246.16137212
Buy Tokens With ...182634182023-10-02 14:22:35549 days ago1696256555IN
0x90d02e13...B888E92C9
0.0401 ETH0.0018852923.14468761
Buy Tokens With ...182634132023-10-02 14:21:35549 days ago1696256495IN
0x90d02e13...B888E92C9
0.0401 ETH0.002422324.57775313
Buy Tokens With ...182531422023-10-01 3:56:35551 days ago1696132595IN
0x90d02e13...B888E92C9
0.0409 ETH0.000553755.6185806
Buy Tokens With ...182525702023-10-01 2:01:59551 days ago1696125719IN
0x90d02e13...B888E92C9
0.041 ETH0.000508576.2434809
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer185017752023-11-04 22:54:47516 days ago1699138487
0x90d02e13...B888E92C9
0.0371 ETH
Transfer184017272023-10-21 22:40:59530 days ago1697928059
0x90d02e13...B888E92C9
0.084 ETH
Transfer183881402023-10-20 1:04:35532 days ago1697763875
0x90d02e13...B888E92C9
0.0437 ETH
Transfer183514592023-10-14 21:59:23537 days ago1697320763
0x90d02e13...B888E92C9
0.044 ETH
Transfer183496702023-10-14 15:59:59537 days ago1697299199
0x90d02e13...B888E92C9
0.0441 ETH
Transfer183438422023-10-13 20:25:47538 days ago1697228747
0x90d02e13...B888E92C9
0.0443 ETH
Transfer183348892023-10-12 14:19:11539 days ago1697120351
0x90d02e13...B888E92C9
0.0487 ETH
Transfer183285942023-10-11 17:09:35540 days ago1697044175
0x90d02e13...B888E92C9
0.0044 ETH
Transfer183285872023-10-11 17:08:11540 days ago1697044091
0x90d02e13...B888E92C9
0.0441 ETH
Transfer183238302023-10-11 1:08:35541 days ago1696986515
0x90d02e13...B888E92C9
0.1306 ETH
Transfer183225262023-10-10 20:45:47541 days ago1696970747
0x90d02e13...B888E92C9
0.0044 ETH
Transfer183225222023-10-10 20:44:47541 days ago1696970687
0x90d02e13...B888E92C9
0.0044 ETH
Transfer183210182023-10-10 15:42:11541 days ago1696952531
0x90d02e13...B888E92C9
0.0434 ETH
Transfer183056632023-10-08 12:07:59543 days ago1696766879
0x90d02e13...B888E92C9
0.0424 ETH
Transfer182960372023-10-07 3:50:59545 days ago1696650659
0x90d02e13...B888E92C9
0.0417 ETH
Transfer182893532023-10-06 5:23:47546 days ago1696569827
0x90d02e13...B888E92C9
0.0423 ETH
Transfer182816652023-10-05 3:35:47547 days ago1696476947
0x90d02e13...B888E92C9
0.0416 ETH
Transfer182792122023-10-04 19:21:59547 days ago1696447319
0x90d02e13...B888E92C9
0.0414 ETH
Transfer182671152023-10-03 2:45:35549 days ago1696301135
0x90d02e13...B888E92C9
0.0411 ETH
Transfer182634182023-10-02 14:22:35549 days ago1696256555
0x90d02e13...B888E92C9
0.0401 ETH
Transfer182634132023-10-02 14:21:35549 days ago1696256495
0x90d02e13...B888E92C9
0.0401 ETH
Transfer182531422023-10-01 3:56:35551 days ago1696132595
0x90d02e13...B888E92C9
0.0409 ETH
Transfer182525702023-10-01 2:01:59551 days ago1696125719
0x90d02e13...B888E92C9
0.041 ETH
Transfer182476542023-09-30 9:33:35551 days ago1696066415
0x90d02e13...B888E92C9
0.063 ETH
Transfer182433612023-09-29 19:09:11552 days ago1696014551
0x90d02e13...B888E92C9
0.0411 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Radwealth

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-22
*/

/**
 *Submitted for verification at Etherscan.io on 2023-09-11
*/

// File: @chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
}

// File: contracts/Radwealth.sol



/**
 *Submitted for verification at Etherscan.io on 2023-07-17
*/

// File: @openzeppelin/[email protected]/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;
    }
}

// File: @openzeppelin/[email protected]/token/ERC20/IERC20.sol



pragma solidity ^0.8.0;

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

// File: @openzeppelin/[email protected]/token/ERC20/extensions/IERC20Metadata.sol



pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/[email protected]/token/ERC20/ERC20.sol



pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: contracts/radwealth.sol



pragma solidity ^0.8.14;


contract Radwealth is ERC20 {
    uint256 public initialSupply;
    uint256 public price = 6850000000;
    address public ownerWallet;
    address public usdcAddress;
    address public usdtAddress;

    IERC20 public token;
    AggregatorV3Interface internal priceFeed;

    constructor(address _ownerWallet, address _aggregator, address _usdcAddress, address _usdtAddress) ERC20("RadWealth Coin", "RADW") {
        initialSupply = 5840 ether;
        ownerWallet = _ownerWallet;

        
        usdcAddress = _usdcAddress;
        usdtAddress = _usdtAddress;
        
        token = IERC20(address(this));

        // Initially assign all tokens to the contract's creator.
        _mint(ownerWallet, initialSupply);

        // 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 -> ETH/USD price feed on mainnet
        // 0x694AA1769357215DE4FAC081bf1f309aDC325306 -> ETH/USD price feed on Sepolia
        priceFeed = AggregatorV3Interface(_aggregator);
    }

    function buyTokensWithETH() external payable {
        uint256 amount = msg.value;
        (, int ethPrice, , ,) = priceFeed.latestRoundData();
        uint256 ethUSDPrice = uint256(ethPrice);
        uint256 total = amount * ethUSDPrice / price;
        payable(ownerWallet).transfer(amount);
        token.transferFrom(ownerWallet, msg.sender, total);
    }

    function buyTokensWithUSDC(uint256 _usdcAmount) public {
        IERC20 usdc = IERC20(usdcAddress);
        uint256 allowance = usdc.allowance(msg.sender, address(this));
        require(allowance >= _usdcAmount, "Insufficient USDC allowance");
        require(usdc.transferFrom(msg.sender, ownerWallet, _usdcAmount), "USDC transfer failed");
        uint256 tokensToBuy = _usdcAmount * (10 ** (18 - 6 + 8)) / price;
        require(token.transferFrom(ownerWallet, msg.sender, tokensToBuy), "Token transfer failed");
    }

    function buyTokensWithUSDT(uint256 _usdtAmount) public {
        IERC20 usdt = IERC20(usdtAddress);
        uint256 allowance = usdt.allowance(msg.sender, address(this));
        require(allowance >= _usdtAmount, "Insufficient USDT allowance");
        require(usdt.transferFrom(msg.sender, ownerWallet, _usdtAmount), "USDT transfer failed");
        uint256 tokensToBuy = _usdtAmount * (10 ** (18 - 6 + 8)) / price;
        require(token.transferFrom(ownerWallet, msg.sender, tokensToBuy), "Token transfer failed");
    }

    //   function buyTokensWithERC20(address _paymentTokenAddress, uint256 _paymentTokenDecimals, uint256 _paymentTokenAmount) public {
    //         IERC20 paymentToken = IERC20(_paymentTokenAddress);
    //         uint256 allowance = paymentToken.allowance(msg.sender, address(this));
    //         require(allowance >= _paymentTokenAmount, "Insufficient payment token allowance");
    //         require(paymentToken.transferFrom(msg.sender, ownerWallet, _paymentTokenAmount), "Payment token transfer failed");
    //         uint256 tokensToBuy = _paymentTokenAmount * (10 ** (18 - _paymentTokenDecimals + 8)) / price;
    //         require(token.transferFrom(ownerWallet, msg.sender, tokensToBuy), "Token transfer failed");
    //     }

    // price decimals -> 8
    function setRadwelthUSDPrice(uint256 _price) external {
        require(msg.sender == ownerWallet, "Not authorized");
        price = _price;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_ownerWallet","type":"address"},{"internalType":"address","name":"_aggregator","type":"address"},{"internalType":"address","name":"_usdcAddress","type":"address"},{"internalType":"address","name":"_usdtAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokensWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_usdcAmount","type":"uint256"}],"name":"buyTokensWithUSDC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_usdtAmount","type":"uint256"}],"name":"buyTokensWithUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setRadwelthUSDPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdcAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526401984ab4806006553480156200001a57600080fd5b5060405162002e7138038062002e71833981810160405281019062000040919062000454565b6040518060400160405280600e81526020017f5261645765616c746820436f696e0000000000000000000000000000000000008152506040518060400160405280600481526020017f52414457000000000000000000000000000000000000000000000000000000008152508160039081620000bd919062000740565b508060049081620000cf919062000740565b50505069013c9647e25a9940000060058190555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200021d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005546200026860201b60201c565b82600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000942565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002d19062000888565b60405180910390fd5b620002ee60008383620003e060201b60201c565b8060026000828254620003029190620008d9565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003599190620008d9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003c0919062000925565b60405180910390a3620003dc60008383620003e560201b60201c565b5050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200041c82620003ef565b9050919050565b6200042e816200040f565b81146200043a57600080fd5b50565b6000815190506200044e8162000423565b92915050565b60008060008060808587031215620004715762000470620003ea565b5b600062000481878288016200043d565b945050602062000494878288016200043d565b9350506040620004a7878288016200043d565b9250506060620004ba878288016200043d565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200054857607f821691505b6020821081036200055e576200055d62000500565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000589565b620005d4868362000589565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006216200061b6200061584620005ec565b620005f6565b620005ec565b9050919050565b6000819050919050565b6200063d8362000600565b620006556200064c8262000628565b84845462000596565b825550505050565b600090565b6200066c6200065d565b6200067981848462000632565b505050565b5b81811015620006a1576200069560008262000662565b6001810190506200067f565b5050565b601f821115620006f057620006ba8162000564565b620006c58462000579565b81016020851015620006d5578190505b620006ed620006e48562000579565b8301826200067e565b50505b505050565b600082821c905092915050565b60006200071560001984600802620006f5565b1980831691505092915050565b600062000730838362000702565b9150826002028217905092915050565b6200074b82620004c6565b67ffffffffffffffff811115620007675762000766620004d1565b5b6200077382546200052f565b62000780828285620006a5565b600060209050601f831160018114620007b85760008415620007a3578287015190505b620007af858262000722565b8655506200081f565b601f198416620007c88662000564565b60005b82811015620007f257848901518255600182019150602085019450602081019050620007cb565b868310156200081257848901516200080e601f89168262000702565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000870601f8362000827565b91506200087d8262000838565b602082019050919050565b60006020820190508181036000830152620008a38162000861565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008e682620005ec565b9150620008f383620005ec565b92508282019050808211156200090e576200090d620008aa565b5b92915050565b6200091f81620005ec565b82525050565b60006020820190506200093c600083018462000914565b92915050565b61251f80620009526000396000f3fe6080604052600436106101295760003560e01c806370a08231116100ab5780639c0caad61161006f5780639c0caad6146103f5578063a035b1fe146103ff578063a457c2d71461042a578063a9059cbb14610467578063dd62ed3e146104a4578063fc0c546a146104e157610129565b806370a082311461030e57806390fe6d431461034b5780639335dcb71461037457806395d89b411461039f5780639ab4a445146103ca57610129565b806323b872dd116100f257806323b872dd14610215578063313ce56714610252578063378dc3dc1461027d57806339509351146102a85780635ef8086f146102e557610129565b8062fe8edc1461012e57806302d454571461015757806306fdde0314610182578063095ea7b3146101ad57806318160ddd146101ea575b600080fd5b34801561013a57600080fd5b5061015560048036038101906101509190611798565b61050c565b005b34801561016357600080fd5b5061016c610806565b6040516101799190611806565b60405180910390f35b34801561018e57600080fd5b5061019761082c565b6040516101a491906118b1565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906118ff565b6108be565b6040516101e1919061195a565b60405180910390f35b3480156101f657600080fd5b506101ff6108dc565b60405161020c9190611984565b60405180910390f35b34801561022157600080fd5b5061023c6004803603810190610237919061199f565b6108e6565b604051610249919061195a565b60405180910390f35b34801561025e57600080fd5b506102676109de565b6040516102749190611a0e565b60405180910390f35b34801561028957600080fd5b506102926109e7565b60405161029f9190611984565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906118ff565b6109ed565b6040516102dc919061195a565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190611798565b610a99565b005b34801561031a57600080fd5b5061033560048036038101906103309190611a29565b610d93565b6040516103429190611984565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190611798565b610ddb565b005b34801561038057600080fd5b50610389610e75565b6040516103969190611806565b60405180910390f35b3480156103ab57600080fd5b506103b4610e9b565b6040516103c191906118b1565b60405180910390f35b3480156103d657600080fd5b506103df610f2d565b6040516103ec9190611806565b60405180910390f35b6103fd610f53565b005b34801561040b57600080fd5b50610414611147565b6040516104219190611984565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906118ff565b61114d565b60405161045e919061195a565b60405180910390f35b34801561047357600080fd5b5061048e600480360381019061048991906118ff565b611238565b60405161049b919061195a565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190611a56565b611256565b6040516104d89190611984565b60405180910390f35b3480156104ed57600080fd5b506104f66112dd565b6040516105039190611af5565b60405180910390f35b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610570929190611b10565b602060405180830381865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b19190611b4e565b9050828110156105f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ed90611bc7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b815260040161065593929190611be7565b6020604051808303816000875af1158015610674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106989190611c4a565b6106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90611cc3565b60405180910390fd5b600060065468056bc75e2d63100000856106f19190611d12565b6106fb9190611d83565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b815260040161077e93929190611be7565b6020604051808303816000875af115801561079d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c19190611c4a565b610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f790611e00565b60405180910390fd5b50505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606003805461083b90611e4f565b80601f016020809104026020016040519081016040528092919081815260200182805461086790611e4f565b80156108b45780601f10610889576101008083540402835291602001916108b4565b820191906000526020600020905b81548152906001019060200180831161089757829003601f168201915b5050505050905090565b60006108d26108cb611303565b848461130b565b6001905092915050565b6000600254905090565b60006108f38484846114d4565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093e611303565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b590611ef2565b60405180910390fd5b6109d2856109ca611303565b85840361130b565b60019150509392505050565b60006012905090565b60055481565b6000610a8f6109fa611303565b848460016000610a08611303565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8a9190611f12565b61130b565b6001905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610afd929190611b10565b602060405180830381865afa158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e9190611b4e565b905082811015610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90611f92565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b8152600401610be293929190611be7565b6020604051808303816000875af1158015610c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c259190611c4a565b610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90611ffe565b60405180910390fd5b600060065468056bc75e2d6310000085610c7e9190611d12565b610c889190611d83565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b8152600401610d0b93929190611be7565b6020604051808303816000875af1158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e9190611c4a565b610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8490611e00565b60405180910390fd5b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e629061206a565b60405180910390fd5b8060068190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610eaa90611e4f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed690611e4f565b8015610f235780601f10610ef857610100808354040283529160200191610f23565b820191906000526020600020905b815481529060010190602001808311610f0657829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003490506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190612102565b5050509150506000819050600060065482856110079190611d12565b6110119190611d83565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505015801561107b573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b81526004016110fd93929190611be7565b6020604051808303816000875af115801561111c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111409190611c4a565b5050505050565b60065481565b6000806001600061115c611303565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906121ef565b60405180910390fd5b61122d611224611303565b8585840361130b565b600191505092915050565b600061124c611245611303565b84846114d4565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190612281565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e090612313565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c79190611984565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a906123a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612437565b60405180910390fd5b6115bd838383611753565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906124c9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116d69190611f12565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161173a9190611984565b60405180910390a361174d848484611758565b50505050565b505050565b505050565b600080fd5b6000819050919050565b61177581611762565b811461178057600080fd5b50565b6000813590506117928161176c565b92915050565b6000602082840312156117ae576117ad61175d565b5b60006117bc84828501611783565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117f0826117c5565b9050919050565b611800816117e5565b82525050565b600060208201905061181b60008301846117f7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561185b578082015181840152602081019050611840565b60008484015250505050565b6000601f19601f8301169050919050565b600061188382611821565b61188d818561182c565b935061189d81856020860161183d565b6118a681611867565b840191505092915050565b600060208201905081810360008301526118cb8184611878565b905092915050565b6118dc816117e5565b81146118e757600080fd5b50565b6000813590506118f9816118d3565b92915050565b600080604083850312156119165761191561175d565b5b6000611924858286016118ea565b925050602061193585828601611783565b9150509250929050565b60008115159050919050565b6119548161193f565b82525050565b600060208201905061196f600083018461194b565b92915050565b61197e81611762565b82525050565b60006020820190506119996000830184611975565b92915050565b6000806000606084860312156119b8576119b761175d565b5b60006119c6868287016118ea565b93505060206119d7868287016118ea565b92505060406119e886828701611783565b9150509250925092565b600060ff82169050919050565b611a08816119f2565b82525050565b6000602082019050611a2360008301846119ff565b92915050565b600060208284031215611a3f57611a3e61175d565b5b6000611a4d848285016118ea565b91505092915050565b60008060408385031215611a6d57611a6c61175d565b5b6000611a7b858286016118ea565b9250506020611a8c858286016118ea565b9150509250929050565b6000819050919050565b6000611abb611ab6611ab1846117c5565b611a96565b6117c5565b9050919050565b6000611acd82611aa0565b9050919050565b6000611adf82611ac2565b9050919050565b611aef81611ad4565b82525050565b6000602082019050611b0a6000830184611ae6565b92915050565b6000604082019050611b2560008301856117f7565b611b3260208301846117f7565b9392505050565b600081519050611b488161176c565b92915050565b600060208284031215611b6457611b6361175d565b5b6000611b7284828501611b39565b91505092915050565b7f496e73756666696369656e74205553444320616c6c6f77616e63650000000000600082015250565b6000611bb1601b8361182c565b9150611bbc82611b7b565b602082019050919050565b60006020820190508181036000830152611be081611ba4565b9050919050565b6000606082019050611bfc60008301866117f7565b611c0960208301856117f7565b611c166040830184611975565b949350505050565b611c278161193f565b8114611c3257600080fd5b50565b600081519050611c4481611c1e565b92915050565b600060208284031215611c6057611c5f61175d565b5b6000611c6e84828501611c35565b91505092915050565b7f55534443207472616e73666572206661696c6564000000000000000000000000600082015250565b6000611cad60148361182c565b9150611cb882611c77565b602082019050919050565b60006020820190508181036000830152611cdc81611ca0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d1d82611762565b9150611d2883611762565b9250828202611d3681611762565b91508282048414831517611d4d57611d4c611ce3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611d8e82611762565b9150611d9983611762565b925082611da957611da8611d54565b5b828204905092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000611dea60158361182c565b9150611df582611db4565b602082019050919050565b60006020820190508181036000830152611e1981611ddd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e6757607f821691505b602082108103611e7a57611e79611e20565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611edc60288361182c565b9150611ee782611e80565b604082019050919050565b60006020820190508181036000830152611f0b81611ecf565b9050919050565b6000611f1d82611762565b9150611f2883611762565b9250828201905080821115611f4057611f3f611ce3565b5b92915050565b7f496e73756666696369656e74205553445420616c6c6f77616e63650000000000600082015250565b6000611f7c601b8361182c565b9150611f8782611f46565b602082019050919050565b60006020820190508181036000830152611fab81611f6f565b9050919050565b7f55534454207472616e73666572206661696c6564000000000000000000000000600082015250565b6000611fe860148361182c565b9150611ff382611fb2565b602082019050919050565b6000602082019050818103600083015261201781611fdb565b9050919050565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000612054600e8361182c565b915061205f8261201e565b602082019050919050565b6000602082019050818103600083015261208381612047565b9050919050565b600069ffffffffffffffffffff82169050919050565b6120a98161208a565b81146120b457600080fd5b50565b6000815190506120c6816120a0565b92915050565b6000819050919050565b6120df816120cc565b81146120ea57600080fd5b50565b6000815190506120fc816120d6565b92915050565b600080600080600060a0868803121561211e5761211d61175d565b5b600061212c888289016120b7565b955050602061213d888289016120ed565b945050604061214e88828901611b39565b935050606061215f88828901611b39565b9250506080612170888289016120b7565b9150509295509295909350565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006121d960258361182c565b91506121e48261217d565b604082019050919050565b60006020820190508181036000830152612208816121cc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061226b60248361182c565b91506122768261220f565b604082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122fd60228361182c565b9150612308826122a1565b604082019050919050565b6000602082019050818103600083015261232c816122f0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061238f60258361182c565b915061239a82612333565b604082019050919050565b600060208201905081810360008301526123be81612382565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061242160238361182c565b915061242c826123c5565b604082019050919050565b6000602082019050818103600083015261245081612414565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006124b360268361182c565b91506124be82612457565b604082019050919050565b600060208201905081810360008301526124e2816124a6565b905091905056fea2646970667358221220048b8bc0b208e995a8e5f7eeb49a721256754838f62d0e26c1ed3ea4d8cb292464736f6c6343000812003300000000000000000000000052ec18aca8481ccc9e4cc4dcd5082b73445c7c360000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7

Deployed Bytecode

0x6080604052600436106101295760003560e01c806370a08231116100ab5780639c0caad61161006f5780639c0caad6146103f5578063a035b1fe146103ff578063a457c2d71461042a578063a9059cbb14610467578063dd62ed3e146104a4578063fc0c546a146104e157610129565b806370a082311461030e57806390fe6d431461034b5780639335dcb71461037457806395d89b411461039f5780639ab4a445146103ca57610129565b806323b872dd116100f257806323b872dd14610215578063313ce56714610252578063378dc3dc1461027d57806339509351146102a85780635ef8086f146102e557610129565b8062fe8edc1461012e57806302d454571461015757806306fdde0314610182578063095ea7b3146101ad57806318160ddd146101ea575b600080fd5b34801561013a57600080fd5b5061015560048036038101906101509190611798565b61050c565b005b34801561016357600080fd5b5061016c610806565b6040516101799190611806565b60405180910390f35b34801561018e57600080fd5b5061019761082c565b6040516101a491906118b1565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906118ff565b6108be565b6040516101e1919061195a565b60405180910390f35b3480156101f657600080fd5b506101ff6108dc565b60405161020c9190611984565b60405180910390f35b34801561022157600080fd5b5061023c6004803603810190610237919061199f565b6108e6565b604051610249919061195a565b60405180910390f35b34801561025e57600080fd5b506102676109de565b6040516102749190611a0e565b60405180910390f35b34801561028957600080fd5b506102926109e7565b60405161029f9190611984565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906118ff565b6109ed565b6040516102dc919061195a565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190611798565b610a99565b005b34801561031a57600080fd5b5061033560048036038101906103309190611a29565b610d93565b6040516103429190611984565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190611798565b610ddb565b005b34801561038057600080fd5b50610389610e75565b6040516103969190611806565b60405180910390f35b3480156103ab57600080fd5b506103b4610e9b565b6040516103c191906118b1565b60405180910390f35b3480156103d657600080fd5b506103df610f2d565b6040516103ec9190611806565b60405180910390f35b6103fd610f53565b005b34801561040b57600080fd5b50610414611147565b6040516104219190611984565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906118ff565b61114d565b60405161045e919061195a565b60405180910390f35b34801561047357600080fd5b5061048e600480360381019061048991906118ff565b611238565b60405161049b919061195a565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190611a56565b611256565b6040516104d89190611984565b60405180910390f35b3480156104ed57600080fd5b506104f66112dd565b6040516105039190611af5565b60405180910390f35b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610570929190611b10565b602060405180830381865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b19190611b4e565b9050828110156105f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ed90611bc7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b815260040161065593929190611be7565b6020604051808303816000875af1158015610674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106989190611c4a565b6106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90611cc3565b60405180910390fd5b600060065468056bc75e2d63100000856106f19190611d12565b6106fb9190611d83565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b815260040161077e93929190611be7565b6020604051808303816000875af115801561079d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c19190611c4a565b610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f790611e00565b60405180910390fd5b50505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606003805461083b90611e4f565b80601f016020809104026020016040519081016040528092919081815260200182805461086790611e4f565b80156108b45780601f10610889576101008083540402835291602001916108b4565b820191906000526020600020905b81548152906001019060200180831161089757829003601f168201915b5050505050905090565b60006108d26108cb611303565b848461130b565b6001905092915050565b6000600254905090565b60006108f38484846114d4565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093e611303565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b590611ef2565b60405180910390fd5b6109d2856109ca611303565b85840361130b565b60019150509392505050565b60006012905090565b60055481565b6000610a8f6109fa611303565b848460016000610a08611303565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8a9190611f12565b61130b565b6001905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610afd929190611b10565b602060405180830381865afa158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e9190611b4e565b905082811015610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90611f92565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b8152600401610be293929190611be7565b6020604051808303816000875af1158015610c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c259190611c4a565b610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90611ffe565b60405180910390fd5b600060065468056bc75e2d6310000085610c7e9190611d12565b610c889190611d83565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b8152600401610d0b93929190611be7565b6020604051808303816000875af1158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e9190611c4a565b610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8490611e00565b60405180910390fd5b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e629061206a565b60405180910390fd5b8060068190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610eaa90611e4f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed690611e4f565b8015610f235780601f10610ef857610100808354040283529160200191610f23565b820191906000526020600020905b815481529060010190602001808311610f0657829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003490506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190612102565b5050509150506000819050600060065482856110079190611d12565b6110119190611d83565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f1935050505015801561107b573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b81526004016110fd93929190611be7565b6020604051808303816000875af115801561111c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111409190611c4a565b5050505050565b60065481565b6000806001600061115c611303565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906121ef565b60405180910390fd5b61122d611224611303565b8585840361130b565b600191505092915050565b600061124c611245611303565b84846114d4565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190612281565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e090612313565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c79190611984565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a906123a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612437565b60405180910390fd5b6115bd838383611753565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906124c9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116d69190611f12565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161173a9190611984565b60405180910390a361174d848484611758565b50505050565b505050565b505050565b600080fd5b6000819050919050565b61177581611762565b811461178057600080fd5b50565b6000813590506117928161176c565b92915050565b6000602082840312156117ae576117ad61175d565b5b60006117bc84828501611783565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117f0826117c5565b9050919050565b611800816117e5565b82525050565b600060208201905061181b60008301846117f7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561185b578082015181840152602081019050611840565b60008484015250505050565b6000601f19601f8301169050919050565b600061188382611821565b61188d818561182c565b935061189d81856020860161183d565b6118a681611867565b840191505092915050565b600060208201905081810360008301526118cb8184611878565b905092915050565b6118dc816117e5565b81146118e757600080fd5b50565b6000813590506118f9816118d3565b92915050565b600080604083850312156119165761191561175d565b5b6000611924858286016118ea565b925050602061193585828601611783565b9150509250929050565b60008115159050919050565b6119548161193f565b82525050565b600060208201905061196f600083018461194b565b92915050565b61197e81611762565b82525050565b60006020820190506119996000830184611975565b92915050565b6000806000606084860312156119b8576119b761175d565b5b60006119c6868287016118ea565b93505060206119d7868287016118ea565b92505060406119e886828701611783565b9150509250925092565b600060ff82169050919050565b611a08816119f2565b82525050565b6000602082019050611a2360008301846119ff565b92915050565b600060208284031215611a3f57611a3e61175d565b5b6000611a4d848285016118ea565b91505092915050565b60008060408385031215611a6d57611a6c61175d565b5b6000611a7b858286016118ea565b9250506020611a8c858286016118ea565b9150509250929050565b6000819050919050565b6000611abb611ab6611ab1846117c5565b611a96565b6117c5565b9050919050565b6000611acd82611aa0565b9050919050565b6000611adf82611ac2565b9050919050565b611aef81611ad4565b82525050565b6000602082019050611b0a6000830184611ae6565b92915050565b6000604082019050611b2560008301856117f7565b611b3260208301846117f7565b9392505050565b600081519050611b488161176c565b92915050565b600060208284031215611b6457611b6361175d565b5b6000611b7284828501611b39565b91505092915050565b7f496e73756666696369656e74205553444320616c6c6f77616e63650000000000600082015250565b6000611bb1601b8361182c565b9150611bbc82611b7b565b602082019050919050565b60006020820190508181036000830152611be081611ba4565b9050919050565b6000606082019050611bfc60008301866117f7565b611c0960208301856117f7565b611c166040830184611975565b949350505050565b611c278161193f565b8114611c3257600080fd5b50565b600081519050611c4481611c1e565b92915050565b600060208284031215611c6057611c5f61175d565b5b6000611c6e84828501611c35565b91505092915050565b7f55534443207472616e73666572206661696c6564000000000000000000000000600082015250565b6000611cad60148361182c565b9150611cb882611c77565b602082019050919050565b60006020820190508181036000830152611cdc81611ca0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d1d82611762565b9150611d2883611762565b9250828202611d3681611762565b91508282048414831517611d4d57611d4c611ce3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611d8e82611762565b9150611d9983611762565b925082611da957611da8611d54565b5b828204905092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000611dea60158361182c565b9150611df582611db4565b602082019050919050565b60006020820190508181036000830152611e1981611ddd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e6757607f821691505b602082108103611e7a57611e79611e20565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611edc60288361182c565b9150611ee782611e80565b604082019050919050565b60006020820190508181036000830152611f0b81611ecf565b9050919050565b6000611f1d82611762565b9150611f2883611762565b9250828201905080821115611f4057611f3f611ce3565b5b92915050565b7f496e73756666696369656e74205553445420616c6c6f77616e63650000000000600082015250565b6000611f7c601b8361182c565b9150611f8782611f46565b602082019050919050565b60006020820190508181036000830152611fab81611f6f565b9050919050565b7f55534454207472616e73666572206661696c6564000000000000000000000000600082015250565b6000611fe860148361182c565b9150611ff382611fb2565b602082019050919050565b6000602082019050818103600083015261201781611fdb565b9050919050565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000612054600e8361182c565b915061205f8261201e565b602082019050919050565b6000602082019050818103600083015261208381612047565b9050919050565b600069ffffffffffffffffffff82169050919050565b6120a98161208a565b81146120b457600080fd5b50565b6000815190506120c6816120a0565b92915050565b6000819050919050565b6120df816120cc565b81146120ea57600080fd5b50565b6000815190506120fc816120d6565b92915050565b600080600080600060a0868803121561211e5761211d61175d565b5b600061212c888289016120b7565b955050602061213d888289016120ed565b945050604061214e88828901611b39565b935050606061215f88828901611b39565b9250506080612170888289016120b7565b9150509295509295909350565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006121d960258361182c565b91506121e48261217d565b604082019050919050565b60006020820190508181036000830152612208816121cc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061226b60248361182c565b91506122768261220f565b604082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122fd60228361182c565b9150612308826122a1565b604082019050919050565b6000602082019050818103600083015261232c816122f0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061238f60258361182c565b915061239a82612333565b604082019050919050565b600060208201905081810360008301526123be81612382565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061242160238361182c565b915061242c826123c5565b604082019050919050565b6000602082019050818103600083015261245081612414565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006124b360268361182c565b91506124be82612457565b604082019050919050565b600060208201905081810360008301526124e2816124a6565b905091905056fea2646970667358221220048b8bc0b208e995a8e5f7eeb49a721256754838f62d0e26c1ed3ea4d8cb292464736f6c63430008120033

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

00000000000000000000000052ec18aca8481ccc9e4cc4dcd5082b73445c7c360000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7

-----Decoded View---------------
Arg [0] : _ownerWallet (address): 0x52eC18aCa8481CCC9e4Cc4DcD5082B73445c7c36
Arg [1] : _aggregator (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [2] : _usdcAddress (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [3] : _usdtAddress (address): 0xdAC17F958D2ee523a2206206994597C13D831ec7

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000052ec18aca8481ccc9e4cc4dcd5082b73445c7c36
Arg [1] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [2] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [3] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7


Deployed Bytecode Sourcemap

17410:3376:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18775:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17553:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7379:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9546:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8499:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10197:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8341:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17445:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11098:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19312:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8670:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20633:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17520:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7598:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17586:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18401:366;;;:::i;:::-;;17480:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11816:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9010:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9248:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17621:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18775:529;18841:11;18862;;;;;;;;;;;18841:33;;18885:17;18905:4;:14;;;18920:10;18940:4;18905:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18885:61;;18978:11;18965:9;:24;;18957:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:4;:17;;;19058:10;19070:11;;;;;;;;;;;19083;19040:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19032:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;19131:19;19190:5;;19168:18;19153:11;:34;;;;:::i;:::-;:42;;;;:::i;:::-;19131:64;;19214:5;;;;;;;;;;;:18;;;19233:11;;;;;;;;;;;19246:10;19258:11;19214:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19206:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;18830:474;;;18775:529;:::o;17553:26::-;;;;;;;;;;;;;:::o;7379:100::-;7433:13;7466:5;7459:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7379:100;:::o;9546:169::-;9629:4;9646:39;9655:12;:10;:12::i;:::-;9669:7;9678:6;9646:8;:39::i;:::-;9703:4;9696:11;;9546:169;;;;:::o;8499:108::-;8560:7;8587:12;;8580:19;;8499:108;:::o;10197:492::-;10337:4;10354:36;10364:6;10372:9;10383:6;10354:9;:36::i;:::-;10403:24;10430:11;:19;10442:6;10430:19;;;;;;;;;;;;;;;:33;10450:12;:10;:12::i;:::-;10430:33;;;;;;;;;;;;;;;;10403:60;;10502:6;10482:16;:26;;10474:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10589:57;10598:6;10606:12;:10;:12::i;:::-;10639:6;10620:16;:25;10589:8;:57::i;:::-;10677:4;10670:11;;;10197:492;;;;;:::o;8341:93::-;8399:5;8424:2;8417:9;;8341:93;:::o;17445:28::-;;;;:::o;11098:215::-;11186:4;11203:80;11212:12;:10;:12::i;:::-;11226:7;11272:10;11235:11;:25;11247:12;:10;:12::i;:::-;11235:25;;;;;;;;;;;;;;;:34;11261:7;11235:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11203:8;:80::i;:::-;11301:4;11294:11;;11098:215;;;;:::o;19312:529::-;19378:11;19399;;;;;;;;;;;19378:33;;19422:17;19442:4;:14;;;19457:10;19477:4;19442:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19422:61;;19515:11;19502:9;:24;;19494:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19577:4;:17;;;19595:10;19607:11;;;;;;;;;;;19620;19577:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19569:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;19668:19;19727:5;;19705:18;19690:11;:34;;;;:::i;:::-;:42;;;;:::i;:::-;19668:64;;19751:5;;;;;;;;;;;:18;;;19770:11;;;;;;;;;;;19783:10;19795:11;19751:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19743:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;19367:474;;;19312:529;:::o;8670:127::-;8744:7;8771:9;:18;8781:7;8771:18;;;;;;;;;;;;;;;;8764:25;;8670:127;;;:::o;20633:150::-;20720:11;;;;;;;;;;;20706:25;;:10;:25;;;20698:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;20769:6;20761:5;:14;;;;20633:150;:::o;17520:26::-;;;;;;;;;;;;;:::o;7598:104::-;7654:13;7687:7;7680:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7598:104;:::o;17586:26::-;;;;;;;;;;;;;:::o;18401:366::-;18457:14;18474:9;18457:26;;18497:12;18518:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18494:51;;;;;;18556:19;18586:8;18556:39;;18606:13;18645:5;;18631:11;18622:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;18606:44;;18669:11;;;;;;;;;;;18661:29;;:37;18691:6;18661:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18709:5;;;;;;;;;;;:18;;;18728:11;;;;;;;;;;;18741:10;18753:5;18709:50;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18446:321;;;;18401:366::o;17480:33::-;;;;:::o;11816:413::-;11909:4;11926:24;11953:11;:25;11965:12;:10;:12::i;:::-;11953:25;;;;;;;;;;;;;;;:34;11979:7;11953:34;;;;;;;;;;;;;;;;11926:61;;12026:15;12006:16;:35;;11998:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12119:67;12128:12;:10;:12::i;:::-;12142:7;12170:15;12151:16;:34;12119:8;:67::i;:::-;12217:4;12210:11;;;11816:413;;;;:::o;9010:175::-;9096:4;9113:42;9123:12;:10;:12::i;:::-;9137:9;9148:6;9113:9;:42::i;:::-;9173:4;9166:11;;9010:175;;;;:::o;9248:151::-;9337:7;9364:11;:18;9376:5;9364:18;;;;;;;;;;;;;;;:27;9383:7;9364:27;;;;;;;;;;;;;;;;9357:34;;9248:151;;;;:::o;17621:19::-;;;;;;;;;;;;;:::o;1591:98::-;1644:7;1671:10;1664:17;;1591:98;:::o;15500:380::-;15653:1;15636:19;;:5;:19;;;15628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15734:1;15715:21;;:7;:21;;;15707:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15818:6;15788:11;:18;15800:5;15788:18;;;;;;;;;;;;;;;:27;15807:7;15788:27;;;;;;;;;;;;;;;:36;;;;15856:7;15840:32;;15849:5;15840:32;;;15865:6;15840:32;;;;;;:::i;:::-;;;;;;;;15500:380;;;:::o;12719:733::-;12877:1;12859:20;;:6;:20;;;12851:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12961:1;12940:23;;:9;:23;;;12932:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13016:47;13037:6;13045:9;13056:6;13016:20;:47::i;:::-;13076:21;13100:9;:17;13110:6;13100:17;;;;;;;;;;;;;;;;13076:41;;13153:6;13136:13;:23;;13128:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13274:6;13258:13;:22;13238:9;:17;13248:6;13238:17;;;;;;;;;;;;;;;:42;;;;13326:6;13302:9;:20;13312:9;13302:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13367:9;13350:35;;13359:6;13350:35;;;13378:6;13350:35;;;;;;:::i;:::-;;;;;;;;13398:46;13418:6;13426:9;13437:6;13398:19;:46::i;:::-;12840:612;12719:733;;;:::o;16480:125::-;;;;:::o;17209:124::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:246::-;1972:1;1982:113;1996:6;1993:1;1990:13;1982:113;;;2081:1;2076:3;2072:11;2066:18;2062:1;2057:3;2053:11;2046:39;2018:2;2015:1;2011:10;2006:15;;1982:113;;;2129:1;2120:6;2115:3;2111:16;2104:27;1953:184;1891:246;;;:::o;2143:102::-;2184:6;2235:2;2231:7;2226:2;2219:5;2215:14;2211:28;2201:38;;2143:102;;;:::o;2251:377::-;2339:3;2367:39;2400:5;2367:39;:::i;:::-;2422:71;2486:6;2481:3;2422:71;:::i;:::-;2415:78;;2502:65;2560:6;2555:3;2548:4;2541:5;2537:16;2502:65;:::i;:::-;2592:29;2614:6;2592:29;:::i;:::-;2587:3;2583:39;2576:46;;2343:285;2251:377;;;;:::o;2634:313::-;2747:4;2785:2;2774:9;2770:18;2762:26;;2834:9;2828:4;2824:20;2820:1;2809:9;2805:17;2798:47;2862:78;2935:4;2926:6;2862:78;:::i;:::-;2854:86;;2634:313;;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:118::-;4220:24;4238:5;4220:24;:::i;:::-;4215:3;4208:37;4133:118;;:::o;4257:222::-;4350:4;4388:2;4377:9;4373:18;4365:26;;4401:71;4469:1;4458:9;4454:17;4445:6;4401:71;:::i;:::-;4257:222;;;;:::o;4485:619::-;4562:6;4570;4578;4627:2;4615:9;4606:7;4602:23;4598:32;4595:119;;;4633:79;;:::i;:::-;4595:119;4753:1;4778:53;4823:7;4814:6;4803:9;4799:22;4778:53;:::i;:::-;4768:63;;4724:117;4880:2;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4851:118;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;4485:619;;;;;:::o;5110:86::-;5145:7;5185:4;5178:5;5174:16;5163:27;;5110:86;;;:::o;5202:112::-;5285:22;5301:5;5285:22;:::i;:::-;5280:3;5273:35;5202:112;;:::o;5320:214::-;5409:4;5447:2;5436:9;5432:18;5424:26;;5460:67;5524:1;5513:9;5509:17;5500:6;5460:67;:::i;:::-;5320:214;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:60::-;6383:3;6404:5;6397:12;;6355:60;;;:::o;6421:142::-;6471:9;6504:53;6522:34;6531:24;6549:5;6531:24;:::i;:::-;6522:34;:::i;:::-;6504:53;:::i;:::-;6491:66;;6421:142;;;:::o;6569:126::-;6619:9;6652:37;6683:5;6652:37;:::i;:::-;6639:50;;6569:126;;;:::o;6701:140::-;6765:9;6798:37;6829:5;6798:37;:::i;:::-;6785:50;;6701:140;;;:::o;6847:159::-;6948:51;6993:5;6948:51;:::i;:::-;6943:3;6936:64;6847:159;;:::o;7012:250::-;7119:4;7157:2;7146:9;7142:18;7134:26;;7170:85;7252:1;7241:9;7237:17;7228:6;7170:85;:::i;:::-;7012:250;;;;:::o;7268:332::-;7389:4;7427:2;7416:9;7412:18;7404:26;;7440:71;7508:1;7497:9;7493:17;7484:6;7440:71;:::i;:::-;7521:72;7589:2;7578:9;7574:18;7565:6;7521:72;:::i;:::-;7268:332;;;;;:::o;7606:143::-;7663:5;7694:6;7688:13;7679:22;;7710:33;7737:5;7710:33;:::i;:::-;7606:143;;;;:::o;7755:351::-;7825:6;7874:2;7862:9;7853:7;7849:23;7845:32;7842:119;;;7880:79;;:::i;:::-;7842:119;8000:1;8025:64;8081:7;8072:6;8061:9;8057:22;8025:64;:::i;:::-;8015:74;;7971:128;7755:351;;;;:::o;8112:177::-;8252:29;8248:1;8240:6;8236:14;8229:53;8112:177;:::o;8295:366::-;8437:3;8458:67;8522:2;8517:3;8458:67;:::i;:::-;8451:74;;8534:93;8623:3;8534:93;:::i;:::-;8652:2;8647:3;8643:12;8636:19;;8295:366;;;:::o;8667:419::-;8833:4;8871:2;8860:9;8856:18;8848:26;;8920:9;8914:4;8910:20;8906:1;8895:9;8891:17;8884:47;8948:131;9074:4;8948:131;:::i;:::-;8940:139;;8667:419;;;:::o;9092:442::-;9241:4;9279:2;9268:9;9264:18;9256:26;;9292:71;9360:1;9349:9;9345:17;9336:6;9292:71;:::i;:::-;9373:72;9441:2;9430:9;9426:18;9417:6;9373:72;:::i;:::-;9455;9523:2;9512:9;9508:18;9499:6;9455:72;:::i;:::-;9092:442;;;;;;:::o;9540:116::-;9610:21;9625:5;9610:21;:::i;:::-;9603:5;9600:32;9590:60;;9646:1;9643;9636:12;9590:60;9540:116;:::o;9662:137::-;9716:5;9747:6;9741:13;9732:22;;9763:30;9787:5;9763:30;:::i;:::-;9662:137;;;;:::o;9805:345::-;9872:6;9921:2;9909:9;9900:7;9896:23;9892:32;9889:119;;;9927:79;;:::i;:::-;9889:119;10047:1;10072:61;10125:7;10116:6;10105:9;10101:22;10072:61;:::i;:::-;10062:71;;10018:125;9805:345;;;;:::o;10156:170::-;10296:22;10292:1;10284:6;10280:14;10273:46;10156:170;:::o;10332:366::-;10474:3;10495:67;10559:2;10554:3;10495:67;:::i;:::-;10488:74;;10571:93;10660:3;10571:93;:::i;:::-;10689:2;10684:3;10680:12;10673:19;;10332:366;;;:::o;10704:419::-;10870:4;10908:2;10897:9;10893:18;10885:26;;10957:9;10951:4;10947:20;10943:1;10932:9;10928:17;10921:47;10985:131;11111:4;10985:131;:::i;:::-;10977:139;;10704:419;;;:::o;11129:180::-;11177:77;11174:1;11167:88;11274:4;11271:1;11264:15;11298:4;11295:1;11288:15;11315:410;11355:7;11378:20;11396:1;11378:20;:::i;:::-;11373:25;;11412:20;11430:1;11412:20;:::i;:::-;11407:25;;11467:1;11464;11460:9;11489:30;11507:11;11489:30;:::i;:::-;11478:41;;11668:1;11659:7;11655:15;11652:1;11649:22;11629:1;11622:9;11602:83;11579:139;;11698:18;;:::i;:::-;11579:139;11363:362;11315:410;;;;:::o;11731:180::-;11779:77;11776:1;11769:88;11876:4;11873:1;11866:15;11900:4;11897:1;11890:15;11917:185;11957:1;11974:20;11992:1;11974:20;:::i;:::-;11969:25;;12008:20;12026:1;12008:20;:::i;:::-;12003:25;;12047:1;12037:35;;12052:18;;:::i;:::-;12037:35;12094:1;12091;12087:9;12082:14;;11917:185;;;;:::o;12108:171::-;12248:23;12244:1;12236:6;12232:14;12225:47;12108:171;:::o;12285:366::-;12427:3;12448:67;12512:2;12507:3;12448:67;:::i;:::-;12441:74;;12524:93;12613:3;12524:93;:::i;:::-;12642:2;12637:3;12633:12;12626:19;;12285:366;;;:::o;12657:419::-;12823:4;12861:2;12850:9;12846:18;12838:26;;12910:9;12904:4;12900:20;12896:1;12885:9;12881:17;12874:47;12938:131;13064:4;12938:131;:::i;:::-;12930:139;;12657:419;;;:::o;13082:180::-;13130:77;13127:1;13120:88;13227:4;13224:1;13217:15;13251:4;13248:1;13241:15;13268:320;13312:6;13349:1;13343:4;13339:12;13329:22;;13396:1;13390:4;13386:12;13417:18;13407:81;;13473:4;13465:6;13461:17;13451:27;;13407:81;13535:2;13527:6;13524:14;13504:18;13501:38;13498:84;;13554:18;;:::i;:::-;13498:84;13319:269;13268:320;;;:::o;13594:227::-;13734:34;13730:1;13722:6;13718:14;13711:58;13803:10;13798:2;13790:6;13786:15;13779:35;13594:227;:::o;13827:366::-;13969:3;13990:67;14054:2;14049:3;13990:67;:::i;:::-;13983:74;;14066:93;14155:3;14066:93;:::i;:::-;14184:2;14179:3;14175:12;14168:19;;13827:366;;;:::o;14199:419::-;14365:4;14403:2;14392:9;14388:18;14380:26;;14452:9;14446:4;14442:20;14438:1;14427:9;14423:17;14416:47;14480:131;14606:4;14480:131;:::i;:::-;14472:139;;14199:419;;;:::o;14624:191::-;14664:3;14683:20;14701:1;14683:20;:::i;:::-;14678:25;;14717:20;14735:1;14717:20;:::i;:::-;14712:25;;14760:1;14757;14753:9;14746:16;;14781:3;14778:1;14775:10;14772:36;;;14788:18;;:::i;:::-;14772:36;14624:191;;;;:::o;14821:177::-;14961:29;14957:1;14949:6;14945:14;14938:53;14821:177;:::o;15004:366::-;15146:3;15167:67;15231:2;15226:3;15167:67;:::i;:::-;15160:74;;15243:93;15332:3;15243:93;:::i;:::-;15361:2;15356:3;15352:12;15345:19;;15004:366;;;:::o;15376:419::-;15542:4;15580:2;15569:9;15565:18;15557:26;;15629:9;15623:4;15619:20;15615:1;15604:9;15600:17;15593:47;15657:131;15783:4;15657:131;:::i;:::-;15649:139;;15376:419;;;:::o;15801:170::-;15941:22;15937:1;15929:6;15925:14;15918:46;15801:170;:::o;15977:366::-;16119:3;16140:67;16204:2;16199:3;16140:67;:::i;:::-;16133:74;;16216:93;16305:3;16216:93;:::i;:::-;16334:2;16329:3;16325:12;16318:19;;15977:366;;;:::o;16349:419::-;16515:4;16553:2;16542:9;16538:18;16530:26;;16602:9;16596:4;16592:20;16588:1;16577:9;16573:17;16566:47;16630:131;16756:4;16630:131;:::i;:::-;16622:139;;16349:419;;;:::o;16774:164::-;16914:16;16910:1;16902:6;16898:14;16891:40;16774:164;:::o;16944:366::-;17086:3;17107:67;17171:2;17166:3;17107:67;:::i;:::-;17100:74;;17183:93;17272:3;17183:93;:::i;:::-;17301:2;17296:3;17292:12;17285:19;;16944:366;;;:::o;17316:419::-;17482:4;17520:2;17509:9;17505:18;17497:26;;17569:9;17563:4;17559:20;17555:1;17544:9;17540:17;17533:47;17597:131;17723:4;17597:131;:::i;:::-;17589:139;;17316:419;;;:::o;17741:105::-;17777:7;17817:22;17810:5;17806:34;17795:45;;17741:105;;;:::o;17852:120::-;17924:23;17941:5;17924:23;:::i;:::-;17917:5;17914:34;17904:62;;17962:1;17959;17952:12;17904:62;17852:120;:::o;17978:141::-;18034:5;18065:6;18059:13;18050:22;;18081:32;18107:5;18081:32;:::i;:::-;17978:141;;;;:::o;18125:76::-;18161:7;18190:5;18179:16;;18125:76;;;:::o;18207:120::-;18279:23;18296:5;18279:23;:::i;:::-;18272:5;18269:34;18259:62;;18317:1;18314;18307:12;18259:62;18207:120;:::o;18333:141::-;18389:5;18420:6;18414:13;18405:22;;18436:32;18462:5;18436:32;:::i;:::-;18333:141;;;;:::o;18480:971::-;18583:6;18591;18599;18607;18615;18664:3;18652:9;18643:7;18639:23;18635:33;18632:120;;;18671:79;;:::i;:::-;18632:120;18791:1;18816:63;18871:7;18862:6;18851:9;18847:22;18816:63;:::i;:::-;18806:73;;18762:127;18928:2;18954:63;19009:7;19000:6;18989:9;18985:22;18954:63;:::i;:::-;18944:73;;18899:128;19066:2;19092:64;19148:7;19139:6;19128:9;19124:22;19092:64;:::i;:::-;19082:74;;19037:129;19205:2;19231:64;19287:7;19278:6;19267:9;19263:22;19231:64;:::i;:::-;19221:74;;19176:129;19344:3;19371:63;19426:7;19417:6;19406:9;19402:22;19371:63;:::i;:::-;19361:73;;19315:129;18480:971;;;;;;;;:::o;19457:224::-;19597:34;19593:1;19585:6;19581:14;19574:58;19666:7;19661:2;19653:6;19649:15;19642:32;19457:224;:::o;19687:366::-;19829:3;19850:67;19914:2;19909:3;19850:67;:::i;:::-;19843:74;;19926:93;20015:3;19926:93;:::i;:::-;20044:2;20039:3;20035:12;20028:19;;19687:366;;;:::o;20059:419::-;20225:4;20263:2;20252:9;20248:18;20240:26;;20312:9;20306:4;20302:20;20298:1;20287:9;20283:17;20276:47;20340:131;20466:4;20340:131;:::i;:::-;20332:139;;20059:419;;;:::o;20484:223::-;20624:34;20620:1;20612:6;20608:14;20601:58;20693:6;20688:2;20680:6;20676:15;20669:31;20484:223;:::o;20713:366::-;20855:3;20876:67;20940:2;20935:3;20876:67;:::i;:::-;20869:74;;20952:93;21041:3;20952:93;:::i;:::-;21070:2;21065:3;21061:12;21054:19;;20713:366;;;:::o;21085:419::-;21251:4;21289:2;21278:9;21274:18;21266:26;;21338:9;21332:4;21328:20;21324:1;21313:9;21309:17;21302:47;21366:131;21492:4;21366:131;:::i;:::-;21358:139;;21085:419;;;:::o;21510:221::-;21650:34;21646:1;21638:6;21634:14;21627:58;21719:4;21714:2;21706:6;21702:15;21695:29;21510:221;:::o;21737:366::-;21879:3;21900:67;21964:2;21959:3;21900:67;:::i;:::-;21893:74;;21976:93;22065:3;21976:93;:::i;:::-;22094:2;22089:3;22085:12;22078:19;;21737:366;;;:::o;22109:419::-;22275:4;22313:2;22302:9;22298:18;22290:26;;22362:9;22356:4;22352:20;22348:1;22337:9;22333:17;22326:47;22390:131;22516:4;22390:131;:::i;:::-;22382:139;;22109:419;;;:::o;22534:224::-;22674:34;22670:1;22662:6;22658:14;22651:58;22743:7;22738:2;22730:6;22726:15;22719:32;22534:224;:::o;22764:366::-;22906:3;22927:67;22991:2;22986:3;22927:67;:::i;:::-;22920:74;;23003:93;23092:3;23003:93;:::i;:::-;23121:2;23116:3;23112:12;23105:19;;22764:366;;;:::o;23136:419::-;23302:4;23340:2;23329:9;23325:18;23317:26;;23389:9;23383:4;23379:20;23375:1;23364:9;23360:17;23353:47;23417:131;23543:4;23417:131;:::i;:::-;23409:139;;23136:419;;;:::o;23561:222::-;23701:34;23697:1;23689:6;23685:14;23678:58;23770:5;23765:2;23757:6;23753:15;23746:30;23561:222;:::o;23789:366::-;23931:3;23952:67;24016:2;24011:3;23952:67;:::i;:::-;23945:74;;24028:93;24117:3;24028:93;:::i;:::-;24146:2;24141:3;24137:12;24130:19;;23789:366;;;:::o;24161:419::-;24327:4;24365:2;24354:9;24350:18;24342:26;;24414:9;24408:4;24404:20;24400:1;24389:9;24385:17;24378:47;24442:131;24568:4;24442:131;:::i;:::-;24434:139;;24161:419;;;:::o;24586:225::-;24726:34;24722:1;24714:6;24710:14;24703:58;24795:8;24790:2;24782:6;24778:15;24771:33;24586:225;:::o;24817:366::-;24959:3;24980:67;25044:2;25039:3;24980:67;:::i;:::-;24973:74;;25056:93;25145:3;25056:93;:::i;:::-;25174:2;25169:3;25165:12;25158:19;;24817:366;;;:::o;25189:419::-;25355:4;25393:2;25382:9;25378:18;25370:26;;25442:9;25436:4;25432:20;25428:1;25417:9;25413:17;25406:47;25470:131;25596:4;25470:131;:::i;:::-;25462:139;;25189:419;;;:::o

Swarm Source

ipfs://048b8bc0b208e995a8e5f7eeb49a721256754838f62d0e26c1ed3ea4d8cb2924

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
Loading...
Loading
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.