1 line
62 KiB
JSON
1 line
62 KiB
JSON
{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212201f03dbb694087cbddb89d294655f8dad47d68926950d977a8885493ae20b6b0564736f6c634300081e0033","sourceMap":"233:5762:45:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212201f03dbb694087cbddb89d294655f8dad47d68926950d977a8885493ae20b6b0564736f6c634300081e0033","sourceMap":"233:5762:45:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"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\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"}],"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":{"node_modules/@openzeppelin/contracts/utils/Address.sol":"Address"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@openzeppelin/contracts/utils/Address.sol","id":13399,"exportedSymbols":{"Address":[13398],"Errors":[13450]},"nodeType":"SourceUnit","src":"101:5895:45","nodes":[{"id":13140,"nodeType":"PragmaDirective","src":"101:24:45","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":13142,"nodeType":"ImportDirective","src":"127:36:45","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/Errors.sol","file":"./Errors.sol","nameLocation":"-1:-1:-1","scope":13399,"sourceUnit":13451,"symbolAliases":[{"foreign":{"id":13141,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"135:6:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13398,"nodeType":"ContractDefinition","src":"233:5762:45","nodes":[{"id":13148,"nodeType":"ErrorDefinition","src":"335:39:45","nodes":[],"documentation":{"id":13144,"nodeType":"StructuredDocumentation","src":"255:75:45","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","name":"AddressEmptyCode","nameLocation":"341:16:45","parameters":{"id":13147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13146,"mutability":"mutable","name":"target","nameLocation":"366:6:45","nodeType":"VariableDeclaration","scope":13148,"src":"358:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13145,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"357:16:45"}},{"id":13196,"nodeType":"FunctionDefinition","src":"1290:365:45","nodes":[],"body":{"id":13195,"nodeType":"Block","src":"1361:294:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":13158,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1383:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}],"id":13157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1375:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13156,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:45","typeDescriptions":{}}},"id":13159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1375:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:7:45","memberName":"balance","nodeType":"MemberAccess","src":"1375:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13161,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13153,"src":"1399:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1375:30:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13175,"nodeType":"IfStatement","src":"1371:125:45","trueBody":{"id":13174,"nodeType":"Block","src":"1407:89:45","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":13168,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1463:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}],"id":13167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1455:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13166,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:45","typeDescriptions":{}}},"id":13169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1469:7:45","memberName":"balance","nodeType":"MemberAccess","src":"1455:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13171,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13153,"src":"1478:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13163,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"1428:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$13450_$","typeString":"type(library Errors)"}},"id":13165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1435:19:45","memberName":"InsufficientBalance","nodeType":"MemberAccess","referencedDeclaration":13438,"src":"1428:26:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":13172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1428:57:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13173,"nodeType":"RevertStatement","src":"1421:64:45"}]}},{"assignments":[13177,13179],"declarations":[{"constant":false,"id":13177,"mutability":"mutable","name":"success","nameLocation":"1512:7:45","nodeType":"VariableDeclaration","scope":13195,"src":"1507:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13176,"name":"bool","nodeType":"ElementaryTypeName","src":"1507:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13179,"mutability":"mutable","name":"returndata","nameLocation":"1534:10:45","nodeType":"VariableDeclaration","scope":13195,"src":"1521:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13178,"name":"bytes","nodeType":"ElementaryTypeName","src":"1521:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13186,"initialValue":{"arguments":[{"hexValue":"","id":13184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1578:2:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":13180,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13151,"src":"1548:9:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":13181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1558:4:45","memberName":"call","nodeType":"MemberAccess","src":"1548:14:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13182,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13153,"src":"1570:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1548:29:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":13185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1548:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1506:75:45"},{"condition":{"id":13188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1595:8:45","subExpression":{"id":13187,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13177,"src":"1596:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13194,"nodeType":"IfStatement","src":"1591:58:45","trueBody":{"id":13193,"nodeType":"Block","src":"1605:44:45","statements":[{"expression":{"arguments":[{"id":13190,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13179,"src":"1627:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13189,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13397,"src":"1619:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1619:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13192,"nodeType":"ExpressionStatement","src":"1619:19:45"}]}}]},"documentation":{"id":13149,"nodeType":"StructuredDocumentation","src":"380:905:45","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"1299:9:45","parameters":{"id":13154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13151,"mutability":"mutable","name":"recipient","nameLocation":"1325:9:45","nodeType":"VariableDeclaration","scope":13196,"src":"1309:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":13150,"name":"address","nodeType":"ElementaryTypeName","src":"1309:15:45","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":13153,"mutability":"mutable","name":"amount","nameLocation":"1344:6:45","nodeType":"VariableDeclaration","scope":13196,"src":"1336:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13152,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1308:43:45"},"returnParameters":{"id":13155,"nodeType":"ParameterList","parameters":[],"src":"1361:0:45"},"scope":13398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13213,"nodeType":"FunctionDefinition","src":"2500:151:45","nodes":[],"body":{"id":13212,"nodeType":"Block","src":"2589:62:45","nodes":[],"statements":[{"expression":{"arguments":[{"id":13207,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"2628:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13208,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13201,"src":"2636:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":13209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2642:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13206,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13263,"src":"2606:21:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":13210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:38:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13205,"id":13211,"nodeType":"Return","src":"2599:45:45"}]},"documentation":{"id":13197,"nodeType":"StructuredDocumentation","src":"1661:834:45","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {Errors.FailedCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert."},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"2509:12:45","parameters":{"id":13202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13199,"mutability":"mutable","name":"target","nameLocation":"2530:6:45","nodeType":"VariableDeclaration","scope":13213,"src":"2522:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13198,"name":"address","nodeType":"ElementaryTypeName","src":"2522:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13201,"mutability":"mutable","name":"data","nameLocation":"2551:4:45","nodeType":"VariableDeclaration","scope":13213,"src":"2538:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13200,"name":"bytes","nodeType":"ElementaryTypeName","src":"2538:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2521:35:45"},"returnParameters":{"id":13205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13213,"src":"2575:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13203,"name":"bytes","nodeType":"ElementaryTypeName","src":"2575:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2574:14:45"},"scope":13398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13263,"nodeType":"FunctionDefinition","src":"2975:407:45","nodes":[],"body":{"id":13262,"nodeType":"Block","src":"3088:294:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":13227,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3110:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}],"id":13226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3102:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13225,"name":"address","nodeType":"ElementaryTypeName","src":"3102:7:45","typeDescriptions":{}}},"id":13228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3102:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3116:7:45","memberName":"balance","nodeType":"MemberAccess","src":"3102:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13230,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13220,"src":"3126:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3102:29:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13244,"nodeType":"IfStatement","src":"3098:123:45","trueBody":{"id":13243,"nodeType":"Block","src":"3133:88:45","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":13237,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3189:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$13398","typeString":"library Address"}],"id":13236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3181:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13235,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:45","typeDescriptions":{}}},"id":13238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3181:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3195:7:45","memberName":"balance","nodeType":"MemberAccess","src":"3181:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13220,"src":"3204:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13232,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"3154:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$13450_$","typeString":"type(library Errors)"}},"id":13234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3161:19:45","memberName":"InsufficientBalance","nodeType":"MemberAccess","referencedDeclaration":13438,"src":"3154:26:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":13241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3154:56:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13242,"nodeType":"RevertStatement","src":"3147:63:45"}]}},{"assignments":[13246,13248],"declarations":[{"constant":false,"id":13246,"mutability":"mutable","name":"success","nameLocation":"3236:7:45","nodeType":"VariableDeclaration","scope":13262,"src":"3231:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13245,"name":"bool","nodeType":"ElementaryTypeName","src":"3231:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13248,"mutability":"mutable","name":"returndata","nameLocation":"3258:10:45","nodeType":"VariableDeclaration","scope":13262,"src":"3245:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13247,"name":"bytes","nodeType":"ElementaryTypeName","src":"3245:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13255,"initialValue":{"arguments":[{"id":13253,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13218,"src":"3298:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13249,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13216,"src":"3272:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3279:4:45","memberName":"call","nodeType":"MemberAccess","src":"3272:11:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":13252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13251,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13220,"src":"3291:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3272:25:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":13254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3272:31:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3230:73:45"},{"expression":{"arguments":[{"id":13257,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13216,"src":"3347:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13258,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13246,"src":"3355:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13259,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13248,"src":"3364:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13256,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13355,"src":"3320:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":13260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3320:55:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13224,"id":13261,"nodeType":"Return","src":"3313:62:45"}]},"documentation":{"id":13214,"nodeType":"StructuredDocumentation","src":"2657:313:45","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`."},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"2984:21:45","parameters":{"id":13221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13216,"mutability":"mutable","name":"target","nameLocation":"3014:6:45","nodeType":"VariableDeclaration","scope":13263,"src":"3006:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13215,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13218,"mutability":"mutable","name":"data","nameLocation":"3035:4:45","nodeType":"VariableDeclaration","scope":13263,"src":"3022:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13217,"name":"bytes","nodeType":"ElementaryTypeName","src":"3022:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13220,"mutability":"mutable","name":"value","nameLocation":"3049:5:45","nodeType":"VariableDeclaration","scope":13263,"src":"3041:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13219,"name":"uint256","nodeType":"ElementaryTypeName","src":"3041:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3005:50:45"},"returnParameters":{"id":13224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13263,"src":"3074:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13222,"name":"bytes","nodeType":"ElementaryTypeName","src":"3074:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3073:14:45"},"scope":13398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13289,"nodeType":"FunctionDefinition","src":"3521:254:45","nodes":[],"body":{"id":13288,"nodeType":"Block","src":"3621:154:45","nodes":[],"statements":[{"assignments":[13274,13276],"declarations":[{"constant":false,"id":13274,"mutability":"mutable","name":"success","nameLocation":"3637:7:45","nodeType":"VariableDeclaration","scope":13288,"src":"3632:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13273,"name":"bool","nodeType":"ElementaryTypeName","src":"3632:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13276,"mutability":"mutable","name":"returndata","nameLocation":"3659:10:45","nodeType":"VariableDeclaration","scope":13288,"src":"3646:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13275,"name":"bytes","nodeType":"ElementaryTypeName","src":"3646:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13281,"initialValue":{"arguments":[{"id":13279,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13268,"src":"3691:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13277,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13266,"src":"3673:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3680:10:45","memberName":"staticcall","nodeType":"MemberAccess","src":"3673:17:45","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3673:23:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3631:65:45"},{"expression":{"arguments":[{"id":13283,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13266,"src":"3740:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13284,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13274,"src":"3748:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13285,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13276,"src":"3757:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13282,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13355,"src":"3713:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":13286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3713:55:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13272,"id":13287,"nodeType":"Return","src":"3706:62:45"}]},"documentation":{"id":13264,"nodeType":"StructuredDocumentation","src":"3388:128:45","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call."},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"3530:18:45","parameters":{"id":13269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13266,"mutability":"mutable","name":"target","nameLocation":"3557:6:45","nodeType":"VariableDeclaration","scope":13289,"src":"3549:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13265,"name":"address","nodeType":"ElementaryTypeName","src":"3549:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13268,"mutability":"mutable","name":"data","nameLocation":"3578:4:45","nodeType":"VariableDeclaration","scope":13289,"src":"3565:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13267,"name":"bytes","nodeType":"ElementaryTypeName","src":"3565:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3548:35:45"},"returnParameters":{"id":13272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13289,"src":"3607:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13270,"name":"bytes","nodeType":"ElementaryTypeName","src":"3607:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3606:14:45"},"scope":13398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13315,"nodeType":"FunctionDefinition","src":"3916:253:45","nodes":[],"body":{"id":13314,"nodeType":"Block","src":"4013:156:45","nodes":[],"statements":[{"assignments":[13300,13302],"declarations":[{"constant":false,"id":13300,"mutability":"mutable","name":"success","nameLocation":"4029:7:45","nodeType":"VariableDeclaration","scope":13314,"src":"4024:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13299,"name":"bool","nodeType":"ElementaryTypeName","src":"4024:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13302,"mutability":"mutable","name":"returndata","nameLocation":"4051:10:45","nodeType":"VariableDeclaration","scope":13314,"src":"4038:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13301,"name":"bytes","nodeType":"ElementaryTypeName","src":"4038:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13307,"initialValue":{"arguments":[{"id":13305,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"4085:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13303,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13292,"src":"4065:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4072:12:45","memberName":"delegatecall","nodeType":"MemberAccess","src":"4065:19:45","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":13306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4065:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4023:67:45"},{"expression":{"arguments":[{"id":13309,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13292,"src":"4134:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13310,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13300,"src":"4142:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13311,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"4151:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13308,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13355,"src":"4107:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":13312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4107:55:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13298,"id":13313,"nodeType":"Return","src":"4100:62:45"}]},"documentation":{"id":13290,"nodeType":"StructuredDocumentation","src":"3781:130:45","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call."},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"3925:20:45","parameters":{"id":13295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13292,"mutability":"mutable","name":"target","nameLocation":"3954:6:45","nodeType":"VariableDeclaration","scope":13315,"src":"3946:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13291,"name":"address","nodeType":"ElementaryTypeName","src":"3946:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13294,"mutability":"mutable","name":"data","nameLocation":"3975:4:45","nodeType":"VariableDeclaration","scope":13315,"src":"3962:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13293,"name":"bytes","nodeType":"ElementaryTypeName","src":"3962:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3945:35:45"},"returnParameters":{"id":13298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13315,"src":"3999:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13296,"name":"bytes","nodeType":"ElementaryTypeName","src":"3999:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3998:14:45"},"scope":13398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13355,"nodeType":"FunctionDefinition","src":"4437:582:45","nodes":[],"body":{"id":13354,"nodeType":"Block","src":"4595:424:45","nodes":[],"statements":[{"condition":{"id":13328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4609:8:45","subExpression":{"id":13327,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13320,"src":"4610:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13352,"nodeType":"Block","src":"4669:344:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13334,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13322,"src":"4857:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4868:6:45","memberName":"length","nodeType":"MemberAccess","src":"4857:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4878:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4857:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":13338,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"4883:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4890:4:45","memberName":"code","nodeType":"MemberAccess","src":"4883:11:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":13340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4895:6:45","memberName":"length","nodeType":"MemberAccess","src":"4883:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4905:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4883:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4857:49:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13349,"nodeType":"IfStatement","src":"4853:119:45","trueBody":{"id":13348,"nodeType":"Block","src":"4908:64:45","statements":[{"errorCall":{"arguments":[{"id":13345,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"4950:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13344,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13148,"src":"4933:16:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4933:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13347,"nodeType":"RevertStatement","src":"4926:31:45"}]}},{"expression":{"id":13350,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13322,"src":"4992:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13326,"id":13351,"nodeType":"Return","src":"4985:17:45"}]},"id":13353,"nodeType":"IfStatement","src":"4605:408:45","trueBody":{"id":13333,"nodeType":"Block","src":"4619:44:45","statements":[{"expression":{"arguments":[{"id":13330,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13322,"src":"4641:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13329,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13397,"src":"4633:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13332,"nodeType":"ExpressionStatement","src":"4633:19:45"}]}}]},"documentation":{"id":13316,"nodeType":"StructuredDocumentation","src":"4175:257:45","text":" @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {Errors.FailedCall}) in case\n of an unsuccessful call."},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"4446:26:45","parameters":{"id":13323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13318,"mutability":"mutable","name":"target","nameLocation":"4490:6:45","nodeType":"VariableDeclaration","scope":13355,"src":"4482:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13317,"name":"address","nodeType":"ElementaryTypeName","src":"4482:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13320,"mutability":"mutable","name":"success","nameLocation":"4511:7:45","nodeType":"VariableDeclaration","scope":13355,"src":"4506:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13319,"name":"bool","nodeType":"ElementaryTypeName","src":"4506:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13322,"mutability":"mutable","name":"returndata","nameLocation":"4541:10:45","nodeType":"VariableDeclaration","scope":13355,"src":"4528:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13321,"name":"bytes","nodeType":"ElementaryTypeName","src":"4528:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4472:85:45"},"returnParameters":{"id":13326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13355,"src":"4581:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13324,"name":"bytes","nodeType":"ElementaryTypeName","src":"4581:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4580:14:45"},"scope":13398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13377,"nodeType":"FunctionDefinition","src":"5221:224:45","nodes":[],"body":{"id":13376,"nodeType":"Block","src":"5323:122:45","nodes":[],"statements":[{"condition":{"id":13366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5337:8:45","subExpression":{"id":13365,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13358,"src":"5338:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13374,"nodeType":"Block","src":"5397:42:45","statements":[{"expression":{"id":13372,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13360,"src":"5418:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13364,"id":13373,"nodeType":"Return","src":"5411:17:45"}]},"id":13375,"nodeType":"IfStatement","src":"5333:106:45","trueBody":{"id":13371,"nodeType":"Block","src":"5347:44:45","statements":[{"expression":{"arguments":[{"id":13368,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13360,"src":"5369:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13367,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13397,"src":"5361:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5361:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13370,"nodeType":"ExpressionStatement","src":"5361:19:45"}]}}]},"documentation":{"id":13356,"nodeType":"StructuredDocumentation","src":"5025:191:45","text":" @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {Errors.FailedCall} error."},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"5230:16:45","parameters":{"id":13361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13358,"mutability":"mutable","name":"success","nameLocation":"5252:7:45","nodeType":"VariableDeclaration","scope":13377,"src":"5247:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13357,"name":"bool","nodeType":"ElementaryTypeName","src":"5247:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13360,"mutability":"mutable","name":"returndata","nameLocation":"5274:10:45","nodeType":"VariableDeclaration","scope":13377,"src":"5261:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13359,"name":"bytes","nodeType":"ElementaryTypeName","src":"5261:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5246:39:45"},"returnParameters":{"id":13364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13377,"src":"5309:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13362,"name":"bytes","nodeType":"ElementaryTypeName","src":"5309:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5308:14:45"},"scope":13398,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":13397,"nodeType":"FunctionDefinition","src":"5559:434:45","nodes":[],"body":{"id":13396,"nodeType":"Block","src":"5614:379:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13383,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13380,"src":"5690:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":13384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5701:6:45","memberName":"length","nodeType":"MemberAccess","src":"5690:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5710:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5690:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13394,"nodeType":"Block","src":"5936:51:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13389,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"5957:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$13450_$","typeString":"type(library Errors)"}},"id":13391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5964:10:45","memberName":"FailedCall","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"5957:17:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5957:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13393,"nodeType":"RevertStatement","src":"5950:26:45"}]},"id":13395,"nodeType":"IfStatement","src":"5686:301:45","trueBody":{"id":13388,"nodeType":"Block","src":"5713:217:45","statements":[{"AST":{"nativeSrc":"5840:80:45","nodeType":"YulBlock","src":"5840:80:45","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nativeSrc":"5869:10:45","nodeType":"YulIdentifier","src":"5869:10:45"},{"kind":"number","nativeSrc":"5881:4:45","nodeType":"YulLiteral","src":"5881:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5865:3:45","nodeType":"YulIdentifier","src":"5865:3:45"},"nativeSrc":"5865:21:45","nodeType":"YulFunctionCall","src":"5865:21:45"},{"arguments":[{"name":"returndata","nativeSrc":"5894:10:45","nodeType":"YulIdentifier","src":"5894:10:45"}],"functionName":{"name":"mload","nativeSrc":"5888:5:45","nodeType":"YulIdentifier","src":"5888:5:45"},"nativeSrc":"5888:17:45","nodeType":"YulFunctionCall","src":"5888:17:45"}],"functionName":{"name":"revert","nativeSrc":"5858:6:45","nodeType":"YulIdentifier","src":"5858:6:45"},"nativeSrc":"5858:48:45","nodeType":"YulFunctionCall","src":"5858:48:45"},"nativeSrc":"5858:48:45","nodeType":"YulExpressionStatement","src":"5858:48:45"}]},"evmVersion":"prague","externalReferences":[{"declaration":13380,"isOffset":false,"isSlot":false,"src":"5869:10:45","valueSize":1},{"declaration":13380,"isOffset":false,"isSlot":false,"src":"5894:10:45","valueSize":1}],"flags":["memory-safe"],"id":13387,"nodeType":"InlineAssembly","src":"5815:105:45"}]}}]},"documentation":{"id":13378,"nodeType":"StructuredDocumentation","src":"5451:103:45","text":" @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}."},"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"5568:7:45","parameters":{"id":13381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13380,"mutability":"mutable","name":"returndata","nameLocation":"5589:10:45","nodeType":"VariableDeclaration","scope":13397,"src":"5576:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13379,"name":"bytes","nodeType":"ElementaryTypeName","src":"5576:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5575:25:45"},"returnParameters":{"id":13382,"nodeType":"ParameterList","parameters":[],"src":"5614:0:45"},"scope":13398,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":13143,"nodeType":"StructuredDocumentation","src":"165:67:45","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[13398],"name":"Address","nameLocation":"241:7:45","scope":13399,"usedErrors":[13148],"usedEvents":[]}],"license":"MIT"},"id":45} |