Overview
ETH Balance
6.627 ETH
Eth Value
$16,249.85 (@ $2,452.07/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x04d24ff648a2c7602e0a6ce04bc8551b1adf9df1a03f271fabeeb74d623d7d11 | Buy SPL | (pending) | 2 hrs ago | IN | 0.05 ETH | (Pending) | |||
Buy SPL | 20741312 | 18 days ago | IN | 0.01 ETH | 0.00021051 | ||||
Buy SPL | 20668187 | 28 days ago | IN | 0.02 ETH | 0.00009769 | ||||
Buy SPL | 20652475 | 30 days ago | IN | 0.01 ETH | 0.0000887 | ||||
Buy SPL | 20652424 | 30 days ago | IN | 0.01 ETH | 0.00008713 | ||||
Buy SPL | 20574814 | 41 days ago | IN | 0.01 ETH | 0.0000517 | ||||
Buy SPL | 20573301 | 41 days ago | IN | 0.1 ETH | 0.00008591 | ||||
Buy SPL | 20523120 | 48 days ago | IN | 0.02 ETH | 0.00012246 | ||||
Buy SPL | 20519268 | 49 days ago | IN | 0.05 ETH | 0.00018152 | ||||
Buy SPL | 20495839 | 52 days ago | IN | 0.05 ETH | 0.0000623 | ||||
Buy SPL | 20460431 | 57 days ago | IN | 0.01 ETH | 0.00185799 | ||||
Buy SPL | 20453550 | 58 days ago | IN | 0.01 ETH | 0.00007809 | ||||
Buy SPL | 20453008 | 58 days ago | IN | 0.01 ETH | 0.00008062 | ||||
Buy SPL | 20408719 | 64 days ago | IN | 0.02 ETH | 0.00008065 | ||||
Buy SPL | 20395480 | 66 days ago | IN | 0.01 ETH | 0.00009221 | ||||
Buy SPL | 20376484 | 69 days ago | IN | 0.02 ETH | 0.00028697 | ||||
Buy SPL | 20375341 | 69 days ago | IN | 0.02 ETH | 0.00021561 | ||||
Buy SPL | 20375163 | 69 days ago | IN | 0.01 ETH | 0.00028586 | ||||
Buy SPL | 20375151 | 69 days ago | IN | 0.01 ETH | 0.0002711 | ||||
Buy SPL | 20318688 | 77 days ago | IN | 0.05 ETH | 0.00055251 | ||||
Buy SPL | 20318256 | 77 days ago | IN | 0.02 ETH | 0.00050296 | ||||
Buy SPL | 20318227 | 77 days ago | IN | 0.02 ETH | 0.00054566 | ||||
Buy SPL | 20316027 | 77 days ago | IN | 0.02 ETH | 0.0004235 | ||||
Buy SPL | 20312345 | 78 days ago | IN | 0.02 ETH | 0.00049679 | ||||
Buy SPL | 20304891 | 79 days ago | IN | 0.02 ETH | 0.00012944 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
20741312 | 18 days ago | 0.0015 ETH | ||||
20668187 | 28 days ago | 0.003 ETH | ||||
20652475 | 30 days ago | 0.0015 ETH | ||||
20652424 | 30 days ago | 0.0015 ETH | ||||
20574814 | 41 days ago | 0.0015 ETH | ||||
20573301 | 41 days ago | 0.015 ETH | ||||
20523120 | 48 days ago | 0.003 ETH | ||||
20519268 | 49 days ago | 0.0075 ETH | ||||
20495839 | 52 days ago | 0.0075 ETH | ||||
20460431 | 57 days ago | 0.0015 ETH | ||||
20453550 | 58 days ago | 0.0015 ETH | ||||
20453008 | 58 days ago | 0.0015 ETH | ||||
20408719 | 64 days ago | 0.003 ETH | ||||
20395480 | 66 days ago | 0.0015 ETH | ||||
20376484 | 69 days ago | 0.003 ETH | ||||
20375341 | 69 days ago | 0.003 ETH | ||||
20375163 | 69 days ago | 0.0015 ETH | ||||
20375151 | 69 days ago | 0.0015 ETH | ||||
20318688 | 77 days ago | 0.0075 ETH | ||||
20318256 | 77 days ago | 0.003 ETH | ||||
20318227 | 77 days ago | 0.003 ETH | ||||
20316027 | 77 days ago | 0.003 ETH | ||||
20312345 | 78 days ago | 0.003 ETH | ||||
20304891 | 79 days ago | 0.003 ETH | ||||
20289299 | 81 days ago | 0.0015 ETH |
Loading...
Loading
Contract Name:
SPLSPLGatewayV3
Compiler Version
v0.8.6+commit.11564f7e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "./utils/Withdrawable.sol"; import "@openzeppelin/contracts/security/Pausable.sol"; interface GuildAsset { function getTotalVolume(uint16 _guildType) external view returns (uint256); } interface SPLGuildPool { function addEthToGuildPool(uint16 _guildType, address _purchaseBy) external payable; } interface IngameMoney { function hashTransactedAt(bytes32 _hash) external view returns(uint256); function buy(address payable _user, address payable _referrer, uint256 _referralBasisPoint, uint16 _guildType, bytes calldata _signature, bytes32 _hash) external payable; } contract SPLSPLGatewayV3 is Withdrawable, IngameMoney, Pausable { struct Campaign { uint8 purchaseType; uint8 subPurchaseType; uint8 proxyPurchaseType; } uint8 constant PURCHASE_NORMAL = 0; uint8 constant PURCHASE_ETH_BACK = 1; uint8 constant PURCHASE_UP20 = 2; uint8 constant PURCHASE_REGULAR = 3; uint8 constant PURCHASE_ETH_BACK_UP20 = 4; Campaign public campaign; mapping(uint256 => bool) public payableOptions; address public validater; GuildAsset public guildAsset; SPLGuildPool public guildPool; uint256 public guildBasisPoint; uint256 constant BASE = 10000; uint256 private nonce; uint16 public chanceDenom; uint256 public ethBackBasisPoint; bytes private salt; mapping(bytes32 => uint256) private _hashTransactedAt; event Sold( address indexed user, address indexed referrer, uint8 purchaseType, uint256 grossValue, uint256 referralValue, uint256 guildValue, uint256 netValue, uint16 indexed guildType ); event CampaignUpdated( uint8 purchaseType, uint8 subPurchaseType, uint8 proxyPurchaseType ); event GuildBasisPointUpdated( uint256 guildBasisPoint ); constructor( address _validater, address _guildAssetAddress, address payable _guildPoolAddress ) { setValidater(_validater); guildAsset = GuildAsset(_guildAssetAddress); guildPool = SPLGuildPool(_guildPoolAddress); setCampaign(0, 0, 0); updateGuildBasisPoint(1500); updateEthBackBasisPoint(5000); updateChance(25); salt = bytes("iiNg4uJulaa4Yoh7"); nonce = 220000; // payableOptions[0] = true; payableOptions[0.01 ether] = true; payableOptions[0.02 ether] = true; payableOptions[0.03 ether] = true; payableOptions[0.05 ether] = true; payableOptions[0.1 ether] = true; payableOptions[0.5 ether] = true; payableOptions[1 ether] = true; payableOptions[5 ether] = true; payableOptions[10 ether] = true; } function setValidater(address _varidater) public onlyOwner { validater = _varidater; } function setPayableOption(uint256 _option, bool desired) external onlyOwner { payableOptions[_option] = desired; } function setCampaign( uint8 _purchaseType, uint8 _subPurchaseType, uint8 _proxyPurchaseType ) public onlyOwner { campaign = Campaign(_purchaseType, _subPurchaseType, _proxyPurchaseType); emit CampaignUpdated(_purchaseType, _subPurchaseType, _proxyPurchaseType); } function updateGuildBasisPoint(uint256 _newGuildBasisPoint) public onlyOwner() { guildBasisPoint = _newGuildBasisPoint; emit GuildBasisPointUpdated( guildBasisPoint ); } function updateChance(uint16 _newchanceDenom) public onlyOwner { chanceDenom = _newchanceDenom; } function updateEthBackBasisPoint(uint256 _ethBackBasisPoint) public onlyOwner { ethBackBasisPoint = _ethBackBasisPoint; } function buy( address payable _user, address payable _referrer, uint256 _referralBasisPoint, uint16 _guildType, bytes memory _signature, bytes32 _hash ) public payable override whenNotPaused() { require(_referralBasisPoint + ethBackBasisPoint + guildBasisPoint <= BASE, "Invalid basis points"); require(payableOptions[msg.value], "Invalid msg.value"); require(validateSig(encodeData(_user, _referrer, _referralBasisPoint, _guildType), _signature), "Invalid signature"); if (_hash != bytes32(0)) { recordHash(_hash); } uint8 purchaseType = campaign.proxyPurchaseType; uint256 netValue = msg.value; uint256 referralValue = _referrerBack(_referrer, _referralBasisPoint); uint256 guildValue = _guildPoolBack(_guildType); netValue = msg.value - referralValue - guildValue; emit Sold( _user, _referrer, purchaseType, msg.value, referralValue, guildValue, netValue, _guildType ); } function buySPL( address payable _referrer, uint256 _referralBasisPoint, uint16 _guildType, bytes memory _signature ) public payable { require(_referralBasisPoint + ethBackBasisPoint + guildBasisPoint <= BASE, "Invalid basis points"); require(payableOptions[msg.value], "Invalid msg.value"); require(validateSig(encodeData(msg.sender, _referrer, _referralBasisPoint, _guildType), _signature), "Invalid signature"); uint8 purchaseType = campaign.purchaseType; uint256 netValue = msg.value; uint256 referralValue = 0; uint256 guildValue = 0; if (purchaseType == PURCHASE_ETH_BACK || purchaseType == PURCHASE_ETH_BACK_UP20) { if (getRandom(chanceDenom, nonce, msg.sender) == 0) { uint256 ethBackValue = _ethBack(payable(msg.sender), ethBackBasisPoint); netValue = netValue - ethBackValue; } else { purchaseType = campaign.subPurchaseType; referralValue = _referrerBack(_referrer, _referralBasisPoint); guildValue = _guildPoolBack(_guildType); netValue = msg.value - referralValue - guildValue; } nonce++; } else { referralValue = _referrerBack(_referrer, _referralBasisPoint); guildValue = _guildPoolBack(_guildType); netValue = msg.value - referralValue - guildValue; } emit Sold( msg.sender, _referrer, purchaseType, msg.value, referralValue, guildValue, netValue, _guildType ); } function hashTransactedAt(bytes32 _hash) public view override returns (uint256) { return _hashTransactedAt[_hash]; } function recordHash(bytes32 _hash) internal { require(_hashTransactedAt[_hash] == 0, "The hash is already transacted"); _hashTransactedAt[_hash] = block.number; } function getRandom(uint16 max, uint256 _nonce, address _sender) public view returns (uint16) { return uint16( bytes2( keccak256( abi.encodePacked( blockhash(block.number-1), _sender, _nonce, salt ) ) ) ) % max; } function _ethBack(address payable _buyer, uint256 _ethBackBasisPoint) internal returns (uint256) { uint256 ethBackValue = msg.value * _ethBackBasisPoint / BASE; _buyer.transfer(ethBackValue); return ethBackValue; } function _guildPoolBack(uint16 _guildType) internal returns (uint256) { if(_guildType == 0) { return 0; } require(guildAsset.getTotalVolume(_guildType) != 0, "Invalid _guildType"); uint256 guildValue; guildValue = msg.value * guildBasisPoint / BASE; guildPool.addEthToGuildPool{value: guildValue}(_guildType, msg.sender); return guildValue; } function _referrerBack(address payable _referrer, uint256 _referralBasisPoint) internal returns (uint256) { if(_referrer == address(0x0) || _referrer == msg.sender) { return 0; } uint256 referralValue = msg.value * _referralBasisPoint / BASE; _referrer.transfer(referralValue); return referralValue; } function encodeData(address _sender, address _referrer, uint256 _referralBasisPoint, uint16 _guildType) public pure returns (bytes32) { return keccak256(abi.encode( _sender, _referrer, _referralBasisPoint, _guildType ) ); } function validateSig(bytes32 _message, bytes memory _signature) public view returns (bool) { require(validater != address(0), "validater must be set"); address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(_message), _signature); return (signer == validater); } function recover(bytes32 _message, bytes memory _signature) public pure returns (address) { address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(_message), _signature); return signer; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * * These functions can be used to verify that a message was signed by the holder * of the private keys of a given address. */ library ECDSA { enum RecoverError { NoError, InvalidSignature, InvalidSignatureLength, InvalidSignatureS, InvalidSignatureV } function _throwError(RecoverError error) private pure { if (error == RecoverError.NoError) { return; // no error: do nothing } else if (error == RecoverError.InvalidSignature) { revert("ECDSA: invalid signature"); } else if (error == RecoverError.InvalidSignatureLength) { revert("ECDSA: invalid signature length"); } else if (error == RecoverError.InvalidSignatureS) { revert("ECDSA: invalid signature 's' value"); } else if (error == RecoverError.InvalidSignatureV) { revert("ECDSA: invalid signature 'v' value"); } } /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature` or error string. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. * * Documentation for signature generation: * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js] * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers] * * _Available since v4.3._ */ function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) { // Check the signature length // - case 65: r,s,v signature (standard) // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ if (signature.length == 65) { bytes32 r; bytes32 s; uint8 v; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } return tryRecover(hash, v, r, s); } else if (signature.length == 64) { bytes32 r; bytes32 vs; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. assembly { r := mload(add(signature, 0x20)) vs := mload(add(signature, 0x40)) } return tryRecover(hash, r, vs); } else { return (address(0), RecoverError.InvalidSignatureLength); } } /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature`. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, signature); _throwError(error); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately. * * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures] * * _Available since v4.3._ */ function tryRecover( bytes32 hash, bytes32 r, bytes32 vs ) internal pure returns (address, RecoverError) { bytes32 s; uint8 v; assembly { s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) v := add(shr(255, vs), 27) } return tryRecover(hash, v, r, s); } /** * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately. * * _Available since v4.2._ */ function recover( bytes32 hash, bytes32 r, bytes32 vs ) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, r, vs); _throwError(error); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `v`, * `r` and `s` signature fields separately. * * _Available since v4.3._ */ function tryRecover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address, RecoverError) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most // signatures from current libraries generate a unique signature with an s-value in the lower half order. // // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept // these malleable signatures as well. if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return (address(0), RecoverError.InvalidSignatureS); } if (v != 27 && v != 28) { return (address(0), RecoverError.InvalidSignatureV); } // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); if (signer == address(0)) { return (address(0), RecoverError.InvalidSignature); } return (signer, RecoverError.NoError); } /** * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ function recover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, v, r, s); _throwError(error); return recovered; } /** * @dev Returns an Ethereum Signed Message, created from a `hash`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { // 32 is the length in bytes of hash, // enforced by the type signature above return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } /** * @dev Returns an Ethereum Signed Typed Data, created from a * `domainSeparator` and a `structHash`. This produces hash corresponding * to the one signed with the * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] * JSON-RPC method as part of EIP-712. * * See {recover}. */ function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/access/Ownable.sol"; abstract contract Withdrawable is Ownable { function withdrawEther() external payable onlyOwner { payable(msg.sender).transfer(address(this).balance); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_validater","type":"address"},{"internalType":"address","name":"_guildAssetAddress","type":"address"},{"internalType":"address payable","name":"_guildPoolAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"purchaseType","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"subPurchaseType","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"proxyPurchaseType","type":"uint8"}],"name":"CampaignUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"guildBasisPoint","type":"uint256"}],"name":"GuildBasisPointUpdated","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":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"purchaseType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"grossValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referralValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"guildValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"netValue","type":"uint256"},{"indexed":true,"internalType":"uint16","name":"guildType","type":"uint16"}],"name":"Sold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address payable","name":"_user","type":"address"},{"internalType":"address payable","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_referralBasisPoint","type":"uint256"},{"internalType":"uint16","name":"_guildType","type":"uint16"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_referralBasisPoint","type":"uint256"},{"internalType":"uint16","name":"_guildType","type":"uint16"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"buySPL","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"campaign","outputs":[{"internalType":"uint8","name":"purchaseType","type":"uint8"},{"internalType":"uint8","name":"subPurchaseType","type":"uint8"},{"internalType":"uint8","name":"proxyPurchaseType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chanceDenom","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_referralBasisPoint","type":"uint256"},{"internalType":"uint16","name":"_guildType","type":"uint16"}],"name":"encodeData","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ethBackBasisPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"max","type":"uint16"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"}],"name":"getRandom","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guildAsset","outputs":[{"internalType":"contract GuildAsset","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guildBasisPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guildPool","outputs":[{"internalType":"contract SPLGuildPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"hashTransactedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"payableOptions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_message","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"recover","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_purchaseType","type":"uint8"},{"internalType":"uint8","name":"_subPurchaseType","type":"uint8"},{"internalType":"uint8","name":"_proxyPurchaseType","type":"uint8"}],"name":"setCampaign","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_option","type":"uint256"},{"internalType":"bool","name":"desired","type":"bool"}],"name":"setPayableOption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_varidater","type":"address"}],"name":"setValidater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newchanceDenom","type":"uint16"}],"name":"updateChance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethBackBasisPoint","type":"uint256"}],"name":"updateEthBackBasisPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newGuildBasisPoint","type":"uint256"}],"name":"updateGuildBasisPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_message","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"validateSig","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEther","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620020f9380380620020f9833981016040819052620000349162000605565b6200003f3362000290565b6000805460ff60a01b191690556200005783620002e0565b600480546001600160a01b038085166001600160a01b0319928316179092556005805492841692909116919091179055620000956000808062000351565b620000a26105dc62000426565b620000af611388620004ac565b620000bb6019620004fc565b6040805180820190915260108082526f69694e6734754a756c616134596f683760801b6020909201918252620000f491600a916200055f565b505062035b60600755505060026020527faf41ce426d761cfd4892ba001256199635a01835da040d3c06dea5cb270323148054600160ff1991821681179092557f01e57a2c0c10fc9656caa7e23dc9609a5f2dafe630b2a31615fdc2db298966ee80548216831790557f7a5d3181ad4ca38e62dcbd11d907462e2878d7ec804e95600d829b1b0bf05f6980548216831790557f268499cbfbbfeb0b1752687e1837a5db6f53b1b5a6f940b968e198785570b85780548216831790557f88cc873adf80aa7184cc0c11418e39e1eee48f052999e33e850f6f98391d14e880548216831790557f60ed61624042d44a006feb2ec19ba4334965f4446ac92fe43fd9940bb7912b2680548216831790557f1c9edf2ff9a87c1b2a73b9bf44faa8bd7d6f3adce2a508144c75102bdefd4bce80548216831790557f4a592d6fff2444a962518208fdca29efefe9e2492be45b7d601c5582a34419ea8054821683179055678ac7230489e800006000527f200e4afaa3b708f908a6fe1b5e31dcb865b1edffe39daecb1c52c0f3d679552980549091169091179055620006af565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146200032f5760405162461bcd60e51b81526020600482018190526024820152600080516020620020d983398151915260448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146200039c5760405162461bcd60e51b81526020600482018190526024820152600080516020620020d9833981519152604482015260640162000326565b604080516060808201835260ff86811680845286821660208086018290529287169486018590526001805461ffff1916831761010083021762ff00001916620100008702179055855191825291810191909152928301919091527fe49bc7af060cc5d9279e2e61607f66121d7982a25145a843a953c6467b54a855910160405180910390a1505050565b6000546001600160a01b03163314620004715760405162461bcd60e51b81526020600482018190526024820152600080516020620020d9833981519152604482015260640162000326565b60068190556040518181527fddd285af8d9630a6ea010440c8512806893e826a4b45e39eadb38049406f61959060200160405180910390a150565b6000546001600160a01b03163314620004f75760405162461bcd60e51b81526020600482018190526024820152600080516020620020d9833981519152604482015260640162000326565b600955565b6000546001600160a01b03163314620005475760405162461bcd60e51b81526020600482018190526024820152600080516020620020d9833981519152604482015260640162000326565b6008805461ffff191661ffff92909216919091179055565b8280546200056d9062000659565b90600052602060002090601f016020900481019282620005915760008555620005dc565b82601f10620005ac57805160ff1916838001178555620005dc565b82800160010185558215620005dc579182015b82811115620005dc578251825591602001919060010190620005bf565b50620005ea929150620005ee565b5090565b5b80821115620005ea5760008155600101620005ef565b6000806000606084860312156200061b57600080fd5b8351620006288162000696565b60208501519093506200063b8162000696565b60408501519092506200064e8162000696565b809150509250925092565b600181811c908216806200066e57607f821691505b602082108114156200069057634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0381168114620006ac57600080fd5b50565b611a1a80620006bf6000396000f3fe6080604052600436106101815760003560e01c8063811e539c116100d1578063c14e50ce1161008a578063d95b18eb11610064578063d95b18eb14610487578063ea62f554146104a7578063f2fde38b146104c7578063f8d61444146104e757600080fd5b8063c14e50ce14610427578063cd25ca5414610447578063d86c8cfd1461046757600080fd5b8063811e539c1461033257806387d570251461038357806389702850146103995780638da5cb5b146103c9578063a93c34e5146103e7578063bcd0ad2b1461040757600080fd5b80635c975abb1161013e578063715018a611610118578063715018a6146102d45780637362377b146102e957806375184dd6146102f157806375edbf461461031f57600080fd5b80635c975abb14610269578063662fa38f146102945780636e9f6529146102b457600080fd5b80630f43dd9014610186578063162df20c146101b957806319045a25146101ce57806323a24a94146102065780632d11ecf21461021c57806336977d9b14610249575b600080fd5b34801561019257600080fd5b506101a66101a136600461163c565b610507565b6040519081526020015b60405180910390f35b6101cc6101c73660046115d2565b610555565b005b3480156101da57600080fd5b506101ee6101e93660046116a6565b6107bb565b6040516001600160a01b0390911681526020016101b0565b34801561021257600080fd5b506101a660095481565b34801561022857600080fd5b506101a661023736600461168d565b6000908152600b602052604090205490565b34801561025557600080fd5b506101cc610264366004611796565b6107da565b34801561027557600080fd5b50600054600160a01b900460ff165b60405190151581526020016101b0565b3480156102a057600080fd5b506101cc6102af366004611761565b61088e565b3480156102c057600080fd5b506004546101ee906001600160a01b031681565b3480156102e057600080fd5b506101cc6108d8565b6101cc61090e565b3480156102fd57600080fd5b5060085461030c9061ffff1681565b60405161ffff90911681526020016101b0565b6101cc61032d36600461154d565b610967565b34801561033e57600080fd5b5060015461035f9060ff808216916101008104821691620100009091041683565b6040805160ff948516815292841660208401529216918101919091526060016101b0565b34801561038f57600080fd5b506101a660065481565b3480156103a557600080fd5b506102846103b436600461168d565b60026020526000908152604090205460ff1681565b3480156103d557600080fd5b506000546001600160a01b03166101ee565b3480156103f357600080fd5b5061030c610402366004611708565b610b81565b34801561041357600080fd5b506101cc6104223660046116ed565b610bd2565b34801561043357600080fd5b506101cc610442366004611529565b610c14565b34801561045357600080fd5b506101cc61046236600461168d565b610c60565b34801561047357600080fd5b506102846104823660046116a6565b610cc5565b34801561049357600080fd5b506003546101ee906001600160a01b031681565b3480156104b357600080fd5b506101cc6104c236600461168d565b610d3f565b3480156104d357600080fd5b506101cc6104e2366004611529565b610d6e565b3480156104f357600080fd5b506005546101ee906001600160a01b031681565b604080516001600160a01b039586166020808301919091529490951685820152606085019290925261ffff166080808501919091528151808503909101815260a09093019052815191012090565b6127106006546009548561056991906118d9565b61057391906118d9565b11156105bd5760405162461bcd60e51b8152602060048201526014602482015273496e76616c696420626173697320706f696e747360601b60448201526064015b60405180910390fd5b3460009081526002602052604090205460ff166106105760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206d73672e76616c756560781b60448201526064016105b4565b61062561061f33868686610507565b82610cc5565b6106655760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016105b4565b6001805460ff169034906000908190841480610684575060ff84166004145b1561071e5760085460075461069e9161ffff169033610b81565b61ffff166106c85760006106b433600954610e06565b90506106c08185611924565b935050610704565b600154610100900460ff1693506106df8888610e61565b91506106ea86610e9d565b9050806106f78334611924565b6107019190611924565b92505b600780549060006107148361193b565b919050555061074d565b6107288888610e61565b915061073386610e9d565b9050806107408334611924565b61074a9190611924565b92505b6040805160ff86168152346020820152908101839052606081018290526080810184905261ffff8716906001600160a01b038a169033907fef8be8195589a8a6990d8ec940c79dd6a43c0ac18064d5682feeb99c599dd3e59060a00160405180910390a45050505050505050565b6000806107d06107ca85610fff565b84611052565b9150505b92915050565b6000546001600160a01b031633146108045760405162461bcd60e51b81526004016105b4906118a4565b604080516060808201835260ff86811680845286821660208086018290529287169486018590526001805461ffff1916831761010083021762ff00001916620100008702179055855191825291810191909152928301919091527fe49bc7af060cc5d9279e2e61607f66121d7982a25145a843a953c6467b54a855910160405180910390a1505050565b6000546001600160a01b031633146108b85760405162461bcd60e51b81526004016105b4906118a4565b600091825260026020526040909120805460ff1916911515919091179055565b6000546001600160a01b031633146109025760405162461bcd60e51b81526004016105b4906118a4565b61090c600061106e565b565b6000546001600160a01b031633146109385760405162461bcd60e51b81526004016105b4906118a4565b60405133904780156108fc02916000818181858888f19350505050158015610964573d6000803e3d6000fd5b50565b600054600160a01b900460ff16156109b45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b4565b612710600654600954866109c891906118d9565b6109d291906118d9565b1115610a175760405162461bcd60e51b8152602060048201526014602482015273496e76616c696420626173697320706f696e747360601b60448201526064016105b4565b3460009081526002602052604090205460ff16610a6a5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206d73672e76616c756560781b60448201526064016105b4565b610a7f610a7987878787610507565b83610cc5565b610abf5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016105b4565b8015610ace57610ace816110be565b60015462010000900460ff16346000610ae78888610e61565b90506000610af487610e9d565b905080610b018334611924565b610b0b9190611924565b6040805160ff87168152346020820152908101849052606081018390526080810182905290935061ffff8816906001600160a01b03808c1691908d16907fef8be8195589a8a6990d8ec940c79dd6a43c0ac18064d5682feeb99c599dd3e59060a00160405180910390a450505050505050505050565b600083610b8f600143611924565b408385600a604051602001610ba794939291906117d9565b6040516020818303038152906040528051906020012060f01c610bca9190611956565b949350505050565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016105b4906118a4565b6008805461ffff191661ffff92909216919091179055565b6000546001600160a01b03163314610c3e5760405162461bcd60e51b81526004016105b4906118a4565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c8a5760405162461bcd60e51b81526004016105b4906118a4565b60068190556040518181527fddd285af8d9630a6ea010440c8512806893e826a4b45e39eadb38049406f61959060200160405180910390a150565b6003546000906001600160a01b0316610d185760405162461bcd60e51b81526020600482015260156024820152741d985b1a59185d195c881b5d5cdd081899481cd95d605a1b60448201526064016105b4565b6000610d266107ca85610fff565b6003546001600160a01b03908116911614949350505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b81526004016105b4906118a4565b600955565b6000546001600160a01b03163314610d985760405162461bcd60e51b81526004016105b4906118a4565b6001600160a01b038116610dfd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b4565b6109648161106e565b600080612710610e168434611905565b610e2091906118f1565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610e59573d6000803e3d6000fd5b509392505050565b60006001600160a01b0383161580610e8157506001600160a01b03831633145b15610e8e575060006107d4565b6000612710610e168434611905565b600061ffff8216610eb057506000919050565b60048054604051637ddd3db160e11b815261ffff8516928101929092526001600160a01b03169063fbba7b629060240160206040518083038186803b158015610ef857600080fd5b505afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190611748565b610f715760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964205f6775696c645479706560701b60448201526064016105b4565b600061271060065434610f849190611905565b610f8e91906118f1565b600554604051637039d7b960e11b815261ffff861660048201523360248201529192506001600160a01b03169063e073af729083906044016000604051808303818588803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b50939695505050505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b6000806000611061858561112d565b91509150610e598161119d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818152600b60205260409020541561111a5760405162461bcd60e51b815260206004820152601e60248201527f546865206861736820697320616c7265616479207472616e736163746564000060448201526064016105b4565b6000908152600b60205260409020439055565b6000808251604114156111645760208301516040840151606085015160001a61115887828585611358565b94509450505050611196565b82516040141561118e5760208301516040840151611183868383611445565b935093505050611196565b506000905060025b9250929050565b60008160048111156111b1576111b16119a3565b14156111ba5750565b60018160048111156111ce576111ce6119a3565b141561121c5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105b4565b6002816004811115611230576112306119a3565b141561127e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105b4565b6003816004811115611292576112926119a3565b14156112eb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105b4565b60048160048111156112ff576112ff6119a3565b14156109645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016105b4565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561138f575060009050600361143c565b8460ff16601b141580156113a757508460ff16601c14155b156113b8575060009050600461143c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561140c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166114355760006001925092505061143c565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161146687828885611358565b935093505050935093915050565b600082601f83011261148557600080fd5b813567ffffffffffffffff808211156114a0576114a06119b9565b604051601f8301601f19908116603f011681019082821181831017156114c8576114c86119b9565b816040528381528660208588010111156114e157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803561ffff8116811461151357600080fd5b919050565b803560ff8116811461151357600080fd5b60006020828403121561153b57600080fd5b8135611546816119cf565b9392505050565b60008060008060008060c0878903121561156657600080fd5b8635611571816119cf565b95506020870135611581816119cf565b94506040870135935061159660608801611501565b9250608087013567ffffffffffffffff8111156115b257600080fd5b6115be89828a01611474565b92505060a087013590509295509295509295565b600080600080608085870312156115e857600080fd5b84356115f3816119cf565b93506020850135925061160860408601611501565b9150606085013567ffffffffffffffff81111561162457600080fd5b61163087828801611474565b91505092959194509250565b6000806000806080858703121561165257600080fd5b843561165d816119cf565b9350602085013561166d816119cf565b92506040850135915061168260608601611501565b905092959194509250565b60006020828403121561169f57600080fd5b5035919050565b600080604083850312156116b957600080fd5b82359150602083013567ffffffffffffffff8111156116d757600080fd5b6116e385828601611474565b9150509250929050565b6000602082840312156116ff57600080fd5b61154682611501565b60008060006060848603121561171d57600080fd5b61172684611501565b925060208401359150604084013561173d816119cf565b809150509250925092565b60006020828403121561175a57600080fd5b5051919050565b6000806040838503121561177457600080fd5b823591506020830135801515811461178b57600080fd5b809150509250929050565b6000806000606084860312156117ab57600080fd5b6117b484611518565b92506117c260208501611518565b91506117d060408501611518565b90509250925092565b848152600060206bffffffffffffffffffffffff198660601b168184015284603484015260546000855481600182811c91508083168061181a57607f831692505b86831081141561183857634e487b7160e01b85526022600452602485fd5b80801561184c576001811461186157611892565b60ff1985168a880152838a0187019550611892565b60008b81526020902060005b858110156118885781548c82018a015290840190890161186d565b505086848b010195505b50939c9b505050505050505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156118ec576118ec611977565b500190565b6000826119005761190061198d565b500490565b600081600019048311821515161561191f5761191f611977565b500290565b60008282101561193657611936611977565b500390565b600060001982141561194f5761194f611977565b5060010190565b600061ffff8084168061196b5761196b61198d565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096457600080fdfea26469706673582212202683f0af64a097c959901f04a29e53c1a091635dc1705a3127009929802602c764736f6c634300080600334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000af1d50904a05ebe26ecb17333161be2971eb4a69000000000000000000000000a8abf045fe1a9ef0583e436393a6e4e0b483f7170000000000000000000000000ebb2b76fbdcc3a636b652fd3769154b5c196249
Deployed Bytecode
0x6080604052600436106101815760003560e01c8063811e539c116100d1578063c14e50ce1161008a578063d95b18eb11610064578063d95b18eb14610487578063ea62f554146104a7578063f2fde38b146104c7578063f8d61444146104e757600080fd5b8063c14e50ce14610427578063cd25ca5414610447578063d86c8cfd1461046757600080fd5b8063811e539c1461033257806387d570251461038357806389702850146103995780638da5cb5b146103c9578063a93c34e5146103e7578063bcd0ad2b1461040757600080fd5b80635c975abb1161013e578063715018a611610118578063715018a6146102d45780637362377b146102e957806375184dd6146102f157806375edbf461461031f57600080fd5b80635c975abb14610269578063662fa38f146102945780636e9f6529146102b457600080fd5b80630f43dd9014610186578063162df20c146101b957806319045a25146101ce57806323a24a94146102065780632d11ecf21461021c57806336977d9b14610249575b600080fd5b34801561019257600080fd5b506101a66101a136600461163c565b610507565b6040519081526020015b60405180910390f35b6101cc6101c73660046115d2565b610555565b005b3480156101da57600080fd5b506101ee6101e93660046116a6565b6107bb565b6040516001600160a01b0390911681526020016101b0565b34801561021257600080fd5b506101a660095481565b34801561022857600080fd5b506101a661023736600461168d565b6000908152600b602052604090205490565b34801561025557600080fd5b506101cc610264366004611796565b6107da565b34801561027557600080fd5b50600054600160a01b900460ff165b60405190151581526020016101b0565b3480156102a057600080fd5b506101cc6102af366004611761565b61088e565b3480156102c057600080fd5b506004546101ee906001600160a01b031681565b3480156102e057600080fd5b506101cc6108d8565b6101cc61090e565b3480156102fd57600080fd5b5060085461030c9061ffff1681565b60405161ffff90911681526020016101b0565b6101cc61032d36600461154d565b610967565b34801561033e57600080fd5b5060015461035f9060ff808216916101008104821691620100009091041683565b6040805160ff948516815292841660208401529216918101919091526060016101b0565b34801561038f57600080fd5b506101a660065481565b3480156103a557600080fd5b506102846103b436600461168d565b60026020526000908152604090205460ff1681565b3480156103d557600080fd5b506000546001600160a01b03166101ee565b3480156103f357600080fd5b5061030c610402366004611708565b610b81565b34801561041357600080fd5b506101cc6104223660046116ed565b610bd2565b34801561043357600080fd5b506101cc610442366004611529565b610c14565b34801561045357600080fd5b506101cc61046236600461168d565b610c60565b34801561047357600080fd5b506102846104823660046116a6565b610cc5565b34801561049357600080fd5b506003546101ee906001600160a01b031681565b3480156104b357600080fd5b506101cc6104c236600461168d565b610d3f565b3480156104d357600080fd5b506101cc6104e2366004611529565b610d6e565b3480156104f357600080fd5b506005546101ee906001600160a01b031681565b604080516001600160a01b039586166020808301919091529490951685820152606085019290925261ffff166080808501919091528151808503909101815260a09093019052815191012090565b6127106006546009548561056991906118d9565b61057391906118d9565b11156105bd5760405162461bcd60e51b8152602060048201526014602482015273496e76616c696420626173697320706f696e747360601b60448201526064015b60405180910390fd5b3460009081526002602052604090205460ff166106105760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206d73672e76616c756560781b60448201526064016105b4565b61062561061f33868686610507565b82610cc5565b6106655760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016105b4565b6001805460ff169034906000908190841480610684575060ff84166004145b1561071e5760085460075461069e9161ffff169033610b81565b61ffff166106c85760006106b433600954610e06565b90506106c08185611924565b935050610704565b600154610100900460ff1693506106df8888610e61565b91506106ea86610e9d565b9050806106f78334611924565b6107019190611924565b92505b600780549060006107148361193b565b919050555061074d565b6107288888610e61565b915061073386610e9d565b9050806107408334611924565b61074a9190611924565b92505b6040805160ff86168152346020820152908101839052606081018290526080810184905261ffff8716906001600160a01b038a169033907fef8be8195589a8a6990d8ec940c79dd6a43c0ac18064d5682feeb99c599dd3e59060a00160405180910390a45050505050505050565b6000806107d06107ca85610fff565b84611052565b9150505b92915050565b6000546001600160a01b031633146108045760405162461bcd60e51b81526004016105b4906118a4565b604080516060808201835260ff86811680845286821660208086018290529287169486018590526001805461ffff1916831761010083021762ff00001916620100008702179055855191825291810191909152928301919091527fe49bc7af060cc5d9279e2e61607f66121d7982a25145a843a953c6467b54a855910160405180910390a1505050565b6000546001600160a01b031633146108b85760405162461bcd60e51b81526004016105b4906118a4565b600091825260026020526040909120805460ff1916911515919091179055565b6000546001600160a01b031633146109025760405162461bcd60e51b81526004016105b4906118a4565b61090c600061106e565b565b6000546001600160a01b031633146109385760405162461bcd60e51b81526004016105b4906118a4565b60405133904780156108fc02916000818181858888f19350505050158015610964573d6000803e3d6000fd5b50565b600054600160a01b900460ff16156109b45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b4565b612710600654600954866109c891906118d9565b6109d291906118d9565b1115610a175760405162461bcd60e51b8152602060048201526014602482015273496e76616c696420626173697320706f696e747360601b60448201526064016105b4565b3460009081526002602052604090205460ff16610a6a5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206d73672e76616c756560781b60448201526064016105b4565b610a7f610a7987878787610507565b83610cc5565b610abf5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016105b4565b8015610ace57610ace816110be565b60015462010000900460ff16346000610ae78888610e61565b90506000610af487610e9d565b905080610b018334611924565b610b0b9190611924565b6040805160ff87168152346020820152908101849052606081018390526080810182905290935061ffff8816906001600160a01b03808c1691908d16907fef8be8195589a8a6990d8ec940c79dd6a43c0ac18064d5682feeb99c599dd3e59060a00160405180910390a450505050505050505050565b600083610b8f600143611924565b408385600a604051602001610ba794939291906117d9565b6040516020818303038152906040528051906020012060f01c610bca9190611956565b949350505050565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016105b4906118a4565b6008805461ffff191661ffff92909216919091179055565b6000546001600160a01b03163314610c3e5760405162461bcd60e51b81526004016105b4906118a4565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c8a5760405162461bcd60e51b81526004016105b4906118a4565b60068190556040518181527fddd285af8d9630a6ea010440c8512806893e826a4b45e39eadb38049406f61959060200160405180910390a150565b6003546000906001600160a01b0316610d185760405162461bcd60e51b81526020600482015260156024820152741d985b1a59185d195c881b5d5cdd081899481cd95d605a1b60448201526064016105b4565b6000610d266107ca85610fff565b6003546001600160a01b03908116911614949350505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b81526004016105b4906118a4565b600955565b6000546001600160a01b03163314610d985760405162461bcd60e51b81526004016105b4906118a4565b6001600160a01b038116610dfd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b4565b6109648161106e565b600080612710610e168434611905565b610e2091906118f1565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610e59573d6000803e3d6000fd5b509392505050565b60006001600160a01b0383161580610e8157506001600160a01b03831633145b15610e8e575060006107d4565b6000612710610e168434611905565b600061ffff8216610eb057506000919050565b60048054604051637ddd3db160e11b815261ffff8516928101929092526001600160a01b03169063fbba7b629060240160206040518083038186803b158015610ef857600080fd5b505afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190611748565b610f715760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964205f6775696c645479706560701b60448201526064016105b4565b600061271060065434610f849190611905565b610f8e91906118f1565b600554604051637039d7b960e11b815261ffff861660048201523360248201529192506001600160a01b03169063e073af729083906044016000604051808303818588803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b50939695505050505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b6000806000611061858561112d565b91509150610e598161119d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818152600b60205260409020541561111a5760405162461bcd60e51b815260206004820152601e60248201527f546865206861736820697320616c7265616479207472616e736163746564000060448201526064016105b4565b6000908152600b60205260409020439055565b6000808251604114156111645760208301516040840151606085015160001a61115887828585611358565b94509450505050611196565b82516040141561118e5760208301516040840151611183868383611445565b935093505050611196565b506000905060025b9250929050565b60008160048111156111b1576111b16119a3565b14156111ba5750565b60018160048111156111ce576111ce6119a3565b141561121c5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105b4565b6002816004811115611230576112306119a3565b141561127e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105b4565b6003816004811115611292576112926119a3565b14156112eb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105b4565b60048160048111156112ff576112ff6119a3565b14156109645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016105b4565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561138f575060009050600361143c565b8460ff16601b141580156113a757508460ff16601c14155b156113b8575060009050600461143c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561140c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166114355760006001925092505061143c565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161146687828885611358565b935093505050935093915050565b600082601f83011261148557600080fd5b813567ffffffffffffffff808211156114a0576114a06119b9565b604051601f8301601f19908116603f011681019082821181831017156114c8576114c86119b9565b816040528381528660208588010111156114e157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803561ffff8116811461151357600080fd5b919050565b803560ff8116811461151357600080fd5b60006020828403121561153b57600080fd5b8135611546816119cf565b9392505050565b60008060008060008060c0878903121561156657600080fd5b8635611571816119cf565b95506020870135611581816119cf565b94506040870135935061159660608801611501565b9250608087013567ffffffffffffffff8111156115b257600080fd5b6115be89828a01611474565b92505060a087013590509295509295509295565b600080600080608085870312156115e857600080fd5b84356115f3816119cf565b93506020850135925061160860408601611501565b9150606085013567ffffffffffffffff81111561162457600080fd5b61163087828801611474565b91505092959194509250565b6000806000806080858703121561165257600080fd5b843561165d816119cf565b9350602085013561166d816119cf565b92506040850135915061168260608601611501565b905092959194509250565b60006020828403121561169f57600080fd5b5035919050565b600080604083850312156116b957600080fd5b82359150602083013567ffffffffffffffff8111156116d757600080fd5b6116e385828601611474565b9150509250929050565b6000602082840312156116ff57600080fd5b61154682611501565b60008060006060848603121561171d57600080fd5b61172684611501565b925060208401359150604084013561173d816119cf565b809150509250925092565b60006020828403121561175a57600080fd5b5051919050565b6000806040838503121561177457600080fd5b823591506020830135801515811461178b57600080fd5b809150509250929050565b6000806000606084860312156117ab57600080fd5b6117b484611518565b92506117c260208501611518565b91506117d060408501611518565b90509250925092565b848152600060206bffffffffffffffffffffffff198660601b168184015284603484015260546000855481600182811c91508083168061181a57607f831692505b86831081141561183857634e487b7160e01b85526022600452602485fd5b80801561184c576001811461186157611892565b60ff1985168a880152838a0187019550611892565b60008b81526020902060005b858110156118885781548c82018a015290840190890161186d565b505086848b010195505b50939c9b505050505050505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156118ec576118ec611977565b500190565b6000826119005761190061198d565b500490565b600081600019048311821515161561191f5761191f611977565b500290565b60008282101561193657611936611977565b500390565b600060001982141561194f5761194f611977565b5060010190565b600061ffff8084168061196b5761196b61198d565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096457600080fdfea26469706673582212202683f0af64a097c959901f04a29e53c1a091635dc1705a3127009929802602c764736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000af1d50904a05ebe26ecb17333161be2971eb4a69000000000000000000000000a8abf045fe1a9ef0583e436393a6e4e0b483f7170000000000000000000000000ebb2b76fbdcc3a636b652fd3769154b5c196249
-----Decoded View---------------
Arg [0] : _validater (address): 0xAF1D50904A05Ebe26ECb17333161Be2971eb4a69
Arg [1] : _guildAssetAddress (address): 0xa8ABF045fe1A9Ef0583e436393a6E4E0B483F717
Arg [2] : _guildPoolAddress (address): 0x0EBB2B76FBdcc3a636b652fd3769154b5C196249
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000af1d50904a05ebe26ecb17333161be2971eb4a69
Arg [1] : 000000000000000000000000a8abf045fe1a9ef0583e436393a6e4e0b483f717
Arg [2] : 0000000000000000000000000ebb2b76fbdcc3a636b652fd3769154b5c196249
Loading...
Loading
Loading...
Loading
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.