Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 218 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Allocation | 11962679 | 1395 days ago | IN | 0 ETH | 0.00679821 | ||||
Claim Allocation | 11904827 | 1404 days ago | IN | 0 ETH | 0.01030176 | ||||
Claim Allocation | 11904710 | 1404 days ago | IN | 0 ETH | 0.01133193 | ||||
Claim Allocation | 11904457 | 1404 days ago | IN | 0 ETH | 0.01493755 | ||||
Claim Allocation | 11899812 | 1405 days ago | IN | 0 ETH | 0.00927288 | ||||
Claim Allocation | 11896820 | 1405 days ago | IN | 0 ETH | 0.01725786 | ||||
Claim Allocation | 11885016 | 1407 days ago | IN | 0 ETH | 0.01193287 | ||||
Claim Allocation | 11882679 | 1407 days ago | IN | 0 ETH | 0.01348311 | ||||
Claim Allocation | 11882534 | 1407 days ago | IN | 0 ETH | 0.01296486 | ||||
Claim Allocation | 11882241 | 1408 days ago | IN | 0 ETH | 0.01793972 | ||||
Claim Allocation | 11881813 | 1408 days ago | IN | 0 ETH | 0.01656866 | ||||
Claim Allocation | 11881568 | 1408 days ago | IN | 0 ETH | 0.02034597 | ||||
Claim Allocation | 11881512 | 1408 days ago | IN | 0 ETH | 0.01382346 | ||||
Claim Allocation | 11881496 | 1408 days ago | IN | 0 ETH | 0.01965919 | ||||
Claim Allocation | 11881476 | 1408 days ago | IN | 0 ETH | 0.01854316 | ||||
Claim Allocation | 11881433 | 1408 days ago | IN | 0 ETH | 0.01708614 | ||||
Claim Allocation | 11881255 | 1408 days ago | IN | 0 ETH | 0.01219212 | ||||
Claim Allocation | 11881239 | 1408 days ago | IN | 0 ETH | 0.0104855 | ||||
Claim Allocation | 11881018 | 1408 days ago | IN | 0 ETH | 0.01176117 | ||||
Claim Allocation | 11880979 | 1408 days ago | IN | 0 ETH | 0.01253556 | ||||
Claim Allocation | 11880836 | 1408 days ago | IN | 0 ETH | 0.0105593 | ||||
Claim Allocation | 11880816 | 1408 days ago | IN | 0 ETH | 0.01056078 | ||||
Claim Allocation | 11880779 | 1408 days ago | IN | 0 ETH | 0.012879 | ||||
Claim Allocation | 11880765 | 1408 days ago | IN | 0 ETH | 0.0103032 | ||||
Claim Allocation | 11880730 | 1408 days ago | IN | 0 ETH | 0.01227635 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
WhitelistSale
Compiler Version
v0.5.16+commit.9c3226ce
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.5.16; pragma experimental ABIEncoderV2; import {Ownable} from "../lib/Ownable.sol"; import {SafeMath} from "../lib/SafeMath.sol"; import {SafeERC20} from "../lib/SafeERC20.sol"; import {IERC20} from "../token/IERC20.sol"; contract WhitelistSale is Ownable { /* ========== Libraries ========== */ using SafeMath for uint256; using SafeERC20 for IERC20; /* ========== Struct ========== */ struct Participant { uint256 allocation; uint256 spent; } /* ========== Variables ========== */ IERC20 public currency; mapping (address => Participant) public participants; uint256 public totalHardCap; uint256 public totalRaised; bool public saleOpen; /* ========== Events ========== */ event AllocationClaimed(address user, uint256 amount); event AllocationSet(address user, uint256 amount); event SaleStatusUpdated(bool status); event HardCapUpdated(uint256 amount); /* ========== Constructor ========== */ constructor(address currencyAddress) public { currency = IERC20(currencyAddress); saleOpen = false; } /* ========== Public Functions ========== */ function claimAllocation( uint256 amount ) external { // Get their total spend till date uint256 participantSpent = participants[msg.sender].spent.add(amount); uint256 newTotalRaised = totalRaised.add(amount); require( participantSpent <= participants[msg.sender].allocation, "You cannot spend more than your allocation" ); require( saleOpen, "The sale is not currently open" ); require( newTotalRaised <= totalHardCap, "You cannot purchase more than the hard cap" ); // Increase the user's spend amount otherwise they can keep purchasing participants[msg.sender].spent = participantSpent; totalRaised = newTotalRaised; // Transfer the funds to the owner, no funds will be stored in this contract directly. currency.safeTransferFrom( msg.sender, owner(), amount ); emit AllocationClaimed(msg.sender, amount); } /* ========== Admin Functions ========== */ function setHardCap(uint256 amount) external onlyOwner { totalHardCap = amount; emit HardCapUpdated(amount); } function setAllocation( address[] calldata users, uint256[] calldata allocations ) external onlyOwner { // If there is a mismatch something hasn't been done correctly require( users.length == allocations.length, "The users and amounts do not match" ); for (uint256 i = 0; i < users.length; i++) { participants[users[i]].allocation = allocations[i]; emit AllocationSet(users[i], allocations[i]); } } function updateSaleStatus( bool status ) external onlyOwner { require( saleOpen != status, "Cannot re-set the same status" ); saleOpen = status; emit SaleStatusUpdated(status); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.5.16; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } /** * @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(_owner == msg.sender, "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public 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 { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
pragma solidity ^0.5.16; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.5.16; import {IERC20} from "../token/IERC20.sol"; // helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false library SafeERC20 { function safeApprove( IERC20 token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); /* solium-disable-next-line */ (bool success, bytes memory data) = address(token).call( abi.encodeWithSelector(0x095ea7b3, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "SafeERC20: APPROVE_FAILED" ); } function safeTransfer( IERC20 token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); /* solium-disable-next-line */ (bool success, bytes memory data) = address(token).call( abi.encodeWithSelector(0xa9059cbb, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "SafeERC20: TRANSFER_FAILED" ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); /* solium-disable-next-line */ (bool success, bytes memory data) = address(token).call( abi.encodeWithSelector( 0x23b872dd, from, to, value ) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "SafeERC20: TRANSFER_FROM_FAILED" ); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.5.16; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer( address recipient, uint256 amount ) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve( address spender, uint256 amount ) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer( address indexed from, address indexed to, uint256 value ); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); }
{ "metadata": { "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"currencyAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AllocationClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AllocationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"HardCapUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SaleStatusUpdated","type":"event"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"participants","outputs":[{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"uint256","name":"spent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint256[]","name":"allocations","type":"uint256[]"}],"name":"setAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setHardCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalHardCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"updateSaleStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610eb2380380610eb283398101604081905261002f916100ae565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b03929092169190911790556005805460ff191690556100fc565b80516100a8816100e5565b92915050565b6000602082840312156100c057600080fd5b60006100cc848461009d565b949350505050565b60006001600160a01b0382166100a8565b6100ee816100d4565b81146100f957600080fd5b50565b610da78061010b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461013b57806399288dbb14610150578063c5c4744c14610165578063d18d944b1461016d578063e5a6b10f14610180578063f2fde38b14610195576100b4565b806309e69ede146100b95780630a088949146100e35780633102b21a146100f857806345d0c7551461010b57806367a3eb651461011e578063715018a614610133575b600080fd5b6100cc6100c73660046107fb565b6101a8565b6040516100da929190610cba565b60405180910390f35b6100f66100f1366004610891565b6101c1565b005b6100f6610106366004610821565b610266565b6100f66101193660046108cd565b610386565b6101266104b6565b6040516100da9190610cac565b6100f66104bc565b610143610530565b6040516100da9190610ba1565b61015861053f565b6040516100da9190610c00565b610126610548565b6100f661017b3660046108cd565b61054e565b6101886105ad565b6040516100da9190610c0e565b6100f66101a33660046107fb565b6105bc565b6002602052600090815260409020805460019091015482565b6000546001600160a01b031633146101f45760405162461bcd60e51b81526004016101eb90610c7c565b60405180910390fd5b60055460ff161515811515141561021d5760405162461bcd60e51b81526004016101eb90610c8c565b6005805460ff19168215151790556040517fc75413bb803e9f5f8572b10a8262838386a1bc5db1743ff399db4f5c32f4691e9061025b908390610c00565b60405180910390a150565b6000546001600160a01b031633146102905760405162461bcd60e51b81526004016101eb90610c7c565b8281146102af5760405162461bcd60e51b81526004016101eb90610c1c565b60005b8381101561037f578282828181106102c657fe5b90506020020135600260008787858181106102dd57fe5b90506020020160206102f291908101906107fb565b6001600160a01b031681526020810191909152604001600020557fedfc909d0ab2a1625b7911d925efbd8200cdd99d4c7ba44e720328b17879f0b385858381811061033957fe5b905060200201602061034e91908101906107fb565b84848481811061035a57fe5b9050602002013560405161036f929190610bf2565b60405180910390a16001016102b2565b5050505050565b336000908152600260205260408120600101546103a9908363ffffffff61066716565b905060006103c28360045461066790919063ffffffff16565b336000908152600260205260409020549091508211156103f45760405162461bcd60e51b81526004016101eb90610c4c565b60055460ff166104165760405162461bcd60e51b81526004016101eb90610c5c565b6003548111156104385760405162461bcd60e51b81526004016101eb90610c9c565b33600081815260026020526040902060010183905560048290556104789061045e610530565b6001546001600160a01b031691908663ffffffff61069516565b7f1747857504b94e5be51b1fe4b467e5d2daa63a0d21577089a13fa99f9414dcc833846040516104a9929190610baf565b60405180910390a1505050565b60035481565b6000546001600160a01b031633146104e65760405162461bcd60e51b81526004016101eb90610c7c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60055460ff1681565b60045481565b6000546001600160a01b031633146105785760405162461bcd60e51b81526004016101eb90610c7c565b60038190556040517f898844af0a81a679f78c4e9bcc92363a6d161c41eb2398e0cf0196c156d05e8d9061025b908390610cac565b6001546001600160a01b031681565b6000546001600160a01b031633146105e65760405162461bcd60e51b81526004016101eb90610c7c565b6001600160a01b03811661060c5760405162461bcd60e51b81526004016101eb90610c2c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008282018381101561068c5760405162461bcd60e51b81526004016101eb90610c3c565b90505b92915050565b60006060856001600160a01b03166323b872dd8686866040516024016106bd93929190610bca565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516106f69190610b8e565b6000604051808303816000865af19150503d8060008114610733576040519150601f19603f3d011682016040523d82523d6000602084013e610738565b606091505b509150915081801561076257508051158061076257508080602001905161076291908101906108af565b61077e5760405162461bcd60e51b81526004016101eb90610c6c565b505050505050565b803561068f81610d3b565b60008083601f8401126107a357600080fd5b50813567ffffffffffffffff8111156107bb57600080fd5b6020830191508360208202830111156107d357600080fd5b9250929050565b803561068f81610d52565b805161068f81610d52565b803561068f81610d5b565b60006020828403121561080d57600080fd5b60006108198484610786565b949350505050565b6000806000806040858703121561083757600080fd5b843567ffffffffffffffff81111561084e57600080fd5b61085a87828801610791565b9450945050602085013567ffffffffffffffff81111561087957600080fd5b61088587828801610791565b95989497509550505050565b6000602082840312156108a357600080fd5b600061081984846107da565b6000602082840312156108c157600080fd5b600061081984846107e5565b6000602082840312156108df57600080fd5b600061081984846107f0565b6108f481610cf9565b82525050565b6108f481610cda565b6108f481610ce5565b600061091782610cc8565b6109218185610ccc565b9350610931818560208601610d0b565b9290920192915050565b6108f481610d00565b6000610951602283610cd1565b7f54686520757365727320616e6420616d6f756e747320646f206e6f74206d61748152610c6d60f31b602082015260400192915050565b6000610995602683610cd1565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b60006109dd601b83610cd1565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610a16602a83610cd1565b7f596f752063616e6e6f74207370656e64206d6f7265207468616e20796f75722081526930b63637b1b0ba34b7b760b11b602082015260400192915050565b6000610a62601e83610cd1565b7f5468652073616c65206973206e6f742063757272656e746c79206f70656e0000815260200192915050565b6000610a9b601f83610cd1565b7f5361666545524332303a205452414e534645525f46524f4d5f4641494c454400815260200192915050565b6000610ad4602083610cd1565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000610b0d601d83610cd1565b7f43616e6e6f742072652d736574207468652073616d6520737461747573000000815260200192915050565b6000610b46602a83610cd1565b7f596f752063616e6e6f74207075726368617365206d6f7265207468616e2074688152690652068617264206361760b41b602082015260400192915050565b6108f481610cf6565b6000610b9a828461090c565b9392505050565b6020810161068f82846108fa565b60408101610bbd82856108eb565b610b9a6020830184610b85565b60608101610bd882866108fa565b610be560208301856108fa565b6108196040830184610b85565b60408101610bbd82856108fa565b6020810161068f8284610903565b6020810161068f828461093b565b6020808252810161068f81610944565b6020808252810161068f81610988565b6020808252810161068f816109d0565b6020808252810161068f81610a09565b6020808252810161068f81610a55565b6020808252810161068f81610a8e565b6020808252810161068f81610ac7565b6020808252810161068f81610b00565b6020808252810161068f81610b39565b6020810161068f8284610b85565b60408101610bbd8285610b85565b5190565b919050565b90815260200190565b600061068f82610cea565b151590565b6001600160a01b031690565b90565b600061068f825b600061068f82610cda565b60005b83811015610d26578181015183820152602001610d0e565b83811115610d35576000848401525b50505050565b610d4481610cda565b8114610d4f57600080fd5b50565b610d4481610ce5565b610d4481610cf656fea365627a7a7231582080cdad1570d0f45a0af73cde729db03841fe33630a8d2ebad3a3b506a62097836c6578706572696d656e74616cf564736f6c63430005100040000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461013b57806399288dbb14610150578063c5c4744c14610165578063d18d944b1461016d578063e5a6b10f14610180578063f2fde38b14610195576100b4565b806309e69ede146100b95780630a088949146100e35780633102b21a146100f857806345d0c7551461010b57806367a3eb651461011e578063715018a614610133575b600080fd5b6100cc6100c73660046107fb565b6101a8565b6040516100da929190610cba565b60405180910390f35b6100f66100f1366004610891565b6101c1565b005b6100f6610106366004610821565b610266565b6100f66101193660046108cd565b610386565b6101266104b6565b6040516100da9190610cac565b6100f66104bc565b610143610530565b6040516100da9190610ba1565b61015861053f565b6040516100da9190610c00565b610126610548565b6100f661017b3660046108cd565b61054e565b6101886105ad565b6040516100da9190610c0e565b6100f66101a33660046107fb565b6105bc565b6002602052600090815260409020805460019091015482565b6000546001600160a01b031633146101f45760405162461bcd60e51b81526004016101eb90610c7c565b60405180910390fd5b60055460ff161515811515141561021d5760405162461bcd60e51b81526004016101eb90610c8c565b6005805460ff19168215151790556040517fc75413bb803e9f5f8572b10a8262838386a1bc5db1743ff399db4f5c32f4691e9061025b908390610c00565b60405180910390a150565b6000546001600160a01b031633146102905760405162461bcd60e51b81526004016101eb90610c7c565b8281146102af5760405162461bcd60e51b81526004016101eb90610c1c565b60005b8381101561037f578282828181106102c657fe5b90506020020135600260008787858181106102dd57fe5b90506020020160206102f291908101906107fb565b6001600160a01b031681526020810191909152604001600020557fedfc909d0ab2a1625b7911d925efbd8200cdd99d4c7ba44e720328b17879f0b385858381811061033957fe5b905060200201602061034e91908101906107fb565b84848481811061035a57fe5b9050602002013560405161036f929190610bf2565b60405180910390a16001016102b2565b5050505050565b336000908152600260205260408120600101546103a9908363ffffffff61066716565b905060006103c28360045461066790919063ffffffff16565b336000908152600260205260409020549091508211156103f45760405162461bcd60e51b81526004016101eb90610c4c565b60055460ff166104165760405162461bcd60e51b81526004016101eb90610c5c565b6003548111156104385760405162461bcd60e51b81526004016101eb90610c9c565b33600081815260026020526040902060010183905560048290556104789061045e610530565b6001546001600160a01b031691908663ffffffff61069516565b7f1747857504b94e5be51b1fe4b467e5d2daa63a0d21577089a13fa99f9414dcc833846040516104a9929190610baf565b60405180910390a1505050565b60035481565b6000546001600160a01b031633146104e65760405162461bcd60e51b81526004016101eb90610c7c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60055460ff1681565b60045481565b6000546001600160a01b031633146105785760405162461bcd60e51b81526004016101eb90610c7c565b60038190556040517f898844af0a81a679f78c4e9bcc92363a6d161c41eb2398e0cf0196c156d05e8d9061025b908390610cac565b6001546001600160a01b031681565b6000546001600160a01b031633146105e65760405162461bcd60e51b81526004016101eb90610c7c565b6001600160a01b03811661060c5760405162461bcd60e51b81526004016101eb90610c2c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008282018381101561068c5760405162461bcd60e51b81526004016101eb90610c3c565b90505b92915050565b60006060856001600160a01b03166323b872dd8686866040516024016106bd93929190610bca565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516106f69190610b8e565b6000604051808303816000865af19150503d8060008114610733576040519150601f19603f3d011682016040523d82523d6000602084013e610738565b606091505b509150915081801561076257508051158061076257508080602001905161076291908101906108af565b61077e5760405162461bcd60e51b81526004016101eb90610c6c565b505050505050565b803561068f81610d3b565b60008083601f8401126107a357600080fd5b50813567ffffffffffffffff8111156107bb57600080fd5b6020830191508360208202830111156107d357600080fd5b9250929050565b803561068f81610d52565b805161068f81610d52565b803561068f81610d5b565b60006020828403121561080d57600080fd5b60006108198484610786565b949350505050565b6000806000806040858703121561083757600080fd5b843567ffffffffffffffff81111561084e57600080fd5b61085a87828801610791565b9450945050602085013567ffffffffffffffff81111561087957600080fd5b61088587828801610791565b95989497509550505050565b6000602082840312156108a357600080fd5b600061081984846107da565b6000602082840312156108c157600080fd5b600061081984846107e5565b6000602082840312156108df57600080fd5b600061081984846107f0565b6108f481610cf9565b82525050565b6108f481610cda565b6108f481610ce5565b600061091782610cc8565b6109218185610ccc565b9350610931818560208601610d0b565b9290920192915050565b6108f481610d00565b6000610951602283610cd1565b7f54686520757365727320616e6420616d6f756e747320646f206e6f74206d61748152610c6d60f31b602082015260400192915050565b6000610995602683610cd1565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b60006109dd601b83610cd1565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610a16602a83610cd1565b7f596f752063616e6e6f74207370656e64206d6f7265207468616e20796f75722081526930b63637b1b0ba34b7b760b11b602082015260400192915050565b6000610a62601e83610cd1565b7f5468652073616c65206973206e6f742063757272656e746c79206f70656e0000815260200192915050565b6000610a9b601f83610cd1565b7f5361666545524332303a205452414e534645525f46524f4d5f4641494c454400815260200192915050565b6000610ad4602083610cd1565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000610b0d601d83610cd1565b7f43616e6e6f742072652d736574207468652073616d6520737461747573000000815260200192915050565b6000610b46602a83610cd1565b7f596f752063616e6e6f74207075726368617365206d6f7265207468616e2074688152690652068617264206361760b41b602082015260400192915050565b6108f481610cf6565b6000610b9a828461090c565b9392505050565b6020810161068f82846108fa565b60408101610bbd82856108eb565b610b9a6020830184610b85565b60608101610bd882866108fa565b610be560208301856108fa565b6108196040830184610b85565b60408101610bbd82856108fa565b6020810161068f8284610903565b6020810161068f828461093b565b6020808252810161068f81610944565b6020808252810161068f81610988565b6020808252810161068f816109d0565b6020808252810161068f81610a09565b6020808252810161068f81610a55565b6020808252810161068f81610a8e565b6020808252810161068f81610ac7565b6020808252810161068f81610b00565b6020808252810161068f81610b39565b6020810161068f8284610b85565b60408101610bbd8285610b85565b5190565b919050565b90815260200190565b600061068f82610cea565b151590565b6001600160a01b031690565b90565b600061068f825b600061068f82610cda565b60005b83811015610d26578181015183820152602001610d0e565b83811115610d35576000848401525b50505050565b610d4481610cda565b8114610d4f57600080fd5b50565b610d4481610ce5565b610d4481610cf656fea365627a7a7231582080cdad1570d0f45a0af73cde729db03841fe33630a8d2ebad3a3b506a62097836c6578706572696d656e74616cf564736f6c63430005100040
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
-----Decoded View---------------
Arg [0] : currencyAddress (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.