More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 219 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Multisend Token | 18883032 | 251 days ago | IN | 0.05 ETH | 0.00594975 | ||||
Multisend Token | 18681802 | 279 days ago | IN | 0.05 ETH | 0.01172409 | ||||
Multisend Token | 18588669 | 292 days ago | IN | 0.05 ETH | 0.1290898 | ||||
Multisend Token | 18483603 | 307 days ago | IN | 0.05 ETH | 0.00297785 | ||||
Multisend Token | 18324383 | 329 days ago | IN | 0.05 ETH | 0.00265957 | ||||
Claim Tokens | 18076995 | 364 days ago | IN | 0 ETH | 0.00057631 | ||||
Multisend Token | 18033363 | 370 days ago | IN | 0.05 ETH | 0.00547124 | ||||
Multisend Token | 18032874 | 370 days ago | IN | 0.05 ETH | 0.08724627 | ||||
Multisend Token | 18032867 | 370 days ago | IN | 0.05 ETH | 0.12102179 | ||||
Multisend Token | 18032862 | 370 days ago | IN | 0.05 ETH | 0.11439932 | ||||
Multisend Token | 18032782 | 370 days ago | IN | 0.05 ETH | 0.05297928 | ||||
Multisend Token | 18032779 | 370 days ago | IN | 0.05 ETH | 0.10633191 | ||||
Multisend Token | 17811298 | 401 days ago | IN | 0.05 ETH | 0.00211719 | ||||
Multisend Token | 17811232 | 401 days ago | IN | 0.05 ETH | 0.05604924 | ||||
Multisend Token | 17811184 | 401 days ago | IN | 0.05 ETH | 0.00874647 | ||||
Multisend Token | 17710139 | 415 days ago | IN | 0.05 ETH | 0.00311501 | ||||
Claim Tokens | 17684261 | 419 days ago | IN | 0 ETH | 0.00058114 | ||||
Multisend Token | 17590791 | 432 days ago | IN | 0.05 ETH | 0.01035161 | ||||
Multisend Token | 17590750 | 432 days ago | IN | 0.05 ETH | 0.03347293 | ||||
Multisend Token | 17491131 | 446 days ago | IN | 0.05 ETH | 0.00930875 | ||||
Multisend Token | 17385872 | 461 days ago | IN | 0.05 ETH | 0.00895633 | ||||
Multisend Token | 17385770 | 461 days ago | IN | 0.05 ETH | 0.02998112 | ||||
Multisend Token | 17385134 | 461 days ago | IN | 0.05 ETH | 0.2071818 | ||||
Multisend Token | 17385114 | 461 days ago | IN | 0.05 ETH | 0.21075838 | ||||
Multisend Token | 17385111 | 461 days ago | IN | 0.05 ETH | 0.19297629 |
Latest 21 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18076995 | 364 days ago | 0.5 ETH | ||||
17684261 | 419 days ago | 0.55096 ETH | ||||
17370681 | 463 days ago | 1.45 ETH | ||||
16197035 | 628 days ago | 0.75 ETH | ||||
15624180 | 708 days ago | 0.8 ETH | ||||
15274361 | 762 days ago | 0.00001 ETH | ||||
15274361 | 762 days ago | 0.00001 ETH | ||||
15038538 | 799 days ago | 0.00001 ETH | ||||
15038538 | 799 days ago | 0.00001 ETH | ||||
14915758 | 821 days ago | 0.1 ETH | ||||
14723655 | 852 days ago | 0.92997 ETH | ||||
14670739 | 860 days ago | 0.00002 ETH | ||||
14670739 | 860 days ago | 0.00001 ETH | ||||
14546062 | 880 days ago | 0.43 ETH | ||||
14321502 | 915 days ago | 0.32 ETH | ||||
14160078 | 940 days ago | 0.2 ETH | ||||
13907131 | 979 days ago | 0.05 ETH | ||||
13753689 | 1003 days ago | 0.05 ETH | ||||
13334543 | 1069 days ago | 0.1 ETH | ||||
13146075 | 1098 days ago | 0.25 ETH | ||||
12945395 | 1129 days ago | 2.6 ETH |
Loading...
Loading
Contract Name:
WishMultisender
Compiler Version
v0.5.14+commit.01f1aaa4
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.5.14; import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; import "openzeppelin-solidity/contracts/math/SafeMath.sol"; import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; import "openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol"; contract WishMultisender is Ownable, ReentrancyGuard { using SafeMath for uint128; using SafeMath for uint256; bool private isInitialized; uint128 public fee; // events event MultisendedToken(address token, uint256 amount); event MultisendedEth(uint256 amount); event AutoMultisendToken(address token, uint256 amount); event AutoMultisendEth(uint256 amount); event ClaimedTokens(address token, address payable ownerPayable, uint256 amount); // modifiers modifier initialized{ require( isInitialized == true, "WishMultisender: Contract not initialized" ); _; } modifier hasFee(uint256 ethToDistribute) { if (fee > 0) { require( msg.value.sub(ethToDistribute) >= fee, "WishMultisender: No fee" ); } _; } modifier validLists(uint256 _contributorsLength, uint256 _balancesLength) { require(_contributorsLength > 0, "WishMultisender: No contributors sent"); require( _contributorsLength == _balancesLength, "WishMultisender: Different arrays lengths" ); _; } // public and external functions constructor() public{ isInitialized = false; } function init( uint128 _fee ) external onlyOwner { require( isInitialized == false, "WishMultisender: Already initialized" ); fee = _fee; isInitialized = true; } function tokenFallback(address _from, uint _value, bytes calldata _data) external {} function multisendToken( IERC20 _token, address[] calldata contributors, uint256[] calldata balances, uint256 _total ) external payable validLists( contributors.length, balances.length ) hasFee(0) initialized nonReentrant { uint256 total = _total; require( _token.transferFrom( msg.sender, address(this), total ), "WishMultisender: Couldn't transfer tokens to contract" ); for (uint256 i = 0; i < contributors.length; i++) { require( _token.transfer( contributors[i], balances[i] ), "WishMultisender: Couldn't transfer tokens to user" ); total = total.sub(balances[i]); } require( total == 0, "WishMultisender: Wrong amount of total" ); emit MultisendedToken(address(_token), _total); } function multisendEth( address payable[] calldata contributors, uint256[] calldata balances, uint256 _total ) external payable validLists( contributors.length, balances.length ) hasFee(_total) initialized nonReentrant { uint256 total = _total; for (uint256 i = 0; i < contributors.length; i++) { contributors[i].transfer(balances[i]); total = total.sub(balances[i]); } require( total == 0, "WishMultisender: Wrong amount of total" ); emit MultisendedEth(_total); } function claimTokens( address _token, uint256 _amount ) external onlyOwner nonReentrant { address payable ownerPayable = address(uint160(owner())); uint256 amount = _amount; if (_amount == 0) { amount = address(this).balance; } if (_token == address(0)) { ownerPayable.transfer(amount); emit ClaimedTokens(address(0), ownerPayable, amount); return; } IERC20 erc20token = IERC20(_token); if (_amount == 0) amount = erc20token.balanceOf(address(this)); else amount = _amount; require( erc20token.transfer(ownerPayable, amount), "WishMultisender: Couldn't transfer tokens to owner" ); emit ClaimedTokens(_token, ownerPayable, amount); } function setFee(uint128 newFee) external onlyOwner { fee = newFee; } function autoMultisendToken( IERC20 token, uint256 amount ) external payable hasFee(0) initialized nonReentrant { require( token.transferFrom( _msgSender(), address(this), amount ), "WishMultisender: Couldn't transfer tokens to contract" ); emit AutoMultisendToken(address(token), amount); } function autoMultisendEth( uint256 amount ) external payable hasFee(amount) initialized nonReentrant { emit AutoMultisendEth(amount); } // internal and private functions }
pragma solidity ^0.5.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 GSN 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. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
pragma solidity ^0.5.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
pragma solidity ^0.5.0; import "../GSN/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. * * 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. */ 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _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 onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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 onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
pragma solidity ^0.5.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ 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); }
pragma solidity ^0.5.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]. * * _Since v2.5.0:_ this module is now much more gas efficient, given net gas * metering changes introduced in the Istanbul hardfork. */ contract ReentrancyGuard { bool private _notEntered; constructor () internal { // Storing an initial 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 percetange 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. _notEntered = true; } /** * @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 make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_notEntered, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _notEntered = false; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _notEntered = true; } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 999999 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoMultisendEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoMultisendToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address payable","name":"ownerPayable","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MultisendedEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MultisendedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"autoMultisendEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"autoMultisendToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint128","name":"_fee","type":"uint128"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable[]","name":"contributors","type":"address[]"},{"internalType":"uint256[]","name":"balances","type":"uint256[]"},{"internalType":"uint256","name":"_total","type":"uint256"}],"name":"multisendEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"address[]","name":"contributors","type":"address[]"},{"internalType":"uint256[]","name":"balances","type":"uint256[]"},{"internalType":"uint256","name":"_total","type":"uint256"}],"name":"multisendToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint128","name":"newFee","type":"uint128"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060006100246001600160e01b0361008f16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a81b1960ff60a01b19909116600160a01b17169055610093565b3390565b6120de806100a26000396000f3fe6080604052600436106100d25760003560e01c80639f1f7f6f1161007f578063ddca3f4311610059578063ddca3f4314610446578063eee6478914610480578063f2fde38b1461049d578063fe417fa5146104dd576100d2565b80639f1f7f6f146102a9578063a8ae9751146102e5578063c0ee0b8a146103a7576100d2565b80638cada307116100b05780638cada307146102095780638da5cb5b146102425780638f32d59b14610280576100d2565b80633687f24a146100d7578063715018a61461011557806383cdcb761461012a575b600080fd5b3480156100e357600080fd5b50610113600480360360208110156100fa57600080fd5b50356fffffffffffffffffffffffffffffffff16610523565b005b34801561012157600080fd5b506101136105d9565b6101136004803603608081101561014057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561017857600080fd5b82018360208201111561018a57600080fd5b803590602001918460208302840111640100000000831117156101ac57600080fd5b9193909290916020810190356401000000008111156101ca57600080fd5b8201836020820111156101dc57600080fd5b803590602001918460208302840111640100000000831117156101fe57600080fd5b9193509150356106bb565b6101136004803603604081101561021f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610cb2565b34801561024e57600080fd5b5061025761103e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028c57600080fd5b5061029561105a565b604080519115158252519081900360200190f35b3480156102b557600080fd5b50610113600480360360208110156102cc57600080fd5b50356fffffffffffffffffffffffffffffffff16611098565b610113600480360360608110156102fb57600080fd5b81019060208101813564010000000081111561031657600080fd5b82018360208201111561032857600080fd5b8035906020019184602083028401116401000000008311171561034a57600080fd5b91939092909160208101903564010000000081111561036857600080fd5b82018360208201111561037a57600080fd5b8035906020019184602083028401116401000000008311171561039c57600080fd5b919350915035611204565b3480156103b357600080fd5b50610113600480360360608110156103ca57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561040757600080fd5b82018360208201111561041957600080fd5b8035906020019184600183028401116401000000008311171561043b57600080fd5b509092509050611606565b34801561045257600080fd5b5061045b61160c565b604080516fffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101136004803603602081101561049657600080fd5b5035611624565b3480156104a957600080fd5b50610113600480360360208110156104c057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611872565b3480156104e957600080fd5b506101136004803603604081101561050057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118f1565b61052b61105a565b61059657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b6105e161105a565b61064c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b838281610713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120066025913960400191505060405180910390fd5b80821461076b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f2b6029913960400191505060405180910390fd5b6001546000906fffffffffffffffffffffffffffffffff161561081a576001546fffffffffffffffffffffffffffffffff166107ad348363ffffffff611d3316565b101561081a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff161515600114610893576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff1661091c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff168155604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790529051869273ffffffffffffffffffffffffffffffffffffffff8d16926323b872dd9260648083019360209383900390910190829087803b1580156109c157600080fd5b505af11580156109d5573d6000803e3d6000fd5b505050506040513d60208110156109eb57600080fd5b5051610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806120756035913960400191505060405180910390fd5b60005b88811015610bbe578a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b84818110610a7557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a85818110610a9e57fe5b905060200201356040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b0e57600080fd5b505af1158015610b22573d6000803e3d6000fd5b505050506040513d6020811015610b3857600080fd5b5051610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611fd56031913960400191505060405180910390fd5b610bb4888883818110610b9e57fe5b9050602002013583611d3390919063ffffffff16565b9150600101610a45565b508015610c16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061202b6026913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8c1681526020810187905281517fea77ff0a4035383eeb9775d7b434244fb4be2f01ce6a5288ab3ce6393fdcea74929181900390910190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050505050565b6001546000906fffffffffffffffffffffffffffffffff1615610d61576001546fffffffffffffffffffffffffffffffff16610cf4348363ffffffff611d3316565b1015610d6157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff161515600114610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff16610e6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905573ffffffffffffffffffffffffffffffffffffffff83166323b872dd610eaf611d7c565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152306024830152604482018690525160648083019260209291908290030181600087803b158015610f2857600080fd5b505af1158015610f3c573d6000803e3d6000fd5b505050506040513d6020811015610f5257600080fd5b5051610fa9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806120756035913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff851681526020810184905281517f0b6ab5313a0777908ac9ab7ad8a44451905e69bc43584b7c67ce11bb549002fc929181900390910190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff1661107c611d7c565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6110a061105a565b61110b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff1615611180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120516024913960400191505060405180910390fd5b600180546fffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091179055600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b83828161125c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120066025913960400191505060405180910390fd5b8082146112b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f2b6029913960400191505060405180910390fd5b60015483906fffffffffffffffffffffffffffffffff1615611362576001546fffffffffffffffffffffffffffffffff166112f5348363ffffffff611d3316565b101561136257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff1615156001146113db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff1661146457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815584905b88811015611531578989828181106114a357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8989848181106114e557fe5b905060200201359081150290604051600060405180830381858888f19350505050158015611517573d6000803e3d6000fd5b50611527888883818110610b9e57fe5b915060010161148f565b508015611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061202b6026913960400191505060405180910390fd5b6040805186815290517fd3ef9f583a345b94337eaf5c5d74fa6b01a2d1e509f7dd49cb341201f0ea13cb9181900360200190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550505050505050565b50505050565b6001546fffffffffffffffffffffffffffffffff1681565b60015481906fffffffffffffffffffffffffffffffff16156116d2576001546fffffffffffffffffffffffffffffffff16611665348363ffffffff611d3316565b10156116d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff16151560011461174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff166117d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040805183815290517f7d5b772e8f586e805e17de708aea58d25e1147c0042a3f5bb1121472dd7778239181900360200190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b61187a61105a565b6118e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6118ee81611d80565b50565b6118f961105a565b61196457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff166119ed57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff168155611a1d61103e565b90508180611a285750475b73ffffffffffffffffffffffffffffffffffffffff8416611ae45760405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611a86573d6000803e3d6000fd5b50604080516000815273ffffffffffffffffffffffffffffffffffffffff8416602082015280820183905290517ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360600190a15050611cf0565b8383611b8957604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8316916370a08231916024808301926020929190829003018186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d6020811015611b8057600080fd5b50519150611b8d565b8391505b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c1457600080fd5b505af1158015611c28573d6000803e3d6000fd5b505050506040513d6020811015611c3e57600080fd5b5051611c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611fa36032913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff80881682528516602082015280820184905290517ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360600190a15050505b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b6000611d7583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e79565b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116611dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f546026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008184841115611f22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ee7578181015183820152602001611ecf565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe576973684d756c746973656e6465723a20446966666572656e7420617272617973206c656e677468734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373576973684d756c746973656e6465723a20436f6e7472616374206e6f7420696e697469616c697a6564576973684d756c746973656e6465723a20436f756c646e2774207472616e7366657220746f6b656e7320746f206f776e6572576973684d756c746973656e6465723a20436f756c646e2774207472616e7366657220746f6b656e7320746f2075736572576973684d756c746973656e6465723a204e6f20636f6e7472696275746f72732073656e74576973684d756c746973656e6465723a2057726f6e6720616d6f756e74206f6620746f74616c576973684d756c746973656e6465723a20416c726561647920696e697469616c697a6564576973684d756c746973656e6465723a20436f756c646e2774207472616e7366657220746f6b656e7320746f20636f6e7472616374a265627a7a72315820d9fddaf304ae3fde238c23668299c63271a67c8140a19ea88830ceff23ed2d8564736f6c634300050e0032
Deployed Bytecode
0x6080604052600436106100d25760003560e01c80639f1f7f6f1161007f578063ddca3f4311610059578063ddca3f4314610446578063eee6478914610480578063f2fde38b1461049d578063fe417fa5146104dd576100d2565b80639f1f7f6f146102a9578063a8ae9751146102e5578063c0ee0b8a146103a7576100d2565b80638cada307116100b05780638cada307146102095780638da5cb5b146102425780638f32d59b14610280576100d2565b80633687f24a146100d7578063715018a61461011557806383cdcb761461012a575b600080fd5b3480156100e357600080fd5b50610113600480360360208110156100fa57600080fd5b50356fffffffffffffffffffffffffffffffff16610523565b005b34801561012157600080fd5b506101136105d9565b6101136004803603608081101561014057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561017857600080fd5b82018360208201111561018a57600080fd5b803590602001918460208302840111640100000000831117156101ac57600080fd5b9193909290916020810190356401000000008111156101ca57600080fd5b8201836020820111156101dc57600080fd5b803590602001918460208302840111640100000000831117156101fe57600080fd5b9193509150356106bb565b6101136004803603604081101561021f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610cb2565b34801561024e57600080fd5b5061025761103e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561028c57600080fd5b5061029561105a565b604080519115158252519081900360200190f35b3480156102b557600080fd5b50610113600480360360208110156102cc57600080fd5b50356fffffffffffffffffffffffffffffffff16611098565b610113600480360360608110156102fb57600080fd5b81019060208101813564010000000081111561031657600080fd5b82018360208201111561032857600080fd5b8035906020019184602083028401116401000000008311171561034a57600080fd5b91939092909160208101903564010000000081111561036857600080fd5b82018360208201111561037a57600080fd5b8035906020019184602083028401116401000000008311171561039c57600080fd5b919350915035611204565b3480156103b357600080fd5b50610113600480360360608110156103ca57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561040757600080fd5b82018360208201111561041957600080fd5b8035906020019184600183028401116401000000008311171561043b57600080fd5b509092509050611606565b34801561045257600080fd5b5061045b61160c565b604080516fffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101136004803603602081101561049657600080fd5b5035611624565b3480156104a957600080fd5b50610113600480360360208110156104c057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611872565b3480156104e957600080fd5b506101136004803603604081101561050057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118f1565b61052b61105a565b61059657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b6105e161105a565b61064c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b838281610713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120066025913960400191505060405180910390fd5b80821461076b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f2b6029913960400191505060405180910390fd5b6001546000906fffffffffffffffffffffffffffffffff161561081a576001546fffffffffffffffffffffffffffffffff166107ad348363ffffffff611d3316565b101561081a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff161515600114610893576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff1661091c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff168155604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790529051869273ffffffffffffffffffffffffffffffffffffffff8d16926323b872dd9260648083019360209383900390910190829087803b1580156109c157600080fd5b505af11580156109d5573d6000803e3d6000fd5b505050506040513d60208110156109eb57600080fd5b5051610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806120756035913960400191505060405180910390fd5b60005b88811015610bbe578a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b84818110610a7557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a85818110610a9e57fe5b905060200201356040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b0e57600080fd5b505af1158015610b22573d6000803e3d6000fd5b505050506040513d6020811015610b3857600080fd5b5051610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611fd56031913960400191505060405180910390fd5b610bb4888883818110610b9e57fe5b9050602002013583611d3390919063ffffffff16565b9150600101610a45565b508015610c16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061202b6026913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8c1681526020810187905281517fea77ff0a4035383eeb9775d7b434244fb4be2f01ce6a5288ab3ce6393fdcea74929181900390910190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050505050565b6001546000906fffffffffffffffffffffffffffffffff1615610d61576001546fffffffffffffffffffffffffffffffff16610cf4348363ffffffff611d3316565b1015610d6157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff161515600114610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff16610e6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905573ffffffffffffffffffffffffffffffffffffffff83166323b872dd610eaf611d7c565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9092166004830152306024830152604482018690525160648083019260209291908290030181600087803b158015610f2857600080fd5b505af1158015610f3c573d6000803e3d6000fd5b505050506040513d6020811015610f5257600080fd5b5051610fa9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806120756035913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff851681526020810184905281517f0b6ab5313a0777908ac9ab7ad8a44451905e69bc43584b7c67ce11bb549002fc929181900390910190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff1661107c611d7c565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6110a061105a565b61110b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff1615611180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120516024913960400191505060405180910390fd5b600180546fffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091179055600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b83828161125c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120066025913960400191505060405180910390fd5b8082146112b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f2b6029913960400191505060405180910390fd5b60015483906fffffffffffffffffffffffffffffffff1615611362576001546fffffffffffffffffffffffffffffffff166112f5348363ffffffff611d3316565b101561136257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff1615156001146113db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff1661146457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815584905b88811015611531578989828181106114a357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8989848181106114e557fe5b905060200201359081150290604051600060405180830381858888f19350505050158015611517573d6000803e3d6000fd5b50611527888883818110610b9e57fe5b915060010161148f565b508015611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061202b6026913960400191505060405180910390fd5b6040805186815290517fd3ef9f583a345b94337eaf5c5d74fa6b01a2d1e509f7dd49cb341201f0ea13cb9181900360200190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550505050505050565b50505050565b6001546fffffffffffffffffffffffffffffffff1681565b60015481906fffffffffffffffffffffffffffffffff16156116d2576001546fffffffffffffffffffffffffffffffff16611665348363ffffffff611d3316565b10156116d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f576973684d756c746973656e6465723a204e6f20666565000000000000000000604482015290519081900360640190fd5b6000547501000000000000000000000000000000000000000000900460ff16151560011461174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f7a6029913960400191505060405180910390fd5b60005474010000000000000000000000000000000000000000900460ff166117d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040805183815290517f7d5b772e8f586e805e17de708aea58d25e1147c0042a3f5bb1121472dd7778239181900360200190a15050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b61187a61105a565b6118e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6118ee81611d80565b50565b6118f961105a565b61196457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff166119ed57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff168155611a1d61103e565b90508180611a285750475b73ffffffffffffffffffffffffffffffffffffffff8416611ae45760405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611a86573d6000803e3d6000fd5b50604080516000815273ffffffffffffffffffffffffffffffffffffffff8416602082015280820183905290517ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360600190a15050611cf0565b8383611b8957604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8316916370a08231916024808301926020929190829003018186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d6020811015611b8057600080fd5b50519150611b8d565b8391505b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c1457600080fd5b505af1158015611c28573d6000803e3d6000fd5b505050506040513d6020811015611c3e57600080fd5b5051611c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611fa36032913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff80881682528516602082015280820184905290517ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360600190a15050505b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b6000611d7583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e79565b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116611dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f546026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008184841115611f22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ee7578181015183820152602001611ecf565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe576973684d756c746973656e6465723a20446966666572656e7420617272617973206c656e677468734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373576973684d756c746973656e6465723a20436f6e7472616374206e6f7420696e697469616c697a6564576973684d756c746973656e6465723a20436f756c646e2774207472616e7366657220746f6b656e7320746f206f776e6572576973684d756c746973656e6465723a20436f756c646e2774207472616e7366657220746f6b656e7320746f2075736572576973684d756c746973656e6465723a204e6f20636f6e7472696275746f72732073656e74576973684d756c746973656e6465723a2057726f6e6720616d6f756e74206f6620746f74616c576973684d756c746973656e6465723a20416c726561647920696e697469616c697a6564576973684d756c746973656e6465723a20436f756c646e2774207472616e7366657220746f6b656e7320746f20636f6e7472616374a265627a7a72315820d9fddaf304ae3fde238c23668299c63271a67c8140a19ea88830ceff23ed2d8564736f6c634300050e0032
Loading...
Loading
Loading...
Loading
OVERVIEW
MyWish Airdrop dapp service, allows to send ERC-20 and BEP-20 tokens in batch of 400 to 800 addresses per transaction, depending on the blockchain.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.