{
  "id": "395e5e1a5727dd33482ef0ff5b896735",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.6.11",
  "solcLongVersion": "0.6.11+commit.5ef660b1",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/core/treasury/v1/interfaces/IMapleTreasury.sol": {
        "content": "// SPDX-License-Identifier: AGPL-3.0-or-later // hevm: flattened sources of contracts/core/treasury/v1/interfaces/IMapleTreasury.sol\npragma solidity =0.6.11;\n\n////// contracts/core/treasury/v1/interfaces/IMapleTreasury.sol\n/* pragma solidity 0.6.11; */\n\n/// @title MapleTreasury earns revenue from Loans and distributes it to token holders and the Maple development team.\ninterface IMapleTreasury {\n\n    /**\n        @dev   Emits an event indicating that an amount of some asset was converted to `fundsToken`.\n        @param asset     The ERC-20 asset to convert to `fundsToken`.\n        @param amountIn  The amount of the asset being converted to `fundsToken`.\n        @param amountOut The amount of `fundsToken` received from the conversion.\n     */\n    event ERC20Conversion(address indexed asset, uint256 amountIn, uint256 amountOut);\n\n    /**\n        @dev   Emits an event indicating that a distribution was made to token holders.\n        @param amount The amount distributed to token holders.\n     */\n    event DistributedToHolders(uint256 amount);\n    \n    /**\n        @dev   Emits an event indicating the Governor reclaimed some token.\n        @param asset  The address of the token to reclaimed.\n        @param amount The amount reclaimed.\n     */\n    event ERC20Reclaimed(address indexed asset, uint256 amount);\n    \n    /**\n        @dev   Emits an event indicating the MapleGlobals instance has changed.\n        @param newGlobals The address of a new MapleGlobals.\n     */\n    event GlobalsSet(address newGlobals);\n\n    /**\n        @dev The address of ERC-2222 Maple Token for the Maple protocol.\n     */\n    function mpl() external view returns (address);\n\n    /**\n        @dev The address of the `fundsToken` of the ERC-2222 Maple Token.\n     */\n    function fundsToken() external view returns (address);\n\n    /**\n        @dev The address of the official UniswapV2 router.\n     */\n    function uniswapRouter() external view returns (address);\n\n    /**\n        @dev The address of an instance of MapleGlobals.\n     */\n    function globals() external view returns (address);\n\n    /**\n        @dev   Updates the MapleGlobals instance. \n        @dev   Only the Governor can call this function. \n        @dev   It emits a `GlobalsSet` event. \n        @param newGlobals The address of a new MapleGlobals instance.\n     */\n    function setGlobals(address newGlobals) external;\n\n    /**\n        @dev   Reclaims Treasury funds to the Governor. \n        @dev   Only the Governor can call this function. \n        @dev   It emits a `ERC20Reclaimed` event. \n        @param asset  The address of the token to be reclaimed.\n        @param amount The amount reclaimed.\n     */\n    function reclaimERC20(address asset, uint256 amount) external;\n\n    /**\n        @dev Passes through the current `fundsToken` balance of the Treasury to Maple Token, where it can be claimed by MPL holders. \n        @dev Only the Governor can call this function. \n        @dev It emits a `DistributedToHolders` event. \n     */\n    function distributeToHolders() external;\n\n    /**\n        @dev   Converts an ERC-20 asset, via Uniswap, to `fundsToken`. \n        @dev   Only the Governor can call this function. \n        @dev   It emits a `ERC20Conversion` event. \n        @param asset The ERC-20 asset to convert to `fundsToken`.\n     */\n    function convertERC20(address asset) external;\n\n}\n"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/core/treasury/v1/interfaces/IMapleTreasury.sol": {
        "IMapleTreasury": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "DistributedToHolders",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "asset",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                }
              ],
              "name": "ERC20Conversion",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "asset",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "ERC20Reclaimed",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "newGlobals",
                  "type": "address"
                }
              ],
              "name": "GlobalsSet",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "asset",
                  "type": "address"
                }
              ],
              "name": "convertERC20",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "distributeToHolders",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "fundsToken",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "globals",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "mpl",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "asset",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "reclaimERC20",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newGlobals",
                  "type": "address"
                }
              ],
              "name": "setGlobals",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "uniswapRouter",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "convertERC20(address)": "817bd4fd",
              "distributeToHolders()": "3153689f",
              "fundsToken()": "63f04b15",
              "globals()": "c3124525",
              "mpl()": "a0530946",
              "reclaimERC20(address,uint256)": "afdbd499",
              "setGlobals(address)": "cc2e0a26",
              "uniswapRouter()": "735de9f7"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/core/treasury/v1/interfaces/IMapleTreasury.sol": {
        "ast": {
          "absolutePath": "contracts/core/treasury/v1/interfaces/IMapleTreasury.sol",
          "exportedSymbols": {
            "IMapleTreasury": [
              77
            ]
          },
          "id": 78,
          "license": "AGPL-3.0-or-later",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                "=",
                "0.6",
                ".11"
              ],
              "nodeType": "PragmaDirective",
              "src": "133:24:0"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "contractDependencies": [],
              "contractKind": "interface",
              "documentation": {
                "id": 2,
                "nodeType": "StructuredDocumentation",
                "src": "254:118:0",
                "text": "@title MapleTreasury earns revenue from Loans and distributes it to token holders and the Maple development team."
              },
              "fullyImplemented": false,
              "id": 77,
              "linearizedBaseContracts": [
                77
              ],
              "name": "IMapleTreasury",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 3,
                    "nodeType": "StructuredDocumentation",
                    "src": "404:346:0",
                    "text": "@dev   Emits an event indicating that an amount of some asset was converted to `fundsToken`.\n@param asset     The ERC-20 asset to convert to `fundsToken`.\n@param amountIn  The amount of the asset being converted to `fundsToken`.\n@param amountOut The amount of `fundsToken` received from the conversion."
                  },
                  "id": 11,
                  "name": "ERC20Conversion",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 10,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 5,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "asset",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 11,
                        "src": "777:21:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 4,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "777:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 7,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 11,
                        "src": "800:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "800:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 9,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "amountOut",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 11,
                        "src": "818:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "818:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "776:60:0"
                  },
                  "src": "755:82:0"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 12,
                    "nodeType": "StructuredDocumentation",
                    "src": "843:162:0",
                    "text": "@dev   Emits an event indicating that a distribution was made to token holders.\n@param amount The amount distributed to token holders."
                  },
                  "id": 16,
                  "name": "DistributedToHolders",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 15,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 14,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "amount",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 16,
                        "src": "1037:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 13,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1037:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1036:16:0"
                  },
                  "src": "1010:43:0"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 17,
                    "nodeType": "StructuredDocumentation",
                    "src": "1063:192:0",
                    "text": "@dev   Emits an event indicating the Governor reclaimed some token.\n@param asset  The address of the token to reclaimed.\n@param amount The amount reclaimed."
                  },
                  "id": 23,
                  "name": "ERC20Reclaimed",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 22,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 19,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "asset",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 23,
                        "src": "1281:21:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 18,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1281:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 21,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "amount",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 23,
                        "src": "1304:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 20,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1304:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1280:39:0"
                  },
                  "src": "1260:60:0"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 24,
                    "nodeType": "StructuredDocumentation",
                    "src": "1330:152:0",
                    "text": "@dev   Emits an event indicating the MapleGlobals instance has changed.\n@param newGlobals The address of a new MapleGlobals."
                  },
                  "id": 28,
                  "name": "GlobalsSet",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 27,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 26,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "newGlobals",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 28,
                        "src": "1504:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 25,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1504:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1503:20:0"
                  },
                  "src": "1487:37:0"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 29,
                    "nodeType": "StructuredDocumentation",
                    "src": "1530:84:0",
                    "text": "@dev The address of ERC-2222 Maple Token for the Maple protocol."
                  },
                  "functionSelector": "a0530946",
                  "id": 34,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "mpl",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 30,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1631:2:0"
                  },
                  "returnParameters": {
                    "id": 33,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 32,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 34,
                        "src": "1657:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 31,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1657:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1656:9:0"
                  },
                  "scope": 77,
                  "src": "1619:47:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 35,
                    "nodeType": "StructuredDocumentation",
                    "src": "1672:85:0",
                    "text": "@dev The address of the `fundsToken` of the ERC-2222 Maple Token."
                  },
                  "functionSelector": "63f04b15",
                  "id": 40,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "fundsToken",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 36,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1781:2:0"
                  },
                  "returnParameters": {
                    "id": 39,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 38,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 40,
                        "src": "1807:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 37,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1807:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1806:9:0"
                  },
                  "scope": 77,
                  "src": "1762:54:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 41,
                    "nodeType": "StructuredDocumentation",
                    "src": "1822:70:0",
                    "text": "@dev The address of the official UniswapV2 router."
                  },
                  "functionSelector": "735de9f7",
                  "id": 46,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "uniswapRouter",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 42,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1919:2:0"
                  },
                  "returnParameters": {
                    "id": 45,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 44,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 46,
                        "src": "1945:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 43,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1945:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1944:9:0"
                  },
                  "scope": 77,
                  "src": "1897:57:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 47,
                    "nodeType": "StructuredDocumentation",
                    "src": "1960:68:0",
                    "text": "@dev The address of an instance of MapleGlobals."
                  },
                  "functionSelector": "c3124525",
                  "id": 52,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "globals",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 48,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2049:2:0"
                  },
                  "returnParameters": {
                    "id": 51,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 50,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 52,
                        "src": "2075:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 49,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2075:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2074:9:0"
                  },
                  "scope": 77,
                  "src": "2033:51:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 53,
                    "nodeType": "StructuredDocumentation",
                    "src": "2090:237:0",
                    "text": "@dev   Updates the MapleGlobals instance. \n@dev   Only the Governor can call this function. \n@dev   It emits a `GlobalsSet` event. \n@param newGlobals The address of a new MapleGlobals instance."
                  },
                  "functionSelector": "cc2e0a26",
                  "id": 58,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setGlobals",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 56,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 55,
                        "mutability": "mutable",
                        "name": "newGlobals",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 58,
                        "src": "2352:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 54,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2352:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2351:20:0"
                  },
                  "returnParameters": {
                    "id": 57,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2380:0:0"
                  },
                  "scope": 77,
                  "src": "2332:49:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 59,
                    "nodeType": "StructuredDocumentation",
                    "src": "2387:285:0",
                    "text": "@dev   Reclaims Treasury funds to the Governor. \n@dev   Only the Governor can call this function. \n@dev   It emits a `ERC20Reclaimed` event. \n@param asset  The address of the token to be reclaimed.\n@param amount The amount reclaimed."
                  },
                  "functionSelector": "afdbd499",
                  "id": 66,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "reclaimERC20",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 64,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 61,
                        "mutability": "mutable",
                        "name": "asset",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 66,
                        "src": "2699:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 60,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2699:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 63,
                        "mutability": "mutable",
                        "name": "amount",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 66,
                        "src": "2714:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 62,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2714:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2698:31:0"
                  },
                  "returnParameters": {
                    "id": 65,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2738:0:0"
                  },
                  "scope": 77,
                  "src": "2677:62:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 67,
                    "nodeType": "StructuredDocumentation",
                    "src": "2745:256:0",
                    "text": "@dev Passes through the current `fundsToken` balance of the Treasury to Maple Token, where it can be claimed by MPL holders. \n@dev Only the Governor can call this function. \n@dev It emits a `DistributedToHolders` event. "
                  },
                  "functionSelector": "3153689f",
                  "id": 70,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "distributeToHolders",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 68,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3034:2:0"
                  },
                  "returnParameters": {
                    "id": 69,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3045:0:0"
                  },
                  "scope": 77,
                  "src": "3006:40:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": {
                    "id": 71,
                    "nodeType": "StructuredDocumentation",
                    "src": "3052:259:0",
                    "text": "@dev   Converts an ERC-20 asset, via Uniswap, to `fundsToken`. \n@dev   Only the Governor can call this function. \n@dev   It emits a `ERC20Conversion` event. \n@param asset The ERC-20 asset to convert to `fundsToken`."
                  },
                  "functionSelector": "817bd4fd",
                  "id": 76,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "convertERC20",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 74,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 73,
                        "mutability": "mutable",
                        "name": "asset",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 76,
                        "src": "3338:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 72,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3338:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "3337:15:0"
                  },
                  "returnParameters": {
                    "id": 75,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3361:0:0"
                  },
                  "scope": 77,
                  "src": "3316:46:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 78,
              "src": "372:2993:0"
            }
          ],
          "src": "133:3233:0"
        },
        "id": 0
      }
    }
  }
}
