@tokamak-network/thanos-contracts
Version:
1 lines • 64.9 kB
JSON
{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]}],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000814000a","sourceMap":"195:6066:38:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;195:6066:38;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000814000a","sourceMap":"195:6066:38:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"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).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"shanghai\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol":"Address"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Collection of functions related to the address type","errors":{"AddressEmptyCode(address)":[{"details":"There's no code at `target` (it is not a contract)."}],"AddressInsufficientBalance(address)":[{"details":"The ETH balance of the account is not enough to perform the operation."}],"FailedInnerCall()":[{"details":"A call to an address target failed. The target may have reverted."}]}},"ast":{"absolutePath":"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol","id":48699,"exportedSymbols":{"Address":[48698]},"nodeType":"SourceUnit","src":"101:6161:38","nodes":[{"id":48447,"nodeType":"PragmaDirective","src":"101:24:38","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":48698,"nodeType":"ContractDefinition","src":"195:6066:38","nodes":[{"id":48453,"nodeType":"ErrorDefinition","src":"316:50:38","nodes":[],"documentation":{"id":48449,"nodeType":"StructuredDocumentation","src":"217:94:38","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cd786059","name":"AddressInsufficientBalance","nameLocation":"322:26:38","parameters":{"id":48452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48451,"mutability":"mutable","name":"account","nameLocation":"357:7:38","nodeType":"VariableDeclaration","scope":48453,"src":"349:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48450,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:17:38"}},{"id":48458,"nodeType":"ErrorDefinition","src":"452:39:38","nodes":[],"documentation":{"id":48454,"nodeType":"StructuredDocumentation","src":"372:75:38","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","name":"AddressEmptyCode","nameLocation":"458:16:38","parameters":{"id":48457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48456,"mutability":"mutable","name":"target","nameLocation":"483:6:38","nodeType":"VariableDeclaration","scope":48458,"src":"475:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48455,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"474:16:38"}},{"id":48461,"nodeType":"ErrorDefinition","src":"591:24:38","nodes":[],"documentation":{"id":48459,"nodeType":"StructuredDocumentation","src":"497:89:38","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"1425ea42","name":"FailedInnerCall","nameLocation":"597:15:38","parameters":{"id":48460,"nodeType":"ParameterList","parameters":[],"src":"612:2:38"}},{"id":48502,"nodeType":"FunctionDefinition","src":"1531:331:38","nodes":[],"body":{"id":48501,"nodeType":"Block","src":"1602:260:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":48471,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1624:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}],"id":48470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1616:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48469,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:38","typeDescriptions":{}}},"id":48472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1630:7:38","memberName":"balance","nodeType":"MemberAccess","src":"1616:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48474,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48466,"src":"1640:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1616:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48484,"nodeType":"IfStatement","src":"1612:109:38","trueBody":{"id":48483,"nodeType":"Block","src":"1648:73:38","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":48479,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1704:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}],"id":48478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1696:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48477,"name":"address","nodeType":"ElementaryTypeName","src":"1696:7:38","typeDescriptions":{}}},"id":48480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48476,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48453,"src":"1669:26:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":48481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1669:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48482,"nodeType":"RevertStatement","src":"1662:48:38"}]}},{"assignments":[48486,null],"declarations":[{"constant":false,"id":48486,"mutability":"mutable","name":"success","nameLocation":"1737:7:38","nodeType":"VariableDeclaration","scope":48501,"src":"1732:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48485,"name":"bool","nodeType":"ElementaryTypeName","src":"1732:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":48493,"initialValue":{"arguments":[{"hexValue":"","id":48491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1780:2:38","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":48487,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48464,"src":"1750:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":48488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1760:4:38","memberName":"call","nodeType":"MemberAccess","src":"1750:14:38","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":48490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48489,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48466,"src":"1772:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1750:29:38","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":48492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1731:52:38"},{"condition":{"id":48495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1797:8:38","subExpression":{"id":48494,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48486,"src":"1798:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48500,"nodeType":"IfStatement","src":"1793:63:38","trueBody":{"id":48499,"nodeType":"Block","src":"1807:49:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48496,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48461,"src":"1828:15:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48498,"nodeType":"RevertStatement","src":"1821:24:38"}]}}]},"documentation":{"id":48462,"nodeType":"StructuredDocumentation","src":"621:905:38","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":"1540:9:38","parameters":{"id":48467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48464,"mutability":"mutable","name":"recipient","nameLocation":"1566:9:38","nodeType":"VariableDeclaration","scope":48502,"src":"1550:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48463,"name":"address","nodeType":"ElementaryTypeName","src":"1550:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48466,"mutability":"mutable","name":"amount","nameLocation":"1585:6:38","nodeType":"VariableDeclaration","scope":48502,"src":"1577:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48465,"name":"uint256","nodeType":"ElementaryTypeName","src":"1577:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1549:43:38"},"returnParameters":{"id":48468,"nodeType":"ParameterList","parameters":[],"src":"1602:0:38"},"scope":48698,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48519,"nodeType":"FunctionDefinition","src":"2705:151:38","nodes":[],"body":{"id":48518,"nodeType":"Block","src":"2794:62:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":48513,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48505,"src":"2833:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48514,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48507,"src":"2841:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":48515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:38","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":48512,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48565,"src":"2811:21:38","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":48516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48511,"id":48517,"nodeType":"Return","src":"2804:45:38"}]},"documentation":{"id":48503,"nodeType":"StructuredDocumentation","src":"1868:832:38","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 {FailedInnerCall} 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":"2714:12:38","parameters":{"id":48508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48505,"mutability":"mutable","name":"target","nameLocation":"2735:6:38","nodeType":"VariableDeclaration","scope":48519,"src":"2727:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48504,"name":"address","nodeType":"ElementaryTypeName","src":"2727:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48507,"mutability":"mutable","name":"data","nameLocation":"2756:4:38","nodeType":"VariableDeclaration","scope":48519,"src":"2743:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48506,"name":"bytes","nodeType":"ElementaryTypeName","src":"2743:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2726:35:38"},"returnParameters":{"id":48511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48519,"src":"2780:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48509,"name":"bytes","nodeType":"ElementaryTypeName","src":"2780:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2779:14:38"},"scope":48698,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48565,"nodeType":"FunctionDefinition","src":"3180:392:38","nodes":[],"body":{"id":48564,"nodeType":"Block","src":"3293:279:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":48533,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3315:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}],"id":48532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3307:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48531,"name":"address","nodeType":"ElementaryTypeName","src":"3307:7:38","typeDescriptions":{}}},"id":48534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3307:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3321:7:38","memberName":"balance","nodeType":"MemberAccess","src":"3307:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48526,"src":"3331:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3307:29:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48546,"nodeType":"IfStatement","src":"3303:108:38","trueBody":{"id":48545,"nodeType":"Block","src":"3338:73:38","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":48541,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3394:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$48698","typeString":"library Address"}],"id":48540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3386:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48539,"name":"address","nodeType":"ElementaryTypeName","src":"3386:7:38","typeDescriptions":{}}},"id":48542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48538,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48453,"src":"3359:26:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":48543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3359:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48544,"nodeType":"RevertStatement","src":"3352:48:38"}]}},{"assignments":[48548,48550],"declarations":[{"constant":false,"id":48548,"mutability":"mutable","name":"success","nameLocation":"3426:7:38","nodeType":"VariableDeclaration","scope":48564,"src":"3421:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48547,"name":"bool","nodeType":"ElementaryTypeName","src":"3421:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48550,"mutability":"mutable","name":"returndata","nameLocation":"3448:10:38","nodeType":"VariableDeclaration","scope":48564,"src":"3435:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48549,"name":"bytes","nodeType":"ElementaryTypeName","src":"3435:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48557,"initialValue":{"arguments":[{"id":48555,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48524,"src":"3488:4:38","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":48551,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48522,"src":"3462:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3469:4:38","memberName":"call","nodeType":"MemberAccess","src":"3462:11:38","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":48554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48526,"src":"3481:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3462:25:38","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":48556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3420:73:38"},{"expression":{"arguments":[{"id":48559,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48522,"src":"3537:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48560,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"3545:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48561,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48550,"src":"3554:10:38","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":48558,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"3510:26:38","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":48562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48530,"id":48563,"nodeType":"Return","src":"3503:62:38"}]},"documentation":{"id":48520,"nodeType":"StructuredDocumentation","src":"2862:313:38","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":"3189:21:38","parameters":{"id":48527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48522,"mutability":"mutable","name":"target","nameLocation":"3219:6:38","nodeType":"VariableDeclaration","scope":48565,"src":"3211:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48521,"name":"address","nodeType":"ElementaryTypeName","src":"3211:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48524,"mutability":"mutable","name":"data","nameLocation":"3240:4:38","nodeType":"VariableDeclaration","scope":48565,"src":"3227:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48523,"name":"bytes","nodeType":"ElementaryTypeName","src":"3227:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48526,"mutability":"mutable","name":"value","nameLocation":"3254:5:38","nodeType":"VariableDeclaration","scope":48565,"src":"3246:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48525,"name":"uint256","nodeType":"ElementaryTypeName","src":"3246:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3210:50:38"},"returnParameters":{"id":48530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48565,"src":"3279:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48528,"name":"bytes","nodeType":"ElementaryTypeName","src":"3279:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3278:14:38"},"scope":48698,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48591,"nodeType":"FunctionDefinition","src":"3711:254:38","nodes":[],"body":{"id":48590,"nodeType":"Block","src":"3811:154:38","nodes":[],"statements":[{"assignments":[48576,48578],"declarations":[{"constant":false,"id":48576,"mutability":"mutable","name":"success","nameLocation":"3827:7:38","nodeType":"VariableDeclaration","scope":48590,"src":"3822:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48575,"name":"bool","nodeType":"ElementaryTypeName","src":"3822:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48578,"mutability":"mutable","name":"returndata","nameLocation":"3849:10:38","nodeType":"VariableDeclaration","scope":48590,"src":"3836:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48577,"name":"bytes","nodeType":"ElementaryTypeName","src":"3836:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48583,"initialValue":{"arguments":[{"id":48581,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48570,"src":"3881:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48579,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48568,"src":"3863:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:10:38","memberName":"staticcall","nodeType":"MemberAccess","src":"3863:17:38","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":48582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3863:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3821:65:38"},{"expression":{"arguments":[{"id":48585,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48568,"src":"3930:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48586,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48576,"src":"3938:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48587,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48578,"src":"3947:10:38","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":48584,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"3903:26:38","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":48588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48574,"id":48589,"nodeType":"Return","src":"3896:62:38"}]},"documentation":{"id":48566,"nodeType":"StructuredDocumentation","src":"3578:128:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call."},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"3720:18:38","parameters":{"id":48571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48568,"mutability":"mutable","name":"target","nameLocation":"3747:6:38","nodeType":"VariableDeclaration","scope":48591,"src":"3739:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48567,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48570,"mutability":"mutable","name":"data","nameLocation":"3768:4:38","nodeType":"VariableDeclaration","scope":48591,"src":"3755:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48569,"name":"bytes","nodeType":"ElementaryTypeName","src":"3755:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3738:35:38"},"returnParameters":{"id":48574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48591,"src":"3797:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48572,"name":"bytes","nodeType":"ElementaryTypeName","src":"3797:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3796:14:38"},"scope":48698,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48617,"nodeType":"FunctionDefinition","src":"4106:253:38","nodes":[],"body":{"id":48616,"nodeType":"Block","src":"4203:156:38","nodes":[],"statements":[{"assignments":[48602,48604],"declarations":[{"constant":false,"id":48602,"mutability":"mutable","name":"success","nameLocation":"4219:7:38","nodeType":"VariableDeclaration","scope":48616,"src":"4214:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48601,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48604,"mutability":"mutable","name":"returndata","nameLocation":"4241:10:38","nodeType":"VariableDeclaration","scope":48616,"src":"4228:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48603,"name":"bytes","nodeType":"ElementaryTypeName","src":"4228:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48609,"initialValue":{"arguments":[{"id":48607,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48596,"src":"4275:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48605,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48594,"src":"4255:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4262:12:38","memberName":"delegatecall","nodeType":"MemberAccess","src":"4255:19:38","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":48608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4255:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4213:67:38"},{"expression":{"arguments":[{"id":48611,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48594,"src":"4324:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48612,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48602,"src":"4332:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48613,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"4341:10:38","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":48610,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"4297:26:38","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":48614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48600,"id":48615,"nodeType":"Return","src":"4290:62:38"}]},"documentation":{"id":48592,"nodeType":"StructuredDocumentation","src":"3971:130:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call."},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"4115:20:38","parameters":{"id":48597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48594,"mutability":"mutable","name":"target","nameLocation":"4144:6:38","nodeType":"VariableDeclaration","scope":48617,"src":"4136:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48593,"name":"address","nodeType":"ElementaryTypeName","src":"4136:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48596,"mutability":"mutable","name":"data","nameLocation":"4165:4:38","nodeType":"VariableDeclaration","scope":48617,"src":"4152:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48595,"name":"bytes","nodeType":"ElementaryTypeName","src":"4152:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4135:35:38"},"returnParameters":{"id":48600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48617,"src":"4189:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48598,"name":"bytes","nodeType":"ElementaryTypeName","src":"4189:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4188:14:38"},"scope":48698,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48657,"nodeType":"FunctionDefinition","src":"4625:582:38","nodes":[],"body":{"id":48656,"nodeType":"Block","src":"4783:424:38","nodes":[],"statements":[{"condition":{"id":48630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4797:8:38","subExpression":{"id":48629,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48622,"src":"4798:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48654,"nodeType":"Block","src":"4857:344:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48636,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48624,"src":"5045:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:38","memberName":"length","nodeType":"MemberAccess","src":"5045:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5066:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5045:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48640,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48620,"src":"5071:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5078:4:38","memberName":"code","nodeType":"MemberAccess","src":"5071:11:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeS