{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/libraries/templates/instantiateTemplate.sol","id":177390,"exportedSymbols":{"EncodedLengths":[7251],"ResourceId":[9486],"StoreSwitch":[14558],"TemplateContent":[160540],"TemplateContentData":[157858],"TemplateTables":[162079],"instantiateTemplate":[177389]},"nodeType":"SourceUnit","src":"32:903:309","nodes":[{"id":177315,"nodeType":"PragmaDirective","src":"32:25:309","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":177317,"nodeType":"ImportDirective","src":"59:68:309","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/StoreSwitch.sol","file":"@latticexyz/store/src/StoreSwitch.sol","nameLocation":"-1:-1:-1","scope":177390,"sourceUnit":14559,"symbolAliases":[{"foreign":{"id":177316,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"68:11:309","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":177319,"nodeType":"ImportDirective","src":"128:74:309","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/EncodedLengths.sol","file":"@latticexyz/store/src/EncodedLengths.sol","nameLocation":"-1:-1:-1","scope":177390,"sourceUnit":7873,"symbolAliases":[{"foreign":{"id":177318,"name":"EncodedLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"137:14:309","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":177321,"nodeType":"ImportDirective","src":"203:66:309","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"@latticexyz/store/src/ResourceId.sol","nameLocation":"-1:-1:-1","scope":177390,"sourceUnit":9568,"symbolAliases":[{"foreign":{"id":177320,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"212:10:309","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":177325,"nodeType":"ImportDirective","src":"271:95:309","nodes":[],"absolutePath":"src/codegen/index.sol","file":"../../codegen/index.sol","nameLocation":"-1:-1:-1","scope":177390,"sourceUnit":87483,"symbolAliases":[{"foreign":{"id":177322,"name":"TemplateTables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162079,"src":"280:14:309","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":177323,"name":"TemplateContent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160540,"src":"296:15:309","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":177324,"name":"TemplateContentData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157858,"src":"313:19:309","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":177389,"nodeType":"FunctionDefinition","src":"415:519:309","nodes":[],"body":{"id":177388,"nodeType":"Block","src":"491:443:309","nodes":[],"statements":[{"assignments":[177338],"declarations":[{"constant":false,"id":177338,"mutability":"mutable","name":"tableIds","nameLocation":"512:8:309","nodeType":"VariableDeclaration","scope":177388,"src":"495:25:309","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":177336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"495:7:309","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":177337,"nodeType":"ArrayTypeName","src":"495:9:309","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":177343,"initialValue":{"arguments":[{"id":177341,"name":"templateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177328,"src":"542:10:309","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":177339,"name":"TemplateTables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162079,"src":"523:14:309","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TemplateTables_$162079_$","typeString":"type(library TemplateTables)"}},"id":177340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"538:3:309","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":160814,"src":"523:18:309","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32) view returns (bytes32[] memory)"}},"id":177342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"523:30:309","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"495:58:309"},{"body":{"id":177386,"nodeType":"Block","src":"600:332:309","statements":[{"assignments":[177356],"declarations":[{"constant":false,"id":177356,"mutability":"mutable","name":"resourceId","nameLocation":"617:10:309","nodeType":"VariableDeclaration","scope":177386,"src":"606:21:309","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":177355,"nodeType":"UserDefinedTypeName","pathNode":{"id":177354,"name":"ResourceId","nameLocations":["606:10:309"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"606:10:309"},"referencedDeclaration":9486,"src":"606:10:309","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"}],"id":177363,"initialValue":{"arguments":[{"baseExpression":{"id":177359,"name":"tableIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177338,"src":"646:8:309","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":177361,"indexExpression":{"id":177360,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177345,"src":"655:1:309","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"646:11:309","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":177357,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"630:10:309","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ResourceId_$9486_$","typeString":"type(ResourceId)"}},"id":177358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"641:4:309","memberName":"wrap","nodeType":"MemberAccess","src":"630:15:309","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ResourceId_$9486_$","typeString":"function (bytes32) pure returns (ResourceId)"}},"id":177362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"630:28:309","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"606:52:309"},{"assignments":[177366],"declarations":[{"constant":false,"id":177366,"mutability":"mutable","name":"templateContent","nameLocation":"692:15:309","nodeType":"VariableDeclaration","scope":177386,"src":"665:42:309","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TemplateContentData_$157858_memory_ptr","typeString":"struct TemplateContentData"},"typeName":{"id":177365,"nodeType":"UserDefinedTypeName","pathNode":{"id":177364,"name":"TemplateContentData","nameLocations":["665:19:309"],"nodeType":"IdentifierPath","referencedDeclaration":157858,"src":"665:19:309"},"referencedDeclaration":157858,"src":"665:19:309","typeDescriptions":{"typeIdentifier":"t_struct$_TemplateContentData_$157858_storage_ptr","typeString":"struct TemplateContentData"}},"visibility":"internal"}],"id":177372,"initialValue":{"arguments":[{"id":177369,"name":"templateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177328,"src":"730:10:309","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":177370,"name":"resourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177356,"src":"742:10:309","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}],"expression":{"id":177367,"name":"TemplateContent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160540,"src":"710:15:309","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TemplateContent_$160540_$","typeString":"type(library TemplateContent)"}},"id":177368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"726:3:309","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":159811,"src":"710:19:309","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_userDefinedValueType$_ResourceId_$9486_$returns$_t_struct$_TemplateContentData_$157858_memory_ptr_$","typeString":"function (bytes32,ResourceId) view returns (struct TemplateContentData memory)"}},"id":177371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"710:43:309","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TemplateContentData_$157858_memory_ptr","typeString":"struct TemplateContentData memory"}},"nodeType":"VariableDeclarationStatement","src":"665:88:309"},{"expression":{"arguments":[{"id":177376,"name":"resourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177356,"src":"788:10:309","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":177377,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177331,"src":"806:8:309","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":177378,"name":"templateContent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177366,"src":"822:15:309","typeDescriptions":{"typeIdentifier":"t_struct$_TemplateContentData_$157858_memory_ptr","typeString":"struct TemplateContentData memory"}},"id":177379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"838:10:309","memberName":"staticData","nodeType":"MemberAccess","referencedDeclaration":157855,"src":"822:26:309","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":177380,"name":"templateContent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177366,"src":"856:15:309","typeDescriptions":{"typeIdentifier":"t_struct$_TemplateContentData_$157858_memory_ptr","typeString":"struct TemplateContentData memory"}},"id":177381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"872:14:309","memberName":"encodedLengths","nodeType":"MemberAccess","referencedDeclaration":157853,"src":"856:30:309","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},{"expression":{"id":177382,"name":"templateContent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177366,"src":"894:15:309","typeDescriptions":{"typeIdentifier":"t_struct$_TemplateContentData_$157858_memory_ptr","typeString":"struct TemplateContentData memory"}},"id":177383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"910:11:309","memberName":"dynamicData","nodeType":"MemberAccess","referencedDeclaration":157857,"src":"894:27:309","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":177373,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"759:11:309","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreSwitch_$14558_$","typeString":"type(library StoreSwitch)"}},"id":177375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"771:9:309","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":13635,"src":"759:21:309","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,bytes memory,EncodedLengths,bytes memory)"}},"id":177384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:168:309","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":177385,"nodeType":"ExpressionStatement","src":"759:168:309"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":177350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":177347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177345,"src":"574:1:309","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":177348,"name":"tableIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177338,"src":"578:8:309","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":177349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"587:6:309","memberName":"length","nodeType":"MemberAccess","src":"578:15:309","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"574:19:309","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":177387,"initializationExpression":{"assignments":[177345],"declarations":[{"constant":false,"id":177345,"mutability":"mutable","name":"i","nameLocation":"571:1:309","nodeType":"VariableDeclaration","scope":177387,"src":"563:9:309","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":177344,"name":"uint256","nodeType":"ElementaryTypeName","src":"563:7:309","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":177346,"nodeType":"VariableDeclarationStatement","src":"563:9:309"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":177352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"595:3:309","subExpression":{"id":177351,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177345,"src":"595:1:309","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":177353,"nodeType":"ExpressionStatement","src":"595:3:309"},"nodeType":"ForStatement","src":"558:374:309"}]},"documentation":{"id":177326,"nodeType":"StructuredDocumentation","src":"368:46:309","text":" Create an instance of `templateId`."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"instantiateTemplate","nameLocation":"424:19:309","parameters":{"id":177332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":177328,"mutability":"mutable","name":"templateId","nameLocation":"452:10:309","nodeType":"VariableDeclaration","scope":177389,"src":"444:18:309","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":177327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"444:7:309","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":177331,"mutability":"mutable","name":"keyTuple","nameLocation":"481:8:309","nodeType":"VariableDeclaration","scope":177389,"src":"464:25:309","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":177329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"464:7:309","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":177330,"nodeType":"ArrayTypeName","src":"464:9:309","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"443:47:309"},"returnParameters":{"id":177333,"nodeType":"ParameterList","parameters":[],"src":"491:0:309"},"scope":177390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"license":"MIT"},"id":309}