UNPKG

@vporton/future-contracts

Version:

Ethereum accounts bid on future financing (essentially, transfer money from the future) - smart contracts

731 lines 29 kB
{ "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 } }