Overview
S Balance
937 S
S Value
-More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 76 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Register | 672736 | 39 mins ago | IN | 10 S | 0.00018751 | ||||
Register | 672505 | 41 mins ago | IN | 15 S | 0.00017785 | ||||
Register | 668822 | 1 hr ago | IN | 5 S | 0.00019069 | ||||
Register | 659559 | 3 hrs ago | IN | 5 S | 0.00019021 | ||||
Register | 653324 | 5 hrs ago | IN | 15 S | 0.00016878 | ||||
Register | 652688 | 5 hrs ago | IN | 7.5 S | 0.00018973 | ||||
Register | 650673 | 5 hrs ago | IN | 15 S | 0.00040422 | ||||
Register | 649811 | 6 hrs ago | IN | 13.5 S | 0.00019011 | ||||
Register | 647686 | 6 hrs ago | IN | 20 S | 0.00019735 | ||||
Register | 646126 | 6 hrs ago | IN | 13.5 S | 0.00018966 | ||||
Register | 644664 | 7 hrs ago | IN | 5 S | 0.00019214 | ||||
Register | 643407 | 7 hrs ago | IN | 5 S | 0.00018155 | ||||
Register | 642180 | 7 hrs ago | IN | 10 S | 0.00017833 | ||||
Register | 641031 | 7 hrs ago | IN | 5 S | 0.00016228 | ||||
Register | 640924 | 7 hrs ago | IN | 5 S | 0.00018064 | ||||
Register | 639877 | 8 hrs ago | IN | 5 S | 0.00018018 | ||||
Register | 637800 | 8 hrs ago | IN | 7.5 S | 0.00018973 | ||||
Register | 637420 | 8 hrs ago | IN | 15 S | 0.00016878 | ||||
Register | 637113 | 8 hrs ago | IN | 15 S | 0.00016878 | ||||
Register | 636838 | 8 hrs ago | IN | 40 S | 0.00018603 | ||||
Register | 636122 | 8 hrs ago | IN | 5 S | 0.00019069 | ||||
Register | 635633 | 9 hrs ago | IN | 30 S | 0.00018654 | ||||
Register | 635545 | 9 hrs ago | IN | 40 S | 0.00020596 | ||||
Register | 634352 | 9 hrs ago | IN | 15 S | 0.00017785 | ||||
Register | 634102 | 9 hrs ago | IN | 5 S | 0.00018064 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SonicRegistrar
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"; import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; contract SonicRegistrar is Ownable, ReentrancyGuard { uint256 public constant THREECHAR = 15 ether; uint256 public constant FOURCHAR = 10 ether; uint256 public constant FIVECHAR = 7.5 ether; uint256 public constant SIXPLUSCHAR = 5 ether; uint256 public constant YEAR = 365 days; uint256 public constant MAX_REGISTRATION_YEARS = 5; struct DiscountTier { uint256 yearCount; uint256 discount; } DiscountTier[] public discountTiers; ISonicRegistry public registry; event DomainRegistered(string name, address owner, uint256 price, uint256 yearCount); event DomainRenewed(string name, uint256 tokenId, uint256 price, uint256 yearCount); event PaymentWithdrawn(address to, uint256 amount); constructor(address _registry) Ownable(msg.sender) { registry = ISonicRegistry(_registry); discountTiers.push(DiscountTier({yearCount: 2, discount: 500})); discountTiers.push(DiscountTier({yearCount: 3, discount: 1000})); discountTiers.push(DiscountTier({yearCount: 4, discount: 1500})); discountTiers.push(DiscountTier({yearCount: 5, discount: 2000})); } function getBasePrice(string memory name) public pure returns (uint256) { uint256 length = bytes(name).length; if (length == 3) return THREECHAR; if (length == 4) return FOURCHAR; if (length == 5) return FIVECHAR; return SIXPLUSCHAR; } function getDiscount(uint256 yearCount) public view returns (uint256) { if (yearCount == 1) return 0; for (uint256 i = 0; i < discountTiers.length; i++) { if (discountTiers[i].yearCount == yearCount) { return discountTiers[i].discount; } } return 0; } function calculatePrice(string memory name, uint256 yearCount) public view returns (uint256) { require(yearCount > 0 && yearCount <= MAX_REGISTRATION_YEARS, "Invalid year count"); uint256 basePrice = getBasePrice(name); uint256 totalBasePrice = basePrice * yearCount; uint256 discount = getDiscount(yearCount); if (discount == 0) return totalBasePrice; uint256 discountAmount = (totalBasePrice * discount) / 10000; return totalBasePrice - discountAmount; } function register(string calldata name, uint256 yearCount) external payable nonReentrant { require(isValidName(name), "Invalid name"); require(registry.available(name), "Name taken"); require(yearCount > 0 && yearCount <= MAX_REGISTRATION_YEARS, "Invalid year count"); uint256 price = calculatePrice(name, yearCount); require(msg.value == price, "Incorrect payment"); registry.register(name, msg.sender, yearCount * YEAR); emit DomainRegistered(name, msg.sender, price, yearCount); } function renew(string calldata name, uint256 yearCount) external payable nonReentrant { uint256 tokenId = registry.nameToTokenId(name); require(tokenId != 0, "Domain not found"); require(yearCount > 0 && yearCount <= MAX_REGISTRATION_YEARS, "Invalid year count"); uint256 price = calculatePrice(name, yearCount); require(msg.value == price, "Incorrect payment"); registry.extend(tokenId, yearCount * YEAR); emit DomainRenewed(name, tokenId, price, yearCount); } function getRenewalPrice(string calldata name, uint256 yearCount) external view returns (uint256) { require(registry.nameToTokenId(name) != 0, "Domain not found"); return calculatePrice(name, yearCount); } function isValidName(string memory name) public pure returns (bool) { bytes memory nameBytes = bytes(name); uint256 length = nameBytes.length; if (length < 3 || length > 64) return false; if (!isLetter(nameBytes[0])) return false; for (uint i = 0; i < length; i++) { if (!isValidChar(nameBytes[i])) return false; if (i > 0 && nameBytes[i] == '-' && nameBytes[i-1] == '-') return false; } if (nameBytes[length-1] == '-') return false; return true; } function isLetter(bytes1 char) internal pure returns (bool) { return (char >= 0x61 && char <= 0x7A); // a-z } function isNumber(bytes1 char) internal pure returns (bool) { return (char >= 0x30 && char <= 0x39); // 0-9 } function isValidChar(bytes1 char) internal pure returns (bool) { return isLetter(char) || isNumber(char) || char == 0x2D; // a-z, 0-9, - } function withdraw() external onlyOwner { uint256 balance = address(this).balance; require(balance > 0, "No balance"); (bool success, ) = owner().call{value: balance}(""); require(success, "Withdrawal failed"); emit PaymentWithdrawn(owner(), balance); } receive() external payable {} } interface ISonicRegistry { function register(string memory name, address owner, uint256 duration) external returns (uint256); function extend(uint256 tokenId, uint256 duration) external; function available(string memory name) external view returns (bool); function nameToTokenId(string memory name) external view returns (uint256); }
// 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; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol) pragma solidity ^0.8.20; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, * consider using {ReentrancyGuardTransient} instead. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; /** * @dev Unauthorized reentrant call. */ error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be NOT_ENTERED if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } // Any calls to nonReentrant after this point will fail _status = ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } }
{ "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
[{"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"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"yearCount","type":"uint256"}],"name":"DomainRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"yearCount","type":"uint256"}],"name":"DomainRenewed","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":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentWithdrawn","type":"event"},{"inputs":[],"name":"FIVECHAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FOURCHAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_REGISTRATION_YEARS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SIXPLUSCHAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"THREECHAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"YEAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"yearCount","type":"uint256"}],"name":"calculatePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"discountTiers","outputs":[{"internalType":"uint256","name":"yearCount","type":"uint256"},{"internalType":"uint256","name":"discount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"getBasePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"yearCount","type":"uint256"}],"name":"getDiscount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"yearCount","type":"uint256"}],"name":"getRenewalPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"isValidName","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"yearCount","type":"uint256"}],"name":"register","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISonicRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"yearCount","type":"uint256"}],"name":"renew","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051611b9e380380611b9e83398101604081905261002f916101e2565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610192565b506001808055600380546001600160a01b0319166001600160a01b039390931692909217825560408051808201825260028082526101f4602080840191825282548087018455600084815294517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9185028281019190915592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf93840155855180870187529788526103e888830190815284548089018655858752985198850280830199909955519783019790975584518086018652600481526105dc818301908152845480890186558587529151918502808a019290925551908301558451808601909552600585526107d0908501908152825495860183559282905292519302938401929092559051910155610212565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156101f457600080fd5b81516001600160a01b038116811461020b57600080fd5b9392505050565b61197d806102216000396000f3fe6080604052600436106101485760003560e01c80638da5cb5b116100c0578063acf1a84111610074578063f2fde38b11610059578063f2fde38b14610363578063f3c3418514610383578063fa84dc2f146103a357600080fd5b8063acf1a8411461033d578063ea87152b1461035057600080fd5b806396431e82116100a557806396431e82146102e557806398d816ac14610305578063aa415eef1461032157600080fd5b80638da5cb5b1461029e5780638f5d9e6e146102c957600080fd5b8063603e9337116101175780637b103999116100fc5780637b1039991461021f578063839145401461027157806385e486c81461028957600080fd5b8063603e9337146101ee578063715018a61461020a57600080fd5b80631e30397f146101545780632336dbe4146101895780633b10faf5146101b75780633ccfd60b146101d757600080fd5b3661014f57005b600080fd5b34801561016057600080fd5b5061017461016f3660046115ee565b6103d8565b60405190151581526020015b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611623565b610614565b604051908152602001610180565b3480156101c357600080fd5b506101a96101d236600461163c565b61069c565b3480156101e357600080fd5b506101ec610785565b005b3480156101fa57600080fd5b506101a96768155a43676e000081565b34801561021657600080fd5b506101ec610931565b34801561022b57600080fd5b5060035461024c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610180565b34801561027d57600080fd5b506101a96301e1338081565b34801561029557600080fd5b506101a9600581565b3480156102aa57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661024c565b3480156102d557600080fd5b506101a967d02ab486cedc000081565b3480156102f157600080fd5b506101a9610300366004611681565b610945565b34801561031157600080fd5b506101a9674563918244f4000081565b34801561032d57600080fd5b506101a9678ac7230489e8000081565b6101ec61034b366004611681565b610a91565b6101ec61035e366004611681565b610dae565b34801561036f57600080fd5b506101ec61037e3660046116fa565b61115a565b34801561038f57600080fd5b506101a961039e3660046115ee565b6111be565b3480156103af57600080fd5b506103c36103be366004611623565b61121c565b60408051928352602083019190915201610180565b8051600090829060038110806103ee5750604081115b156103fd575060009392505050565b61043f8260008151811061041357610413611737565b01602001517fff000000000000000000000000000000000000000000000000000000000000001661124a565b61044d575060009392505050565b60005b818110156105965761049983828151811061046d5761046d611737565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166112e5565b6104a857506000949350505050565b60008111801561051057508281815181106104c5576104c5611737565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f2d00000000000000000000000000000000000000000000000000000000000000145b801561057e575082610523600183611795565b8151811061053357610533611737565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f2d00000000000000000000000000000000000000000000000000000000000000145b1561058e57506000949350505050565b600101610450565b50816105a3600183611795565b815181106105b3576105b3611737565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f2d000000000000000000000000000000000000000000000000000000000000000361060a575060009392505050565b5060019392505050565b60008160010361062657506000919050565b60005b60025481101561069357826002828154811061064757610647611737565b9060005260206000209060020201600001540361068b576002818154811061067157610671611737565b906000526020600020906002020160010154915050919050565b600101610629565b50600092915050565b600080821180156106ae575060058211155b610719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c6964207965617220636f756e74000000000000000000000000000060448201526064015b60405180910390fd5b6000610724846111be565b9050600061073284836117a8565b9050600061073f85610614565b9050806000036107535750915061077f9050565b600061271061076283856117a8565b61076c91906117bf565b90506107788184611795565b9450505050505b92915050565b61078d61134d565b47806107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f2062616c616e6365000000000000000000000000000000000000000000006044820152606401610710565b6000805460405173ffffffffffffffffffffffffffffffffffffffff9091169083908381818185875af1925050503d806000811461084f576040519150601f19603f3d011682016040523d82523d6000602084013e610854565b606091505b50509050806108bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5769746864726177616c206661696c65640000000000000000000000000000006044820152606401610710565b7f84511ecc081974f18e7f3e0dcc19db078b55bbd3852ddd0dd85b3aebb7bf94c26108ff60005473ffffffffffffffffffffffffffffffffffffffff1690565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252602082018590520160405180910390a15050565b61093961134d565b61094360006113a0565b565b6003546040517fdd00125400000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd0012549061099e9087908790600401611843565b602060405180830381865afa1580156109bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109df9190611857565b600003610a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f446f6d61696e206e6f7420666f756e64000000000000000000000000000000006044820152606401610710565b610a8984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061069c915050565b949350505050565b610a99611415565b6003546040517fdd00125400000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd00125490610af29087908790600401611843565b602060405180830381865afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b339190611857565b905080600003610b9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f446f6d61696e206e6f7420666f756e64000000000000000000000000000000006044820152606401610710565b600082118015610bb0575060058211155b610c16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c6964207965617220636f756e7400000000000000000000000000006044820152606401610710565b6000610c5985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925061069c915050565b9050803414610cc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e636f7272656374207061796d656e740000000000000000000000000000006044820152606401610710565b60035473ffffffffffffffffffffffffffffffffffffffff1663c89258db83610cf16301e13380876117a8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526024820152604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b505050507fde064de66ae71b963b6799e2a2fce64f7551fbaf4545d498f8756e7090e2e4638585848487604051610d96959493929190611870565b60405180910390a15050610da960018055565b505050565b610db6611415565b610df583838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103d892505050565b610e5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c6964206e616d6500000000000000000000000000000000000000006044820152606401610710565b6003546040517faeb8ce9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aeb8ce9b90610eb39086908690600401611843565b602060405180830381865afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef491906118a1565b610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e616d652074616b656e000000000000000000000000000000000000000000006044820152606401610710565b600081118015610f6b575060058111155b610fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c6964207965617220636f756e7400000000000000000000000000006044820152606401610710565b600061101484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061069c915050565b905080341461107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e636f7272656374207061796d656e740000000000000000000000000000006044820152606401610710565b60035473ffffffffffffffffffffffffffffffffffffffff1663d393c8718585336110ae6301e13380886117a8565b6040518563ffffffff1660e01b81526004016110cd94939291906118c3565b6020604051808303816000875af11580156110ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111109190611857565b507f87fd548bf5794610496e606965e724cec5c33f621c084067a46c43a81a1887e78484338486604051611148959493929190611900565b60405180910390a150610da960018055565b61116261134d565b73ffffffffffffffffffffffffffffffffffffffff81166111b2576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610710565b6111bb816113a0565b50565b805160009060038190036111dc575067d02ab486cedc000092915050565b806004036111f45750678ac7230489e8000092915050565b8060050361120c57506768155a43676e000092915050565b50674563918244f4000092915050565b6002818154811061122c57600080fd5b60009182526020909120600290910201805460019091015490915082565b60007f61000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000083161080159061077f57507f7a000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008316111592915050565b60006112f08261124a565b806112ff57506112ff82611458565b8061077f5750507fff00000000000000000000000000000000000000000000000000000000000000167f2d000000000000000000000000000000000000000000000000000000000000001490565b60005473ffffffffffffffffffffffffffffffffffffffff163314610943576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610710565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600260015403611451576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b60007f30000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000083161080159061077f57507f39000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008316111592915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261153357600080fd5b813567ffffffffffffffff81111561154d5761154d6114f3565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156115b9576115b96114f3565b6040528181528382016020018510156115d157600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561160057600080fd5b813567ffffffffffffffff81111561161757600080fd5b610a8984828501611522565b60006020828403121561163557600080fd5b5035919050565b6000806040838503121561164f57600080fd5b823567ffffffffffffffff81111561166657600080fd5b61167285828601611522565b95602094909401359450505050565b60008060006040848603121561169657600080fd5b833567ffffffffffffffff8111156116ad57600080fd5b8401601f810186136116be57600080fd5b803567ffffffffffffffff8111156116d557600080fd5b8660208284010111156116e757600080fd5b6020918201979096509401359392505050565b60006020828403121561170c57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461173057600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561077f5761077f611766565b808202811582820484141761077f5761077f611766565b6000826117f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000610a896020830184866117fa565b60006020828403121561186957600080fd5b5051919050565b6080815260006118846080830187896117fa565b602083019590955250604081019290925260609091015292915050565b6000602082840312156118b357600080fd5b8151801515811461173057600080fd5b6060815260006118d76060830186886117fa565b73ffffffffffffffffffffffffffffffffffffffff949094166020830152506040015292915050565b6080815260006119146080830187896117fa565b73ffffffffffffffffffffffffffffffffffffffff9590951660208301525060408101929092526060909101529291505056fea26469706673582212208b9592745b9f8f4f443de2be0c6766346323c4dce6eb0e09529101bbb90efbc964736f6c634300081a00330000000000000000000000003d9d5acc7dbacf1662bc6d1ea8479f88b90b3cfb
Deployed Bytecode
0x6080604052600436106101485760003560e01c80638da5cb5b116100c0578063acf1a84111610074578063f2fde38b11610059578063f2fde38b14610363578063f3c3418514610383578063fa84dc2f146103a357600080fd5b8063acf1a8411461033d578063ea87152b1461035057600080fd5b806396431e82116100a557806396431e82146102e557806398d816ac14610305578063aa415eef1461032157600080fd5b80638da5cb5b1461029e5780638f5d9e6e146102c957600080fd5b8063603e9337116101175780637b103999116100fc5780637b1039991461021f578063839145401461027157806385e486c81461028957600080fd5b8063603e9337146101ee578063715018a61461020a57600080fd5b80631e30397f146101545780632336dbe4146101895780633b10faf5146101b75780633ccfd60b146101d757600080fd5b3661014f57005b600080fd5b34801561016057600080fd5b5061017461016f3660046115ee565b6103d8565b60405190151581526020015b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611623565b610614565b604051908152602001610180565b3480156101c357600080fd5b506101a96101d236600461163c565b61069c565b3480156101e357600080fd5b506101ec610785565b005b3480156101fa57600080fd5b506101a96768155a43676e000081565b34801561021657600080fd5b506101ec610931565b34801561022b57600080fd5b5060035461024c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610180565b34801561027d57600080fd5b506101a96301e1338081565b34801561029557600080fd5b506101a9600581565b3480156102aa57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661024c565b3480156102d557600080fd5b506101a967d02ab486cedc000081565b3480156102f157600080fd5b506101a9610300366004611681565b610945565b34801561031157600080fd5b506101a9674563918244f4000081565b34801561032d57600080fd5b506101a9678ac7230489e8000081565b6101ec61034b366004611681565b610a91565b6101ec61035e366004611681565b610dae565b34801561036f57600080fd5b506101ec61037e3660046116fa565b61115a565b34801561038f57600080fd5b506101a961039e3660046115ee565b6111be565b3480156103af57600080fd5b506103c36103be366004611623565b61121c565b60408051928352602083019190915201610180565b8051600090829060038110806103ee5750604081115b156103fd575060009392505050565b61043f8260008151811061041357610413611737565b01602001517fff000000000000000000000000000000000000000000000000000000000000001661124a565b61044d575060009392505050565b60005b818110156105965761049983828151811061046d5761046d611737565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166112e5565b6104a857506000949350505050565b60008111801561051057508281815181106104c5576104c5611737565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f2d00000000000000000000000000000000000000000000000000000000000000145b801561057e575082610523600183611795565b8151811061053357610533611737565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f2d00000000000000000000000000000000000000000000000000000000000000145b1561058e57506000949350505050565b600101610450565b50816105a3600183611795565b815181106105b3576105b3611737565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f2d000000000000000000000000000000000000000000000000000000000000000361060a575060009392505050565b5060019392505050565b60008160010361062657506000919050565b60005b60025481101561069357826002828154811061064757610647611737565b9060005260206000209060020201600001540361068b576002818154811061067157610671611737565b906000526020600020906002020160010154915050919050565b600101610629565b50600092915050565b600080821180156106ae575060058211155b610719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c6964207965617220636f756e74000000000000000000000000000060448201526064015b60405180910390fd5b6000610724846111be565b9050600061073284836117a8565b9050600061073f85610614565b9050806000036107535750915061077f9050565b600061271061076283856117a8565b61076c91906117bf565b90506107788184611795565b9450505050505b92915050565b61078d61134d565b47806107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f2062616c616e6365000000000000000000000000000000000000000000006044820152606401610710565b6000805460405173ffffffffffffffffffffffffffffffffffffffff9091169083908381818185875af1925050503d806000811461084f576040519150601f19603f3d011682016040523d82523d6000602084013e610854565b606091505b50509050806108bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5769746864726177616c206661696c65640000000000000000000000000000006044820152606401610710565b7f84511ecc081974f18e7f3e0dcc19db078b55bbd3852ddd0dd85b3aebb7bf94c26108ff60005473ffffffffffffffffffffffffffffffffffffffff1690565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252602082018590520160405180910390a15050565b61093961134d565b61094360006113a0565b565b6003546040517fdd00125400000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd0012549061099e9087908790600401611843565b602060405180830381865afa1580156109bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109df9190611857565b600003610a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f446f6d61696e206e6f7420666f756e64000000000000000000000000000000006044820152606401610710565b610a8984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061069c915050565b949350505050565b610a99611415565b6003546040517fdd00125400000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff169063dd00125490610af29087908790600401611843565b602060405180830381865afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b339190611857565b905080600003610b9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f446f6d61696e206e6f7420666f756e64000000000000000000000000000000006044820152606401610710565b600082118015610bb0575060058211155b610c16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c6964207965617220636f756e7400000000000000000000000000006044820152606401610710565b6000610c5985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925061069c915050565b9050803414610cc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e636f7272656374207061796d656e740000000000000000000000000000006044820152606401610710565b60035473ffffffffffffffffffffffffffffffffffffffff1663c89258db83610cf16301e13380876117a8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526024820152604401600060405180830381600087803b158015610d4757600080fd5b505af1158015610d5b573d6000803e3d6000fd5b505050507fde064de66ae71b963b6799e2a2fce64f7551fbaf4545d498f8756e7090e2e4638585848487604051610d96959493929190611870565b60405180910390a15050610da960018055565b505050565b610db6611415565b610df583838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103d892505050565b610e5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c6964206e616d6500000000000000000000000000000000000000006044820152606401610710565b6003546040517faeb8ce9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aeb8ce9b90610eb39086908690600401611843565b602060405180830381865afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef491906118a1565b610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e616d652074616b656e000000000000000000000000000000000000000000006044820152606401610710565b600081118015610f6b575060058111155b610fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c6964207965617220636f756e7400000000000000000000000000006044820152606401610710565b600061101484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061069c915050565b905080341461107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e636f7272656374207061796d656e740000000000000000000000000000006044820152606401610710565b60035473ffffffffffffffffffffffffffffffffffffffff1663d393c8718585336110ae6301e13380886117a8565b6040518563ffffffff1660e01b81526004016110cd94939291906118c3565b6020604051808303816000875af11580156110ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111109190611857565b507f87fd548bf5794610496e606965e724cec5c33f621c084067a46c43a81a1887e78484338486604051611148959493929190611900565b60405180910390a150610da960018055565b61116261134d565b73ffffffffffffffffffffffffffffffffffffffff81166111b2576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610710565b6111bb816113a0565b50565b805160009060038190036111dc575067d02ab486cedc000092915050565b806004036111f45750678ac7230489e8000092915050565b8060050361120c57506768155a43676e000092915050565b50674563918244f4000092915050565b6002818154811061122c57600080fd5b60009182526020909120600290910201805460019091015490915082565b60007f61000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000083161080159061077f57507f7a000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008316111592915050565b60006112f08261124a565b806112ff57506112ff82611458565b8061077f5750507fff00000000000000000000000000000000000000000000000000000000000000167f2d000000000000000000000000000000000000000000000000000000000000001490565b60005473ffffffffffffffffffffffffffffffffffffffff163314610943576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610710565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600260015403611451576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b60007f30000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000083161080159061077f57507f39000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008316111592915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261153357600080fd5b813567ffffffffffffffff81111561154d5761154d6114f3565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156115b9576115b96114f3565b6040528181528382016020018510156115d157600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561160057600080fd5b813567ffffffffffffffff81111561161757600080fd5b610a8984828501611522565b60006020828403121561163557600080fd5b5035919050565b6000806040838503121561164f57600080fd5b823567ffffffffffffffff81111561166657600080fd5b61167285828601611522565b95602094909401359450505050565b60008060006040848603121561169657600080fd5b833567ffffffffffffffff8111156116ad57600080fd5b8401601f810186136116be57600080fd5b803567ffffffffffffffff8111156116d557600080fd5b8660208284010111156116e757600080fd5b6020918201979096509401359392505050565b60006020828403121561170c57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461173057600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561077f5761077f611766565b808202811582820484141761077f5761077f611766565b6000826117f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000610a896020830184866117fa565b60006020828403121561186957600080fd5b5051919050565b6080815260006118846080830187896117fa565b602083019590955250604081019290925260609091015292915050565b6000602082840312156118b357600080fd5b8151801515811461173057600080fd5b6060815260006118d76060830186886117fa565b73ffffffffffffffffffffffffffffffffffffffff949094166020830152506040015292915050565b6080815260006119146080830187896117fa565b73ffffffffffffffffffffffffffffffffffffffff9590951660208301525060408101929092526060909101529291505056fea26469706673582212208b9592745b9f8f4f443de2be0c6766346323c4dce6eb0e09529101bbb90efbc964736f6c634300081a0033
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 | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
CRONOS | 100.00% | $0.174705 | 25 | $4.37 |
[ 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.