{
  "contractName": "ERC1155Holder",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155BatchReceived",
      "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\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"_Available since v3.1._\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155Holder.sol\":\"ERC1155Holder\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xd6b90e604fb2eb2d641c7110c72440bf2dc999ec6ab8ff60f200e71ca75d1d90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b92d8ab83b21ff984b1f0d6d66897d5afb1f2052004cbcb133cea023e0ae468\",\"dweb:/ipfs/QmTarypkQrFp4UMjTh7Zzhz2nZLz5uPS4nJQtHDEuwBVe6\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xf70bc25d981e4ec9673a995ad2995d5d493ea188d3d8f388bba9c227ce09fb82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd970f51e3a77790c2f02b5b1759827c3b897c3d98c407b3631e8af32e3dc93c\",\"dweb:/ipfs/QmPF85Amgbqjk3SNZKsPCsqCw8JfwYEPMnnhvMJUyX58je\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155Holder.sol\":{\"keccak256\":\"0x21428ca879b2437107322dfc1e214d25ecd6b966344961025ee412c3acfd5fc0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9747c875899d05823aede28b60ca8d3719b8c28018f397521c4ffb05041e1ac5\",\"dweb:/ipfs/QmQEQ4jJYEGFNfcngfZ3gPkcrcWYWKbo1Bq2F57scJxbmE\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol\":{\"keccak256\":\"0xfce008c2ddf19a62e29e056fdddfa10204b19417ae0f711913703e4ee9dec92c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37a7bb9249c0e8aaecd0c6f33fae7f03d15aebb015f5f7f1face393cfd58d75b\",\"dweb:/ipfs/QmevqbHb43sTLnpWzrGW9WvWvktMzuP5EzYHhqZox2A5v3\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x2690a9b7f4f7489b8d25a4fc6bffc02ec3971fb41ed6c8b59adef2833bdab07c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8148c99452b6793ac9599abdc8bdaf4eeb47f34590beea8aa01089be14e2990c\",\"dweb:/ipfs/QmNdenmZ4EDfH9TuBas3pHeGuZvDNo2rsfgUj6ka8vuH37\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b506100216301ffc9a760e01b610036565b610031630271189760e51b610036565b6100ba565b6001600160e01b03198082161415610095576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b61043b806100c96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a714610046578063bc197c8114610099578063f23a6e61146102a2575b600080fd5b6100856004803603602081101561005c57600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661037a565b604080519115158252519081900360200190f35b61026d600480360360a08110156100af57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156100f057600080fd5b82018360208201111561010257600080fd5b8035906020019184602083028401116401000000008311171561012457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561017457600080fd5b82018360208201111561018657600080fd5b803590602001918460208302840111640100000000831117156101a857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156101f857600080fd5b82018360208201111561020a57600080fd5b8035906020019184600183028401116401000000008311171561022c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103b1945050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b61026d600480360360a08110156102b857600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561030557600080fd5b82018360208201111561031757600080fd5b8035906020019184600183028401116401000000008311171561033957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103db945050505050565b7fffffffff000000000000000000000000000000000000000000000000000000001660009081526020819052604090205460ff1690565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b7ff23a6e61000000000000000000000000000000000000000000000000000000009594505050505056fea2646970667358221220c42bdbf44f9dca827b985b4adda5527a335c6973b54d7e975910d77dd407858b64736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a714610046578063bc197c8114610099578063f23a6e61146102a2575b600080fd5b6100856004803603602081101561005c57600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661037a565b604080519115158252519081900360200190f35b61026d600480360360a08110156100af57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116918101906060810160408201356401000000008111156100f057600080fd5b82018360208201111561010257600080fd5b8035906020019184602083028401116401000000008311171561012457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561017457600080fd5b82018360208201111561018657600080fd5b803590602001918460208302840111640100000000831117156101a857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156101f857600080fd5b82018360208201111561020a57600080fd5b8035906020019184600183028401116401000000008311171561022c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103b1945050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b61026d600480360360a08110156102b857600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561030557600080fd5b82018360208201111561031757600080fd5b8035906020019184600183028401116401000000008311171561033957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103db945050505050565b7fffffffff000000000000000000000000000000000000000000000000000000001660009081526020819052604090205460ff1690565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b7ff23a6e61000000000000000000000000000000000000000000000000000000009594505050505056fea2646970667358221220c42bdbf44f9dca827b985b4adda5527a335c6973b54d7e975910d77dd407858b64736f6c63430007060033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "139:430:21:-:0;;;;;;;;;;;;-1:-1:-1;768:40:18;-1:-1:-1;;;768:18:18;:40::i;:::-;282:152:22;-1:-1:-1;;;282:18:22;:152::i;:::-;139:430:21;;1499:198:18;-1:-1:-1;;;;;;1582:25:18;;;;;1574:66;;;;;-1:-1:-1;;;1574:66:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1650:33:18;:20;:33;;;;;;;;;;:40;;-1:-1:-1;;1650:40:18;1686:4;1650:40;;;1499:198::o;139:430:21:-;;;;;;;",
  "deployedSourceMap": "139:430:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:140:18;;;;;;;;;;;;;;;;-1:-1:-1;965:140:18;;;;:::i;:::-;;;;;;;;;;;;;;;;;;366:201:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;366:201:21;;;;;;;;-1:-1:-1;366:201:21;;-1:-1:-1;;366:201:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;366:201:21;;;;;;;;-1:-1:-1;366:201:21;;-1:-1:-1;;366:201:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;366:201:21;;-1:-1:-1;366:201:21;;-1:-1:-1;;;;;366:201:21:i;:::-;;;;;;;;;;;;;;;;;;;187:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;187:173:21;;-1:-1:-1;187:173:21;;-1:-1:-1;;;;;187:173:21:i;965:140:18:-;1065:33;;1042:4;1065:33;;;;;;;;;;;;;;965:140::o;366:201:21:-;524:36;366:201;;;;;;;:::o;187:173::-;322:31;187:173;;;;;;;:::o",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"./ERC1155Receiver.sol\";\n\n/**\n * @dev _Available since v3.1._\n */\ncontract ERC1155Holder is ERC1155Receiver {\n    function onERC1155Received(address, address, uint256, uint256, bytes memory) public virtual override returns (bytes4) {\n        return this.onERC1155Received.selector;\n    }\n\n    function onERC1155BatchReceived(address, address, uint256[] memory, uint256[] memory, bytes memory) public virtual override returns (bytes4) {\n        return this.onERC1155BatchReceived.selector;\n    }\n}\n",
  "sourcePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Holder.sol",
  "ast": {
    "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Holder.sol",
    "exportedSymbols": {
      "ERC1155Holder": [
        4640
      ],
      "ERC1155Receiver": [
        4668
      ],
      "ERC165": [
        4381
      ],
      "IERC1155Receiver": [
        4846
      ],
      "IERC165": [
        4393
      ]
    },
    "id": 4641,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4591,
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0",
          "<",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:31:21"
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol",
        "file": "./ERC1155Receiver.sol",
        "id": 4592,
        "nodeType": "ImportDirective",
        "scope": 4641,
        "sourceUnit": 4669,
        "src": "66:31:21",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 4594,
              "name": "ERC1155Receiver",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4668,
              "src": "165:15:21",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC1155Receiver_$4668",
                "typeString": "contract ERC1155Receiver"
              }
            },
            "id": 4595,
            "nodeType": "InheritanceSpecifier",
            "src": "165:15:21"
          }
        ],
        "contractDependencies": [
          4381,
          4393,
          4668,
          4846
        ],
        "contractKind": "contract",
        "documentation": {
          "id": 4593,
          "nodeType": "StructuredDocumentation",
          "src": "99:39:21",
          "text": " @dev _Available since v3.1._"
        },
        "fullyImplemented": true,
        "id": 4640,
        "linearizedBaseContracts": [
          4640,
          4668,
          4846,
          4381,
          4393
        ],
        "name": "ERC1155Holder",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "baseFunctions": [
              4827
            ],
            "body": {
              "id": 4615,
              "nodeType": "Block",
              "src": "305:55:21",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "expression": {
                        "id": 4611,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967268,
                        "src": "322:4:21",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC1155Holder_$4640",
                          "typeString": "contract ERC1155Holder"
                        }
                      },
                      "id": 4612,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "onERC1155Received",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4616,
                      "src": "322:22:21",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"
                      }
                    },
                    "id": 4613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "selector",
                    "nodeType": "MemberAccess",
                    "src": "322:31:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 4610,
                  "id": 4614,
                  "nodeType": "Return",
                  "src": "315:38:21"
                }
              ]
            },
            "functionSelector": "f23a6e61",
            "id": 4616,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onERC1155Received",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4607,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "279:8:21"
            },
            "parameters": {
              "id": 4606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4597,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4616,
                  "src": "214:7:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4596,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "214:7:21",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4599,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4616,
                  "src": "223:7:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4598,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "223:7:21",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4601,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4616,
                  "src": "232:7:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4600,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "232:7:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4603,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4616,
                  "src": "241:7:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4602,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "241:7:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4605,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4616,
                  "src": "250:12:21",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4604,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:5:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "213:50:21"
            },
            "returnParameters": {
              "id": 4610,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4609,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4616,
                  "src": "297:6:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 4608,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "297:6:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "296:8:21"
            },
            "scope": 4640,
            "src": "187:173:21",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              4845
            ],
            "body": {
              "id": 4638,
              "nodeType": "Block",
              "src": "507:60:21",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "expression": {
                        "id": 4634,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967268,
                        "src": "524:4:21",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC1155Holder_$4640",
                          "typeString": "contract ERC1155Holder"
                        }
                      },
                      "id": 4635,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "onERC1155BatchReceived",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4639,
                      "src": "524:27:21",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"
                      }
                    },
                    "id": 4636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "selector",
                    "nodeType": "MemberAccess",
                    "src": "524:36:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 4633,
                  "id": 4637,
                  "nodeType": "Return",
                  "src": "517:43:21"
                }
              ]
            },
            "functionSelector": "bc197c81",
            "id": 4639,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onERC1155BatchReceived",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4630,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "481:8:21"
            },
            "parameters": {
              "id": 4629,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4618,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4639,
                  "src": "398:7:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4617,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "398:7:21",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4620,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4639,
                  "src": "407:7:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4619,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "407:7:21",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4623,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4639,
                  "src": "416:16:21",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4621,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "416:7:21",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4622,
                    "nodeType": "ArrayTypeName",
                    "src": "416:9:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4626,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4639,
                  "src": "434:16:21",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4624,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "434:7:21",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4625,
                    "nodeType": "ArrayTypeName",
                    "src": "434:9:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4628,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4639,
                  "src": "452:12:21",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4627,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "452:5:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "397:68:21"
            },
            "returnParameters": {
              "id": 4633,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4632,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4639,
                  "src": "499:6:21",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 4631,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "499:6:21",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "498:8:21"
            },
            "scope": 4640,
            "src": "366:201:21",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          }
        ],
        "scope": 4641,
        "src": "139:430:21"
      }
    ],
    "src": "33:537:21"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Holder.sol",
      "exportedSymbols": {
        "ERC1155Holder": [
          4640
        ],
        "ERC1155Receiver": [
          4668
        ],
        "ERC165": [
          4381
        ],
        "IERC1155Receiver": [
          4846
        ],
        "IERC165": [
          4393
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.6",
            ".0",
            "<",
            "0.8",
            ".0"
          ]
        },
        "id": 4591,
        "name": "PragmaDirective",
        "src": "33:31:21"
      },
      {
        "attributes": {
          "SourceUnit": 4669,
          "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol",
          "file": "./ERC1155Receiver.sol",
          "scope": 4641,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4592,
        "name": "ImportDirective",
        "src": "66:31:21"
      },
      {
        "attributes": {
          "abstract": false,
          "contractDependencies": [
            4381,
            4393,
            4668,
            4846
          ],
          "contractKind": "contract",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            4640,
            4668,
            4846,
            4381,
            4393
          ],
          "name": "ERC1155Holder",
          "scope": 4641
        },
        "children": [
          {
            "attributes": {
              "text": " @dev _Available since v3.1._"
            },
            "id": 4593,
            "name": "StructuredDocumentation",
            "src": "99:39:21"
          },
          {
            "attributes": {},
            "children": [
              {
                "attributes": {
                  "name": "ERC1155Receiver",
                  "referencedDeclaration": 4668,
                  "type": "contract ERC1155Receiver"
                },
                "id": 4594,
                "name": "UserDefinedTypeName",
                "src": "165:15:21"
              }
            ],
            "id": 4595,
            "name": "InheritanceSpecifier",
            "src": "165:15:21"
          },
          {
            "attributes": {
              "baseFunctions": [
                4827
              ],
              "functionSelector": "f23a6e61",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "onERC1155Received",
              "scope": 4640,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "overrides": [
                    null
                  ]
                },
                "id": 4607,
                "name": "OverrideSpecifier",
                "src": "279:8:21"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4616,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 4596,
                        "name": "ElementaryTypeName",
                        "src": "214:7:21"
                      }
                    ],
                    "id": 4597,
                    "name": "VariableDeclaration",
                    "src": "214:7:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4616,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 4598,
                        "name": "ElementaryTypeName",
                        "src": "223:7:21"
                      }
                    ],
                    "id": 4599,
                    "name": "VariableDeclaration",
                    "src": "223:7:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4616,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4600,
                        "name": "ElementaryTypeName",
                        "src": "232:7:21"
                      }
                    ],
                    "id": 4601,
                    "name": "VariableDeclaration",
                    "src": "232:7:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4616,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4602,
                        "name": "ElementaryTypeName",
                        "src": "241:7:21"
                      }
                    ],
                    "id": 4603,
                    "name": "VariableDeclaration",
                    "src": "241:7:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4616,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 4604,
                        "name": "ElementaryTypeName",
                        "src": "250:5:21"
                      }
                    ],
                    "id": 4605,
                    "name": "VariableDeclaration",
                    "src": "250:12:21"
                  }
                ],
                "id": 4606,
                "name": "ParameterList",
                "src": "213:50:21"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4616,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 4608,
                        "name": "ElementaryTypeName",
                        "src": "297:6:21"
                      }
                    ],
                    "id": 4609,
                    "name": "VariableDeclaration",
                    "src": "297:6:21"
                  }
                ],
                "id": 4610,
                "name": "ParameterList",
                "src": "296:8:21"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 4610
                    },
                    "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": "onERC1155Received",
                              "referencedDeclaration": 4616,
                              "type": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4294967268,
                                  "type": "contract ERC1155Holder",
                                  "value": "this"
                                },
                                "id": 4611,
                                "name": "Identifier",
                                "src": "322:4:21"
                              }
                            ],
                            "id": 4612,
                            "name": "MemberAccess",
                            "src": "322:22:21"
                          }
                        ],
                        "id": 4613,
                        "name": "MemberAccess",
                        "src": "322:31:21"
                      }
                    ],
                    "id": 4614,
                    "name": "Return",
                    "src": "315:38:21"
                  }
                ],
                "id": 4615,
                "name": "Block",
                "src": "305:55:21"
              }
            ],
            "id": 4616,
            "name": "FunctionDefinition",
            "src": "187:173:21"
          },
          {
            "attributes": {
              "baseFunctions": [
                4845
              ],
              "functionSelector": "bc197c81",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "onERC1155BatchReceived",
              "scope": 4640,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "overrides": [
                    null
                  ]
                },
                "id": 4630,
                "name": "OverrideSpecifier",
                "src": "481:8:21"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4639,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 4617,
                        "name": "ElementaryTypeName",
                        "src": "398:7:21"
                      }
                    ],
                    "id": 4618,
                    "name": "VariableDeclaration",
                    "src": "398:7:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4639,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 4619,
                        "name": "ElementaryTypeName",
                        "src": "407:7:21"
                      }
                    ],
                    "id": 4620,
                    "name": "VariableDeclaration",
                    "src": "407:7:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4639,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "uint256[]",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "type": "uint256[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 4621,
                            "name": "ElementaryTypeName",
                            "src": "416:7:21"
                          }
                        ],
                        "id": 4622,
                        "name": "ArrayTypeName",
                        "src": "416:9:21"
                      }
                    ],
                    "id": 4623,
                    "name": "VariableDeclaration",
                    "src": "416:16:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4639,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "uint256[]",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "type": "uint256[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 4624,
                            "name": "ElementaryTypeName",
                            "src": "434:7:21"
                          }
                        ],
                        "id": 4625,
                        "name": "ArrayTypeName",
                        "src": "434:9:21"
                      }
                    ],
                    "id": 4626,
                    "name": "VariableDeclaration",
                    "src": "434:16:21"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4639,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 4627,
                        "name": "ElementaryTypeName",
                        "src": "452:5:21"
                      }
                    ],
                    "id": 4628,
                    "name": "VariableDeclaration",
                    "src": "452:12:21"
                  }
                ],
                "id": 4629,
                "name": "ParameterList",
                "src": "397:68:21"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 4639,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 4631,
                        "name": "ElementaryTypeName",
                        "src": "499:6:21"
                      }
                    ],
                    "id": 4632,
                    "name": "VariableDeclaration",
                    "src": "499:6:21"
                  }
                ],
                "id": 4633,
                "name": "ParameterList",
                "src": "498:8:21"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 4633
                    },
                    "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": "onERC1155BatchReceived",
                              "referencedDeclaration": 4639,
                              "type": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4294967268,
                                  "type": "contract ERC1155Holder",
                                  "value": "this"
                                },
                                "id": 4634,
                                "name": "Identifier",
                                "src": "524:4:21"
                              }
                            ],
                            "id": 4635,
                            "name": "MemberAccess",
                            "src": "524:27:21"
                          }
                        ],
                        "id": 4636,
                        "name": "MemberAccess",
                        "src": "524:36:21"
                      }
                    ],
                    "id": 4637,
                    "name": "Return",
                    "src": "517:43:21"
                  }
                ],
                "id": 4638,
                "name": "Block",
                "src": "507:60:21"
              }
            ],
            "id": 4639,
            "name": "FunctionDefinition",
            "src": "366:201:21"
          }
        ],
        "id": 4640,
        "name": "ContractDefinition",
        "src": "139:430:21"
      }
    ],
    "id": 4641,
    "name": "SourceUnit",
    "src": "33:537:21"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.6+commit.7338295f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.1",
  "updatedAt": "2021-06-03T23:56:22.336Z",
  "devdoc": {
    "details": "_Available since v3.1._",
    "kind": "dev",
    "methods": {
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}