Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SonicSubdomainManager
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 9999 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT /* /$$ /$$ /$$$$$$$ /$$$$$$ /$$ /$$ /$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$ | $$ /$$/| $$__ $$ /$$__ $$| $$ /$ | $$| $$$ | $$ | $$ /$$__ $$| $$__ $$ /$$__ $$ | $$ /$$/ | $$ \ $$| $$ \ $$| $$ /$$$| $$| $$$$| $$ | $$ | $$ \ $$| $$ \ $$| $$ \__/ | $$$$$/ | $$$$$$$/| $$ | $$| $$/$$ $$ $$| $$ $$ $$ | $$ | $$$$$$$$| $$$$$$$ | $$$$$$ | $$ $$ | $$__ $$| $$ | $$| $$$$_ $$$$| $$ $$$$ | $$ | $$__ $$| $$__ $$ \____ $$ | $$\ $$ | $$ \ $$| $$ | $$| $$$/ \ $$$| $$\ $$$ | $$ | $$ | $$| $$ \ $$ /$$ \ $$ | $$ \ $$| $$ | $$| $$$$$$/| $$/ \ $$| $$ \ $$ | $$$$$$$$| $$ | $$| $$$$$$$/| $$$$$$/ |__/ \__/|__/ |__/ \______/ |__/ \__/|__/ \__/ |________/|__/ |__/|_______/ \______/ krownlabs.app x.com/krownlabs discord.gg/KTU4krfhrG */ pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; contract SonicSubdomainManager is Ownable { struct Subdomain { address owner; uint256 tokenId; bool exists; } mapping(uint256 => mapping(bytes32 => Subdomain)) public subdomains; mapping(uint256 => string[]) private domainSubdomains; ISonicRegistry public registry; event SubdomainCreated(uint256 indexed tokenId, string label, address owner); event SubdomainTransferred(uint256 indexed tokenId, string label, address newOwner); constructor(address _registry) Ownable(msg.sender) { registry = ISonicRegistry(_registry); } function createSubdomain( uint256 tokenId, string calldata label, address owner ) external { require(registry.ownerOf(tokenId) == msg.sender, "Not domain owner"); bytes32 labelHash = keccak256(bytes(label)); require(!subdomains[tokenId][labelHash].exists, "Subdomain exists"); subdomains[tokenId][labelHash] = Subdomain({ owner: owner, tokenId: tokenId, exists: true }); domainSubdomains[tokenId].push(label); emit SubdomainCreated(tokenId, label, owner); } function transferSubdomain( uint256 tokenId, string calldata label, address newOwner ) external { bytes32 labelHash = keccak256(bytes(label)); require(subdomains[tokenId][labelHash].exists, "Subdomain not found"); require( subdomains[tokenId][labelHash].owner == msg.sender || registry.ownerOf(tokenId) == msg.sender, "Not authorized" ); subdomains[tokenId][labelHash].owner = newOwner; emit SubdomainTransferred(tokenId, label, newOwner); } function exists(uint256 tokenId, string calldata label) external view returns (bool) { return subdomains[tokenId][keccak256(bytes(label))].exists; } function getSubdomainOwner(uint256 tokenId, string calldata label) external view returns (address) { bytes32 labelHash = keccak256(bytes(label)); require(subdomains[tokenId][labelHash].exists, "Subdomain not found"); return subdomains[tokenId][labelHash].owner; } function getSubdomains(uint256 tokenId) external view returns (string[] memory labels, address[] memory owners) { string[] memory subdomainLabels = domainSubdomains[tokenId]; uint256 length = subdomainLabels.length; labels = new string[](length); owners = new address[](length); for (uint256 i = 0; i < length; i++) { string memory label = subdomainLabels[i]; bytes32 labelHash = keccak256(bytes(label)); labels[i] = label; owners[i] = subdomains[tokenId][labelHash].owner; } return (labels, owners); } } interface ISonicRegistry { function ownerOf(uint256 tokenId) external view returns (address); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @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 { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _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 (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
{ "optimizer": { "enabled": true, "runs": 9999 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"string","name":"label","type":"string"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"SubdomainCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"string","name":"label","type":"string"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"SubdomainTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"label","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"name":"createSubdomain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"label","type":"string"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"label","type":"string"}],"name":"getSubdomainOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getSubdomains","outputs":[{"internalType":"string[]","name":"labels","type":"string[]"},{"internalType":"address[]","name":"owners","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISonicRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"subdomains","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"label","type":"string"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferSubdomain","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516112ff3803806112ff83398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600380546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b6111ec806101136000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80637b103999116100765780638da5cb5b1161005b5780638da5cb5b14610207578063b466221914610225578063f2fde38b1461023857600080fd5b80637b103999146101c65780638c1c2591146101e657600080fd5b806343d9eb7b116100a757806343d9eb7b146101635780636fece86114610186578063715018a6146101be57600080fd5b806302757cd9146100c3578063264f2ad11461014e575b600080fd5b6101156100d1366004610c4f565b6001602081815260009384526040808520909152918352912080549181015460029091015473ffffffffffffffffffffffffffffffffffffffff9092169160ff1683565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260208401929092521515908201526060015b60405180910390f35b61016161015c366004610cdc565b61024b565b005b610176610171366004610d3b565b6104da565b6040519015158152602001610145565b610199610194366004610d3b565b610522565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610145565b610161610600565b6003546101999073ffffffffffffffffffffffffffffffffffffffff1681565b6101f96101f4366004610d87565b610614565b604051610145929190610df2565b60005473ffffffffffffffffffffffffffffffffffffffff16610199565b610161610233366004610cdc565b610867565b610161610246366004610ede565b610b23565b6000838360405161025d929190610f02565b60408051918290039091206000878152600160209081528382208383529052919091206002015490915060ff166102f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f537562646f6d61696e206e6f7420666f756e640000000000000000000000000060448201526064015b60405180910390fd5b600085815260016020908152604080832084845290915290205473ffffffffffffffffffffffffffffffffffffffff163314806103d857506003546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101879052339173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561039c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c09190610f12565b73ffffffffffffffffffffffffffffffffffffffff16145b61043e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f7420617574686f72697a656400000000000000000000000000000000000060448201526064016102ec565b60008581526001602090815260408083208484529091529081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555185907f33d0b198a7a8a74e4aa7d891bc13e8d3ffcfdbdbfeb29873e95655304656a2e6906104cb90879087908790610f2f565b60405180910390a25050505050565b600083815260016020526040808220905182906104fa9086908690610f02565b604080519182900390912082526020820192909252016000206002015460ff16949350505050565b6000808383604051610535929190610f02565b60408051918290039091206000878152600160209081528382208383529052919091206002015490915060ff166105c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f537562646f6d61696e206e6f7420666f756e640000000000000000000000000060448201526064016102ec565b6000858152600160209081526040808320938352929052205473ffffffffffffffffffffffffffffffffffffffff1690509392505050565b610608610b87565b6106126000610bda565b565b606080600060026000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156106f857838290600052602060002001805461066b90610f9c565b80601f016020809104026020016040519081016040528092919081815260200182805461069790610f9c565b80156106e45780601f106106b9576101008083540402835291602001916106e4565b820191906000526020600020905b8154815290600101906020018083116106c757829003601f168201915b50505050508152602001906001019061064c565b505082519293508291505067ffffffffffffffff81111561071b5761071b610fef565b60405190808252806020026020018201604052801561074e57816020015b60608152602001906001900390816107395790505b5093508067ffffffffffffffff81111561076a5761076a610fef565b604051908082528060200260200182016040528015610793578160200160208202803683370190505b50925060005b8181101561085f5760008382815181106107b5576107b561101e565b60200260200101519050600081805190602001209050818784815181106107de576107de61101e565b60209081029190910181019190915260008981526001825260408082208483529092522054865173ffffffffffffffffffffffffffffffffffffffff909116908790859081106108305761083061101e565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101525050600101610799565b505050915091565b6003546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101869052339173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa9190610f12565b73ffffffffffffffffffffffffffffffffffffffff1614610977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420646f6d61696e206f776e65720000000000000000000000000000000060448201526064016102ec565b60008383604051610989929190610f02565b60408051918290039091206000878152600160209081528382208383529052919091206002015490915060ff1615610a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f537562646f6d61696e206578697374730000000000000000000000000000000060448201526064016102ec565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff84811682526020808301898152600184860181815260008c81528285528781208982528552878120965187547fffffffffffffffffffffffff00000000000000000000000000000000000000001696169590951786559151858201559051600294850180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558983529281529281208054928301815581529190912001610aee84868361109c565b50847fb956716241b6385ec84ee07dc8c53683ed99d1737035b5f356425c7b5a82e3e98585856040516104cb93929190610f2f565b610b2b610b87565b73ffffffffffffffffffffffffffffffffffffffff8116610b7b576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024016102ec565b610b8481610bda565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610612576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016102ec565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215610c6257600080fd5b50508035926020909101359150565b60008083601f840112610c8357600080fd5b50813567ffffffffffffffff811115610c9b57600080fd5b602083019150836020828501011115610cb357600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b8457600080fd5b60008060008060608587031215610cf257600080fd5b84359350602085013567ffffffffffffffff811115610d1057600080fd5b610d1c87828801610c71565b9094509250506040850135610d3081610cba565b939692955090935050565b600080600060408486031215610d5057600080fd5b83359250602084013567ffffffffffffffff811115610d6e57600080fd5b610d7a86828701610c71565b9497909650939450505050565b600060208284031215610d9957600080fd5b5035919050565b600081518084526020840193506020830160005b82811015610de857815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610db4565b5093949350505050565b6000604082016040835280855180835260608501915060608160051b86010192506020870160005b82811015610ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08786030184528151805180875260005b81811015610e6f57602081840181015189830182015201610e53565b5060006020828901015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011688010196505050602082019150602084019350600181019050610e1a565b505050508281036020840152610ed58185610da0565b95945050505050565b600060208284031215610ef057600080fd5b8135610efb81610cba565b9392505050565b8183823760009101908152919050565b600060208284031215610f2457600080fd5b8151610efb81610cba565b6040815282604082015282846060830137600060608483010152600060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116830101905073ffffffffffffffffffffffffffffffffffffffff83166020830152949350505050565b600181811c90821680610fb057607f821691505b602082108103610fe9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b601f82111561109757806000526020600020601f840160051c810160208510156110745750805b601f840160051c820191505b818110156110945760008155600101611080565b50505b505050565b67ffffffffffffffff8311156110b4576110b4610fef565b6110c8836110c28354610f9c565b8361104d565b6000601f84116001811461111a57600085156110e45750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611094565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156111695786850135825560209485019460019092019101611149565b50868210156111a4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b018355505050505056fea2646970667358221220fb934d7910a5d987a56032f46da6a1b6f369aed7b14762a06db74ba8732c7ca264736f6c634300081a00330000000000000000000000003d9d5acc7dbacf1662bc6d1ea8479f88b90b3cfb
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80637b103999116100765780638da5cb5b1161005b5780638da5cb5b14610207578063b466221914610225578063f2fde38b1461023857600080fd5b80637b103999146101c65780638c1c2591146101e657600080fd5b806343d9eb7b116100a757806343d9eb7b146101635780636fece86114610186578063715018a6146101be57600080fd5b806302757cd9146100c3578063264f2ad11461014e575b600080fd5b6101156100d1366004610c4f565b6001602081815260009384526040808520909152918352912080549181015460029091015473ffffffffffffffffffffffffffffffffffffffff9092169160ff1683565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260208401929092521515908201526060015b60405180910390f35b61016161015c366004610cdc565b61024b565b005b610176610171366004610d3b565b6104da565b6040519015158152602001610145565b610199610194366004610d3b565b610522565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610145565b610161610600565b6003546101999073ffffffffffffffffffffffffffffffffffffffff1681565b6101f96101f4366004610d87565b610614565b604051610145929190610df2565b60005473ffffffffffffffffffffffffffffffffffffffff16610199565b610161610233366004610cdc565b610867565b610161610246366004610ede565b610b23565b6000838360405161025d929190610f02565b60408051918290039091206000878152600160209081528382208383529052919091206002015490915060ff166102f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f537562646f6d61696e206e6f7420666f756e640000000000000000000000000060448201526064015b60405180910390fd5b600085815260016020908152604080832084845290915290205473ffffffffffffffffffffffffffffffffffffffff163314806103d857506003546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101879052339173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561039c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c09190610f12565b73ffffffffffffffffffffffffffffffffffffffff16145b61043e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f7420617574686f72697a656400000000000000000000000000000000000060448201526064016102ec565b60008581526001602090815260408083208484529091529081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555185907f33d0b198a7a8a74e4aa7d891bc13e8d3ffcfdbdbfeb29873e95655304656a2e6906104cb90879087908790610f2f565b60405180910390a25050505050565b600083815260016020526040808220905182906104fa9086908690610f02565b604080519182900390912082526020820192909252016000206002015460ff16949350505050565b6000808383604051610535929190610f02565b60408051918290039091206000878152600160209081528382208383529052919091206002015490915060ff166105c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f537562646f6d61696e206e6f7420666f756e640000000000000000000000000060448201526064016102ec565b6000858152600160209081526040808320938352929052205473ffffffffffffffffffffffffffffffffffffffff1690509392505050565b610608610b87565b6106126000610bda565b565b606080600060026000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156106f857838290600052602060002001805461066b90610f9c565b80601f016020809104026020016040519081016040528092919081815260200182805461069790610f9c565b80156106e45780601f106106b9576101008083540402835291602001916106e4565b820191906000526020600020905b8154815290600101906020018083116106c757829003601f168201915b50505050508152602001906001019061064c565b505082519293508291505067ffffffffffffffff81111561071b5761071b610fef565b60405190808252806020026020018201604052801561074e57816020015b60608152602001906001900390816107395790505b5093508067ffffffffffffffff81111561076a5761076a610fef565b604051908082528060200260200182016040528015610793578160200160208202803683370190505b50925060005b8181101561085f5760008382815181106107b5576107b561101e565b60200260200101519050600081805190602001209050818784815181106107de576107de61101e565b60209081029190910181019190915260008981526001825260408082208483529092522054865173ffffffffffffffffffffffffffffffffffffffff909116908790859081106108305761083061101e565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101525050600101610799565b505050915091565b6003546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101869052339173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa9190610f12565b73ffffffffffffffffffffffffffffffffffffffff1614610977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420646f6d61696e206f776e65720000000000000000000000000000000060448201526064016102ec565b60008383604051610989929190610f02565b60408051918290039091206000878152600160209081528382208383529052919091206002015490915060ff1615610a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f537562646f6d61696e206578697374730000000000000000000000000000000060448201526064016102ec565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff84811682526020808301898152600184860181815260008c81528285528781208982528552878120965187547fffffffffffffffffffffffff00000000000000000000000000000000000000001696169590951786559151858201559051600294850180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558983529281529281208054928301815581529190912001610aee84868361109c565b50847fb956716241b6385ec84ee07dc8c53683ed99d1737035b5f356425c7b5a82e3e98585856040516104cb93929190610f2f565b610b2b610b87565b73ffffffffffffffffffffffffffffffffffffffff8116610b7b576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024016102ec565b610b8481610bda565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610612576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016102ec565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215610c6257600080fd5b50508035926020909101359150565b60008083601f840112610c8357600080fd5b50813567ffffffffffffffff811115610c9b57600080fd5b602083019150836020828501011115610cb357600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b8457600080fd5b60008060008060608587031215610cf257600080fd5b84359350602085013567ffffffffffffffff811115610d1057600080fd5b610d1c87828801610c71565b9094509250506040850135610d3081610cba565b939692955090935050565b600080600060408486031215610d5057600080fd5b83359250602084013567ffffffffffffffff811115610d6e57600080fd5b610d7a86828701610c71565b9497909650939450505050565b600060208284031215610d9957600080fd5b5035919050565b600081518084526020840193506020830160005b82811015610de857815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101610db4565b5093949350505050565b6000604082016040835280855180835260608501915060608160051b86010192506020870160005b82811015610ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08786030184528151805180875260005b81811015610e6f57602081840181015189830182015201610e53565b5060006020828901015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011688010196505050602082019150602084019350600181019050610e1a565b505050508281036020840152610ed58185610da0565b95945050505050565b600060208284031215610ef057600080fd5b8135610efb81610cba565b9392505050565b8183823760009101908152919050565b600060208284031215610f2457600080fd5b8151610efb81610cba565b6040815282604082015282846060830137600060608483010152600060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116830101905073ffffffffffffffffffffffffffffffffffffffff83166020830152949350505050565b600181811c90821680610fb057607f821691505b602082108103610fe9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b601f82111561109757806000526020600020601f840160051c810160208510156110745750805b601f840160051c820191505b818110156110945760008155600101611080565b50505b505050565b67ffffffffffffffff8311156110b4576110b4610fef565b6110c8836110c28354610f9c565b8361104d565b6000601f84116001811461111a57600085156110e45750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611094565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156111695786850135825560209485019460019092019101611149565b50868210156111a4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b018355505050505056fea2646970667358221220fb934d7910a5d987a56032f46da6a1b6f369aed7b14762a06db74ba8732c7ca264736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003d9d5acc7dbacf1662bc6d1ea8479f88b90b3cfb
-----Decoded View---------------
Arg [0] : _registry (address): 0x3D9D5ACc7dBACf1662Bc6D1ea8479F88B90b3cfb
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003d9d5acc7dbacf1662bc6d1ea8479f88b90b3cfb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.