@tokamak-network/thanos-contracts
Version:
1 lines • 44.3 kB
JSON
{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"57:3886:49:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:3886:49;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"57:3886:49:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Safe/SafeSigners.sol\":\"SafeSigners\"},\"evmVersion\":\"cancun\",\"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\":{\"src/Safe/SafeSigners.sol\":{\"keccak256\":\"0xc3c1ece8d6cdc8587926e2c67c401ee49a9adc2fbdb983679434f07c521576b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bf9dfb2dcc579a3cb58eb307223b48e5ee42678a42a4ba4453251a6e2c25ba3\",\"dweb:/ipfs/QmUwFHA8SxsVYBigJEsZaKqPuyYgYSa5juYXWZpYwfuNVT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"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":{"src/Safe/SafeSigners.sol":"SafeSigners"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/Safe/SafeSigners.sol":{"keccak256":"0xc3c1ece8d6cdc8587926e2c67c401ee49a9adc2fbdb983679434f07c521576b5","urls":["bzz-raw://6bf9dfb2dcc579a3cb58eb307223b48e5ee42678a42a4ba4453251a6e2c25ba3","dweb:/ipfs/QmUwFHA8SxsVYBigJEsZaKqPuyYgYSa5juYXWZpYwfuNVT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/Safe/SafeSigners.sol","id":53652,"exportedSymbols":{"SafeSigners":[53651]},"nodeType":"SourceUnit","src":"32:3912:49","nodes":[{"id":53501,"nodeType":"PragmaDirective","src":"32:23:49","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53651,"nodeType":"ContractDefinition","src":"57:3886:49","nodes":[{"id":53517,"nodeType":"FunctionDefinition","src":"969:738:49","nodes":[],"body":{"id":53516,"nodeType":"Block","src":"1135:572:49","nodes":[],"statements":[{"AST":{"nativeSrc":"1154:547:49","nodeType":"YulBlock","src":"1154:547:49","statements":[{"nativeSrc":"1168:34:49","nodeType":"YulVariableDeclaration","src":"1168:34:49","value":{"arguments":[{"kind":"number","nativeSrc":"1192:4:49","nodeType":"YulLiteral","src":"1192:4:49","type":"","value":"0x41"},{"name":"pos","nativeSrc":"1198:3:49","nodeType":"YulIdentifier","src":"1198:3:49"}],"functionName":{"name":"mul","nativeSrc":"1188:3:49","nodeType":"YulIdentifier","src":"1188:3:49"},"nativeSrc":"1188:14:49","nodeType":"YulFunctionCall","src":"1188:14:49"},"variables":[{"name":"signaturePos","nativeSrc":"1172:12:49","nodeType":"YulTypedName","src":"1172:12:49","type":""}]},{"nativeSrc":"1215:52:49","nodeType":"YulAssignment","src":"1215:52:49","value":{"arguments":[{"arguments":[{"name":"signatures","nativeSrc":"1230:10:49","nodeType":"YulIdentifier","src":"1230:10:49"},{"arguments":[{"name":"signaturePos","nativeSrc":"1246:12:49","nodeType":"YulIdentifier","src":"1246:12:49"},{"kind":"number","nativeSrc":"1260:4:49","nodeType":"YulLiteral","src":"1260:4:49","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1242:3:49","nodeType":"YulIdentifier","src":"1242:3:49"},"nativeSrc":"1242:23:49","nodeType":"YulFunctionCall","src":"1242:23:49"}],"functionName":{"name":"add","nativeSrc":"1226:3:49","nodeType":"YulIdentifier","src":"1226:3:49"},"nativeSrc":"1226:40:49","nodeType":"YulFunctionCall","src":"1226:40:49"}],"functionName":{"name":"mload","nativeSrc":"1220:5:49","nodeType":"YulIdentifier","src":"1220:5:49"},"nativeSrc":"1220:47:49","nodeType":"YulFunctionCall","src":"1220:47:49"},"variableNames":[{"name":"r","nativeSrc":"1215:1:49","nodeType":"YulIdentifier","src":"1215:1:49"}]},{"nativeSrc":"1280:52:49","nodeType":"YulAssignment","src":"1280:52:49","value":{"arguments":[{"arguments":[{"name":"signatures","nativeSrc":"1295:10:49","nodeType":"YulIdentifier","src":"1295:10:49"},{"arguments":[{"name":"signaturePos","nativeSrc":"1311:12:49","nodeType":"YulIdentifier","src":"1311:12:49"},{"kind":"number","nativeSrc":"1325:4:49","nodeType":"YulLiteral","src":"1325:4:49","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"1307:3:49","nodeType":"YulIdentifier","src":"1307:3:49"},"nativeSrc":"1307:23:49","nodeType":"YulFunctionCall","src":"1307:23:49"}],"functionName":{"name":"add","nativeSrc":"1291:3:49","nodeType":"YulIdentifier","src":"1291:3:49"},"nativeSrc":"1291:40:49","nodeType":"YulFunctionCall","src":"1291:40:49"}],"functionName":{"name":"mload","nativeSrc":"1285:5:49","nodeType":"YulIdentifier","src":"1285:5:49"},"nativeSrc":"1285:47:49","nodeType":"YulFunctionCall","src":"1285:47:49"},"variableNames":[{"name":"s","nativeSrc":"1280:1:49","nodeType":"YulIdentifier","src":"1280:1:49"}]},{"nativeSrc":"1628:63:49","nodeType":"YulAssignment","src":"1628:63:49","value":{"arguments":[{"arguments":[{"arguments":[{"name":"signatures","nativeSrc":"1647:10:49","nodeType":"YulIdentifier","src":"1647:10:49"},{"arguments":[{"name":"signaturePos","nativeSrc":"1663:12:49","nodeType":"YulIdentifier","src":"1663:12:49"},{"kind":"number","nativeSrc":"1677:4:49","nodeType":"YulLiteral","src":"1677:4:49","type":"","value":"0x41"}],"functionName":{"name":"add","nativeSrc":"1659:3:49","nodeType":"YulIdentifier","src":"1659:3:49"},"nativeSrc":"1659:23:49","nodeType":"YulFunctionCall","src":"1659:23:49"}],"functionName":{"name":"add","nativeSrc":"1643:3:49","nodeType":"YulIdentifier","src":"1643:3:49"},"nativeSrc":"1643:40:49","nodeType":"YulFunctionCall","src":"1643:40:49"}],"functionName":{"name":"mload","nativeSrc":"1637:5:49","nodeType":"YulIdentifier","src":"1637:5:49"},"nativeSrc":"1637:47:49","nodeType":"YulFunctionCall","src":"1637:47:49"},{"kind":"number","nativeSrc":"1686:4:49","nodeType":"YulLiteral","src":"1686:4:49","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1633:3:49","nodeType":"YulIdentifier","src":"1633:3:49"},"nativeSrc":"1633:58:49","nodeType":"YulFunctionCall","src":"1633:58:49"},"variableNames":[{"name":"v","nativeSrc":"1628:1:49","nodeType":"YulIdentifier","src":"1628:1:49"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":53506,"isOffset":false,"isSlot":false,"src":"1198:3:49","valueSize":1},{"declaration":53511,"isOffset":false,"isSlot":false,"src":"1215:1:49","valueSize":1},{"declaration":53513,"isOffset":false,"isSlot":false,"src":"1280:1:49","valueSize":1},{"declaration":53504,"isOffset":false,"isSlot":false,"src":"1230:10:49","valueSize":1},{"declaration":53504,"isOffset":false,"isSlot":false,"src":"1295:10:49","valueSize":1},{"declaration":53504,"isOffset":false,"isSlot":false,"src":"1647:10:49","valueSize":1},{"declaration":53509,"isOffset":false,"isSlot":false,"src":"1628:1:49","valueSize":1}],"id":53515,"nodeType":"InlineAssembly","src":"1145:556:49"}]},"documentation":{"id":53502,"nodeType":"StructuredDocumentation","src":"83:881:49","text":"@notice Splits signature bytes into `uint8 v, bytes32 r, bytes32 s`.\n Copied directly from\n https://github.com/safe-global/safe-contracts/blob/e870f514ad34cd9654c72174d6d4a839e3c6639f/contracts/common/SignatureDecoder.sol\n @dev Make sure to perform a bounds check for @param pos, to avoid out of bounds access on @param signatures\n The signature format is a compact form of {bytes32 r}{bytes32 s}{uint8 v}\n Compact means uint8 is not padded to 32 bytes.\n @param pos Which signature to read.\n A prior bounds check of this parameter should be performed, to avoid out of bounds access.\n @param signatures Concatenated {r, s, v} signatures.\n @return v Recovery ID or Safe signature type.\n @return r Output value r of the signature.\n @return s Output value s of the signature."},"implemented":true,"kind":"function","modifiers":[],"name":"signatureSplit","nameLocation":"978:14:49","parameters":{"id":53507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53504,"mutability":"mutable","name":"signatures","nameLocation":"1015:10:49","nodeType":"VariableDeclaration","scope":53517,"src":"1002:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53503,"name":"bytes","nodeType":"ElementaryTypeName","src":"1002:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":53506,"mutability":"mutable","name":"pos","nameLocation":"1043:3:49","nodeType":"VariableDeclaration","scope":53517,"src":"1035:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"992:60:49"},"returnParameters":{"id":53514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53509,"mutability":"mutable","name":"v","nameLocation":"1106:1:49","nodeType":"VariableDeclaration","scope":53517,"src":"1100:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53508,"name":"uint8","nodeType":"ElementaryTypeName","src":"1100:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53511,"mutability":"mutable","name":"r","nameLocation":"1117:1:49","nodeType":"VariableDeclaration","scope":53517,"src":"1109:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":53513,"mutability":"mutable","name":"s","nameLocation":"1128:1:49","nodeType":"VariableDeclaration","scope":53517,"src":"1120:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1120:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1099:31:49"},"scope":53651,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":53650,"nodeType":"FunctionDefinition","src":"2245:1696:49","nodes":[],"body":{"id":53649,"nodeType":"Block","src":"2444:1497:49","nodes":[],"statements":[{"expression":{"id":53536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53530,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53528,"src":"2454:7:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53534,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53524,"src":"2478:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2464:13:49","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53531,"name":"address","nodeType":"ElementaryTypeName","src":"2468:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53532,"nodeType":"ArrayTypeName","src":"2468:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2464:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2454:43:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53537,"nodeType":"ExpressionStatement","src":"2454:43:49"},{"assignments":[53539],"declarations":[{"constant":false,"id":53539,"mutability":"mutable","name":"currentOwner","nameLocation":"2516:12:49","nodeType":"VariableDeclaration","scope":53649,"src":"2508:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53538,"name":"address","nodeType":"ElementaryTypeName","src":"2508:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":53540,"nodeType":"VariableDeclarationStatement","src":"2508:20:49"},{"assignments":[53542],"declarations":[{"constant":false,"id":53542,"mutability":"mutable","name":"v","nameLocation":"2544:1:49","nodeType":"VariableDeclaration","scope":53649,"src":"2538:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53541,"name":"uint8","nodeType":"ElementaryTypeName","src":"2538:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":53543,"nodeType":"VariableDeclarationStatement","src":"2538:7:49"},{"assignments":[53545],"declarations":[{"constant":false,"id":53545,"mutability":"mutable","name":"r","nameLocation":"2563:1:49","nodeType":"VariableDeclaration","scope":53649,"src":"2555:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2555:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53546,"nodeType":"VariableDeclarationStatement","src":"2555:9:49"},{"assignments":[53548],"declarations":[{"constant":false,"id":53548,"mutability":"mutable","name":"s","nameLocation":"2582:1:49","nodeType":"VariableDeclaration","scope":53649,"src":"2574:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2574:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53549,"nodeType":"VariableDeclarationStatement","src":"2574:9:49"},{"assignments":[53551],"declarations":[{"constant":false,"id":53551,"mutability":"mutable","name":"i","nameLocation":"2601:1:49","nodeType":"VariableDeclaration","scope":53649,"src":"2593:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53550,"name":"uint256","nodeType":"ElementaryTypeName","src":"2593:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53552,"nodeType":"VariableDeclarationStatement","src":"2593:9:49"},{"body":{"id":53647,"nodeType":"Block","src":"2653:1282:49","statements":[{"expression":{"id":53571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":53563,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53542,"src":"2668:1:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53564,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53545,"src":"2671:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53565,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53548,"src":"2674:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":53566,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2667:9:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53568,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53522,"src":"2694:10:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":53569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53551,"src":"2706:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53567,"name":"signatureSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53517,"src":"2679:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)"}},"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2679:29:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"src":"2667:41:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53572,"nodeType":"ExpressionStatement","src":"2667:41:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":53575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53573,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53542,"src":"2726:1:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2731:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2726:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":53592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53590,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53542,"src":"2980:1:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":53591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2985:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2980:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":53609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53607,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53542,"src":"3226:1:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3330","id":53608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3230:2:49","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"3226:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53637,"nodeType":"Block","src":"3660:226:49","statements":[{"expression":{"id":53635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53628,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53539,"src":"3828:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53630,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"3853:8:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53631,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53542,"src":"3863:1:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53632,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53545,"src":"3866:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53633,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53548,"src":"3869:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53629,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"3843:9:49","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":53634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3828:43:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53636,"nodeType":"ExpressionStatement","src":"3828:43:49"}]},"id":53638,"nodeType":"IfStatement","src":"3222:664:49","trueBody":{"id":53627,"nodeType":"Block","src":"3234:420:49","statements":[{"expression":{"id":53625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53610,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53539,"src":"3507:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":53615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3579:34:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},"value":"\u0019Ethereum Signed Message:\n32"},{"id":53616,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"3615:8:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53613,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3562:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3566:12:49","memberName":"encodePacked","nodeType":"MemberAccess","src":"3562:16:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3562:62:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53612,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3552:9:49","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3552:73:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":53621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53619,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53542,"src":"3627:1:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3631:1:49","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3627:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53622,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53545,"src":"3634:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53623,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53548,"src":"3637:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53611,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"3542:9:49","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":53624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3542:97:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3507:132:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53626,"nodeType":"ExpressionStatement","src":"3507:132:49"}]}},"id":53639,"nodeType":"IfStatement","src":"2976:910:49","trueBody":{"id":53606,"nodeType":"Block","src":"2988:228:49","statements":[{"expression":{"id":53604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53593,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53539,"src":"3158:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":53600,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53545,"src":"3197:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3189:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":53598,"name":"uint256","nodeType":"ElementaryTypeName","src":"3189:7:49","typeDescriptions":{}}},"id":53601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3189:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3181:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":53596,"name":"uint160","nodeType":"ElementaryTypeName","src":"3181:7:49","typeDescriptions":{}}},"id":53602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3181:19:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":53595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3173:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53594,"name":"address","nodeType":"ElementaryTypeName","src":"3173:7:49","typeDescriptions":{}}},"id":53603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3173:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3158:43:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53605,"nodeType":"ExpressionStatement","src":"3158:43:49"}]}},"id":53640,"nodeType":"IfStatement","src":"2722:1164:49","trueBody":{"id":53589,"nodeType":"Block","src":"2734:236:49","statements":[{"expression":{"id":53587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53576,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53539,"src":"2912:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":53583,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53545,"src":"2951:1:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2943:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":53581,"name":"uint256","nodeType":"ElementaryTypeName","src":"2943:7:49","typeDescriptions":{}}},"id":53584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2943:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2935:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":53579,"name":"uint160","nodeType":"ElementaryTypeName","src":"2935:7:49","typeDescriptions":{}}},"id":53585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2935:19:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":53578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2927:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53577,"name":"address","nodeType":"ElementaryTypeName","src":"2927:7:49","typeDescriptions":{}}},"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2927:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2912:43:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53588,"nodeType":"ExpressionStatement","src":"2912:43:49"}]}},{"expression":{"id":53645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53641,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53528,"src":"3899:7:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53643,"indexExpression":{"id":53642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53551,"src":"3907:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3899:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53644,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53539,"src":"3912:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3899:25:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53646,"nodeType":"ExpressionStatement","src":"3899:25:49"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53557,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53551,"src":"2624:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53558,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53524,"src":"2628:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2624:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53648,"initializationExpression":{"expression":{"id":53555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53553,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53551,"src":"2617:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":53554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2621:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2617:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53556,"nodeType":"ExpressionStatement","src":"2617:5:49"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2648:3:49","subExpression":{"id":53560,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53551,"src":"2648:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53562,"nodeType":"ExpressionStatement","src":"2648:3:49"},"nodeType":"ForStatement","src":"2612:1323:49"}]},"documentation":{"id":53518,"nodeType":"StructuredDocumentation","src":"1713:527:49","text":"@notice Extract the signers from a set of signatures.\n This method is based closely on the code in the Safe.checkNSignatures() method.\n https://github.com/safe-global/safe-contracts/blob/e870f514ad34cd9654c72174d6d4a839e3c6639f/contracts/Safe.sol#L274\n It has been modified by removing all signature _validation_ code. We trust the Safe to properly validate\n the signatures.\n This method therefore simply extracts the addresses from the signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"getNSigners","nameLocation":"2254:11:49","parameters":{"id":53525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"dataHash","nameLocation":"2283:8:49","nodeType":"VariableDeclaration","scope":53650,"src":"2275:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2275:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":53522,"mutability":"mutable","name":"signatures","nameLocation":"2314:10:49","nodeType":"VariableDeclaration","scope":53650,"src":"2301:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53521,"name":"bytes","nodeType":"ElementaryTypeName","src":"2301:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":53524,"mutability":"mutable","name":"requiredSignatures","nameLocation":"2342:18:49","nodeType":"VariableDeclaration","scope":53650,"src":"2334:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53523,"name":"uint256","nodeType":"ElementaryTypeName","src":"2334:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2265:101:49"},"returnParameters":{"id":53529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53528,"mutability":"mutable","name":"_owners","nameLocation":"2431:7:49","nodeType":"VariableDeclaration","scope":53650,"src":"2414:24:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53526,"name":"address","nodeType":"ElementaryTypeName","src":"2414:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53527,"nodeType":"ArrayTypeName","src":"2414:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2413:26:49"},"scope":53651,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeSigners","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[53651],"name":"SafeSigners","nameLocation":"65:11:49","scope":53652,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":49}