{
  "fileName": "StorageMocks3.sol",
  "contractName": "StorageMockWithTransitiveReferences",
  "source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nimport \"./StorageMocks2.sol\";\n\ncontract StorageMockWithTransitiveReferences {\n  StorageMockWithEnums.MyEnum internal my_enum;\n  StorageMockWithStructs.MyStruct internal my_struct;\n  SimpleStorageMock internal my_contract;\n}\n",
  "sourcePath": "contracts/mocks/StorageMocks3.sol",
  "sourceMap": "88:192:20:-:0;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "88:192:20:-:0;;;;;;;;;;;",
  "abi": [],
  "ast": {
    "absolutePath": "contracts/mocks/StorageMocks3.sol",
    "exportedSymbols": {
      "StorageMockWithTransitiveReferences": [
        4861
      ]
    },
    "id": 4862,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4853,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:20"
      },
      {
        "absolutePath": "contracts/mocks/StorageMocks2.sol",
        "file": "./StorageMocks2.sol",
        "id": 4854,
        "nodeType": "ImportDirective",
        "scope": 4862,
        "sourceUnit": 4852,
        "src": "57:29:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4861,
        "linearizedBaseContracts": [
          4861
        ],
        "name": "StorageMockWithTransitiveReferences",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4856,
            "mutability": "mutable",
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4861,
            "src": "137:44:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$4741",
              "typeString": "enum StorageMockWithEnums.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 4855,
              "name": "StorageMockWithEnums.MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4741,
              "src": "137:27:20",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$4741",
                "typeString": "enum StorageMockWithEnums.MyEnum"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4858,
            "mutability": "mutable",
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4861,
            "src": "185:50:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$4724_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 4857,
              "name": "StorageMockWithStructs.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4724,
              "src": "185:31:20",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4860,
            "mutability": "mutable",
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4861,
            "src": "239:38:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
              "typeString": "contract SimpleStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 4859,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4603,
              "src": "239:17:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 4862,
        "src": "88:192:20"
      }
    ],
    "src": "0:281:20"
  },
  "bytecode": "0x608060405234801560105760006000fd5b506015565b60488060226000396000f3fe608060405260043610600c575b60006000fdfea2646970667358221220c6a02535b7b51201b1566046b5f1ecfb36a6137e0d0bee9755fd7c45f484cedc64736f6c634300060a0033",
  "deployedBytecode": "0x608060405260043610600c575b60006000fdfea2646970667358221220c6a02535b7b51201b1566046b5f1ecfb36a6137e0d0bee9755fd7c45f484cedc64736f6c634300060a0033",
  "compiler": {
    "name": "solc",
    "version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
    "optimizer": {},
    "evmVersion": "constantinople"
  }
}
