@settlemint/ssolidity-token-erc721-generative-art
Version:
Smart contract set to build an ERC721 token with generated art in SettleMint
513 lines • 15.2 kB
JSON
{
"compiler": {
"version": "0.8.27+commit.40a35a09"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "_approved",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256",
"indexed": true
}
],
"type": "event",
"name": "Approval",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "_operator",
"type": "address",
"indexed": true
},
{
"internalType": "bool",
"name": "_approved",
"type": "bool",
"indexed": false
}
],
"type": "event",
"name": "ApprovalForAll",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "_to",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256",
"indexed": true
}
],
"type": "event",
"name": "Transfer",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "_approved",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function",
"name": "approve"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "address",
"name": "_operator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function",
"name": "safeTransferFrom"
},
{
"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"
}
],
"stateMutability": "payable",
"type": "function",
"name": "safeTransferFrom"
},
{
"inputs": [
{
"internalType": "address",
"name": "_operator",
"type": "address"
},
{
"internalType": "bool",
"name": "_approved",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setApprovalForAll"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceID",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "_symbol",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function",
"name": "transferFrom"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"approve(address,uint256)": {
"details": "The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.",
"params": {
"_approved": "The new approved NFT controller",
"_tokenId": "The NFT to approve"
}
},
"balanceOf(address)": {
"details": "NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.",
"params": {
"_owner": "An address for whom to query the balance"
},
"returns": {
"_0": "The number of NFTs owned by `_owner`, possibly zero"
}
},
"getApproved(uint256)": {
"details": "Throws if `_tokenId` is not a valid NFT.",
"params": {
"_tokenId": "The NFT to find the approved address for"
},
"returns": {
"_0": "The approved address for this NFT, or the zero address if there is none"
}
},
"isApprovedForAll(address,address)": {
"params": {
"_operator": "The address that acts on behalf of the owner",
"_owner": "The address that owns the NFTs"
},
"returns": {
"_0": "True if `_operator` is an approved operator for `_owner`, false otherwise"
}
},
"ownerOf(uint256)": {
"details": "NFTs assigned to zero address are considered invalid, and queries about them do throw.",
"params": {
"_tokenId": "The identifier for an NFT"
},
"returns": {
"_0": "The address of the owner of the NFT"
}
},
"safeTransferFrom(address,address,uint256)": {
"details": "This works identically to the other function with an extra data parameter, except this function just sets data to \"\".",
"params": {
"_from": "The current owner of the NFT",
"_to": "The new owner",
"_tokenId": "The NFT to transfer"
}
},
"safeTransferFrom(address,address,uint256,bytes)": {
"details": "Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.",
"params": {
"_from": "The current owner of the NFT",
"_to": "The new owner",
"_tokenId": "The NFT to transfer",
"data": "Additional data with no specified format, sent in call to `_to`"
}
},
"setApprovalForAll(address,bool)": {
"details": "Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.",
"params": {
"_approved": "True if the operator is approved, false to revoke approval",
"_operator": "Address to add to the set of authorized operators"
}
},
"supportsInterface(bytes4)": {
"details": "Interface identification is specified in ERC-165. This function uses less than 30,000 gas.",
"params": {
"interfaceID": "The interface identifier, as specified in ERC-165"
},
"returns": {
"_0": "`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"
}
},
"tokenURI(uint256)": {
"details": "Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the \"ERC721 Metadata JSON Schema\"."
},
"transferFrom(address,address,uint256)": {
"details": "Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.",
"params": {
"_from": "The current owner of the NFT",
"_to": "The new owner",
"_tokenId": "The NFT to transfer"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"approve(address,uint256)": {
"notice": "Change or reaffirm the approved address for an NFT"
},
"balanceOf(address)": {
"notice": "Count all NFTs assigned to an owner"
},
"getApproved(uint256)": {
"notice": "Get the approved address for a single NFT"
},
"isApprovedForAll(address,address)": {
"notice": "Query if an address is an authorized operator for another address"
},
"name()": {
"notice": "A descriptive name for a collection of NFTs in this contract"
},
"ownerOf(uint256)": {
"notice": "Find the owner of an NFT"
},
"safeTransferFrom(address,address,uint256)": {
"notice": "Transfers the ownership of an NFT from one address to another address"
},
"safeTransferFrom(address,address,uint256,bytes)": {
"notice": "Transfers the ownership of an NFT from one address to another address"
},
"setApprovalForAll(address,bool)": {
"notice": "Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"
},
"supportsInterface(bytes4)": {
"notice": "Query if a contract implements an interface"
},
"symbol()": {
"notice": "An abbreviated name for NFTs in this contract"
},
"tokenURI(uint256)": {
"notice": "A distinct Uniform Resource Identifier (URI) for a given asset."
},
"transferFrom(address,address,uint256)": {
"notice": "Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"
}
},
"version": 1
}
},
"settings": {
"remappings": [
"@openzeppelin/=node_modules/@openzeppelin/",
"eth-gas-reporter/=node_modules/eth-gas-reporter/",
"forge-std/=lib/forge-std/src/",
"hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 10000
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"lib/forge-std/src/interfaces/IERC721.sol": "IERC721Metadata"
},
"evmVersion": "cancun",
"libraries": {},
"viaIR": true
},
"sources": {
"lib/forge-std/src/interfaces/IERC165.sol": {
"keccak256": "0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600",
"urls": [
"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc",
"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"
],
"license": "MIT"
},
"lib/forge-std/src/interfaces/IERC721.sol": {
"keccak256": "0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15",
"urls": [
"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f",
"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"
],
"license": "MIT"
}
},
"version": 1
}