{
    "contractName": "PairStCelo",
    "abi": [
        {
            "stateMutability": "payable",
            "type": "receive"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "input",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "output",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "to",
                    "type": "address"
                },
                {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                }
            ],
            "name": "swap",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "input",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "amountIn",
                    "type": "uint256"
                },
                {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                }
            ],
            "name": "getOutputAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "amountOut",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"input\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getOutputAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"input\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"output\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/swappa/PairStCelo.sol\":\"PairStCelo\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x91e0bd6a6762d2a1700dab0849de8422611355100576c4beef1e80d82a4104a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73bbd77af0a8b07255d2ffa20728bcf13b116007c9ddac5d37046cfabb0e1e02\",\"dweb:/ipfs/QmRgZgWCWCSMTTaok6o4QvWA6MgB4goS8qpb3sN7bAvaZ9\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf5fa8cbdffa5ef8be49b246b5628facc30b71707e78a45d80d93b64eff3fe390\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://774e78a9ff32792cc95db4d2ceaf3a7965bb7f0bea5e6cb7cff182b450d44b37\",\"dweb:/ipfs/QmRRMC4uj7eAcLW7chynA3sNEYULMFazdLwQHKHQPyzAbA\"]},\"project:/contracts/interfaces/stCelo/IManager.sol\":{\"keccak256\":\"0xe4e3a233db7e42b789372f5ecd89825cbb18987043642df985b8747e01c197a9\",\"urls\":[\"bzz-raw://dccc6ffda82fafa37fea430c770869fcc1adc88857f76a2f3d8eaf687f394552\",\"dweb:/ipfs/QmYaVNnxUnAgJ4u4VwNtw87wdhKHVdhRepMBy9RUj1pF8V\"]},\"project:/contracts/swappa/ISwappaPairV1.sol\":{\"keccak256\":\"0x3ad68981bda91ed83c5e9ee8617f08bb5e208208477fb755cc77077f127010ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e4390b1bebc39f58bff34b9099a646ead67cef27b722ef61548487251cca719\",\"dweb:/ipfs/QmRWEuYyjHaS957VKWtTfDpzfqkXb2bvEsS33meAC76ZuU\"]},\"project:/contracts/swappa/PairStCelo.sol\":{\"keccak256\":\"0xc35d68f6d63847fefc4d6b4b3f4e7891910ae84d08084539d7b652d1d003618f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fde2f0afc4f595677cdefc5d1b1d7ebe534a2e68eae6b550e3c16ac0506fab7\",\"dweb:/ipfs/QmQavZVhGm33ykW9uzpxHf3eGjQuSvKhbLcg8hE82TU68u\"]}},\"version\":1}",
    "bytecode": "0x608060405234801561001057600080fd5b50610710806100206000396000f3fe60806040526004361061002d5760003560e01c806332ef8314146100395780637eace892146100e657610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e46004803603608081101561005c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101358216926040820135909216918101906080810160608201356401000000008111156100a557600080fd5b8201836020820111156100b757600080fd5b803590602001918460018302840111640100000000831117156100d957600080fd5b5090925090506101a2565b005b3480156100f257600080fd5b506101906004803603608081101561010957600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561015157600080fd5b82018360208201111561016357600080fd5b8035906020019184600183028401116401000000008311171561018557600080fd5b509092509050610556565b60408051918252519081900360200190f35b73ffffffffffffffffffffffffffffffffffffffff851673471ece3750da237f93b8e339c536989b8978a4381461023a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50616972537443656c6f3a20496e636f727265637420496e7075740000000000604482015290519081900360640190fd5b600061027b83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066092505050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b1580156102ed57600080fd5b505afa158015610301573d6000803e3d6000fd5b505050506040513d602081101561031757600080fd5b5051604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff84169163d0e30db0918491600480830192600092919082900301818588803b15801561038557600080fd5b505af1158015610399573d6000803e3d6000fd5b5050604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000945073ffffffffffffffffffffffffffffffffffffffff8b1693506370a0823192506024808301926020929190829003018186803b15801561040d57600080fd5b505afa158015610421573d6000803e3d6000fd5b505050506040513d602081101561043757600080fd5b5051604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff89811660048301526024820184905291519293509089169163a9059cbb916044808201926020929091908290030181600087803b1580156104b557600080fd5b505af11580156104c9573d6000803e3d6000fd5b505050506040513d60208110156104df57600080fd5b505161054c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50616972537443656c6f3a205472616e73666572204661696c65640000000000604482015290519081900360640190fd5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff861673471ece3750da237f93b8e339c536989b8978a43814156106535760006105cb84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066092505050565b90508073ffffffffffffffffffffffffffffffffffffffff1663c494ec1e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561061e57600080fd5b505afa158015610632573d6000803e3d6000fd5b505050506040513d602081101561064857600080fd5b505191506106579050565b5060005b95945050505050565b600081516014146106d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50616972537443656c6f3a20696e76616c696420646174612100000000000000604482015290519081900360640190fd5b50601401519056fea2646970667358221220ffee28831164a874e0061c11c723984fd1d9b6392da2285e01f6cd01cdbb35cb64736f6c63430006080033",
    "deployedBytecode": "0x60806040526004361061002d5760003560e01c806332ef8314146100395780637eace892146100e657610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e46004803603608081101561005c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101358216926040820135909216918101906080810160608201356401000000008111156100a557600080fd5b8201836020820111156100b757600080fd5b803590602001918460018302840111640100000000831117156100d957600080fd5b5090925090506101a2565b005b3480156100f257600080fd5b506101906004803603608081101561010957600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561015157600080fd5b82018360208201111561016357600080fd5b8035906020019184600183028401116401000000008311171561018557600080fd5b509092509050610556565b60408051918252519081900360200190f35b73ffffffffffffffffffffffffffffffffffffffff851673471ece3750da237f93b8e339c536989b8978a4381461023a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50616972537443656c6f3a20496e636f727265637420496e7075740000000000604482015290519081900360640190fd5b600061027b83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066092505050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b1580156102ed57600080fd5b505afa158015610301573d6000803e3d6000fd5b505050506040513d602081101561031757600080fd5b5051604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff84169163d0e30db0918491600480830192600092919082900301818588803b15801561038557600080fd5b505af1158015610399573d6000803e3d6000fd5b5050604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000945073ffffffffffffffffffffffffffffffffffffffff8b1693506370a0823192506024808301926020929190829003018186803b15801561040d57600080fd5b505afa158015610421573d6000803e3d6000fd5b505050506040513d602081101561043757600080fd5b5051604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff89811660048301526024820184905291519293509089169163a9059cbb916044808201926020929091908290030181600087803b1580156104b557600080fd5b505af11580156104c9573d6000803e3d6000fd5b505050506040513d60208110156104df57600080fd5b505161054c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50616972537443656c6f3a205472616e73666572204661696c65640000000000604482015290519081900360640190fd5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff861673471ece3750da237f93b8e339c536989b8978a43814156106535760006105cb84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066092505050565b90508073ffffffffffffffffffffffffffffffffffffffff1663c494ec1e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561061e57600080fd5b505afa158015610632573d6000803e3d6000fd5b505050506040513d602081101561064857600080fd5b505191506106579050565b5060005b95945050505050565b600081516014146106d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50616972537443656c6f3a20696e76616c696420646174612100000000000000604482015290519081900360640190fd5b50601401519056fea2646970667358221220ffee28831164a874e0061c11c723984fd1d9b6392da2285e01f6cd01cdbb35cb64736f6c63430006080033",
    "immutableReferences": {},
    "sourceMap": "239:1187:54:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;239:1187:54;;;;;;;",
    "deployedSourceMap": "239:1187:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;384:486:54;;5:9:-1;2:2;;;27:1;24;17:12;2:2;384:486:54;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;384:486:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;384:486:54;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;384:486:54;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;384:486:54;;-1:-1:-1;384:486:54;-1:-1:-1;384:486:54;:::i;:::-;;1084:308;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1084:308:54;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1084:308:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1084:308:54;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1084:308:54;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;1084:308:54;;-1:-1:-1;1084:308:54;-1:-1:-1;1084:308:54;:::i;:::-;;;;;;;;;;;;;;;;384:486;503:21;;;338:42;503:21;495:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;560:27;590:15;600:4;;590:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;590:9:54;;-1:-1:-1;;;590:15:54:i;:::-;628:37;;;;;;659:4;628:37;;;;;;560:45;;-1:-1:-1;609:16:54;;628:22;;;;;;:37;;;;;;;;;;;;;;:22;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;628:37:54;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;628:37:54;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;628:37:54;669:51;;;;;;;;628:37;;-1:-1:-1;669:29:54;;;;;;628:37;;669:51;;;;;;;;;;;;;;628:37;669:29;:51;;;2:2:-1;;;;27:1;24;17:12;2:2;669:51:54;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;744:38:54;;;;;;776:4;744:38;;;;;;724:17;;-1:-1:-1;744:23:54;;;;-1:-1:-1;744:23:54;;-1:-1:-1;744:38:54;;;;;;;;;;;;;;:23;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;744:38:54;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;744:38:54;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;744:38:54;794:40;;;;;;:22;:40;;;;;;;;;;;;;;;744:38;;-1:-1:-1;794:22:54;;;;;;:40;;;;;744:38;;794:40;;;;;;;;-1:-1:-1;794:22:54;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;794:40:54;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;794:40:54;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;794:40:54;786:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;384:486;;;;;;;;:::o;1084:308::-;1207:14;1231:21;;;338:42;1231:21;1227:162;;;1259:27;1289:15;1299:4;;1289:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1289:9:54;;-1:-1:-1;;;1289:15:54:i;:::-;1259:45;;1325:11;1316:34;;;1351:8;1316:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1316:44:54;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1316:44:54;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1316:44:54;;-1:-1:-1;1309:51:54;;-1:-1:-1;1309:51:54;1227:162;-1:-1:-1;1383:1:54;1227:162;1084:308;;;;;;;:::o;873:208::-;933:27;974:4;:11;989:2;974:17;966:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1070:2:54;1060:13;1054:20;;1034:44::o",
    "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.6.8;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"../interfaces/stCelo/IManager.sol\";\nimport \"./ISwappaPairV1.sol\";\n\ncontract PairStCelo is ISwappaPairV1 {\n\tusing SafeMath for uint;\n\n\taddress constant CELO_ADDRESS = 0x471EcE3750Da237f93B8E339c536989b8978a438;\n\n\tfunction swap(\n\t\taddress input,\n\t\taddress output,\n\t\taddress to,\n\t\tbytes calldata data\n\t) external override {\n\t\trequire(input == CELO_ADDRESS, \"PairStCelo: Incorrect Input\");\n\t\taddress payable managerAddr = parseData(data);\n\t\tuint inputAmount = ERC20(input).balanceOf(address(this));\n\t\tIManager(managerAddr).deposit{value: inputAmount}();\n\t\tuint outputAmount = ERC20(output).balanceOf(address(this));\n\t\trequire(ERC20(output).transfer(to, outputAmount), \"PairStCelo: Transfer Failed\");\n\t}\n\n\tfunction parseData(bytes memory data) private pure returns (address payable managerAddr) {\n\t\trequire(data.length == 20, \"PairStCelo: invalid data!\");\n\t\tassembly {\n\t\t\tmanagerAddr := mload(add(data, 20))\n\t\t}\n\t}\n\n\tfunction getOutputAmount(\n\t\taddress input,\n\t\taddress,\n\t\tuint amountIn,\n\t\tbytes calldata data\n\t) external override returns (uint amountOut) {\n\t\tif (input == CELO_ADDRESS) {\n\t\t\taddress payable managerAddr = parseData(data);\n\t\t\treturn IManager(managerAddr).toStakedCelo(amountIn);\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\treceive() external payable {}\n}",
    "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/swappa/PairStCelo.sol",
    "ast": {
        "absolutePath": "project:/contracts/swappa/PairStCelo.sol",
        "exportedSymbols": {
            "PairStCelo": [
                6729
            ]
        },
        "id": 6730,
        "license": "MIT",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 6590,
                "literals": [
                    "solidity",
                    "0.6",
                    ".8"
                ],
                "nodeType": "PragmaDirective",
                "src": "32:22:54"
            },
            {
                "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
                "file": "@openzeppelin/contracts/math/SafeMath.sol",
                "id": 6591,
                "nodeType": "ImportDirective",
                "scope": 6730,
                "sourceUnit": 219,
                "src": "56:51:54",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                "id": 6592,
                "nodeType": "ImportDirective",
                "scope": 6730,
                "sourceUnit": 726,
                "src": "108:55:54",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/stCelo/IManager.sol",
                "file": "../interfaces/stCelo/IManager.sol",
                "id": 6593,
                "nodeType": "ImportDirective",
                "scope": 6730,
                "sourceUnit": 1739,
                "src": "164:43:54",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/swappa/ISwappaPairV1.sol",
                "file": "./ISwappaPairV1.sol",
                "id": 6594,
                "nodeType": "ImportDirective",
                "scope": 6730,
                "sourceUnit": 5326,
                "src": "208:29:54",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "abstract": false,
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 6595,
                            "name": "ISwappaPairV1",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 5325,
                            "src": "262:13:54",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ISwappaPairV1_$5325",
                                "typeString": "contract ISwappaPairV1"
                            }
                        },
                        "id": 6596,
                        "nodeType": "InheritanceSpecifier",
                        "src": "262:13:54"
                    }
                ],
                "contractDependencies": [
                    5325
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 6729,
                "linearizedBaseContracts": [
                    6729,
                    5325
                ],
                "name": "PairStCelo",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 6599,
                        "libraryName": {
                            "contractScope": null,
                            "id": 6597,
                            "name": "SafeMath",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 218,
                            "src": "285:8:54",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SafeMath_$218",
                                "typeString": "library SafeMath"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "279:24:54",
                        "typeName": {
                            "id": 6598,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "298:4:54",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "constant": true,
                        "id": 6602,
                        "mutability": "constant",
                        "name": "CELO_ADDRESS",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6729,
                        "src": "306:74:54",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 6600,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "306:7:54",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": {
                            "argumentTypes": null,
                            "hexValue": "307834373145634533373530446132333766393342384533333963353336393839623839373861343338",
                            "id": 6601,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "338:42:54",
                            "subdenomination": null,
                            "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                            },
                            "value": "0x471EcE3750Da237f93B8E339c536989b8978a438"
                        },
                        "visibility": "internal"
                    },
                    {
                        "baseFunctions": [
                            5311
                        ],
                        "body": {
                            "id": 6670,
                            "nodeType": "Block",
                            "src": "491:379:54",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6617,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6615,
                                                    "name": "input",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6604,
                                                    "src": "503:5:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6616,
                                                    "name": "CELO_ADDRESS",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6602,
                                                    "src": "512:12:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "503:21:54",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "50616972537443656c6f3a20496e636f727265637420496e707574",
                                                "id": 6618,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "526:29:54",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_c2b28497ed3c7e61730b4c5638f499a71a822ad08d969c690192fde8bd5e0cde",
                                                    "typeString": "literal_string \"PairStCelo: Incorrect Input\""
                                                },
                                                "value": "PairStCelo: Incorrect Input"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_c2b28497ed3c7e61730b4c5638f499a71a822ad08d969c690192fde8bd5e0cde",
                                                    "typeString": "literal_string \"PairStCelo: Incorrect Input\""
                                                }
                                            ],
                                            "id": 6614,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "495:7:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6619,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "495:61:54",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6620,
                                    "nodeType": "ExpressionStatement",
                                    "src": "495:61:54"
                                },
                                {
                                    "assignments": [
                                        6622
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6622,
                                            "mutability": "mutable",
                                            "name": "managerAddr",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6670,
                                            "src": "560:27:54",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            },
                                            "typeName": {
                                                "id": 6621,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "560:15:54",
                                                "stateMutability": "payable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6626,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6624,
                                                "name": "data",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6610,
                                                "src": "600:4:54",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                }
                                            ],
                                            "id": 6623,
                                            "name": "parseData",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6688,
                                            "src": "590:9:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_payable_$",
                                                "typeString": "function (bytes memory) pure returns (address payable)"
                                            }
                                        },
                                        "id": 6625,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "590:15:54",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "560:45:54"
                                },
                                {
                                    "assignments": [
                                        6628
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6628,
                                            "mutability": "mutable",
                                            "name": "inputAmount",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6670,
                                            "src": "609:16:54",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 6627,
                                                "name": "uint",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "609:4:54",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6638,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6635,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "659:4:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_PairStCelo_$6729",
                                                            "typeString": "contract PairStCelo"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_PairStCelo_$6729",
                                                            "typeString": "contract PairStCelo"
                                                        }
                                                    ],
                                                    "id": 6634,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "651:7:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 6633,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "651:7:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": null,
                                                            "typeString": null
                                                        }
                                                    }
                                                },
                                                "id": 6636,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "651:13:54",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6630,
                                                        "name": "input",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6604,
                                                        "src": "634:5:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 6629,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 725,
                                                    "src": "628:5:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 6631,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "628:12:54",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$725",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 6632,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "balanceOf",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 325,
                                            "src": "628:22:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) view external returns (uint256)"
                                            }
                                        },
                                        "id": 6637,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "628:37:54",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "609:56:54"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6640,
                                                            "name": "managerAddr",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6622,
                                                            "src": "678:11:54",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        ],
                                                        "id": 6639,
                                                        "name": "IManager",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1738,
                                                        "src": "669:8:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_IManager_$1738_$",
                                                            "typeString": "type(contract IManager)"
                                                        }
                                                    },
                                                    "id": 6641,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "669:21:54",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IManager_$1738",
                                                        "typeString": "contract IManager"
                                                    }
                                                },
                                                "id": 6642,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "deposit",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 1723,
                                                "src": "669:29:54",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_payable$__$returns$__$",
                                                    "typeString": "function () payable external"
                                                }
                                            },
                                            "id": 6644,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "names": [
                                                "value"
                                            ],
                                            "nodeType": "FunctionCallOptions",
                                            "options": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 6643,
                                                    "name": "inputAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6628,
                                                    "src": "706:11:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "src": "669:49:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                                                "typeString": "function () payable external"
                                            }
                                        },
                                        "id": 6645,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "669:51:54",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6646,
                                    "nodeType": "ExpressionStatement",
                                    "src": "669:51:54"
                                },
                                {
                                    "assignments": [
                                        6648
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6648,
                                            "mutability": "mutable",
                                            "name": "outputAmount",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6670,
                                            "src": "724:17:54",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 6647,
                                                "name": "uint",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "724:4:54",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6658,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6655,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "776:4:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_PairStCelo_$6729",
                                                            "typeString": "contract PairStCelo"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_PairStCelo_$6729",
                                                            "typeString": "contract PairStCelo"
                                                        }
                                                    ],
                                                    "id": 6654,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "768:7:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 6653,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "768:7:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": null,
                                                            "typeString": null
                                                        }
                                                    }
                                                },
                                                "id": 6656,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "768:13:54",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6650,
                                                        "name": "output",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6606,
                                                        "src": "750:6:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 6649,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 725,
                                                    "src": "744:5:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 6651,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "744:13:54",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$725",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 6652,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "balanceOf",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 325,
                                            "src": "744:23:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) view external returns (uint256)"
                                            }
                                        },
                                        "id": 6657,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "744:38:54",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "724:58:54"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6664,
                                                        "name": "to",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6608,
                                                        "src": "817:2:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6665,
                                                        "name": "outputAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6648,
                                                        "src": "821:12:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 6661,
                                                                "name": "output",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6606,
                                                                "src": "800:6:54",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 6660,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 725,
                                                            "src": "794:5:54",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 6662,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "794:13:54",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$725",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 6663,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transfer",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 346,
                                                    "src": "794:22:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 6666,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "794:40:54",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "50616972537443656c6f3a205472616e73666572204661696c6564",
                                                "id": 6667,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "836:29:54",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_72102a2f448a4f40b1d3c08013419a120ffb1802794c739e30874dd238d57a8b",
                                                    "typeString": "literal_string \"PairStCelo: Transfer Failed\""
                                                },
                                                "value": "PairStCelo: Transfer Failed"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_72102a2f448a4f40b1d3c08013419a120ffb1802794c739e30874dd238d57a8b",
                                                    "typeString": "literal_string \"PairStCelo: Transfer Failed\""
                                                }
                                            ],
                                            "id": 6659,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "786:7:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6668,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "786:80:54",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6669,
                                    "nodeType": "ExpressionStatement",
                                    "src": "786:80:54"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "32ef8314",
                        "id": 6671,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "swap",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6612,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "482:8:54"
                        },
                        "parameters": {
                            "id": 6611,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6604,
                                    "mutability": "mutable",
                                    "name": "input",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6671,
                                    "src": "401:13:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6603,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "401:7:54",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6606,
                                    "mutability": "mutable",
                                    "name": "output",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6671,
                                    "src": "418:14:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6605,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "418:7:54",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6608,
                                    "mutability": "mutable",
                                    "name": "to",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6671,
                                    "src": "436:10:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6607,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "436:7:54",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6610,
                                    "mutability": "mutable",
                                    "name": "data",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6671,
                                    "src": "450:19:54",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_calldata_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 6609,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "450:5:54",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "397:75:54"
                        },
                        "returnParameters": {
                            "id": 6613,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "491:0:54"
                        },
                        "scope": 6729,
                        "src": "384:486:54",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6687,
                            "nodeType": "Block",
                            "src": "962:119:54",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 6682,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 6679,
                                                        "name": "data",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6673,
                                                        "src": "974:4:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    },
                                                    "id": 6680,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "974:11:54",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "3230",
                                                    "id": 6681,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "989:2:54",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_20_by_1",
                                                        "typeString": "int_const 20"
                                                    },
                                                    "value": "20"
                                                },
                                                "src": "974:17:54",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "50616972537443656c6f3a20696e76616c6964206461746121",
                                                "id": 6683,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "993:27:54",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_62d701754d3a9f647524e2d17328608023eb7685e7097e53454c7a2b2342c35f",
                                                    "typeString": "literal_string \"PairStCelo: invalid data!\""
                                                },
                                                "value": "PairStCelo: invalid data!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_62d701754d3a9f647524e2d17328608023eb7685e7097e53454c7a2b2342c35f",
                                                    "typeString": "literal_string \"PairStCelo: invalid data!\""
                                                }
                                            ],
                                            "id": 6678,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "966:7:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6684,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "966:55:54",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6685,
                                    "nodeType": "ExpressionStatement",
                                    "src": "966:55:54"
                                },
                                {
                                    "AST": {
                                        "nodeType": "YulBlock",
                                        "src": "1034:44:54",
                                        "statements": [
                                            {
                                                "nodeType": "YulAssignment",
                                                "src": "1039:35:54",
                                                "value": {
                                                    "arguments": [
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "name": "data",
                                                                    "nodeType": "YulIdentifier",
                                                                    "src": "1064:4:54"
                                                                },
                                                                {
                                                                    "kind": "number",
                                                                    "nodeType": "YulLiteral",
                                                                    "src": "1070:2:54",
                                                                    "type": "",
                                                                    "value": "20"
                                                                }
                                                            ],
                                                            "functionName": {
                                                                "name": "add",
                                                                "nodeType": "YulIdentifier",
                                                                "src": "1060:3:54"
                                                            },
                                                            "nodeType": "YulFunctionCall",
                                                            "src": "1060:13:54"
                                                        }
                                                    ],
                                                    "functionName": {
                                                        "name": "mload",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "1054:5:54"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "1054:20:54"
                                                },
                                                "variableNames": [
                                                    {
                                                        "name": "managerAddr",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "1039:11:54"
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "evmVersion": "istanbul",
                                    "externalReferences": [
                                        {
                                            "declaration": 6673,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "1064:4:54",
                                            "valueSize": 1
                                        },
                                        {
                                            "declaration": 6676,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "1039:11:54",
                                            "valueSize": 1
                                        }
                                    ],
                                    "id": 6686,
                                    "nodeType": "InlineAssembly",
                                    "src": "1025:53:54"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6688,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "parseData",
                        "nodeType": "FunctionDefinition",
                        "overrides": null,
                        "parameters": {
                            "id": 6674,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6673,
                                    "mutability": "mutable",
                                    "name": "data",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6688,
                                    "src": "892:17:54",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 6672,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "892:5:54",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "891:19:54"
                        },
                        "returnParameters": {
                            "id": 6677,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6676,
                                    "mutability": "mutable",
                                    "name": "managerAddr",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6688,
                                    "src": "933:27:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                    },
                                    "typeName": {
                                        "id": 6675,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "933:15:54",
                                        "stateMutability": "payable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "932:29:54"
                        },
                        "scope": 6729,
                        "src": "873:208:54",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            5324
                        ],
                        "body": {
                            "id": 6723,
                            "nodeType": "Block",
                            "src": "1223:169:54",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 6704,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 6702,
                                            "name": "input",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6690,
                                            "src": "1231:5:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 6703,
                                            "name": "CELO_ADDRESS",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6602,
                                            "src": "1240:12:54",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "1231:21:54",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 6721,
                                        "nodeType": "Block",
                                        "src": "1371:18:54",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 6719,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "1383:1:54",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "functionReturnParameters": 6701,
                                                "id": 6720,
                                                "nodeType": "Return",
                                                "src": "1376:8:54"
                                            }
                                        ]
                                    },
                                    "id": 6722,
                                    "nodeType": "IfStatement",
                                    "src": "1227:162:54",
                                    "trueBody": {
                                        "id": 6718,
                                        "nodeType": "Block",
                                        "src": "1254:111:54",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    6706
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 6706,
                                                        "mutability": "mutable",
                                                        "name": "managerAddr",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 6718,
                                                        "src": "1259:27:54",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        },
                                                        "typeName": {
                                                            "id": 6705,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "1259:15:54",
                                                            "stateMutability": "payable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 6710,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6708,
                                                            "name": "data",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6696,
                                                            "src": "1299:4:54",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_calldata_ptr",
                                                                "typeString": "bytes calldata"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes_calldata_ptr",
                                                                "typeString": "bytes calldata"
                                                            }
                                                        ],
                                                        "id": 6707,
                                                        "name": "parseData",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6688,
                                                        "src": "1289:9:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_payable_$",
                                                            "typeString": "function (bytes memory) pure returns (address payable)"
                                                        }
                                                    },
                                                    "id": 6709,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1289:15:54",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "1259:45:54"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6715,
                                                            "name": "amountIn",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6694,
                                                            "src": "1351:8:54",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6712,
                                                                    "name": "managerAddr",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6706,
                                                                    "src": "1325:11:54",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "id": 6711,
                                                                "name": "IManager",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1738,
                                                                "src": "1316:8:54",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IManager_$1738_$",
                                                                    "typeString": "type(contract IManager)"
                                                                }
                                                            },
                                                            "id": 6713,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "1316:21:54",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IManager_$1738",
                                                                "typeString": "contract IManager"
                                                            }
                                                        },
                                                        "id": 6714,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "toStakedCelo",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1730,
                                                        "src": "1316:34:54",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 6716,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1316:44:54",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "functionReturnParameters": 6701,
                                                "id": 6717,
                                                "nodeType": "Return",
                                                "src": "1309:51:54"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "7eace892",
                        "id": 6724,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getOutputAmount",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6698,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "1189:8:54"
                        },
                        "parameters": {
                            "id": 6697,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6690,
                                    "mutability": "mutable",
                                    "name": "input",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6724,
                                    "src": "1112:13:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6689,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1112:7:54",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6692,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6724,
                                    "src": "1129:7:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6691,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1129:7:54",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6694,
                                    "mutability": "mutable",
                                    "name": "amountIn",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6724,
                                    "src": "1140:13:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6693,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1140:4:54",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6696,
                                    "mutability": "mutable",
                                    "name": "data",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6724,
                                    "src": "1157:19:54",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_calldata_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 6695,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1157:5:54",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1108:71:54"
                        },
                        "returnParameters": {
                            "id": 6701,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6700,
                                    "mutability": "mutable",
                                    "name": "amountOut",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6724,
                                    "src": "1207:14:54",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6699,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1207:4:54",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1206:16:54"
                        },
                        "scope": 6729,
                        "src": "1084:308:54",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6727,
                            "nodeType": "Block",
                            "src": "1422:2:54",
                            "statements": []
                        },
                        "documentation": null,
                        "id": 6728,
                        "implemented": true,
                        "kind": "receive",
                        "modifiers": [],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "overrides": null,
                        "parameters": {
                            "id": 6725,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1402:2:54"
                        },
                        "returnParameters": {
                            "id": 6726,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1422:0:54"
                        },
                        "scope": 6729,
                        "src": "1395:29:54",
                        "stateMutability": "payable",
                        "virtual": false,
                        "visibility": "external"
                    }
                ],
                "scope": 6730,
                "src": "239:1187:54"
            }
        ],
        "src": "32:1394:54"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/swappa/PairStCelo.sol",
            "exportedSymbols": {
                "PairStCelo": [
                    6729
                ]
            },
            "license": "MIT"
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.6",
                        ".8"
                    ]
                },
                "id": 6590,
                "name": "PragmaDirective",
                "src": "32:22:54"
            },
            {
                "attributes": {
                    "SourceUnit": 219,
                    "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
                    "file": "@openzeppelin/contracts/math/SafeMath.sol",
                    "scope": 6730,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6591,
                "name": "ImportDirective",
                "src": "56:51:54"
            },
            {
                "attributes": {
                    "SourceUnit": 726,
                    "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                    "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                    "scope": 6730,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6592,
                "name": "ImportDirective",
                "src": "108:55:54"
            },
            {
                "attributes": {
                    "SourceUnit": 1739,
                    "absolutePath": "project:/contracts/interfaces/stCelo/IManager.sol",
                    "file": "../interfaces/stCelo/IManager.sol",
                    "scope": 6730,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6593,
                "name": "ImportDirective",
                "src": "164:43:54"
            },
            {
                "attributes": {
                    "SourceUnit": 5326,
                    "absolutePath": "project:/contracts/swappa/ISwappaPairV1.sol",
                    "file": "./ISwappaPairV1.sol",
                    "scope": 6730,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6594,
                "name": "ImportDirective",
                "src": "208:29:54"
            },
            {
                "attributes": {
                    "abstract": false,
                    "contractDependencies": [
                        5325
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        6729,
                        5325
                    ],
                    "name": "PairStCelo",
                    "scope": 6730
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ISwappaPairV1",
                                    "referencedDeclaration": 5325,
                                    "type": "contract ISwappaPairV1"
                                },
                                "id": 6595,
                                "name": "UserDefinedTypeName",
                                "src": "262:13:54"
                            }
                        ],
                        "id": 6596,
                        "name": "InheritanceSpecifier",
                        "src": "262:13:54"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "SafeMath",
                                    "referencedDeclaration": 218,
                                    "type": "library SafeMath"
                                },
                                "id": 6597,
                                "name": "UserDefinedTypeName",
                                "src": "285:8:54"
                            },
                            {
                                "attributes": {
                                    "name": "uint",
                                    "type": "uint256"
                                },
                                "id": 6598,
                                "name": "ElementaryTypeName",
                                "src": "298:4:54"
                            }
                        ],
                        "id": 6599,
                        "name": "UsingForDirective",
                        "src": "279:24:54"
                    },
                    {
                        "attributes": {
                            "constant": true,
                            "mutability": "constant",
                            "name": "CELO_ADDRESS",
                            "overrides": null,
                            "scope": 6729,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 6600,
                                "name": "ElementaryTypeName",
                                "src": "306:7:54"
                            },
                            {
                                "attributes": {
                                    "argumentTypes": null,
                                    "hexvalue": "307834373145634533373530446132333766393342384533333963353336393839623839373861343338",
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "subdenomination": null,
                                    "token": "number",
                                    "type": "address payable",
                                    "value": "0x471EcE3750Da237f93B8E339c536989b8978a438"
                                },
                                "id": 6601,
                                "name": "Literal",
                                "src": "338:42:54"
                            }
                        ],
                        "id": 6602,
                        "name": "VariableDeclaration",
                        "src": "306:74:54"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                5311
                            ],
                            "documentation": null,
                            "functionSelector": "32ef8314",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "swap",
                            "scope": 6729,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 6612,
                                "name": "OverrideSpecifier",
                                "src": "482:8:54"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "input",
                                            "overrides": null,
                                            "scope": 6671,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6603,
                                                "name": "ElementaryTypeName",
                                                "src": "401:7:54"
                                            }
                                        ],
                                        "id": 6604,
                                        "name": "VariableDeclaration",
                                        "src": "401:13:54"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "output",
                                            "overrides": null,
                                            "scope": 6671,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6605,
                                                "name": "ElementaryTypeName",
                                                "src": "418:7:54"
                                            }
                                        ],
                                        "id": 6606,
                                        "name": "VariableDeclaration",
                                        "src": "418:14:54"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "to",
                                            "overrides": null,
                                            "scope": 6671,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6607,
                                                "name": "ElementaryTypeName",
                                                "src": "436:7:54"
                                            }
                                        ],
                                        "id": 6608,
                                        "name": "VariableDeclaration",
                                        "src": "436:10:54"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "data",
                                            "overrides": null,
                                            "scope": 6671,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 6609,
                                                "name": "ElementaryTypeName",
                                                "src": "450:5:54"
                                            }
                                        ],
                                        "id": 6610,
                                        "name": "VariableDeclaration",
                                        "src": "450:19:54"
                                    }
                                ],
                                "id": 6611,
                                "name": "ParameterList",
                                "src": "397:75:54"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6613,
                                "name": "ParameterList",
                                "src": "491:0:54"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "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_c2b28497ed3c7e61730b4c5638f499a71a822ad08d969c690192fde8bd5e0cde",
                                                                    "typeString": "literal_string \"PairStCelo: Incorrect Input\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6614,
                                                        "name": "Identifier",
                                                        "src": "495:7:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6604,
                                                                    "type": "address",
                                                                    "value": "input"
                                                                },
                                                                "id": 6615,
                                                                "name": "Identifier",
                                                                "src": "503:5:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6602,
                                                                    "type": "address",
                                                                    "value": "CELO_ADDRESS"
                                                                },
                                                                "id": 6616,
                                                                "name": "Identifier",
                                                                "src": "512:12:54"
                                                            }
                                                        ],
                                                        "id": 6617,
                                                        "name": "BinaryOperation",
                                                        "src": "503:21:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "50616972537443656c6f3a20496e636f727265637420496e707574",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"PairStCelo: Incorrect Input\"",
                                                            "value": "PairStCelo: Incorrect Input"
                                                        },
                                                        "id": 6618,
                                                        "name": "Literal",
                                                        "src": "526:29:54"
                                                    }
                                                ],
                                                "id": 6619,
                                                "name": "FunctionCall",
                                                "src": "495:61:54"
                                            }
                                        ],
                                        "id": 6620,
                                        "name": "ExpressionStatement",
                                        "src": "495:61:54"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6622
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "managerAddr",
                                                    "overrides": null,
                                                    "scope": 6670,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address payable",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "payable",
                                                            "type": "address payable"
                                                        },
                                                        "id": 6621,
                                                        "name": "ElementaryTypeName",
                                                        "src": "560:15:54"
                                                    }
                                                ],
                                                "id": 6622,
                                                "name": "VariableDeclaration",
                                                "src": "560:27:54"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address payable",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                                    "typeString": "bytes calldata"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6688,
                                                            "type": "function (bytes memory) pure returns (address payable)",
                                                            "value": "parseData"
                                                        },
                                                        "id": 6623,
                                                        "name": "Identifier",
                                                        "src": "590:9:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6610,
                                                            "type": "bytes calldata",
                                                            "value": "data"
                                                        },
                                                        "id": 6624,
                                                        "name": "Identifier",
                                                        "src": "600:4:54"
                                                    }
                                                ],
                                                "id": 6625,
                                                "name": "FunctionCall",
                                                "src": "590:15:54"
                                            }
                                        ],
                                        "id": 6626,
                                        "name": "VariableDeclarationStatement",
                                        "src": "560:45:54"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6628
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "inputAmount",
                                                    "overrides": null,
                                                    "scope": 6670,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint",
                                                            "type": "uint256"
                                                        },
                                                        "id": 6627,
                                                        "name": "ElementaryTypeName",
                                                        "src": "609:4:54"
                                                    }
                                                ],
                                                "id": 6628,
                                                "name": "VariableDeclaration",
                                                "src": "609:16:54"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "balanceOf",
                                                            "referencedDeclaration": 325,
                                                            "type": "function (address) view external returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 725,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 6629,
                                                                        "name": "Identifier",
                                                                        "src": "628:5:54"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6604,
                                                                            "type": "address",
                                                                            "value": "input"
                                                                        },
                                                                        "id": 6630,
                                                                        "name": "Identifier",
                                                                        "src": "634:5:54"
                                                                    }
                                                                ],
                                                                "id": 6631,
                                                                "name": "FunctionCall",
                                                                "src": "628:12:54"
                                                            }
                                                        ],
                                                        "id": 6632,
                                                        "name": "MemberAccess",
                                                        "src": "628:22:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PairStCelo_$6729",
                                                                            "typeString": "contract PairStCelo"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "type": null
                                                                        },
                                                                        "id": 6633,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "651:7:54"
                                                                    }
                                                                ],
                                                                "id": 6634,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "651:7:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract PairStCelo",
                                                                    "value": "this"
                                                                },
                                                                "id": 6635,
                                                                "name": "Identifier",
                                                                "src": "659:4:54"
                                                            }
                                                        ],
                                                        "id": 6636,
                                                        "name": "FunctionCall",
                                                        "src": "651:13:54"
                                                    }
                                                ],
                                                "id": 6637,
                                                "name": "FunctionCall",
                                                "src": "628:37:54"
                                            }
                                        ],
                                        "id": 6638,
                                        "name": "VariableDeclarationStatement",
                                        "src": "609:56:54"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                "value"
                                                            ],
                                                            "type": "function () payable external"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "deposit",
                                                                    "referencedDeclaration": 1723,
                                                                    "type": "function () payable external"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IManager",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1738,
                                                                                    "type": "type(contract IManager)",
                                                                                    "value": "IManager"
                                                                                },
                                                                                "id": 6639,
                                                                                "name": "Identifier",
                                                                                "src": "669:8:54"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6622,
                                                                                    "type": "address payable",
                                                                                    "value": "managerAddr"
                                                                                },
                                                                                "id": 6640,
                                                                                "name": "Identifier",
                                                                                "src": "678:11:54"
                                                                            }
                                                                        ],
                                                                        "id": 6641,
                                                                        "name": "FunctionCall",
                                                                        "src": "669:21:54"
                                                                    }
                                                                ],
                                                                "id": 6642,
                                                                "name": "MemberAccess",
                                                                "src": "669:29:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6628,
                                                                    "type": "uint256",
                                                                    "value": "inputAmount"
                                                                },
                                                                "id": 6643,
                                                                "name": "Identifier",
                                                                "src": "706:11:54"
                                                            }
                                                        ],
                                                        "id": 6644,
                                                        "name": "FunctionCallOptions",
                                                        "src": "669:49:54"
                                                    }
                                                ],
                                                "id": 6645,
                                                "name": "FunctionCall",
                                                "src": "669:51:54"
                                            }
                                        ],
                                        "id": 6646,
                                        "name": "ExpressionStatement",
                                        "src": "669:51:54"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6648
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "outputAmount",
                                                    "overrides": null,
                                                    "scope": 6670,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint",
                                                            "type": "uint256"
                                                        },
                                                        "id": 6647,
                                                        "name": "ElementaryTypeName",
                                                        "src": "724:4:54"
                                                    }
                                                ],
                                                "id": 6648,
                                                "name": "VariableDeclaration",
                                                "src": "724:17:54"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "balanceOf",
                                                            "referencedDeclaration": 325,
                                                            "type": "function (address) view external returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 725,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 6649,
                                                                        "name": "Identifier",
                                                                        "src": "744:5:54"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6606,
                                                                            "type": "address",
                                                                            "value": "output"
                                                                        },
                                                                        "id": 6650,
                                                                        "name": "Identifier",
                                                                        "src": "750:6:54"
                                                                    }
                                                                ],
                                                                "id": 6651,
                                                                "name": "FunctionCall",
                                                                "src": "744:13:54"
                                                            }
                                                        ],
                                                        "id": 6652,
                                                        "name": "MemberAccess",
                                                        "src": "744:23:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PairStCelo_$6729",
                                                                            "typeString": "contract PairStCelo"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "type": null
                                                                        },
                                                                        "id": 6653,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "768:7:54"
                                                                    }
                                                                ],
                                                                "id": 6654,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "768:7:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract PairStCelo",
                                                                    "value": "this"
                                                                },
                                                                "id": 6655,
                                                                "name": "Identifier",
                                                                "src": "776:4:54"
                                                            }
                                                        ],
                                                        "id": 6656,
                                                        "name": "FunctionCall",
                                                        "src": "768:13:54"
                                                    }
                                                ],
                                                "id": 6657,
                                                "name": "FunctionCall",
                                                "src": "744:38:54"
                                            }
                                        ],
                                        "id": 6658,
                                        "name": "VariableDeclarationStatement",
                                        "src": "724:58:54"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "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_72102a2f448a4f40b1d3c08013419a120ffb1802794c739e30874dd238d57a8b",
                                                                    "typeString": "literal_string \"PairStCelo: Transfer Failed\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6659,
                                                        "name": "Identifier",
                                                        "src": "786:7:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transfer",
                                                                    "referencedDeclaration": 346,
                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 6660,
                                                                                "name": "Identifier",
                                                                                "src": "794:5:54"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6606,
                                                                                    "type": "address",
                                                                                    "value": "output"
                                                                                },
                                                                                "id": 6661,
                                                                                "name": "Identifier",
                                                                                "src": "800:6:54"
                                                                            }
                                                                        ],
                                                                        "id": 6662,
                                                                        "name": "FunctionCall",
                                                                        "src": "794:13:54"
                                                                    }
                                                                ],
                                                                "id": 6663,
                                                                "name": "MemberAccess",
                                                                "src": "794:22:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6608,
                                                                    "type": "address",
                                                                    "value": "to"
                                                                },
                                                                "id": 6664,
                                                                "name": "Identifier",
                                                                "src": "817:2:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6648,
                                                                    "type": "uint256",
                                                                    "value": "outputAmount"
                                                                },
                                                                "id": 6665,
                                                                "name": "Identifier",
                                                                "src": "821:12:54"
                                                            }
                                                        ],
                                                        "id": 6666,
                                                        "name": "FunctionCall",
                                                        "src": "794:40:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "50616972537443656c6f3a205472616e73666572204661696c6564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"PairStCelo: Transfer Failed\"",
                                                            "value": "PairStCelo: Transfer Failed"
                                                        },
                                                        "id": 6667,
                                                        "name": "Literal",
                                                        "src": "836:29:54"
                                                    }
                                                ],
                                                "id": 6668,
                                                "name": "FunctionCall",
                                                "src": "786:80:54"
                                            }
                                        ],
                                        "id": 6669,
                                        "name": "ExpressionStatement",
                                        "src": "786:80:54"
                                    }
                                ],
                                "id": 6670,
                                "name": "Block",
                                "src": "491:379:54"
                            }
                        ],
                        "id": 6671,
                        "name": "FunctionDefinition",
                        "src": "384:486:54"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "parseData",
                            "overrides": null,
                            "scope": 6729,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "data",
                                            "overrides": null,
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "bytes",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 6672,
                                                "name": "ElementaryTypeName",
                                                "src": "892:5:54"
                                            }
                                        ],
                                        "id": 6673,
                                        "name": "VariableDeclaration",
                                        "src": "892:17:54"
                                    }
                                ],
                                "id": 6674,
                                "name": "ParameterList",
                                "src": "891:19:54"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "managerAddr",
                                            "overrides": null,
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address payable",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "payable",
                                                    "type": "address payable"
                                                },
                                                "id": 6675,
                                                "name": "ElementaryTypeName",
                                                "src": "933:15:54"
                                            }
                                        ],
                                        "id": 6676,
                                        "name": "VariableDeclaration",
                                        "src": "933:27:54"
                                    }
                                ],
                                "id": 6677,
                                "name": "ParameterList",
                                "src": "932:29:54"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "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_62d701754d3a9f647524e2d17328608023eb7685e7097e53454c7a2b2342c35f",
                                                                    "typeString": "literal_string \"PairStCelo: invalid data!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6678,
                                                        "name": "Identifier",
                                                        "src": "966:7:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6673,
                                                                            "type": "bytes memory",
                                                                            "value": "data"
                                                                        },
                                                                        "id": 6679,
                                                                        "name": "Identifier",
                                                                        "src": "974:4:54"
                                                                    }
                                                                ],
                                                                "id": 6680,
                                                                "name": "MemberAccess",
                                                                "src": "974:11:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "3230",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 20",
                                                                    "value": "20"
                                                                },
                                                                "id": 6681,
                                                                "name": "Literal",
                                                                "src": "989:2:54"
                                                            }
                                                        ],
                                                        "id": 6682,
                                                        "name": "BinaryOperation",
                                                        "src": "974:17:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "50616972537443656c6f3a20696e76616c6964206461746121",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"PairStCelo: invalid data!\"",
                                                            "value": "PairStCelo: invalid data!"
                                                        },
                                                        "id": 6683,
                                                        "name": "Literal",
                                                        "src": "993:27:54"
                                                    }
                                                ],
                                                "id": 6684,
                                                "name": "FunctionCall",
                                                "src": "966:55:54"
                                            }
                                        ],
                                        "id": 6685,
                                        "name": "ExpressionStatement",
                                        "src": "966:55:54"
                                    },
                                    {
                                        "attributes": {
                                            "evmVersion": "istanbul",
                                            "externalReferences": [
                                                {
                                                    "declaration": 6673,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "1064:4:54",
                                                    "valueSize": 1
                                                },
                                                {
                                                    "declaration": 6676,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "1039:11:54",
                                                    "valueSize": 1
                                                }
                                            ],
                                            "operations": "{\n    managerAddr := mload(add(data, 20))\n}"
                                        },
                                        "children": [],
                                        "id": 6686,
                                        "name": "InlineAssembly",
                                        "src": "1025:53:54"
                                    }
                                ],
                                "id": 6687,
                                "name": "Block",
                                "src": "962:119:54"
                            }
                        ],
                        "id": 6688,
                        "name": "FunctionDefinition",
                        "src": "873:208:54"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                5324
                            ],
                            "documentation": null,
                            "functionSelector": "7eace892",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getOutputAmount",
                            "scope": 6729,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 6698,
                                "name": "OverrideSpecifier",
                                "src": "1189:8:54"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "input",
                                            "overrides": null,
                                            "scope": 6724,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6689,
                                                "name": "ElementaryTypeName",
                                                "src": "1112:7:54"
                                            }
                                        ],
                                        "id": 6690,
                                        "name": "VariableDeclaration",
                                        "src": "1112:13:54"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "overrides": null,
                                            "scope": 6724,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6691,
                                                "name": "ElementaryTypeName",
                                                "src": "1129:7:54"
                                            }
                                        ],
                                        "id": 6692,
                                        "name": "VariableDeclaration",
                                        "src": "1129:7:54"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amountIn",
                                            "overrides": null,
                                            "scope": 6724,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 6693,
                                                "name": "ElementaryTypeName",
                                                "src": "1140:4:54"
                                            }
                                        ],
                                        "id": 6694,
                                        "name": "VariableDeclaration",
                                        "src": "1140:13:54"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "data",
                                            "overrides": null,
                                            "scope": 6724,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 6695,
                                                "name": "ElementaryTypeName",
                                                "src": "1157:5:54"
                                            }
                                        ],
                                        "id": 6696,
                                        "name": "VariableDeclaration",
                                        "src": "1157:19:54"
                                    }
                                ],
                                "id": 6697,
                                "name": "ParameterList",
                                "src": "1108:71:54"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amountOut",
                                            "overrides": null,
                                            "scope": 6724,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 6699,
                                                "name": "ElementaryTypeName",
                                                "src": "1207:4:54"
                                            }
                                        ],
                                        "id": 6700,
                                        "name": "VariableDeclaration",
                                        "src": "1207:14:54"
                                    }
                                ],
                                "id": 6701,
                                "name": "ParameterList",
                                "src": "1206:16:54"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6690,
                                                            "type": "address",
                                                            "value": "input"
                                                        },
                                                        "id": 6702,
                                                        "name": "Identifier",
                                                        "src": "1231:5:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6602,
                                                            "type": "address",
                                                            "value": "CELO_ADDRESS"
                                                        },
                                                        "id": 6703,
                                                        "name": "Identifier",
                                                        "src": "1240:12:54"
                                                    }
                                                ],
                                                "id": 6704,
                                                "name": "BinaryOperation",
                                                "src": "1231:21:54"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                6706
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "managerAddr",
                                                                    "overrides": null,
                                                                    "scope": 6718,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address payable",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "payable",
                                                                            "type": "address payable"
                                                                        },
                                                                        "id": 6705,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "1259:15:54"
                                                                    }
                                                                ],
                                                                "id": 6706,
                                                                "name": "VariableDeclaration",
                                                                "src": "1259:27:54"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "address payable",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                                                    "typeString": "bytes calldata"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6688,
                                                                            "type": "function (bytes memory) pure returns (address payable)",
                                                                            "value": "parseData"
                                                                        },
                                                                        "id": 6707,
                                                                        "name": "Identifier",
                                                                        "src": "1289:9:54"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6696,
                                                                            "type": "bytes calldata",
                                                                            "value": "data"
                                                                        },
                                                                        "id": 6708,
                                                                        "name": "Identifier",
                                                                        "src": "1299:4:54"
                                                                    }
                                                                ],
                                                                "id": 6709,
                                                                "name": "FunctionCall",
                                                                "src": "1289:15:54"
                                                            }
                                                        ],
                                                        "id": 6710,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "1259:45:54"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 6701
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "toStakedCelo",
                                                                            "referencedDeclaration": 1730,
                                                                            "type": "function (uint256) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IManager",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                    "typeString": "address payable"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1738,
                                                                                            "type": "type(contract IManager)",
                                                                                            "value": "IManager"
                                                                                        },
                                                                                        "id": 6711,
                                                                                        "name": "Identifier",
                                                                                        "src": "1316:8:54"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6706,
                                                                                            "type": "address payable",
                                                                                            "value": "managerAddr"
                                                                                        },
                                                                                        "id": 6712,
                                                                                        "name": "Identifier",
                                                                                        "src": "1325:11:54"
                                                                                    }
                                                                                ],
                                                                                "id": 6713,
                                                                                "name": "FunctionCall",
                                                                                "src": "1316:21:54"
                                                                            }
                                                                        ],
                                                                        "id": 6714,
                                                                        "name": "MemberAccess",
                                                                        "src": "1316:34:54"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6694,
                                                                            "type": "uint256",
                                                                            "value": "amountIn"
                                                                        },
                                                                        "id": 6715,
                                                                        "name": "Identifier",
                                                                        "src": "1351:8:54"
                                                                    }
                                                                ],
                                                                "id": 6716,
                                                                "name": "FunctionCall",
                                                                "src": "1316:44:54"
                                                            }
                                                        ],
                                                        "id": 6717,
                                                        "name": "Return",
                                                        "src": "1309:51:54"
                                                    }
                                                ],
                                                "id": 6718,
                                                "name": "Block",
                                                "src": "1254:111:54"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 6701
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 6719,
                                                                "name": "Literal",
                                                                "src": "1383:1:54"
                                                            }
                                                        ],
                                                        "id": 6720,
                                                        "name": "Return",
                                                        "src": "1376:8:54"
                                                    }
                                                ],
                                                "id": 6721,
                                                "name": "Block",
                                                "src": "1371:18:54"
                                            }
                                        ],
                                        "id": 6722,
                                        "name": "IfStatement",
                                        "src": "1227:162:54"
                                    }
                                ],
                                "id": 6723,
                                "name": "Block",
                                "src": "1223:169:54"
                            }
                        ],
                        "id": 6724,
                        "name": "FunctionDefinition",
                        "src": "1084:308:54"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "receive",
                            "modifiers": [
                                null
                            ],
                            "name": "",
                            "overrides": null,
                            "scope": 6729,
                            "stateMutability": "payable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6725,
                                "name": "ParameterList",
                                "src": "1402:2:54"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6726,
                                "name": "ParameterList",
                                "src": "1422:0:54"
                            },
                            {
                                "attributes": {
                                    "statements": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6727,
                                "name": "Block",
                                "src": "1422:2:54"
                            }
                        ],
                        "id": 6728,
                        "name": "FunctionDefinition",
                        "src": "1395:29:54"
                    }
                ],
                "id": 6729,
                "name": "ContractDefinition",
                "src": "239:1187:54"
            }
        ],
        "id": 6730,
        "name": "SourceUnit",
        "src": "32:1394:54"
    },
    "compiler": {
        "name": "solc",
        "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
    },
    "networks": {},
    "schemaVersion": "3.4.16",
    "updatedAt": "2025-02-07T17:50:42.840Z",
    "devdoc": {
        "methods": {}
    },
    "userdoc": {
        "methods": {}
    }
}
