More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 908 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Purchase With ET... | 15382456 | 825 days ago | IN | 0.0002 ETH | 0.00022488 | ||||
Purchase With ET... | 14864319 | 909 days ago | IN | 0.01 ETH | 0.00067592 | ||||
Purchase With ET... | 14279580 | 1001 days ago | IN | 0.004 ETH | 0.00175304 | ||||
Purchase With ET... | 13835564 | 1070 days ago | IN | 0.02 ETH | 0.00211227 | ||||
Purchase With ET... | 13603533 | 1106 days ago | IN | 0.022 ETH | 0.01685518 | ||||
Purchase With ET... | 13603497 | 1106 days ago | IN | 0.003 ETH | 0.01494475 | ||||
Purchase With ET... | 13603478 | 1106 days ago | IN | 0.042 ETH | 0.01783324 | ||||
Purchase With BU... | 13603462 | 1106 days ago | IN | 0 ETH | 0.01912183 | ||||
Purchase With ET... | 13603417 | 1106 days ago | IN | 0.5 ETH | 0.01470928 | ||||
Purchase With ET... | 13603379 | 1106 days ago | IN | 0.2 ETH | 0.01668357 | ||||
Purchase With ET... | 13603341 | 1106 days ago | IN | 0.05369 ETH | 0.01714731 | ||||
Purchase With ET... | 13603337 | 1106 days ago | IN | 0.05 ETH | 0.01830801 | ||||
Purchase With ET... | 13603269 | 1106 days ago | IN | 0.42 ETH | 0.01662163 | ||||
Purchase With ET... | 13603245 | 1106 days ago | IN | 0.0755 ETH | 0.01751262 | ||||
Purchase With ET... | 13603216 | 1106 days ago | IN | 0.64 ETH | 0.01714673 | ||||
Purchase With ET... | 13603215 | 1106 days ago | IN | 0.05 ETH | 0.01380325 | ||||
Purchase With ET... | 13603187 | 1106 days ago | IN | 0.05 ETH | 0.01496281 | ||||
Purchase With ET... | 13603066 | 1106 days ago | IN | 0.179 ETH | 0.0136056 | ||||
Purchase With ET... | 13603062 | 1106 days ago | IN | 0.32 ETH | 0.00974939 | ||||
Purchase With ET... | 13600577 | 1107 days ago | IN | 0.0009 ETH | 0.01481616 | ||||
Purchase With ET... | 13600110 | 1107 days ago | IN | 0.024 ETH | 0.01260733 | ||||
Purchase With ET... | 13600078 | 1107 days ago | IN | 0.025 ETH | 0.01346525 | ||||
Purchase With ET... | 13600031 | 1107 days ago | IN | 0.0085 ETH | 0.01311031 | ||||
Purchase With ET... | 13600017 | 1107 days ago | IN | 0.012 ETH | 0.01272314 | ||||
Purchase With ET... | 13599974 | 1107 days ago | IN | 0.61 ETH | 0.01598258 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
15382456 | 825 days ago | 0.0002 ETH | ||||
14864319 | 909 days ago | 0.01 ETH | ||||
14279580 | 1001 days ago | 0.004 ETH | ||||
13835564 | 1070 days ago | 0.02 ETH | ||||
13603533 | 1106 days ago | 0.022 ETH | ||||
13603497 | 1106 days ago | 0.003 ETH | ||||
13603478 | 1106 days ago | 0.042 ETH | ||||
13603417 | 1106 days ago | 0.5 ETH | ||||
13603379 | 1106 days ago | 0.2 ETH | ||||
13603341 | 1106 days ago | 0.05369 ETH | ||||
13603337 | 1106 days ago | 0.05 ETH | ||||
13603269 | 1106 days ago | 0.42 ETH | ||||
13603245 | 1106 days ago | 0.0755 ETH | ||||
13603216 | 1106 days ago | 0.64 ETH | ||||
13603215 | 1106 days ago | 0.05 ETH | ||||
13603187 | 1106 days ago | 0.05 ETH | ||||
13603066 | 1106 days ago | 0.179 ETH | ||||
13603062 | 1106 days ago | 0.32 ETH | ||||
13600577 | 1107 days ago | 0.0009 ETH | ||||
13600110 | 1107 days ago | 0.024 ETH | ||||
13600078 | 1107 days ago | 0.025 ETH | ||||
13600031 | 1107 days ago | 0.0085 ETH | ||||
13600017 | 1107 days ago | 0.012 ETH | ||||
13599974 | 1107 days ago | 0.61 ETH | ||||
13599861 | 1107 days ago | 0.173 ETH |
Loading...
Loading
Contract Name:
BollycoinPresaleV2
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: ISC pragma solidity ^0.8.4; import "../interfaces/IERC20.sol"; import "../utils/Context.sol"; import "../interfaces/IBollycoinPriceFeed.sol"; import "../utils/ReentrancyGuard.sol"; /** * @title - Bollycoin Presale Contract V2 * @author - Nodeberry Pvt Ltd */ contract BollycoinPresaleV2 is Context, ReentrancyGuard { /** * @dev `_usdt` represents the USDT smart contract address. * @dev `_usdc` represents the USDC smart contract address. * @dev `_busd` represents the BUSD smart contract address. * @dev `_bollycoin` represents Bollycoin token contract address. * @dev `_settlementWallet` represents the wallet address to which tokens are sent during purchase. * @dev `_admin` is the account that controls the sale. */ address private _usdt; address private _usdc; address private _busd; address private _wbtc; address private _bollycoin; address private _admin; address private _oracle; address private _settlementWallet; uint256 public bollycoinPrice = 0.1 * 10**18; // 0.1 USD /** * @dev checks if `caller` is `_admin` * reverts if the `caller` is not the `_admin` account. */ modifier onlyAdmin() { require(_admin == msgSender(), "Error: caller not admin"); _; } /** * @dev - Purchase event is emitted whenever a successful purchase is made. */ event Purchase( address indexed buyer, string uid, uint256 amount, uint256 valueInPurchaseCurrency, bytes32 currency ); constructor( address _usdtAddress, address _usdcAddress, address _busdAddress, address _wbtcAddress, address _bollyAddress, address _oracleAddress, address _settlementAddress ) { _usdt = _usdtAddress; _usdc = _usdcAddress; _busd = _busdAddress; _bollycoin = _bollyAddress; _oracle = _oracleAddress; _wbtc = _wbtcAddress; _admin = _settlementAddress; _settlementWallet = _settlementAddress; } /** * @dev used to purchase bollycoin using USDT. Tokens are sent to the buyer. * @param _amount - The number of bollycoin tokens to purchase */ function purchaseWithUSDT(uint256 _amount, string memory uid) public nonReentrant virtual returns (bool) { uint256 balance = IERC20(_usdt).balanceOf(msgSender()); uint256 allowance = IERC20(_usdt).allowance(msgSender(), address(this)); uint256 usdValue = (bollycoinPrice) * _amount; uint256 totalCostInUSDT = usdValue / 10**12; require(balance >= totalCostInUSDT, "Error: insufficient USDT Balance"); require( allowance >= totalCostInUSDT, "Error: allowance less than spending" ); IERC20(_usdt).transferFrom( msgSender(), _settlementWallet, totalCostInUSDT ); IERC20(_bollycoin).transfer(msgSender(), _amount * 10**18); emit Purchase( msgSender(), uid, _amount, usdValue, bytes32("USDT") ); return true; } /** * @dev used to purchase bollycoin using USDC. Tokens are sent to the buyer. * @param _amount - The number of bollycoin tokens to purchase */ function purchaseWithUSDC(uint256 _amount, string memory uid) public nonReentrant virtual returns (bool) { uint256 balance = IERC20(_usdc).balanceOf(msgSender()); uint256 allowance = IERC20(_usdc).allowance(msgSender(), address(this)); uint256 usdValue = (bollycoinPrice) * _amount; uint256 totalCostInUSDC = usdValue / 10**12; require(balance >= totalCostInUSDC, "Error: insufficient USDC Balance"); require( allowance >= totalCostInUSDC, "Error: allowance less than spending" ); IERC20(_usdc).transferFrom( msgSender(), _settlementWallet, totalCostInUSDC ); IERC20(_bollycoin).transfer(msgSender(), _amount * 10**18); emit Purchase(msgSender(), uid, _amount, usdValue, bytes32("USDC")); return true; } /** * @dev used to purchase bollycoin using BUSD. Tokens are sent to the buyer. * @param _amount - The number of bollycoin tokens to purchase */ function purchaseWithBUSD(uint256 _amount, string memory uid) public nonReentrant virtual returns (bool) { uint256 balance = IERC20(_busd).balanceOf(msgSender()); uint256 allowance = IERC20(_busd).allowance(msgSender(), address(this)); uint256 totalCostInBUSD = (bollycoinPrice) * _amount; require(balance >= totalCostInBUSD, "Error: insufficient BUSD Balance"); require( allowance >= totalCostInBUSD, "Error: allowance less than spending" ); IERC20(_busd).transferFrom( msgSender(), _settlementWallet, totalCostInBUSD ); IERC20(_bollycoin).transfer(msgSender(), _amount * 10**18); emit Purchase( msgSender(), uid, _amount, totalCostInBUSD, bytes32("BUSD") ); return true; } /** * @dev used to purchase bollycoin using wBTC. Tokens are sent to the buyer. * @param _amount - The number of bollycoin tokens to purchase */ function purchaseWithWBTC(uint256 _amount, string memory uid) public nonReentrant virtual returns (bool) { uint256 balance = IERC20(_wbtc).balanceOf(msgSender()); uint256 allowance = IERC20(_wbtc).allowance(msgSender(), address(this)); uint256 wbtcCmp = IBollycoinPriceFeed(_oracle).getLatestBTCPrice(); uint256 totalCostInWBTC = (bollycoinPrice) * _amount *10**18 / wbtcCmp / 10**10; require(balance >= totalCostInWBTC, "Error: insufficient WBTC Balance"); require( allowance >= totalCostInWBTC, "Error: allowance less than spending" ); IERC20(_wbtc).transferFrom( msgSender(), _settlementWallet, totalCostInWBTC ); IERC20(_bollycoin).transfer(msgSender(), _amount * 10**18); emit Purchase( msgSender(), uid, _amount, totalCostInWBTC, bytes32("wBTC") ); return true; } /** * @dev used to purchase bollycoin using ETH. ETH is sent to the buyer. */ function purchaseWithETH(string memory uid) public payable nonReentrant virtual returns (bool) { uint256 ethCmp = IBollycoinPriceFeed(_oracle).getLatestETHPrice(); uint256 bollyToTransfer = _msgValue() * ethCmp / bollycoinPrice; (bool sent, bytes memory data) = _settlementWallet.call{value: _msgValue()}(""); require(sent, "Failed to send ETH"); IERC20(_bollycoin).transfer(msgSender(), bollyToTransfer); emit Purchase( msgSender(), uid, bollyToTransfer, _msgValue(), bytes32("ETH") ); return true; } /** * @dev returns the USDT token address used for purchase. */ function usdt() public view returns (address) { return _usdt; } /** * @dev returns the USDC token address used for purchase. */ function usdc() public view returns (address) { return _usdc; } /** * @dev returns the Oracle address. */ function oracle() public view returns (address) { return _oracle; } /** * @dev returns the busd smart contract used for purchase. */ function busd() public view returns (address) { return _busd; } /** * @dev returns the bollycoin smart contract used for purchase. */ function bolly() public view returns (address) { return _bollycoin; } /** * @dev returns the wBTC token address used for purchase. */ function wBTC() public view returns (address) { return _wbtc; } /** * @dev returns the admin account used for purchase. */ function admin() public view returns (address) { return _admin; } /** * @dev returns the settlement address used for purchase. */ function settlementAddress() public view returns (address) { return _settlementWallet; } /** * @dev transfers ownership to a different account. * * Requirements: * `newAdmin` cannot be a zero address. * `caller` should be current admin. */ function transferControl(address newAdmin) public virtual onlyAdmin { require(newAdmin != address(0), "Error: owner cannot be zero"); _admin = newAdmin; } /** * @dev updates the oracle address. * * Requirements: * `newAddress` cannot be a zero address. * `caller` should be current admin. */ function updateOracle(address newAddress) public virtual onlyAdmin { require(newAddress != address(0), "Error: address cannot be zero"); _oracle = newAddress; } /** * @dev updates the usdt sc address. * * Requirements: * `newAddress` cannot be a zero address. * `caller` should be current admin. */ function updateUsdt(address newAddress) public virtual onlyAdmin { require(newAddress != address(0), "Error: address cannot be zero"); _usdt = newAddress; } /** * @dev updates the usdc sc address. * * Requirements: * `newAddress` cannot be a zero address. * `caller` should be current admin. */ function updateUsdc(address newAddress) public virtual onlyAdmin { require(newAddress != address(0), "Error: address cannot be zero"); _usdc = newAddress; } /** * @dev updates the bollycoin token address. * * Requirements: * `newAddress` cannot be a zero address. * `caller` should be current admin. */ function updateBolly(address newAddress) public virtual onlyAdmin { require(newAddress != address(0), "Error: address cannot be zero"); _bollycoin = newAddress; } /** * @dev updates the wBTC token address. * * Requirements: * `newAddress` cannot be a zero address. * `caller` should be current admin. */ function updateWBTC(address newAddress) public virtual onlyAdmin { require(newAddress != address(0), "Error: address cannot be zero"); _wbtc = newAddress; } /** * @dev updates the busd sc address. * * Requirements: * `newAddress` cannot be a zero address. * `caller` should be current admin. */ function updateBusd(address newAddress) public virtual onlyAdmin { require(newAddress != address(0), "Error: address cannot be zero"); _busd = newAddress; } /** * @dev updates the bollycoin token price. * * Requirements: * `newPrice` cannot be zero. * `caller` should be current admin. */ function updateBollycoinPrice(uint256 newPrice) public virtual onlyAdmin { require(newPrice > 0, "Error: price cannot be zero"); bollycoinPrice = newPrice; } /** * @dev updates the settlement wallet address * * Requirements: * `settlementWallet` cannot be a zero address. * `caller` should be current admin. */ function updateSettlementWallet(address newAddress) public virtual onlyAdmin { require(newAddress != address(0), "Error: not a valid address"); _settlementWallet = newAddress; } /** * @dev withdraw bollycoin from SC to any EOA. * * `caller` should be admin account. * `to` cannot be zero address. */ function withdrawBolly(address to, uint256 amount) public virtual onlyAdmin returns (bool) { require(to != address(0), "Error: cannot send to zero address"); IERC20(_bollycoin).transfer(to, amount); return true; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
pragma solidity >=0.6.0; interface IBollycoinPriceFeed { function getLatestETHPrice() external view returns(uint256); function getLatestBTCPrice() external view returns(uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; /* * @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; } function _msgValue() internal view virtual returns (uint256) { return msg.value; } }
// SPDX-License-Identifier: ISC pragma solidity ^0.8.4; interface IERC20 { /** * @dev returns the tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev returns the decimal places of a token */ function decimals() external view returns (uint8); /** * @dev returns the remaining number of tokens the `spender' can spend * on behalf of the owner. * * This value changes when {approve} or {transferFrom} is executed. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev transfers the `amount` of tokens from caller's account * to the `recipient` account. * * returns boolean value indicating the operation status. * * Emits a {Transfer} event */ function transfer(address recipient, uint256 amount) external; /** * @dev transfers the `amount` on behalf of `spender` to the `recipient` account. * * returns a boolean indicating the operation status. * * Emits a {Transfer} event. */ function transferFrom( address spender, address recipient, uint256 amount ) external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_usdtAddress","type":"address"},{"internalType":"address","name":"_usdcAddress","type":"address"},{"internalType":"address","name":"_busdAddress","type":"address"},{"internalType":"address","name":"_wbtcAddress","type":"address"},{"internalType":"address","name":"_bollyAddress","type":"address"},{"internalType":"address","name":"_oracleAddress","type":"address"},{"internalType":"address","name":"_settlementAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"string","name":"uid","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueInPurchaseCurrency","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"currency","type":"bytes32"}],"name":"Purchase","type":"event"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bolly","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bollycoinPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"busd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"uid","type":"string"}],"name":"purchaseWithBUSD","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uid","type":"string"}],"name":"purchaseWithETH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"uid","type":"string"}],"name":"purchaseWithUSDC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"uid","type":"string"}],"name":"purchaseWithUSDT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"uid","type":"string"}],"name":"purchaseWithWBTC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settlementAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateBolly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"updateBollycoinPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateBusd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateSettlementWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUsdc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUsdt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateWBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wBTC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawBolly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405267016345785d8a00006009553480156200001d57600080fd5b5060405162001e7c38038062001e7c8339810160408190526200004091620000f1565b6001600081905580546001600160a01b03199081166001600160a01b03998a16179091556002805482169789169790971790965560038054871695881695909517909455600580548616928716929092179091556007805485169186169190911790556004805484169185169190911790556006805483169190931690811790925560088054909116909117905562000186565b80516001600160a01b0381168114620000ec57600080fd5b919050565b600080600080600080600060e0888a0312156200010d57600080fd5b6200011888620000d4565b96506200012860208901620000d4565b95506200013860408901620000d4565b94506200014860608901620000d4565b93506200015860808901620000d4565b92506200016860a08901620000d4565b91506200017860c08901620000d4565b905092959891949750929550565b611ce680620001966000396000f3fe60806040526004361061014b5760003560e01c80636d16fa41116100b65780639b4529311161006f5780639b452931146103a4578063ce71e5df146103c2578063defde9fc146103e6578063e2f7c75714610406578063f738c4a714610426578063f851a4401461044457600080fd5b80636d16fa41146102f357806372d82bc6146103135780637429c946146103265780637925fd19146103465780637dc0d1d0146103665780639184c3d91461038457600080fd5b80633ca5b234116101085780633ca5b234146102275780633e413bee146102455780634ae5630d14610263578063520b5aa81461028357806355f0d8b6146102b35780636b51488a146102d357600080fd5b806301a38eb91461015057806306b5c1c9146101725780630dad7ee6146101925780631cb44dfc146101c95780632f48ab7d146101e957806339d7142414610207575b600080fd5b34801561015c57600080fd5b5061017061016b3660046119b4565b610462565b005b34801561017e57600080fd5b5061017061018d3660046119b4565b6104dd565b34801561019e57600080fd5b506005546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d557600080fd5b506101706101e43660046119b4565b61054f565b3480156101f557600080fd5b506001546001600160a01b03166101ac565b34801561021357600080fd5b506101706102223660046119b4565b6105c1565b34801561023357600080fd5b506003546001600160a01b03166101ac565b34801561025157600080fd5b506002546001600160a01b03166101ac565b34801561026f57600080fd5b5061017061027e3660046119b4565b610633565b34801561028f57600080fd5b506102a361029e366004611a6f565b6106a5565b60405190151581526020016101c0565b3480156102bf57600080fd5b506101706102ce366004611a3d565b6109d2565b3480156102df57600080fd5b506102a36102ee366004611a6f565b610a51565b3480156102ff57600080fd5b5061017061030e3660046119b4565b610d64565b6102a3610321366004611a00565b610e06565b34801561033257600080fd5b506101706103413660046119b4565b611034565b34801561035257600080fd5b506102a3610361366004611a6f565b6110a6565b34801561037257600080fd5b506007546001600160a01b03166101ac565b34801561039057600080fd5b5061017061039f3660046119b4565b611452565b3480156103b057600080fd5b506004546001600160a01b03166101ac565b3480156103ce57600080fd5b506103d860095481565b6040519081526020016101c0565b3480156103f257600080fd5b506102a36104013660046119d6565b6114f4565b34801561041257600080fd5b506102a3610421366004611a6f565b6115f1565b34801561043257600080fd5b506008546001600160a01b03166101ac565b34801561045057600080fd5b506006546001600160a01b03166101ac565b6006546001600160a01b031633146104955760405162461bcd60e51b815260040161048c90611bbd565b60405180910390fd5b6001600160a01b0381166104bb5760405162461bcd60e51b815260040161048c90611b43565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146105075760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b03811661052d5760405162461bcd60e51b815260040161048c90611b43565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146105795760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b03811661059f5760405162461bcd60e51b815260040161048c90611b43565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146105eb5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166106115760405162461bcd60e51b815260040161048c90611b43565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331461065d5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166106835760405162461bcd60e51b815260040161048c90611b43565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000600260005414156106ca5760405162461bcd60e51b815260040161048c90611bf4565b6002600081815590546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561072157600080fd5b505afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190611a56565b6002549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b1580156107b657600080fd5b505afa1580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee9190611a56565b90506000856009546108009190611c4d565b9050600061081364e8d4a5100083611c2b565b9050808410156108655760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420555344432042616c616e6365604482015260640161048c565b808310156108855760405162461bcd60e51b815260040161048c90611b7a565b6002546001600160a01b03166323b872dd336008546040516001600160e01b031960e085901b1681526108c792916001600160a01b0316908690600401611ab6565b600060405180830381600087803b1580156108e157600080fd5b505af11580156108f5573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb90503361091f8a670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561096557600080fd5b505af1158015610979573d6000803e3d6000fd5b505050506109843390565b6001600160a01b0316600080516020611c91833981519152878985635553444360e01b6040516109b79493929190611ada565b60405180910390a26001945050505050600160005592915050565b6006546001600160a01b031633146109fc5760405162461bcd60e51b815260040161048c90611bbd565b60008111610a4c5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a2070726963652063616e6e6f74206265207a65726f0000000000604482015260640161048c565b600955565b600060026000541415610a765760405162461bcd60e51b815260040161048c90611bf4565b600260009081556001546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611a56565b6001549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190611a56565b9050600085600954610bad9190611c4d565b90506000610bc064e8d4a5100083611c2b565b905080841015610c125760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420555344542042616c616e6365604482015260640161048c565b80831015610c325760405162461bcd60e51b815260040161048c90611b7a565b6001546001600160a01b03166323b872dd336008546040516001600160e01b031960e085901b168152610c7492916001600160a01b0316908690600401611ab6565b600060405180830381600087803b158015610c8e57600080fd5b505af1158015610ca2573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb905033610ccc8a670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610d1257600080fd5b505af1158015610d26573d6000803e3d6000fd5b50505050610d313390565b6001600160a01b0316600080516020611c91833981519152878985631554d11560e21b6040516109b79493929190611ada565b6006546001600160a01b03163314610d8e5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b038116610de45760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a206f776e65722063616e6e6f74206265207a65726f0000000000604482015260640161048c565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600060026000541415610e2b5760405162461bcd60e51b815260040161048c90611bf4565b6002600090815560075460408051633bbf06c360e11b815290516001600160a01b039092169163777e0d8691600480820192602092909190829003018186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf9190611a56565b9050600060095482610ebe3490565b610ec89190611c4d565b610ed29190611c2b565b60085490915060009081906001600160a01b031634604051600081818185875af1925050503d8060008114610f23576040519150601f19603f3d011682016040523d82523d6000602084013e610f28565b606091505b509150915081610f6f5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b604482015260640161048c565b6005546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101869052604401600060405180830381600087803b158015610fc957600080fd5b505af1158015610fdd573d6000803e3d6000fd5b50505050610fe83390565b6001600160a01b0316600080516020611c918339815191528785346208aa8960eb1b60405161101a9493929190611ada565b60405180910390a260019450505050506001600055919050565b6006546001600160a01b0316331461105e5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166110845760405162461bcd60e51b815260040161048c90611b43565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000600260005414156110cb5760405162461bcd60e51b815260040161048c90611bf4565b600260009081556004546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561112357600080fd5b505afa158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b9190611a56565b6004549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b1580156111b857600080fd5b505afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190611a56565b90506000600760009054906101000a90046001600160a01b03166001600160a01b0316631b7127396040518163ffffffff1660e01b815260040160206040518083038186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190611a56565b905060006402540be40082886009546112939190611c4d565b6112a590670de0b6b3a7640000611c4d565b6112af9190611c2b565b6112b99190611c2b565b90508084101561130b5760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420574254432042616c616e6365604482015260640161048c565b8083101561132b5760405162461bcd60e51b815260040161048c90611b7a565b600480546008546040516323b872dd60e01b81526001600160a01b03928316936323b872dd93611362933393911691879101611ab6565b600060405180830381600087803b15801561137c57600080fd5b505af1158015611390573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb9050336113ba8a670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b5050505061141f3390565b6001600160a01b0316600080516020611c91833981519152878984637742544360e01b6040516109b79493929190611ada565b6006546001600160a01b0316331461147c5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166114d25760405162461bcd60e51b815260206004820152601a60248201527f4572726f723a206e6f7420612076616c69642061646472657373000000000000604482015260640161048c565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6006546000906001600160a01b031633146115215760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0383166115825760405162461bcd60e51b815260206004820152602260248201527f4572726f723a2063616e6e6f742073656e6420746f207a65726f206164647265604482015261737360f01b606482015260840161048c565b60055460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401600060405180830381600087803b1580156115d057600080fd5b505af11580156115e4573d6000803e3d6000fd5b5060019695505050505050565b6000600260005414156116165760405162461bcd60e51b815260040161048c90611bf4565b600260009081556003546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561166e57600080fd5b505afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190611a56565b6003549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173b9190611a56565b905060008560095461174d9190611c4d565b90508083101561179f5760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420425553442042616c616e6365604482015260640161048c565b808210156117bf5760405162461bcd60e51b815260040161048c90611b7a565b6003546001600160a01b03166323b872dd336008546040516001600160e01b031960e085901b16815261180192916001600160a01b0316908690600401611ab6565b600060405180830381600087803b15801561181b57600080fd5b505af115801561182f573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb90503361185989670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561189f57600080fd5b505af11580156118b3573d6000803e3d6000fd5b505050506118be3390565b6001600160a01b0316600080516020611c9183398151915286888463109554d160e21b6040516118f19493929190611ada565b60405180910390a260019350505050600160005592915050565b80356001600160a01b038116811461192257600080fd5b919050565b600082601f83011261193857600080fd5b813567ffffffffffffffff8082111561195357611953611c7a565b604051601f8301601f19908116603f0116810190828211818310171561197b5761197b611c7a565b8160405283815286602085880101111561199457600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156119c657600080fd5b6119cf8261190b565b9392505050565b600080604083850312156119e957600080fd5b6119f28361190b565b946020939093013593505050565b600060208284031215611a1257600080fd5b813567ffffffffffffffff811115611a2957600080fd5b611a3584828501611927565b949350505050565b600060208284031215611a4f57600080fd5b5035919050565b600060208284031215611a6857600080fd5b5051919050565b60008060408385031215611a8257600080fd5b82359150602083013567ffffffffffffffff811115611aa057600080fd5b611aac85828601611927565b9150509250929050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000855180608084015260005b81811015611b0857602081890181015160a0868401015201611aeb565b81811115611b1a57600060a083860101525b506020830195909552506040810192909252606082015260a0601f909201601f19160101919050565b6020808252601d908201527f4572726f723a20616464726573732063616e6e6f74206265207a65726f000000604082015260600190565b60208082526023908201527f4572726f723a20616c6c6f77616e6365206c657373207468616e207370656e64604082015262696e6760e81b606082015260800190565b60208082526017908201527f4572726f723a2063616c6c6572206e6f742061646d696e000000000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082611c4857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611c7557634e487b7160e01b600052601160045260246000fd5b500290565b634e487b7160e01b600052604160045260246000fdfeb33de7ddffc723976f7b6005a9c32423d21ff111efa8fd10b3a8f08e25a9a4fea264697066735822122048c66041d40ad1e9fc992337219a9900e03622449eaf26e792da25e891d808d064736f6c63430008070033000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c530000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000006bd361e10c1afed0d95259e7c0115f3a60e4ea990000000000000000000000000b127304ea53e43e95399c38a0b542d2f5cdda8b000000000000000000000000098cbfb267e3d74c17ab17f94a1da0e79b913239
Deployed Bytecode
0x60806040526004361061014b5760003560e01c80636d16fa41116100b65780639b4529311161006f5780639b452931146103a4578063ce71e5df146103c2578063defde9fc146103e6578063e2f7c75714610406578063f738c4a714610426578063f851a4401461044457600080fd5b80636d16fa41146102f357806372d82bc6146103135780637429c946146103265780637925fd19146103465780637dc0d1d0146103665780639184c3d91461038457600080fd5b80633ca5b234116101085780633ca5b234146102275780633e413bee146102455780634ae5630d14610263578063520b5aa81461028357806355f0d8b6146102b35780636b51488a146102d357600080fd5b806301a38eb91461015057806306b5c1c9146101725780630dad7ee6146101925780631cb44dfc146101c95780632f48ab7d146101e957806339d7142414610207575b600080fd5b34801561015c57600080fd5b5061017061016b3660046119b4565b610462565b005b34801561017e57600080fd5b5061017061018d3660046119b4565b6104dd565b34801561019e57600080fd5b506005546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d557600080fd5b506101706101e43660046119b4565b61054f565b3480156101f557600080fd5b506001546001600160a01b03166101ac565b34801561021357600080fd5b506101706102223660046119b4565b6105c1565b34801561023357600080fd5b506003546001600160a01b03166101ac565b34801561025157600080fd5b506002546001600160a01b03166101ac565b34801561026f57600080fd5b5061017061027e3660046119b4565b610633565b34801561028f57600080fd5b506102a361029e366004611a6f565b6106a5565b60405190151581526020016101c0565b3480156102bf57600080fd5b506101706102ce366004611a3d565b6109d2565b3480156102df57600080fd5b506102a36102ee366004611a6f565b610a51565b3480156102ff57600080fd5b5061017061030e3660046119b4565b610d64565b6102a3610321366004611a00565b610e06565b34801561033257600080fd5b506101706103413660046119b4565b611034565b34801561035257600080fd5b506102a3610361366004611a6f565b6110a6565b34801561037257600080fd5b506007546001600160a01b03166101ac565b34801561039057600080fd5b5061017061039f3660046119b4565b611452565b3480156103b057600080fd5b506004546001600160a01b03166101ac565b3480156103ce57600080fd5b506103d860095481565b6040519081526020016101c0565b3480156103f257600080fd5b506102a36104013660046119d6565b6114f4565b34801561041257600080fd5b506102a3610421366004611a6f565b6115f1565b34801561043257600080fd5b506008546001600160a01b03166101ac565b34801561045057600080fd5b506006546001600160a01b03166101ac565b6006546001600160a01b031633146104955760405162461bcd60e51b815260040161048c90611bbd565b60405180910390fd5b6001600160a01b0381166104bb5760405162461bcd60e51b815260040161048c90611b43565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146105075760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b03811661052d5760405162461bcd60e51b815260040161048c90611b43565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146105795760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b03811661059f5760405162461bcd60e51b815260040161048c90611b43565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146105eb5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166106115760405162461bcd60e51b815260040161048c90611b43565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331461065d5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166106835760405162461bcd60e51b815260040161048c90611b43565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000600260005414156106ca5760405162461bcd60e51b815260040161048c90611bf4565b6002600081815590546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561072157600080fd5b505afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190611a56565b6002549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b1580156107b657600080fd5b505afa1580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee9190611a56565b90506000856009546108009190611c4d565b9050600061081364e8d4a5100083611c2b565b9050808410156108655760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420555344432042616c616e6365604482015260640161048c565b808310156108855760405162461bcd60e51b815260040161048c90611b7a565b6002546001600160a01b03166323b872dd336008546040516001600160e01b031960e085901b1681526108c792916001600160a01b0316908690600401611ab6565b600060405180830381600087803b1580156108e157600080fd5b505af11580156108f5573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb90503361091f8a670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561096557600080fd5b505af1158015610979573d6000803e3d6000fd5b505050506109843390565b6001600160a01b0316600080516020611c91833981519152878985635553444360e01b6040516109b79493929190611ada565b60405180910390a26001945050505050600160005592915050565b6006546001600160a01b031633146109fc5760405162461bcd60e51b815260040161048c90611bbd565b60008111610a4c5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a2070726963652063616e6e6f74206265207a65726f0000000000604482015260640161048c565b600955565b600060026000541415610a765760405162461bcd60e51b815260040161048c90611bf4565b600260009081556001546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611a56565b6001549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190611a56565b9050600085600954610bad9190611c4d565b90506000610bc064e8d4a5100083611c2b565b905080841015610c125760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420555344542042616c616e6365604482015260640161048c565b80831015610c325760405162461bcd60e51b815260040161048c90611b7a565b6001546001600160a01b03166323b872dd336008546040516001600160e01b031960e085901b168152610c7492916001600160a01b0316908690600401611ab6565b600060405180830381600087803b158015610c8e57600080fd5b505af1158015610ca2573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb905033610ccc8a670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610d1257600080fd5b505af1158015610d26573d6000803e3d6000fd5b50505050610d313390565b6001600160a01b0316600080516020611c91833981519152878985631554d11560e21b6040516109b79493929190611ada565b6006546001600160a01b03163314610d8e5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b038116610de45760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a206f776e65722063616e6e6f74206265207a65726f0000000000604482015260640161048c565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600060026000541415610e2b5760405162461bcd60e51b815260040161048c90611bf4565b6002600090815560075460408051633bbf06c360e11b815290516001600160a01b039092169163777e0d8691600480820192602092909190829003018186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf9190611a56565b9050600060095482610ebe3490565b610ec89190611c4d565b610ed29190611c2b565b60085490915060009081906001600160a01b031634604051600081818185875af1925050503d8060008114610f23576040519150601f19603f3d011682016040523d82523d6000602084013e610f28565b606091505b509150915081610f6f5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b604482015260640161048c565b6005546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101869052604401600060405180830381600087803b158015610fc957600080fd5b505af1158015610fdd573d6000803e3d6000fd5b50505050610fe83390565b6001600160a01b0316600080516020611c918339815191528785346208aa8960eb1b60405161101a9493929190611ada565b60405180910390a260019450505050506001600055919050565b6006546001600160a01b0316331461105e5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166110845760405162461bcd60e51b815260040161048c90611b43565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000600260005414156110cb5760405162461bcd60e51b815260040161048c90611bf4565b600260009081556004546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561112357600080fd5b505afa158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b9190611a56565b6004549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b1580156111b857600080fd5b505afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190611a56565b90506000600760009054906101000a90046001600160a01b03166001600160a01b0316631b7127396040518163ffffffff1660e01b815260040160206040518083038186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190611a56565b905060006402540be40082886009546112939190611c4d565b6112a590670de0b6b3a7640000611c4d565b6112af9190611c2b565b6112b99190611c2b565b90508084101561130b5760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420574254432042616c616e6365604482015260640161048c565b8083101561132b5760405162461bcd60e51b815260040161048c90611b7a565b600480546008546040516323b872dd60e01b81526001600160a01b03928316936323b872dd93611362933393911691879101611ab6565b600060405180830381600087803b15801561137c57600080fd5b505af1158015611390573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb9050336113ba8a670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b5050505061141f3390565b6001600160a01b0316600080516020611c91833981519152878984637742544360e01b6040516109b79493929190611ada565b6006546001600160a01b0316331461147c5760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0381166114d25760405162461bcd60e51b815260206004820152601a60248201527f4572726f723a206e6f7420612076616c69642061646472657373000000000000604482015260640161048c565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6006546000906001600160a01b031633146115215760405162461bcd60e51b815260040161048c90611bbd565b6001600160a01b0383166115825760405162461bcd60e51b815260206004820152602260248201527f4572726f723a2063616e6e6f742073656e6420746f207a65726f206164647265604482015261737360f01b606482015260840161048c565b60055460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401600060405180830381600087803b1580156115d057600080fd5b505af11580156115e4573d6000803e3d6000fd5b5060019695505050505050565b6000600260005414156116165760405162461bcd60e51b815260040161048c90611bf4565b600260009081556003546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561166e57600080fd5b505afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190611a56565b6003549091506000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173b9190611a56565b905060008560095461174d9190611c4d565b90508083101561179f5760405162461bcd60e51b815260206004820181905260248201527f4572726f723a20696e73756666696369656e7420425553442042616c616e6365604482015260640161048c565b808210156117bf5760405162461bcd60e51b815260040161048c90611b7a565b6003546001600160a01b03166323b872dd336008546040516001600160e01b031960e085901b16815261180192916001600160a01b0316908690600401611ab6565b600060405180830381600087803b15801561181b57600080fd5b505af115801561182f573d6000803e3d6000fd5b50506005546001600160a01b0316915063a9059cbb90503361185989670de0b6b3a7640000611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561189f57600080fd5b505af11580156118b3573d6000803e3d6000fd5b505050506118be3390565b6001600160a01b0316600080516020611c9183398151915286888463109554d160e21b6040516118f19493929190611ada565b60405180910390a260019350505050600160005592915050565b80356001600160a01b038116811461192257600080fd5b919050565b600082601f83011261193857600080fd5b813567ffffffffffffffff8082111561195357611953611c7a565b604051601f8301601f19908116603f0116810190828211818310171561197b5761197b611c7a565b8160405283815286602085880101111561199457600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156119c657600080fd5b6119cf8261190b565b9392505050565b600080604083850312156119e957600080fd5b6119f28361190b565b946020939093013593505050565b600060208284031215611a1257600080fd5b813567ffffffffffffffff811115611a2957600080fd5b611a3584828501611927565b949350505050565b600060208284031215611a4f57600080fd5b5035919050565b600060208284031215611a6857600080fd5b5051919050565b60008060408385031215611a8257600080fd5b82359150602083013567ffffffffffffffff811115611aa057600080fd5b611aac85828601611927565b9150509250929050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000855180608084015260005b81811015611b0857602081890181015160a0868401015201611aeb565b81811115611b1a57600060a083860101525b506020830195909552506040810192909252606082015260a0601f909201601f19160101919050565b6020808252601d908201527f4572726f723a20616464726573732063616e6e6f74206265207a65726f000000604082015260600190565b60208082526023908201527f4572726f723a20616c6c6f77616e6365206c657373207468616e207370656e64604082015262696e6760e81b606082015260800190565b60208082526017908201527f4572726f723a2063616c6c6572206e6f742061646d696e000000000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082611c4857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611c7557634e487b7160e01b600052601160045260246000fd5b500290565b634e487b7160e01b600052604160045260246000fdfeb33de7ddffc723976f7b6005a9c32423d21ff111efa8fd10b3a8f08e25a9a4fea264697066735822122048c66041d40ad1e9fc992337219a9900e03622449eaf26e792da25e891d808d064736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c530000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000006bd361e10c1afed0d95259e7c0115f3a60e4ea990000000000000000000000000b127304ea53e43e95399c38a0b542d2f5cdda8b000000000000000000000000098cbfb267e3d74c17ab17f94a1da0e79b913239
-----Decoded View---------------
Arg [0] : _usdtAddress (address): 0xdAC17F958D2ee523a2206206994597C13D831ec7
Arg [1] : _usdcAddress (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [2] : _busdAddress (address): 0x4Fabb145d64652a948d72533023f6E7A623C7C53
Arg [3] : _wbtcAddress (address): 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
Arg [4] : _bollyAddress (address): 0x6bd361e10c1afed0d95259e7C0115f3A60e4ea99
Arg [5] : _oracleAddress (address): 0x0b127304EA53e43e95399C38a0B542D2f5cdDa8b
Arg [6] : _settlementAddress (address): 0x098CbfB267e3D74c17ab17f94a1da0E79B913239
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [1] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [2] : 0000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c53
Arg [3] : 0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599
Arg [4] : 0000000000000000000000006bd361e10c1afed0d95259e7c0115f3a60e4ea99
Arg [5] : 0000000000000000000000000b127304ea53e43e95399c38a0b542d2f5cdda8b
Arg [6] : 000000000000000000000000098cbfb267e3d74c17ab17f94a1da0e79b913239
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.