{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220eacae22ea1c61864b0bf872dff41fae37d0ca1766e1bb4174a06da5cde01b81964736f6c634300081e0033","sourceMap":"123:5806:15:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220eacae22ea1c61864b0bf872dff41fae37d0ca1766e1bb4174a06da5cde01b81964736f6c634300081e0033","sourceMap":"123:5806:15:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LendingMath\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"\\u501f\\u8d37\\u6c60\\u6570\\u5b66\\u8ba1\\u7b97\\u5e93\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ytLending/LendingMath.sol\":\"LendingMath\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/ytLending/LendingMath.sol\":{\"keccak256\":\"0xd3efd7fa25c05629276fef9f9b51e618671b4704557fd1bcf81489af55567865\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed23a2e6dacefcfc40e5f8fc6ce41c01dfe393b0159de5698dbe9a60fe8baf51\",\"dweb:/ipfs/QmQHcWYpnEBF8wLcFB99yJbnZxuHz9PS5FjxJUga5LQdBg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ytLending/LendingMath.sol":"LendingMath"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"contracts/ytLending/LendingMath.sol":{"keccak256":"0xd3efd7fa25c05629276fef9f9b51e618671b4704557fd1bcf81489af55567865","urls":["bzz-raw://ed23a2e6dacefcfc40e5f8fc6ce41c01dfe393b0159de5698dbe9a60fe8baf51","dweb:/ipfs/QmQHcWYpnEBF8wLcFB99yJbnZxuHz9PS5FjxJUga5LQdBg"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"contracts/ytLending/LendingMath.sol","id":5988,"exportedSymbols":{"LendingMath":[5987]},"nodeType":"SourceUnit","src":"32:5899:15","nodes":[{"id":5589,"nodeType":"PragmaDirective","src":"32:23:15","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":5987,"nodeType":"ContractDefinition","src":"123:5806:15","nodes":[{"id":5593,"nodeType":"VariableDeclaration","src":"149:45:15","nodes":[],"constant":true,"mutability":"constant","name":"FACTOR_SCALE","nameLocation":"175:12:15","scope":5987,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5591,"name":"uint256","nodeType":"ElementaryTypeName","src":"149:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":5592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190:4:15","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"id":5596,"nodeType":"VariableDeclaration","src":"200:43:15","nodes":[],"constant":true,"mutability":"constant","name":"PRICE_SCALE","nameLocation":"226:11:15","scope":5987,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5594,"name":"uint256","nodeType":"ElementaryTypeName","src":"200:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"316538","id":5595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"240:3:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"value":"1e8"},"visibility":"internal"},{"id":5605,"nodeType":"VariableDeclaration","src":"249:63:15","nodes":[],"constant":true,"mutability":"constant","name":"SECONDS_PER_YEAR","nameLocation":"275:16:15","scope":5987,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5597,"name":"uint256","nodeType":"ElementaryTypeName","src":"249:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"},"id":5604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_525600_by_1","typeString":"int_const 525600"},"id":5602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_8760_by_1","typeString":"int_const 8760"},"id":5600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"333635","id":5598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294:3:15","typeDescriptions":{"typeIdentifier":"t_rational_365_by_1","typeString":"int_const 365"},"value":"365"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3234","id":5599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"300:2:15","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"294:8:15","typeDescriptions":{"typeIdentifier":"t_rational_8760_by_1","typeString":"int_const 8760"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3630","id":5601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"305:2:15","typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"294:13:15","typeDescriptions":{"typeIdentifier":"t_rational_525600_by_1","typeString":"int_const 525600"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3630","id":5603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"310:2:15","typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"294:18:15","typeDescriptions":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"}},"visibility":"internal"},{"id":5631,"nodeType":"FunctionDefinition","src":"509:172:15","nodes":[],"body":{"id":5630,"nodeType":"Block","src":"601:80:15","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5617,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5608,"src":"625:9:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"618:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5615,"name":"int256","nodeType":"ElementaryTypeName","src":"618:6:15","typeDescriptions":{}}},"id":5618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":5621,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5610,"src":"645:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"638:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5619,"name":"int256","nodeType":"ElementaryTypeName","src":"638:6:15","typeDescriptions":{}}},"id":5622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"638:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"618:33:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":5626,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"661:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"654:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5624,"name":"int256","nodeType":"ElementaryTypeName","src":"654:6:15","typeDescriptions":{}}},"id":5627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"618:56:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":5614,"id":5629,"nodeType":"Return","src":"611:63:15"}]},"documentation":{"id":5606,"nodeType":"StructuredDocumentation","src":"319:185:15","text":" @notice 将本金转换为实际余额(含利息)\n @param principal 本金(正数或负数)\n @param index 利息索引\n @return 实际余额"},"implemented":true,"kind":"function","modifiers":[],"name":"principalToBalance","nameLocation":"518:18:15","parameters":{"id":5611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5608,"mutability":"mutable","name":"principal","nameLocation":"544:9:15","nodeType":"VariableDeclaration","scope":5631,"src":"537:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5607,"name":"int104","nodeType":"ElementaryTypeName","src":"537:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"},{"constant":false,"id":5610,"mutability":"mutable","name":"index","nameLocation":"563:5:15","nodeType":"VariableDeclaration","scope":5631,"src":"555:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5609,"name":"uint256","nodeType":"ElementaryTypeName","src":"555:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"536:33:15"},"returnParameters":{"id":5614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5631,"src":"593:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5612,"name":"int256","nodeType":"ElementaryTypeName","src":"593:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"592:8:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5658,"nodeType":"FunctionDefinition","src":"864:170:15","nodes":[],"body":{"id":5657,"nodeType":"Block","src":"954:80:15","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5643,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"979:7:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":5646,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"996:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5644,"name":"int256","nodeType":"ElementaryTypeName","src":"989:6:15","typeDescriptions":{}}},"id":5647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"989:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"979:30:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":5649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"978:32:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":5652,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5636,"src":"1020:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1013:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5650,"name":"int256","nodeType":"ElementaryTypeName","src":"1013:6:15","typeDescriptions":{}}},"id":5653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1013:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"978:48:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"971:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":5641,"name":"int104","nodeType":"ElementaryTypeName","src":"971:6:15","typeDescriptions":{}}},"id":5655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"971:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"functionReturnParameters":5640,"id":5656,"nodeType":"Return","src":"964:63:15"}]},"documentation":{"id":5632,"nodeType":"StructuredDocumentation","src":"691:168:15","text":" @notice 将实际余额转换为本金\n @param balance 实际余额(正数或负数)\n @param index 利息索引\n @return 本金"},"implemented":true,"kind":"function","modifiers":[],"name":"balanceToPrincipal","nameLocation":"873:18:15","parameters":{"id":5637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5634,"mutability":"mutable","name":"balance","nameLocation":"899:7:15","nodeType":"VariableDeclaration","scope":5658,"src":"892:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5633,"name":"int256","nodeType":"ElementaryTypeName","src":"892:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":5636,"mutability":"mutable","name":"index","nameLocation":"916:5:15","nodeType":"VariableDeclaration","scope":5658,"src":"908:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5635,"name":"uint256","nodeType":"ElementaryTypeName","src":"908:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:31:15"},"returnParameters":{"id":5640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5658,"src":"946:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5638,"name":"int104","nodeType":"ElementaryTypeName","src":"946:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"945:8:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5719,"nodeType":"FunctionDefinition","src":"1181:721:15","nodes":[],"body":{"id":5718,"nodeType":"Block","src":"1294:608:15","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5670,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5663,"src":"1374:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5671,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"1389:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"1374:27:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5677,"nodeType":"IfStatement","src":"1370:46:15","trueBody":{"expression":{"components":[{"hexValue":"30","id":5673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1411:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":5674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1414:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5675,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1410:6:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":5669,"id":5676,"nodeType":"Return","src":"1403:13:15"}},{"condition":{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5678,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5663,"src":"1439:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":5679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1455:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1439:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5691,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"1600:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":5692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1616:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1600:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5715,"nodeType":"Block","src":"1750:146:15","statements":[{"expression":{"components":[{"arguments":[{"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1847:13:15","subExpression":{"id":5706,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"1848:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1839:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5704,"name":"uint104","nodeType":"ElementaryTypeName","src":"1839:7:15","typeDescriptions":{}}},"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},{"arguments":[{"id":5711,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5663,"src":"1871:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1863:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5709,"name":"uint104","nodeType":"ElementaryTypeName","src":"1863:7:15","typeDescriptions":{}}},"id":5712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}}],"id":5713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1838:47:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint104_$_t_uint104_$","typeString":"tuple(uint104,uint104)"}},"functionReturnParameters":5669,"id":5714,"nodeType":"Return","src":"1831:54:15"}]},"id":5716,"nodeType":"IfStatement","src":"1596:300:15","trueBody":{"id":5703,"nodeType":"Block","src":"1619:125:15","statements":[{"expression":{"components":[{"hexValue":"30","id":5694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1693:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5697,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5663,"src":"1704:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5698,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"1719:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"1704:27:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1696:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5695,"name":"uint104","nodeType":"ElementaryTypeName","src":"1696:7:15","typeDescriptions":{}}},"id":5700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}}],"id":5701,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1692:41:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint104_$","typeString":"tuple(int_const 0,uint104)"}},"functionReturnParameters":5669,"id":5702,"nodeType":"Return","src":"1685:48:15"}]}},"id":5717,"nodeType":"IfStatement","src":"1435:461:15","trueBody":{"id":5690,"nodeType":"Block","src":"1458:132:15","statements":[{"expression":{"components":[{"arguments":[{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5683,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5663,"src":"1547:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5684,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"1562:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"1547:27:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1539:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5681,"name":"uint104","nodeType":"ElementaryTypeName","src":"1539:7:15","typeDescriptions":{}}},"id":5686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1539:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},{"hexValue":"30","id":5687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1577:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5688,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1538:41:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint104_$_t_rational_0_by_1_$","typeString":"tuple(uint104,int_const 0)"}},"functionReturnParameters":5669,"id":5689,"nodeType":"Return","src":"1531:48:15"}]}}]},"documentation":{"id":5659,"nodeType":"StructuredDocumentation","src":"1044:132:15","text":" @notice 计算供应方本金变化和借款方本金变化\n @dev 用于 absorb 时计算账户状态变化"},"implemented":true,"kind":"function","modifiers":[],"name":"repayAndSupplyAmount","nameLocation":"1190:20:15","parameters":{"id":5664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5661,"mutability":"mutable","name":"oldPrincipal","nameLocation":"1218:12:15","nodeType":"VariableDeclaration","scope":5719,"src":"1211:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5660,"name":"int104","nodeType":"ElementaryTypeName","src":"1211:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"},{"constant":false,"id":5663,"mutability":"mutable","name":"newPrincipal","nameLocation":"1239:12:15","nodeType":"VariableDeclaration","scope":5719,"src":"1232:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5662,"name":"int104","nodeType":"ElementaryTypeName","src":"1232:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"1210:42:15"},"returnParameters":{"id":5669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5719,"src":"1276:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":5665,"name":"uint104","nodeType":"ElementaryTypeName","src":"1276:7:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"},{"constant":false,"id":5668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5719,"src":"1285:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":5667,"name":"uint104","nodeType":"ElementaryTypeName","src":"1285:7:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"1275:18:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5780,"nodeType":"FunctionDefinition","src":"2040:711:15","nodes":[],"body":{"id":5779,"nodeType":"Block","src":"2156:595:15","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5731,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5724,"src":"2236:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5732,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5722,"src":"2251:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"2236:27:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5738,"nodeType":"IfStatement","src":"2232:46:15","trueBody":{"expression":{"components":[{"hexValue":"30","id":5734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2273:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":5735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2276:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2272:6:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":5730,"id":5737,"nodeType":"Return","src":"2265:13:15"}},{"condition":{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5739,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5724,"src":"2301:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":5740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2317:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2301:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5752,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5722,"src":"2449:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":5753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2465:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2449:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5776,"nodeType":"Block","src":"2599:146:15","statements":[{"expression":{"components":[{"arguments":[{"id":5767,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5722,"src":"2696:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2688:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5765,"name":"uint104","nodeType":"ElementaryTypeName","src":"2688:7:15","typeDescriptions":{}}},"id":5768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2688:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},{"arguments":[{"id":5772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2719:13:15","subExpression":{"id":5771,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5724,"src":"2720:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2711:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5769,"name":"uint104","nodeType":"ElementaryTypeName","src":"2711:7:15","typeDescriptions":{}}},"id":5773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2711:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}}],"id":5774,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2687:47:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint104_$_t_uint104_$","typeString":"tuple(uint104,uint104)"}},"functionReturnParameters":5730,"id":5775,"nodeType":"Return","src":"2680:54:15"}]},"id":5777,"nodeType":"IfStatement","src":"2445:300:15","trueBody":{"id":5764,"nodeType":"Block","src":"2468:125:15","statements":[{"expression":{"components":[{"hexValue":"30","id":5755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2542:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5758,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5722,"src":"2553:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5759,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5724,"src":"2568:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"2553:27:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2545:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5756,"name":"uint104","nodeType":"ElementaryTypeName","src":"2545:7:15","typeDescriptions":{}}},"id":5761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2545:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}}],"id":5762,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2541:41:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint104_$","typeString":"tuple(int_const 0,uint104)"}},"functionReturnParameters":5730,"id":5763,"nodeType":"Return","src":"2534:48:15"}]}},"id":5778,"nodeType":"IfStatement","src":"2297:448:15","trueBody":{"id":5751,"nodeType":"Block","src":"2320:119:15","statements":[{"expression":{"components":[{"arguments":[{"commonType":{"typeIdentifier":"t_int104","typeString":"int104"},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5744,"name":"oldPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5722,"src":"2396:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5745,"name":"newPrincipal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5724,"src":"2411:12:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"2396:27:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int104","typeString":"int104"}],"id":5743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2388:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5742,"name":"uint104","nodeType":"ElementaryTypeName","src":"2388:7:15","typeDescriptions":{}}},"id":5747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2388:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},{"hexValue":"30","id":5748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2426:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5749,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2387:41:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint104_$_t_rational_0_by_1_$","typeString":"tuple(uint104,int_const 0)"}},"functionReturnParameters":5730,"id":5750,"nodeType":"Return","src":"2380:48:15"}]}}]},"documentation":{"id":5720,"nodeType":"StructuredDocumentation","src":"1912:123:15","text":" @notice 计算提取金额和借款金额\n @dev 用于 withdraw/borrow 时计算账户状态变化"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawAndBorrowAmount","nameLocation":"2049:23:15","parameters":{"id":5725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5722,"mutability":"mutable","name":"oldPrincipal","nameLocation":"2080:12:15","nodeType":"VariableDeclaration","scope":5780,"src":"2073:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5721,"name":"int104","nodeType":"ElementaryTypeName","src":"2073:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"},{"constant":false,"id":5724,"mutability":"mutable","name":"newPrincipal","nameLocation":"2101:12:15","nodeType":"VariableDeclaration","scope":5780,"src":"2094:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5723,"name":"int104","nodeType":"ElementaryTypeName","src":"2094:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"2072:42:15"},"returnParameters":{"id":5730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5780,"src":"2138:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":5726,"name":"uint104","nodeType":"ElementaryTypeName","src":"2138:7:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"},{"constant":false,"id":5729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5780,"src":"2147:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":5728,"name":"uint104","nodeType":"ElementaryTypeName","src":"2147:7:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"2137:18:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5807,"nodeType":"FunctionDefinition","src":"2924:211:15","nodes":[],"body":{"id":5806,"nodeType":"Block","src":"3021:114:15","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5790,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5783,"src":"3035:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3050:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3035:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5795,"nodeType":"IfStatement","src":"3031:30:15","trueBody":{"expression":{"hexValue":"30","id":5793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3060:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":5789,"id":5794,"nodeType":"Return","src":"3053:8:15"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5798,"name":"totalBorrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5785,"src":"3086:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5799,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"3100:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3086:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3085:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5802,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5783,"src":"3116:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3085:42:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3078:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5796,"name":"uint64","nodeType":"ElementaryTypeName","src":"3078:6:15","typeDescriptions":{}}},"id":5804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3078:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5789,"id":5805,"nodeType":"Return","src":"3071:57:15"}]},"documentation":{"id":5781,"nodeType":"StructuredDocumentation","src":"2757:162:15","text":" @notice 计算利用率\n @param totalSupply 总供应量\n @param totalBorrow 总借款量\n @return 利用率 (scaled by 1e18)"},"implemented":true,"kind":"function","modifiers":[],"name":"getUtilization","nameLocation":"2933:14:15","parameters":{"id":5786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5783,"mutability":"mutable","name":"totalSupply","nameLocation":"2956:11:15","nodeType":"VariableDeclaration","scope":5807,"src":"2948:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5782,"name":"uint256","nodeType":"ElementaryTypeName","src":"2948:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5785,"mutability":"mutable","name":"totalBorrow","nameLocation":"2977:11:15","nodeType":"VariableDeclaration","scope":5807,"src":"2969:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5784,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2947:42:15"},"returnParameters":{"id":5789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5807,"src":"3013:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5787,"name":"uint64","nodeType":"ElementaryTypeName","src":"3013:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3012:8:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5862,"nodeType":"FunctionDefinition","src":"3209:719:15","nodes":[],"body":{"id":5861,"nodeType":"Block","src":"3478:450:15","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5823,"name":"utilization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5810,"src":"3492:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5824,"name":"supplyKink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"3507:10:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3492:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5859,"nodeType":"Block","src":"3665:257:15","statements":[{"assignments":[5840],"declarations":[{"constant":false,"id":5840,"mutability":"mutable","name":"excessUtil","nameLocation":"3687:10:15","nodeType":"VariableDeclaration","scope":5859,"src":"3679:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5839,"name":"uint256","nodeType":"ElementaryTypeName","src":"3679:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5844,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5841,"name":"utilization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5810,"src":"3700:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5842,"name":"supplyKink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"3714:10:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3700:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3679:45:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5845,"name":"supplyPerSecondInterestRateBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"3745:31:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5846,"name":"supplyPerSecondInterestRateSlopeLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5814,"src":"3779:35:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3745:69:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5850,"name":"excessUtil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"3845:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5851,"name":"supplyPerSecondInterestRateSlopeHigh","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5816,"src":"3858:36:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3845:49:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5853,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3844:51:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5854,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"3898:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3844:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3837:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5848,"name":"uint64","nodeType":"ElementaryTypeName","src":"3837:6:15","typeDescriptions":{}}},"id":5856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3837:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3745:166:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5822,"id":5858,"nodeType":"Return","src":"3738:173:15"}]},"id":5860,"nodeType":"IfStatement","src":"3488:434:15","trueBody":{"id":5838,"nodeType":"Block","src":"3519:140:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":5836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5826,"name":"supplyPerSecondInterestRateBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"3540:31:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5829,"name":"utilization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5810,"src":"3582:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5830,"name":"supplyPerSecondInterestRateSlopeLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5814,"src":"3596:35:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3582:49:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5832,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3581:51:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5833,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"3635:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3581:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3574:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5827,"name":"uint64","nodeType":"ElementaryTypeName","src":"3574:6:15","typeDescriptions":{}}},"id":5835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3574:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3540:108:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5822,"id":5837,"nodeType":"Return","src":"3533:115:15"}]}}]},"documentation":{"id":5808,"nodeType":"StructuredDocumentation","src":"3141:63:15","text":" @notice 计算供应利率(每秒利率)"},"implemented":true,"kind":"function","modifiers":[],"name":"getSupplyRate","nameLocation":"3218:13:15","parameters":{"id":5819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5810,"mutability":"mutable","name":"utilization","nameLocation":"3249:11:15","nodeType":"VariableDeclaration","scope":5862,"src":"3241:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5809,"name":"uint256","nodeType":"ElementaryTypeName","src":"3241:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5812,"mutability":"mutable","name":"supplyKink","nameLocation":"3277:10:15","nodeType":"VariableDeclaration","scope":5862,"src":"3270:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5811,"name":"uint64","nodeType":"ElementaryTypeName","src":"3270:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5814,"mutability":"mutable","name":"supplyPerSecondInterestRateSlopeLow","nameLocation":"3304:35:15","nodeType":"VariableDeclaration","scope":5862,"src":"3297:42:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5813,"name":"uint64","nodeType":"ElementaryTypeName","src":"3297:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5816,"mutability":"mutable","name":"supplyPerSecondInterestRateSlopeHigh","nameLocation":"3356:36:15","nodeType":"VariableDeclaration","scope":5862,"src":"3349:43:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5815,"name":"uint64","nodeType":"ElementaryTypeName","src":"3349:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5818,"mutability":"mutable","name":"supplyPerSecondInterestRateBase","nameLocation":"3409:31:15","nodeType":"VariableDeclaration","scope":5862,"src":"3402:38:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5817,"name":"uint64","nodeType":"ElementaryTypeName","src":"3402:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3231:215:15"},"returnParameters":{"id":5822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5862,"src":"3470:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5820,"name":"uint64","nodeType":"ElementaryTypeName","src":"3470:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3469:8:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5917,"nodeType":"FunctionDefinition","src":"4002:719:15","nodes":[],"body":{"id":5916,"nodeType":"Block","src":"4271:450:15","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5878,"name":"utilization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5865,"src":"4285:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5879,"name":"borrowKink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"4300:10:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4285:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5914,"nodeType":"Block","src":"4458:257:15","statements":[{"assignments":[5895],"declarations":[{"constant":false,"id":5895,"mutability":"mutable","name":"excessUtil","nameLocation":"4480:10:15","nodeType":"VariableDeclaration","scope":5914,"src":"4472:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5894,"name":"uint256","nodeType":"ElementaryTypeName","src":"4472:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5899,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5896,"name":"utilization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5865,"src":"4493:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5897,"name":"borrowKink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"4507:10:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4493:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4472:45:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":5912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":5902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5900,"name":"borrowPerSecondInterestRateBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"4538:31:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5901,"name":"borrowPerSecondInterestRateSlopeLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"4572:35:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4538:69:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5905,"name":"excessUtil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"4638:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5906,"name":"borrowPerSecondInterestRateSlopeHigh","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"4651:36:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4638:49:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5908,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4637:51:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5909,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"4691:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4637:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4630:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5903,"name":"uint64","nodeType":"ElementaryTypeName","src":"4630:6:15","typeDescriptions":{}}},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4538:166:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5877,"id":5913,"nodeType":"Return","src":"4531:173:15"}]},"id":5915,"nodeType":"IfStatement","src":"4281:434:15","trueBody":{"id":5893,"nodeType":"Block","src":"4312:140:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":5891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5881,"name":"borrowPerSecondInterestRateBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"4333:31:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5884,"name":"utilization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5865,"src":"4375:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5885,"name":"borrowPerSecondInterestRateSlopeLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"4389:35:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4375:49:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5887,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4374:51:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5888,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"4428:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4374:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4367:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5882,"name":"uint64","nodeType":"ElementaryTypeName","src":"4367:6:15","typeDescriptions":{}}},"id":5890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4367:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4333:108:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5877,"id":5892,"nodeType":"Return","src":"4326:115:15"}]}}]},"documentation":{"id":5863,"nodeType":"StructuredDocumentation","src":"3934:63:15","text":" @notice 计算借款利率(每秒利率)"},"implemented":true,"kind":"function","modifiers":[],"name":"getBorrowRate","nameLocation":"4011:13:15","parameters":{"id":5874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5865,"mutability":"mutable","name":"utilization","nameLocation":"4042:11:15","nodeType":"VariableDeclaration","scope":5917,"src":"4034:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5864,"name":"uint256","nodeType":"ElementaryTypeName","src":"4034:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5867,"mutability":"mutable","name":"borrowKink","nameLocation":"4070:10:15","nodeType":"VariableDeclaration","scope":5917,"src":"4063:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5866,"name":"uint64","nodeType":"ElementaryTypeName","src":"4063:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5869,"mutability":"mutable","name":"borrowPerSecondInterestRateSlopeLow","nameLocation":"4097:35:15","nodeType":"VariableDeclaration","scope":5917,"src":"4090:42:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5868,"name":"uint64","nodeType":"ElementaryTypeName","src":"4090:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5871,"mutability":"mutable","name":"borrowPerSecondInterestRateSlopeHigh","nameLocation":"4149:36:15","nodeType":"VariableDeclaration","scope":5917,"src":"4142:43:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5870,"name":"uint64","nodeType":"ElementaryTypeName","src":"4142:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5873,"mutability":"mutable","name":"borrowPerSecondInterestRateBase","nameLocation":"4202:31:15","nodeType":"VariableDeclaration","scope":5917,"src":"4195:38:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5872,"name":"uint64","nodeType":"ElementaryTypeName","src":"4195:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4024:215:15"},"returnParameters":{"id":5877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5917,"src":"4263:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5875,"name":"uint64","nodeType":"ElementaryTypeName","src":"4263:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4262:8:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5945,"nodeType":"FunctionDefinition","src":"4971:367:15","nodes":[],"body":{"id":5944,"nodeType":"Block","src":"5123:215:15","nodes":[],"statements":[{"assignments":[5930],"declarations":[{"constant":false,"id":5930,"mutability":"mutable","name":"interestAccrued","nameLocation":"5213:15:15","nodeType":"VariableDeclaration","scope":5944,"src":"5205:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5929,"name":"uint256","nodeType":"ElementaryTypeName","src":"5205:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5939,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5931,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"5232:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5932,"name":"interestRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5922,"src":"5240:21:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5232:29:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5934,"name":"timeElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"5264:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5232:43:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5231:45:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5937,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"5279:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5231:60:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5205:86:15"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5940,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"5308:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5941,"name":"interestAccrued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5930,"src":"5316:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5308:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5928,"id":5943,"nodeType":"Return","src":"5301:30:15"}]},"documentation":{"id":5918,"nodeType":"StructuredDocumentation","src":"4727:239:15","text":" @notice 计算复利后的利息累计因子\n @param index 当前利息累计因子\n @param interestRatePerSecond 每秒利率\n @param timeElapsed 经过的秒数\n @return 新的利息累计因子"},"implemented":true,"kind":"function","modifiers":[],"name":"accrueInterest","nameLocation":"4980:14:15","parameters":{"id":5925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5920,"mutability":"mutable","name":"index","nameLocation":"5012:5:15","nodeType":"VariableDeclaration","scope":5945,"src":"5004:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5919,"name":"uint256","nodeType":"ElementaryTypeName","src":"5004:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5922,"mutability":"mutable","name":"interestRatePerSecond","nameLocation":"5034:21:15","nodeType":"VariableDeclaration","scope":5945,"src":"5027:28:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5921,"name":"uint64","nodeType":"ElementaryTypeName","src":"5027:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5924,"mutability":"mutable","name":"timeElapsed","nameLocation":"5073:11:15","nodeType":"VariableDeclaration","scope":5945,"src":"5065:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5923,"name":"uint256","nodeType":"ElementaryTypeName","src":"5065:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4994:96:15"},"returnParameters":{"id":5928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5945,"src":"5114:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5926,"name":"uint256","nodeType":"ElementaryTypeName","src":"5114:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5113:9:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5968,"nodeType":"FunctionDefinition","src":"5397:256:15","nodes":[],"body":{"id":5967,"nodeType":"Block","src":"5564:89:15","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5957,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"5582:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5958,"name":"collateralPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5950,"src":"5601:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5582:34:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5581:36:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5621:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":5962,"name":"collateralDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"5627:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5621:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5964,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5620:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5581:65:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5956,"id":5966,"nodeType":"Return","src":"5574:72:15"}]},"documentation":{"id":5946,"nodeType":"StructuredDocumentation","src":"5344:48:15","text":" @notice 计算抵押品价值"},"implemented":true,"kind":"function","modifiers":[],"name":"getCollateralValue","nameLocation":"5406:18:15","parameters":{"id":5953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5948,"mutability":"mutable","name":"collateralAmount","nameLocation":"5442:16:15","nodeType":"VariableDeclaration","scope":5968,"src":"5434:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5947,"name":"uint256","nodeType":"ElementaryTypeName","src":"5434:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5950,"mutability":"mutable","name":"collateralPrice","nameLocation":"5476:15:15","nodeType":"VariableDeclaration","scope":5968,"src":"5468:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5949,"name":"uint256","nodeType":"ElementaryTypeName","src":"5468:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5952,"mutability":"mutable","name":"collateralDecimals","nameLocation":"5507:18:15","nodeType":"VariableDeclaration","scope":5968,"src":"5501:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5951,"name":"uint8","nodeType":"ElementaryTypeName","src":"5501:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5424:107:15"},"returnParameters":{"id":5956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5968,"src":"5555:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5954,"name":"uint256","nodeType":"ElementaryTypeName","src":"5555:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5554:9:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5986,"nodeType":"FunctionDefinition","src":"5709:218:15","nodes":[],"body":{"id":5985,"nodeType":"Block","src":"5846:81:15","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5978,"name":"collateralValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5971,"src":"5864:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5979,"name":"borrowCollateralFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"5882:22:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5864:40:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5981,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5863:42:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5982,"name":"FACTOR_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"5908:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5863:57:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5977,"id":5984,"nodeType":"Return","src":"5856:64:15"}]},"documentation":{"id":5969,"nodeType":"StructuredDocumentation","src":"5659:45:15","text":" @notice 计算借款能力"},"implemented":true,"kind":"function","modifiers":[],"name":"getBorrowCapacity","nameLocation":"5718:17:15","parameters":{"id":5974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5971,"mutability":"mutable","name":"collateralValue","nameLocation":"5753:15:15","nodeType":"VariableDeclaration","scope":5986,"src":"5745:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5970,"name":"uint256","nodeType":"ElementaryTypeName","src":"5745:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5973,"mutability":"mutable","name":"borrowCollateralFactor","nameLocation":"5785:22:15","nodeType":"VariableDeclaration","scope":5986,"src":"5778:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5972,"name":"uint64","nodeType":"ElementaryTypeName","src":"5778:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5735:78:15"},"returnParameters":{"id":5977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5986,"src":"5837:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5975,"name":"uint256","nodeType":"ElementaryTypeName","src":"5837:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5836:9:15"},"scope":5987,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LendingMath","contractDependencies":[],"contractKind":"library","documentation":{"id":5590,"nodeType":"StructuredDocumentation","src":"57:65:15","text":" @title LendingMath\n @notice 借贷池数学计算库"},"fullyImplemented":true,"linearizedBaseContracts":[5987],"name":"LendingMath","nameLocation":"131:11:15","scope":5988,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":15}