{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/libraries/LibTemplate.sol","id":176616,"exportedSymbols":{"IStore":[8658],"LastAction":[111594],"OwnedBy":[146308],"Position":[148876],"PositionData":[147750],"createMatchEntity":[171230],"entityToKeyTuple":[176752],"instantiateTemplate":[177389],"setPosition":[175673],"spawnTemplateAt":[176615]},"nodeType":"SourceUnit","src":"38:847:303","nodes":[{"id":176546,"nodeType":"PragmaDirective","src":"38:25:303","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":176548,"nodeType":"ImportDirective","src":"65:58:303","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/IStore.sol","file":"@latticexyz/store/src/IStore.sol","nameLocation":"-1:-1:-1","scope":176616,"sourceUnit":8659,"symbolAliases":[{"foreign":{"id":176547,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"74:6:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":176553,"nodeType":"ImportDirective","src":"125:83:303","nodes":[],"absolutePath":"src/codegen/index.sol","file":"../codegen/index.sol","nameLocation":"-1:-1:-1","scope":176616,"sourceUnit":87483,"symbolAliases":[{"foreign":{"id":176549,"name":"LastAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111594,"src":"134:10:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":176550,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148876,"src":"146:8:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":176551,"name":"PositionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147750,"src":"156:12:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":176552,"name":"OwnedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146308,"src":"170:7:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":176555,"nodeType":"ImportDirective","src":"209:74:303","nodes":[],"absolutePath":"src/libraries/templates/instantiateTemplate.sol","file":"./templates/instantiateTemplate.sol","nameLocation":"-1:-1:-1","scope":176616,"sourceUnit":177390,"symbolAliases":[{"foreign":{"id":176554,"name":"instantiateTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177389,"src":"218:19:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":176557,"nodeType":"ImportDirective","src":"284:50:303","nodes":[],"absolutePath":"src/libraries/LibUtils.sol","file":"./LibUtils.sol","nameLocation":"-1:-1:-1","scope":176616,"sourceUnit":177026,"symbolAliases":[{"foreign":{"id":176556,"name":"entityToKeyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176752,"src":"293:16:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":176559,"nodeType":"ImportDirective","src":"335:61:303","nodes":[],"absolutePath":"src/createMatchEntity.sol","file":"../createMatchEntity.sol","nameLocation":"-1:-1:-1","scope":176616,"sourceUnit":171231,"symbolAliases":[{"foreign":{"id":176558,"name":"createMatchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171230,"src":"344:17:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":176561,"nodeType":"ImportDirective","src":"397:48:303","nodes":[],"absolutePath":"src/libraries/LibPosition.sol","file":"./LibPosition.sol","nameLocation":"-1:-1:-1","scope":176616,"sourceUnit":175694,"symbolAliases":[{"foreign":{"id":176560,"name":"setPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175673,"src":"406:11:303","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":176615,"nodeType":"FunctionDefinition","src":"447:437:303","nodes":[],"body":{"id":176614,"nodeType":"Block","src":"596:288:303","nodes":[],"statements":[{"expression":{"id":176579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":176575,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176573,"src":"600:6:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":176577,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176563,"src":"627:11:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":176576,"name":"createMatchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171230,"src":"609:17:303","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) returns (bytes32)"}},"id":176578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"609:30:303","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"600:39:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":176580,"nodeType":"ExpressionStatement","src":"600:39:303"},{"expression":{"arguments":[{"id":176582,"name":"prototypeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176565,"src":"664:11:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":176584,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176563,"src":"694:11:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":176585,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176573,"src":"707:6:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":176583,"name":"entityToKeyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176752,"src":"677:16:303","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32,bytes32) pure returns (bytes32[] memory)"}},"id":176586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"677:37:303","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":176581,"name":"instantiateTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177389,"src":"644:19:303","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32[] memory)"}},"id":176587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"644:71:303","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":176588,"nodeType":"ExpressionStatement","src":"644:71:303"},{"expression":{"arguments":[{"id":176590,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176563,"src":"732:11:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":176591,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176573,"src":"745:6:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":176592,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176570,"src":"753:8:303","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}],"id":176589,"name":"setPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175673,"src":"720:11:303","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_struct$_PositionData_$147750_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,struct PositionData memory)"}},"id":176593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"720:42:303","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":176594,"nodeType":"ExpressionStatement","src":"720:42:303"},{"expression":{"arguments":[{"id":176598,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176563,"src":"781:11:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":176599,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176573,"src":"794:6:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":176600,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"802:5:303","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":176601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"808:9:303","memberName":"timestamp","nodeType":"MemberAccess","src":"802:15:303","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":176595,"name":"LastAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111594,"src":"766:10:303","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LastAction_$111594_$","typeString":"type(library LastAction)"}},"id":176597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"777:3:303","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":111383,"src":"766:14:303","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,bytes32,uint256)"}},"id":176602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"766:52:303","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":176603,"nodeType":"ExpressionStatement","src":"766:52:303"},{"expression":{"arguments":[{"id":176607,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176563,"src":"834:11:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":176608,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176573,"src":"847:6:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":176609,"name":"ownerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176567,"src":"855:7:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":176604,"name":"OwnedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146308,"src":"822:7:303","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OwnedBy_$146308_$","typeString":"type(library OwnedBy)"}},"id":176606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:3:303","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":146097,"src":"822:11:303","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":176610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"822:41:303","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":176611,"nodeType":"ExpressionStatement","src":"822:41:303"},{"expression":{"id":176612,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176573,"src":"875:6:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":176574,"id":176613,"nodeType":"Return","src":"868:13:303"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"spawnTemplateAt","nameLocation":"456:15:303","parameters":{"id":176571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":176563,"mutability":"mutable","name":"matchEntity","nameLocation":"483:11:303","nodeType":"VariableDeclaration","scope":176615,"src":"475:19:303","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":176562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"475:7:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":176565,"mutability":"mutable","name":"prototypeId","nameLocation":"506:11:303","nodeType":"VariableDeclaration","scope":176615,"src":"498:19:303","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":176564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"498:7:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":176567,"mutability":"mutable","name":"ownerId","nameLocation":"529:7:303","nodeType":"VariableDeclaration","scope":176615,"src":"521:15:303","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":176566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"521:7:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":176570,"mutability":"mutable","name":"position","nameLocation":"560:8:303","nodeType":"VariableDeclaration","scope":176615,"src":"540:28:303","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData"},"typeName":{"id":176569,"nodeType":"UserDefinedTypeName","pathNode":{"id":176568,"name":"PositionData","nameLocations":["540:12:303"],"nodeType":"IdentifierPath","referencedDeclaration":147750,"src":"540:12:303"},"referencedDeclaration":147750,"src":"540:12:303","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_storage_ptr","typeString":"struct PositionData"}},"visibility":"internal"}],"src":"471:99:303"},"returnParameters":{"id":176574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":176573,"mutability":"mutable","name":"entity","nameLocation":"588:6:303","nodeType":"VariableDeclaration","scope":176615,"src":"580:14:303","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":176572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"580:7:303","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"579:16:303"},"scope":176616,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"license":"Unlicense"},"id":303}