More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 893 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 12803451 | 1290 days ago | IN | 0 ETH | 0.00028995 | ||||
Transfer | 11795574 | 1446 days ago | IN | 0.05 ETH | 0.004767 | ||||
Burn Tokens | 11465687 | 1496 days ago | IN | 0 ETH | 0.00395542 | ||||
Transfer | 11465383 | 1496 days ago | IN | 2.5 ETH | 0.00584827 | ||||
Transfer | 11465216 | 1496 days ago | IN | 0.5 ETH | 0.00725186 | ||||
Set Rate | 11464649 | 1496 days ago | IN | 0 ETH | 0.0053294 | ||||
Transfer | 11464634 | 1496 days ago | IN | 1 ETH | 0.01046047 | ||||
Set Rate | 11464557 | 1496 days ago | IN | 0 ETH | 0.0039153 | ||||
Transfer | 11464359 | 1496 days ago | IN | 3.88 ETH | 0.00503816 | ||||
Transfer | 11464347 | 1496 days ago | IN | 0.00648431 ETH | 0.00258354 | ||||
Transfer | 11464339 | 1496 days ago | IN | 0.00656853 ETH | 0.00221036 | ||||
Transfer | 11464074 | 1496 days ago | IN | 1.1 ETH | 0.00333778 | ||||
Transfer | 11463747 | 1497 days ago | IN | 2.9 ETH | 0.00578589 | ||||
Transfer | 11463404 | 1497 days ago | IN | 10 ETH | 0.00338816 | ||||
Transfer | 11461060 | 1497 days ago | IN | 2 ETH | 0.00389885 | ||||
Set Rate | 11459528 | 1497 days ago | IN | 0 ETH | 0.00178425 | ||||
Transfer | 11458404 | 1497 days ago | IN | 0.5 ETH | 0.00683109 | ||||
Transfer | 11458322 | 1497 days ago | IN | 0.5 ETH | 0.00771972 | ||||
Transfer | 11457823 | 1497 days ago | IN | 2 ETH | 0.00472327 | ||||
Transfer | 11457652 | 1497 days ago | IN | 8 ETH | 0.00623816 | ||||
Transfer | 11456422 | 1498 days ago | IN | 2 ETH | 0.0050685 | ||||
Transfer | 11456371 | 1498 days ago | IN | 8 ETH | 0.00377862 | ||||
Set Rate | 11456157 | 1498 days ago | IN | 0 ETH | 0.00217354 | ||||
Transfer | 11453762 | 1498 days ago | IN | 0.2 ETH | 0.000735 | ||||
Transfer | 11453744 | 1498 days ago | IN | 2 ETH | 0.00350896 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11465383 | 1496 days ago | 2.5 ETH | ||||
11465216 | 1496 days ago | 0.5 ETH | ||||
11464634 | 1496 days ago | 1 ETH | ||||
11464359 | 1496 days ago | 3.88 ETH | ||||
11464074 | 1496 days ago | 1.1 ETH | ||||
11463747 | 1497 days ago | 2.9 ETH | ||||
11463404 | 1497 days ago | 10 ETH | ||||
11461060 | 1497 days ago | 2 ETH | ||||
11458404 | 1497 days ago | 0.5 ETH | ||||
11458322 | 1497 days ago | 0.5 ETH | ||||
11457823 | 1497 days ago | 2 ETH | ||||
11457652 | 1497 days ago | 8 ETH | ||||
11456422 | 1498 days ago | 2 ETH | ||||
11456371 | 1498 days ago | 8 ETH | ||||
11453744 | 1498 days ago | 2 ETH | ||||
11453733 | 1498 days ago | 2.06533854 ETH | ||||
11452194 | 1498 days ago | 0.5 ETH | ||||
11451256 | 1498 days ago | 0.5 ETH | ||||
11450073 | 1499 days ago | 0.5 ETH | ||||
11448305 | 1499 days ago | 0.5 ETH | ||||
11447766 | 1499 days ago | 0.6 ETH | ||||
11447327 | 1499 days ago | 10 ETH | ||||
11446602 | 1499 days ago | 9.5 ETH | ||||
11446544 | 1499 days ago | 0.55 ETH | ||||
11445968 | 1499 days ago | 1 ETH |
Loading...
Loading
Contract Name:
DypCrowdsale
Compiler Version
v0.5.5+commit.47a71e8f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-26 */ 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 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 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.5; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Converts an `address` into `address payable`. Note that this is * simply a type cast: the actual underlying value is not changed. * * _Available since v2.4.0._ */ function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. * * _Available since v2.4.0._ */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-call-value (bool success, ) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } } pragma solidity ^0.5.0; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. // A Solidity high level call has three parts: // 1. The target address is checked to verify it contains contract code // 2. The call itself is made, and success asserted // 3. The return value is decoded, which in turn checks the size of the returned data. // solhint-disable-next-line max-line-length require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } 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; } } pragma solidity ^0.5.0; /** * @title Crowdsale * @dev Crowdsale is a base contract for managing a token crowdsale, * allowing investors to purchase tokens with ether. This contract implements * such functionality in its most fundamental form and can be extended to provide additional * functionality and/or custom behavior. * The external interface represents the basic interface for purchasing tokens, and conforms * the base architecture for crowdsales. It is *not* intended to be modified / overridden. * The internal interface conforms the extensible and modifiable surface of crowdsales. Override * the methods to add functionality. Consider using 'super' where appropriate to concatenate * behavior. */ contract Crowdsale is Context, ReentrancyGuard { using SafeMath for uint256; using SafeERC20 for IERC20; // The token being sold IERC20 private _token; // Address where funds are collected address payable private _wallet; // How many token units a buyer gets per wei. // The rate is the conversion between wei and the smallest and indivisible token unit. // So, if you are using a rate of 1 with a ERC20Detailed token with 3 decimals called TOK // 1 wei will give you 1 unit, or 0.001 TOK. uint256 private _rate; // Amount of wei raised uint256 private _weiRaised; /** * Event for token purchase logging * @param purchaser who paid for the tokens * @param beneficiary who got the tokens * @param value weis paid for purchase * @param amount amount of tokens purchased */ event TokensPurchased(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); /** * @param rate Number of token units a buyer gets per wei * @dev The rate is the conversion between wei and the smallest and indivisible * token unit. So, if you are using a rate of 1 with a ERC20Detailed token * with 3 decimals called TOK, 1 wei will give you 1 unit, or 0.001 TOK. * @param wallet Address where collected funds will be forwarded to * @param token Address of the token being sold */ constructor (uint256 rate, address payable wallet, IERC20 token) public { require(rate > 0, "Crowdsale: rate is 0"); require(wallet != address(0), "Crowdsale: wallet is the zero address"); require(address(token) != address(0), "Crowdsale: token is the zero address"); _rate = rate; _wallet = wallet; _token = token; } /** * @dev fallback function ***DO NOT OVERRIDE*** * Note that other contracts will transfer funds with a base gas stipend * of 2300, which is not enough to call buyTokens. Consider calling * buyTokens directly when purchasing tokens from a contract. */ function () external payable { buyTokens(_msgSender()); } /** * @return the token being sold. */ function token() public view returns (IERC20) { return _token; } /** * @return the address where funds are collected. */ function wallet() public view returns (address payable) { return _wallet; } /** * @return the number of token units a buyer gets per wei. */ function rate() public view returns (uint256) { return _rate; } /** * @return the amount of wei raised. */ function weiRaised() public view returns (uint256) { return _weiRaised; } /** * @dev low level token purchase ***DO NOT OVERRIDE*** * This function has a non-reentrancy guard, so it shouldn't be called by * another `nonReentrant` function. * @param beneficiary Recipient of the token purchase */ function buyTokens(address beneficiary) public nonReentrant payable { uint256 weiAmount = msg.value; _preValidatePurchase(beneficiary, weiAmount); // calculate token amount to be created uint256 tokens = _getTokenAmount(weiAmount); // update state _weiRaised = _weiRaised.add(weiAmount); _processPurchase(beneficiary, tokens); emit TokensPurchased(_msgSender(), beneficiary, weiAmount, tokens); _updatePurchasingState(beneficiary, weiAmount); _forwardFunds(); _postValidatePurchase(beneficiary, weiAmount); } /** * @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. * Use `super` in contracts that inherit from Crowdsale to extend their validations. * Example from CappedCrowdsale.sol's _preValidatePurchase method: * super._preValidatePurchase(beneficiary, weiAmount); * require(weiRaised().add(weiAmount) <= cap); * @param beneficiary Address performing the token purchase * @param weiAmount Value in wei involved in the purchase */ function _preValidatePurchase(address beneficiary, uint256 weiAmount) internal view { require(beneficiary != address(0), "Crowdsale: beneficiary is the zero address"); require(weiAmount != 0, "Crowdsale: weiAmount is 0"); this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 } /** * @dev Validation of an executed purchase. Observe state and use revert statements to undo rollback when valid * conditions are not met. * @param beneficiary Address performing the token purchase * @param weiAmount Value in wei involved in the purchase */ function _postValidatePurchase(address beneficiary, uint256 weiAmount) internal view { // solhint-disable-previous-line no-empty-blocks } /** * @dev Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends * its tokens. * @param beneficiary Address performing the token purchase * @param tokenAmount Number of tokens to be emitted */ function _deliverTokens(address beneficiary, uint256 tokenAmount) internal { _token.safeTransfer(beneficiary, tokenAmount); } /** * @dev Executed when a purchase has been validated and is ready to be executed. Doesn't necessarily emit/send * tokens. * @param beneficiary Address receiving the tokens * @param tokenAmount Number of tokens to be purchased */ function _processPurchase(address beneficiary, uint256 tokenAmount) internal { _deliverTokens(beneficiary, tokenAmount); } /** * @dev Override for extensions that require an internal state to check for validity (current user contributions, * etc.) * @param beneficiary Address receiving the tokens * @param weiAmount Value in wei involved in the purchase */ function _updatePurchasingState(address beneficiary, uint256 weiAmount) internal { // solhint-disable-previous-line no-empty-blocks } /** * @dev Override to extend the way in which ether is converted to tokens. * @param weiAmount Value in wei to be converted into tokens * @return Number of tokens that can be purchased with the specified _weiAmount */ function _getTokenAmount(uint256 weiAmount) internal view returns (uint256) { return weiAmount.mul(_rate); } /** * @dev Determines how ETH is stored/forwarded on purchases. */ function _forwardFunds() internal { _wallet.transfer(msg.value); } } contract DypCrowdsale is Crowdsale, Ownable { using SafeMath for uint256; using SafeERC20 for IERC20; uint256 private rateM = 203; // rate in TKNbits address payable private walletM = 0x789C2Bb6db06c7836CA3472931053a8c20e025C1; IERC20 private tokenM = IERC20(0x961C8c0B1aaD0c0b10a51FeF6a867E3091BCef17); address private burnAddress = 0x000000000000000000000000000000000000dEaD; uint256 private investorMinCap = 490000000000000000; uint256 private investorHardCap = 101000000000000000000; uint256 public newRateChange; // rate in TKNbits constructor() Crowdsale(rateM, walletM, tokenM) public { } function setRate(uint256 newRate) public onlyOwner { rateM = newRate; newRateChange = newRate; } function _getTokenAmount(uint256 weiAmount) internal view returns (uint256) { return weiAmount.mul(rateM); } function _preValidatePurchase(address beneficiary, uint256 weiAmount) internal view { require(weiAmount >= investorMinCap && weiAmount <= investorHardCap); super._preValidatePurchase(beneficiary, weiAmount); } function burnTokens(uint256 tokenAmount) public onlyOwner { tokenM.safeTransfer(burnAddress, tokenAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newRate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAmount","type":"uint256"}],"name":"burnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","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":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newRateChange","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokensPurchased","type":"event"}]
Contract Creation Code
608060405260cb60055573789c2bb6db06c7836ca3472931053a8c20e025c1600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073961c8c0b1aad0c0b10a51fef6a867e3091bcef17600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506706ccd46763f10000600955680579a814e10a740000600a5534801561011b57600080fd5b50600554600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016000806101000a81548160ff0219169083151502179055506000831115156101f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f43726f776473616c653a2072617465206973203000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561027f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806116916025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610307576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061166d6024913960400191505060405180910390fd5b8260028190555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505060006103a361044760201b60201c565b905080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061044f565b600033905090565b61120f8061045e6000396000f3fe6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146101f35780638f32d59b1461024a578063c27d886614610279578063ec8ac4d8146102a4578063f2fde38b146102e8578063fc0c546a14610339576100a7565b80632c4e722e146100b957806334fcf437146100e45780634042b66f1461011f578063521eb2731461014a5780636d1b229d146101a1578063715018a6146101dc575b6100b76100b2610390565b610398565b005b3480156100c557600080fd5b506100ce610525565b6040518082815260200191505060405180910390f35b3480156100f057600080fd5b5061011d6004803603602081101561010757600080fd5b810190808035906020019092919050505061052f565b005b34801561012b57600080fd5b506101346105bc565b6040518082815260200191505060405180910390f35b34801561015657600080fd5b5061015f6105c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ad57600080fd5b506101da600480360360208110156101c457600080fd5b81019080803590602001909291905050506105f0565b005b3480156101e857600080fd5b506101f16106de565b005b3480156101ff57600080fd5b5061020861081b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025657600080fd5b5061025f610845565b604051808215151515815260200191505060405180910390f35b34801561028557600080fd5b5061028e6108a4565b6040518082815260200191505060405180910390f35b6102e6600480360360208110156102ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610398565b005b3480156102f457600080fd5b506103376004803603602081101561030b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108aa565b005b34801561034557600080fd5b5061034e610932565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600033905090565b6000809054906101000a900460ff16151561041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055506000349050610444828261095b565b600061044f82610988565b9050610466826003546109a690919063ffffffff16565b6003819055506104768382610a30565b8273ffffffffffffffffffffffffffffffffffffffff16610495610390565b73ffffffffffffffffffffffffffffffffffffffff167f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b8484604051808381526020018281526020019250505060405180910390a36104f48383610a3e565b6104fc610a42565b6105068383610aad565b505060016000806101000a81548160ff02191690831515021790555050565b6000600254905090565b610537610845565b15156105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060058190555080600b8190555050565b6000600354905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105f8610845565b151561066c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6106db600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab19092919063ffffffff16565b50565b6106e6610845565b151561075a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610888610390565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600b5481565b6108b2610845565b1515610926576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61092f81610b82565b50565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600954811015801561096f5750600a548111155b151561097a57600080fd5b6109848282610cca565b5050565b600061099f60055483610dcf90919063ffffffff16565b9050919050565b6000808284019050838110151515610a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b610a3a8282610e59565b5050565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610aaa573d6000803e3d6000fd5b50565b5050565b610b7d838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610eaa565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111496026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610d52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611190602a913960400191505060405180910390fd5b60008114151515610dcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43726f776473616c653a20776569416d6f756e7420697320300000000000000081525060200191505060405180910390fd5b5050565b600080831415610de25760009050610e53565b60008284029050828482811515610df557fe5b04141515610e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061116f6021913960400191505060405180910390fd5b809150505b92915050565b610ea68282600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab19092919063ffffffff16565b5050565b610ec98273ffffffffffffffffffffffffffffffffffffffff166110fd565b1515610f3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083101515610f8e5780518252602082019150602081019050602083039250610f69565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ff0576040519150601f19603f3d011682016040523d82523d6000602084013e610ff5565b606091505b509150915081151561106f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156110f75780806020019051602081101561108e57600080fd5b810190808051906020019092919050505015156110f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806111ba602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561113f57506000801b8214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743726f776473616c653a2062656e656669636961727920697320746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a165627a7a7230582047288e0f2ea143f425c962770af59d10029147d8b877c497a75ae60cbf149295002943726f776473616c653a20746f6b656e20697320746865207a65726f206164647265737343726f776473616c653a2077616c6c657420697320746865207a65726f2061646472657373
Deployed Bytecode
0x6080604052600436106100a75760003560e01c80638da5cb5b116100645780638da5cb5b146101f35780638f32d59b1461024a578063c27d886614610279578063ec8ac4d8146102a4578063f2fde38b146102e8578063fc0c546a14610339576100a7565b80632c4e722e146100b957806334fcf437146100e45780634042b66f1461011f578063521eb2731461014a5780636d1b229d146101a1578063715018a6146101dc575b6100b76100b2610390565b610398565b005b3480156100c557600080fd5b506100ce610525565b6040518082815260200191505060405180910390f35b3480156100f057600080fd5b5061011d6004803603602081101561010757600080fd5b810190808035906020019092919050505061052f565b005b34801561012b57600080fd5b506101346105bc565b6040518082815260200191505060405180910390f35b34801561015657600080fd5b5061015f6105c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ad57600080fd5b506101da600480360360208110156101c457600080fd5b81019080803590602001909291905050506105f0565b005b3480156101e857600080fd5b506101f16106de565b005b3480156101ff57600080fd5b5061020861081b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025657600080fd5b5061025f610845565b604051808215151515815260200191505060405180910390f35b34801561028557600080fd5b5061028e6108a4565b6040518082815260200191505060405180910390f35b6102e6600480360360208110156102ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610398565b005b3480156102f457600080fd5b506103376004803603602081101561030b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108aa565b005b34801561034557600080fd5b5061034e610932565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600033905090565b6000809054906101000a900460ff16151561041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055506000349050610444828261095b565b600061044f82610988565b9050610466826003546109a690919063ffffffff16565b6003819055506104768382610a30565b8273ffffffffffffffffffffffffffffffffffffffff16610495610390565b73ffffffffffffffffffffffffffffffffffffffff167f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b8484604051808381526020018281526020019250505060405180910390a36104f48383610a3e565b6104fc610a42565b6105068383610aad565b505060016000806101000a81548160ff02191690831515021790555050565b6000600254905090565b610537610845565b15156105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060058190555080600b8190555050565b6000600354905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105f8610845565b151561066c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6106db600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab19092919063ffffffff16565b50565b6106e6610845565b151561075a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610888610390565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600b5481565b6108b2610845565b1515610926576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61092f81610b82565b50565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600954811015801561096f5750600a548111155b151561097a57600080fd5b6109848282610cca565b5050565b600061099f60055483610dcf90919063ffffffff16565b9050919050565b6000808284019050838110151515610a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b610a3a8282610e59565b5050565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610aaa573d6000803e3d6000fd5b50565b5050565b610b7d838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610eaa565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111496026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610d52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611190602a913960400191505060405180910390fd5b60008114151515610dcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43726f776473616c653a20776569416d6f756e7420697320300000000000000081525060200191505060405180910390fd5b5050565b600080831415610de25760009050610e53565b60008284029050828482811515610df557fe5b04141515610e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061116f6021913960400191505060405180910390fd5b809150505b92915050565b610ea68282600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab19092919063ffffffff16565b5050565b610ec98273ffffffffffffffffffffffffffffffffffffffff166110fd565b1515610f3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083101515610f8e5780518252602082019150602081019050602083039250610f69565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ff0576040519150601f19603f3d011682016040523d82523d6000602084013e610ff5565b606091505b509150915081151561106f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156110f75780806020019051602081101561108e57600080fd5b810190808051906020019092919050505015156110f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806111ba602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561113f57506000801b8214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743726f776473616c653a2062656e656669636961727920697320746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a165627a7a7230582047288e0f2ea143f425c962770af59d10029147d8b877c497a75ae60cbf1492950029
Deployed Bytecode Sourcemap
28630:1359:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23872:23;23882:12;:10;:12::i;:::-;23872:9;:23::i;:::-;28630:1359;24305:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24305:77:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29359:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29359:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;29359:119:0;;;;;;;;;;;;;;;;;:::i;:::-;;24450:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24450:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24126:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24126:89:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;29864:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29864:122:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;29864:122:0;;;;;;;;;;;;;;;;;:::i;:::-;;2853:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2853:140:0;;;:::i;:::-;;2042:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2042:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2408:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2408:94:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;29190:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29190:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24802:622;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24802:622:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3148:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3148:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3148:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;23967:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23967:78:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;806:98;851:15;886:10;879:17;;806:98;:::o;24802:622::-;20625:11;;;;;;;;;;;20617:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20764:5;20750:11;;:19;;;;;;;;;;;;;;;;;;24881:17;24901:9;24881:29;;24921:44;24942:11;24955:9;24921:20;:44::i;:::-;25027:14;25044:26;25060:9;25044:15;:26::i;:::-;25027:43;;25121:25;25136:9;25121:10;;:14;;:25;;;;:::i;:::-;25108:10;:38;;;;25159:37;25176:11;25189:6;25159:16;:37::i;:::-;25242:11;25212:61;;25228:12;:10;:12::i;:::-;25212:61;;;25255:9;25266:6;25212:61;;;;;;;;;;;;;;;;;;;;;;;;25286:46;25309:11;25322:9;25286:22;:46::i;:::-;25345:15;:13;:15::i;:::-;25371:45;25393:11;25406:9;25371:21;:45::i;:::-;20782:1;;20944:4;20930:11;;:18;;;;;;;;;;;;;;;;;;24802:622;:::o;24305:77::-;24342:7;24369:5;;24362:12;;24305:77;:::o;29359:119::-;2254:9;:7;:9::i;:::-;2246:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29429:7;29421:5;:15;;;;29463:7;29447:13;:23;;;;29359:119;:::o;24450:87::-;24492:7;24519:10;;24512:17;;24450:87;:::o;24126:89::-;24165:15;24200:7;;;;;;;;;;;24193:14;;24126:89;:::o;29864:122::-;2254:9;:7;:9::i;:::-;2246:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29933:45;29953:11;;;;;;;;;;;29966;29933:6;;;;;;;;;;;:19;;;;:45;;;;;:::i;:::-;29864:122;:::o;2853:140::-;2254:9;:7;:9::i;:::-;2246:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2952:1;2915:40;;2936:6;;;;;;;;;;;2915:40;;;;;;;;;;;;2983:1;2966:6;;:19;;;;;;;;;;;;;;;;;;2853:140::o;2042:79::-;2080:7;2107:6;;;;;;;;;;;2100:13;;2042:79;:::o;2408:94::-;2448:4;2488:6;;;;;;;;;;;2472:22;;:12;:10;:12::i;:::-;:22;;;2465:29;;2408:94;:::o;29190:28::-;;;;:::o;3148:109::-;2254:9;:7;:9::i;:::-;2246:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3221:28;3240:8;3221:18;:28::i;:::-;3148:109;:::o;23967:78::-;24005:6;24031;;;;;;;;;;;24024:13;;23967:78;:::o;29624:230::-;29739:14;;29726:9;:27;;:59;;;;;29770:15;;29757:9;:28;;29726:59;29718:68;;;;;;;;29796:50;29823:11;29836:9;29796:26;:50::i;:::-;29624:230;;:::o;29490:122::-;29557:7;29584:20;29598:5;;29584:9;:13;;:20;;;;:::i;:::-;29577:27;;29490:122;;;:::o;7279:181::-;7337:7;7357:9;7373:1;7369;:5;7357:17;;7398:1;7393;:6;;7385:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7451:1;7444:8;;;7279:181;;;;:::o;27512:136::-;27600:40;27615:11;27628;27600:14;:40::i;:::-;27512:136;;:::o;27926:147::-;;;:::o;28543:80::-;28588:7;;;;;;;;;;;:16;;:27;28605:9;28588:27;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28588:27:0;28543:80::o;26660:151::-;;;:::o;15488:176::-;15571:85;15590:5;15620;:14;;;:23;;;;15645:2;15649:5;15597:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15597:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;15597:58:0;15571:18;:85::i;:::-;15488:176;;;:::o;3363:229::-;3457:1;3437:22;;:8;:22;;;;3429:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3547:8;3518:38;;3539:6;;;;;;;;;;;3518:38;;;;;;;;;;;;3576:8;3567:6;;:17;;;;;;;;;;;;;;;;;;3363:229;:::o;25977:380::-;26103:1;26080:25;;:11;:25;;;;26072:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26184:1;26171:9;:14;;26163:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25977:380;;:::o;8651:471::-;8709:7;8959:1;8954;:6;8950:47;;;8984:1;8977:8;;;;8950:47;9009:9;9025:1;9021;:5;9009:17;;9054:1;9049;9045;:5;;;;;;;;:10;9037:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9113:1;9106:8;;;8651:471;;;;;:::o;27099:139::-;27185:45;27205:11;27218;27185:6;;;;;;;;;;;:19;;;;:45;;;;;:::i;:::-;27099:139;;:::o;17527:1114::-;18131:27;18139:5;18131:25;;;:27::i;:::-;18123:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18268:12;18282:23;18317:5;18309:19;;18329:4;18309:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;18309:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;18267:67:0;;;;18353:7;18345:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18434:1;18414:10;:17;:21;18410:224;;;18556:10;18545:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18545:30:0;;;;;;;;;;;;;;;;18537:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18410:224;17527:1114;;;;:::o;12585:619::-;12645:4;12907:16;12934:19;12956:66;12934:88;;;;13125:7;13113:20;13101:32;;13165:11;13153:8;:23;;:42;;;;;13192:3;13180:15;;:8;:15;;13153:42;13145:51;;;;12585:619;;;:::o
Swarm Source
bzzr://47288e0f2ea143f425c962770af59d10029147d8b877c497a75ae60cbf149295
Loading...
Loading
Loading...
Loading
OVERVIEW
Crowdsale Contract Address for DeFi Yield Protocol (DYP).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.