{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/rightMask.sol","id":21612,"exportedSymbols":{"BYTE_TO_BITS":[21539],"rightMask":[21611]},"nodeType":"SourceUnit","src":"32:806:44","nodes":[{"id":21588,"nodeType":"PragmaDirective","src":"32:25:44","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":21590,"nodeType":"ImportDirective","src":"59:47:44","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":21612,"sourceUnit":21587,"symbolAliases":[{"foreign":{"id":21589,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"68:12:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":21611,"nodeType":"FunctionDefinition","src":"688:149:44","nodes":[],"body":{"id":21610,"nodeType":"Block","src":"755:82:44","nodes":[],"statements":[{"id":21609,"nodeType":"UncheckedBlock","src":"759:76:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":21600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"787:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":21599,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":21598,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"782:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":21601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"782:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":21602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"796:3:44","memberName":"max","nodeType":"MemberAccess","src":"782:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21603,"name":"byteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21593,"src":"804:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":21604,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"817:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"804:25:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21606,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"803:27:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"782:48:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21597,"id":21608,"nodeType":"Return","src":"775:55:44"}]}]},"documentation":{"id":21591,"nodeType":"StructuredDocumentation","src":"371:316:44","text":" @notice Computes a right-aligned byte mask based on the provided byte length.\n @dev The mask is used to extract a specified number of rightmost bytes.\n @param byteLength The number of rightmost bytes to be masked.\n @return mask A right-aligned byte mask corresponding to the specified byte length."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"rightMask","nameLocation":"697:9:44","parameters":{"id":21594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21593,"mutability":"mutable","name":"byteLength","nameLocation":"715:10:44","nodeType":"VariableDeclaration","scope":21611,"src":"707:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21592,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"706:20:44"},"returnParameters":{"id":21597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21596,"mutability":"mutable","name":"mask","nameLocation":"749:4:44","nodeType":"VariableDeclaration","scope":21611,"src":"741:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21595,"name":"uint256","nodeType":"ElementaryTypeName","src":"741:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"740:14:44"},"scope":21612,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"MIT"},"id":44}