UNPKG

@maplelabs/core-artifacts

Version:

Consist artifacts of the maple protocol

1,091 lines (1,090 loc) 45.2 kB
{ "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 } } } }