{"abi":[{"type":"function","name":"onAfterDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"error","name":"StoreHook_NotImplemented","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":"83b5c95b","onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"5b28cdaf","onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"63584533","onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"a8ba8721","onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":"9faeaf45","onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"57066c9c","onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"55eb5a28","onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"964f667d","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"StoreHook_NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onBeforeDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onBeforeSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"kind\":\"dev\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record was deleted.\"}},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record was set.\"}},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes deleted in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data was spliced.\"}},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data was spliced.\"}},\"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)\":{\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is to be deleted.\"}},\"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is to be set.\"}},\"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data to be inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}}},\"title\":\"IStoreHook\",\"version\":1},\"userdoc\":{\"errors\":{\"StoreHook_NotImplemented()\":[{\"notice\":\"Error emitted when a function is not implemented.\"}]},\"kind\":\"user\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Called after deleting a record from the store.\"},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Called after setting a record in the store.\"},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Called after splicing dynamic data in the store.\"},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Called after splicing static data in the store.\"},\"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Called before deleting a record from the store.\"},\"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Called before setting a record in the store.\"},\"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Called before splicing dynamic data in the store.\"},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Called before splicing static data in the store.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/IStoreHook.sol\":\"IStoreHook\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"StoreHook_NotImplemented"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceStaticData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceStaticData"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record was deleted."}},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","staticData":"The static data of the record.","tableId":"The ID of the table where the record was set."}},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes deleted in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data was spliced."}},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.","params":{"data":"The data written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data was spliced."}},"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":{"params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record is to be deleted."}},"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","staticData":"The static data of the record.","tableId":"The ID of the table where the record is to be set."}},"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data to be inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes to delete in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.","params":{"data":"The data to be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Called after deleting a record from the store."},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Called after setting a record in the store."},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Called after splicing dynamic data in the store."},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Called after splicing static data in the store."},"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Called before deleting a record from the store."},"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Called before setting a record in the store."},"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Called before splicing dynamic data in the store."},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Called before splicing static data in the store."},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@latticexyz/store/src/IStoreHook.sol":"IStoreHook"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/IStoreHook.sol","id":8980,"exportedSymbols":{"EncodedLengths":[7251],"FieldLayout":[7885],"IERC165":[8569],"IStoreHook":[8979],"ResourceId":[9486]},"nodeType":"SourceUnit","src":"32:6089:26","nodes":[{"id":8828,"nodeType":"PragmaDirective","src":"32:25:26","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":8830,"nodeType":"ImportDirective","src":"59:48:26","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/FieldLayout.sol","file":"./FieldLayout.sol","nameLocation":"-1:-1:-1","scope":8980,"sourceUnit":8362,"symbolAliases":[{"foreign":{"id":8829,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"68:11:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8832,"nodeType":"ImportDirective","src":"108:40:26","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":8980,"sourceUnit":8570,"symbolAliases":[{"foreign":{"id":8831,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8569,"src":"117:7:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8834,"nodeType":"ImportDirective","src":"149:54:26","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/EncodedLengths.sol","file":"./EncodedLengths.sol","nameLocation":"-1:-1:-1","scope":8980,"sourceUnit":7873,"symbolAliases":[{"foreign":{"id":8833,"name":"EncodedLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"158:14:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8836,"nodeType":"ImportDirective","src":"204:46:26","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"./ResourceId.sol","nameLocation":"-1:-1:-1","scope":8980,"sourceUnit":9568,"symbolAliases":[{"foreign":{"id":8835,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"213:10:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8979,"nodeType":"ContractDefinition","src":"347:5773:26","nodes":[{"id":8842,"nodeType":"ErrorDefinition","src":"447:33:26","nodes":[],"documentation":{"id":8840,"nodeType":"StructuredDocumentation","src":"383:61:26","text":"@notice Error emitted when a function is not implemented."},"errorSelector":"cfd7320c","name":"StoreHook_NotImplemented","nameLocation":"453:24:26","parameters":{"id":8841,"nodeType":"ParameterList","parameters":[],"src":"477:2:26"}},{"id":8862,"nodeType":"FunctionDefinition","src":"964:218:26","nodes":[],"documentation":{"id":8843,"nodeType":"StructuredDocumentation","src":"484:477:26","text":" @notice Called before setting a record in the store.\n @param tableId The ID of the table where the record is to be set.\n @param keyTuple An array representing the composite key for the record.\n @param staticData The static data of the record.\n @param encodedLengths The encoded lengths of the dynamic data of the record.\n @param dynamicData The dynamic data of the record.\n @param fieldLayout The layout of the field, see FieldLayout.sol."},"functionSelector":"57066c9c","implemented":false,"kind":"function","modifiers":[],"name":"onBeforeSetRecord","nameLocation":"973:17:26","parameters":{"id":8860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8846,"mutability":"mutable","name":"tableId","nameLocation":"1007:7:26","nodeType":"VariableDeclaration","scope":8862,"src":"996:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8845,"nodeType":"UserDefinedTypeName","pathNode":{"id":8844,"name":"ResourceId","nameLocations":["996:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"996:10:26"},"referencedDeclaration":9486,"src":"996:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8849,"mutability":"mutable","name":"keyTuple","nameLocation":"1037:8:26","nodeType":"VariableDeclaration","scope":8862,"src":"1020:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1020:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8848,"nodeType":"ArrayTypeName","src":"1020:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8851,"mutability":"mutable","name":"staticData","nameLocation":"1064:10:26","nodeType":"VariableDeclaration","scope":8862,"src":"1051:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8850,"name":"bytes","nodeType":"ElementaryTypeName","src":"1051:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8854,"mutability":"mutable","name":"encodedLengths","nameLocation":"1095:14:26","nodeType":"VariableDeclaration","scope":8862,"src":"1080:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},"typeName":{"id":8853,"nodeType":"UserDefinedTypeName","pathNode":{"id":8852,"name":"EncodedLengths","nameLocations":["1080:14:26"],"nodeType":"IdentifierPath","referencedDeclaration":7251,"src":"1080:14:26"},"referencedDeclaration":7251,"src":"1080:14:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},"visibility":"internal"},{"constant":false,"id":8856,"mutability":"mutable","name":"dynamicData","nameLocation":"1128:11:26","nodeType":"VariableDeclaration","scope":8862,"src":"1115:24:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8855,"name":"bytes","nodeType":"ElementaryTypeName","src":"1115:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8859,"mutability":"mutable","name":"fieldLayout","nameLocation":"1157:11:26","nodeType":"VariableDeclaration","scope":8862,"src":"1145:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8858,"nodeType":"UserDefinedTypeName","pathNode":{"id":8857,"name":"FieldLayout","nameLocations":["1145:11:26"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"1145:11:26"},"referencedDeclaration":7885,"src":"1145:11:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"990:182:26"},"returnParameters":{"id":8861,"nodeType":"ParameterList","parameters":[],"src":"1181:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8882,"nodeType":"FunctionDefinition","src":"1660:217:26","nodes":[],"documentation":{"id":8863,"nodeType":"StructuredDocumentation","src":"1186:471:26","text":" @notice Called after setting a record in the store.\n @param tableId The ID of the table where the record was set.\n @param keyTuple An array representing the composite key for the record.\n @param staticData The static data of the record.\n @param encodedLengths The encoded lengths of the dynamic data of the record.\n @param dynamicData The dynamic data of the record.\n @param fieldLayout The layout of the field, see FieldLayout.sol."},"functionSelector":"5b28cdaf","implemented":false,"kind":"function","modifiers":[],"name":"onAfterSetRecord","nameLocation":"1669:16:26","parameters":{"id":8880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8866,"mutability":"mutable","name":"tableId","nameLocation":"1702:7:26","nodeType":"VariableDeclaration","scope":8882,"src":"1691:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8865,"nodeType":"UserDefinedTypeName","pathNode":{"id":8864,"name":"ResourceId","nameLocations":["1691:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"1691:10:26"},"referencedDeclaration":9486,"src":"1691:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8869,"mutability":"mutable","name":"keyTuple","nameLocation":"1732:8:26","nodeType":"VariableDeclaration","scope":8882,"src":"1715:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8868,"nodeType":"ArrayTypeName","src":"1715:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8871,"mutability":"mutable","name":"staticData","nameLocation":"1759:10:26","nodeType":"VariableDeclaration","scope":8882,"src":"1746:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8870,"name":"bytes","nodeType":"ElementaryTypeName","src":"1746:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8874,"mutability":"mutable","name":"encodedLengths","nameLocation":"1790:14:26","nodeType":"VariableDeclaration","scope":8882,"src":"1775:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},"typeName":{"id":8873,"nodeType":"UserDefinedTypeName","pathNode":{"id":8872,"name":"EncodedLengths","nameLocations":["1775:14:26"],"nodeType":"IdentifierPath","referencedDeclaration":7251,"src":"1775:14:26"},"referencedDeclaration":7251,"src":"1775:14:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},"visibility":"internal"},{"constant":false,"id":8876,"mutability":"mutable","name":"dynamicData","nameLocation":"1823:11:26","nodeType":"VariableDeclaration","scope":8882,"src":"1810:24:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8875,"name":"bytes","nodeType":"ElementaryTypeName","src":"1810:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8879,"mutability":"mutable","name":"fieldLayout","nameLocation":"1852:11:26","nodeType":"VariableDeclaration","scope":8882,"src":"1840:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8878,"nodeType":"UserDefinedTypeName","pathNode":{"id":8877,"name":"FieldLayout","nameLocations":["1840:11:26"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"1840:11:26"},"referencedDeclaration":7885,"src":"1840:11:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"1685:182:26"},"returnParameters":{"id":8881,"nodeType":"ParameterList","parameters":[],"src":"1876:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8896,"nodeType":"FunctionDefinition","src":"2428:143:26","nodes":[],"documentation":{"id":8883,"nodeType":"StructuredDocumentation","src":"1881:544:26","text":" @notice Called before splicing static data in the store.\n @dev Splice operations in static data always overwrite data starting at the start position,\n so the total length of the data remains the same and no data is shifted.\n @param tableId The ID of the table where the data is to be spliced.\n @param keyTuple An array representing the composite key for the record.\n @param start The start byte position for splicing.\n @param data The data to be written to the static data of the record at the start byte."},"functionSelector":"964f667d","implemented":false,"kind":"function","modifiers":[],"name":"onBeforeSpliceStaticData","nameLocation":"2437:24:26","parameters":{"id":8894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8886,"mutability":"mutable","name":"tableId","nameLocation":"2478:7:26","nodeType":"VariableDeclaration","scope":8896,"src":"2467:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8885,"nodeType":"UserDefinedTypeName","pathNode":{"id":8884,"name":"ResourceId","nameLocations":["2467:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"2467:10:26"},"referencedDeclaration":9486,"src":"2467:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8889,"mutability":"mutable","name":"keyTuple","nameLocation":"2508:8:26","nodeType":"VariableDeclaration","scope":8896,"src":"2491:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2491:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8888,"nodeType":"ArrayTypeName","src":"2491:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8891,"mutability":"mutable","name":"start","nameLocation":"2529:5:26","nodeType":"VariableDeclaration","scope":8896,"src":"2522:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":8890,"name":"uint48","nodeType":"ElementaryTypeName","src":"2522:6:26","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":8893,"mutability":"mutable","name":"data","nameLocation":"2553:4:26","nodeType":"VariableDeclaration","scope":8896,"src":"2540:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8892,"name":"bytes","nodeType":"ElementaryTypeName","src":"2540:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2461:100:26"},"returnParameters":{"id":8895,"nodeType":"ParameterList","parameters":[],"src":"2570:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8910,"nodeType":"FunctionDefinition","src":"3110:142:26","nodes":[],"documentation":{"id":8897,"nodeType":"StructuredDocumentation","src":"2575:532:26","text":" @notice Called after splicing static data in the store.\n @dev Splice operations in static data always overwrite data starting at the start position,\n so the total length of the data remains the same and no data is shifted.\n @param tableId The ID of the table where the data was spliced.\n @param keyTuple An array representing the composite key for the record.\n @param start The start byte position for splicing.\n @param data The data written to the static data of the record at the start byte."},"functionSelector":"a8ba8721","implemented":false,"kind":"function","modifiers":[],"name":"onAfterSpliceStaticData","nameLocation":"3119:23:26","parameters":{"id":8908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8900,"mutability":"mutable","name":"tableId","nameLocation":"3159:7:26","nodeType":"VariableDeclaration","scope":8910,"src":"3148:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8899,"nodeType":"UserDefinedTypeName","pathNode":{"id":8898,"name":"ResourceId","nameLocations":["3148:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"3148:10:26"},"referencedDeclaration":9486,"src":"3148:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8903,"mutability":"mutable","name":"keyTuple","nameLocation":"3189:8:26","nodeType":"VariableDeclaration","scope":8910,"src":"3172:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3172:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8902,"nodeType":"ArrayTypeName","src":"3172:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8905,"mutability":"mutable","name":"start","nameLocation":"3210:5:26","nodeType":"VariableDeclaration","scope":8910,"src":"3203:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":8904,"name":"uint48","nodeType":"ElementaryTypeName","src":"3203:6:26","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":8907,"mutability":"mutable","name":"data","nameLocation":"3234:4:26","nodeType":"VariableDeclaration","scope":8910,"src":"3221:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8906,"name":"bytes","nodeType":"ElementaryTypeName","src":"3221:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3142:100:26"},"returnParameters":{"id":8909,"nodeType":"ParameterList","parameters":[],"src":"3251:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8931,"nodeType":"FunctionDefinition","src":"4043:243:26","nodes":[],"documentation":{"id":8911,"nodeType":"StructuredDocumentation","src":"3256:784:26","text":" @notice Called before splicing dynamic data in the store.\n @dev Splice operations in dynamic data always reach the end of the dynamic data\n to avoid shifting data after the inserted or deleted data.\n @param tableId The ID of the table where the data is to be spliced.\n @param keyTuple An array representing the composite key for the record.\n @param dynamicFieldIndex The index of the dynamic field.\n @param startWithinField The start byte position within the field for splicing.\n @param deleteCount The number of bytes to delete in the dynamic data of the record.\n @param encodedLengths The encoded lengths of the dynamic data of the record.\n @param data The data to be inserted into the dynamic data of the record at the start byte."},"functionSelector":"55eb5a28","implemented":false,"kind":"function","modifiers":[],"name":"onBeforeSpliceDynamicData","nameLocation":"4052:25:26","parameters":{"id":8929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8914,"mutability":"mutable","name":"tableId","nameLocation":"4094:7:26","nodeType":"VariableDeclaration","scope":8931,"src":"4083:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8913,"nodeType":"UserDefinedTypeName","pathNode":{"id":8912,"name":"ResourceId","nameLocations":["4083:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"4083:10:26"},"referencedDeclaration":9486,"src":"4083:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8917,"mutability":"mutable","name":"keyTuple","nameLocation":"4124:8:26","nodeType":"VariableDeclaration","scope":8931,"src":"4107:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4107:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8916,"nodeType":"ArrayTypeName","src":"4107:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8919,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"4144:17:26","nodeType":"VariableDeclaration","scope":8931,"src":"4138:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8918,"name":"uint8","nodeType":"ElementaryTypeName","src":"4138:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8921,"mutability":"mutable","name":"startWithinField","nameLocation":"4174:16:26","nodeType":"VariableDeclaration","scope":8931,"src":"4167:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":8920,"name":"uint40","nodeType":"ElementaryTypeName","src":"4167:6:26","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":8923,"mutability":"mutable","name":"deleteCount","nameLocation":"4203:11:26","nodeType":"VariableDeclaration","scope":8931,"src":"4196:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":8922,"name":"uint40","nodeType":"ElementaryTypeName","src":"4196:6:26","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":8926,"mutability":"mutable","name":"encodedLengths","nameLocation":"4235:14:26","nodeType":"VariableDeclaration","scope":8931,"src":"4220:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},"typeName":{"id":8925,"nodeType":"UserDefinedTypeName","pathNode":{"id":8924,"name":"EncodedLengths","nameLocations":["4220:14:26"],"nodeType":"IdentifierPath","referencedDeclaration":7251,"src":"4220:14:26"},"referencedDeclaration":7251,"src":"4220:14:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},"visibility":"internal"},{"constant":false,"id":8928,"mutability":"mutable","name":"data","nameLocation":"4268:4:26","nodeType":"VariableDeclaration","scope":8931,"src":"4255:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8927,"name":"bytes","nodeType":"ElementaryTypeName","src":"4255:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4077:199:26"},"returnParameters":{"id":8930,"nodeType":"ParameterList","parameters":[],"src":"4285:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8952,"nodeType":"FunctionDefinition","src":"5063:242:26","nodes":[],"documentation":{"id":8932,"nodeType":"StructuredDocumentation","src":"4290:770:26","text":" @notice Called after splicing dynamic data in the store.\n @dev Splice operations in dynamic data always reach the end of the dynamic data\n to avoid shifting data after the inserted or deleted data.\n @param tableId The ID of the table where the data was spliced.\n @param keyTuple An array representing the composite key for the record.\n @param dynamicFieldIndex The index of the dynamic field.\n @param startWithinField The start byte position within the field for splicing.\n @param deleteCount The number of bytes deleted in the dynamic data of the record.\n @param encodedLengths The encoded lengths of the dynamic data of the record.\n @param data The data inserted into the dynamic data of the record at the start byte."},"functionSelector":"63584533","implemented":false,"kind":"function","modifiers":[],"name":"onAfterSpliceDynamicData","nameLocation":"5072:24:26","parameters":{"id":8950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8935,"mutability":"mutable","name":"tableId","nameLocation":"5113:7:26","nodeType":"VariableDeclaration","scope":8952,"src":"5102:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8934,"nodeType":"UserDefinedTypeName","pathNode":{"id":8933,"name":"ResourceId","nameLocations":["5102:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"5102:10:26"},"referencedDeclaration":9486,"src":"5102:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8938,"mutability":"mutable","name":"keyTuple","nameLocation":"5143:8:26","nodeType":"VariableDeclaration","scope":8952,"src":"5126:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8936,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5126:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8937,"nodeType":"ArrayTypeName","src":"5126:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8940,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"5163:17:26","nodeType":"VariableDeclaration","scope":8952,"src":"5157:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8939,"name":"uint8","nodeType":"ElementaryTypeName","src":"5157:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8942,"mutability":"mutable","name":"startWithinField","nameLocation":"5193:16:26","nodeType":"VariableDeclaration","scope":8952,"src":"5186:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":8941,"name":"uint40","nodeType":"ElementaryTypeName","src":"5186:6:26","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":8944,"mutability":"mutable","name":"deleteCount","nameLocation":"5222:11:26","nodeType":"VariableDeclaration","scope":8952,"src":"5215:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":8943,"name":"uint40","nodeType":"ElementaryTypeName","src":"5215:6:26","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":8947,"mutability":"mutable","name":"encodedLengths","nameLocation":"5254:14:26","nodeType":"VariableDeclaration","scope":8952,"src":"5239:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},"typeName":{"id":8946,"nodeType":"UserDefinedTypeName","pathNode":{"id":8945,"name":"EncodedLengths","nameLocations":["5239:14:26"],"nodeType":"IdentifierPath","referencedDeclaration":7251,"src":"5239:14:26"},"referencedDeclaration":7251,"src":"5239:14:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},"visibility":"internal"},{"constant":false,"id":8949,"mutability":"mutable","name":"data","nameLocation":"5287:4:26","nodeType":"VariableDeclaration","scope":8952,"src":"5274:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8948,"name":"bytes","nodeType":"ElementaryTypeName","src":"5274:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5096:199:26"},"returnParameters":{"id":8951,"nodeType":"ParameterList","parameters":[],"src":"5304:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8965,"nodeType":"FunctionDefinition","src":"5604:111:26","nodes":[],"documentation":{"id":8953,"nodeType":"StructuredDocumentation","src":"5309:292:26","text":" @notice Called before deleting a record from the store.\n @param tableId The ID of the table where the record is to be deleted.\n @param keyTuple An array representing the composite key for the record.\n @param fieldLayout The layout of the field, see FieldLayout.sol."},"functionSelector":"9faeaf45","implemented":false,"kind":"function","modifiers":[],"name":"onBeforeDeleteRecord","nameLocation":"5613:20:26","parameters":{"id":8963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8956,"mutability":"mutable","name":"tableId","nameLocation":"5645:7:26","nodeType":"VariableDeclaration","scope":8965,"src":"5634:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8955,"nodeType":"UserDefinedTypeName","pathNode":{"id":8954,"name":"ResourceId","nameLocations":["5634:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"5634:10:26"},"referencedDeclaration":9486,"src":"5634:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8959,"mutability":"mutable","name":"keyTuple","nameLocation":"5671:8:26","nodeType":"VariableDeclaration","scope":8965,"src":"5654:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5654:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8958,"nodeType":"ArrayTypeName","src":"5654:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8962,"mutability":"mutable","name":"fieldLayout","nameLocation":"5693:11:26","nodeType":"VariableDeclaration","scope":8965,"src":"5681:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8961,"nodeType":"UserDefinedTypeName","pathNode":{"id":8960,"name":"FieldLayout","nameLocations":["5681:11:26"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"5681:11:26"},"referencedDeclaration":7885,"src":"5681:11:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"5633:72:26"},"returnParameters":{"id":8964,"nodeType":"ParameterList","parameters":[],"src":"5714:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8978,"nodeType":"FunctionDefinition","src":"6008:110:26","nodes":[],"documentation":{"id":8966,"nodeType":"StructuredDocumentation","src":"5719:286:26","text":" @notice Called after deleting a record from the store.\n @param tableId The ID of the table where the record was deleted.\n @param keyTuple An array representing the composite key for the record.\n @param fieldLayout The layout of the field, see FieldLayout.sol."},"functionSelector":"83b5c95b","implemented":false,"kind":"function","modifiers":[],"name":"onAfterDeleteRecord","nameLocation":"6017:19:26","parameters":{"id":8976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8969,"mutability":"mutable","name":"tableId","nameLocation":"6048:7:26","nodeType":"VariableDeclaration","scope":8978,"src":"6037:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":8968,"nodeType":"UserDefinedTypeName","pathNode":{"id":8967,"name":"ResourceId","nameLocations":["6037:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"6037:10:26"},"referencedDeclaration":9486,"src":"6037:10:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":8972,"mutability":"mutable","name":"keyTuple","nameLocation":"6074:8:26","nodeType":"VariableDeclaration","scope":8978,"src":"6057:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6057:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8971,"nodeType":"ArrayTypeName","src":"6057:9:26","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8975,"mutability":"mutable","name":"fieldLayout","nameLocation":"6096:11:26","nodeType":"VariableDeclaration","scope":8978,"src":"6084:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8974,"nodeType":"UserDefinedTypeName","pathNode":{"id":8973,"name":"FieldLayout","nameLocations":["6084:11:26"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"6084:11:26"},"referencedDeclaration":7885,"src":"6084:11:26","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"6036:72:26"},"returnParameters":{"id":8977,"nodeType":"ParameterList","parameters":[],"src":"6117:0:26"},"scope":8979,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":8838,"name":"IERC165","nameLocations":["371:7:26"],"nodeType":"IdentifierPath","referencedDeclaration":8569,"src":"371:7:26"},"id":8839,"nodeType":"InheritanceSpecifier","src":"371:7:26"}],"canonicalName":"IStoreHook","contractDependencies":[],"contractKind":"interface","documentation":{"id":8837,"nodeType":"StructuredDocumentation","src":"252:94:26","text":" @title IStoreHook\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)"},"fullyImplemented":false,"linearizedBaseContracts":[8979,8569],"name":"IStoreHook","nameLocation":"357:10:26","scope":8980,"usedErrors":[8842],"usedEvents":[]}],"license":"MIT"},"id":26}