@vporton/future-contracts
Version:
Ethereum accounts bid on future financing (essentially, transfer money from the future) - smart contracts
731 lines • 29 kB
JSON
{
"contractName": "ERC721Holder",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC721Receiver} interface. Accepts all token transfers. Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721Holder.sol\":\"ERC721Holder\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721Holder.sol\":{\"keccak256\":\"0xdb2133d55b8f3a94313af8f4371ae0501a58e412d471b03d8581214c5ea2ce33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cea1e4bf769f27c8c9c1442f1518b49ef6c8b71a4bd4ce88353da9e9a8ba1704\",\"dweb:/ipfs/QmR1b8sj7fxgeHqDksV4GYTjZS1qajWC3yg9VCMUJus2bF\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x52146049d6709c870e8ddcd988b5155cb6c5d640cfcd8978aee52bc1ba2ec4eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada84513617b7c1b2f890b44503735abaec73a1acd030112a17aac7e6c66a4a1\",\"dweb:/ipfs/QmaiFwdio67iJrfjAdkMac24eJ5sS1qD7CZW6PhUU6KjiK\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50610197806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b6101036004803603608081101561004657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561008e57600080fd5b8201836020820111156100a057600080fd5b803590602001918460018302840111640100000000831117156100c257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610138945050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b7f150b7a020000000000000000000000000000000000000000000000000000000094935050505056fea2646970667358221220ba70896f216af33d9f56a0890e268ae42a40359f2ffb4fcfbaac5a96e5430c0b64736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b6101036004803603608081101561004657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561008e57600080fd5b8201836020820111156100a057600080fd5b803590602001918460018302840111640100000000831117156100c257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610138945050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b7f150b7a020000000000000000000000000000000000000000000000000000000094935050505056fea2646970667358221220ba70896f216af33d9f56a0890e268ae42a40359f2ffb4fcfbaac5a96e5430c0b64736f6c63430007060033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "348:354:29:-:0;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "348:354:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;538:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;538:162:29;;-1:-1:-1;538:162:29;;-1:-1:-1;;;;;538:162:29:i;:::-;;;;;;;;;;;;;;;;;;;;663:30;538:162;;;;;;:::o",
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"./IERC721Receiver.sol\";\n\n /**\n * @dev Implementation of the {IERC721Receiver} interface.\n *\n * Accepts all token transfers. \n * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.\n */\ncontract ERC721Holder is IERC721Receiver {\n\n /**\n * @dev See {IERC721Receiver-onERC721Received}.\n *\n * Always returns `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(address, address, uint256, bytes memory) public virtual override returns (bytes4) {\n return this.onERC721Received.selector;\n }\n}\n",
"sourcePath": "@openzeppelin/contracts/token/ERC721/ERC721Holder.sol",
"ast": {
"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Holder.sol",
"exportedSymbols": {
"ERC721Holder": [
6385
],
"IERC721Receiver": [
6577
]
},
"id": 6386,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 6360,
"literals": [
"solidity",
">=",
"0.6",
".0",
"<",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "33:31:29"
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
"file": "./IERC721Receiver.sol",
"id": 6361,
"nodeType": "ImportDirective",
"scope": 6386,
"sourceUnit": 6578,
"src": "66:31:29",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 6363,
"name": "IERC721Receiver",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 6577,
"src": "373:15:29",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC721Receiver_$6577",
"typeString": "contract IERC721Receiver"
}
},
"id": 6364,
"nodeType": "InheritanceSpecifier",
"src": "373:15:29"
}
],
"contractDependencies": [
6577
],
"contractKind": "contract",
"documentation": {
"id": 6362,
"nodeType": "StructuredDocumentation",
"src": "101:246:29",
"text": " @dev Implementation of the {IERC721Receiver} interface.\n Accepts all token transfers. \n Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}."
},
"fullyImplemented": true,
"id": 6385,
"linearizedBaseContracts": [
6385,
6577
],
"name": "ERC721Holder",
"nodeType": "ContractDefinition",
"nodes": [
{
"baseFunctions": [
6576
],
"body": {
"id": 6383,
"nodeType": "Block",
"src": "646:54:29",
"statements": [
{
"expression": {
"expression": {
"expression": {
"id": 6379,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "663:4:29",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721Holder_$6385",
"typeString": "contract ERC721Holder"
}
},
"id": 6380,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "onERC721Received",
"nodeType": "MemberAccess",
"referencedDeclaration": 6384,
"src": "663:21:29",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)"
}
},
"id": 6381,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "selector",
"nodeType": "MemberAccess",
"src": "663:30:29",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 6378,
"id": 6382,
"nodeType": "Return",
"src": "656:37:29"
}
]
},
"documentation": {
"id": 6365,
"nodeType": "StructuredDocumentation",
"src": "396:137:29",
"text": " @dev See {IERC721Receiver-onERC721Received}.\n Always returns `IERC721Receiver.onERC721Received.selector`."
},
"functionSelector": "150b7a02",
"id": 6384,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "onERC721Received",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 6375,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "620:8:29"
},
"parameters": {
"id": 6374,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6367,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 6384,
"src": "564:7:29",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6366,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "564:7:29",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6369,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 6384,
"src": "573:7:29",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6368,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "573:7:29",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6371,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 6384,
"src": "582:7:29",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6370,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "582:7:29",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6373,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 6384,
"src": "591:12:29",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 6372,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "591:5:29",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "563:41:29"
},
"returnParameters": {
"id": 6378,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6377,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 6384,
"src": "638:6:29",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 6376,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "638:6:29",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "637:8:29"
},
"scope": 6385,
"src": "538:162:29",
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
}
],
"scope": 6386,
"src": "348:354:29"
}
],
"src": "33:670:29"
},
"legacyAST": {
"attributes": {
"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Holder.sol",
"exportedSymbols": {
"ERC721Holder": [
6385
],
"IERC721Receiver": [
6577
]
},
"license": "MIT"
},
"children": [
{
"attributes": {
"literals": [
"solidity",
">=",
"0.6",
".0",
"<",
"0.8",
".0"
]
},
"id": 6360,
"name": "PragmaDirective",
"src": "33:31:29"
},
{
"attributes": {
"SourceUnit": 6578,
"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
"file": "./IERC721Receiver.sol",
"scope": 6386,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 6361,
"name": "ImportDirective",
"src": "66:31:29"
},
{
"attributes": {
"abstract": false,
"contractDependencies": [
6577
],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
6385,
6577
],
"name": "ERC721Holder",
"scope": 6386
},
"children": [
{
"attributes": {
"text": " @dev Implementation of the {IERC721Receiver} interface.\n Accepts all token transfers. \n Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}."
},
"id": 6362,
"name": "StructuredDocumentation",
"src": "101:246:29"
},
{
"attributes": {},
"children": [
{
"attributes": {
"name": "IERC721Receiver",
"referencedDeclaration": 6577,
"type": "contract IERC721Receiver"
},
"id": 6363,
"name": "UserDefinedTypeName",
"src": "373:15:29"
}
],
"id": 6364,
"name": "InheritanceSpecifier",
"src": "373:15:29"
},
{
"attributes": {
"baseFunctions": [
6576
],
"functionSelector": "150b7a02",
"implemented": true,
"isConstructor": false,
"kind": "function",
"modifiers": [
null
],
"name": "onERC721Received",
"scope": 6385,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
"children": [
{
"attributes": {
"text": " @dev See {IERC721Receiver-onERC721Received}.\n Always returns `IERC721Receiver.onERC721Received.selector`."
},
"id": 6365,
"name": "StructuredDocumentation",
"src": "396:137:29"
},
{
"attributes": {
"overrides": [
null
]
},
"id": 6375,
"name": "OverrideSpecifier",
"src": "620:8:29"
},
{
"children": [
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "",
"scope": 6384,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"stateMutability": "nonpayable",
"type": "address"
},
"id": 6366,
"name": "ElementaryTypeName",
"src": "564:7:29"
}
],
"id": 6367,
"name": "VariableDeclaration",
"src": "564:7:29"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "",
"scope": 6384,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"stateMutability": "nonpayable",
"type": "address"
},
"id": 6368,
"name": "ElementaryTypeName",
"src": "573:7:29"
}
],
"id": 6369,
"name": "VariableDeclaration",
"src": "573:7:29"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "",
"scope": 6384,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 6370,
"name": "ElementaryTypeName",
"src": "582:7:29"
}
],
"id": 6371,
"name": "VariableDeclaration",
"src": "582:7:29"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "",
"scope": 6384,
"stateVariable": false,
"storageLocation": "memory",
"type": "bytes",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 6372,
"name": "ElementaryTypeName",
"src": "591:5:29"
}
],
"id": 6373,
"name": "VariableDeclaration",
"src": "591:12:29"
}
],
"id": 6374,
"name": "ParameterList",
"src": "563:41:29"
},
{
"children": [
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "",
"scope": 6384,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes4",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes4",
"type": "bytes4"
},
"id": 6376,
"name": "ElementaryTypeName",
"src": "638:6:29"
}
],
"id": 6377,
"name": "VariableDeclaration",
"src": "638:6:29"
}
],
"id": 6378,
"name": "ParameterList",
"src": "637:8:29"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 6378
},
"children": [
{
"attributes": {
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"member_name": "selector",
"type": "bytes4"
},
"children": [
{
"attributes": {
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "onERC721Received",
"referencedDeclaration": 6384,
"type": "function (address,address,uint256,bytes memory) external returns (bytes4)"
},
"children": [
{
"attributes": {
"overloadedDeclarations": [
null
],
"referencedDeclaration": 4294967268,
"type": "contract ERC721Holder",
"value": "this"
},
"id": 6379,
"name": "Identifier",
"src": "663:4:29"
}
],
"id": 6380,
"name": "MemberAccess",
"src": "663:21:29"
}
],
"id": 6381,
"name": "MemberAccess",
"src": "663:30:29"
}
],
"id": 6382,
"name": "Return",
"src": "656:37:29"
}
],
"id": 6383,
"name": "Block",
"src": "646:54:29"
}
],
"id": 6384,
"name": "FunctionDefinition",
"src": "538:162:29"
}
],
"id": 6385,
"name": "ContractDefinition",
"src": "348:354:29"
}
],
"id": 6386,
"name": "SourceUnit",
"src": "33:670:29"
},
"compiler": {
"name": "solc",
"version": "0.7.6+commit.7338295f.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.4.1",
"updatedAt": "2021-06-03T23:56:22.361Z",
"devdoc": {
"details": "Implementation of the {IERC721Receiver} interface. Accepts all token transfers. Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.",
"kind": "dev",
"methods": {
"onERC721Received(address,address,uint256,bytes)": {
"details": "See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}