Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x55AFb12A...479C32423 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
SpinnerVerifiedToken
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.26;import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";import {TickMath} from "@uniswap/v3-core/contracts/libraries/TickMath.sol";import {INonfungiblePositionManager, IUniswapV3Factory, ILockerFactory, ExactInputSingleParams, ISwapRouter, ILocker} from "./interface.sol";import {Bytes32AddressLib} from "./Bytes32AddressLib.sol";///@dev SpinnerVerifiedToken is a verified ERC20 token, make sure it's safe to use/// and not a scam tokencontract SpinnerVerifiedToken is ERC20 {constructor(string memory name_,string memory symbol_,uint256 maxSupply_) ERC20(name_, symbol_) {_mint(msg.sender, maxSupply_);}function burn(uint256 amount) external {_burn(msg.sender, amount);}}
1234567891011121314151617181920212223242526// 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);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)pragma solidity ^0.8.20;/*** @dev Standard ERC20 Errors* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.*/interface IERC20Errors {/*** @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.* @param balance Current balance for the interacting account.* @param needed Minimum amount required to perform a transfer.*/error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);/*** @dev Indicates a failure with the token `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.*/error ERC20InvalidSender(address sender);/*** @dev Indicates a failure with the token `receiver`. Used in transfers.* @param receiver Address to which tokens are being transferred.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "./IERC20.sol";import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";import {Context} from "../../utils/Context.sol";import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";/*** @dev Implementation of the {IERC20} interface.** This implementation is agnostic to the way tokens are created. This means* that a supply mechanism has to be added in a derived contract using {_mint}.** TIP: For a detailed writeup see our guide* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How* to implement supply mechanisms].** The default value of {decimals} is 18. To change this, you should override* this function so it returns a different value.** We have followed general OpenZeppelin Contracts guidelines: functions revert* instead returning `false` on failure. This behavior is nonetheless* conventional and does not conflict with the expectations of ERC20
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)pragma solidity ^0.8.20;import {IERC20} from "../IERC20.sol";/*** @dev Interface for the optional metadata functions from the ERC20 standard.*/interface IERC20Metadata is IERC20 {/*** @dev Returns the name of the token.*/function name() external view returns (string memory);/*** @dev Returns the symbol of the token.*/function symbol() external view returns (string memory);/*** @dev Returns the decimals places of the token.*/function decimals() external view returns (uint8);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @dev Emitted when `value` tokens are moved from one account (`from`) to* another (`to`).** Note that `value` may be zero.*/event Transfer(address indexed from, address indexed to, uint256 value);/*** @dev Emitted when the allowance of a `spender` for an `owner` is set by* a call to {approve}. `value` is the new allowance.*/event Approval(address indexed owner, address indexed spender, uint256 value);/*** @dev Returns the value of tokens in existence.*/
1234567891011121314151617181920212223242526// 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;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-2.0-or-laterpragma solidity >=0.5.0;/// @title Math library for computing sqrt prices from ticks and vice versa/// @notice Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports/// prices between 2**-128 and 2**128library TickMath {/// @dev The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128int24 internal constant MIN_TICK = -887272;/// @dev The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128int24 internal constant MAX_TICK = -MIN_TICK;/// @dev The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)uint160 internal constant MIN_SQRT_RATIO = 4295128739;/// @dev The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)uint160 internal constant MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342;/// @notice Calculates sqrt(1.0001^tick) * 2^96/// @dev Throws if |tick| > max tick/// @param tick The input tick for the above formula/// @return sqrtPriceX96 A Fixed point Q64.96 number representing the sqrt of the ratio of the two assets (token1/token0)/// at the given tickfunction getSqrtRatioAtTick(int24 tick) internal pure returns (uint160 sqrtPriceX96) {uint256 absTick = tick < 0 ? uint256(-int256(tick)) : uint256(int256(tick));require(absTick <= uint256(int(MAX_TICK)), 'T');
123456789101112131415161718// SPDX-License-Identifier: AGPL-3.0-onlypragma solidity >=0.8.0;/// @notice Library for converting between addresses and bytes32 values./// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol)library Bytes32AddressLib {function fromLast20Bytes(bytes32 bytesValue) internal pure returns (address) {return address(uint160(uint256(bytesValue)));}function fillLast12Bytes(address addressValue) internal pure returns (bytes32) {return bytes32(bytes20(addressValue));}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.25;interface ILocker {function initializer(uint256 tokenId) external;}interface ILockerFactory {function deploy(address token,address beneficiary,uint64 durationSeconds,uint256 tokenId,uint256 fees) external payable returns (address);}interface INonfungiblePositionManager {struct MintParams {address token0;address token1;uint24 fee;int24 tickLower;int24 tickUpper;uint256 amount0Desired;uint256 amount1Desired;
1234567891011121314151617181920{"viaIR": true,"evmVersion": "paris","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[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"maxSupply_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x60806040526004361015610013575b61052e565b61001e6000356100bd565b806306fdde03146100b8578063095ea7b3146100b357806318160ddd146100ae57806323b872dd146100a9578063313ce567146100a457806342966c681461009f57806370a082311461009a57806395d89b4114610095578063a9059cbb146100905763dd62ed3e0361000e576104f8565b610494565b61045f565b61042a565b6103d8565b61037e565b61031f565b6102af565b610256565b610169565b60e01c90565b60405190565b600080fd5b600080fd5b60009103126100de57565b6100ce565b5190565b60209181520190565b60005b838110610104575050906000910152565b8060209183015181850152016100f3565b601f801991011690565b61013e61014760209361014c93610135816100e3565b938480936100e7565b958691016100f0565b610115565b0190565b610166916020820191600081840391015261011f565b90565b34610199576101793660046100d3565b610195610184610695565b61018c6100c3565b91829182610150565b0390f35b6100c9565b60018060a01b031690565b6101b29061019e565b90565b6101be816101a9565b036101c557565b600080fd5b905035906101d7826101b5565b565b90565b6101e5816101d9565b036101ec57565b600080fd5b905035906101fe826101dc565b565b9190604083820312610229578061021d61022692600086016101ca565b936020016101f1565b90565b6100ce565b151590565b61023c9061022e565b9052565b919061025490600060208501940190610233565b565b346102875761028361027261026c366004610200565b906106b0565b61027a6100c3565b91829182610240565b0390f35b6100c9565b610295906101d9565b9052565b91906102ad9060006020850194019061028c565b565b346102df576102bf3660046100d3565b6102db6102ca610701565b6102d26100c3565b91829182610299565b0390f35b6100c9565b909160608284031261031a5761031761030084600085016101ca565b9361030e81602086016101ca565b936040016101f1565b90565b6100ce565b346103505761034c61033b6103353660046102e4565b91610717565b6103436100c3565b91829182610240565b0390f35b6100c9565b60ff1690565b61036490610355565b9052565b919061037c9060006020850194019061035b565b565b346103ae5761038e3660046100d3565b6103aa61039961076d565b6103a16100c3565b91829182610368565b0390f35b6100c9565b906020828203126103cd576103ca916000016101f1565b90565b6100ce565b60000190565b34610406576103f06103eb3660046103b3565b610783565b6103f86100c3565b80610402816103d2565b0390f35b6100c9565b9060208282031261042557610422916000016101ca565b90565b6100ce565b3461045a5761045661044561044036600461040b565b6107db565b61044d6100c3565b91829182610299565b0390f35b6100c9565b3461048f5761046f3660046100d3565b61048b61047a6107fa565b6104826100c3565b91829182610150565b0390f35b6100c9565b346104c5576104c16104b06104aa366004610200565b90610810565b6104b86100c3565b91829182610240565b0390f35b6100c9565b91906040838203126104f357806104e76104f092600086016101ca565b936020016101ca565b90565b6100ce565b346105295761052561051461050e3660046104ca565b9061084a565b61051c6100c3565b91829182610299565b0390f35b6100c9565b600080fd5b606090565b634e487b7160e01b600052602260045260246000fd5b906001600283049216801561056e575b602083101461056957565b610538565b91607f169161055e565b60209181520190565b600052602060002090565b90600092918054906105a76105a08361054e565b8094610578565b9160018116908160001461060057506001146105c3575b505050565b6105d09192939450610581565b916000925b8184106105e857505001903880806105be565b600181602092959395548486015201910192906105d5565b92949550505060ff19168252151560200201903880806105be565b906106259161058c565b90565b634e487b7160e01b600052604160045260246000fd5b9061064890610115565b810190811067ffffffffffffffff82111761066257604052565b610628565b90610687610680926106776100c3565b9384809261061b565b038361063e565b565b61069290610667565b90565b61069d610533565b506106a86003610689565b90565b600090565b6106cd916106bc6106ab565b506106c5610877565b919091610884565b600190565b600090565b60001c90565b90565b6106ec6106f1916106d7565b6106dd565b90565b6106fe90546106e0565b90565b6107096106d2565b5061071460026106f4565b90565b91610741926107246106ab565b50610739610730610877565b829084916108e2565b9190916109b2565b600190565b600090565b90565b90565b61076561076061076a9261074b565b61074e565b610355565b90565b610775610746565b506107806012610751565b90565b61078d9033610a55565b565b6107a361079e6107a89261019e565b61074e565b61019e565b90565b6107b49061078f565b90565b6107c0906107ab565b90565b906107cd906107b7565b600052602052604060002090565b6107f26107f7916107ea6106d2565b5060006107c3565b6106f4565b90565b610802610533565b5061080d6004610689565b90565b61082d9161081c6106ab565b50610825610877565b9190916109b2565b600190565b9061083c906107b7565b600052602052604060002090565b61086f9161086561086a9261085d6106d2565b506001610832565b6107c3565b6106f4565b90565b600090565b61087f610872565b503390565b916108929291600192610b14565b565b61089d906101a9565b9052565b6040906108cb6108d294969593966108c160608401986000850190610894565b602083019061028c565b019061028c565b565b906108df91036101d9565b90565b9291926108f081839061084a565b90816109066109006000196101d9565b916101d9565b03610913575b5050509050565b81610926610920876101d9565b916101d9565b1061094d57610944939461093b9193926108d4565b90600092610b14565b8038808061090c565b5061096d849291926000938493637dc7a0d960e11b8552600485016108a1565b0390fd5b90565b61098861098361098d92610971565b61074e565b61019e565b90565b61099990610974565b90565b91906109b090600060208501940190610894565b565b91826109cf6109c96109c46000610990565b6101a9565b916101a9565b14610a2c57816109f06109ea6109e56000610990565b6101a9565b916101a9565b14610a0357610a0192919091610c72565b565b610a28610a106000610990565b600091829163ec442f0560e01b83526004830161099c565b0390fd5b610a51610a396000610990565b6000918291634b637e8f60e11b83526004830161099c565b0390fd5b9081610a72610a6c610a676000610990565b6101a9565b916101a9565b14610a8f57610a8d9190610a866000610990565b9091610c72565b565b610ab4610a9c6000610990565b6000918291634b637e8f60e11b83526004830161099c565b0390fd5b60001b90565b90610acb60001991610ab8565b9181191691161790565b610ae9610ae4610aee926101d9565b61074e565b6101d9565b90565b90565b90610b09610b04610b1092610ad5565b610af1565b8254610abe565b9055565b909281610b32610b2c610b276000610990565b6101a9565b916101a9565b14610c005783610b53610b4d610b486000610990565b6101a9565b916101a9565b14610bd757610b7783610b72610b6b60018690610832565b87906107c3565b610af4565b610b81575b505050565b919091610bcc610bba610bb47f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925936107b7565b936107b7565b93610bc36100c3565b91829182610299565b0390a3388080610b7c565b610bfc610be46000610990565b6000918291634a1406b160e11b83526004830161099c565b0390fd5b610c25610c0d6000610990565b600091829163e602df0560e01b83526004830161099c565b0390fd5b634e487b7160e01b600052601160045260246000fd5b610c4e610c54919392936101d9565b926101d9565b8201809211610c5f57565b610c29565b90610c6f91016101d9565b90565b91909180610c91610c8b610c866000610990565b6101a9565b916101a9565b14600014610d7657610cb6610caf83610caa60026106f4565b610c3f565b6002610af4565b5b82610cd3610ccd610cc86000610990565b6101a9565b916101a9565b14600014610d4957610cf8610cf183610cec60026106f4565b6108d4565b6002610af4565b5b919091610d44610d32610d2c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936107b7565b936107b7565b93610d3b6100c3565b91829182610299565b0390a3565b610d7182610d6b610d5c600087906107c3565b91610d66836106f4565b610c64565b90610af4565b610cf9565b610d8a610d85600083906107c3565b6106f4565b80610d9d610d97856101d9565b916101d9565b10610dc657610db0610dc19184906108d4565b610dbc600084906107c3565b610af4565b610cb7565b90610de5909192600093849363391434e360e21b8552600485016108a1565b0390fdfea26469706673582212200ed6389499adb935e81c8d9703bb74e2832475309b10e845c134d8f6cbeaeac364736f6c634300081c0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.