Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 317 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 10944633 | 1878 days ago | IN | 0 ETH | 0.000903 | ||||
| Transfer | 9161552 | 2155 days ago | IN | 0 ETH | 0.00007637 | ||||
| Resume | 7518819 | 2417 days ago | IN | 0 ETH | 0.00000229 | ||||
| Claim Tokens | 7486312 | 2422 days ago | IN | 0 ETH | 0.00006752 | ||||
| Claim Tokens | 7452162 | 2427 days ago | IN | 0.002911 ETH | 0.00087932 | ||||
| Claim Tokens | 7452056 | 2427 days ago | IN | 0 ETH | 0.00091372 | ||||
| Claim Tokens | 7446191 | 2428 days ago | IN | 0 ETH | 0.00004457 | ||||
| Claim Tokens | 7414916 | 2433 days ago | IN | 0 ETH | 0.0000225 | ||||
| Claim Tokens | 7301640 | 2451 days ago | IN | 0 ETH | 0.00013371 | ||||
| Claim Tokens | 7297587 | 2452 days ago | IN | 0 ETH | 0.00022286 | ||||
| Claim Tokens | 7297584 | 2452 days ago | IN | 0 ETH | 0.00006685 | ||||
| Claim Tokens | 7297578 | 2452 days ago | IN | 0 ETH | 0.00008914 | ||||
| Claim Tokens | 7292902 | 2452 days ago | IN | 0 ETH | 0.00013595 | ||||
| Claim Tokens | 7292620 | 2452 days ago | IN | 0 ETH | 0.00015756 | ||||
| Claim Tokens | 7292616 | 2452 days ago | IN | 0 ETH | 0.00037821 | ||||
| Bulk Add Address... | 7292573 | 2452 days ago | IN | 0 ETH | 0.00019687 | ||||
| Claim Tokens | 7292556 | 2452 days ago | IN | 0 ETH | 0.00015756 | ||||
| Claim Tokens | 7292515 | 2452 days ago | IN | 0 ETH | 0.00037821 | ||||
| Bulk Add Address... | 7292508 | 2452 days ago | IN | 0 ETH | 0.00019687 | ||||
| Claim Tokens | 7292414 | 2452 days ago | IN | 0 ETH | 0.000156 | ||||
| Claim Tokens | 7284430 | 2454 days ago | IN | 0 ETH | 0.00091372 | ||||
| Claim Tokens | 7284200 | 2454 days ago | IN | 0 ETH | 0.00022286 | ||||
| Claim Tokens | 7284178 | 2454 days ago | IN | 0 ETH | 0.00022286 | ||||
| Claim Tokens | 7273820 | 2456 days ago | IN | 0 ETH | 0.00024514 | ||||
| Claim Tokens | 7270705 | 2457 days ago | IN | 0 ETH | 0.00040114 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SparkleAirDrop
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-12-05
*/
pragma solidity 0.4.25;
/*
▒ █ ▀ ▀ ▀ █ ▒ █ ▀ ▀ █ ░ █ ▀ ▀ █ ▒ █ ▀ ▀ █ ▒ █ ░ ▄ ▀ ▒ █ ░ ░ ░ ▒ █ ▀ ▀ ▀
░ ▀ ▀ ▀ ▄ ▄ ▒ █ ▄ ▄ █ ▒ █ ▄ ▄ █ ▒ █ ▄ ▄ ▀ ▒ █ ▀ ▄ ░ ▒ █ ░ ░ ░ ▒ █ ▀ ▀ ▀
▒ █ ▄ ▄ ▄ █ ▒ █ ░ ░ ░ ▒ █ ░ ▒ █ ▒ █ ░ ▒ █ ▒ █ ░ ▒ █ ▒ █ ▄ ▄ █ ▒ █ ▄ ▄ ▄
░ █ ▀ ▀ █ ▀ █ ▀ ▒ █ ▀ ▀ █ ▒ █ ▀ ▀ ▄ ▒ █ ▀ ▀ █ ▒ █ ▀ ▀ ▀ █ ▒ █ ▀ ▀ █
▒ █ ▄ ▄ █ ▒ █ ░ ▒ █ ▄ ▄ ▀ ▒ █ ░ ▒ █ ▒ █ ▄ ▄ ▀ ▒ █ ░ ░ ▒ █ ▒ █ ▄ ▄ █
▒ █ ░ ▒ █ ▄ █ ▄ ▒ █ ░ ▒ █ ▒ █ ▄ ▄ ▀ ▒ █ ░ ▒ █ ▒ █ ▄ ▄ ▄ █ ▒ █ ░ ░ ░
https://sparklemobile.io/
Contract can be paused and resumed, but that could also load/reload for later dates*
NOTES:
,_, _ In order to "claim tokens" you must first add our token contract address "0x4b7aD3a56810032782Afce12d7d27122bDb96efF"
[0,0]
|)__)
-”-”-
,_, _ Did you hear FREE Sparkle!
[0,0]
|)__)
-”-”- 1) Opposed to setting max number of airdrop winners I changed it to just give out the default airdrod reward to any
added address to the airdrop list(see note 3 below). When the tokens run out then the contract will not honor any
airdrop awards but can still be run and tokens added to continue using the contract for other giveaways.
,_, _ Follow us on Twitter!
[0,0]
|)__)
-”-”- 2) Added functions to allow adding address(es) with a different token reward than the standard 30 for those cases
where some addresses we may want them to have more of an airdrop than the default
,_, _ Like us on Facebook
[0,0]
|)__)
-”-”- 3) I tried to make sure that the general cases of people senting eth to the contract is reverted and not accepted
however I am not positive this can stop someone that is determined. With that said I did not add anything to withdraw
that potential eth so it would be stuck in this contract if someone happens to send the contract ETH...
,_, _ Join our Telegram and Discord!
[0,0]
|)__)
-”-”- 4)Contract was built with the intention of security in mind, all contracts are built with OpenZeppelin 2.0 latest release
https://github.com/OpenZeppelin/openzeppelin-solidity/releases
*/
contract Ownable {
address public ownerField;
constructor() public {
ownerField = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == ownerField, "Calling address not an owner");
_;
}
function transferOwnership(address newOwner) public onlyOwner {
ownerField = newOwner;
}
function owner() public view returns(address) {
return ownerField;
}
}
/**
* @title SafeMath
* @dev Math operations with safety checks that revert on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, reverts on 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-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0); // Solidity only automatically asserts when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two numbers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two numbers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function allowance(address owner, address spender) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
event Transfer(
address indexed from,
address indexed to,
uint256 value
);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
contract ERC20 is IERC20 {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowed;
uint256 private _totalSupply;
/**
* @dev Total number of tokens in existence
*/
function totalSupply() public view returns (uint256) {
return _totalSupply;
}
/**
* @dev Gets the balance of the specified address.
* @param owner The address to query the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address owner) public view returns (uint256) {
return _balances[owner];
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param owner address The address which owns the funds.
* @param spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(
address owner,
address spender
)
public
view
returns (uint256)
{
return _allowed[owner][spender];
}
/**
* @dev Transfer token for a specified address
* @param to The address to transfer to.
* @param value The amount to be transferred.
*/
function transfer(address to, uint256 value) public returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
* 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
* @param spender The address which will spend the funds.
* @param value The amount of tokens to be spent.
*/
function approve(address spender, uint256 value) public returns (bool) {
require(spender != address(0));
_allowed[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
/**
* @dev Transfer tokens from one address to another
* @param from address The address which you want to send tokens from
* @param to address The address which you want to transfer to
* @param value uint256 the amount of tokens to be transferred
*/
function transferFrom(
address from,
address to,
uint256 value
)
public
returns (bool)
{
require(value <= _allowed[from][msg.sender]);
_allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
_transfer(from, to, value);
return true;
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
* approve should be called when allowed_[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param spender The address which will spend the funds.
* @param addedValue The amount of tokens to increase the allowance by.
*/
function increaseAllowance(
address spender,
uint256 addedValue
)
public
returns (bool)
{
require(spender != address(0));
_allowed[msg.sender][spender] = (
_allowed[msg.sender][spender].add(addedValue));
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
* approve should be called when allowed_[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param spender The address which will spend the funds.
* @param subtractedValue The amount of tokens to decrease the allowance by.
*/
function decreaseAllowance(
address spender,
uint256 subtractedValue
)
public
returns (bool)
{
require(spender != address(0));
_allowed[msg.sender][spender] = (
_allowed[msg.sender][spender].sub(subtractedValue));
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
return true;
}
/**
* @dev Transfer token for a specified addresses
* @param from The address to transfer from.
* @param to The address to transfer to.
* @param value The amount to be transferred.
*/
function _transfer(address from, address to, uint256 value) internal {
require(value <= _balances[from], "Insignificant balance in from address");
require(to != address(0), "Invalid to address specified [0x0]");
_balances[from] = _balances[from].sub(value);
_balances[to] = _balances[to].add(value);
emit Transfer(from, to, value);
}
/**
* @dev Internal function that mints an amount of the token and assigns it to
* an account. This encapsulates the modification of balances such that the
* proper events are emitted.
* @param account The account that will receive the created tokens.
* @param value The amount that will be created.
*/
function _mint(address account, uint256 value) internal {
require(account != 0);
_totalSupply = _totalSupply.add(value);
_balances[account] = _balances[account].add(value);
emit Transfer(address(0), account, value);
}
/**
* @dev Internal function that burns an amount of the token of a given
* account.
* @param account The account whose tokens will be burnt.
* @param value The amount that will be burnt.
*/
function _burn(address account, uint256 value) internal {
require(account != 0);
require(value <= _balances[account]);
_totalSupply = _totalSupply.sub(value);
_balances[account] = _balances[account].sub(value);
emit Transfer(account, address(0), value);
}
/**
* @dev Internal function that burns an amount of the token of a given
* account, deducting from the sender's allowance for said account. Uses the
* internal burn function.
* @param account The account whose tokens will be burnt.
* @param value The amount that will be burnt.
*/
function _burnFrom(address account, uint256 value) internal {
require(value <= _allowed[account][msg.sender]);
// Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,
// this function needs to emit an event with the updated approval.
_allowed[account][msg.sender] = _allowed[account][msg.sender].sub(
value);
_burn(account, value);
}
}
contract Pausable is Ownable {
bool public paused;
modifier ifNotPaused {
require(!paused, "Contract is paused");
_;
}
modifier ifPaused {
require(paused, "Contract is not paused");
_;
}
// Called by the owner on emergency, triggers paused state
function pause() external onlyOwner {
paused = true;
}
// Called by the owner on end of emergency, returns to normal state
function resume() external onlyOwner ifPaused {
paused = false;
}
}
contract AirDropWinners is Ownable, Pausable {
using SafeMath for uint256;
struct Contribution {
uint256 tokenAmount;
bool wasClaimed;
bool isValid;
}
address public tokenAddress; //Smartcontract Address
uint256 public totalTokensClaimed; // Totaltokens claimed by winners (you do not set this the contract does as tokens are claimed)
uint256 public startTime; // airDrop Start time
mapping (address => Contribution) contributions;
constructor (address _token)
Ownable()
public {
tokenAddress = _token;
startTime = now;
}
/**
* @dev getTotalTokensRemaining() provides the function of returning the number of
* tokens currently left in the airdrop balance
*/
function getTotalTokensRemaining()
ifNotPaused
public
view
returns (uint256)
{
return ERC20(tokenAddress).balanceOf(this);
}
/**
* @dev isAddressInAirdropList() provides the function of testing if the
* specified address is in fact valid in the airdrop list
*/
function isAddressInAirdropList(address _addressToLookUp)
ifNotPaused
public
view
returns (bool)
{
Contribution storage contrib = contributions[_addressToLookUp];
return contrib.isValid;
}
/**
* @dev _bulkAddAddressesToAirdrop provides the function of adding addresses
* to the airdrop list with the default of 30 sparkle
*/
function bulkAddAddressesToAirDrop(address[] _addressesToAdd)
ifNotPaused
public
{
require(_addressesToAdd.length > 0);
for (uint i = 0; i < _addressesToAdd.length; i++) {
_addAddressToAirDrop(_addressesToAdd[i]);
}
}
/**
* @dev _bulkAddAddressesToAirdropWithAward provides the function of adding addresses
* to the airdrop list with a specific number of tokens
*/
function bulkAddAddressesToAirDropWithAward(address[] _addressesToAdd, uint256 _tokenAward)
ifNotPaused
public
{
require(_addressesToAdd.length > 0);
require(_tokenAward > 0);
for (uint i = 0; i < _addressesToAdd.length; i++) {
_addAddressToAirdropWithAward(_addressesToAdd[i], _tokenAward);
}
}
/**
* @dev _addAddressToAirdropWithAward provides the function of adding an address to the
* airdrop list with a specific number of tokens opposed to the default of
* 30 Sparkle
* @dev NOTE: _tokenAward will be converted so value only needs to be whole number
* Ex: 30 opposed to 30 * (10e7)
*/
function _addAddressToAirdropWithAward(address _addressToAdd, uint256 _tokenAward)
onlyOwner
internal
{
require(_addressToAdd != 0);
require(!isAddressInAirdropList(_addressToAdd));
require(_tokenAward > 0);
Contribution storage contrib = contributions[_addressToAdd];
contrib.tokenAmount = _tokenAward.mul(10e7);
contrib.wasClaimed = false;
contrib.isValid = true;
}
/**
* @dev _addAddressToAirdrop provides the function of adding an address to the
* airdrop list with the default of 30 sparkle
*/
function _addAddressToAirDrop(address _addressToAdd)
onlyOwner
internal
{
require(_addressToAdd != 0);
require(!isAddressInAirdropList(_addressToAdd));
Contribution storage contrib = contributions[_addressToAdd];
contrib.tokenAmount = 30 * 10e7;
contrib.wasClaimed = false;
contrib.isValid = true;
}
/**
* @dev bulkRemoveAddressesFromAirDrop provides the function of removing airdrop
* addresses from the airdrop list
*/
function bulkRemoveAddressesFromAirDrop(address[] _addressesToRemove)
ifNotPaused
public
{
require(_addressesToRemove.length > 0);
for (uint i = 0; i < _addressesToRemove.length; i++) {
_removeAddressFromAirDrop(_addressesToRemove[i]);
}
}
/**
* @dev _removeAddressFromAirDrop provides the function of removing an address from
* the airdrop
*/
function _removeAddressFromAirDrop(address _addressToRemove)
onlyOwner
internal
{
require(_addressToRemove != 0);
require(isAddressInAirdropList(_addressToRemove));
Contribution storage contrib = contributions[_addressToRemove];
contrib.tokenAmount = 0;
contrib.wasClaimed = false;
contrib.isValid = false;
}
function setAirdropAddressWasClaimed(address _addressToChange, bool _newWasClaimedValue)
ifNotPaused
onlyOwner
public
{
require(_addressToChange != 0);
require(isAddressInAirdropList(_addressToChange));
Contribution storage contrib = contributions[ _addressToChange];
require(contrib.isValid);
contrib.wasClaimed = _newWasClaimedValue;
}
/**
* @dev claimTokens() provides airdrop winners the function of collecting their tokens
*/
function claimTokens()
ifNotPaused
public {
Contribution storage contrib = contributions[msg.sender];
require(contrib.isValid, "Address not found in airdrop list");
require(contrib.tokenAmount > 0, "There are currently no tokens to claim.");
uint256 tempPendingTokens = contrib.tokenAmount;
contrib.tokenAmount = 0;
totalTokensClaimed = totalTokensClaimed.add(tempPendingTokens);
contrib.wasClaimed = true;
ERC20(tokenAddress).transfer(msg.sender, tempPendingTokens);
}
/**
* @dev () is the default payable function. Since this contract should not accept
* revert the transaction best as possible.
*/
function() payable public {
revert("ETH not accepted");
}
}
contract SparkleAirDrop is AirDropWinners {
using SafeMath for uint256;
address initTokenContractAddress = 0x4b7aD3a56810032782Afce12d7d27122bDb96efF;
constructor()
AirDropWinners(initTokenContractAddress)
public
{}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalTokensRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownerField","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addressToLookUp","type":"address"}],"name":"isAddressInAirdropList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensClaimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressesToRemove","type":"address[]"}],"name":"bulkRemoveAddressesFromAirDrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressesToAdd","type":"address[]"},{"name":"_tokenAward","type":"uint256"}],"name":"bulkAddAddressesToAirDropWithAward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addressesToAdd","type":"address[]"}],"name":"bulkAddAddressesToAirDrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressToChange","type":"address"},{"name":"_newWasClaimedValue","type":"bool"}],"name":"setAirdropAddressWasClaimed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]Contract Creation Code
608060405260058054600160a060020a031916734b7ad3a56810032782afce12d7d27122bdb96eff17905534801561003657600080fd5b5060055460008054600160a060020a0319908116331790915560018054909116600160a060020a0390921691909117905542600355610f0c8061007a6000396000f3006080604052600436106100e55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663046f7da281146101355780630e2379f71461014c57806343672fb81461017357806348c54b9d146101a457806356bbac14146101b95780635912c046146101ee5780635c975abb146102035780636f5285921461021857806378e979251461026d5780637d9a4bac146102825780638456cb59146102d95780638729f7ac146102ee5780638da5cb5b146103435780639d76ea5814610358578063aa847dcf1461036d578063f2fde38b14610393575b6040805160e560020a62461bcd02815260206004820152601060248201527f455448206e6f7420616363657074656400000000000000000000000000000000604482015290519081900360640190fd5b34801561014157600080fd5b5061014a6103b4565b005b34801561015857600080fd5b50610161610487565b60408051918252519081900360200190f35b34801561017f57600080fd5b5061018861056f565b60408051600160a060020a039092168252519081900360200190f35b3480156101b057600080fd5b5061014a61057e565b3480156101c557600080fd5b506101da600160a060020a03600435166107b2565b604080519115158252519081900360200190f35b3480156101fa57600080fd5b5061016161082d565b34801561020f57600080fd5b506101da610833565b34801561022457600080fd5b506040805160206004803580820135838102808601850190965280855261014a953695939460249493850192918291850190849080828437509497506108439650505050505050565b34801561027957600080fd5b506101616108db565b34801561028e57600080fd5b506040805160206004803580820135838102808601850190965280855261014a9536959394602494938501929182918501908490808284375094975050933594506108e19350505050565b3480156102e557600080fd5b5061014a610988565b3480156102fa57600080fd5b506040805160206004803580820135838102808601850190965280855261014a953695939460249493850192918291850190849080828437509497506109fe9650505050505050565b34801561034f57600080fd5b50610188610a92565b34801561036457600080fd5b50610188610aa1565b34801561037957600080fd5b5061014a600160a060020a03600435166024351515610ab0565b34801561039f57600080fd5b5061014a600160a060020a0360043516610bc0565b600054600160a060020a03163314610404576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610467576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e7472616374206973206e6f742070617573656400000000000000000000604482015290519081900360640190fd5b6000805474ff000000000000000000000000000000000000000019169055565b6000805460a060020a900460ff16156104d8576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561053e57600080fd5b505af1158015610552573d6000803e3d6000fd5b505050506040513d602081101561056857600080fd5b5051905090565b600054600160a060020a031681565b60008054819060a060020a900460ff16156105d1576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b3360009081526004602052604090206001810154909250610100900460ff16151561066c576040805160e560020a62461bcd02815260206004820152602160248201527f41646472657373206e6f7420666f756e6420696e2061697264726f70206c697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b81546000106106eb576040805160e560020a62461bcd02815260206004820152602760248201527f5468657265206172652063757272656e746c79206e6f20746f6b656e7320746f60448201527f20636c61696d2e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50805460008255600254610705908263ffffffff610c3f16565b6002556001828101805460ff19168217905554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050506040513d60208110156107ac57600080fd5b50505050565b60008054819060a060020a900460ff1615610805576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b5050600160a060020a0316600090815260046020526040902060010154610100900460ff1690565b60025481565b60005460a060020a900460ff1681565b6000805460a060020a900460ff1615610894576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b81516000106108a257600080fd5b5060005b81518110156108d7576108cf82828151811015156108c057fe5b90602001906020020151610c5c565b6001016108a6565b5050565b60035481565b6000805460a060020a900460ff1615610932576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b825160001061094057600080fd5b6000821161094d57600080fd5b5060005b82518110156109835761097b838281518110151561096b57fe5b9060200190602002015183610cff565b600101610951565b505050565b600054600160a060020a031633146109d8576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a179055565b6000805460a060020a900460ff1615610a4f576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b8151600010610a5d57600080fd5b5060005b81518110156108d757610a8a8282815181101515610a7b57fe5b90602001906020020151610dc8565b600101610a61565b600054600160a060020a031690565b600154600160a060020a031681565b6000805460a060020a900460ff1615610b01576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b600054600160a060020a03163314610b51576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0383161515610b6657600080fd5b610b6f836107b2565b1515610b7a57600080fd5b50600160a060020a03821660009081526004602052604090206001810154610100900460ff161515610bab57600080fd5b600101805460ff191691151591909117905550565b600054600160a060020a03163314610c10576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082820183811015610c5157600080fd5b8091505b5092915050565b60008054600160a060020a03163314610cad576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0382161515610cc257600080fd5b610ccb826107b2565b1515610cd657600080fd5b50600160a060020a03166000908152600460205260408120908155600101805461ffff19169055565b60008054600160a060020a03163314610d50576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0383161515610d6557600080fd5b610d6e836107b2565b15610d7857600080fd5b60008211610d8557600080fd5b50600160a060020a0382166000908152600460205260409020610db2826305f5e10063ffffffff610e7216565b8155600101805461ffff19166101001790555050565b60008054600160a060020a03163314610e19576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0382161515610e2e57600080fd5b610e37826107b2565b15610e4157600080fd5b50600160a060020a0316600090815260046020526040902063b2d05e008155600101805461ffff1916610100179055565b600080831515610e855760009150610c55565b50828202828482811515610e9557fe5b0414610c5157600080fd0043616c6c696e672061646472657373206e6f7420616e206f776e657200000000436f6e7472616374206973207061757365640000000000000000000000000000a165627a7a72305820a3ad412f8d55113db356bb9eeeb4e6c94debf29d915de7e12ab920f863c180390029
Deployed Bytecode
0x6080604052600436106100e55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663046f7da281146101355780630e2379f71461014c57806343672fb81461017357806348c54b9d146101a457806356bbac14146101b95780635912c046146101ee5780635c975abb146102035780636f5285921461021857806378e979251461026d5780637d9a4bac146102825780638456cb59146102d95780638729f7ac146102ee5780638da5cb5b146103435780639d76ea5814610358578063aa847dcf1461036d578063f2fde38b14610393575b6040805160e560020a62461bcd02815260206004820152601060248201527f455448206e6f7420616363657074656400000000000000000000000000000000604482015290519081900360640190fd5b34801561014157600080fd5b5061014a6103b4565b005b34801561015857600080fd5b50610161610487565b60408051918252519081900360200190f35b34801561017f57600080fd5b5061018861056f565b60408051600160a060020a039092168252519081900360200190f35b3480156101b057600080fd5b5061014a61057e565b3480156101c557600080fd5b506101da600160a060020a03600435166107b2565b604080519115158252519081900360200190f35b3480156101fa57600080fd5b5061016161082d565b34801561020f57600080fd5b506101da610833565b34801561022457600080fd5b506040805160206004803580820135838102808601850190965280855261014a953695939460249493850192918291850190849080828437509497506108439650505050505050565b34801561027957600080fd5b506101616108db565b34801561028e57600080fd5b506040805160206004803580820135838102808601850190965280855261014a9536959394602494938501929182918501908490808284375094975050933594506108e19350505050565b3480156102e557600080fd5b5061014a610988565b3480156102fa57600080fd5b506040805160206004803580820135838102808601850190965280855261014a953695939460249493850192918291850190849080828437509497506109fe9650505050505050565b34801561034f57600080fd5b50610188610a92565b34801561036457600080fd5b50610188610aa1565b34801561037957600080fd5b5061014a600160a060020a03600435166024351515610ab0565b34801561039f57600080fd5b5061014a600160a060020a0360043516610bc0565b600054600160a060020a03163314610404576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610467576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e7472616374206973206e6f742070617573656400000000000000000000604482015290519081900360640190fd5b6000805474ff000000000000000000000000000000000000000019169055565b6000805460a060020a900460ff16156104d8576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561053e57600080fd5b505af1158015610552573d6000803e3d6000fd5b505050506040513d602081101561056857600080fd5b5051905090565b600054600160a060020a031681565b60008054819060a060020a900460ff16156105d1576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b3360009081526004602052604090206001810154909250610100900460ff16151561066c576040805160e560020a62461bcd02815260206004820152602160248201527f41646472657373206e6f7420666f756e6420696e2061697264726f70206c697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b81546000106106eb576040805160e560020a62461bcd02815260206004820152602760248201527f5468657265206172652063757272656e746c79206e6f20746f6b656e7320746f60448201527f20636c61696d2e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50805460008255600254610705908263ffffffff610c3f16565b6002556001828101805460ff19168217905554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050506040513d60208110156107ac57600080fd5b50505050565b60008054819060a060020a900460ff1615610805576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b5050600160a060020a0316600090815260046020526040902060010154610100900460ff1690565b60025481565b60005460a060020a900460ff1681565b6000805460a060020a900460ff1615610894576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b81516000106108a257600080fd5b5060005b81518110156108d7576108cf82828151811015156108c057fe5b90602001906020020151610c5c565b6001016108a6565b5050565b60035481565b6000805460a060020a900460ff1615610932576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b825160001061094057600080fd5b6000821161094d57600080fd5b5060005b82518110156109835761097b838281518110151561096b57fe5b9060200190602002015183610cff565b600101610951565b505050565b600054600160a060020a031633146109d8576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a179055565b6000805460a060020a900460ff1615610a4f576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b8151600010610a5d57600080fd5b5060005b81518110156108d757610a8a8282815181101515610a7b57fe5b90602001906020020151610dc8565b600101610a61565b600054600160a060020a031690565b600154600160a060020a031681565b6000805460a060020a900460ff1615610b01576040805160e560020a62461bcd0281526020600482015260126024820152600080516020610ec1833981519152604482015290519081900360640190fd5b600054600160a060020a03163314610b51576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0383161515610b6657600080fd5b610b6f836107b2565b1515610b7a57600080fd5b50600160a060020a03821660009081526004602052604090206001810154610100900460ff161515610bab57600080fd5b600101805460ff191691151591909117905550565b600054600160a060020a03163314610c10576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082820183811015610c5157600080fd5b8091505b5092915050565b60008054600160a060020a03163314610cad576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0382161515610cc257600080fd5b610ccb826107b2565b1515610cd657600080fd5b50600160a060020a03166000908152600460205260408120908155600101805461ffff19169055565b60008054600160a060020a03163314610d50576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0383161515610d6557600080fd5b610d6e836107b2565b15610d7857600080fd5b60008211610d8557600080fd5b50600160a060020a0382166000908152600460205260409020610db2826305f5e10063ffffffff610e7216565b8155600101805461ffff19166101001790555050565b60008054600160a060020a03163314610e19576040805160e560020a62461bcd02815260206004820152601c6024820152600080516020610ea1833981519152604482015290519081900360640190fd5b600160a060020a0382161515610e2e57600080fd5b610e37826107b2565b15610e4157600080fd5b50600160a060020a0316600090815260046020526040902063b2d05e008155600101805461ffff1916610100179055565b600080831515610e855760009150610c55565b50828202828482811515610e9557fe5b0414610c5157600080fd0043616c6c696e672061646472657373206e6f7420616e206f776e657200000000436f6e7472616374206973207061757365640000000000000000000000000000a165627a7a72305820a3ad412f8d55113db356bb9eeeb4e6c94debf29d915de7e12ab920f863c180390029
Swarm Source
bzzr://a3ad412f8d55113db356bb9eeeb4e6c94debf29d915de7e12ab920f863c18039
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.