{
    "contractName": "ExternalCaller",
    "abi": [],
    "metadata": "{\"compiler\":{\"version\":\"0.7.3+commit.9bfce1f6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/andrekorol/src/kollateral/protocol/contracts/common/utils/ExternalCaller.sol\":\"ExternalCaller\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/andrekorol/src/kollateral/protocol/contracts/common/utils/ExternalCaller.sol\":{\"keccak256\":\"0x54f88a1f0ac5dd7ab99a0519124cb09f1e19b4efb9baf240bc2500f8caa0b4ff\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3170671378d20b47498224d065e33fccc223ae772d7f0af2c5ef314f94b75c98\",\"dweb:/ipfs/Qme8ZEEBnBG5Vvj8uyJCD2YVPcLx6funKsSSCpGkTyn1zi\"]}},\"version\":1}",
    "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220cded72807d393df2d5b13fa0bcaa939c0c0792dea2cba3c67c3531a7a63f893464736f6c63430007030033",
    "deployedBytecode": "0x6080604052600080fdfea2646970667358221220cded72807d393df2d5b13fa0bcaa939c0c0792dea2cba3c67c3531a7a63f893464736f6c63430007030033",
    "immutableReferences": {},
    "generatedSources": [],
    "deployedGeneratedSources": [],
    "sourceMap": "665:545:9:-:0;;;;;;;;;;;;;;;;;;;",
    "deployedSourceMap": "665:545:9:-:0;;;;;",
    "source": "/*\n\n    Copyright 2020 Kollateral LLC.\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n*/\n\n// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.7.0;\n\ncontract ExternalCaller {\n    function externalTransfer(address _to, uint256 _value) internal {\n        require(\n            address(this).balance >= _value,\n            \"ExternalCaller: insufficient ether balance\"\n        );\n        externalCall(_to, _value, \"\");\n    }\n\n    function externalCall(\n        address _to,\n        uint256 _value,\n        bytes memory _data\n    ) internal {\n        (bool success, bytes memory returndata) = _to.call{value: _value}(\n            _data\n        );\n        require(success, string(returndata));\n    }\n}\n",
    "sourcePath": "/Users/andrekorol/src/kollateral/protocol/contracts/common/utils/ExternalCaller.sol",
    "ast": {
        "absolutePath": "/Users/andrekorol/src/kollateral/protocol/contracts/common/utils/ExternalCaller.sol",
        "exportedSymbols": {
            "ExternalCaller": [
                1563
            ]
        },
        "id": 1564,
        "license": "Apache-2.0",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 1508,
                "literals": [
                    "solidity",
                    "^",
                    "0.7",
                    ".0"
                ],
                "nodeType": "PragmaDirective",
                "src": "640:23:9"
            },
            {
                "abstract": false,
                "baseContracts": [],
                "contractDependencies": [],
                "contractKind": "contract",
                "fullyImplemented": true,
                "id": 1563,
                "linearizedBaseContracts": [
                    1563
                ],
                "name": "ExternalCaller",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "body": {
                            "id": 1532,
                            "nodeType": "Block",
                            "src": "759:176:9",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 1522,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "id": 1518,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -28,
                                                                "src": "798:4:9",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ExternalCaller_$1563",
                                                                    "typeString": "contract ExternalCaller"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_ExternalCaller_$1563",
                                                                    "typeString": "contract ExternalCaller"
                                                                }
                                                            ],
                                                            "id": 1517,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "790:7:9",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 1516,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "790:7:9",
                                                                "typeDescriptions": {}
                                                            }
                                                        },
                                                        "id": 1519,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "790:13:9",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "id": 1520,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "balance",
                                                    "nodeType": "MemberAccess",
                                                    "src": "790:21:9",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "id": 1521,
                                                    "name": "_value",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1512,
                                                    "src": "815:6:9",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "790:31:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "45787465726e616c43616c6c65723a20696e73756666696369656e742065746865722062616c616e6365",
                                                "id": 1523,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "835:44:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_47e615ef39653c375952ecbdf34324d193e406d0d78277c356aadb858054e8ce",
                                                    "typeString": "literal_string \"ExternalCaller: insufficient ether balance\""
                                                },
                                                "value": "ExternalCaller: insufficient ether balance"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_47e615ef39653c375952ecbdf34324d193e406d0d78277c356aadb858054e8ce",
                                                    "typeString": "literal_string \"ExternalCaller: insufficient ether balance\""
                                                }
                                            ],
                                            "id": 1515,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "769:7:9",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 1524,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "769:120:9",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1525,
                                    "nodeType": "ExpressionStatement",
                                    "src": "769:120:9"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 1527,
                                                "name": "_to",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1510,
                                                "src": "912:3:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 1528,
                                                "name": "_value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1512,
                                                "src": "917:6:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "hexValue": "",
                                                "id": 1529,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "925:2:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                    "typeString": "literal_string \"\""
                                                },
                                                "value": ""
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                    "typeString": "literal_string \"\""
                                                }
                                            ],
                                            "id": 1526,
                                            "name": "externalCall",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1562,
                                            "src": "899:12:9",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                                "typeString": "function (address,uint256,bytes memory)"
                                            }
                                        },
                                        "id": 1530,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "899:29:9",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1531,
                                    "nodeType": "ExpressionStatement",
                                    "src": "899:29:9"
                                }
                            ]
                        },
                        "id": 1533,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "externalTransfer",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1513,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1510,
                                    "mutability": "mutable",
                                    "name": "_to",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1533,
                                    "src": "721:11:9",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1509,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "721:7:9",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1512,
                                    "mutability": "mutable",
                                    "name": "_value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1533,
                                    "src": "734:14:9",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1511,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "734:7:9",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "720:29:9"
                        },
                        "returnParameters": {
                            "id": 1514,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "759:0:9"
                        },
                        "scope": 1563,
                        "src": "695:240:9",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 1561,
                            "nodeType": "Block",
                            "src": "1051:157:9",
                            "statements": [
                                {
                                    "assignments": [
                                        1543,
                                        1545
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1543,
                                            "mutability": "mutable",
                                            "name": "success",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 1561,
                                            "src": "1062:12:9",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "typeName": {
                                                "id": 1542,
                                                "name": "bool",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1062:4:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        {
                                            "constant": false,
                                            "id": 1545,
                                            "mutability": "mutable",
                                            "name": "returndata",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 1561,
                                            "src": "1076:23:9",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes"
                                            },
                                            "typeName": {
                                                "id": 1544,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1076:5:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_storage_ptr",
                                                    "typeString": "bytes"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1552,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 1550,
                                                "name": "_data",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1539,
                                                "src": "1140:5:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 1546,
                                                    "name": "_to",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1535,
                                                    "src": "1103:3:9",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 1547,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "call",
                                                "nodeType": "MemberAccess",
                                                "src": "1103:8:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
                                                    "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
                                                }
                                            },
                                            "id": 1549,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "names": [
                                                "value"
                                            ],
                                            "nodeType": "FunctionCallOptions",
                                            "options": [
                                                {
                                                    "id": 1548,
                                                    "name": "_value",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1537,
                                                    "src": "1119:6:9",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "src": "1103:23:9",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
                                                "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
                                            }
                                        },
                                        "id": 1551,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1103:52:9",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
                                            "typeString": "tuple(bool,bytes memory)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1061:94:9"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 1554,
                                                "name": "success",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1543,
                                                "src": "1173:7:9",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 1557,
                                                        "name": "returndata",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1545,
                                                        "src": "1189:10:9",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    ],
                                                    "id": 1556,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "1182:6:9",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                                        "typeString": "type(string storage pointer)"
                                                    },
                                                    "typeName": {
                                                        "id": 1555,
                                                        "name": "string",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "1182:6:9",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 1558,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1182:18:9",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "id": 1553,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "1165:7:9",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 1559,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1165:36:9",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1560,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1165:36:9"
                                }
                            ]
                        },
                        "id": 1562,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "externalCall",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1540,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1535,
                                    "mutability": "mutable",
                                    "name": "_to",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1562,
                                    "src": "972:11:9",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1534,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "972:7:9",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1537,
                                    "mutability": "mutable",
                                    "name": "_value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1562,
                                    "src": "993:14:9",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1536,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "993:7:9",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1539,
                                    "mutability": "mutable",
                                    "name": "_data",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1562,
                                    "src": "1017:18:9",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 1538,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1017:5:9",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "962:79:9"
                        },
                        "returnParameters": {
                            "id": 1541,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1051:0:9"
                        },
                        "scope": 1563,
                        "src": "941:267:9",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "internal"
                    }
                ],
                "scope": 1564,
                "src": "665:545:9"
            }
        ],
        "src": "640:571:9"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "/Users/andrekorol/src/kollateral/protocol/contracts/common/utils/ExternalCaller.sol",
            "exportedSymbols": {
                "ExternalCaller": [
                    1563
                ]
            },
            "license": "Apache-2.0"
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "^",
                        "0.7",
                        ".0"
                    ]
                },
                "id": 1508,
                "name": "PragmaDirective",
                "src": "640:23:9"
            },
            {
                "attributes": {
                    "abstract": false,
                    "baseContracts": [
                        null
                    ],
                    "contractDependencies": [
                        null
                    ],
                    "contractKind": "contract",
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        1563
                    ],
                    "name": "ExternalCaller",
                    "scope": 1564
                },
                "children": [
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "externalTransfer",
                            "scope": 1563,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_to",
                                            "scope": 1533,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1509,
                                                "name": "ElementaryTypeName",
                                                "src": "721:7:9"
                                            }
                                        ],
                                        "id": 1510,
                                        "name": "VariableDeclaration",
                                        "src": "721:11:9"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_value",
                                            "scope": 1533,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1511,
                                                "name": "ElementaryTypeName",
                                                "src": "734:7:9"
                                            }
                                        ],
                                        "id": 1512,
                                        "name": "VariableDeclaration",
                                        "src": "734:14:9"
                                    }
                                ],
                                "id": 1513,
                                "name": "ParameterList",
                                "src": "720:29:9"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 1514,
                                "name": "ParameterList",
                                "src": "759:0:9"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_47e615ef39653c375952ecbdf34324d193e406d0d78277c356aadb858054e8ce",
                                                                    "typeString": "literal_string \"ExternalCaller: insufficient ether balance\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1515,
                                                        "name": "Identifier",
                                                        "src": "769:7:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "balance",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_ExternalCaller_$1563",
                                                                                            "typeString": "contract ExternalCaller"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address"
                                                                                        },
                                                                                        "id": 1516,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "790:7:9"
                                                                                    }
                                                                                ],
                                                                                "id": 1517,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "790:7:9"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -28,
                                                                                    "type": "contract ExternalCaller",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 1518,
                                                                                "name": "Identifier",
                                                                                "src": "798:4:9"
                                                                            }
                                                                        ],
                                                                        "id": 1519,
                                                                        "name": "FunctionCall",
                                                                        "src": "790:13:9"
                                                                    }
                                                                ],
                                                                "id": 1520,
                                                                "name": "MemberAccess",
                                                                "src": "790:21:9"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1512,
                                                                    "type": "uint256",
                                                                    "value": "_value"
                                                                },
                                                                "id": 1521,
                                                                "name": "Identifier",
                                                                "src": "815:6:9"
                                                            }
                                                        ],
                                                        "id": 1522,
                                                        "name": "BinaryOperation",
                                                        "src": "790:31:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "45787465726e616c43616c6c65723a20696e73756666696369656e742065746865722062616c616e6365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"ExternalCaller: insufficient ether balance\"",
                                                            "value": "ExternalCaller: insufficient ether balance"
                                                        },
                                                        "id": 1523,
                                                        "name": "Literal",
                                                        "src": "835:44:9"
                                                    }
                                                ],
                                                "id": 1524,
                                                "name": "FunctionCall",
                                                "src": "769:120:9"
                                            }
                                        ],
                                        "id": 1525,
                                        "name": "ExpressionStatement",
                                        "src": "769:120:9"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                                    "typeString": "literal_string \"\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1562,
                                                            "type": "function (address,uint256,bytes memory)",
                                                            "value": "externalCall"
                                                        },
                                                        "id": 1526,
                                                        "name": "Identifier",
                                                        "src": "899:12:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1510,
                                                            "type": "address",
                                                            "value": "_to"
                                                        },
                                                        "id": 1527,
                                                        "name": "Identifier",
                                                        "src": "912:3:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1512,
                                                            "type": "uint256",
                                                            "value": "_value"
                                                        },
                                                        "id": 1528,
                                                        "name": "Identifier",
                                                        "src": "917:6:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"\"",
                                                            "value": ""
                                                        },
                                                        "id": 1529,
                                                        "name": "Literal",
                                                        "src": "925:2:9"
                                                    }
                                                ],
                                                "id": 1530,
                                                "name": "FunctionCall",
                                                "src": "899:29:9"
                                            }
                                        ],
                                        "id": 1531,
                                        "name": "ExpressionStatement",
                                        "src": "899:29:9"
                                    }
                                ],
                                "id": 1532,
                                "name": "Block",
                                "src": "759:176:9"
                            }
                        ],
                        "id": 1533,
                        "name": "FunctionDefinition",
                        "src": "695:240:9"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "externalCall",
                            "scope": 1563,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_to",
                                            "scope": 1562,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1534,
                                                "name": "ElementaryTypeName",
                                                "src": "972:7:9"
                                            }
                                        ],
                                        "id": 1535,
                                        "name": "VariableDeclaration",
                                        "src": "972:11:9"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_value",
                                            "scope": 1562,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1536,
                                                "name": "ElementaryTypeName",
                                                "src": "993:7:9"
                                            }
                                        ],
                                        "id": 1537,
                                        "name": "VariableDeclaration",
                                        "src": "993:14:9"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_data",
                                            "scope": 1562,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "bytes",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 1538,
                                                "name": "ElementaryTypeName",
                                                "src": "1017:5:9"
                                            }
                                        ],
                                        "id": 1539,
                                        "name": "VariableDeclaration",
                                        "src": "1017:18:9"
                                    }
                                ],
                                "id": 1540,
                                "name": "ParameterList",
                                "src": "962:79:9"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 1541,
                                "name": "ParameterList",
                                "src": "1051:0:9"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1543,
                                                1545
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "success",
                                                    "scope": 1561,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bool",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bool",
                                                            "type": "bool"
                                                        },
                                                        "id": 1542,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1062:4:9"
                                                    }
                                                ],
                                                "id": 1543,
                                                "name": "VariableDeclaration",
                                                "src": "1062:12:9"
                                            },
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "returndata",
                                                    "scope": 1561,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "bytes",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes",
                                                            "type": "bytes"
                                                        },
                                                        "id": 1544,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1076:5:9"
                                                    }
                                                ],
                                                "id": 1545,
                                                "name": "VariableDeclaration",
                                                "src": "1076:23:9"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(bool,bytes memory)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                    "typeString": "bytes memory"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                "value"
                                                            ],
                                                            "type": "function (bytes memory) payable returns (bool,bytes memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "call",
                                                                    "type": "function (bytes memory) payable returns (bool,bytes memory)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1535,
                                                                            "type": "address",
                                                                            "value": "_to"
                                                                        },
                                                                        "id": 1546,
                                                                        "name": "Identifier",
                                                                        "src": "1103:3:9"
                                                                    }
                                                                ],
                                                                "id": 1547,
                                                                "name": "MemberAccess",
                                                                "src": "1103:8:9"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1537,
                                                                    "type": "uint256",
                                                                    "value": "_value"
                                                                },
                                                                "id": 1548,
                                                                "name": "Identifier",
                                                                "src": "1119:6:9"
                                                            }
                                                        ],
                                                        "id": 1549,
                                                        "name": "FunctionCallOptions",
                                                        "src": "1103:23:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1539,
                                                            "type": "bytes memory",
                                                            "value": "_data"
                                                        },
                                                        "id": 1550,
                                                        "name": "Identifier",
                                                        "src": "1140:5:9"
                                                    }
                                                ],
                                                "id": 1551,
                                                "name": "FunctionCall",
                                                "src": "1103:52:9"
                                            }
                                        ],
                                        "id": 1552,
                                        "name": "VariableDeclarationStatement",
                                        "src": "1061:94:9"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1553,
                                                        "name": "Identifier",
                                                        "src": "1165:7:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1543,
                                                            "type": "bool",
                                                            "value": "success"
                                                        },
                                                        "id": 1554,
                                                        "name": "Identifier",
                                                        "src": "1173:7:9"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "string memory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(string storage pointer)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "string"
                                                                        },
                                                                        "id": 1555,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "1182:6:9"
                                                                    }
                                                                ],
                                                                "id": 1556,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "1182:6:9"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1545,
                                                                    "type": "bytes memory",
                                                                    "value": "returndata"
                                                                },
                                                                "id": 1557,
                                                                "name": "Identifier",
                                                                "src": "1189:10:9"
                                                            }
                                                        ],
                                                        "id": 1558,
                                                        "name": "FunctionCall",
                                                        "src": "1182:18:9"
                                                    }
                                                ],
                                                "id": 1559,
                                                "name": "FunctionCall",
                                                "src": "1165:36:9"
                                            }
                                        ],
                                        "id": 1560,
                                        "name": "ExpressionStatement",
                                        "src": "1165:36:9"
                                    }
                                ],
                                "id": 1561,
                                "name": "Block",
                                "src": "1051:157:9"
                            }
                        ],
                        "id": 1562,
                        "name": "FunctionDefinition",
                        "src": "941:267:9"
                    }
                ],
                "id": 1563,
                "name": "ContractDefinition",
                "src": "665:545:9"
            }
        ],
        "id": 1564,
        "name": "SourceUnit",
        "src": "640:571:9"
    },
    "compiler": {
        "name": "solc",
        "version": "0.7.3+commit.9bfce1f6.Emscripten.clang"
    },
    "networks": {},
    "schemaVersion": "3.3.3",
    "updatedAt": "2021-02-01T23:13:33.202Z",
    "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
    },
    "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
    }
}
