Sepolia Testnet

Token

Dyson Agent (DAG)
ERC-721

Overview

Max Total Supply

18,662 DAG

Holders

18,662

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-
Balance
1 DAG
0xaafc6648cebd0bd66d66c1426b90d20d8b3910d7
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x7C46b084...af0313034
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
AgentNFT

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 2 : AgentNFT.sol
pragma solidity 0.8.17;

// SPDX-License-Identifier: AGPL-3.0

import "interfaces/IAgency.sol";

library Base64 {
    bytes internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    /// @notice Encodes some bytes to the base64 representation
    function encode(bytes memory data) internal pure returns (string memory) {
        uint len = data.length;
        if (len == 0) return "";

        // multiply by 4/3 rounded up
        uint encodedLen = 4 * ((len + 2) / 3);

        // Add some extra buffer at the end
        bytes memory result = new bytes(encodedLen + 32);

        bytes memory table = TABLE;

        assembly {
            let tablePtr := add(table, 1)
            let resultPtr := add(result, 32)

            for {
                let i := 0
            } lt(i, len) {

            } {
                i := add(i, 3)
                let input := and(mload(add(data, i)), 0xffffff)

                let out := mload(add(tablePtr, and(shr(18, input), 0x3F)))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(12, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(6, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(input, 0x3F))), 0xFF))
                out := shl(224, out)

                mstore(resultPtr, out)

                resultPtr := add(resultPtr, 4)
            }

            switch mod(len, 3)
            case 1 {
                mstore(sub(resultPtr, 2), shl(240, 0x3d3d))
            }
            case 2 {
                mstore(sub(resultPtr, 1), shl(248, 0x3d))
            }

            mstore(result, encodedLen)
        }

        return string(result);
    }
}

/**
* @title ERC721 token receiver interface
* @dev Interface for any contract that wants to support safeTransfers
* from ERC721 asset contracts.
*/
interface IERC721Receiver {
    function onERC721Received(address, address, uint, bytes calldata) external returns (bytes4);
}

