Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
Referral
Compiler Version
v0.6.12+commit.27d51765
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.6.12; pragma experimental ABIEncoderV2; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "./Interfaces/IReferral.sol"; contract Referral is IReferral, OwnableUpgradeable { mapping(address => bool) public access; mapping(string => address) public usedLink; struct UserReferalData { string refLink; uint256 refAmount; } mapping(address => UserReferalData) public referralLinkFromUser; mapping(address => string) public referral; function initialize() public initializer { __Ownable_init(); } function getRefAmountFromUser(address _user) public view returns (uint256) { return referralLinkFromUser[_user].refAmount; } function getLinkRefFromUser( address _user ) public view returns (string memory) { return referralLinkFromUser[_user].refLink; } function setAccess( address _address, bool _status ) external override onlyOwner { require(_address != address(0), "invalid _address!"); access[_address] = _status; emit AccessSet(_address, _status); } function createReferralLink(address user, string memory link) public { require(access[msg.sender], "!auth"); require( keccak256(abi.encodePacked(link)) != keccak256(abi.encodePacked("")), "Invalid Referral Link" ); require(usedLink[link] == address(0), "link already used"); require( keccak256(abi.encodePacked(referralLinkFromUser[user].refLink)) == keccak256(abi.encodePacked("")), "Already init a link for that user" ); referralLinkFromUser[user].refLink = link; usedLink[link] = user; emit CreateReferralLink(user, link); } function createReferralLinkByOwner( address[] memory users, string[] memory links ) public onlyOwner { for (uint256 i = 0; i < users.length; i++) { createReferralLink(users[i], links[i]); } } function changeReferralLink( string memory oldLink, string memory newLink ) public onlyOwner { address user = usedLink[oldLink]; referralLinkFromUser[user].refLink = newLink; usedLink[oldLink] = address(0); usedLink[newLink] = user; } function checkCanRegisterReferral( string memory linkReferral, address _user ) public view returns (bool, string memory) { // check is user that have a referral link before if ( keccak256(abi.encodePacked(referral[_user])) != keccak256(abi.encodePacked("")) ) { return (false, "User already have referral"); } // check is that link is a empty link if ( keccak256(abi.encodePacked(linkReferral)) == keccak256(abi.encodePacked("")) ) { return (false, "Invalid Referral Link"); } // check is that link, link to a user if (usedLink[linkReferral] == address(0)) { return (false, "Can not find referralLink"); } // user could not invite themself if (usedLink[linkReferral] == _user) { return (false, "Can not referral for yourselve"); } return (true, ""); } function _referralRegister( string memory linkReferral, address _user ) private { ( bool canRegisRef, string memory errorString ) = checkCanRegisterReferral(linkReferral, _user); require(canRegisRef, errorString); referral[_user] = linkReferral; referralLinkFromUser[usedLink[linkReferral]].refAmount++; emit ReferralRegister(_user, linkReferral, usedLink[linkReferral]); } function changeReferralAmountByOwner( address _user, uint256 _amount ) public onlyOwner { referralLinkFromUser[_user].refAmount = _amount; } function referralRegister( string memory _linkReferral, address _user ) public { require(access[msg.sender], "!auth"); _referralRegister(_linkReferral, _user); } receive() external payable {} }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "../GSN/ContextUpgradeable.sol"; import "../proxy/Initializable.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 OwnableUpgradeable is Initializable, ContextUpgradeable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ function __Ownable_init() internal initializer { __Context_init_unchained(); __Ownable_init_unchained(); } function __Ownable_init_unchained() internal initializer { 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(_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 { 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 virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } uint256[49] private __gap; }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "../proxy/Initializable.sol"; /* * @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. */ abstract contract ContextUpgradeable is Initializable { function __Context_init() internal initializer { __Context_init_unchained(); } function __Context_init_unchained() internal initializer { } function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } uint256[50] private __gap; }
// SPDX-License-Identifier: MIT // solhint-disable-next-line compiler-version pragma solidity >=0.4.24 <0.8.0; /** * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. * * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as * possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}. * * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. */ abstract contract Initializable { /** * @dev Indicates that the contract has been initialized. */ bool private _initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private _initializing; /** * @dev Modifier to protect an initializer function from being invoked twice. */ modifier initializer() { require(_initializing || _isConstructor() || !_initialized, "Initializable: contract is already initialized"); bool isTopLevelCall = !_initializing; if (isTopLevelCall) { _initializing = true; _initialized = true; } _; if (isTopLevelCall) { _initializing = false; } } /// @dev Returns true if and only if the function is running in the constructor function _isConstructor() private view returns (bool) { // extcodesize checks the size of the code stored in an address, and // address returns the current address. Since the code is still not // deployed when running a constructor, any checks on its code size will // yield zero, making it an effective way to detect if a contract is // under construction or not. address self = address(this); uint256 cs; // solhint-disable-next-line no-inline-assembly assembly { cs := extcodesize(self) } return cs == 0; } }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IReferral { event ReferralRegister( address userRegister, string linkReferral, address userReferer ); event CreateReferralLink(address user, string linkReferral); event RemoveReferralLink(address user, string linkReferral); event AccessSet(address indexed _address, bool _status); function setAccess(address _address, bool _status) external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_status","type":"bool"}],"name":"AccessSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"linkReferral","type":"string"}],"name":"CreateReferralLink","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":"userRegister","type":"address"},{"indexed":false,"internalType":"string","name":"linkReferral","type":"string"},{"indexed":false,"internalType":"address","name":"userReferer","type":"address"}],"name":"ReferralRegister","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"linkReferral","type":"string"}],"name":"RemoveReferralLink","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"access","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeReferralAmountByOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"oldLink","type":"string"},{"internalType":"string","name":"newLink","type":"string"}],"name":"changeReferralLink","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"linkReferral","type":"string"},{"internalType":"address","name":"_user","type":"address"}],"name":"checkCanRegisterReferral","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"link","type":"string"}],"name":"createReferralLink","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"string[]","name":"links","type":"string[]"}],"name":"createReferralLinkByOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getLinkRefFromUser","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getRefAmountFromUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referral","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referralLinkFromUser","outputs":[{"internalType":"string","name":"refLink","type":"string"},{"internalType":"uint256","name":"refAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_linkReferral","type":"string"},{"internalType":"address","name":"_user","type":"address"}],"name":"referralRegister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setAccess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"usedLink","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50611979806100206000396000f3fe6080604052600436106101025760003560e01c80638cda330211610095578063b4ac1adf11610064578063b4ac1adf146102c8578063b84614a5146102e8578063cd7897e514610308578063eb593da714610328578063f2fde38b1461034857610109565b80638cda3302146102395780638da5cb5b1461026657806393331a8714610288578063a132c9f8146102a857610109565b80636fae3d76116100d15780636fae3d76146101b5578063715018a6146101e25780637247959a146101f75780638129fc1c1461022457610109565b80630774050d1461010e578063175c00da146101305780631d7b7d1a146101505780633cd0d4f31461018757610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012e6101293660046113fb565b610368565b005b34801561013c57600080fd5b5061012e61014b366004611378565b6103ef565b34801561015c57600080fd5b5061017061016b3660046114ee565b6105fd565b60405161017e9291906116c5565b60405180910390f35b34801561019357600080fd5b506101a76101a236600461131b565b610838565b60405161017e9291906116f3565b3480156101c157600080fd5b506101d56101d036600461131b565b6108df565b60405161017e91906116ba565b3480156101ee57600080fd5b5061012e6108f4565b34801561020357600080fd5b5061021761021236600461131b565b610973565b60405161017e91906116e0565b34801561023057600080fd5b5061012e610a0e565b34801561024557600080fd5b5061025961025436600461131b565b610a99565b60405161017e91906118c3565b34801561027257600080fd5b5061027b610ab7565b60405161017e919061164d565b34801561029457600080fd5b5061012e6102a33660046113d1565b610ac6565b3480156102b457600080fd5b5061012e6102c33660046114ee565b610b1a565b3480156102d457600080fd5b5061012e6102e336600461153b565b610b57565b3480156102f457600080fd5b5061012e61030336600461133d565b610c64565b34801561031457600080fd5b5061027b6103233660046114b3565b610d1f565b34801561033457600080fd5b5061021761034336600461131b565b610d45565b34801561035457600080fd5b5061012e61036336600461131b565b610df0565b610370610ea7565b6033546001600160a01b039081169116146103a65760405162461bcd60e51b815260040161039d90611844565b60405180910390fd5b60005b82518110156103ea576103e28382815181106103c157fe5b60200260200101518383815181106103d557fe5b60200260200101516103ef565b6001016103a9565b505050565b3360009081526065602052604090205460ff1661041e5760405162461bcd60e51b815260040161039d906118a4565b60405160200161042d9061164a565b604051602081830303815290604052805190602001208160405160200161045491906115be565b6040516020818303038152906040528051906020012014156104885760405162461bcd60e51b815260040161039d90611786565b60006001600160a01b03166066826040516104a391906115be565b908152604051908190036020019020546001600160a01b0316146104d95760405162461bcd60e51b815260040161039d90611879565b6040516020016104e89061164a565b60408051601f1981840301815282825280516020918201206001600160a01b0386166000908152606783529290922091926105249291016115da565b60405160208183030381529060405280519060200120146105575760405162461bcd60e51b815260040161039d906117b5565b6001600160a01b038216600090815260676020908152604090912082516105809284019061119a565b508160668260405161059291906115be565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b0319909316929092179091557f1a938137fd654724b39f6dc15cc516ca0b5eddea492eb981708d06fa15fd0381906105f19084908490611661565b60405180910390a15050565b600060606040516020016106109061164a565b60408051601f1981840301815282825280516020918201206001600160a01b03871660009081526068835292909220919261064c9291016115da565b60405160208183030381529060405280519060200120146106a557505060408051808201909152601a81527f5573657220616c7265616479206861766520726566657272616c0000000000006020820152600090610831565b6040516020016106b49061164a565b60405160208183030381529060405280519060200120846040516020016106db91906115be565b60405160208183030381529060405280519060200120141561072d575050604080518082019091526015815274496e76616c696420526566657272616c204c696e6b60581b6020820152600090610831565b60006001600160a01b031660668560405161074891906115be565b908152604051908190036020019020546001600160a01b031614156107a557505060408051808201909152601981527f43616e206e6f742066696e6420726566657272616c4c696e6b000000000000006020820152600090610831565b826001600160a01b03166066856040516107bf91906115be565b908152604051908190036020019020546001600160a01b0316141561081c57505060408051808201909152601e81527f43616e206e6f7420726566657272616c20666f7220796f757273656c766500006020820152600090610831565b50506040805160208101909152600081526001905b9250929050565b60676020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156108cf5780601f106108a4576101008083540402835291602001916108cf565b820191906000526020600020905b8154815290600101906020018083116108b257829003601f168201915b5050505050908060010154905082565b60656020526000908152604090205460ff1681565b6108fc610ea7565b6033546001600160a01b039081169116146109295760405162461bcd60e51b815260040161039d90611844565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b60686020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b505050505081565b600054610100900460ff1680610a275750610a27610eab565b80610a35575060005460ff16155b610a515760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff16158015610a7c576000805460ff1961ff0019909116610100171660011790555b610a84610eb1565b8015610a96576000805461ff00191690555b50565b6001600160a01b031660009081526067602052604090206001015490565b6033546001600160a01b031690565b610ace610ea7565b6033546001600160a01b03908116911614610afb5760405162461bcd60e51b815260040161039d90611844565b6001600160a01b03909116600090815260676020526040902060010155565b3360009081526065602052604090205460ff16610b495760405162461bcd60e51b815260040161039d906118a4565b610b538282610f2f565b5050565b610b5f610ea7565b6033546001600160a01b03908116911614610b8c5760405162461bcd60e51b815260040161039d90611844565b6000606683604051610b9e91906115be565b9081526040805160209281900383019020546001600160a01b0316600081815260678452919091208451919350610bda9290919085019061119a565b506000606684604051610bed91906115be565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080606683604051610c3091906115be565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b610c6c610ea7565b6033546001600160a01b03908116911614610c995760405162461bcd60e51b815260040161039d90611844565b6001600160a01b038216610cbf5760405162461bcd60e51b815260040161039d90611715565b6001600160a01b03821660008181526065602052604090819020805460ff1916841515179055517fe0d0d1199aec56521e891cd26fe0ee3ef93dbbed0757861a01e39fe747b4b68490610d139084906116ba565b60405180910390a25050565b80516020818301810180516066825292820191909301209152546001600160a01b031681565b6001600160a01b03811660009081526067602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610de45780601f10610db957610100808354040283529160200191610de4565b820191906000526020600020905b815481529060010190602001808311610dc757829003601f168201915b50505050509050919050565b610df8610ea7565b6033546001600160a01b03908116911614610e255760405162461bcd60e51b815260040161039d90611844565b6001600160a01b038116610e4b5760405162461bcd60e51b815260040161039d90611740565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b303b1590565b600054610100900460ff1680610eca5750610eca610eab565b80610ed8575060005460ff16155b610ef45760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff16158015610f1f576000805460ff1961ff0019909116610100171660011790555b610f2761103f565b610a846110c0565b60006060610f3d84846105fd565b91509150818190610f615760405162461bcd60e51b815260040161039d91906116e0565b506001600160a01b03831660009081526068602090815260409091208551610f8b9287019061119a565b5060676000606686604051610fa091906115be565b9081526040805160209281900383019020546001600160a01b03168352908201929092528101600020600190810180549091019055517f2724304b22f77645fc474d70352be31791b30a517d1432610b662aff4c8bbe00908490869060669061100a9083906115be565b908152604051908190036020018120546110319392916001600160a01b0390911690611685565b60405180910390a150505050565b600054610100900460ff16806110585750611058610eab565b80611066575060005460ff16155b6110825760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff16158015610a84576000805460ff1961ff0019909116610100171660011790558015610a96576000805461ff001916905550565b600054610100900460ff16806110d957506110d9610eab565b806110e7575060005460ff16155b6111035760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff1615801561112e576000805460ff1961ff0019909116610100171660011790555b6000611138610ea7565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610a96576000805461ff001916905550565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111db57805160ff1916838001178555611208565b82800160010185558215611208579182015b828111156112085782518255916020019190600101906111ed565b50611214929150611218565b5090565b5b808211156112145760008155600101611219565b80356001600160a01b038116811461124457600080fd5b92915050565b600082601f83011261125a578081fd5b813561126d611268826118f3565b6118cc565b818152915060208083019084810160005b848110156112a757611295888484358a01016112b2565b8452928201929082019060010161127e565b505050505092915050565b600082601f8301126112c2578081fd5b813567ffffffffffffffff8111156112d8578182fd5b6112eb601f8201601f19166020016118cc565b915080825283602082850101111561130257600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561132c578081fd5b611336838361122d565b9392505050565b6000806040838503121561134f578081fd5b611359848461122d565b91506020830135801515811461136d578182fd5b809150509250929050565b6000806040838503121561138a578182fd5b82356001600160a01b03811681146113a0578283fd5b9150602083013567ffffffffffffffff8111156113bb578182fd5b6113c7858286016112b2565b9150509250929050565b600080604083850312156113e3578182fd5b6113ed848461122d565b946020939093013593505050565b6000806040838503121561140d578182fd5b823567ffffffffffffffff80821115611424578384fd5b818501915085601f830112611437578384fd5b8135611445611268826118f3565b80828252602080830192508086018a828387028901011115611465578889fd5b8896505b8487101561148f5761147b8b8261122d565b845260019690960195928101928101611469565b5090965087013593505050808211156114a6578283fd5b506113c78582860161124a565b6000602082840312156114c4578081fd5b813567ffffffffffffffff8111156114da578182fd5b6114e6848285016112b2565b949350505050565b60008060408385031215611500578182fd5b823567ffffffffffffffff811115611516578283fd5b611522858286016112b2565b925050611532846020850161122d565b90509250929050565b6000806040838503121561154d578182fd5b823567ffffffffffffffff80821115611564578384fd5b611570868387016112b2565b93506020850135915080821115611585578283fd5b506113c7858286016112b2565b600081518084526115aa816020860160208601611913565b601f01601f19169290920160200192915050565b600082516115d0818460208701611913565b9190910192915050565b60008083546001808216600081146115f957600181146116105761163f565b60ff198316865260028304607f168601935061163f565b600283048786526020808720875b838110156116375781548a82015290850190820161161e565b505050860193505b509195945050505050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03831681526040602082018190526000906114e690830184611592565b600060018060a01b038086168352606060208401526116a76060840186611592565b9150808416604084015250949350505050565b901515815260200190565b60008315158252604060208301526114e66040830184611592565b6000602082526113366020830184611592565b6000604082526117066040830185611592565b90508260208301529392505050565b602080825260119082015270696e76616c6964205f616464726573732160781b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b602080825260159082015274496e76616c696420526566657272616c204c696e6b60581b604082015260600190565b60208082526021908201527f416c726561647920696e69742061206c696e6b20666f722074686174207573656040820152603960f91b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601190820152701b1a5b9ac8185b1c9958591e481d5cd959607a1b604082015260600190565b602080825260059082015264042c2eae8d60db1b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff811182821017156118eb57600080fd5b604052919050565b600067ffffffffffffffff821115611909578081fd5b5060209081020190565b60005b8381101561192e578181015183820152602001611916565b8381111561193d576000848401525b5050505056fea26469706673582212203af200feb4d7ff1e8b785ddc5bfb3f3436bfb9311f1a671c812d5194d75be70564736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106101025760003560e01c80638cda330211610095578063b4ac1adf11610064578063b4ac1adf146102c8578063b84614a5146102e8578063cd7897e514610308578063eb593da714610328578063f2fde38b1461034857610109565b80638cda3302146102395780638da5cb5b1461026657806393331a8714610288578063a132c9f8146102a857610109565b80636fae3d76116100d15780636fae3d76146101b5578063715018a6146101e25780637247959a146101f75780638129fc1c1461022457610109565b80630774050d1461010e578063175c00da146101305780631d7b7d1a146101505780633cd0d4f31461018757610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012e6101293660046113fb565b610368565b005b34801561013c57600080fd5b5061012e61014b366004611378565b6103ef565b34801561015c57600080fd5b5061017061016b3660046114ee565b6105fd565b60405161017e9291906116c5565b60405180910390f35b34801561019357600080fd5b506101a76101a236600461131b565b610838565b60405161017e9291906116f3565b3480156101c157600080fd5b506101d56101d036600461131b565b6108df565b60405161017e91906116ba565b3480156101ee57600080fd5b5061012e6108f4565b34801561020357600080fd5b5061021761021236600461131b565b610973565b60405161017e91906116e0565b34801561023057600080fd5b5061012e610a0e565b34801561024557600080fd5b5061025961025436600461131b565b610a99565b60405161017e91906118c3565b34801561027257600080fd5b5061027b610ab7565b60405161017e919061164d565b34801561029457600080fd5b5061012e6102a33660046113d1565b610ac6565b3480156102b457600080fd5b5061012e6102c33660046114ee565b610b1a565b3480156102d457600080fd5b5061012e6102e336600461153b565b610b57565b3480156102f457600080fd5b5061012e61030336600461133d565b610c64565b34801561031457600080fd5b5061027b6103233660046114b3565b610d1f565b34801561033457600080fd5b5061021761034336600461131b565b610d45565b34801561035457600080fd5b5061012e61036336600461131b565b610df0565b610370610ea7565b6033546001600160a01b039081169116146103a65760405162461bcd60e51b815260040161039d90611844565b60405180910390fd5b60005b82518110156103ea576103e28382815181106103c157fe5b60200260200101518383815181106103d557fe5b60200260200101516103ef565b6001016103a9565b505050565b3360009081526065602052604090205460ff1661041e5760405162461bcd60e51b815260040161039d906118a4565b60405160200161042d9061164a565b604051602081830303815290604052805190602001208160405160200161045491906115be565b6040516020818303038152906040528051906020012014156104885760405162461bcd60e51b815260040161039d90611786565b60006001600160a01b03166066826040516104a391906115be565b908152604051908190036020019020546001600160a01b0316146104d95760405162461bcd60e51b815260040161039d90611879565b6040516020016104e89061164a565b60408051601f1981840301815282825280516020918201206001600160a01b0386166000908152606783529290922091926105249291016115da565b60405160208183030381529060405280519060200120146105575760405162461bcd60e51b815260040161039d906117b5565b6001600160a01b038216600090815260676020908152604090912082516105809284019061119a565b508160668260405161059291906115be565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b0319909316929092179091557f1a938137fd654724b39f6dc15cc516ca0b5eddea492eb981708d06fa15fd0381906105f19084908490611661565b60405180910390a15050565b600060606040516020016106109061164a565b60408051601f1981840301815282825280516020918201206001600160a01b03871660009081526068835292909220919261064c9291016115da565b60405160208183030381529060405280519060200120146106a557505060408051808201909152601a81527f5573657220616c7265616479206861766520726566657272616c0000000000006020820152600090610831565b6040516020016106b49061164a565b60405160208183030381529060405280519060200120846040516020016106db91906115be565b60405160208183030381529060405280519060200120141561072d575050604080518082019091526015815274496e76616c696420526566657272616c204c696e6b60581b6020820152600090610831565b60006001600160a01b031660668560405161074891906115be565b908152604051908190036020019020546001600160a01b031614156107a557505060408051808201909152601981527f43616e206e6f742066696e6420726566657272616c4c696e6b000000000000006020820152600090610831565b826001600160a01b03166066856040516107bf91906115be565b908152604051908190036020019020546001600160a01b0316141561081c57505060408051808201909152601e81527f43616e206e6f7420726566657272616c20666f7220796f757273656c766500006020820152600090610831565b50506040805160208101909152600081526001905b9250929050565b60676020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156108cf5780601f106108a4576101008083540402835291602001916108cf565b820191906000526020600020905b8154815290600101906020018083116108b257829003601f168201915b5050505050908060010154905082565b60656020526000908152604090205460ff1681565b6108fc610ea7565b6033546001600160a01b039081169116146109295760405162461bcd60e51b815260040161039d90611844565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b60686020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b505050505081565b600054610100900460ff1680610a275750610a27610eab565b80610a35575060005460ff16155b610a515760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff16158015610a7c576000805460ff1961ff0019909116610100171660011790555b610a84610eb1565b8015610a96576000805461ff00191690555b50565b6001600160a01b031660009081526067602052604090206001015490565b6033546001600160a01b031690565b610ace610ea7565b6033546001600160a01b03908116911614610afb5760405162461bcd60e51b815260040161039d90611844565b6001600160a01b03909116600090815260676020526040902060010155565b3360009081526065602052604090205460ff16610b495760405162461bcd60e51b815260040161039d906118a4565b610b538282610f2f565b5050565b610b5f610ea7565b6033546001600160a01b03908116911614610b8c5760405162461bcd60e51b815260040161039d90611844565b6000606683604051610b9e91906115be565b9081526040805160209281900383019020546001600160a01b0316600081815260678452919091208451919350610bda9290919085019061119a565b506000606684604051610bed91906115be565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080606683604051610c3091906115be565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b610c6c610ea7565b6033546001600160a01b03908116911614610c995760405162461bcd60e51b815260040161039d90611844565b6001600160a01b038216610cbf5760405162461bcd60e51b815260040161039d90611715565b6001600160a01b03821660008181526065602052604090819020805460ff1916841515179055517fe0d0d1199aec56521e891cd26fe0ee3ef93dbbed0757861a01e39fe747b4b68490610d139084906116ba565b60405180910390a25050565b80516020818301810180516066825292820191909301209152546001600160a01b031681565b6001600160a01b03811660009081526067602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610de45780601f10610db957610100808354040283529160200191610de4565b820191906000526020600020905b815481529060010190602001808311610dc757829003601f168201915b50505050509050919050565b610df8610ea7565b6033546001600160a01b03908116911614610e255760405162461bcd60e51b815260040161039d90611844565b6001600160a01b038116610e4b5760405162461bcd60e51b815260040161039d90611740565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b303b1590565b600054610100900460ff1680610eca5750610eca610eab565b80610ed8575060005460ff16155b610ef45760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff16158015610f1f576000805460ff1961ff0019909116610100171660011790555b610f2761103f565b610a846110c0565b60006060610f3d84846105fd565b91509150818190610f615760405162461bcd60e51b815260040161039d91906116e0565b506001600160a01b03831660009081526068602090815260409091208551610f8b9287019061119a565b5060676000606686604051610fa091906115be565b9081526040805160209281900383019020546001600160a01b03168352908201929092528101600020600190810180549091019055517f2724304b22f77645fc474d70352be31791b30a517d1432610b662aff4c8bbe00908490869060669061100a9083906115be565b908152604051908190036020018120546110319392916001600160a01b0390911690611685565b60405180910390a150505050565b600054610100900460ff16806110585750611058610eab565b80611066575060005460ff16155b6110825760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff16158015610a84576000805460ff1961ff0019909116610100171660011790558015610a96576000805461ff001916905550565b600054610100900460ff16806110d957506110d9610eab565b806110e7575060005460ff16155b6111035760405162461bcd60e51b815260040161039d906117f6565b600054610100900460ff1615801561112e576000805460ff1961ff0019909116610100171660011790555b6000611138610ea7565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610a96576000805461ff001916905550565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111db57805160ff1916838001178555611208565b82800160010185558215611208579182015b828111156112085782518255916020019190600101906111ed565b50611214929150611218565b5090565b5b808211156112145760008155600101611219565b80356001600160a01b038116811461124457600080fd5b92915050565b600082601f83011261125a578081fd5b813561126d611268826118f3565b6118cc565b818152915060208083019084810160005b848110156112a757611295888484358a01016112b2565b8452928201929082019060010161127e565b505050505092915050565b600082601f8301126112c2578081fd5b813567ffffffffffffffff8111156112d8578182fd5b6112eb601f8201601f19166020016118cc565b915080825283602082850101111561130257600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561132c578081fd5b611336838361122d565b9392505050565b6000806040838503121561134f578081fd5b611359848461122d565b91506020830135801515811461136d578182fd5b809150509250929050565b6000806040838503121561138a578182fd5b82356001600160a01b03811681146113a0578283fd5b9150602083013567ffffffffffffffff8111156113bb578182fd5b6113c7858286016112b2565b9150509250929050565b600080604083850312156113e3578182fd5b6113ed848461122d565b946020939093013593505050565b6000806040838503121561140d578182fd5b823567ffffffffffffffff80821115611424578384fd5b818501915085601f830112611437578384fd5b8135611445611268826118f3565b80828252602080830192508086018a828387028901011115611465578889fd5b8896505b8487101561148f5761147b8b8261122d565b845260019690960195928101928101611469565b5090965087013593505050808211156114a6578283fd5b506113c78582860161124a565b6000602082840312156114c4578081fd5b813567ffffffffffffffff8111156114da578182fd5b6114e6848285016112b2565b949350505050565b60008060408385031215611500578182fd5b823567ffffffffffffffff811115611516578283fd5b611522858286016112b2565b925050611532846020850161122d565b90509250929050565b6000806040838503121561154d578182fd5b823567ffffffffffffffff80821115611564578384fd5b611570868387016112b2565b93506020850135915080821115611585578283fd5b506113c7858286016112b2565b600081518084526115aa816020860160208601611913565b601f01601f19169290920160200192915050565b600082516115d0818460208701611913565b9190910192915050565b60008083546001808216600081146115f957600181146116105761163f565b60ff198316865260028304607f168601935061163f565b600283048786526020808720875b838110156116375781548a82015290850190820161161e565b505050860193505b509195945050505050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03831681526040602082018190526000906114e690830184611592565b600060018060a01b038086168352606060208401526116a76060840186611592565b9150808416604084015250949350505050565b901515815260200190565b60008315158252604060208301526114e66040830184611592565b6000602082526113366020830184611592565b6000604082526117066040830185611592565b90508260208301529392505050565b602080825260119082015270696e76616c6964205f616464726573732160781b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b602080825260159082015274496e76616c696420526566657272616c204c696e6b60581b604082015260600190565b60208082526021908201527f416c726561647920696e69742061206c696e6b20666f722074686174207573656040820152603960f91b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601190820152701b1a5b9ac8185b1c9958591e481d5cd959607a1b604082015260600190565b602080825260059082015264042c2eae8d60db1b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff811182821017156118eb57600080fd5b604052919050565b600067ffffffffffffffff821115611909578081fd5b5060209081020190565b60005b8381101561192e578181015183820152602001611916565b8381111561193d576000848401525b5050505056fea26469706673582212203af200feb4d7ff1e8b785ddc5bfb3f3436bfb9311f1a671c812d5194d75be70564736f6c634300060c0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.