Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 30 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Bulk Send Erc20T... | 17479769 | 561 days ago | IN | 0.0586675 ETH | 0.03000545 | ||||
Bulk Send Erc20T... | 17329193 | 582 days ago | IN | 0.05611638 ETH | 0.05474141 | ||||
Bulk Send Erc20T... | 16673903 | 674 days ago | IN | 0.05978935 ETH | 0.45467385 | ||||
Bulk Send Erc20T... | 16593887 | 685 days ago | IN | 0.06503869 ETH | 0.38697278 | ||||
Bulk Send Erc721... | 16479717 | 701 days ago | IN | 0.0653844 ETH | 0.01120716 | ||||
Bulk Send Erc20T... | 16360860 | 718 days ago | IN | 0.08072527 ETH | 0.14780869 | ||||
Bulk Send Erc20T... | 15604973 | 824 days ago | IN | 0.07641594 ETH | 0.03493923 | ||||
Bulk Send Erc721... | 15540493 | 833 days ago | IN | 0.06737342 ETH | 0.38290401 | ||||
Bulk Send Erc721... | 15540483 | 833 days ago | IN | 0.06737342 ETH | 0.34685169 | ||||
Bulk Send Erc721... | 15540477 | 833 days ago | IN | 0.06737342 ETH | 0.37866631 | ||||
Bulk Send Erc20T... | 14726386 | 964 days ago | IN | 0.03779429 ETH | 0.08860547 | ||||
Bulk Send Erc20T... | 14724940 | 965 days ago | IN | 0.03770147 ETH | 0.98311144 | ||||
Bulk Send Erc20T... | 14724305 | 965 days ago | IN | 0.03768838 ETH | 1.80824411 | ||||
Bulk Send Erc20T... | 14717374 | 966 days ago | IN | 0.03480195 ETH | 1.37124596 | ||||
Bulk Send Erc20T... | 14717368 | 966 days ago | IN | 0.03488593 ETH | 1.98095375 | ||||
Bulk Send Erc20T... | 14717350 | 966 days ago | IN | 0.03488593 ETH | 1.92316875 | ||||
Bulk Send Erc20T... | 14685050 | 971 days ago | IN | 0.03605068 ETH | 0.36097037 | ||||
Bulk Send Erc20T... | 14655442 | 976 days ago | IN | 0.0346525 ETH | 0.14867965 | ||||
Bulk Send Erc20T... | 14641116 | 978 days ago | IN | 0.03446924 ETH | 0.63366037 | ||||
Bulk Send Erc20T... | 14641083 | 978 days ago | IN | 0.03446924 ETH | 0.59727066 | ||||
Bulk Send Erc20T... | 14641028 | 978 days ago | IN | 0.03446924 ETH | 0.41596204 | ||||
Bulk Send Erc20T... | 14592006 | 986 days ago | IN | 0.03371967 ETH | 0.01664825 | ||||
Bulk Send Erc20T... | 14591069 | 986 days ago | IN | 0.03382214 ETH | 0.01895217 | ||||
Bulk Send Erc20T... | 14458705 | 1006 days ago | IN | 0.03216954 ETH | 0.11647421 | ||||
Bulk Send Erc20T... | 14361689 | 1021 days ago | IN | 0.03832695 ETH | 0.13255956 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17479769 | 561 days ago | 0.0586675 ETH | ||||
17329193 | 582 days ago | 0.05611638 ETH | ||||
16673903 | 674 days ago | 0.05978935 ETH | ||||
16593887 | 685 days ago | 0.06503869 ETH | ||||
16479717 | 701 days ago | 0.0653844 ETH | ||||
16360860 | 718 days ago | 0.08072527 ETH | ||||
16319543 | 724 days ago | 0.085 ETH | ||||
16319543 | 724 days ago | 0.085 ETH | ||||
16220175 | 738 days ago | 25.1 ETH | ||||
16220175 | 738 days ago | 25.1 ETH | ||||
15604973 | 824 days ago | 0.07641594 ETH | ||||
15540493 | 833 days ago | 0.06737342 ETH | ||||
15540483 | 833 days ago | 0.06737342 ETH | ||||
15540477 | 833 days ago | 0.06737342 ETH | ||||
14726386 | 964 days ago | 0.03779429 ETH | ||||
14724940 | 965 days ago | 0.03770147 ETH | ||||
14724305 | 965 days ago | 0.03768838 ETH | ||||
14717374 | 966 days ago | 0.03480195 ETH | ||||
14717368 | 966 days ago | 0.03488593 ETH | ||||
14717350 | 966 days ago | 0.03488593 ETH | ||||
14685050 | 971 days ago | 0.03605068 ETH | ||||
14655442 | 976 days ago | 0.0346525 ETH | ||||
14641116 | 978 days ago | 0.03446924 ETH | ||||
14641083 | 978 days ago | 0.03446924 ETH | ||||
14641028 | 978 days ago | 0.03446924 ETH |
Loading...
Loading
Contract Name:
OKLGAirdropper
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import '@openzeppelin/contracts/interfaces/IERC20.sol'; import '@openzeppelin/contracts/interfaces/IERC721.sol'; import './interfaces/IOKLGSpend.sol'; import './OKLGProduct.sol'; /** * @title OKLGAirdropper * @dev Allows sending ERC20 or ERC721 tokens to multiple addresses */ contract OKLGAirdropper is OKLGProduct { struct Receiver { address userAddress; uint256 amountOrTokenId; } constructor(address _tokenAddy, address _spendContractAddy) OKLGProduct(uint8(1), _tokenAddy, _spendContractAddy) {} function bulkSendMainTokens(Receiver[] memory _addressesAndAmounts) external payable returns (bool) { _payForService(0); bool _wasSent = true; for (uint256 _i = 0; _i < _addressesAndAmounts.length; _i++) { Receiver memory _user = _addressesAndAmounts[_i]; (bool sent, ) = _user.userAddress.call{ value: _user.amountOrTokenId }( '' ); _wasSent = _wasSent == false ? false : sent; } return _wasSent; } function bulkSendErc20Tokens( address _tokenAddress, Receiver[] memory _addressesAndAmounts ) external payable returns (bool) { _payForService(0); IERC20 _token = IERC20(_tokenAddress); for (uint256 _i = 0; _i < _addressesAndAmounts.length; _i++) { Receiver memory _user = _addressesAndAmounts[_i]; _token.transferFrom(msg.sender, _user.userAddress, _user.amountOrTokenId); } return true; } function bulkSendErc721Tokens( address _tokenAddress, Receiver[] memory _addressesAndAmounts ) external payable returns (bool) { _payForService(0); IERC721 _token = IERC721(_tokenAddress); for (uint256 _i = 0; _i < _addressesAndAmounts.length; _i++) { Receiver memory _user = _addressesAndAmounts[_i]; _token.transferFrom(msg.sender, _user.userAddress, _user.amountOrTokenId); } return true; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) pragma solidity ^0.8.0; import "../token/ERC20/IERC20.sol";
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol) pragma solidity ^0.8.0; import "../token/ERC721/IERC721.sol";
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; /** * @title IOKLGSpend * @dev Logic for spending OKLG on products in the product ecosystem. */ interface IOKLGSpend { function spendOnProduct(address _payor, uint8 _product) external payable; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import '@openzeppelin/contracts/interfaces/IERC20.sol'; import './interfaces/IOKLGSpend.sol'; import './OKLGWithdrawable.sol'; /** * @title OKLGProduct * @dev Contract that every product developed in the OKLG ecosystem should implement */ contract OKLGProduct is OKLGWithdrawable { IERC20 private _token; // OKLG IOKLGSpend private _spend; uint8 public productID; constructor( uint8 _productID, address _tokenAddy, address _spendAddy ) { productID = _productID; _token = IERC20(_tokenAddy); _spend = IOKLGSpend(_spendAddy); } function setTokenAddy(address _tokenAddy) external onlyOwner { _token = IERC20(_tokenAddy); } function setSpendAddy(address _spendAddy) external onlyOwner { _spend = IOKLGSpend(_spendAddy); } function setProductID(uint8 _newId) external onlyOwner { productID = _newId; } function getTokenAddress() public view returns (address) { return address(_token); } function getSpendAddress() public view returns (address) { return address(_spend); } function _payForService(uint256 _weiToRemoveFromSpend) internal { _spend.spendOnProduct{ value: msg.value - _weiToRemoveFromSpend }( msg.sender, productID ); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import '@openzeppelin/contracts/access/Ownable.sol'; import '@openzeppelin/contracts/interfaces/IERC20.sol'; /** * @title OKLGWithdrawable * @dev Supports being able to get tokens or ETH out of a contract with ease */ contract OKLGWithdrawable is Ownable { function withdrawTokens(address _tokenAddy, uint256 _amount) external onlyOwner { IERC20 _token = IERC20(_tokenAddy); _amount = _amount > 0 ? _amount : _token.balanceOf(address(this)); require(_amount > 0, 'make sure there is a balance available to withdraw'); _token.transfer(owner(), _amount); } function withdrawETH() external onlyOwner { payable(owner()).call{ value: address(this).balance }(''); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "metadata": { "bytecodeHash": "none" }, "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"address","name":"_spendContractAddy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"components":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}],"internalType":"struct OKLGAirdropper.Receiver[]","name":"_addressesAndAmounts","type":"tuple[]"}],"name":"bulkSendErc20Tokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"components":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}],"internalType":"struct OKLGAirdropper.Receiver[]","name":"_addressesAndAmounts","type":"tuple[]"}],"name":"bulkSendErc721Tokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}],"internalType":"struct OKLGAirdropper.Receiver[]","name":"_addressesAndAmounts","type":"tuple[]"}],"name":"bulkSendMainTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getSpendAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"productID","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newId","type":"uint8"}],"name":"setProductID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spendAddy","type":"address"}],"name":"setSpendAddy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"}],"name":"setTokenAddy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610e30380380610e3083398101604081905261002f916100f8565b6001828261003c3361008c565b60028054600180546001600160a01b03199081166001600160a01b03968716179091556001600160a81b0319909116600160a01b60ff9690961695909502169390931791161790555061012a9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100f357600080fd5b919050565b6000806040838503121561010a578182fd5b610113836100dc565b9150610121602084016100dc565b90509250929050565b610cf7806101396000396000f3fe6080604052600436106100dd5760003560e01c80637c0bf7bb1161007f578063dc3aaab511610059578063dc3aaab514610217578063e086e5ec14610235578063f2fde38b1461024a578063f9fb452f1461026a57600080fd5b80637c0bf7bb146101b95780638da5cb5b146101d95780639e9f695d146101f757600080fd5b806347e3bedb116100bb57806347e3bedb1461015e57806349dcbc22146101715780634bc10ccb14610184578063715018a6146101a457600080fd5b806306b091f9146100e257806310fe9ae8146101045780631ac88d341461013b575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610b40565b61029d565b005b34801561011057600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b61014e610149366004610af4565b610468565b6040519015158152602001610132565b61014e61016c366004610af4565b610541565b61014e61017f366004610b69565b610630565b34801561019057600080fd5b5061010261019f366004610ad3565b610702565b3480156101b057600080fd5b5061010261074e565b3480156101c557600080fd5b506101026101d4366004610ad3565b610784565b3480156101e557600080fd5b506000546001600160a01b031661011e565b34801561020357600080fd5b50610102610212366004610bdc565b6107d0565b34801561022357600080fd5b506002546001600160a01b031661011e565b34801561024157600080fd5b5061010261081a565b34801561025657600080fd5b50610102610265366004610ad3565b61089f565b34801561027657600080fd5b5060025461028b90600160a01b900460ff1681565b60405160ff9091168152602001610132565b6000546001600160a01b031633146102d05760405162461bcd60e51b81526004016102c790610bfd565b60405180910390fd5b8181610352576040516370a0823160e01b81523060048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561031557600080fd5b505afa158015610329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034d9190610bc4565b610354565b815b9150600082116103c15760405162461bcd60e51b815260206004820152603260248201527f6d616b65207375726520746865726520697320612062616c616e636520617661604482015271696c61626c6520746f20776974686472617760701b60648201526084016102c7565b806001600160a01b031663a9059cbb6103e26000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401602060405180830381600087803b15801561042a57600080fd5b505af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104629190610ba4565b50505050565b6000610474600061093a565b8260005b83518110156105365760008482815181106104a357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101518051918101516040516323b872dd60e01b81523360048201526001600160a01b0393841660248201526044810191909152909250908416906323b872dd90606401600060405180830381600087803b15801561050a57600080fd5b505af115801561051e573d6000803e3d6000fd5b5050505050808061052e90610ca3565b915050610478565b506001949350505050565b600061054d600061093a565b8260005b835181101561053657600084828151811061057c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101518051918101516040516323b872dd60e01b81523360048201526001600160a01b0393841660248201526044810191909152909250908416906323b872dd90606401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061b9190610ba4565b5050808061062890610ca3565b915050610551565b600061063c600061093a565b600160005b83518110156106fb57600084828151811061066c57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600081600001516001600160a01b0316826020015160405160006040518083038185875af1925050503d80600081146106cb576040519150601f19603f3d011682016040523d82523d6000602084013e6106d0565b606091505b509091505083156106e157806106e4565b60005b9350505080806106f390610ca3565b915050610641565b5092915050565b6000546001600160a01b0316331461072c5760405162461bcd60e51b81526004016102c790610bfd565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107785760405162461bcd60e51b81526004016102c790610bfd565b61078260006109ba565b565b6000546001600160a01b031633146107ae5760405162461bcd60e51b81526004016102c790610bfd565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107fa5760405162461bcd60e51b81526004016102c790610bfd565b6002805460ff909216600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146108445760405162461bcd60e51b81526004016102c790610bfd565b6000546001600160a01b03166001600160a01b03164760405160006040518083038185875af1925050503d806000811461089a576040519150601f19603f3d011682016040523d82523d6000602084013e505050565b505050565b6000546001600160a01b031633146108c95760405162461bcd60e51b81526004016102c790610bfd565b6001600160a01b03811661092e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c7565b610937816109ba565b50565b6002546001600160a01b031663d9e30e556109558334610c8c565b60025460405160e084901b6001600160e01b0319168152336004820152600160a01b90910460ff1660248201526044016000604051808303818588803b15801561099e57600080fd5b505af11580156109b2573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610a2157600080fd5b919050565b600082601f830112610a36578081fd5b8135602067ffffffffffffffff821115610a5257610a52610cd4565b610a60818360051b01610c5b565b80838252828201915082860187848660061b8901011115610a7f578586fd5b855b85811015610ac657604080838b031215610a99578788fd5b610aa1610c32565b610aaa84610a0a565b8152838701358782015285529385019390910190600101610a81565b5090979650505050505050565b600060208284031215610ae4578081fd5b610aed82610a0a565b9392505050565b60008060408385031215610b06578081fd5b610b0f83610a0a565b9150602083013567ffffffffffffffff811115610b2a578182fd5b610b3685828601610a26565b9150509250929050565b60008060408385031215610b52578182fd5b610b5b83610a0a565b946020939093013593505050565b600060208284031215610b7a578081fd5b813567ffffffffffffffff811115610b90578182fd5b610b9c84828501610a26565b949350505050565b600060208284031215610bb5578081fd5b81518015158114610aed578182fd5b600060208284031215610bd5578081fd5b5051919050565b600060208284031215610bed578081fd5b813560ff81168114610aed578182fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6040805190810167ffffffffffffffff81118282101715610c5557610c55610cd4565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610c8457610c84610cd4565b604052919050565b600082821015610c9e57610c9e610cbe565b500390565b6000600019821415610cb757610cb7610cbe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea164736f6c6343000804000a0000000000000000000000005dbb9f64cd96e2dbbca58d14863d615b67b42f2e0000000000000000000000005bde378e0a0cebc941b03a579da0088dc1616faf
Deployed Bytecode
0x6080604052600436106100dd5760003560e01c80637c0bf7bb1161007f578063dc3aaab511610059578063dc3aaab514610217578063e086e5ec14610235578063f2fde38b1461024a578063f9fb452f1461026a57600080fd5b80637c0bf7bb146101b95780638da5cb5b146101d95780639e9f695d146101f757600080fd5b806347e3bedb116100bb57806347e3bedb1461015e57806349dcbc22146101715780634bc10ccb14610184578063715018a6146101a457600080fd5b806306b091f9146100e257806310fe9ae8146101045780631ac88d341461013b575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610b40565b61029d565b005b34801561011057600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b61014e610149366004610af4565b610468565b6040519015158152602001610132565b61014e61016c366004610af4565b610541565b61014e61017f366004610b69565b610630565b34801561019057600080fd5b5061010261019f366004610ad3565b610702565b3480156101b057600080fd5b5061010261074e565b3480156101c557600080fd5b506101026101d4366004610ad3565b610784565b3480156101e557600080fd5b506000546001600160a01b031661011e565b34801561020357600080fd5b50610102610212366004610bdc565b6107d0565b34801561022357600080fd5b506002546001600160a01b031661011e565b34801561024157600080fd5b5061010261081a565b34801561025657600080fd5b50610102610265366004610ad3565b61089f565b34801561027657600080fd5b5060025461028b90600160a01b900460ff1681565b60405160ff9091168152602001610132565b6000546001600160a01b031633146102d05760405162461bcd60e51b81526004016102c790610bfd565b60405180910390fd5b8181610352576040516370a0823160e01b81523060048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561031557600080fd5b505afa158015610329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034d9190610bc4565b610354565b815b9150600082116103c15760405162461bcd60e51b815260206004820152603260248201527f6d616b65207375726520746865726520697320612062616c616e636520617661604482015271696c61626c6520746f20776974686472617760701b60648201526084016102c7565b806001600160a01b031663a9059cbb6103e26000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401602060405180830381600087803b15801561042a57600080fd5b505af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104629190610ba4565b50505050565b6000610474600061093a565b8260005b83518110156105365760008482815181106104a357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101518051918101516040516323b872dd60e01b81523360048201526001600160a01b0393841660248201526044810191909152909250908416906323b872dd90606401600060405180830381600087803b15801561050a57600080fd5b505af115801561051e573d6000803e3d6000fd5b5050505050808061052e90610ca3565b915050610478565b506001949350505050565b600061054d600061093a565b8260005b835181101561053657600084828151811061057c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101518051918101516040516323b872dd60e01b81523360048201526001600160a01b0393841660248201526044810191909152909250908416906323b872dd90606401602060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061b9190610ba4565b5050808061062890610ca3565b915050610551565b600061063c600061093a565b600160005b83518110156106fb57600084828151811061066c57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600081600001516001600160a01b0316826020015160405160006040518083038185875af1925050503d80600081146106cb576040519150601f19603f3d011682016040523d82523d6000602084013e6106d0565b606091505b509091505083156106e157806106e4565b60005b9350505080806106f390610ca3565b915050610641565b5092915050565b6000546001600160a01b0316331461072c5760405162461bcd60e51b81526004016102c790610bfd565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107785760405162461bcd60e51b81526004016102c790610bfd565b61078260006109ba565b565b6000546001600160a01b031633146107ae5760405162461bcd60e51b81526004016102c790610bfd565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107fa5760405162461bcd60e51b81526004016102c790610bfd565b6002805460ff909216600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146108445760405162461bcd60e51b81526004016102c790610bfd565b6000546001600160a01b03166001600160a01b03164760405160006040518083038185875af1925050503d806000811461089a576040519150601f19603f3d011682016040523d82523d6000602084013e505050565b505050565b6000546001600160a01b031633146108c95760405162461bcd60e51b81526004016102c790610bfd565b6001600160a01b03811661092e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c7565b610937816109ba565b50565b6002546001600160a01b031663d9e30e556109558334610c8c565b60025460405160e084901b6001600160e01b0319168152336004820152600160a01b90910460ff1660248201526044016000604051808303818588803b15801561099e57600080fd5b505af11580156109b2573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610a2157600080fd5b919050565b600082601f830112610a36578081fd5b8135602067ffffffffffffffff821115610a5257610a52610cd4565b610a60818360051b01610c5b565b80838252828201915082860187848660061b8901011115610a7f578586fd5b855b85811015610ac657604080838b031215610a99578788fd5b610aa1610c32565b610aaa84610a0a565b8152838701358782015285529385019390910190600101610a81565b5090979650505050505050565b600060208284031215610ae4578081fd5b610aed82610a0a565b9392505050565b60008060408385031215610b06578081fd5b610b0f83610a0a565b9150602083013567ffffffffffffffff811115610b2a578182fd5b610b3685828601610a26565b9150509250929050565b60008060408385031215610b52578182fd5b610b5b83610a0a565b946020939093013593505050565b600060208284031215610b7a578081fd5b813567ffffffffffffffff811115610b90578182fd5b610b9c84828501610a26565b949350505050565b600060208284031215610bb5578081fd5b81518015158114610aed578182fd5b600060208284031215610bd5578081fd5b5051919050565b600060208284031215610bed578081fd5b813560ff81168114610aed578182fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6040805190810167ffffffffffffffff81118282101715610c5557610c55610cd4565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610c8457610c84610cd4565b604052919050565b600082821015610c9e57610c9e610cbe565b500390565b6000600019821415610cb757610cb7610cbe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea164736f6c6343000804000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005dbb9f64cd96e2dbbca58d14863d615b67b42f2e0000000000000000000000005bde378e0a0cebc941b03a579da0088dc1616faf
-----Decoded View---------------
Arg [0] : _tokenAddy (address): 0x5dBB9F64cd96E2DbBcA58d14863d615B67B42f2e
Arg [1] : _spendContractAddy (address): 0x5bDE378E0a0ceBc941B03a579DA0088DC1616FAF
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005dbb9f64cd96e2dbbca58d14863d615b67b42f2e
Arg [1] : 0000000000000000000000005bde378e0a0cebc941b03a579da0088dc1616faf
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.