contract AgentNFT {
    IAgency public immutable agency;

    /// @dev ERC165 interface ID of ERC165
    bytes4 private constant ERC165_INTERFACE_ID = 0x01ffc9a7;
    /// @dev ERC165 interface ID of ERC721
    bytes4 private constant ERC721_INTERFACE_ID = 0x80ac58cd;
    /// @dev ERC165 interface ID of ERC721Metadata
    bytes4 private constant ERC721_METADATA_INTERFACE_ID = 0x5b5e139f;

    /// @dev Get the approved address for a single NFT.
    mapping(uint => address) public getApproved;
    /// @dev Checks if an address is an approved operator. 
    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /**
    * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
    */
    event Transfer(address indexed from, address indexed to, uint indexed tokenId);
    /**
    * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
    */
    event Approval(address indexed owner, address indexed approved, uint indexed tokenId);
    /**
    * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
    */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    constructor(address _agency) {
        agency = IAgency(_agency);
    }

    /**
    * @dev Interface identification is specified in ERC-165.
    * @param interfaceID Id of the interface
    */
    function supportsInterface(bytes4 interfaceID) external pure returns (bool) {
        return (interfaceID == ERC165_INTERFACE_ID ||
                interfaceID == ERC721_INTERFACE_ID ||
                interfaceID == ERC721_METADATA_INTERFACE_ID);
    }

    function name() external pure returns (string memory) {
        return "Dyson Agent";
    }

    function symbol() external pure returns (string memory) {
        return "DAG";
    }

    function tokenURI(uint tokenId) external view returns (string memory) {
        (address owner, uint tier, uint birth, uint parent,) = agency.getAgent(tokenId);
        require(owner != address(0), "TOKEN_NOT_EXIST");
        return _tokenURI(tokenId, parent, tier, birth);
    }

    function _tokenURI(uint tokenId, uint parent, uint tier, uint birth) internal pure returns (string memory output) {
        output = '<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">';
        output = string(abi.encodePacked(output, "token ", _toString(tokenId), '</text><text x="10" y="40" class="base">'));
        output = string(abi.encodePacked(output, "referer ", _toString(parent), '</text><text x="10" y="60" class="base">'));
        output = string(abi.encodePacked(output, "agent_tier ", _toString(tier), '</text><text x="10" y="80" class="base">'));
        output = string(abi.encodePacked(output, "time_of_creation ", _toString(birth), '</text></svg>'));

        string memory json = Base64.encode(bytes(string(abi.encodePacked('{"name": "Agent #', _toString(tokenId), '", "description": "Dyson Finance Agent NFT", "image": "data:image/svg+xml;base64,', Base64.encode(bytes(output)), '"}'))));
        output = string(abi.encodePacked('data:application/json;base64,', json));
    }

    function _toString(uint value) internal pure returns (string memory) {
        if (value == 0) {
            return "0";
        }
        uint temp = value;
        uint digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    function totalSupply() external view returns (uint) {
        return agency.totalSupply();
    }

    function balanceOf(address owner) external view returns (uint balance) {
        return agency.whois(owner) == 0 ? 0 : 1;
    }

    function ownerOf(uint tokenId) public view returns (address owner) {
        (owner,,,,) = agency.getAgent(tokenId);
    }

    function onMint(address user, uint tokenId) external {
        require(msg.sender == address(agency), "FORBIDDEN");
        emit Transfer(address(0), user, tokenId);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint tokenId
    ) external {
        safeTransferFrom(from, to, tokenId, '');
    }

    function approve(address to, uint tokenId) external {
        address owner = ownerOf(tokenId);
        // Throws if `tokenId` is not a valid NFT
        require(owner != address(0), "TOKEN_NOT_EXIST");
        // Check requirements
        require(owner == msg.sender || isApprovedForAll[owner][msg.sender], "FORBIDDEN");
        getApproved[tokenId] = to;
        emit Approval(owner, to, tokenId);
    }

    function setApprovalForAll(address operator, bool approved) external {
        require(operator != msg.sender, "SELF_APPROVAL");
        isApprovedForAll[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function _transferFrom(
        address from,
        address to,
        uint tokenId,
        address sender
    ) internal {
        require(from == sender || isApprovedForAll[from][sender] || getApproved[tokenId] == sender, "FORBIDDEN");

        getApproved[tokenId] = address(0);

        require(agency.transfer(from, to, tokenId), "FORBIDDEN");

        emit Transfer(from, to, tokenId);
    }

    function transferFrom(
        address from,
        address to,
        uint tokenId
    ) external {
        _transferFrom(from, to, tokenId, msg.sender);
    }

    function _isContract(address account) internal view returns (bool) {
        uint size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function safeTransferFrom(
        address from,
        address to,
        uint tokenId,
        bytes memory data
    ) public {
        _transferFrom(from, to, tokenId, msg.sender);

        if (_isContract(to)) {
            try IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, data) returns (bytes4 retval) {
                require(retval == IERC721Receiver.onERC721Received.selector, "Transfer Failed");
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert('ERC721: transfer to non ERC721Receiver implementer');
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        }
    }

}

File 2 of 2 : IAgency.sol
pragma solidity >=0.8.0;

// SPDX-License-Identifier: MIT

interface IAgency {
    function whois(address agent) external view returns (uint);
    function userInfo(address agent) external view returns (address ref, uint gen);
    function transfer(address from, address to, uint id) external returns (bool);
    function totalSupply() external view returns (uint);
    function getAgent(uint id) external view returns (address, uint, uint, uint, uint[] memory);
    function adminAdd(address newUser) external returns (uint id);
}

Settings
{
  "remappings": [
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "interfaces/=src/interfaces/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_agency","type":"address"}],"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":[],"name":"agency","outputs":[{"internalType":"contract IAgency","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"onMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","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":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b5060405161195f38038061195f83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516118aa6100b5600039600081816101f40152818161043e015281816104bb0152818161058501528181610629015281816108ee0152610ab701526118aa6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806342842e0e11610097578063a22cb46511610066578063a22cb4651461026e578063b88d4fde14610281578063c87b56dd14610294578063e985e9c5146102a757600080fd5b806342842e0e146102165780636352211e1461022957806370a082311461023c57806395d89b411461024f57600080fd5b80630f632fd3116100d35780630f632fd3146101b357806318160ddd146101c657806323b872dd146101dc5780633b91ee26146101ef57600080fd5b806301ffc9a71461010557806306fdde031461012d578063081812fc1461015d578063095ea7b31461019e575b600080fd5b610118610113366004610f4a565b6102d5565b60405190151581526020015b60405180910390f35b60408051808201909152600b81526a111e5cdbdb881059d95b9d60aa1b60208201525b6040516101249190610fbe565b61018661016b366004610fd1565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610124565b6101b16101ac366004610fff565b610327565b005b6101b16101c1366004610fff565b610433565b6101ce6104b7565b604051908152602001610124565b6101b16101ea36600461102b565b610540565b6101867f000000000000000000000000000000000000000000000000000000000000000081565b6101b161022436600461102b565b610551565b610186610237366004610fd1565b61056c565b6101ce61024a36600461106c565b610607565b60408051808201909152600381526244414760e81b6020820152610150565b6101b161027c366004611097565b6106ae565b6101b161028f366004611117565b610762565b6101506102a2366004610fd1565b6108e4565b6101186102b53660046111db565b600160209081526000928352604080842090915290825290205460ff1681565b60006001600160e01b031982166301ffc9a760e01b148061030657506001600160e01b031982166380ac58cd60e01b145b8061032157506001600160e01b03198216635b5e139f60e01b145b92915050565b60006103328261056c565b90506001600160a01b0381166103815760405162461bcd60e51b815260206004820152600f60248201526e1513d2d15397d393d517d1561254d5608a1b60448201526064015b60405180910390fd5b6001600160a01b0381163314806103bb57506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6103d75760405162461bcd60e51b815260040161037890611209565b60008281526020819052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461047b5760405162461bcd60e51b815260040161037890611209565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053b919061122c565b905090565b61054c838383336109e8565b505050565b61054c83838360405180602001604052806000815250610762565b604051632de5aaf760e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632de5aaf790602401600060405180830381865afa1580156105d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105fc9190810190611245565b509295945050505050565b604051632a5ccc1f60e01b81526001600160a01b0382811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632a5ccc1f90602401602060405180830381865afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610696919061122c565b156106a25760016106a5565b60005b60ff1692915050565b336001600160a01b038316036106f65760405162461bcd60e51b815260206004820152600d60248201526c14d1531197d054141493d59053609a1b6044820152606401610378565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61076e848484336109e8565b823b156108de57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107a790339088908790879060040161131f565b6020604051808303816000875af19250505080156107e2575060408051601f3d908101601f191682019092526107df91810190611352565b60015b61088a573d808015610810576040519150601f19603f3d011682016040523d82523d6000602084013e610815565b606091505b5080516000036108825760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610378565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146108dc5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8811985a5b1959608a1b6044820152606401610378565b505b50505050565b60606000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632de5aaf7876040518263ffffffff1660e01b815260040161093a91815260200190565b600060405180830381865afa158015610957573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097f9190810190611245565b50929650909450925090506001600160a01b0384166109d25760405162461bcd60e51b815260206004820152600f60248201526e1513d2d15397d393d517d1561254d5608a1b6044820152606401610378565b6109de86828585610b87565b9695505050505050565b806001600160a01b0316846001600160a01b03161480610a2d57506001600160a01b0380851660009081526001602090815260408083209385168352929052205460ff165b80610a5157506000828152602081905260409020546001600160a01b038281169116145b610a6d5760405162461bcd60e51b815260040161037890611209565b6000828152602081905260409081902080546001600160a01b0319169055516317d5759960e31b81526001600160a01b0385811660048301528481166024830152604482018490527f0000000000000000000000000000000000000000000000000000000000000000169063beabacc8906064016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b24919061136f565b610b405760405162461bcd60e51b815260040161037890611209565b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b606060405180610120016040528060fd815260200161173860fd9139905080610baf86610cbe565b604051602001610bc092919061138c565b604051602081830303815290604052905080610bdb85610cbe565b604051602001610bec929190611408565b604051602081830303815290604052905080610c0784610cbe565b604051602001610c18929190611486565b604051602081830303815290604052905080610c3383610cbe565b604051602001610c44929190611507565b60405160208183030381529060405290506000610c91610c6387610cbe565b610c6c84610dc7565b604051602001610c7d92919061156d565b604051602081830303815290604052610dc7565b905080604051602001610ca49190611632565b604051602081830303815290604052915050949350505050565b606081600003610ce55750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610d0f5780610cf98161168d565b9150610d089050600a836116bc565b9150610ce9565b60008167ffffffffffffffff811115610d2a57610d2a6110d0565b6040519080825280601f01601f191660200182016040528015610d54576020820181803683370190505b5090505b8415610dbf57610d696001836116d0565b9150610d76600a866116e3565b610d819060306116f7565b60f81b818381518110610d9657610d9661170a565b60200101906001600160f81b031916908160001a905350610db8600a866116bc565b9450610d58565b949350505050565b80516060906000819003610deb575050604080516020810190915260008152919050565b60006003610dfa8360026116f7565b610e0491906116bc565b610e0f906004611720565b90506000610e1e8260206116f7565b67ffffffffffffffff811115610e3657610e366110d0565b6040519080825280601f01601f191660200182016040528015610e60576020820181803683370190505b5090506000604051806060016040528060408152602001611835604091399050600181016020830160005b86811015610eec576003818a01810151603f601282901c8116860151600c83901c8216870151600684901c831688015192909316870151600891821b60ff94851601821b92841692909201901b91160160e01b835260049092019101610e8b565b506003860660018114610f065760028114610f1757610f23565b613d3d60f01b600119830152610f23565b603d60f81b6000198301525b505050918152949350505050565b6001600160e01b031981168114610f4757600080fd5b50565b600060208284031215610f5c57600080fd5b8135610f6781610f31565b9392505050565b60005b83811015610f89578181015183820152602001610f71565b50506000910152565b60008151808452610faa816020860160208601610f6e565b601f01601f19169290920160200192915050565b602081526000610f676020830184610f92565b600060208284031215610fe357600080fd5b5035919050565b6001600160a01b0381168114610f4757600080fd5b6000806040838503121561101257600080fd5b823561101d81610fea565b946020939093013593505050565b60008060006060848603121561104057600080fd5b833561104b81610fea565b9250602084013561105b81610fea565b929592945050506040919091013590565b60006020828403121561107e57600080fd5b8135610f6781610fea565b8015158114610f4757600080fd5b600080604083850312156110aa57600080fd5b82356110b581610fea565b915060208301356110c581611089565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561110f5761110f6110d0565b604052919050565b6000806000806080858703121561112d57600080fd5b843561113881610fea565b935060208581013561114981610fea565b935060408601359250606086013567ffffffffffffffff8082111561116d57600080fd5b818801915088601f83011261118157600080fd5b813581811115611193576111936110d0565b6111a5601f8201601f191685016110e6565b915080825289848285010111156111bb57600080fd5b808484018584013760008482840101525080935050505092959194509250565b600080604083850312156111ee57600080fd5b82356111f981610fea565b915060208301356110c581610fea565b6020808252600990820152682327a92124a22222a760b91b604082015260600190565b60006020828403121561123e57600080fd5b5051919050565b600080600080600060a0868803121561125d57600080fd5b855161126881610fea565b8095505060208087015194506040870151935060608701519250608087015167ffffffffffffffff8082111561129d57600080fd5b818901915089601f8301126112b157600080fd5b8151818111156112c3576112c36110d0565b8060051b91506112d48483016110e6565b818152918301840191848101908c8411156112ee57600080fd5b938501935b8385101561130c578451825293850193908501906112f3565b8096505050505050509295509295909350565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906109de90830184610f92565b60006020828403121561136457600080fd5b8151610f6781610f31565b60006020828403121561138157600080fd5b8151610f6781611089565b6000835161139e818460208801610f6e565b6503a37b5b2b7160d51b90830190815283516113c1816006840160208801610f6e565b7f3c2f746578743e3c7465787420783d2231302220793d2234302220636c61737360069290910191820152671e913130b9b2911f60c11b6026820152602e01949350505050565b6000835161141a818460208801610f6e565b6703932b332b932b9160c51b908301908152835161143f816008840160208801610f6e565b7f3c2f746578743e3c7465787420783d2231302220793d2236302220636c61737360089290910191820152671e913130b9b2911f60c11b6028820152603001949350505050565b60008351611498818460208801610f6e565b6a030b3b2b73a2fba34b2b9160ad1b90830190815283516114c081600b840160208801610f6e565b7f3c2f746578743e3c7465787420783d2231302220793d2238302220636c617373600b9290910191820152671e913130b9b2911f60c11b602b820152603301949350505050565b60008351611519818460208801610f6e565b7003a34b6b2afb7b32fb1b932b0ba34b7b71607d1b9083019081528351611547816011840160208801610f6e565b6c1e17ba32bc3a1f1e17b9bb339f60991b60119290910191820152601e01949350505050565b707b226e616d65223a20224167656e74202360781b8152825160009061159a816011850160208801610f6e565b7f222c20226465736372697074696f6e223a20224479736f6e2046696e616e63656011918401918201527f204167656e74204e4654222c2022696d616765223a2022646174613a696d6167603182015270194bdcdd99cade1b5b0ed8985cd94d8d0b607a1b60518201528351611617816062840160208801610f6e565b61227d60f01b60629290910191820152606401949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161166a81601d850160208701610f6e565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b60006001820161169f5761169f611677565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826116cb576116cb6116a6565b500490565b8181038181111561032157610321611677565b6000826116f2576116f26116a6565b500690565b8082018082111561032157610321611677565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176103215761032161167756fe3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574222076696577426f783d223020302033353020333530223e3c7374796c653e2e62617365207b2066696c6c3a2077686974653b20666f6e742d66616d696c793a2073657269663b20666f6e742d73697a653a20313470783b207d3c2f7374796c653e3c726563742077696474683d223130302522206865696768743d2231303025222066696c6c3d22626c61636b22202f3e3c7465787420783d2231302220793d2232302220636c6173733d2262617365223e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220b833d7949181ec5d087f6a5e518b9e290e480ba2c742bbb112595e4fcf44f04e64736f6c63430008110033000000000000000000000000cb2955ad7110751c7a24da027286c1b0a1219305

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806342842e0e11610097578063a22cb46511610066578063a22cb4651461026e578063b88d4fde14610281578063c87b56dd14610294578063e985e9c5146102a757600080fd5b806342842e0e146102165780636352211e1461022957806370a082311461023c57806395d89b411461024f57600080fd5b80630f632fd3116100d35780630f632fd3146101b357806318160ddd146101c657806323b872dd146101dc5780633b91ee26146101ef57600080fd5b806301ffc9a71461010557806306fdde031461012d578063081812fc1461015d578063095ea7b31461019e575b600080fd5b610118610113366004610f4a565b6102d5565b60405190151581526020015b60405180910390f35b60408051808201909152600b81526a111e5cdbdb881059d95b9d60aa1b60208201525b6040516101249190610fbe565b61018661016b366004610fd1565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610124565b6101b16101ac366004610fff565b610327565b005b6101b16101c1366004610fff565b610433565b6101ce6104b7565b604051908152602001610124565b6101b16101ea36600461102b565b610540565b6101867f000000000000000000000000cb2955ad7110751c7a24da027286c1b0a121930581565b6101b161022436600461102b565b610551565b610186610237366004610fd1565b61056c565b6101ce61024a36600461106c565b610607565b60408051808201909152600381526244414760e81b6020820152610150565b6101b161027c366004611097565b6106ae565b6101b161028f366004611117565b610762565b6101506102a2366004610fd1565b6108e4565b6101186102b53660046111db565b600160209081526000928352604080842090915290825290205460ff1681565b60006001600160e01b031982166301ffc9a760e01b148061030657506001600160e01b031982166380ac58cd60e01b145b8061032157506001600160e01b03198216635b5e139f60e01b145b92915050565b60006103328261056c565b90506001600160a01b0381166103815760405162461bcd60e51b815260206004820152600f60248201526e1513d2d15397d393d517d1561254d5608a1b60448201526064015b60405180910390fd5b6001600160a01b0381163314806103bb57506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6103d75760405162461bcd60e51b815260040161037890611209565b60008281526020819052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b336001600160a01b037f000000000000000000000000cb2955ad7110751c7a24da027286c1b0a1219305161461047b5760405162461bcd60e51b815260040161037890611209565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60007f000000000000000000000000cb2955ad7110751c7a24da027286c1b0a12193056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053b919061122c565b905090565b61054c838383336109e8565b505050565b61054c83838360405180602001604052806000815250610762565b604051632de5aaf760e01b8152600481018290526000907f000000000000000000000000cb2955ad7110751c7a24da027286c1b0a12193056001600160a01b031690632de5aaf790602401600060405180830381865afa1580156105d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105fc9190810190611245565b509295945050505050565b604051632a5ccc1f60e01b81526001600160a01b0382811660048301526000917f000000000000000000000000cb2955ad7110751c7a24da027286c1b0a121930590911690632a5ccc1f90602401602060405180830381865afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610696919061122c565b156106a25760016106a5565b60005b60ff1692915050565b336001600160a01b038316036106f65760405162461bcd60e51b815260206004820152600d60248201526c14d1531197d054141493d59053609a1b6044820152606401610378565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61076e848484336109e8565b823b156108de57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107a790339088908790879060040161131f565b6020604051808303816000875af19250505080156107e2575060408051601f3d908101601f191682019092526107df91810190611352565b60015b61088a573d808015610810576040519150601f19603f3d011682016040523d82523d6000602084013e610815565b606091505b5080516000036108825760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610378565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146108dc5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8811985a5b1959608a1b6044820152606401610378565b505b50505050565b60606000806000807f000000000000000000000000cb2955ad7110751c7a24da027286c1b0a12193056001600160a01b0316632de5aaf7876040518263ffffffff1660e01b815260040161093a91815260200190565b600060405180830381865afa158015610957573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097f9190810190611245565b50929650909450925090506001600160a01b0384166109d25760405162461bcd60e51b815260206004820152600f60248201526e1513d2d15397d393d517d1561254d5608a1b6044820152606401610378565b6109de86828585610b87565b9695505050505050565b806001600160a01b0316846001600160a01b03161480610a2d57506001600160a01b0380851660009081526001602090815260408083209385168352929052205460ff165b80610a5157506000828152602081905260409020546001600160a01b038281169116145b610a6d5760405162461bcd60e51b815260040161037890611209565b6000828152602081905260409081902080546001600160a01b0319169055516317d5759960e31b81526001600160a01b0385811660048301528481166024830152604482018490527f000000000000000000000000cb2955ad7110751c7a24da027286c1b0a1219305169063beabacc8906064016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b24919061136f565b610b405760405162461bcd60e51b815260040161037890611209565b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b606060405180610120016040528060fd815260200161173860fd9139905080610baf86610cbe565b604051602001610bc092919061138c565b604051602081830303815290604052905080610bdb85610cbe565b604051602001610bec929190611408565b604051602081830303815290604052905080610c0784610cbe565b604051602001610c18929190611486565b604051602081830303815290604052905080610c3383610cbe565b604051602001610c44929190611507565b60405160208183030381529060405290506000610c91610c6387610cbe565b610c6c84610dc7565b604051602001610c7d92919061156d565b604051602081830303815290604052610dc7565b905080604051602001610ca49190611632565b604051602081830303815290604052915050949350505050565b606081600003610ce55750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610d0f5780610cf98161168d565b9150610d089050600a836116bc565b9150610ce9565b60008167ffffffffffffffff811115610d2a57610d2a6110d0565b6040519080825280601f01601f191660200182016040528015610d54576020820181803683370190505b5090505b8415610dbf57610d696001836116d0565b9150610d76600a866116e3565b610d819060306116f7565b60f81b818381518110610d9657610d9661170a565b60200101906001600160f81b031916908160001a905350610db8600a866116bc565b9450610d58565b949350505050565b80516060906000819003610deb575050604080516020810190915260008152919050565b60006003610dfa8360026116f7565b610e0491906116bc565b610e0f906004611720565b90506000610e1e8260206116f7565b67ffffffffffffffff811115610e3657610e366110d0565b6040519080825280601f01601f191660200182016040528015610e60576020820181803683370190505b5090506000604051806060016040528060408152602001611835604091399050600181016020830160005b86811015610eec576003818a01810151603f601282901c8116860151600c83901c8216870151600684901c831688015192909316870151600891821b60ff94851601821b92841692909201901b91160160e01b835260049092019101610e8b565b506003860660018114610f065760028114610f1757610f23565b613d3d60f01b600119830152610f23565b603d60f81b6000198301525b505050918152949350505050565b6001600160e01b031981168114610f4757600080fd5b50565b600060208284031215610f5c57600080fd5b8135610f6781610f31565b9392505050565b60005b83811015610f89578181015183820152602001610f71565b50506000910152565b60008151808452610faa816020860160208601610f6e565b601f01601f19169290920160200192915050565b602081526000610f676020830184610f92565b600060208284031215610fe357600080fd5b5035919050565b6001600160a01b0381168114610f4757600080fd5b6000806040838503121561101257600080fd5b823561101d81610fea565b946020939093013593505050565b60008060006060848603121561104057600080fd5b833561104b81610fea565b9250602084013561105b81610fea565b929592945050506040919091013590565b60006020828403121561107e57600080fd5b8135610f6781610fea565b8015158114610f4757600080fd5b600080604083850312156110aa57600080fd5b82356110b581610fea565b915060208301356110c581611089565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561110f5761110f6110d0565b604052919050565b6000806000806080858703121561112d57600080fd5b843561113881610fea565b935060208581013561114981610fea565b935060408601359250606086013567ffffffffffffffff8082111561116d57600080fd5b818801915088601f83011261118157600080fd5b813581811115611193576111936110d0565b6111a5601f8201601f191685016110e6565b915080825289848285010111156111bb57600080fd5b808484018584013760008482840101525080935050505092959194509250565b600080604083850312156111ee57600080fd5b82356111f981610fea565b915060208301356110c581610fea565b6020808252600990820152682327a92124a22222a760b91b604082015260600190565b60006020828403121561123e57600080fd5b5051919050565b600080600080600060a0868803121561125d57600080fd5b855161126881610fea565b8095505060208087015194506040870151935060608701519250608087015167ffffffffffffffff8082111561129d57600080fd5b818901915089601f8301126112b157600080fd5b8151818111156112c3576112c36110d0565b8060051b91506112d48483016110e6565b818152918301840191848101908c8411156112ee57600080fd5b938501935b8385101561130c578451825293850193908501906112f3565b8096505050505050509295509295909350565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906109de90830184610f92565b60006020828403121561136457600080fd5b8151610f6781610f31565b60006020828403121561138157600080fd5b8151610f6781611089565b6000835161139e818460208801610f6e565b6503a37b5b2b7160d51b90830190815283516113c1816006840160208801610f6e565b7f3c2f746578743e3c7465787420783d2231302220793d2234302220636c61737360069290910191820152671e913130b9b2911f60c11b6026820152602e01949350505050565b6000835161141a818460208801610f6e565b6703932b332b932b9160c51b908301908152835161143f816008840160208801610f6e565b7f3c2f746578743e3c7465787420783d2231302220793d2236302220636c61737360089290910191820152671e913130b9b2911f60c11b6028820152603001949350505050565b60008351611498818460208801610f6e565b6a030b3b2b73a2fba34b2b9160ad1b90830190815283516114c081600b840160208801610f6e565b7f3c2f746578743e3c7465787420783d2231302220793d2238302220636c617373600b9290910191820152671e913130b9b2911f60c11b602b820152603301949350505050565b60008351611519818460208801610f6e565b7003a34b6b2afb7b32fb1b932b0ba34b7b71607d1b9083019081528351611547816011840160208801610f6e565b6c1e17ba32bc3a1f1e17b9bb339f60991b60119290910191820152601e01949350505050565b707b226e616d65223a20224167656e74202360781b8152825160009061159a816011850160208801610f6e565b7f222c20226465736372697074696f6e223a20224479736f6e2046696e616e63656011918401918201527f204167656e74204e4654222c2022696d616765223a2022646174613a696d6167603182015270194bdcdd99cade1b5b0ed8985cd94d8d0b607a1b60518201528351611617816062840160208801610f6e565b61227d60f01b60629290910191820152606401949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161166a81601d850160208701610f6e565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b60006001820161169f5761169f611677565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826116cb576116cb6116a6565b500490565b8181038181111561032157610321611677565b6000826116f2576116f26116a6565b500690565b8082018082111561032157610321611677565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176103215761032161167756fe3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574222076696577426f783d223020302033353020333530223e3c7374796c653e2e62617365207b2066696c6c3a2077686974653b20666f6e742d66616d696c793a2073657269663b20666f6e742d73697a653a20313470783b207d3c2f7374796c653e3c726563742077696474683d223130302522206865696768743d2231303025222066696c6c3d22626c61636b22202f3e3c7465787420783d2231302220793d2232302220636c6173733d2262617365223e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220b833d7949181ec5d087f6a5e518b9e290e480ba2c742bbb112595e4fcf44f04e64736f6c63430008110033

[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.