UNPKG

@dolomite-exchange/dolomite-margin

Version:

Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol

714 lines 32.3 kB
{ "contractName": "AlwaysZeroInterestSetter", "abi": [ { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getInterestRate", "outputs": [ { "components": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Interest.Rate", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getInterestRate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Interest.Rate\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Dolomite\",\"methods\":{},\"title\":\"AlwaysZeroInterestSetter.sol\"},\"userdoc\":{\"methods\":{},\"notice\":\"Always returns 0 for the interest rate, no matter what the state of the market is.\"}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/AlwaysZeroInterestSetter.sol\":\"AlwaysZeroInterestSetter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/AlwaysZeroInterestSetter.sol\":{\"keccak256\":\"0x7ab0a7cbc62be6dafc7d92d65cebfc6a96b2f0ae6e6efca74e875e8b5507d0aa\",\"urls\":[\"bzz-raw://3195cfbf3617aeab9420f8ebb93bd84e4e06545a3bf79b616a73348d6ef8aa0b\",\"dweb:/ipfs/QmeMzxkuyJBKe4GFsinnE1mDUecXpeUn4vRorkEdKJ4DvM\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b506101ac806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e8177dcf14610030575b600080fd5b61004361003e3660046100a7565b610059565b604051610050919061011a565b60405180910390f35b610061610078565b506040805160208101909152600081529392505050565b6040518060200160405280600081525090565b803561009681610149565b92915050565b803561009681610160565b6000806000606084860312156100bc57600080fd5b60006100c8868661008b565b93505060206100d98682870161009c565b92505060406100ea8682870161009c565b9150509250925092565b80516020830190610105848261010b565b50505050565b61011481610146565b82525050565b6020810161009682846100f4565b600073ffffffffffffffffffffffffffffffffffffffff8216610096565b90565b61015281610128565b811461015d57600080fd5b50565b6101528161014656fea365627a7a72315820fb5ee59be54e5322f489560dd845f6a65f887d8613f28b429fd1ae8446dfac896c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e8177dcf14610030575b600080fd5b61004361003e3660046100a7565b610059565b604051610050919061011a565b60405180910390f35b610061610078565b506040805160208101909152600081529392505050565b6040518060200160405280600081525090565b803561009681610149565b92915050565b803561009681610160565b6000806000606084860312156100bc57600080fd5b60006100c8868661008b565b93505060206100d98682870161009c565b92505060406100ea8682870161009c565b9150509250925092565b80516020830190610105848261010b565b50505050565b61011481610146565b82525050565b6020810161009682846100f4565b600073ffffffffffffffffffffffffffffffffffffffff8216610096565b90565b61015281610128565b811461015d57600080fd5b50565b6101528161014656fea365627a7a72315820fb5ee59be54e5322f489560dd845f6a65f887d8613f28b429fd1ae8446dfac896c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "965:320:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;965:320:9;;;;;;;", "deployedSourceMap": "965:320:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;965:320:9;;;;;;;;;;;;;;;;;;;1025:258;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1186:20;;:::i;:::-;-1:-1:-1;1229:47:9;;;;;;;;;-1:-1:-1;1229:47:9;;1025:258;;;;;:::o;965:320::-;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:491;;;;417:2;405:9;396:7;392:23;388:32;385:2;;;433:1;430;423:12;385:2;468:1;485:53;530:7;510:9;485:53;;;475:63;;447:97;575:2;593:53;638:7;629:6;618:9;614:22;593:53;;;583:63;;554:98;683:2;701:53;746:7;737:6;726:9;722:22;701:53;;;691:63;;662:98;379:391;;;;;;828:319;1034:23;;967:4;958:14;;;1063:63;962:3;1034:23;1063:63;;;987:145;940:207;;;;1154:103;1227:24;1245:5;1227:24;;;1222:3;1215:37;1209:48;;;1264:305;1428:2;1413:18;;1442:117;1417:9;1532:6;1442:117;;1576:91;;1747:42;1736:54;;1638:24;1719:76;1802:72;1864:5;1847:27;1881:117;1950:24;1968:5;1950:24;;;1943:5;1940:35;1930:2;;1989:1;1986;1979:12;1930:2;1924:74;;2005:117;2074:24;2092:5;2074:24;", "source": "/*\n\n Copyright 2023 Dolomite.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.7;\npragma experimental ABIEncoderV2;\n\nimport { IInterestSetter } from \"../../protocol/interfaces/IInterestSetter.sol\";\nimport { Interest } from \"../../protocol/lib/Interest.sol\";\n\n\n/**\n * @title AlwaysZeroInterestSetter.sol\n * @author Dolomite\n *\n * @notice Always returns 0 for the interest rate, no matter what the state of the market is.\n */\ncontract AlwaysZeroInterestSetter is IInterestSetter {\n\n function getInterestRate(\n address /* token */,\n uint256 /* borrowWei */,\n uint256 /* supplyWei */\n )\n external\n view\n returns (Interest.Rate memory)\n {\n return Interest.Rate({\n value: 0\n });\n }\n}\n", "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/AlwaysZeroInterestSetter.sol", "ast": { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/AlwaysZeroInterestSetter.sol", "exportedSymbols": { "AlwaysZeroInterestSetter": [ 3371 ] }, "id": 3372, "nodeType": "SourceUnit", "nodes": [ { "id": 3346, "literals": [ "solidity", "^", "0.5", ".7" ], "nodeType": "PragmaDirective", "src": "595:23:9" }, { "id": 3347, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "619:33:9" }, { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol", "file": "../../protocol/interfaces/IInterestSetter.sol", "id": 3349, "nodeType": "ImportDirective", "scope": 3372, "sourceUnit": 24790, "src": "654:80:9", "symbolAliases": [ { "foreign": 3348, "local": null } ], "unitAlias": "" }, { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol", "file": "../../protocol/lib/Interest.sol", "id": 3351, "nodeType": "ImportDirective", "scope": 3372, "sourceUnit": 27751, "src": "735:59:9", "symbolAliases": [ { "foreign": 3350, "local": null } ], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3352, "name": "IInterestSetter", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 24789, "src": "1002:15:9", "typeDescriptions": { "typeIdentifier": "t_contract$_IInterestSetter_$24789", "typeString": "contract IInterestSetter" } }, "id": 3353, "nodeType": "InheritanceSpecifier", "src": "1002:15:9" } ], "contractDependencies": [ 24789 ], "contractKind": "contract", "documentation": "@title AlwaysZeroInterestSetter.sol\n@author Dolomite\n * @notice Always returns 0 for the interest rate, no matter what the state of the market is.", "fullyImplemented": true, "id": 3371, "linearizedBaseContracts": [ 3371, 24789 ], "name": "AlwaysZeroInterestSetter", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 3369, "nodeType": "Block", "src": "1212:71:9", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1264:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "expression": { "argumentTypes": null, "id": 3364, "name": "Interest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27750, "src": "1229:8:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Interest_$27750_$", "typeString": "type(library Interest)" } }, "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Rate", "nodeType": "MemberAccess", "referencedDeclaration": 27464, "src": "1229:13:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Rate_$27464_storage_ptr_$", "typeString": "type(struct Interest.Rate storage pointer)" } }, "id": 3367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "value" ], "nodeType": "FunctionCall", "src": "1229:47:9", "typeDescriptions": { "typeIdentifier": "t_struct$_Rate_$27464_memory", "typeString": "struct Interest.Rate memory" } }, "functionReturnParameters": 3363, "id": 3368, "nodeType": "Return", "src": "1222:54:9" } ] }, "documentation": null, "id": 3370, "implemented": true, "kind": "function", "modifiers": [], "name": "getInterestRate", "nodeType": "FunctionDefinition", "parameters": { "id": 3360, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3355, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1059:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3354, "name": "address", "nodeType": "ElementaryTypeName", "src": "1059:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3357, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1088:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3356, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1088:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3359, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1121:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3358, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1121:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1049:101:9" }, "returnParameters": { "id": 3363, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3362, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1186:20:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_Rate_$27464_memory_ptr", "typeString": "struct Interest.Rate" }, "typeName": { "contractScope": null, "id": 3361, "name": "Interest.Rate", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 27464, "src": "1186:13:9", "typeDescriptions": { "typeIdentifier": "t_struct$_Rate_$27464_storage_ptr", "typeString": "struct Interest.Rate" } }, "value": null, "visibility": "internal" } ], "src": "1185:22:9" }, "scope": 3371, "src": "1025:258:9", "stateMutability": "view", "superFunction": 24788, "visibility": "external" } ], "scope": 3372, "src": "965:320:9" } ], "src": "595:691:9" }, "legacyAST": { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/AlwaysZeroInterestSetter.sol", "exportedSymbols": { "AlwaysZeroInterestSetter": [ 3371 ] }, "id": 3372, "nodeType": "SourceUnit", "nodes": [ { "id": 3346, "literals": [ "solidity", "^", "0.5", ".7" ], "nodeType": "PragmaDirective", "src": "595:23:9" }, { "id": 3347, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "619:33:9" }, { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol", "file": "../../protocol/interfaces/IInterestSetter.sol", "id": 3349, "nodeType": "ImportDirective", "scope": 3372, "sourceUnit": 24790, "src": "654:80:9", "symbolAliases": [ { "foreign": 3348, "local": null } ], "unitAlias": "" }, { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol", "file": "../../protocol/lib/Interest.sol", "id": 3351, "nodeType": "ImportDirective", "scope": 3372, "sourceUnit": 27751, "src": "735:59:9", "symbolAliases": [ { "foreign": 3350, "local": null } ], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3352, "name": "IInterestSetter", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 24789, "src": "1002:15:9", "typeDescriptions": { "typeIdentifier": "t_contract$_IInterestSetter_$24789", "typeString": "contract IInterestSetter" } }, "id": 3353, "nodeType": "InheritanceSpecifier", "src": "1002:15:9" } ], "contractDependencies": [ 24789 ], "contractKind": "contract", "documentation": "@title AlwaysZeroInterestSetter.sol\n@author Dolomite\n * @notice Always returns 0 for the interest rate, no matter what the state of the market is.", "fullyImplemented": true, "id": 3371, "linearizedBaseContracts": [ 3371, 24789 ], "name": "AlwaysZeroInterestSetter", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 3369, "nodeType": "Block", "src": "1212:71:9", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1264:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "expression": { "argumentTypes": null, "id": 3364, "name": "Interest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27750, "src": "1229:8:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Interest_$27750_$", "typeString": "type(library Interest)" } }, "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Rate", "nodeType": "MemberAccess", "referencedDeclaration": 27464, "src": "1229:13:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Rate_$27464_storage_ptr_$", "typeString": "type(struct Interest.Rate storage pointer)" } }, "id": 3367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "value" ], "nodeType": "FunctionCall", "src": "1229:47:9", "typeDescriptions": { "typeIdentifier": "t_struct$_Rate_$27464_memory", "typeString": "struct Interest.Rate memory" } }, "functionReturnParameters": 3363, "id": 3368, "nodeType": "Return", "src": "1222:54:9" } ] }, "documentation": null, "id": 3370, "implemented": true, "kind": "function", "modifiers": [], "name": "getInterestRate", "nodeType": "FunctionDefinition", "parameters": { "id": 3360, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3355, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1059:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3354, "name": "address", "nodeType": "ElementaryTypeName", "src": "1059:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3357, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1088:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3356, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1088:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3359, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1121:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3358, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1121:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1049:101:9" }, "returnParameters": { "id": 3363, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3362, "name": "", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1186:20:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_Rate_$27464_memory_ptr", "typeString": "struct Interest.Rate" }, "typeName": { "contractScope": null, "id": 3361, "name": "Interest.Rate", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 27464, "src": "1186:13:9", "typeDescriptions": { "typeIdentifier": "t_struct$_Rate_$27464_storage_ptr", "typeString": "struct Interest.Rate" } }, "value": null, "visibility": "internal" } ], "src": "1185:22:9" }, "scope": 3371, "src": "1025:258:9", "stateMutability": "view", "superFunction": 24788, "visibility": "external" } ], "scope": 3372, "src": "965:320:9" } ], "src": "595:691:9" }, "compiler": { "name": "solc", "version": "0.5.16+commit.9c3226ce.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.23", "updatedAt": "2025-06-22T04:01:53.495Z", "devdoc": { "author": "Dolomite", "methods": {}, "title": "AlwaysZeroInterestSetter.sol" }, "userdoc": { "methods": {}, "notice": "Always returns 0 for the interest rate, no matter what the state of the market is." } }