polytone-evm 0.3.0

Core interfaces for Polytone Interchain accounts and queries.
Documentation
1
{"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":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ea9272840de458717e0185232f4d073c0b42300442c98cc5a7e3fa27a47602c364736f6c63430008180033","sourceMap":"195:6066:37:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ea9272840de458717e0185232f4d073c0b42300442c98cc5a7e3fa27a47602c364736f6c63430008180033","sourceMap":"195:6066:37:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol":"Address"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol","id":37367,"exportedSymbols":{"Address":[37366]},"nodeType":"SourceUnit","src":"101:6161:37","nodes":[{"id":37115,"nodeType":"PragmaDirective","src":"101:24:37","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":37366,"nodeType":"ContractDefinition","src":"195:6066:37","nodes":[{"id":37121,"nodeType":"ErrorDefinition","src":"316:50:37","nodes":[],"documentation":{"id":37117,"nodeType":"StructuredDocumentation","src":"217:94:37","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cd786059","name":"AddressInsufficientBalance","nameLocation":"322:26:37","parameters":{"id":37120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37119,"mutability":"mutable","name":"account","nameLocation":"357:7:37","nodeType":"VariableDeclaration","scope":37121,"src":"349:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37118,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:17:37"}},{"id":37126,"nodeType":"ErrorDefinition","src":"452:39:37","nodes":[],"documentation":{"id":37122,"nodeType":"StructuredDocumentation","src":"372:75:37","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","name":"AddressEmptyCode","nameLocation":"458:16:37","parameters":{"id":37125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37124,"mutability":"mutable","name":"target","nameLocation":"483:6:37","nodeType":"VariableDeclaration","scope":37126,"src":"475:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37123,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"474:16:37"}},{"id":37129,"nodeType":"ErrorDefinition","src":"591:24:37","nodes":[],"documentation":{"id":37127,"nodeType":"StructuredDocumentation","src":"497:89:37","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"1425ea42","name":"FailedInnerCall","nameLocation":"597:15:37","parameters":{"id":37128,"nodeType":"ParameterList","parameters":[],"src":"612:2:37"}},{"id":37170,"nodeType":"FunctionDefinition","src":"1531:331:37","nodes":[],"body":{"id":37169,"nodeType":"Block","src":"1602:260:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":37139,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1624:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}],"id":37138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1616:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37137,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:37","typeDescriptions":{}}},"id":37140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1630:7:37","memberName":"balance","nodeType":"MemberAccess","src":"1616:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37142,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37134,"src":"1640:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1616:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37152,"nodeType":"IfStatement","src":"1612:109:37","trueBody":{"id":37151,"nodeType":"Block","src":"1648:73:37","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":37147,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1704:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}],"id":37146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1696:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37145,"name":"address","nodeType":"ElementaryTypeName","src":"1696:7:37","typeDescriptions":{}}},"id":37148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37144,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37121,"src":"1669:26:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":37149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1669:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37150,"nodeType":"RevertStatement","src":"1662:48:37"}]}},{"assignments":[37154,null],"declarations":[{"constant":false,"id":37154,"mutability":"mutable","name":"success","nameLocation":"1737:7:37","nodeType":"VariableDeclaration","scope":37169,"src":"1732:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37153,"name":"bool","nodeType":"ElementaryTypeName","src":"1732:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":37161,"initialValue":{"arguments":[{"hexValue":"","id":37159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1780:2:37","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":37155,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37132,"src":"1750:9:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":37156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1760:4:37","memberName":"call","nodeType":"MemberAccess","src":"1750:14:37","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":37158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":37157,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37134,"src":"1772:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1750:29:37","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":37160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1731:52:37"},{"condition":{"id":37163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1797:8:37","subExpression":{"id":37162,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37154,"src":"1798:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37168,"nodeType":"IfStatement","src":"1793:63:37","trueBody":{"id":37167,"nodeType":"Block","src":"1807:49:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37164,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"1828:15:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37166,"nodeType":"RevertStatement","src":"1821:24:37"}]}}]},"documentation":{"id":37130,"nodeType":"StructuredDocumentation","src":"621:905:37","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:37","parameters":{"id":37135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37132,"mutability":"mutable","name":"recipient","nameLocation":"1566:9:37","nodeType":"VariableDeclaration","scope":37170,"src":"1550:25:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":37131,"name":"address","nodeType":"ElementaryTypeName","src":"1550:15:37","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":37134,"mutability":"mutable","name":"amount","nameLocation":"1585:6:37","nodeType":"VariableDeclaration","scope":37170,"src":"1577:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37133,"name":"uint256","nodeType":"ElementaryTypeName","src":"1577:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1549:43:37"},"returnParameters":{"id":37136,"nodeType":"ParameterList","parameters":[],"src":"1602:0:37"},"scope":37366,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":37187,"nodeType":"FunctionDefinition","src":"2705:151:37","nodes":[],"body":{"id":37186,"nodeType":"Block","src":"2794:62:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":37181,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37173,"src":"2833:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37182,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37175,"src":"2841:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":37183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:37","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":37180,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37233,"src":"2811:21:37","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":37184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37179,"id":37185,"nodeType":"Return","src":"2804:45:37"}]},"documentation":{"id":37171,"nodeType":"StructuredDocumentation","src":"1868:832:37","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:37","parameters":{"id":37176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37173,"mutability":"mutable","name":"target","nameLocation":"2735:6:37","nodeType":"VariableDeclaration","scope":37187,"src":"2727:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37172,"name":"address","nodeType":"ElementaryTypeName","src":"2727:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37175,"mutability":"mutable","name":"data","nameLocation":"2756:4:37","nodeType":"VariableDeclaration","scope":37187,"src":"2743:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37174,"name":"bytes","nodeType":"ElementaryTypeName","src":"2743:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2726:35:37"},"returnParameters":{"id":37179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37187,"src":"2780:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37177,"name":"bytes","nodeType":"ElementaryTypeName","src":"2780:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2779:14:37"},"scope":37366,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":37233,"nodeType":"FunctionDefinition","src":"3180:392:37","nodes":[],"body":{"id":37232,"nodeType":"Block","src":"3293:279:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":37201,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3315:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}],"id":37200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3307:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37199,"name":"address","nodeType":"ElementaryTypeName","src":"3307:7:37","typeDescriptions":{}}},"id":37202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3307:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3321:7:37","memberName":"balance","nodeType":"MemberAccess","src":"3307:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37204,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37194,"src":"3331:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3307:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37214,"nodeType":"IfStatement","src":"3303:108:37","trueBody":{"id":37213,"nodeType":"Block","src":"3338:73:37","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":37209,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3394:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$37366","typeString":"library Address"}],"id":37208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3386:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37207,"name":"address","nodeType":"ElementaryTypeName","src":"3386:7:37","typeDescriptions":{}}},"id":37210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37206,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37121,"src":"3359:26:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":37211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3359:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37212,"nodeType":"RevertStatement","src":"3352:48:37"}]}},{"assignments":[37216,37218],"declarations":[{"constant":false,"id":37216,"mutability":"mutable","name":"success","nameLocation":"3426:7:37","nodeType":"VariableDeclaration","scope":37232,"src":"3421:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37215,"name":"bool","nodeType":"ElementaryTypeName","src":"3421:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37218,"mutability":"mutable","name":"returndata","nameLocation":"3448:10:37","nodeType":"VariableDeclaration","scope":37232,"src":"3435:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37217,"name":"bytes","nodeType":"ElementaryTypeName","src":"3435:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":37225,"initialValue":{"arguments":[{"id":37223,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37192,"src":"3488:4:37","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":37219,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37190,"src":"3462:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3469:4:37","memberName":"call","nodeType":"MemberAccess","src":"3462:11:37","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":37222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":37221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37194,"src":"3481:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3462:25:37","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":37224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3420:73:37"},{"expression":{"arguments":[{"id":37227,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37190,"src":"3537:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37228,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37216,"src":"3545:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":37229,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37218,"src":"3554:10:37","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":37226,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37325,"src":"3510:26:37","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":37230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37198,"id":37231,"nodeType":"Return","src":"3503:62:37"}]},"documentation":{"id":37188,"nodeType":"StructuredDocumentation","src":"2862:313:37","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:37","parameters":{"id":37195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37190,"mutability":"mutable","name":"target","nameLocation":"3219:6:37","nodeType":"VariableDeclaration","scope":37233,"src":"3211:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37189,"name":"address","nodeType":"ElementaryTypeName","src":"3211:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37192,"mutability":"mutable","name":"data","nameLocation":"3240:4:37","nodeType":"VariableDeclaration","scope":37233,"src":"3227:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37191,"name":"bytes","nodeType":"ElementaryTypeName","src":"3227:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":37194,"mutability":"mutable","name":"value","nameLocation":"3254:5:37","nodeType":"VariableDeclaration","scope":37233,"src":"3246:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37193,"name":"uint256","nodeType":"ElementaryTypeName","src":"3246:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3210:50:37"},"returnParameters":{"id":37198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37197,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37233,"src":"3279:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37196,"name":"bytes","nodeType":"ElementaryTypeName","src":"3279:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3278:14:37"},"scope":37366,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":37259,"nodeType":"FunctionDefinition","src":"3711:254:37","nodes":[],"body":{"id":37258,"nodeType":"Block","src":"3811:154:37","nodes":[],"statements":[{"assignments":[37244,37246],"declarations":[{"constant":false,"id":37244,"mutability":"mutable","name":"success","nameLocation":"3827:7:37","nodeType":"VariableDeclaration","scope":37258,"src":"3822:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37243,"name":"bool","nodeType":"ElementaryTypeName","src":"3822:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37246,"mutability":"mutable","name":"returndata","nameLocation":"3849:10:37","nodeType":"VariableDeclaration","scope":37258,"src":"3836:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37245,"name":"bytes","nodeType":"ElementaryTypeName","src":"3836:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":37251,"initialValue":{"arguments":[{"id":37249,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37238,"src":"3881:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":37247,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37236,"src":"3863:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:10:37","memberName":"staticcall","nodeType":"MemberAccess","src":"3863:17:37","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":37250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3863:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3821:65:37"},{"expression":{"arguments":[{"id":37253,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37236,"src":"3930:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37254,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37244,"src":"3938:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":37255,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37246,"src":"3947:10:37","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":37252,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37325,"src":"3903:26:37","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":37256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37242,"id":37257,"nodeType":"Return","src":"3896:62:37"}]},"documentation":{"id":37234,"nodeType":"StructuredDocumentation","src":"3578:128:37","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:37","parameters":{"id":37239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37236,"mutability":"mutable","name":"target","nameLocation":"3747:6:37","nodeType":"VariableDeclaration","scope":37259,"src":"3739:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37235,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37238,"mutability":"mutable","name":"data","nameLocation":"3768:4:37","nodeType":"VariableDeclaration","scope":37259,"src":"3755:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37237,"name":"bytes","nodeType":"ElementaryTypeName","src":"3755:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3738:35:37"},"returnParameters":{"id":37242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37241,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37259,"src":"3797:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37240,"name":"bytes","nodeType":"ElementaryTypeName","src":"3797:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3796:14:37"},"scope":37366,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":37285,"nodeType":"FunctionDefinition","src":"4106:253:37","nodes":[],"body":{"id":37284,"nodeType":"Block","src":"4203:156:37","nodes":[],"statements":[{"assignments":[37270,37272],"declarations":[{"constant":false,"id":37270,"mutability":"mutable","name":"success","nameLocation":"4219:7:37","nodeType":"VariableDeclaration","scope":37284,"src":"4214:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37269,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37272,"mutability":"mutable","name":"returndata","nameLocation":"4241:10:37","nodeType":"VariableDeclaration","scope":37284,"src":"4228:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37271,"name":"bytes","nodeType":"ElementaryTypeName","src":"4228:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":37277,"initialValue":{"arguments":[{"id":37275,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37264,"src":"4275:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":37273,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37262,"src":"4255:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4262:12:37","memberName":"delegatecall","nodeType":"MemberAccess","src":"4255:19:37","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":37276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4255:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4213:67:37"},{"expression":{"arguments":[{"id":37279,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37262,"src":"4324:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":37280,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37270,"src":"4332:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":37281,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37272,"src":"4341:10:37","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":37278,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37325,"src":"4297:26:37","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":37282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37268,"id":37283,"nodeType":"Return","src":"4290:62:37"}]},"documentation":{"id":37260,"nodeType":"StructuredDocumentation","src":"3971:130:37","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:37","parameters":{"id":37265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37262,"mutability":"mutable","name":"target","nameLocation":"4144:6:37","nodeType":"VariableDeclaration","scope":37285,"src":"4136:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37261,"name":"address","nodeType":"ElementaryTypeName","src":"4136:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37264,"mutability":"mutable","name":"data","nameLocation":"4165:4:37","nodeType":"VariableDeclaration","scope":37285,"src":"4152:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37263,"name":"bytes","nodeType":"ElementaryTypeName","src":"4152:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4135:35:37"},"returnParameters":{"id":37268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37285,"src":"4189:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37266,"name":"bytes","nodeType":"ElementaryTypeName","src":"4189:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4188:14:37"},"scope":37366,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":37325,"nodeType":"FunctionDefinition","src":"4625:582:37","nodes":[],"body":{"id":37324,"nodeType":"Block","src":"4783:424:37","nodes":[],"statements":[{"condition":{"id":37298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4797:8:37","subExpression":{"id":37297,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37290,"src":"4798:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":37322,"nodeType":"Block","src":"4857:344:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37304,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37292,"src":"5045:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:37","memberName":"length","nodeType":"MemberAccess","src":"5045:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":37306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5066:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5045:22:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":37308,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37288,"src":"5071:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5078:4:37","memberName":"code","nodeType":"MemberAccess","src":"5071:11:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5083:6:37","memberName":"length","nodeType":"MemberAccess","src":"5071:18:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":37311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5093:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5071:23:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5045:49:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37319,"nodeType":"IfStatement","src":"5041:119:37","trueBody":{"id":37318,"nodeType":"Block","src":"5096:64:37","statements":[{"errorCall":{"arguments":[{"id":37315,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37288,"src":"5138:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37314,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37126,"src":"5121:16:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":37316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5121:24:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37317,"nodeType":"RevertStatement","src":"5114:31:37"}]}},{"expression":{"id":37320,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37292,"src":"5180:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37296,"id":37321,"nodeType":"Return","src":"5173:17:37"}]},"id":37323,"nodeType":"IfStatement","src":"4793:408:37","trueBody":{"id":37303,"nodeType":"Block","src":"4807:44:37","statements":[{"expression":{"arguments":[{"id":37300,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37292,"src":"4829:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":37299,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37365,"src":"4821:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":37301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4821:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37302,"nodeType":"ExpressionStatement","src":"4821:19:37"}]}}]},"documentation":{"id":37286,"nodeType":"StructuredDocumentation","src":"4365:255:37","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 {FailedInnerCall}) in case of an\n unsuccessful call."},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"4634:26:37","parameters":{"id":37293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37288,"mutability":"mutable","name":"target","nameLocation":"4678:6:37","nodeType":"VariableDeclaration","scope":37325,"src":"4670:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37287,"name":"address","nodeType":"ElementaryTypeName","src":"4670:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37290,"mutability":"mutable","name":"success","nameLocation":"4699:7:37","nodeType":"VariableDeclaration","scope":37325,"src":"4694:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37289,"name":"bool","nodeType":"ElementaryTypeName","src":"4694:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37292,"mutability":"mutable","name":"returndata","nameLocation":"4729:10:37","nodeType":"VariableDeclaration","scope":37325,"src":"4716:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37291,"name":"bytes","nodeType":"ElementaryTypeName","src":"4716:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4660:85:37"},"returnParameters":{"id":37296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37325,"src":"4769:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37294,"name":"bytes","nodeType":"ElementaryTypeName","src":"4769:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4768:14:37"},"scope":37366,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":37347,"nodeType":"FunctionDefinition","src":"5407:224:37","nodes":[],"body":{"id":37346,"nodeType":"Block","src":"5509:122:37","nodes":[],"statements":[{"condition":{"id":37336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5523:8:37","subExpression":{"id":37335,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37328,"src":"5524:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":37344,"nodeType":"Block","src":"5583:42:37","statements":[{"expression":{"id":37342,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37330,"src":"5604:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37334,"id":37343,"nodeType":"Return","src":"5597:17:37"}]},"id":37345,"nodeType":"IfStatement","src":"5519:106:37","trueBody":{"id":37341,"nodeType":"Block","src":"5533:44:37","statements":[{"expression":{"arguments":[{"id":37338,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37330,"src":"5555:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":37337,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37365,"src":"5547:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":37339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5547:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37340,"nodeType":"ExpressionStatement","src":"5547:19:37"}]}}]},"documentation":{"id":37326,"nodeType":"StructuredDocumentation","src":"5213:189:37","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 {FailedInnerCall} error."},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"5416:16:37","parameters":{"id":37331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37328,"mutability":"mutable","name":"success","nameLocation":"5438:7:37","nodeType":"VariableDeclaration","scope":37347,"src":"5433:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37327,"name":"bool","nodeType":"ElementaryTypeName","src":"5433:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37330,"mutability":"mutable","name":"returndata","nameLocation":"5460:10:37","nodeType":"VariableDeclaration","scope":37347,"src":"5447:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37329,"name":"bytes","nodeType":"ElementaryTypeName","src":"5447:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5432:39:37"},"returnParameters":{"id":37334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37347,"src":"5495:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37332,"name":"bytes","nodeType":"ElementaryTypeName","src":"5495:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5494:14:37"},"scope":37366,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37365,"nodeType":"FunctionDefinition","src":"5743:516:37","nodes":[],"body":{"id":37364,"nodeType":"Block","src":"5798:461:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37353,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37350,"src":"5874:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":37354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5885:6:37","memberName":"length","nodeType":"MemberAccess","src":"5874:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":37355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5894:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5874:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":37362,"nodeType":"Block","src":"6204:49:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37359,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"6225:15:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6225:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37361,"nodeType":"RevertStatement","src":"6218:24:37"}]},"id":37363,"nodeType":"IfStatement","src":"5870:383:37","trueBody":{"id":37358,"nodeType":"Block","src":"5897:301:37","statements":[{"AST":{"nativeSrc":"6055:133:37","nodeType":"YulBlock","src":"6055:133:37","statements":[{"nativeSrc":"6073:40:37","nodeType":"YulVariableDeclaration","src":"6073:40:37","value":{"arguments":[{"name":"returndata","nativeSrc":"6102:10:37","nodeType":"YulIdentifier","src":"6102:10:37"}],"functionName":{"name":"mload","nativeSrc":"6096:5:37","nodeType":"YulIdentifier","src":"6096:5:37"},"nativeSrc":"6096:17:37","nodeType":"YulFunctionCall","src":"6096:17:37"},"variables":[{"name":"returndata_size","nativeSrc":"6077:15:37","nodeType":"YulTypedName","src":"6077:15:37","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6141:2:37","nodeType":"YulLiteral","src":"6141:2:37","type":"","value":"32"},{"name":"returndata","nativeSrc":"6145:10:37","nodeType":"YulIdentifier","src":"6145:10:37"}],"functionName":{"name":"add","nativeSrc":"6137:3:37","nodeType":"YulIdentifier","src":"6137:3:37"},"nativeSrc":"6137:19:37","nodeType":"YulFunctionCall","src":"6137:19:37"},{"name":"returndata_size","nativeSrc":"6158:15:37","nodeType":"YulIdentifier","src":"6158:15:37"}],"functionName":{"name":"revert","nativeSrc":"6130:6:37","nodeType":"YulIdentifier","src":"6130:6:37"},"nativeSrc":"6130:44:37","nodeType":"YulFunctionCall","src":"6130:44:37"},"nativeSrc":"6130:44:37","nodeType":"YulExpressionStatement","src":"6130:44:37"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":37350,"isOffset":false,"isSlot":false,"src":"6102:10:37","valueSize":1},{"declaration":37350,"isOffset":false,"isSlot":false,"src":"6145:10:37","valueSize":1}],"id":37357,"nodeType":"InlineAssembly","src":"6046:142:37"}]}}]},"documentation":{"id":37348,"nodeType":"StructuredDocumentation","src":"5637:101:37","text":" @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}."},"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"5752:7:37","parameters":{"id":37351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37350,"mutability":"mutable","name":"returndata","nameLocation":"5773:10:37","nodeType":"VariableDeclaration","scope":37365,"src":"5760:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37349,"name":"bytes","nodeType":"ElementaryTypeName","src":"5760:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5759:25:37"},"returnParameters":{"id":37352,"nodeType":"ParameterList","parameters":[],"src":"5798:0:37"},"scope":37366,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":37116,"nodeType":"StructuredDocumentation","src":"127:67:37","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[37366],"name":"Address","nameLocation":"203:7:37","scope":37367,"usedErrors":[37121,37126,37129],"usedEvents":[]}],"license":"MIT"},"id":37}