Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
KycManager
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;
import "@openzeppelin/contracts/access/Ownable.sol";
import "./interfaces/IKycManager.sol";
contract KycManager is IKycManager, Ownable {
event GrantKyc(address _investor, KycType _kycType);
event RevokeKyc(address _investor, KycType _kycType);
event Banned(address _investor, bool _status);
event SetStrict(bool _status);
mapping(address => User) userList;
bool strictOn;
modifier onlyNonZeroAddress(address _investor) {
require(_investor != address(0), "invalid address");
_;
}
/*//////////////////////////////////////////////////////////////
GRANT KYC
//////////////////////////////////////////////////////////////*/
function grantKycInBulk(
address[] calldata _investors,
KycType[] calldata _kycTypes
) external onlyOwner {
require(_investors.length == _kycTypes.length, "invalid input");
for (uint256 i = 0; i < _investors.length; i++) {
_grantKyc(_investors[i], _kycTypes[i]);
}
}
function _grantKyc(
address _investor,
KycType _kycType
) internal onlyNonZeroAddress(_investor) {
require(
KycType.US_KYC == _kycType || KycType.GENERAL_KYC == _kycType,
"invalid kyc type"
);
User storage user = userList[_investor];
user.kycType = _kycType;
emit GrantKyc(_investor, _kycType);
}
/*//////////////////////////////////////////////////////////////
REVOKE KYC
//////////////////////////////////////////////////////////////*/
function revokeKycInBulk(address[] calldata _investors) external onlyOwner {
for (uint256 i = 0; i < _investors.length; i++) {
_revokeKyc(_investors[i]);
}
}
function _revokeKyc(
address _investor
) internal onlyNonZeroAddress(_investor) {
User storage user = userList[_investor];
emit RevokeKyc(_investor, user.kycType);
user.kycType = KycType.NON_KYC;
}
/*//////////////////////////////////////////////////////////////
BAN KYC
//////////////////////////////////////////////////////////////*/
function bannedInBulk(address[] calldata _investors) external onlyOwner {
for (uint256 i = 0; i < _investors.length; i++) {
_bannedInternal(_investors[i], true);
}
}
/*//////////////////////////////////////////////////////////////
UNBAN KYC
//////////////////////////////////////////////////////////////*/
function unBannedInBulk(address[] calldata _investors) external onlyOwner {
for (uint256 i = 0; i < _investors.length; i++) {
_bannedInternal(_investors[i], false);
}
}
function _bannedInternal(
address _investor,
bool _status
) internal onlyNonZeroAddress(_investor) {
User storage user = userList[_investor];
user.isBanned = _status;
emit Banned(_investor, _status);
}
function setStrict(bool _status) external onlyOwner {
strictOn = _status;
emit SetStrict(_status);
}
/*//////////////////////////////////////////////////////////////
USED BY INTERFACE
//////////////////////////////////////////////////////////////*/
function getUserInfo(
address _investor
) external view returns (User memory user) {
user = userList[_investor];
}
function onlyNotBanned(address _investor) external view {
require(!userList[_investor].isBanned, "user is banned");
}
function onlyKyc(address _investor) external view {
require(
KycType.NON_KYC != userList[_investor].kycType,
"not a kyc user"
);
}
function isBanned(address _investor) external view returns (bool) {
return userList[_investor].isBanned;
}
function isKyc(address _investor) external view returns (bool) {
return KycType.NON_KYC != userList[_investor].kycType;
}
function isUSKyc(address _investor) external view returns (bool) {
return KycType.US_KYC == userList[_investor].kycType;
}
function isNonUSKyc(address _investor) external view returns (bool) {
return KycType.GENERAL_KYC == userList[_investor].kycType;
}
function isStrict() external view returns (bool) {
return strictOn;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
interface IKycManager {
enum KycType {
NON_KYC,
US_KYC,
GENERAL_KYC
}
struct User {
KycType kycType;
bool isBanned;
}
function onlyNotBanned(address investor) external view;
function onlyKyc(address investor) external view;
function isBanned(address investor) external view returns (bool);
function isKyc(address investor) external view returns (bool);
function isUSKyc(address investor) external view returns (bool);
function isNonUSKyc(address investor) external view returns (bool);
function isStrict() external view returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
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() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
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 {
_transferOwnership(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");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
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": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_investor","type":"address"},{"indexed":false,"internalType":"bool","name":"_status","type":"bool"}],"name":"Banned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_investor","type":"address"},{"indexed":false,"internalType":"enum IKycManager.KycType","name":"_kycType","type":"uint8"}],"name":"GrantKyc","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":"_investor","type":"address"},{"indexed":false,"internalType":"enum IKycManager.KycType","name":"_kycType","type":"uint8"}],"name":"RevokeKyc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_status","type":"bool"}],"name":"SetStrict","type":"event"},{"inputs":[{"internalType":"address[]","name":"_investors","type":"address[]"}],"name":"bannedInBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_investor","type":"address"}],"name":"getUserInfo","outputs":[{"components":[{"internalType":"enum IKycManager.KycType","name":"kycType","type":"uint8"},{"internalType":"bool","name":"isBanned","type":"bool"}],"internalType":"struct IKycManager.User","name":"user","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_investors","type":"address[]"},{"internalType":"enum IKycManager.KycType[]","name":"_kycTypes","type":"uint8[]"}],"name":"grantKycInBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_investor","type":"address"}],"name":"isBanned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_investor","type":"address"}],"name":"isKyc","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_investor","type":"address"}],"name":"isNonUSKyc","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isStrict","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_investor","type":"address"}],"name":"isUSKyc","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_investor","type":"address"}],"name":"onlyKyc","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_investor","type":"address"}],"name":"onlyNotBanned","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_investors","type":"address[]"}],"name":"revokeKycInBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setStrict","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_investors","type":"address[]"}],"name":"unBannedInBulk","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561000f575f80fd5b5061002c61002161003160201b60201c565b61003860201b60201c565b6100f9565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61174b806101065f395ff3fe608060405234801561000f575f80fd5b50600436106100fe575f3560e01c80638da5cb5b11610095578063de287fd511610064578063de287fd5146102a8578063f2fde38b146102c4578063fa8485ce146102e0578063fc908069146102fc576100fe565b80638da5cb5b1461022257806397f735d514610240578063b659932614610270578063d713cc4a1461028c576100fe565b8063236e9630116100d1578063236e96301461019c5780633e295b9d146101b85780636386c1c7146101e8578063715018a614610218576100fe565b8063033b0ee714610102578063103257011461013257806318b57b0f146101505780631d5b99d214610180575b5f80fd5b61011c60048036038101906101179190610f90565b610318565b6040516101299190610fd5565b60405180910390f35b61013a610392565b6040516101479190610fd5565b60405180910390f35b61016a60048036038101906101659190610f90565b6103a7565b6040516101779190610fd5565b60405180910390f35b61019a60048036038101906101959190611018565b610422565b005b6101b660048036038101906101b191906110a4565b61047d565b005b6101d260048036038101906101cd9190610f90565b6104da565b6040516101df9190610fd5565b60405180910390f35b61020260048036038101906101fd9190610f90565b610555565b60405161020f919061119e565b60405180910390f35b6102206105ff565b005b61022a610612565b60405161023791906111c6565b60405180910390f35b61025a60048036038101906102559190610f90565b610639565b6040516102679190610fd5565b60405180910390f35b61028a60048036038101906102859190611234565b61068e565b005b6102a660048036038101906102a19190610f90565b61075d565b005b6102c260048036038101906102bd9190610f90565b6107ed565b005b6102de60048036038101906102d99190610f90565b6108a1565b005b6102fa60048036038101906102f591906110a4565b610923565b005b610316600480360381019061031191906110a4565b610982565b005b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff166002811115610377576103766110ef565b5b60028081111561038a576103896110ef565b5b149050919050565b5f60025f9054906101000a900460ff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff166002811115610406576104056110ef565b5b6001600281111561041a576104196110ef565b5b149050919050565b61042a6109e0565b8060025f6101000a81548160ff0219169083151502179055507f516f952268fa23f170b118a7abf6ceca79d5cf0c69c442ff2b8584ab42d42ae7816040516104729190610fd5565b60405180910390a150565b6104856109e0565b5f5b828290508110156104d5576104c28383838181106104a8576104a76112b2565b5b90506020020160208101906104bd9190610f90565b610a5e565b80806104cd90611315565b915050610487565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff166002811115610539576105386110ef565b5b5f600281111561054c5761054b6110ef565b5b14159050919050565b61055d610f02565b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f82015f9054906101000a900460ff1660028111156105c8576105c76110ef565b5b60028111156105da576105d96110ef565b5b81526020015f820160019054906101000a900460ff1615151515815250509050919050565b6106076109e0565b6106105f610b84565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff169050919050565b6106966109e0565b8181905084849050146106de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d5906113b6565b60405180910390fd5b5f5b8484905081101561075657610743858583818110610701576107006112b2565b5b90506020020160208101906107169190610f90565b848484818110610729576107286112b2565b5b905060200201602081019061073e91906113f7565b610c45565b808061074e90611315565b9150506106e0565b5050505050565b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff16156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e19061146c565b60405180910390fd5b50565b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff16600281111561084b5761084a6110ef565b5b5f600281111561085e5761085d6110ef565b5b0361089e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610895906114d4565b60405180910390fd5b50565b6108a96109e0565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e90611562565b60405180910390fd5b61092081610b84565b50565b61092b6109e0565b5f5b8282905081101561097d5761096a83838381811061094e5761094d6112b2565b5b90506020020160208101906109639190610f90565b6001610df2565b808061097590611315565b91505061092d565b505050565b61098a6109e0565b5f5b828290508110156109db576109c88383838181106109ad576109ac6112b2565b5b90506020020160208101906109c29190610f90565b5f610df2565b80806109d390611315565b91505061098c565b505050565b6109e8610efb565b73ffffffffffffffffffffffffffffffffffffffff16610a06610612565b73ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a53906115ca565b60405180910390fd5b565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490611632565b60405180910390fd5b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090507f3db15d8e93a3846a7a0873a1e280b9b5dfa7c2b333a42e84adf67059c99dd73c83825f015f9054906101000a900460ff16604051610b4d92919061165f565b60405180910390a15f815f015f6101000a81548160ff02191690836002811115610b7a57610b796110ef565b5b0217905550505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b815f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611632565b60405180910390fd5b816002811115610cc757610cc66110ef565b5b60016002811115610cdb57610cda6110ef565b5b1480610d0a5750816002811115610cf557610cf46110ef565b5b600280811115610d0857610d076110ef565b5b145b610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d40906116d0565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905082815f015f6101000a81548160ff02191690836002811115610dae57610dad6110ef565b5b02179055507fa5df25b8e0fb4ff979329737a7066fddadd5a880505313bf317e838470a52bf28484604051610de492919061165f565b60405180910390a150505050565b815f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5890611632565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905082815f0160016101000a81548160ff0219169083151502179055507fbe490a041de95d684835a21f3975102b719d9ede8cf410d4b6b06440bf8395098484604051610eed9291906116ee565b60405180910390a150505050565b5f33905090565b60405180604001604052805f6002811115610f2057610f1f6110ef565b5b81526020015f151581525090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f5f82610f36565b9050919050565b610f6f81610f55565b8114610f79575f80fd5b50565b5f81359050610f8a81610f66565b92915050565b5f60208284031215610fa557610fa4610f2e565b5b5f610fb284828501610f7c565b91505092915050565b5f8115159050919050565b610fcf81610fbb565b82525050565b5f602082019050610fe85f830184610fc6565b92915050565b610ff781610fbb565b8114611001575f80fd5b50565b5f8135905061101281610fee565b92915050565b5f6020828403121561102d5761102c610f2e565b5b5f61103a84828501611004565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261106457611063611043565b5b8235905067ffffffffffffffff81111561108157611080611047565b5b60208301915083602082028301111561109d5761109c61104b565b5b9250929050565b5f80602083850312156110ba576110b9610f2e565b5b5f83013567ffffffffffffffff8111156110d7576110d6610f32565b5b6110e38582860161104f565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061112d5761112c6110ef565b5b50565b5f81905061113d8261111c565b919050565b5f61114c82611130565b9050919050565b61115c81611142565b82525050565b61116b81610fbb565b82525050565b604082015f8201516111855f850182611153565b5060208201516111986020850182611162565b50505050565b5f6040820190506111b15f830184611171565b92915050565b6111c081610f55565b82525050565b5f6020820190506111d95f8301846111b7565b92915050565b5f8083601f8401126111f4576111f3611043565b5b8235905067ffffffffffffffff81111561121157611210611047565b5b60208301915083602082028301111561122d5761122c61104b565b5b9250929050565b5f805f806040858703121561124c5761124b610f2e565b5b5f85013567ffffffffffffffff81111561126957611268610f32565b5b6112758782880161104f565b9450945050602085013567ffffffffffffffff81111561129857611297610f32565b5b6112a4878288016111df565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f819050919050565b5f61131f8261130c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611351576113506112df565b5b600182019050919050565b5f82825260208201905092915050565b7f696e76616c696420696e707574000000000000000000000000000000000000005f82015250565b5f6113a0600d8361135c565b91506113ab8261136c565b602082019050919050565b5f6020820190508181035f8301526113cd81611394565b9050919050565b600381106113e0575f80fd5b50565b5f813590506113f1816113d4565b92915050565b5f6020828403121561140c5761140b610f2e565b5b5f611419848285016113e3565b91505092915050565b7f757365722069732062616e6e65640000000000000000000000000000000000005f82015250565b5f611456600e8361135c565b915061146182611422565b602082019050919050565b5f6020820190508181035f8301526114838161144a565b9050919050565b7f6e6f742061206b796320757365720000000000000000000000000000000000005f82015250565b5f6114be600e8361135c565b91506114c98261148a565b602082019050919050565b5f6020820190508181035f8301526114eb816114b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61154c60268361135c565b9150611557826114f2565b604082019050919050565b5f6020820190508181035f83015261157981611540565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6115b460208361135c565b91506115bf82611580565b602082019050919050565b5f6020820190508181035f8301526115e1816115a8565b9050919050565b7f696e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f61161c600f8361135c565b9150611627826115e8565b602082019050919050565b5f6020820190508181035f83015261164981611610565b9050919050565b61165981611142565b82525050565b5f6040820190506116725f8301856111b7565b61167f6020830184611650565b9392505050565b7f696e76616c6964206b79632074797065000000000000000000000000000000005f82015250565b5f6116ba60108361135c565b91506116c582611686565b602082019050919050565b5f6020820190508181035f8301526116e7816116ae565b9050919050565b5f6040820190506117015f8301856111b7565b61170e6020830184610fc6565b939250505056fea2646970667358221220ff32dda30dd07c741817b34f81fdb6905d90f2f9adb5399063820df4c2d2e25064736f6c63430008140033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100fe575f3560e01c80638da5cb5b11610095578063de287fd511610064578063de287fd5146102a8578063f2fde38b146102c4578063fa8485ce146102e0578063fc908069146102fc576100fe565b80638da5cb5b1461022257806397f735d514610240578063b659932614610270578063d713cc4a1461028c576100fe565b8063236e9630116100d1578063236e96301461019c5780633e295b9d146101b85780636386c1c7146101e8578063715018a614610218576100fe565b8063033b0ee714610102578063103257011461013257806318b57b0f146101505780631d5b99d214610180575b5f80fd5b61011c60048036038101906101179190610f90565b610318565b6040516101299190610fd5565b60405180910390f35b61013a610392565b6040516101479190610fd5565b60405180910390f35b61016a60048036038101906101659190610f90565b6103a7565b6040516101779190610fd5565b60405180910390f35b61019a60048036038101906101959190611018565b610422565b005b6101b660048036038101906101b191906110a4565b61047d565b005b6101d260048036038101906101cd9190610f90565b6104da565b6040516101df9190610fd5565b60405180910390f35b61020260048036038101906101fd9190610f90565b610555565b60405161020f919061119e565b60405180910390f35b6102206105ff565b005b61022a610612565b60405161023791906111c6565b60405180910390f35b61025a60048036038101906102559190610f90565b610639565b6040516102679190610fd5565b60405180910390f35b61028a60048036038101906102859190611234565b61068e565b005b6102a660048036038101906102a19190610f90565b61075d565b005b6102c260048036038101906102bd9190610f90565b6107ed565b005b6102de60048036038101906102d99190610f90565b6108a1565b005b6102fa60048036038101906102f591906110a4565b610923565b005b610316600480360381019061031191906110a4565b610982565b005b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff166002811115610377576103766110ef565b5b60028081111561038a576103896110ef565b5b149050919050565b5f60025f9054906101000a900460ff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff166002811115610406576104056110ef565b5b6001600281111561041a576104196110ef565b5b149050919050565b61042a6109e0565b8060025f6101000a81548160ff0219169083151502179055507f516f952268fa23f170b118a7abf6ceca79d5cf0c69c442ff2b8584ab42d42ae7816040516104729190610fd5565b60405180910390a150565b6104856109e0565b5f5b828290508110156104d5576104c28383838181106104a8576104a76112b2565b5b90506020020160208101906104bd9190610f90565b610a5e565b80806104cd90611315565b915050610487565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff166002811115610539576105386110ef565b5b5f600281111561054c5761054b6110ef565b5b14159050919050565b61055d610f02565b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f82015f9054906101000a900460ff1660028111156105c8576105c76110ef565b5b60028111156105da576105d96110ef565b5b81526020015f820160019054906101000a900460ff1615151515815250509050919050565b6106076109e0565b6106105f610b84565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff169050919050565b6106966109e0565b8181905084849050146106de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d5906113b6565b60405180910390fd5b5f5b8484905081101561075657610743858583818110610701576107006112b2565b5b90506020020160208101906107169190610f90565b848484818110610729576107286112b2565b5b905060200201602081019061073e91906113f7565b610c45565b808061074e90611315565b9150506106e0565b5050505050565b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff16156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e19061146c565b60405180910390fd5b50565b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff16600281111561084b5761084a6110ef565b5b5f600281111561085e5761085d6110ef565b5b0361089e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610895906114d4565b60405180910390fd5b50565b6108a96109e0565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e90611562565b60405180910390fd5b61092081610b84565b50565b61092b6109e0565b5f5b8282905081101561097d5761096a83838381811061094e5761094d6112b2565b5b90506020020160208101906109639190610f90565b6001610df2565b808061097590611315565b91505061092d565b505050565b61098a6109e0565b5f5b828290508110156109db576109c88383838181106109ad576109ac6112b2565b5b90506020020160208101906109c29190610f90565b5f610df2565b80806109d390611315565b91505061098c565b505050565b6109e8610efb565b73ffffffffffffffffffffffffffffffffffffffff16610a06610612565b73ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a53906115ca565b60405180910390fd5b565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490611632565b60405180910390fd5b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090507f3db15d8e93a3846a7a0873a1e280b9b5dfa7c2b333a42e84adf67059c99dd73c83825f015f9054906101000a900460ff16604051610b4d92919061165f565b60405180910390a15f815f015f6101000a81548160ff02191690836002811115610b7a57610b796110ef565b5b0217905550505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b815f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611632565b60405180910390fd5b816002811115610cc757610cc66110ef565b5b60016002811115610cdb57610cda6110ef565b5b1480610d0a5750816002811115610cf557610cf46110ef565b5b600280811115610d0857610d076110ef565b5b145b610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d40906116d0565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905082815f015f6101000a81548160ff02191690836002811115610dae57610dad6110ef565b5b02179055507fa5df25b8e0fb4ff979329737a7066fddadd5a880505313bf317e838470a52bf28484604051610de492919061165f565b60405180910390a150505050565b815f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5890611632565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905082815f0160016101000a81548160ff0219169083151502179055507fbe490a041de95d684835a21f3975102b719d9ede8cf410d4b6b06440bf8395098484604051610eed9291906116ee565b60405180910390a150505050565b5f33905090565b60405180604001604052805f6002811115610f2057610f1f6110ef565b5b81526020015f151581525090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f5f82610f36565b9050919050565b610f6f81610f55565b8114610f79575f80fd5b50565b5f81359050610f8a81610f66565b92915050565b5f60208284031215610fa557610fa4610f2e565b5b5f610fb284828501610f7c565b91505092915050565b5f8115159050919050565b610fcf81610fbb565b82525050565b5f602082019050610fe85f830184610fc6565b92915050565b610ff781610fbb565b8114611001575f80fd5b50565b5f8135905061101281610fee565b92915050565b5f6020828403121561102d5761102c610f2e565b5b5f61103a84828501611004565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261106457611063611043565b5b8235905067ffffffffffffffff81111561108157611080611047565b5b60208301915083602082028301111561109d5761109c61104b565b5b9250929050565b5f80602083850312156110ba576110b9610f2e565b5b5f83013567ffffffffffffffff8111156110d7576110d6610f32565b5b6110e38582860161104f565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061112d5761112c6110ef565b5b50565b5f81905061113d8261111c565b919050565b5f61114c82611130565b9050919050565b61115c81611142565b82525050565b61116b81610fbb565b82525050565b604082015f8201516111855f850182611153565b5060208201516111986020850182611162565b50505050565b5f6040820190506111b15f830184611171565b92915050565b6111c081610f55565b82525050565b5f6020820190506111d95f8301846111b7565b92915050565b5f8083601f8401126111f4576111f3611043565b5b8235905067ffffffffffffffff81111561121157611210611047565b5b60208301915083602082028301111561122d5761122c61104b565b5b9250929050565b5f805f806040858703121561124c5761124b610f2e565b5b5f85013567ffffffffffffffff81111561126957611268610f32565b5b6112758782880161104f565b9450945050602085013567ffffffffffffffff81111561129857611297610f32565b5b6112a4878288016111df565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f819050919050565b5f61131f8261130c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611351576113506112df565b5b600182019050919050565b5f82825260208201905092915050565b7f696e76616c696420696e707574000000000000000000000000000000000000005f82015250565b5f6113a0600d8361135c565b91506113ab8261136c565b602082019050919050565b5f6020820190508181035f8301526113cd81611394565b9050919050565b600381106113e0575f80fd5b50565b5f813590506113f1816113d4565b92915050565b5f6020828403121561140c5761140b610f2e565b5b5f611419848285016113e3565b91505092915050565b7f757365722069732062616e6e65640000000000000000000000000000000000005f82015250565b5f611456600e8361135c565b915061146182611422565b602082019050919050565b5f6020820190508181035f8301526114838161144a565b9050919050565b7f6e6f742061206b796320757365720000000000000000000000000000000000005f82015250565b5f6114be600e8361135c565b91506114c98261148a565b602082019050919050565b5f6020820190508181035f8301526114eb816114b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61154c60268361135c565b9150611557826114f2565b604082019050919050565b5f6020820190508181035f83015261157981611540565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6115b460208361135c565b91506115bf82611580565b602082019050919050565b5f6020820190508181035f8301526115e1816115a8565b9050919050565b7f696e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f61161c600f8361135c565b9150611627826115e8565b602082019050919050565b5f6020820190508181035f83015261164981611610565b9050919050565b61165981611142565b82525050565b5f6040820190506116725f8301856111b7565b61167f6020830184611650565b9392505050565b7f696e76616c6964206b79632074797065000000000000000000000000000000005f82015250565b5f6116ba60108361135c565b91506116c582611686565b602082019050919050565b5f6020820190508181035f8301526116e7816116ae565b9050919050565b5f6040820190506117015f8301856111b7565b61170e6020830184610fc6565b939250505056fea2646970667358221220ff32dda30dd07c741817b34f81fdb6905d90f2f9adb5399063820df4c2d2e25064736f6c63430008140033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.