Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
NFT1Collection
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IERC165 {
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
interface IERC721 is IERC165 {
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
function balanceOf(address owner) external view returns (uint256);
function ownerOf(uint256 tokenId) external view returns (address);
function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;
function safeTransferFrom(address from, address to, uint256 tokenId) external;
function transferFrom(address from, address to, uint256 tokenId) external;
function approve(address to, uint256 tokenId) external;
function setApprovalForAll(address operator, bool approved) external;
function getApproved(uint256 tokenId) external view returns (address);
function isApprovedForAll(address owner, address operator) external view returns (bool);
}
interface IERC721Metadata is IERC721 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function tokenURI(uint256 tokenId) external view returns (string memory);
}
interface IERC721Receiver {
function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data) external returns (bytes4);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
abstract contract ERC165 is IERC165 {
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
contract NFT1Collection is Context, ERC165, IERC721, IERC721Metadata {
using Strings for uint256;
string private _name;
string private _symbol;
address private _owner;
mapping(uint256 => address) private _owners;
mapping(address => uint256) private _balances;
mapping(uint256 => address) private _tokenApprovals;
mapping(address => mapping(address => bool)) private _operatorApprovals;
mapping(uint256 => string) private _tokenURIs;
uint256 private _nextTokenId;
modifier onlyOwner() {
require(msg.sender == _owner, "Not owner");
_;
}
constructor() {
_owner = msg.sender;
_name = "NFT1 Art Collection";
_symbol = "NFT1";
_nextTokenId = 1;
}
// --- Core ERC721 Logic ---
function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
return interfaceId == type(IERC721).interfaceId ||
interfaceId == type(IERC721Metadata).interfaceId ||
super.supportsInterface(interfaceId);
}
function balanceOf(address owner) public view virtual override returns (uint256) {
require(owner != address(0), "ERC721: zero address");
return _balances[owner];
}
function ownerOf(uint256 tokenId) public view virtual override returns (address) {
require(_exists(tokenId), "ERC721: invalid token ID");
return _owners[tokenId];
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
_requireMinted(tokenId);
string memory uri = _tokenURIs[tokenId];
return bytes(uri).length > 0 ? uri : tokenId.toString(); // ✅ Fix
}
// --- Minting (Restricted) ---
function mint(address to, string memory uri) public onlyOwner returns (uint256) {
uint256 tokenId = _nextTokenId++;
_mint(to, tokenId);
_setTokenURI(tokenId, uri);
return tokenId;
}
// --- Internal Logic ---
function _mint(address to, uint256 tokenId) internal virtual {
require(to != address(0), "ERC721: mint to zero address");
require(!_exists(tokenId), "ERC721: token exists");
_balances[to]++;
_owners[tokenId] = to;
emit Transfer(address(0), to, tokenId);
}
function _setTokenURI(uint256 tokenId, string memory uri) internal virtual {
require(_exists(tokenId), "ERC721: token does not exist");
_tokenURIs[tokenId] = uri;
}
function _exists(uint256 tokenId) internal view virtual returns (bool) {
return _owners[tokenId] != address(0);
}
function _requireMinted(uint256 tokenId) internal view virtual {
require(_exists(tokenId), "ERC721: invalid token ID");
}
// --- Approvals & Transfers ---
function approve(address to, uint256 tokenId) public virtual override {
address owner = _owners[tokenId]; // ✅ Fix
require(to != owner, "ERC721: approval to current owner");
require(_msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: not authorized");
_approve(to, tokenId);
}
function _approve(address to, uint256 tokenId) internal virtual {
_tokenApprovals[tokenId] = to;
emit Approval(_owners[tokenId], to, tokenId); // ✅ Fix
}
function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {
require(owner != operator, "ERC721: approve to caller");
_operatorApprovals[owner][operator] = approved;
emit ApprovalForAll(owner, operator, approved);
}
function _transfer(address from, address to, uint256 tokenId) internal virtual {
require(_owners[tokenId] == from, "ERC721: transfer from incorrect owner"); // ✅ Fix
require(to != address(0), "ERC721: transfer to zero address");
_approve(address(0), tokenId);
_balances[from]--;
_balances[to]++;
_owners[tokenId] = to;
emit Transfer(from, to, tokenId);
}
function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
address owner = _owners[tokenId]; // ✅ Fix
return spender == owner || isApprovedForAll(owner, spender) || _tokenApprovals[tokenId] == spender;
}
// --- Safe Transfer with ERC721Receiver Check ---
function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {
require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: not authorized");
_transfer(from, to, tokenId);
if (to.code.length > 0) {
_checkOnERC721Received(from, to, tokenId, data); // ✅ Ajout
}
}
function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) internal virtual {
try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 response) {
require(response == IERC721Receiver.onERC721Received.selector, "ERC721: ERC721Receiver rejected tokens");
} catch {
revert("ERC721: transfer to non-ERC721Receiver implementer");
}
}
// --- Standard Overrides ---
function getApproved(uint256 tokenId) public view virtual override returns (address) {
_requireMinted(tokenId);
return _tokenApprovals[tokenId];
}
function setApprovalForAll(address operator, bool approved) public virtual override {
_setApprovalForAll(_msgSender(), operator, approved);
}
function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {
return _operatorApprovals[owner][operator];
}
function transferFrom(address from, address to, uint256 tokenId) public virtual override {
require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: not authorized");
_transfer(from, to, tokenId);
}
function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {
safeTransferFrom(from, to, tokenId, "");
}
}
library Strings {
function toString(uint256 value) internal pure returns (string memory) {
if (value == 0) return "0";
uint256 temp = value;
uint256 digits;
while (temp != 0) { digits++; temp /= 10; }
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits--;
buffer[digits] = bytes1(uint8(48 + value % 10));
value /= 10;
}
return string(buffer);
}
}{
"evmVersion": "cancun",
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": [],
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"uri","type":"string"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561000f575f5ffd5b50600280546001600160a01b0319163317905560408051808201909152601381527f4e4654312041727420436f6c6c656374696f6e0000000000000000000000000060208201525f90610062908261012e565b506040805180820190915260048152634e46543160e01b602082015260019061008b908261012e565b5060016008556101e8565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806100be57607f821691505b6020821081036100dc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561012957805f5260205f20601f840160051c810160208510156101075750805b601f840160051c820191505b81811015610126575f8155600101610113565b50505b505050565b81516001600160401b0381111561014757610147610096565b61015b8161015584546100aa565b846100e2565b6020601f82116001811461018d575f83156101765750848201515b5f19600385901b1c1916600184901b178455610126565b5f84815260208120601f198516915b828110156101bc578785015182556020948501946001909201910161019c565b50848210156101d957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6113e1806101f55f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c806370a0823111610088578063b88d4fde11610063578063b88d4fde146101db578063c87b56dd146101ee578063d0def52114610201578063e985e9c514610214575f5ffd5b806370a082311461019f57806395d89b41146101c0578063a22cb465146101c8575f5ffd5b8063095ea7b3116100c3578063095ea7b31461015157806323b872dd1461016657806342842e0e146101795780636352211e1461018c575f5ffd5b806301ffc9a7146100e957806306fdde0314610111578063081812fc14610126575b5f5ffd5b6100fc6100f7366004610e79565b61024f565b60405190151581526020015b60405180910390f35b6101196102a0565b6040516101089190610ec2565b610139610134366004610ed4565b61032f565b6040516001600160a01b039091168152602001610108565b61016461015f366004610f06565b610354565b005b610164610174366004610f2e565b610415565b610164610187366004610f2e565b610446565b61013961019a366004610ed4565b610460565b6101b26101ad366004610f68565b6104d9565b604051908152602001610108565b610119610542565b6101646101d6366004610f81565b610551565b6101646101e9366004611045565b610560565b6101196101fc366004610ed4565b6105b3565b6101b261020f3660046110bc565b610673565b6100fc61022236600461111a565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b148061027f57506001600160e01b03198216635b5e139f60e01b145b8061029a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60605f80546102ae9061114b565b80601f01602080910402602001604051908101604052809291908181526020018280546102da9061114b565b80156103255780601f106102fc57610100808354040283529160200191610325565b820191905f5260205f20905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b5f610339826106e5565b505f908152600560205260409020546001600160a01b031690565b5f818152600360205260409020546001600160a01b039081169083168190036103ce5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103ea57506103ea8133610222565b6104065760405162461bcd60e51b81526004016103c590611183565b6104108383610746565b505050565b61041f33826107ac565b61043b5760405162461bcd60e51b81526004016103c590611183565b610410838383610824565b61041083838360405180602001604052805f815250610560565b5f818152600360205260408120546001600160a01b03166104be5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103c5565b505f908152600360205260409020546001600160a01b031690565b5f6001600160a01b0382166105275760405162461bcd60e51b81526020600482015260146024820152734552433732313a207a65726f206164647265737360601b60448201526064016103c5565b506001600160a01b03165f9081526004602052604090205490565b6060600180546102ae9061114b565b61055c3383836109a5565b5050565b61056a33836107ac565b6105865760405162461bcd60e51b81526004016103c590611183565b610591848484610824565b6001600160a01b0383163b156105ad576105ad84848484610a72565b50505050565b60606105be826106e5565b5f82815260076020526040812080546105d69061114b565b80601f01602080910402602001604051908101604052809291908181526020018280546106029061114b565b801561064d5780601f106106245761010080835404028352916020019161064d565b820191905f5260205f20905b81548152906001019060200180831161063057829003601f168201915b505050505090505f81511161066a5761066583610bbb565b61066c565b805b9392505050565b6002545f906001600160a01b031633146106bb5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016103c5565b600880545f91826106cb836111c7565b9190505590506106db8482610cb9565b61066c8184610dea565b5f818152600360205260409020546001600160a01b03166107435760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103c5565b50565b5f81815260056020908152604080832080546001600160a01b0319166001600160a01b038781169182179092556003909352818420549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b5f818152600360205260408120546001600160a01b039081169084168114806107f957506001600160a01b038082165f9081526006602090815260408083209388168352929052205460ff165b8061081c57505f838152600560205260409020546001600160a01b038581169116145b949350505050565b5f818152600360205260409020546001600160a01b0384811691161461089a5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103c5565b6001600160a01b0382166108f05760405162461bcd60e51b815260206004820181905260248201527f4552433732313a207472616e7366657220746f207a65726f206164647265737360448201526064016103c5565b6108fa5f82610746565b6001600160a01b0383165f90815260046020526040812080549161091d836111df565b90915550506001600160a01b0382165f908152600460205260408120805491610945836111c7565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610a065760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103c5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610aa49033908890879087906004016111f4565b6020604051808303815f875af1925050508015610ade575060408051601f3d908101601f19168201909252610adb91810190611230565b60015b610b455760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e2d455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016103c5565b6001600160e01b03198116630a85bd0160e11b14610bb45760405162461bcd60e51b815260206004820152602660248201527f4552433732313a2045524337323152656365697665722072656a656374656420604482015265746f6b656e7360d01b60648201526084016103c5565b5050505050565b6060815f03610be15750506040805180820190915260018152600360fc1b602082015290565b815f5b8115610c0a5780610bf4816111c7565b9150610c039050600a8361125f565b9150610be4565b5f8167ffffffffffffffff811115610c2457610c24610fba565b6040519080825280601f01601f191660200182016040528015610c4e576020820181803683370190505b5090505b841561081c5781610c62816111df565b9250610c719050600a86611272565b610c7c906030611285565b60f81b818381518110610c9157610c91611298565b60200101906001600160f81b03191690815f1a905350610cb2600a8661125f565b9450610c52565b6001600160a01b038216610d0f5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a206d696e7420746f207a65726f20616464726573730000000060448201526064016103c5565b5f818152600360205260409020546001600160a01b031615610d6a5760405162461bcd60e51b81526020600482015260146024820152734552433732313a20746f6b656e2065786973747360601b60448201526064016103c5565b6001600160a01b0382165f908152600460205260408120805491610d8d836111c7565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f828152600360205260409020546001600160a01b0316610e4d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20646f6573206e6f742065786973740000000060448201526064016103c5565b5f82815260076020526040902061041082826112f0565b6001600160e01b031981168114610743575f5ffd5b5f60208284031215610e89575f5ffd5b813561066c81610e64565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61066c6020830184610e94565b5f60208284031215610ee4575f5ffd5b5035919050565b80356001600160a01b0381168114610f01575f5ffd5b919050565b5f5f60408385031215610f17575f5ffd5b610f2083610eeb565b946020939093013593505050565b5f5f5f60608486031215610f40575f5ffd5b610f4984610eeb565b9250610f5760208501610eeb565b929592945050506040919091013590565b5f60208284031215610f78575f5ffd5b61066c82610eeb565b5f5f60408385031215610f92575f5ffd5b610f9b83610eeb565b915060208301358015158114610faf575f5ffd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff841115610fe857610fe8610fba565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561101757611017610fba565b60405283815290508082840185101561102e575f5ffd5b838360208301375f60208583010152509392505050565b5f5f5f5f60808587031215611058575f5ffd5b61106185610eeb565b935061106f60208601610eeb565b925060408501359150606085013567ffffffffffffffff811115611091575f5ffd5b8501601f810187136110a1575f5ffd5b6110b087823560208401610fce565b91505092959194509250565b5f5f604083850312156110cd575f5ffd5b6110d683610eeb565b9150602083013567ffffffffffffffff8111156110f1575f5ffd5b8301601f81018513611101575f5ffd5b61111085823560208401610fce565b9150509250929050565b5f5f6040838503121561112b575f5ffd5b61113483610eeb565b915061114260208401610eeb565b90509250929050565b600181811c9082168061115f57607f821691505b60208210810361117d57634e487b7160e01b5f52602260045260245ffd5b50919050565b602080825260169082015275115490cdcc8c4e881b9bdd08185d5d1a1bdc9a5e995960521b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f600182016111d8576111d86111b3565b5060010190565b5f816111ed576111ed6111b3565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061122690830184610e94565b9695505050505050565b5f60208284031215611240575f5ffd5b815161066c81610e64565b634e487b7160e01b5f52601260045260245ffd5b5f8261126d5761126d61124b565b500490565b5f826112805761128061124b565b500690565b8082018082111561029a5761029a6111b3565b634e487b7160e01b5f52603260045260245ffd5b601f82111561041057805f5260205f20601f840160051c810160208510156112d15750805b601f840160051c820191505b81811015610bb4575f81556001016112dd565b815167ffffffffffffffff81111561130a5761130a610fba565b61131e81611318845461114b565b846112ac565b6020601f821160018114611350575f83156113395750848201515b5f19600385901b1c1916600184901b178455610bb4565b5f84815260208120601f198516915b8281101561137f578785015182556020948501946001909201910161135f565b508482101561139c57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220f5b0ba2121906694ac638ef4161fb47cc63a52e67a1dd7c3d7d030b797bb271064736f6c634300081c0033
Deployed Bytecode
0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c806370a0823111610088578063b88d4fde11610063578063b88d4fde146101db578063c87b56dd146101ee578063d0def52114610201578063e985e9c514610214575f5ffd5b806370a082311461019f57806395d89b41146101c0578063a22cb465146101c8575f5ffd5b8063095ea7b3116100c3578063095ea7b31461015157806323b872dd1461016657806342842e0e146101795780636352211e1461018c575f5ffd5b806301ffc9a7146100e957806306fdde0314610111578063081812fc14610126575b5f5ffd5b6100fc6100f7366004610e79565b61024f565b60405190151581526020015b60405180910390f35b6101196102a0565b6040516101089190610ec2565b610139610134366004610ed4565b61032f565b6040516001600160a01b039091168152602001610108565b61016461015f366004610f06565b610354565b005b610164610174366004610f2e565b610415565b610164610187366004610f2e565b610446565b61013961019a366004610ed4565b610460565b6101b26101ad366004610f68565b6104d9565b604051908152602001610108565b610119610542565b6101646101d6366004610f81565b610551565b6101646101e9366004611045565b610560565b6101196101fc366004610ed4565b6105b3565b6101b261020f3660046110bc565b610673565b6100fc61022236600461111a565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b148061027f57506001600160e01b03198216635b5e139f60e01b145b8061029a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60605f80546102ae9061114b565b80601f01602080910402602001604051908101604052809291908181526020018280546102da9061114b565b80156103255780601f106102fc57610100808354040283529160200191610325565b820191905f5260205f20905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b5f610339826106e5565b505f908152600560205260409020546001600160a01b031690565b5f818152600360205260409020546001600160a01b039081169083168190036103ce5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103ea57506103ea8133610222565b6104065760405162461bcd60e51b81526004016103c590611183565b6104108383610746565b505050565b61041f33826107ac565b61043b5760405162461bcd60e51b81526004016103c590611183565b610410838383610824565b61041083838360405180602001604052805f815250610560565b5f818152600360205260408120546001600160a01b03166104be5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103c5565b505f908152600360205260409020546001600160a01b031690565b5f6001600160a01b0382166105275760405162461bcd60e51b81526020600482015260146024820152734552433732313a207a65726f206164647265737360601b60448201526064016103c5565b506001600160a01b03165f9081526004602052604090205490565b6060600180546102ae9061114b565b61055c3383836109a5565b5050565b61056a33836107ac565b6105865760405162461bcd60e51b81526004016103c590611183565b610591848484610824565b6001600160a01b0383163b156105ad576105ad84848484610a72565b50505050565b60606105be826106e5565b5f82815260076020526040812080546105d69061114b565b80601f01602080910402602001604051908101604052809291908181526020018280546106029061114b565b801561064d5780601f106106245761010080835404028352916020019161064d565b820191905f5260205f20905b81548152906001019060200180831161063057829003601f168201915b505050505090505f81511161066a5761066583610bbb565b61066c565b805b9392505050565b6002545f906001600160a01b031633146106bb5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016103c5565b600880545f91826106cb836111c7565b9190505590506106db8482610cb9565b61066c8184610dea565b5f818152600360205260409020546001600160a01b03166107435760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103c5565b50565b5f81815260056020908152604080832080546001600160a01b0319166001600160a01b038781169182179092556003909352818420549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b5f818152600360205260408120546001600160a01b039081169084168114806107f957506001600160a01b038082165f9081526006602090815260408083209388168352929052205460ff165b8061081c57505f838152600560205260409020546001600160a01b038581169116145b949350505050565b5f818152600360205260409020546001600160a01b0384811691161461089a5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103c5565b6001600160a01b0382166108f05760405162461bcd60e51b815260206004820181905260248201527f4552433732313a207472616e7366657220746f207a65726f206164647265737360448201526064016103c5565b6108fa5f82610746565b6001600160a01b0383165f90815260046020526040812080549161091d836111df565b90915550506001600160a01b0382165f908152600460205260408120805491610945836111c7565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610a065760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103c5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610aa49033908890879087906004016111f4565b6020604051808303815f875af1925050508015610ade575060408051601f3d908101601f19168201909252610adb91810190611230565b60015b610b455760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e2d455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016103c5565b6001600160e01b03198116630a85bd0160e11b14610bb45760405162461bcd60e51b815260206004820152602660248201527f4552433732313a2045524337323152656365697665722072656a656374656420604482015265746f6b656e7360d01b60648201526084016103c5565b5050505050565b6060815f03610be15750506040805180820190915260018152600360fc1b602082015290565b815f5b8115610c0a5780610bf4816111c7565b9150610c039050600a8361125f565b9150610be4565b5f8167ffffffffffffffff811115610c2457610c24610fba565b6040519080825280601f01601f191660200182016040528015610c4e576020820181803683370190505b5090505b841561081c5781610c62816111df565b9250610c719050600a86611272565b610c7c906030611285565b60f81b818381518110610c9157610c91611298565b60200101906001600160f81b03191690815f1a905350610cb2600a8661125f565b9450610c52565b6001600160a01b038216610d0f5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a206d696e7420746f207a65726f20616464726573730000000060448201526064016103c5565b5f818152600360205260409020546001600160a01b031615610d6a5760405162461bcd60e51b81526020600482015260146024820152734552433732313a20746f6b656e2065786973747360601b60448201526064016103c5565b6001600160a01b0382165f908152600460205260408120805491610d8d836111c7565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f828152600360205260409020546001600160a01b0316610e4d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20646f6573206e6f742065786973740000000060448201526064016103c5565b5f82815260076020526040902061041082826112f0565b6001600160e01b031981168114610743575f5ffd5b5f60208284031215610e89575f5ffd5b813561066c81610e64565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61066c6020830184610e94565b5f60208284031215610ee4575f5ffd5b5035919050565b80356001600160a01b0381168114610f01575f5ffd5b919050565b5f5f60408385031215610f17575f5ffd5b610f2083610eeb565b946020939093013593505050565b5f5f5f60608486031215610f40575f5ffd5b610f4984610eeb565b9250610f5760208501610eeb565b929592945050506040919091013590565b5f60208284031215610f78575f5ffd5b61066c82610eeb565b5f5f60408385031215610f92575f5ffd5b610f9b83610eeb565b915060208301358015158114610faf575f5ffd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff841115610fe857610fe8610fba565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561101757611017610fba565b60405283815290508082840185101561102e575f5ffd5b838360208301375f60208583010152509392505050565b5f5f5f5f60808587031215611058575f5ffd5b61106185610eeb565b935061106f60208601610eeb565b925060408501359150606085013567ffffffffffffffff811115611091575f5ffd5b8501601f810187136110a1575f5ffd5b6110b087823560208401610fce565b91505092959194509250565b5f5f604083850312156110cd575f5ffd5b6110d683610eeb565b9150602083013567ffffffffffffffff8111156110f1575f5ffd5b8301601f81018513611101575f5ffd5b61111085823560208401610fce565b9150509250929050565b5f5f6040838503121561112b575f5ffd5b61113483610eeb565b915061114260208401610eeb565b90509250929050565b600181811c9082168061115f57607f821691505b60208210810361117d57634e487b7160e01b5f52602260045260245ffd5b50919050565b602080825260169082015275115490cdcc8c4e881b9bdd08185d5d1a1bdc9a5e995960521b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f600182016111d8576111d86111b3565b5060010190565b5f816111ed576111ed6111b3565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061122690830184610e94565b9695505050505050565b5f60208284031215611240575f5ffd5b815161066c81610e64565b634e487b7160e01b5f52601260045260245ffd5b5f8261126d5761126d61124b565b500490565b5f826112805761128061124b565b500690565b8082018082111561029a5761029a6111b3565b634e487b7160e01b5f52603260045260245ffd5b601f82111561041057805f5260205f20601f840160051c810160208510156112d15750805b601f840160051c820191505b81811015610bb4575f81556001016112dd565b815167ffffffffffffffff81111561130a5761130a610fba565b61131e81611318845461114b565b846112ac565b6020601f821160018114611350575f83156113395750848201515b5f19600385901b1c1916600184901b178455610bb4565b5f84815260208120601f198516915b8281101561137f578785015182556020948501946001909201910161135f565b508482101561139c57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220f5b0ba2121906694ac638ef4161fb47cc63a52e67a1dd7c3d7d030b797bb271064736f6c634300081c0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.