UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 13.3 kB
{"abi":[],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50601580601a5f395ff3fe60806040525f80fdfea164736f6c6343000814000a","sourceMap":"199:1374:50:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525f80fdfea164736f6c6343000814000a","sourceMap":"199:1374:50:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - <richard@gnosis.pm>\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SignatureDecoder - Decodes signatures that a encoded as bytes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":\"SignatureDecoder\"},\"evmVersion\":\"shanghai\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2d37be182472ccfee62a33e9939f9b3d509be4c32e9fdebc2c1746c573655987\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f76d96f10640beee7d4b4ad119bd3c64aeb26929011d9c1eec738c63ebc92f63\",\"dweb:/ipfs/QmaqgDocQumKeyUMgZU7STzpTASQjDbUxbQKuZ17xhLaXz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"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":{"lib/safe-contracts/contracts/common/SignatureDecoder.sol":"SignatureDecoder"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/safe-contracts/contracts/common/SignatureDecoder.sol":{"keccak256":"0x2d37be182472ccfee62a33e9939f9b3d509be4c32e9fdebc2c1746c573655987","urls":["bzz-raw://f76d96f10640beee7d4b4ad119bd3c64aeb26929011d9c1eec738c63ebc92f63","dweb:/ipfs/QmaqgDocQumKeyUMgZU7STzpTASQjDbUxbQKuZ17xhLaXz"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - <richard@gnosis.pm>","title":"SignatureDecoder - Decodes signatures that a encoded as bytes"},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/SignatureDecoder.sol","id":50903,"exportedSymbols":{"SignatureDecoder":[50902]},"nodeType":"SourceUnit","src":"42:1532:50","nodes":[{"id":50884,"nodeType":"PragmaDirective","src":"42:31:50","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":50902,"nodeType":"ContractDefinition","src":"199:1374:50","nodes":[{"id":50901,"nodeType":"FunctionDefinition","src":"612:959:50","nodes":[],"body":{"id":50900,"nodeType":"Block","src":"802:769:50","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1035:530:50","statements":[{"nodeType":"YulVariableDeclaration","src":"1049:34:50","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1073:4:50","type":"","value":"0x41"},{"name":"pos","nodeType":"YulIdentifier","src":"1079:3:50"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1069:3:50"},"nodeType":"YulFunctionCall","src":"1069:14:50"},"variables":[{"name":"signaturePos","nodeType":"YulTypedName","src":"1053:12:50","type":""}]},{"nodeType":"YulAssignment","src":"1096:52:50","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1111:10:50"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1127:12:50"},{"kind":"number","nodeType":"YulLiteral","src":"1141:4:50","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1123:3:50"},"nodeType":"YulFunctionCall","src":"1123:23:50"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1107:3:50"},"nodeType":"YulFunctionCall","src":"1107:40:50"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1101:5:50"},"nodeType":"YulFunctionCall","src":"1101:47:50"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1096:1:50"}]},{"nodeType":"YulAssignment","src":"1161:52:50","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1176:10:50"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1192:12:50"},{"kind":"number","nodeType":"YulLiteral","src":"1206:4:50","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1188:3:50"},"nodeType":"YulFunctionCall","src":"1188:23:50"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1172:3:50"},"nodeType":"YulFunctionCall","src":"1172:40:50"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1166:5:50"},"nodeType":"YulFunctionCall","src":"1166:47:50"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"1161:1:50"}]},{"nodeType":"YulAssignment","src":"1492:63:50","value":{"arguments":[{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1511:10:50"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1527:12:50"},{"kind":"number","nodeType":"YulLiteral","src":"1541:4:50","type":"","value":"0x41"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1523:3:50"},"nodeType":"YulFunctionCall","src":"1523:23:50"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1507:3:50"},"nodeType":"YulFunctionCall","src":"1507:40:50"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1501:5:50"},"nodeType":"YulFunctionCall","src":"1501:47:50"},{"kind":"number","nodeType":"YulLiteral","src":"1550:4:50","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1497:3:50"},"nodeType":"YulFunctionCall","src":"1497:58:50"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"1492:1:50"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":50890,"isOffset":false,"isSlot":false,"src":"1079:3:50","valueSize":1},{"declaration":50895,"isOffset":false,"isSlot":false,"src":"1096:1:50","valueSize":1},{"declaration":50897,"isOffset":false,"isSlot":false,"src":"1161:1:50","valueSize":1},{"declaration":50888,"isOffset":false,"isSlot":false,"src":"1111:10:50","valueSize":1},{"declaration":50888,"isOffset":false,"isSlot":false,"src":"1176:10:50","valueSize":1},{"declaration":50888,"isOffset":false,"isSlot":false,"src":"1511:10:50","valueSize":1},{"declaration":50893,"isOffset":false,"isSlot":false,"src":"1492:1:50","valueSize":1}],"id":50899,"nodeType":"InlineAssembly","src":"1026:539:50"}]},"documentation":{"id":50886,"nodeType":"StructuredDocumentation","src":"231:376:50","text":"@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`.\n @notice Make sure to peform a bounds check for @param pos, to avoid out of bounds access on @param signatures\n @param pos which signature to read. A prior bounds check of this parameter should be performed, to avoid out of bounds access\n @param signatures concatenated rsv signatures"},"implemented":true,"kind":"function","modifiers":[],"name":"signatureSplit","nameLocation":"621:14:50","parameters":{"id":50891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50888,"mutability":"mutable","name":"signatures","nameLocation":"649:10:50","nodeType":"VariableDeclaration","scope":50901,"src":"636:23:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":50887,"name":"bytes","nodeType":"ElementaryTypeName","src":"636:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":50890,"mutability":"mutable","name":"pos","nameLocation":"669:3:50","nodeType":"VariableDeclaration","scope":50901,"src":"661:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50889,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"635:38:50"},"returnParameters":{"id":50898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50893,"mutability":"mutable","name":"v","nameLocation":"740:1:50","nodeType":"VariableDeclaration","scope":50901,"src":"734:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":50892,"name":"uint8","nodeType":"ElementaryTypeName","src":"734:5:50","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":50895,"mutability":"mutable","name":"r","nameLocation":"763:1:50","nodeType":"VariableDeclaration","scope":50901,"src":"755:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"755:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50897,"mutability":"mutable","name":"s","nameLocation":"786:1:50","nodeType":"VariableDeclaration","scope":50901,"src":"778:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"778:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"720:77:50"},"scope":50902,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignatureDecoder","contractDependencies":[],"contractKind":"contract","documentation":{"id":50885,"nodeType":"StructuredDocumentation","src":"75:124:50","text":"@title SignatureDecoder - Decodes signatures that a encoded as bytes\n @author Richard Meissner - <richard@gnosis.pm>"},"fullyImplemented":true,"linearizedBaseContracts":[50902],"name":"SignatureDecoder","nameLocation":"208:16:50","scope":50903,"usedErrors":[],"usedEvents":[]}],"license":"LGPL-3.0-only"},"id":50}